Access Control HTTP Headers - This deprecates config.static_cache_control in favor of config.public_file_server.headers, we use this in config/environments/production.rb.
Turbolinks jumps from 2 to 5 - Wouldn't recommend using this for a while, honestly. Not tested nearly enough so far and missing some basic functionality from Turbolinks "Classic".
devise-two-factor, 3.0.0 will be released following Devise 4's release. Includes a required update for attr_encrypted, see UPGRADING.md. I helped update this! ^_^ (!4216 (merged))
devise-async, someone has had a PR open since January 2016 to support Devise 4, it hasn't been merged yet. Replaced with an official ActiveJob functionality in Devise 4.1.0. (!4216 (merged))
jquery-scrollto-rails, hasn't been updated since April 2014 and won't allow railties 5. Maybe we should just vendor the jQuery file instead? (Moved to a vendored file in !4088 (merged))
sidekiq, full support for Rails 5 (including the web UI) is available in 4.2.0. (!6349 (merged))
Sinatra, Sidekiq uses a vanilla Rack app with v4.2.0 of the gem, so we can drop Sinatra entirely. Sinatra 2.0 will support Rack 2, but we don't need it outside of Sidekiq anyway. (!6349 (merged))
I've updated my notes (see above) to be as comprehensive as I can assure. Should cover just about every gem (those explicitly mentioned in the Gemfile, at least) that needs updating, I think. I've opened issues or commented on existing issues for every gem that seemed stalled (I like pushing the ecosystem forward ). I've also updated gems that have made compatibility releases so far.
Now to wait for Rails 5 to actually be released...
I think we only need to fix https://gitlab.com/gitlab-org/gitlab-ce/issues/13514 so we can support Ruby 2.2. If Ruby 2.2.2 or above will be required. then we will have to completely drop support for Ruby 2.1.
@connorshea I haven't had a chance to look into it. It's up for grabs, but I may be able to look at it if I have time after finishing off some priority issues.
@jacobvosmaer I think it's a good idea doing 2.3 soon as well. But not sure about ignoring 2.2... For instance Debian / Ubuntu do not use 2.3 by default in their stable releases (it could even be that they don't have the 2.3 option in their stable repo either), some people without the metrics enabled can also be currently running 2.2 without problems, some may be using the same Ruby version for other applications etc...
@jameslopez I agree it would be best if we fix the 'metrics crash rails console' bug. Telling people 'Ruby 2.2 works but sometimes segfaults' is not really an option I think.
@jameslopezhttps://packages.debian.org/jessie/ruby Looks like Ruby 2.1.5 is the default for Jessie, Stretch has 2.3.0 as default. Not sure how Debian's package manager works exactly, but I think that'd mean Debian allows installation of 2.3.0, it just doesn't come with it default? Correct me if I'm wrong.
@jacobvosmaer we are already using ruby 2.3 in unstable/testing, our main target for gitlab package. I have backported gitlab to stable, if required we can backport 2.3 to stable.
@jacobvosmaer I must say I don't have a strong opinion on this, but see https://gitlab.com/gitlab-org/gitlab-ce/issues/14286#note_4589400 - In my opinion some people could be using it already or if they want to install Gitlab on premises, Ruby 2.3 may not the default Ruby in many distros? For instance, looks like Ruby 2.3 is not even available in any official stable release of Debian - only testing/unstable:
Ruby 2.3 may not the default Ruby in many distros? For instance, looks like Ruby 2.3 is not even available in any official stable release of Debian - only testing/unstable:
@jameslopez people have had to compile Ruby from source to run GitLab for many years now. Stable OS releases move at a completely different speed from the Ruby on Rails world. If we start walking in step with Debian we will fall behind Rails. I think pursuing apt-get install ruby is a mistake.
I think our goal should be to upgrade to a Ruby version that works with Rails and that does not crash when it runs GitLab. That would be either Ruby 2.2 or Ruby 2.3; not both because that creates a support burden for us.
@jacobvosmaer that's a fair point. As I said, I don't really have a strong opinion - just want to make sure we won't get many support tickets / requests if we only support 2.3 :)
Gems which currently look to be abandoned and will need replacing:
quiet_assets, thankfully sprockets-rails has a PR open to add the functionality without an extra gem. (I'm not sure about what to do for this one, that PR hasn't been merged yet and Rails 5.0.0.rc1 is out)
devise-async, a PR was opened in January, hasn't been merged or commented-on yet. (Devise Async can be replaced by a feature in Devise itself. Due to a bug we'll have to update to Devise 4.1.0 to use it, however)
To find uses of methods that were removed or deprecated in 5.0, see the following (not comprehensive, see the pull request for all removals in Rails 5 as well as the release notes for all deprecations):
We can update the controller and request specs to get around this deprecation with the rails5-spec-converter gem, I tested and there are 93 files that need to be updated!
@jacobvosmaer@connorshea we are planning to release rails 4.2.6 with next stable release of debian (stretch). It would be helpful if the last gitlab version with rails 4.2 is supported for security updates for a longer time.
[2016-Nov-05] Transition freeze[2016-Dec-05] Mandatory 10-day migrations[2017-Jan-05] Soft freeze (no new packages, no re-entry, 10-day migrations)[2017-Feb-05] Full freeze
We can't include new dependencies after Jan 5. If we can have the last gitlab release with rails 4.2 as an LTS release (only security fixes would be enough), that would be great. For newer versions we can use stretch-backports once stretch is released (hopefully 2-3 months from 2017 Feb 05). So at least 2017 May would be a good time for LTS support (the more it can extend, the better).
@pravi Thanks for the timeline. At this time, we can't commit to having a GitLab LTS version with Rails 4.2. We don't have a definitive timeline for the transition to Rails 5, but I think waiting until mid-2017 would be a bit too long to wait.
Replace all uses of redirect_back_or_default with redirect_back, as is done here. I think this should be included in a separate MR.
Fix all the deprecation warnings for the Controller tests using this gem.
Fix all the deprecation warnings for uniq being replaced by distinct.
Classes should inherit from ApplicationRecord rather than ActiveRecord::Base in Rails 5, see the BigBinary post on the topic.
Fix all other deprecation warnings.
Figuring out a better fix for the Attempting to generate a URL from non-sanitized request parameters! An attacker can inject malicious data into the generated URL, such as changing the host. Whitelist and sanitize passed parameters to be secure. errors besides just setting config.action_controller.permit_all_parameters = true. See also https://github.com/rails/rails/issues/26289.
@stanhu@smcgivern@DouweM I want to make this happen (one of my OKR) in Q3. I am willing to lead it but I need developer help here. I would like to have @vsizov full-time working on this starting from 8th of July. Can we make this happen?
@jschatz1 I probably need frontend developer help here if something got broken on FE side. Who can be my point of contact in case I need help? Someone who know both FE and a bit of Rails is preferable.
@dzaporozhets On the Platform side, @mydigitalself and I were looking at doing this in the 9.5/9.6 timeframe, which sounds like it would work with your planning. I think it would be more appropriate to put someone from Platform on this than from Discussion though, since the team has more people available, and this is not Discussion-specific. Does that work for you?
On the Platform side, @mydigitalself and I were looking at doing this in the 9.5/9.6 timeframe, which sounds like it would work with your planning
I think it would be more appropriate to put someone from Platform on this than from Discussion though, since the team has more people available, and this is not Discussion-specific. Does that work for you?
@DouweM if it's crucial for planning I am ok with a different candidate. Reasons why I chose @vsizov were next:
EU timezone.
He works in GitLab for a long time already so I expect wider knowledge of the code base.
He does CE to EE merges since forever which means he is used to fixing code and tests. And again should be good for general awareness of different code parts.
When I asked him if this is an interesting task he said yes.
@dzaporozhets I'm more than fine with @vsizov doing it, but I'm not sure if @smcgivern had him in mind for something else. Does reasons do make sense :)
@dzaporozhets This might be a big deal for FE. @lbennett should be able to handle this. Let's do it at least %9.5. %9.4 is completely packed and we are trying to clean up a lot of UI Polish bugs this month.
@dzaporozhets@stanhu I have a contact at Google that works on open source projects relating to Google Cloud and he's worked on fog-google before, so he can possibly help out if needed.
@dzaporozhets I'm happy for @vsizov to take this, but I may need to borrow someone from @DouweM's team for 9.5. @DouweM and I can handle that with the relevant PMs, though - this is just FYI
@dzaporozhets Everyone on my team is already working on their own %10.0 tasks as well... I may have 1 or 2 (partially) available next week if their other assignments end up taking less time than expected, but not for at least a few days.
@oswaldo ah right, I forgot about that Please keep working on your other deliverable until you're blocked, then take a look at this if you have any free time.
It seems like we break Rails 5 compatibility in CE master faster than I fix it in rails5 branch. That means that "complete state" may never happen. Maybe this is a wrong impression due to my vacation and other tasks but still... any help is appreciated.
Is it possible that we make a job that would try to integrate Rails 5, and make it allowed to fail and people would be aware what could break in Rails 5? I feel this is similar to CE to EE, people just need to be aware otherwise we're never going to catch up.
@godfat CE to EE happens regularly, has 5 people doing daily merges and is requires for GitLab to be released. So besides being aware, people also solve problems. Rails 5 is not blocking anything neither have enough manpower to be more than "concern".
So by adding rails 5 CI job that will always fail we won't move much forward
@godfat That possible but I'm not sure it is worth to do that. Before my vacation, it didn't look that bad, the main problem is that we dedicated ~0.7-0.8 of full-time working developers on this but we need (initially planned) 1.5 full-time working developers. It's my subjective take on this.
@smcgivern I talked with @sytses and we agreed it better to be done quickly (in a month) by assigning several people to it. However, we don't want to hurt Q4 roadmap. So we can delay it up to Q1 2018. I leave it up to you and @DouweM to decide how to proceed with it based on resources you have. OK?
@dzaporozhets I'd really hate to leave it that long, because there's an MR already making good progress.
Next release (10.2) we have our summit, but I think @DouweM and I should each be able to provide one person to help with this for the 10.3 release. We have some new team members joining (or already joined in the case of @mbergeron), so that will help with capacity.
@dzaporozhets@vsizov I'm moving this to 10.3 for that reason, and I will try to have Valery + another developer work on this in 10.3, with one more from Douwe's team.
GitLab is moving all development for both GitLab Community Edition
and Enterprise Edition into a single codebase. The current
gitlab-ce repository will become a read-only mirror, without any
proprietary code. All development is moved to the current
gitlab-ee repository, which we will rename to just gitlab in the
coming weeks. As part of this migration, issues will be moved to the
current gitlab-ee project.
If you have any questions about all of this, please ask them in our
dedicated FAQ issue.
Using "gitlab" and "gitlab-ce" would be confusing, so we decided to
rename gitlab-ce to gitlab-foss to make the purpose of this FOSS
repository more clear
I created a merge requests for CE, and this got closed. What do I
need to do?
Everything in the ee/ directory is proprietary. Everything else is
free and open source software. If your merge request does not change
anything in the ee/ directory, the process of contributing changes
is the same as when using the gitlab-ce repository.
Will you accept merge requests on the gitlab-ce/gitlab-foss project
after it has been renamed?
No. Merge requests submitted to this project will be closed automatically.
Will I still be able to view old issues and merge requests in
gitlab-ce/gitlab-foss?
Yes.
How will this affect users of GitLab CE using Omnibus?
No changes will be necessary, as the packages built remain the same.
How will this affect users of GitLab CE that build from source?
Once the project has been renamed, you will need to change your Git
remotes to use this new URL. GitLab will take care of redirecting Git
operations so there is no hard deadline, but we recommend doing this
as soon as the projects have been renamed.
Where can I see a timeline of the remaining steps?