Feature #14534
closedUpgrade to Rails 4.2
0%
Description
Hi,
I want to run redmine on rails 4.
For me (a rails / ruby newbie), it was not a short time task ;), but I'm shure i will rage against this with you help.
I want completed 4 steps, and with it I can run my application, but I have a HTTP/500 error on the welcome controller.
Started GET "/" for 83.217.232.12 at 2013-07-24 13:38:04 +0200 Processing by WelcomeController#index as HTML WARNING: Can't mass-assign protected attributes for Setting: name app/models/setting.rb:173:in `find_or_default' app/models/setting.rb:108:in `[]' app/models/setting.rb:141:in `rest_api_enabled?' app/controllers/application_controller.rb:106:in `find_current_user' app/controllers/application_controller.rb:87:in `user_setup' Completed 500 Internal Server Error in 3ms NoMethodError (undefined method `[]' for nil:NilClass): app/models/setting.rb:95:in `value' app/models/setting.rb:108:in `[]' app/models/setting.rb:141:in `rest_api_enabled?' app/controllers/application_controller.rb:106:in `find_current_user' app/controllers/application_controller.rb:87:in `user_setup'
- Firstly I remove version called in Gemfile for thos gems * rails * jquery-rails * i18n * coderay * fastercsv * builder
- Secondly, I have added 3 gems (because remove on rails core, for fourth version of this framework). * gem "protected_attributes" * gem "actionpack-action_caching", github: "rails/actionpack-action_caching" * gem "rails-observer"
- Thirdly, I have added config.eager_load to config/environments/*.rb (true on production, false on else)
- Fourthly (and I'm not sure of this), I have remove 3 migrations (I have ot skill to rewrite them) * 105_build_projects_tree.rb * 018_set_doc_and_files_notifications.rb * 20110228000100_copy_repositories_log_encoding.rb
Have you ever tried to migrate redmine to rails 4
Related issues
Updated by Toshi MARUYAMA about 10 years ago
- Subject changed from Running redmine on rails 4 to Rails 4 porting
- Priority changed from Urgent to Normal
Updated by Sergiy Nazarov about 10 years ago
#14907 - migrate redmine to rails 4
Updated by Toshi MARUYAMA about 10 years ago
- Related to Feature #14907: Rails 4.0 Support added
Updated by Toshi MARUYAMA about 10 years ago
- Related to deleted (Feature #14907: Rails 4.0 Support)
Updated by Toshi MARUYAMA about 10 years ago
- Has duplicate Feature #14907: Rails 4.0 Support added
Updated by Ondřej Surý almost 10 years ago
Hi,
just checking if there's a plan to add the Rails 4 support yet to do some next-stable Debian release planning.
New rack 1.5 broke rails-3.2, and we would really like to release next stable Debian with as latest rails release as possible by our reverse dependencies.
There's still some time left (about a year) before the archive is frozen, but I would like to be assured that everything will be solved by that time.
Thanks,
O.
Updated by Toshi MARUYAMA almost 10 years ago
- Blocked by Feature #12097: Multi Thread Support added
Updated by Toshi MARUYAMA almost 10 years ago
This is first Rails4 porting revision.
- Git
- Mercurial
Current status
- can run db migrate
- can boot
- can show top page
These are unit test results.
- deprecation warning off
- deprecation warning on
Updated by Toshi MARUYAMA almost 10 years ago
I rebased on r12470.
- Git
- Mercurial
These are unit test results.
- deprecation warning off
- deprecation warning on
Rais4 uses strong parameter by default.
But, Redmine has many ActiveRecord.new and ActiveRecord.create at tests.
For examples: source:tags/2.4.2/test/unit/issue_test.rb#L52
So, I use config.active_record.whitelist_attributes = false.
Updated by Toshi MARUYAMA over 9 years ago
I rebased on r12644.
- Git
- Mercurial
- Tests on Travis
I removed almost all deprecating warnings.
But, awesome_nested_set and acts_as_activity_provider have many deprecating warnings.
So, I use ActiveSupport::Deprecation.silence.
ActiveSupport::Deprecation.silence do
scope.all(provider_options[:find_options].dup)
end
awesome_nested_set master branch requires Rails4.
https://travis-ci.org/marutosi/redmine/builds/16771785
Redmine on Rails3 tests fail on awesome_nested_set 2-1-stable branch.
https://travis-ci.org/marutosi/redmine/builds/16771672
Updated by Toshi MARUYAMA over 9 years ago
- Related to Feature #15367: Replace outdated awesome_nested_set by gem added
Updated by Jean-Philippe Lang over 9 years ago
- Subject changed from Rails 4 porting to Upgrade to Rails 4
- Target version set to 3.0.0
Updated by Toshi MARUYAMA over 9 years ago
I rebased on trunk r12884.
- Git
- Mercurial
- Tests on Travis
Previous revision uses awesome_nested_set 2.1.6 removing Rails4 deprecate warning.
Gemfile:
gem "awesome_nested_set", :git => "git://github.com/marutosi/awesome_nested_set.git", # PR 230, 231 and 232 :ref => "4c4fdfe80f7451b"
So, DB migration of PostgreSQL fails.
https://travis-ci.org/marutosi/redmine/jobs/18922993
== 105 BuildProjectsTree: migrating =========================================== rake aborted! An error has occurred, this and all later migrations canceled: PG::GroupingError: ERROR: column "projects.id" must appear in the GROUP BY clause or be used in an aggregate function LINE 1: ...lft" HAVING COUNT("projects"."lft") > 1 ORDER BY "projects"... ^ : SELECT "projects"."lft", COUNT("projects"."lft") FROM "projects" GROUP BY "projects"."lft" HAVING COUNT("projects"."lft") > 1 ORDER BY "projects"."id" ASC LIMIT 1 /home/travis/.rvm/gems/ruby-1.9.3-p484/bundler/gems/rails-702f3dca61f1/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:791:in `async_exec'
awesome_nested_set master branch and 2-1-stable branch have regression.
- 2-1-stable: fix ActiveRecord::StatementInvalid: Error: Column 'lft' in order clause is ambiguous
Updated by Jean-Philippe Lang over 9 years ago
Gemfile:
gem "awesome_nested_set", :git => "git://github.com/marutosi/awesome_nested_set.git", # PR 230, 231 and 232 :ref => "4c4fdfe80f7451b"
I don't like that, we should either use the official gem or bundle it in Redmine as it was before with the appropriate fix.
Updated by Toshi MARUYAMA over 9 years ago
Updated by Ondřej Surý over 9 years ago
JFTR now that rails 4.1 is out - redmine should target rails 4.1 instead of rails 4.0.
Do you have any idea when that happens?
Updated by Jean-Philippe Lang about 9 years ago
- Subject changed from Upgrade to Rails 4 to Upgrade to Rails 4.1
4.1 indeed. It should happen in fall.
Updated by Jean-Philippe Lang about 9 years ago
toshio harita, we're not targeting Rails 4.0. The branch /sandbox/rails-4.1 is working with Rails 4.1, please don't make changes for 4.0 compatibility/warnings.
Updated by Toshi MARUYAMA about 9 years ago
Sorry.
I need feedback to Rails team that JPL fixed this Rails 4.0 issue.
https://github.com/rails/rails/issues/15471
And I need feedback to awesome_nested_set author.
https://github.com/collectiveidea/awesome_nested_set/pull/242
There is only one DEPRECATION WARNING on Rails 4.0.
https://travis-ci.org/marutosi/redmine/jobs/29510718#L2074
DEPRECATION WARNING: You didn't set config.secret_key_base. Read the upgrade documentation to learn more about this new config option. (called from env_config at /home/travis/.rvm/gems/ruby-1.9.3-p545/gems/railties-4.0.8/lib/rails/application.rb:141)
Updated by Toshi MARUYAMA about 9 years ago
On r13312, some tests fail on Travis.
https://travis-ci.org/marutosi/redmine-bb/jobs/29816929
On my console, following test fails
$ ruby test/unit/issue_test.rb 1) Failure: IssueTest#test_visible_scope_for_member_with_groups_should_return_assigned_issues [test/unit/issue_test.rb:295]: Failed assertion, no message given.
Updated by Saimon Lovell about 9 years ago
Any news on if RedMine will migrate to Rails 4.1?
So far there has been 3 updates (4.1.4) over time and changes are not feature breaking.
I would recommend now would be a good time to start migrating to rails 4.1
I am going to give it a shot and see how far I can go.
Updated by Toshi MARUYAMA about 9 years ago
- Related to Feature #14371: Drop Ruby 1.8.7 support added
Updated by Robert Weclawski almost 9 years ago
Saimon Lovell wrote:
Any news on if RedMine will migrate to Rails 4.1?
So far there has been 3 updates (4.1.4) over time and changes are not feature breaking.
I would recommend now would be a good time to start migrating to rails 4.1I am going to give it a shot and see how far I can go.
Hi Saimon,
any progress on that ? If you got some repo on github for that please let me know.
I would be quite happy if I could help.
--
Regards,
Robert
Updated by Toshi MARUYAMA almost 9 years ago
Robert Weclawski wrote:
any progress on that ? If you got some repo on github for that please let me know.
Updated by Toshi MARUYAMA almost 9 years ago
- Blocked by deleted (Feature #12097: Multi Thread Support)
Updated by Toshi MARUYAMA almost 9 years ago
- Related to Feature #12097: Multi Thread Support added
Updated by Jean-Philippe Lang almost 9 years ago
- Related to Defect #18174: Rails-4.1 branch merge into trunk (r13482) reverts trunk commits added
Updated by Jean-Philippe Lang almost 9 years ago
- Status changed from New to Closed
- Resolution set to Fixed
Updated by Jean-Philippe Lang almost 9 years ago
- Related to Defect #18192: LDAP tests not running with Rails 4.1 added
Updated by Jean-Philippe Lang almost 9 years ago
- Related to Defect #18429: Error raised on project settings after project wiki is deleted added
Updated by Jean-Philippe Lang almost 9 years ago
- Related to Defect #18275: First argument in form cannot contain nil or be empty error on revision view added
Updated by Jean-Philippe Lang almost 9 years ago
- Subject changed from Upgrade to Rails 4.1 to Upgrade to Rails 4.2
- Status changed from Closed to Reopened
Rails 4.2 is about to be released and will be the last 4.x branch. When Rails 5 is out, only Rails 4.2 will get bug fixes (security fixes only for previous versions). So we should target Rails 4.2 for Redmine 3.x.
Updated by Jean-Philippe Lang almost 9 years ago
I've done the upgrade to Rails 4.2 (not yet committed) but there are still some issues:
- latest release of
awesome_nested_set
(3.0.1) is not compatible, this patch is needed:
https://github.com/collectiveidea/awesome_nested_set/commit/2f3f28baf71f4964cedcc2548b51e2a4671e8e10
- the rbpdf gem uses
ActionView::Base.sanitized_allowed_css_properties=
which is deprecated in Rails 4.2
- the sqlserver adapter is not compatible with Rails 4.2, so no SQLServer support for now:
https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues/367
Updated by Toshi MARUYAMA almost 9 years ago
Jean-Philippe Lang wrote:
- latest release of
awesome_nested_set
(3.0.1) is not compatible, this patch is needed:
https://github.com/collectiveidea/awesome_nested_set/commit/2f3f28baf71f4964cedcc2548b51e2a4671e8e10
I reported awesome_nested_set 3.0.1 break Redmine.
https://github.com/collectiveidea/awesome_nested_set/issues/280
Updated by Jean-Philippe Lang almost 9 years ago
Toshi MARUYAMA wrote:
I reported awesome_nested_set 3.0.1 break Redmine.
https://github.com/collectiveidea/awesome_nested_set/issues/280
The error you reported should be fixed in Redmine.
The error with awesome_nested_set 3.0.1 and Rails4.2 is: NoMethodError: undefined method `join_sql' for #<Arel::SelectManager:0xa907c58>
. #join_sql was replaced in the above commit:
https://github.com/collectiveidea/awesome_nested_set/commit/2f3f28baf71f4964cedcc2548b51e2a4671e8e10
Updated by Mischa The Evil over 8 years ago
Jean-Philippe Lang wrote:
I've done the upgrade to Rails 4.2 (not yet committed) but there are still some issues:
- latest release of
awesome_nested_set
(3.0.1) is not compatible, this patch is needed:
https://github.com/collectiveidea/awesome_nested_set/commit/2f3f28baf71f4964cedcc2548b51e2a4671e8e10
This is no longer an issue due to #18860.
- the rbpdf gem uses
ActionView::Base.sanitized_allowed_css_properties=
which is deprecated in Rails 4.2
I've relayed this issue to Jun as https://github.com/naitoh/rbpdf/issues/8.
Updated by Toshi MARUYAMA over 8 years ago
On r13893, PostgreSQL migration fails.
https://travis-ci.org/marutosi/redmine-bb/jobs/47402990#L1278
== 20091114105931 AddViewIssuesPermission: migrating ========================== rake aborted! StandardError: An error has occurred, this and all later migrations canceled: can't convert Symbol into String /home/travis/build/marutosi/redmine-bb/app/models/role.rb:99:in `include?'
Updated by Toshi MARUYAMA over 8 years ago
I have created issue on Rails GitHub.
Rails 4.2 SQLite3 regression: Encoding::UndefinedConversionError: "\xE9" from ASCII-8BIT to UTF-8
https://github.com/rails/rails/issues/18580
Updated by Jean-Philippe Lang over 8 years ago
I've reported another regression with sqlite:
https://github.com/rails/rails/issues/18585
Updated by Toshi MARUYAMA over 8 years ago
On console, IssueTest#test_visible_scope_for_member_with_groups_should_return_assigned_issues always fails.
1) Failure: IssueTest#test_visible_scope_for_member_with_groups_should_return_assigned_issues [test/unit/issue_test.rb:324]: Failed assertion, no message given.
Updated by Jun NAITOH over 8 years ago
Mischa The Evil wrote:
Jean-Philippe Lang wrote:
- the rbpdf gem uses
ActionView::Base.sanitized_allowed_css_properties=
which is deprecated in Rails 4.2I've relayed this issue to Jun as https://github.com/naitoh/rbpdf/issues/8.
This problem fixed by rbpdf 1.18.5.
please bundle update.
Updated by Jean-Philippe Lang over 8 years ago
Jun NAITOH wrote:
This problem fixed by rbpdf 1.18.5.
please bundle update.
Gemfile updated to ~>1.18.5, thanks!
Updated by Jean-Philippe Lang over 8 years ago
- Status changed from Reopened to Closed
- Assignee set to Jean-Philippe Lang
- Resolution set to Fixed
SQLServer compatibility is now fixed.
Updated by Toshi MARUYAMA over 8 years ago
This issue is closed and we dropped awesome_nested_set gem (#18860) in 3.0.0.
But I record some my works.
Jean-Philippe Lang wrote:
Toshi MARUYAMA wrote:
I reported awesome_nested_set 3.0.1 break Redmine.
https://github.com/collectiveidea/awesome_nested_set/issues/280The error you reported should be fixed in Redmine.
Following change fixes on Redmine trunk r13839 (last trunk revision with awesome_nested_set)
with awesome_nested_set 3.0.1.
diff --git a/app/models/issue.rb b/app/models/issue.rb
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -185,7 +185,7 @@ class Issue < ActiveRecord::Base
# the lock_version condition should not be an issue but we handle it.
def destroy
super
- rescue ActiveRecord::RecordNotFound
+ rescue ActiveRecord::StaleObjectError, ActiveRecord::RecordNotFound
# Stale or already deleted
begin
reload
But awesome_nested_set 3.0.2 breaks Redmine.
1) Error: IssueTest#test_visible_and_nested_set_scopes: ActiveRecord::ActiveRecordError: Impossible move, target node cannot be inside moved tree. app/models/issue.rb:1374:in `update_nested_set_attributes' app/models/issue.rb:173:in `create_or_update' test/object_helpers.rb:93:in `generate!' test/unit/issue_test.rb:360:in `test_visible_and_nested_set_scopes'
This is caused by this change.
https://github.com/collectiveidea/awesome_nested_set/commit/87d8c7cc94eadf08
Updated by Etienne Massip about 8 years ago
Jean-Philippe Lang wrote:
SQLServer compatibility is now fixed.
As Toshi noticed (MSSQL
< 2012 which is a bit brutal.
Specifying Rails ~> 4.1 in Gemfile seems to do the trick with trunk @ r14520, do you know if some of the changes that were made when switching from 4.1 to 4.2 aren't 4.1 compatible?