aboutsummaryrefslogtreecommitdiffstats
path: root/railties
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Preserve Bundle configuration during app generation (#34755)Marco Costa2019-01-093-9/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When generating a new rails application (rails new) using a custom template that includes gems from an authenticated source, the user has to provide credentials to bundler. One way to do this is by exporting environment variables, for example: export BUNDLE_GITHUB__COM=user:pass: provides credentials for bundler to fetch gems from github.com. The problem this PR addresses is that we are currently scrubs all /BUNDLE_.*/ environment variables by wrapping our system calls in Bundler.with_clean_env. We do this because we don't want our commands executed against the generated project to use the generator's bundler environment (e.g. our gems): the generated project should use it's own configuration. The problem with Bundler.with_clean_env is that, on top of restoring environment variables to their original state, it also scrubs any /BUNDLE_.*/ variables, which is harmful for authenticated gem sources. This PR replaces Bundler.with_clean_env with Bundler.with_original_env, which only restores environment variables to their initial state, without additional scrubbing.
* | | Revert "Merge pull request #34387 from yhirano55/rails_info_properties_json"Kasper Timm Hansen2019-01-085-37/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had a discussion on the Core team and we don't want to expose this information as a JSON endpoint and not by default. It doesn't make sense to expose this JSON locally and this controller is only accessible in dev, so the proposed access from a production app seems off. This reverts commit 8eaffe7e89719ac62ff29c2e4208cfbeb1cd1c38, reversing changes made to 133e0ba33db5887b047c9ac8233e5b414657bca5.
* | | Revert "Revert "Merge pull request #34387 from ↵Kasper Timm Hansen2019-01-083-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | yhirano55/rails_info_properties_json"" I reverted the wrong commit. Damn it. This reverts commit f66a977fc7ae30d2a07124ad91924c4ee638a703.
* | | Revert "Merge pull request #34387 from yhirano55/rails_info_properties_json"Kasper Timm Hansen2019-01-083-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had a discussion on the Core team and we don't want to expose this information as a JSON endpoint and not by default. It doesn't make sense to expose this JSON locally and this controller is only accessible in dev, so the proposed access from a production app seems off. This reverts commit 8eaffe7e89719ac62ff29c2e4208cfbeb1cd1c38, reversing changes made to b6e4305c3bca4c673996d0af9db0f4cfbf50215e.
* | | Merge pull request #34132 from ConfusedVorlon/enable_fragment_cache_log_in_devRafael França2019-01-081-0/+1
|\ \ \ | |/ / |/| | enable_fragment_cache_logging in dev by default
| * | enable_fragment_cache_loggingRob Jonson2018-10-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | fragment caching was refactored in (I think 5.2) and by default doesn't log cache info this is confusing in development where rails dev:cache now turns on caching, but doesn't show any different logging output better to enable debugging by default for dev - and let people turn it off if preferred
* | | Revert "Remove node_modules path from assets load paths since we use webpack ↵bogdanvlviv2019-01-062-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | by default" This reverts commit 129f8ac6ffcafb2e6e13c9ef13dda4cc47f5af0d. See https://github.com/rails/rails/commit/02d2958b6cd84d687d89112eb7e2306a6a89c082#commitcomment-31849196
* | | Merge pull request #34865 from cbandy/node_rails_envGeorge Claghorn2019-01-051-2/+1
|\ \ \ | | | | | | | | Respect Rails.env when running `rails yarn:install`
| * | | Respect Rails.env when running `rails yarn:install`Chris Bandy2019-01-041-2/+1
| | | | | | | | | | | | | | | | | | | | When no environment variables are set the expectation is that we are in development.
* | | | Add `--skip-action-text` option to `rails new`bogdanvlviv2019-01-054-1/+27
| | | | | | | | | | | | | | | | | | | | Since PR#34816 was merged in c6ef670aee186a2880b7be59c4c6892b5c983e58, we should add this option for flexibility, and consistency.
* | | | Generate Action Text's API docsGeorge Claghorn2019-01-041-0/+8
| | | |
* | | | Import Action TextGeorge Claghorn2019-01-042-4/+5
| | | |
* | | | Merge pull request #34867 from bogdanvlviv/test-actionmailbox-configurationsGeorge Claghorn2019-01-041-0/+71
|\ \ \ \ | | | | | | | | | | Test Action Mailbox configurations
| * | | | Test Action Mailbox configurationsbogdanvlviv2019-01-041-0/+71
| |/ / / | | | | | | | | | | | | Related to https://github.com/rails/rails/commit/0d40c62213cf0be58a470637bd364e92c5666402
* / / / Fix `new_framework_defaults_6_0.rb` filebogdanvlviv2019-01-041-1/+1
|/ / / | | | | | | | | | | | | `Rails.application.config.active_job.return_false_on_aborted_enqueue` should be commented as well.
* | | Send Active Storage jobs to dedicated queues by defaultGeorge Claghorn2019-01-044-2/+47
| | | | | | | | | Match Action Mailbox, which sets a default queue for each of its two jobs.
* | | Merge pull request #34816 from ↵Rafael Mendonça França2019-01-033-1/+13
|\ \ \ | | | | | | | | | | | | | | | | | | | | bogdanvlviv/add-skip-action-mailbox-option-to-rails-new-cmd Add `--skip-action-mailbox` option to `rails new`
| * | | Add `--skip-action-mailbox` option to `rails new`bogdanvlviv2018-12-283-1/+18
| | | | | | | | | | | | | | | | Related to https://github.com/rails/rails/commit/ddaf06779aa51d5d1ca462c21c53f2ed169a0d2f
* | | | Merge pull request #33985 from eugeneius/attribute_methods_schema_cacheKasper Timm Hansen2019-01-031-1/+63
|\ \ \ \ | | | | | | | | | | Only define attribute methods from schema cache
| * | | | Only define attribute methods from schema cacheEugene Kenny2018-09-281-1/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To define the attribute methods for a model, Active Record needs to know the schema of the underlying table, which is usually achieved by making a request to the database. This is undesirable behaviour while the app is booting, for two reasons: it makes the boot process dependent on the availability of the database, and it means every new process will make one query for each table, which can cause issues for large applications. However, if the application is using the schema cache dump feature, then the schema cache already contains the necessary information, and we can define the attribute methods without causing any extra database queries.
* | | | | Capistrano is no longer a dominant force in the deployment strategy for new appsDavid Heinemeier Hansson2019-01-031-3/+0
| | | | |
* | | | | Bump license years for 2019Arun Agrawal2018-12-311-1/+1
| | | | |
* | | | | Add Rake task for testing mailboxesGeorge Claghorn2018-12-303-3/+19
| | | | |
* | | | | Don't load Action Mailbox when Active Storage is skippedGeorge Claghorn2018-12-292-1/+6
| | | | |
* | | | | Do not show suggestion message when not exist suggestionyuuji.yaginuma2018-12-294-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **before** ``` $ ./bin/rails g g Could not find generator 'g'. Maybe you meant nil? Run `rails generate --help` for more options. ``` **after** ``` $ ./bin/rails g g Could not find generator 'g'. Run `rails generate --help` for more options. ```
* | | | | Ensure that the app generator skips action mailbox when ↵bogdanvlviv2018-12-281-0/+5
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | `--skip-active-record` is given Related to https://github.com/rails/rails/pull/34816#issuecomment-450378366 Follow up https://github.com/rails/rails/commit/ddaf06779aa51d5d1ca462c21c53f2ed169a0d2f
* | | | Don't load Action Mailbox when Active Record is skippedGeorge Claghorn2018-12-282-2/+7
| | | |
* | | | Load Action Mailbox when other components are skippedGeorge Claghorn2018-12-281-0/+1
| | | |
* | | | Generate Action Mailbox's API docsGeorge Claghorn2018-12-261-0/+8
| | | |
* | | | Import Action MailboxGeorge Claghorn2018-12-255-124/+237
| |_|/ |/| |
* | | No need to handle if FrozenError is availableYasuo Honda2018-12-232-5/+1
| | | | | | | | | | | | | | | | | | | | | Rails 6 requires Ruby 2.5, which introduces `FrozenError` https://docs.ruby-lang.org/en/2.5.0/NEWS.html Related to #31520
* | | Fix app boot for Ruby 2.4Eileen Uchitelle2018-12-211-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have a test app that was on Ruby 2.4. When I pulled Rails master the app no longer would boot because of this change and I saw the following error: ``` SyntaxError: /Users/eileencodes/open_source/real_rails/railties/lib/rails/all.rb:18: syntax error, unexpected keyword_rescue, expecting keyword_end rescue LoadError ^ ``` Ruby 2.4 doesn't support removing redundant begins so the real issue is that this app is on Ruby 2.4 and not on Ruby 2.5. But it's super confusing for a user to understand the reason the app is failing to boot is because we need Ruby 2.5. I added this redundant begin back because we need to give a clearer error message.
* | | Enable `Style/RedundantBegin` cop to avoid newly adding redundant begin blockRyuta Kamizono2018-12-2110-101/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we sometimes find a redundant begin block in code review (e.g. https://github.com/rails/rails/pull/33604#discussion_r209784205). I'd like to enable `Style/RedundantBegin` cop to avoid that, since rescue/else/ensure are allowed inside do/end blocks in Ruby 2.5 (https://bugs.ruby-lang.org/issues/12906), so we'd probably meets with that situation than before.
* | | Module#{attr,attr_accessor,attr_reader,attr_writer} become public since Ruby 2.5Ryuta Kamizono2018-12-212-4/+4
| | | | | | | | | | | | https://bugs.ruby-lang.org/issues/14132
* | | Module#{define_method,alias_method,undef_method,remove_method} become public ↵Ryuta Kamizono2018-12-211-1/+1
| | | | | | | | | | | | | | | | | | since Ruby 2.5 https://bugs.ruby-lang.org/issues/14133
* | | Require Ruby 2.5 for Rails 6.Kasper Timm Hansen2018-12-193-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generally followed the pattern for https://github.com/rails/rails/pull/32034 * Removes needless CI configs for 2.4 * Targets 2.5 in rubocop * Updates existing CHANGELOG entries for fewer merge conflicts * Removes Hash#slice extension as that's inlined on Ruby 2.5. * Removes the need for send on define_method in MethodCallAssertions.
* | | Clarify implicit meaning of 'workers: 2' in parallelization tests.Kasper Timm Hansen2018-12-191-6/+8
| | |
* | | Add option to set parallel test worker count to the physical core count of ↵Bogdan2018-12-182-7/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the machine (#34735) * Add option to set parallel test worker count to the physical core count of the machine Also, use the physical core count of the machine as the default number of workers, and generate the `test_helper.rb` file with `parallelize(workers: :number_of_processors)` Closes #34734 * Ensure that we always test parallel testing Since #34734 we decided to use the physical core count of the machine as the default number of workers in the parallel testing, we need to ensure that some tests use at least 2 workers because we could run those tests on VM that has only 1 physical core. It also fixes tests failures on the CI since Travis server we are using has only one physical core. See https://travis-ci.org/rails/rails/jobs/469281088#L2352
* | | Introduce a guard against DNS rebinding attacksGenadi Samokovarov2018-12-157-9/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ActionDispatch::HostAuthorization is a new middleware that prevent against DNS rebinding and other Host header attacks. By default it is included only in the development environment with the following configuration: Rails.application.config.hosts = [ IPAddr.new("0.0.0.0/0"), # All IPv4 addresses. IPAddr.new("::/0"), # All IPv6 addresses. "localhost" # The localhost reserved domain. ] In other environments, `Rails.application.config.hosts` is empty and no Host header checks will be done. If you want to guard against header attacks on production, you have to manually permit the allowed hosts with: Rails.application.config.hosts << "product.com" The host of a request is checked against the hosts entries with the case operator (#===), which lets hosts support entries of type RegExp, Proc and IPAddr to name a few. Here is an example with a regexp. # Allow requests from subdomains like `www.product.com` and # `beta1.product.com`. Rails.application.config.hosts << /.*\.product\.com/ A special case is supported that allows you to permit all sub-domains: # Allow requests from subdomains like `www.product.com` and # `beta1.product.com`. Rails.application.config.hosts << ".product.com"
* | | Ruby can show a little bit more detailed info in shorter codeAkira Matsuda2018-12-151-1/+1
| | | | | | | | | | | | This follows up adb0c7bc5116e0f6020a4ec32b7e19ea8b26f1ec
* | | http://localhost:3000/rails/info/properties shows more details for ease of ↵ujihisa2018-12-141-1/+1
| | | | | | | | | | | | | | | | | | bug reporting Hand-merging @ujihisa's ancient patch at https://lighthouseapp.com/projects/8994/tickets/3644
* | | Do not show post install message on rails newRafael Mendonça França2018-12-132-5/+5
| | |
* | | Use string for arguments in server testyuuji.yaginuma2018-12-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When actually execute from the command, the value of ARGV is passed to the server. So they are String. So let's use the same type in the test. Also, this removes the following warning in Ruby 2.6. ``` lib/rails/commands/server/server_command.rb:195: warning: deprecated Object#=~ is called on Integer; it always returns nil ```
* | | Fix warning: shadowing outer local variable - attributeRyuta Kamizono2018-12-131-1/+1
| | |
* | | Merge pull request #34691 from gmcgibbon/rm_helper_generator_suffixRyuta Kamizono2018-12-133-0/+16
|\ \ \ | | | | | | | | | | | | Remove redundant suffixes on generated helpers.
| * | | Remove redundant suffixes on generated helpers.Gannon McGibbon2018-12-123-0/+16
| | | |
* | | | Remove redundant suffixes on generated integration tests.Gannon McGibbon2018-12-123-0/+17
|/ / /
* | | Fix boolean interaction in scaffold system testsGannon McGibbon2018-12-124-3/+22
| | |
* | | Remove redundant suffixes on generated system tests.Gannon McGibbon2018-12-113-0/+23
| | |
* | | Upgrade Rubocop to 0.61.1 and fix offensesVinicius Stock2018-12-101-16/+16
| | |