Today I upgraded my Redmine installation to version 3.2.1. The old installation version was 2.x something, manually patched for numerous Rails vulnerabilities. I have been using Redmine last 6 years for now and will keep using it for new projects. While some of my clients have their own tracker, Redmine is a nice solution for those who do not.
The biggest motivation for the upgrade was the new responsive standard UI theme. 2.x uses fixed-width theme that is very uncomfortable to use on small screen devices. I also wanted to get rid of the current Rails vulnerabilities.
I followed the upgrade guide pretty closely. However, after backing up the database and files, I wiped my old Ruby and gems installation. There are many ways to do it and they depend on the currently installed Ruby versions. After cleaning up the environment, I installed a new Ruby version, 2.2.5. Version 2.3.x is said to not work with Redmine yet.
Installing a new Redmine codebase was pretty easy. This was well-documented in the installation guide. I noticed that the Bundler still installs system-wide gems. This will matter if you need to maintain multiple Ruby applications. For someone using NPM daily, this kind of setup can be a complete surprise. Thankfully, I only need to deal with a single Ruby application.
Thin, a Ruby application server, continued to run the installation. It has to be added to the gem set of Redmine or you will get an error:
`require': cannot load such file -- thin (LoadError)
This is not pointed out in the Redmine installation guide.
I only use one plugin, Time Logger. It is a continuation of the redmine_time_tracker plugin which stopped working on newer Redmine versions. Time Logger adds header Start/Stop buttons on the issue pages to start/stop time tracking. The plugin works great with Redmine 3.x.
While everything worked after upgrade, there was one unresolved issue, a warning message from the htmlentities gem:
warning: duplicated key at line 466 ignored: "inodot"
I looked for possible solutions but with the current gem dependency tree, it's not possible to upgrade the gem to the version where this is fixed. This warning is said to be emitted only when using Ruby 2.2.x. The warning is written into stderr only on app startup and is not that big issue.