2017/02/24分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Merge pull request #28128 from rails/revert-28127-revert-28038-encrypted-secrets
railtiesの修正です。
Encrypted Secretsを操作する為のsecrets:setup
及びsecrets:edit
コマンドを追加しています。
Encrypted Secretsを使用する為には、まずsecrets:setup
コマンドを実行する必要があります。secrets:setup
コマンドを実行すると、下記ファイルが生成されます。
Adding config/secrets.yml.key to store the encryption key: 6c59e63ec2965b8c78324b37ad142635 Save this in a password manager your team can access. If you lose the key, no one, including you, can access any encrypted secrets. create config/secrets.yml.key Ignoring config/secrets.yml.key so it won't end up in Git history: append .gitignore Adding config/secrets.yml.enc to store secrets that needs to be encrypted. create config/secrets.yml.enc For now the file contains this but it's been encrypted with the generated key: # See `secrets.yml` for tips on generating suitable keys. # production: # external_api_key: 1466aac22e6a869134be3d09b9e89232fc2c2289… You can edit encrypted secrets with `bin/rails secrets:edit`. Add this to your config/environments/production.rb: config.read_encrypted_secrets = true
config/secrets.yml.key
にsecret keyが生成され、そのkeyを使用して暗号化されたファイルがconfig/secrets.yml.enc
になっています。また、config/secrets.yml.key
をバージョン管理に含まないように、.gitignore
にconfig/secrets.yml.key
が追加されています。
secrets fileを編集するには、secrets:edit
コマンドを使用する必要があります。secrets:edit
コマンドを実行するとエディタが起動し、secret fileの編集が出来るようになります(エディタは$EDITOR
に設定されているエディタが使用されます)。
EDITOR=vim bin/rails secrets:edit
secret fileのデータを読み込むには、上記secret:setup
コマンドの実行結果に書かれている通り、configにconfig.read_encrypted_secrets = true
を設定する必要があります。config.read_encrypted_secrets
がfalseの場合、secret fileのデータを読み込まないようになっています(デフォルトはfalse)。
secret fileから読み込んだ値はRails.application.secrets
経由で使用出来るようになっています。
なお、暗号化にはaes-256-cbc
が使用されるようになっています。が、デフォルトでAES-128-GCM
を使用するPR(Update secrets to use modern crypto by stouset · Pull Request #28139 · rails/rails)がきており、今後変わりそうです。
���� :nodoc: AS::Duration::ISO8601Serializer
activesupport/lib/active_support/duration/iso8601_serializer.rb
のdocの修正です。
内部向けAPIであるActiveSupport::Duration::ISO8601Serializer
クラスに:nodoc:
を設定しています。
Merge pull request #28105 from y-yagi/add_wrapper_for_plugins_test_runner
railties/lib/rails/generators/rails/plugin/templates/bin/test.tt
、
railties/lib/rails/plugin/test.rb
の修正です。
Rails pluginで使用するtest runner用のscriptで、Railsのprivate APIを直接使用していたのを、test runner用のwrapperファイルを新規に作成し、そちらをrequireするよう修正しています。private APIを外に晒すのを避ける為。
Use double quotes in the generated plugin test script.
railties/lib/rails/generators/rails/plugin/templates/bin/test.tt
の修正です。
Rails pluginで使用するtest runner用のscriptでシングルクォートを使用していた箇所をダブルクォートに修正しています。
Move documentation to the correct place
actionpack/lib/action_dispatch/system_test_case.rb
のdocの修正です。
ActionDispatch::SystemTestCase
クラスのdocの記載されている箇所に誤りがあった(クラス定義の前に無いと正しくdocが生成されないのが、クラス定義の後にdocがあった)のを修正しています。
Fix Rakefile loading generator relatively
railties/lib/rails/api/task.rb
の修正です。
generator
ファイルの読み込みをrequire_relative
で行うよう修正しています。
-require "rails/api/generator" +require_relative "generator"
generator
はtask.rb
と同じディレクトリにあり、LOAD_PATHはデフォルトでは通ってないので、require_relative
じゃないとロード出来ないから、ですかねえ。
Preparing for 5.1.0.beta1 release
各コンポーネントのバージョンを5.1.0.beta1に更新、CHANGELOGのヘッダーにRails 5.1.0.beta1
を追加等を行っています。
actioncable/package.json
、
actionview/package.json
の修正です。
npmとしてリリースするライブラリ(actioncable、rails-ujs)のバージョンも5.1.0-beta1
に更新しています。
Do not override the global variable
tasks/release.rb
の修正です。
gem及びnpmをpushするようのrake taskで、task実行時にグローバル変数を上書きしてしまう処理があったのを、上書きしないよう修正しています。
Add a task to build a draft of the release announcement
tasks/release.rb
の修正です。
release announcement作成用のtaskを追加しています。
Rearrange npm release process again
tasks/release.rb
の修正です。
npm release用の処理を整理しています。prep_release
タスクが冪等になっていなかったのを、冪等になるよう修正したとのことです。
Fix wait_timeout
to configurable for mysql2 adapter
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
の修正です。
MySQL adapterを使用している場合、wait_timeout
の設定が正しく反映されないバグがあったのを修正しています。
Fix w3c_validator.rb validation script
guides/w3c_validator.rb
の修正です。
rails guideのvalidationにMarkupValidator
クラスを使用していたのを、NuValidator
を使用するよう修正しています。
今はhttp://validator.w3.org/nu/
の方が使用するのが推奨されている為、とのことです。
参考:Service » Input » GET · validator/validator Wiki
Merge pull request #28112 from bolek/include-job_id-in-all-active-job-logs
activejob/lib/active_job/logging.rb
の修正です。
Active Jobがデフォルトで出力するログにjob idを含むよう修正ですしています。
Enable Active Model testing for JRuby
.travis.yml
の修正です。
Active Model + JRubyのテストをCIで実行するよう修正しています。
Make HWIA#compact not return nil when no nils
activesupport/lib/active_support/hash_with_indifferent_access.rb
の修正です。
保持しているHashにnilが含まれていない場合に、HashWithIndifferentAccess#compact
がnilを返してしまっていたのを、保持している値をそのまま返すよう修正しています。
Merge pull request #27962 from kamipo/deprecate_quoted_id
Active Recordの修正です。
quote処理にquoted_id
メソッドを使用するのがdeprecateになりました。quoted_id
は昔のquote処理用のメソッドで、現状はtype castingを使用するようになっている為、deprecateにしたとのことです。
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
の修正です。
同じテーブルに対して、remove_reference
メソッドで複数のforeign keys を削除しようとした場合に正常にforeign keyの削除が行われないバグがあったのを修正しています。
Make security policy more prominent in docs
CONTRIBUTING.md
、README.md
の修正です。
security vulnerabilityについてはGitHubのissueにあげるのではなく、http://rubyonrails.org/security/ を参照して欲しい旨説明を追加しています。
Make version short-cut alias to work
railties/lib/rails/command.rb
の修正です。
version
コマンドのショートカット(-v
、--version
)を指定してもversion
コマンドが動作しないバグがあったのを修正しています。
Make help short-cut alias to work
railties/lib/rails/command.rb
の修正です。
help
コマンドのショートカット(-h
、--help
)を指定してもhelp
コマンドが動作しないバグがあったのを修正しています。
Make adding gemfile entry work even if specify only the plugin name
railties/lib/rails/generators/rails/plugin/plugin_generator.rb
の修正です。
rails plugin作成時のディレクトリがrails application配下だった場合に、自動でrails applicationのGemfileにそのpluginを追加する、という処理がありますが。が、それがplugin名を絶対パスで指定しないと動作しないようになっていたのを、相対パスを指定した場合も動作するよう修正しています。
Improve docs for ActiveRecord::Result. [ci skip]
activerecord/lib/active_record/result.rb
のdocの修正です。
ActiveRecord::Result
クラス配下の各メソッドにdocを追加しています。
does not show hidden namespaces in generator’s help
railties/lib/rails/commands/generate/generate_command.rb
の修正です。
generatorのhelpに表示しないように設定していたnamespaceまで出てしまっていたのを、Rails 5.0までと同様に表示されないよう修正しています。