ruby/debug is a new debugger that is going to ship with CRuby.
It makes sense for Rails to switch to this one because that is
where the language is heading, and because Byebug is not fully
compatible with Zeitwerk. See
https://github.com/deivid-rodriguez/byebug/issues/564
While ruby/debug has not been heavily tested with Zeitwerk,
casual usage seems to suggest it works without issues, including
explicit namespaces, which is where Byebug and Zeitwerk conflict.
Byebug is terrific, thanks a lot for all these years. ❤️
* No benefit to having actiontext css as scss
* Update test
* Update docs
* No more css assets to be generated
New world, new CSS frameworks, new needs.
* SCSS is becoming optional
* Remove Sass as a default-on setting
But continue to make it easy to add.
* Update docs
* No longer used
* Update tests
* Update docs
* Update docs
* No longer used
* No longer by default
* Fix tests
* Promote Tailwind CSS as an alternative to Sass
* Fix test and copy task
* Update railties/lib/rails/generators/rails/app/templates/Gemfile.tt
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
* Turbolinks is being replaced with Hotwire
* Make --webpack opt-in
* Don't use specific webpacker installers any more in preparation for next Webpacker
* Update railties/lib/rails/app_updater.rb
Co-authored-by: Alex Ghiculescu <alex@tanda.co>
* Trailing whitespace
* Convert to Turbo data attribute for tracking
* Default is no webpack, no hotwire
* Swap out turbolinks references for hotwire
* Drop explicit return
* Only generate package.json if using webpack
* Only create package.json in webpack mode
* Only create app/javascript in webpack mode
* Generate correct style/js links based on js mode
* Fix tests from changed output format
Not sure why these are showing up in this PR, though.
* Rubocopping
* Stick with webpack for the test app for now
* Adjust tests
* Replace minitest-reporters with minitest-ci (#43016)
minitest-reporters is used to create junit xml reports on CI.
But when it loads before rails minitest plugin makes
`Rails::TestUnitReporter` not being added as a reporter.
minitest-ci is now only loaded at ci and does not interferes with
rails minitest plugins. And keeps junit reports workings
* Too heavy handed to actually run bundle
Just like we don't auto-migrate
* Pin js frameworks in importmap
Instead of having importmap preconfigure it.
* Match updated app/javascript path
* No need for the explaining comment
* Fixes test cases for replace webpack with importmapped Hotwire as default js (#42999)
* Fix rubocop issues
* Fix more railities test cases
* Fix plugin generator railties shared test cases
* Fix Action Text install generator asset pipeline spec
* They're modules, not files
* Let dev use the latest release as well
So we don't have to replace unexisting dev releases with latest release
* Make Webpack responsible for generating all the JS files it needs
Webpacker 6 has already moved from app/javascript to app/packs.
* Don't add rails/ujs by default any longer
All the ajax/form functionality has been superseded by Turbo. The rest lives in a weird inbetween land we need to address through other means.
* Use new importmap location
* Switch to using turbo-rails and stimulus-rails directly
The hotwire-rails gem does not offer enough value for its indirection
* Use latest Webpacker
* Prevent version resolution requests from getting swallowed
* Use ESM syntax for imports
* Move management of yarn, package.json, etc to Webpacker 6
* Update for Webpacker 6
* Move bin/setup addition to Webpacker as well
* Remove dead tests
* Bump to Webpacker 6.0.0.rc.2
* No longer relevant given the new default is no webpacker
* Rely on Webpacker 6
* No longer relevant
* No longer relevant
* Make cable channel generator work for both webpacker and importmap setups
* Fix tests
* For tests testing importmap way
* Use Webpacker 6 dummy
* RuboCopping
* One more bump to fix webpack-dev-server
* Another bump. Hopefully the last one!
* Also enough to not want turbo tracking on
* Fix tests
* Latest
* Fix tests
* Fix more tests
* Fix tests
Co-authored-by: Alex Ghiculescu <alex@tanda.co>
Co-authored-by: André Luis Leal Cardoso Junior <andrehjr@gmail.com>
Co-authored-by: Abhay Nikam <nikam.abhay1@gmail.com>
Co-authored-by: Guillermo Iguaran <guilleiguaran@gmail.com>
I found an unexpected use of assertion in the block of `assert_raise`
when I implemented https://github.com/rubocop/rubocop-minitest/pull/137.
It is expected to be asserted after an exception is raised in
`assert_raise` block, but in actually it is not asserted after an
exception is raised. Therefore, this PR removes or updates assertions
that have not been asserted after an exception has raised.
This PR will add `rubocop-minitest` and enable
`Minitest/UnreachableAssertion` cop to able similar auto-detection,
but will remove `rubocop-minitest` from this PR if you don't like it.
This commit addresses the CI failures with ruby 3.1.0dev.
https://buildkite.com/rails/rails/builds/79716#ef77b273-93d2-4372-a7fc-165dca6cadef
since Ruby ruby 3.1.0dev bumps the digest gem version to 3.0.1.pre
478f0ddb5f
- Without this commit
```ruby
$ ruby -v
ruby 3.1.0dev (2021-07-29T03:51:10Z master 64adeeadaa) [x86_64-linux]
$ bundle exec blade build
bundler: failed to load command: blade (/home/yahonda/.rbenv/versions/3.1.0-dev/bin/blade)
/home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/runtime.rb:300:in `check_for_activated_spec!': You have already activated digest 3.0.1.pre, but your Gemfile requires digest 3.0.0. Since digest is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports digest as a default gem. (Gem::LoadError)
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/runtime.rb:29:in `block in setup'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/spec_set.rb:158:in `each'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/spec_set.rb:158:in `each'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/runtime.rb:24:in `map'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/runtime.rb:24:in `setup'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler.rb:149:in `setup'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/setup.rb:10:in `block in <top (required)>'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/ui/shell.rb:136:in `with_level'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/ui/shell.rb:88:in `silence'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/setup.rb:10:in `<top (required)>'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/cli/exec.rb:61:in `require_relative'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/cli/exec.rb:61:in `kernel_load'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/cli/exec.rb:28:in `run'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/cli.rb:481:in `exec'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/cli.rb:31:in `dispatch'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/cli.rb:25:in `start'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/gems/3.1.0/gems/bundler-2.3.0.dev/libexec/bundle:49:in `block in <top (required)>'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/friendly_errors.rb:128:in `with_friendly_errors'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/gems/3.1.0/gems/bundler-2.3.0.dev/libexec/bundle:37:in `<top (required)>'
from /home/yahonda/.rbenv/versions/3.1.0-dev/bin/bundle:23:in `load'
from /home/yahonda/.rbenv/versions/3.1.0-dev/bin/bundle:23:in `<main>'
$
```
- With this commit
```ruby
$ bundle exec blade build
Building assets…
$
```
Terser is more up to date with modern javascript features, and the
uglifier gem repository recommends using it for minifying ES6+.
Followup for 955041b
Sdoc 2.2.0 has improved accessibility and bug fixes.
Changelog:
* #161 Add 'skip to content' link and improve shortcut keys
* #170 Fix link hovers in headings
* #169 Fix clearing search results
* #167 Update Merge script to work with sdoc v2
* #160 Remove outline from reset stylesheet
* #159 Remove TAB override in panel
* #157 Move to GitHub action for tests
* #155 Fix Ctrl+C copying Jan Schär
Sdoc 2.1.0 works better on mobile and has improvements for SEO and
Lighthouse.
Changelog:
* #154 Make panel responsive for mobile.
* #153 Add viewport metatag to views for improved Lighthouse score.
* #150 Use semantic headers for better SEO.
This version has two layout fixes:
* Using HTML5 doctype accross all HTML files. @MikeRogers0
* Fix overflow CSS property of panel elements. @cveneziani
* Use public API to add argument to the selenium driver.
While `args` is also public API it doesn't know how to handle if no
argument is being set yet in Selenium 4.
* Fix assertions to match return on Selenium 4
The current Rails documentation has a frames based implementation. This
prevents deep linking to documentation and removes navigation if the page
is opened without frames.
We can keep the same layout with a css based implementation.
Turbolinks is used to persisted the navigation/search bar across
requests.
rexml is only used in the xml_mini backend and it should be the users
choice if they want to use that feature or not. If they do we will warn
them that installing rexml is needed like we do with all backends.
Since c1e7268c83 we install the latest
version of RuboCop in our GitHub Actions workflow for speed, but this
sacrifices reproducibility; the results will change whenever RuboCop
publishes a new version. Instead we can add a new group to our Gemfile
that just contains the dependencies necessary to run RuboCop, and skip
installing everything else in CI.
Unfortunately it's not possible to tell Bundler to only install gems
from a single group, so we have to tell it not to install every other
group instead.