aboutsummaryrefslogtreecommitdiffstats
path: root/railties/CHANGELOG.md
blob: ae13c3ccc957d472cb92aed32d3c50279401c57a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
## Rails 4.0.0 (unreleased) ##

*   Move rails.png into a data-uri. One less file to get generated into a new
    application. This is also consistent with the removal of index.html.

    *Steve Klabnik*

*   The application rake task `doc:rails` generates now an API like the
    official one (except for the links to GitHub).

    *Xavier Noria*

*   Allow vanilla apps to render CoffeeScript templates in production

    Vanilla apps already render CoffeeScript templates in development and test
    environments.  With this change, the production behavior matches that of
    the other environments.

    Effectively, this meant moving coffee-rails (and the JavaScript runtime on
    which it is dependent) from the :assets group to the top-level of the
    generated Gemfile.

    *Gabe Kopley*

*   Don't generate a scaffold.css when --no-assets is specified

    *Kevin Glowacz*

*   Add support for generate scaffold password:digest

    * adds password_digest attribute to the migration
    * adds has_secure_password to the model
    * adds password and password_confirmation password_fields to _form.html
    * omits password from index.html and show.html
    * adds password and password_confirmation to the controller
    * adds unencrypted password and password_confirmation to the controller test
    * adds encrypted password_digest to the fixture

    *Sam Ruby*

*   Rails now generates a `test/test_helper.rb` file with `fixtures :all` commented out by default,
    since we don't want to force loading all fixtures for user when a single test is run. However,
    fixtures are still going to be loaded automatically for test suites.

    To force all fixtures to be create in your database, use `rails test -f` to run your test.

    *Prem Sichanugrist*

*   Add `rails test` command for running tests

    To run all tests:

        $ rails test

    To run a test suite

        $ rails test [models,helpers,units,controllers,mailers,...]

    To run a selected test file(s):

        $ rails test test/unit/foo_test.rb [test/unit/bar_test.rb ...]

    To run a single test from a test file

        $ rails test test/unit/foo_test.rb -n test_the_truth

    For more information, see `rails test --help`.

    This command will eventually replace `rake test:*` and `rake test` tasks.

    *Prem Sichanugrist and Chris Toomey*

*   Improve service pages with new layout (404, etc).

     *Stanislav Sobolev*


## Rails 4.0.0.beta1 (February 25, 2013) ##

*   Improve `rake stats` for JavaScript and CoffeeScript: ignore block comments
    and calculates number of functions.

    *Hendy Tanata*

*   Ability to use a custom builder by passing `--builder` (or `-b`) has been removed.
    Consider using application template instead. See this guide for more detail:
    http://guides.rubyonrails.org/rails_application_templates.html

    *Prem Sichanugrist*

*   Fix `rake db:*` tasks to work with `DATABASE_URL` and without `config/database.yml`.

    *Terence Lee*

*   Add notice message for destroy action in scaffold generator.

    *Rahul P. Chaudhari*

*   Add two new test rake tasks to speed up full test runs.

    * `test:all`: run tests quickly by merging all types and not resetting db.
    * `test:all:db`: run tests quickly, but also reset db.

    *Ryan Davis*

*   Add `--rc` option to support the load of a custom rc file during the generation of a new app.

    *Amparo Luna*

*   Add `--no-rc` option to skip the loading of railsrc file during the generation of a new app.

    *Amparo Luna*

*   Fixes database.yml when creating a new rails application with '.'
    Fixes #8304.

    *Jeremy W. Rowe*

*   Restore Rails::Engine::Railties#engines with deprecation to ensure
    compatibility with gems such as Thinking Sphinx
    Fixes #8551.

    *Tim Raymond*

*   Specify which logs to clear when using the `rake log:clear` task.
    (e.g. rake log:clear LOGS=test,staging)

    *Matt Bridges*

*   Allow a `:dirs` key in the `SourceAnnotationExtractor.enumerate` options
    to explicitly set the directories to be traversed so it's easier to define
    custom rake tasks.

    *Brian D. Burns*

*   Deprecate `Rails::Generators::ActiveModel#update_attributes` in favor of `#update`.

    ORMs that implement `Generators::ActiveModel#update_attributes` should change
    to `#update`. Scaffold controller generators should change calls like:

        @orm_instance.update_attributes(...)

    to:

        @orm_instance.update(...)

    This goes along with the addition of `ActiveRecord::Base#update`.

    *Carlos Antonio da Silva*

*   Include `jbuilder` by default and rely on its scaffold generator to show json API.
    Check https://github.com/rails/jbuilder for more info and examples.

    *DHH*

*   Scaffold now generates HTML-only controller by default.

    *DHH + Pavel Pravosud*

*   The generated `README.rdoc` for new applications invites the user to
    document the necessary steps to get the application up and running.

    *Xavier Noria*

*   Generated applications no longer get `doc/README_FOR_APP`. In consequence,
    the `doc` directory is created on demand by documentation tasks rather than
    generated by default.

    *Xavier Noria*

*   App executables now live in the `bin/` directory: `bin/bundle`,
    `bin/rails`, `bin/rake`. Run `rake rails:update:bin` to add these
    executables to your own app. `script/rails` is gone from new apps.

    Running executables within your app ensures they use your app's Ruby
    version and its bundled gems, and it ensures your production deployment
    tools only need to execute a single script. No more having to carefully
    `cd` to the app dir and run `bundle exec ...`.

    Rather than treating `bin/` as a junk drawer for generated "binstubs",
    bundler 1.3 adds support for generating stubs for just the executables
    you actually use: `bundle binstubs unicorn` generates `bin/unicorn`.
    Add that executable to git and version it just like any other app code.

    *Jeremy Kemper*

*   `config.assets.enabled` is now true by default. If you're upgrading from a Rails 3.x app
    that does not use the asset pipeline, you'll be required to add `config.assets.enabled = false`
    to your application.rb. If you don't want the asset pipeline on a new app use `--skip-sprockets`

    *DHH*

*   Environment name can be a start substring of the default environment names
    (production, development, test). For example: tes, pro, prod, dev, devel.
    Fixes #8628.

    *Mykola Kyryk*

*   Add `-B` alias for `--skip-bundle` option in the rails new generators.

    *Jiri Pospisil*

*   Quote column names in generates fixture files. This prevents
    conflicts with reserved YAML keywords such as 'yes' and 'no'
    Fixes #8612.

    *Yves Senn*

*   Explicit options have precedence over `~/.railsrc` on the `rails new` command.

    *Rafael Mendonça França*

*   Generated migrations now always use the `change` method.

    *Marc-André Lafortune*

*   Add `app/models/concerns` and `app/controllers/concerns` to the default directory structure and load path.
    See http://37signals.com/svn/posts/3372-put-chubby-models-on-a-diet-with-concerns for usage instructions.

    *DHH*

*   The `rails/info/routes` now correctly formats routing output as an html table.

    *Richard Schneeman*

*   The `public/index.html` is no longer generated for new projects.
    Page is replaced by internal `welcome_controller` inside of railties.

    *Richard Schneeman*

*   Add `ENV['RACK_ENV']` support to `rails runner/console/server`.

    *kennyj*

*   Add `db` to list of folders included by `rake notes` and `rake notes:custom`. *Antonio Cangiano*

*   Engines with a dummy app include the rake tasks of dependencies in the app namespace.
    Fixes #8229.

    *Yves Senn*

*   Add `sqlserver.yml` template file to satisfy `-d sqlserver` being passed to `rails new`.
    Fixes #6882.

    *Robert Nesius*

*   Rake test:uncommitted finds git directory in ancestors *Nicolas Despres*

*   Add dummy app Rake tasks when `--skip-test-unit` and `--dummy-path` is passed to the plugin generator.
    Fixes #8121.

    *Yves Senn*

*   Add `.rake` to list of file extensions included by `rake notes` and `rake notes:custom`. *Brent J. Nordquist*

*   New test locations `test/models`, `test/helpers`, `test/controllers`, and
    `test/mailers`. Corresponding rake tasks added as well. *Mike Moore*

*   Set a different cache per environment for assets pipeline
    through `config.assets.cache`.

    *Guillermo Iguaran*

*   `Rails.public_path` now returns a Pathname object. *Prem Sichanugrist*

*   Remove highly uncommon `config.assets.manifest` option for moving the manifest path.
    This option is now unsupported in sprockets-rails.

    *Guillermo Iguaran & Dmitry Vorotilin*

*   Add `config.action_controller.permit_all_parameters` to disable
    StrongParameters protection, it's false by default.

    *Guillermo Iguaran*

*   Remove `config.active_record.whitelist_attributes` and
    `config.active_record.mass_assignment_sanitizer` from new applications since
    MassAssignmentSecurity has been extracted from Rails.

    *Guillermo Iguaran*

*   Change `rails new` and `rails plugin new` generators to name the `.gitkeep` files
    as `.keep` in a more SCM-agnostic way.

    Change `--skip-git` option to only skip the `.gitignore` file and still generate
    the `.keep` files.

    Add `--skip-keeps` option to skip the `.keep` files.

    *Derek Prior & Francesco Rodriguez*

*   Fixed support for `DATABASE_URL` environment variable for rake db tasks.

    *Grace Liu*

*   `rails dbconsole` now can use SSL for MySQL. The `database.yml` options sslca, sslcert, sslcapath, sslcipher
    and sslkey now affect `rails dbconsole`.

    *Jim Kingdon and Lars Petrus*

*   Correctly handle SCRIPT_NAME when generating routes to engine in application
    that's mounted at a sub-uri. With this behavior, you *should not* use
    `default_url_options[:script_name]` to set proper application's mount point by
    yourself.

     *Piotr Sarnacki*

*   `config.threadsafe!` is deprecated in favor of `config.eager_load` which provides a more fine grained control on what is eager loaded .

    *José Valim*

*   The migration generator will now produce AddXXXToYYY/RemoveXXXFromYYY migrations with references statements, for instance

        rails g migration AddReferencesToProducts user:references supplier:references{polymorphic}

    will generate the migration with:

        add_reference :products, :user, index: true
        add_reference :products, :supplier, polymorphic: true, index: true

    *Aleksey Magusev*

*   Allow scaffold/model/migration generators to accept a `polymorphic` modifier
    for `references`/`belongs_to`, for instance

        rails g model Product supplier:references{polymorphic}

    will generate the model with `belongs_to :supplier, polymorphic: true`
    association and appropriate migration.

    *Aleksey Magusev*

*   Set `config.active_record.migration_error` to `:page_load` for development.

     *Richard Schneeman*

*   Add runner to `Rails::Railtie` as a hook called just after runner starts.

     *José Valim & kennyj*

*   Add `/rails/info/routes` path, displays same information as `rake routes` .

     *Richard Schneeman & Andrew White*

*   Improved `rake routes` output for redirects.

     *Łukasz Strzałkowski & Andrew White*

*   Load all environments available in `config.paths["config/environments"]`.

     *Piotr Sarnacki*

*   Remove `Rack::SSL` in favour of `ActionDispatch::SSL`.

     *Rafael Mendonça França*

*   Remove Active Resource from Rails framework.

     *Prem Sichangrist*

*   Allow to set class that will be used to run as a console, other than IRB, with `Rails.application.config.console=`. It's best to add it to `console` block.

    Example:

        # it can be added to config/application.rb
        console do
          # this block is called only when running console,
          # so we can safely require pry here
          require "pry"
          config.console = Pry
        end

    *Piotr Sarnacki*

*   Add convenience `hide!` method to Rails generators to hide current generator
    namespace from showing when running `rails generate`.

     *Carlos Antonio da Silva*

*   Rails::Plugin has gone. Instead of adding plugins to vendor/plugins use gems or bundler with path or git dependencies.

    *Santiago Pastorino*

*   Set config.action_mailer.async = true to turn on asynchronous
    message delivery.

     *Brian Cardarella*

Please check [3-2-stable](https://github.com/rails/rails/blob/3-2-stable/railties/CHANGELOG.md) for previous changes.