Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Planning Issue: Upgrade rails from 3.2 to rails 6 #305

Open
11 of 20 tasks
SidharthBansal opened this issue Jan 26, 2019 · 32 comments
Open
11 of 20 tasks

Planning Issue: Upgrade rails from 3.2 to rails 6 #305

SidharthBansal opened this issue Jan 26, 2019 · 32 comments

Comments

@SidharthBansal
Copy link
Member

SidharthBansal commented Jan 26, 2019

  • Rails upgrade
  • Rails 3.2 => Rails 4.0
  • Rails 4.0 => Rails 4.1
  • Rails 4.1 => Rails 4.2
  • Rails 4.2 => Rails 5.0
  • Rails 5.0 => Rails 5.1
  • Rails 5.1 => Rails 5.2
  • Rails 5.2 => Rails 6.0
  • UI update and collaborate with others
  • Fix existing deprecation warnings
  • Write Test Coverage for new Rails 6.0 Unit testing Functional testing
  • JS API endpoints of MapKnitter
  • write Functional Test
  • Karma, Jasmine, Mocha, QUnit. Decide which one??
  • Code Clean up after upgrade to Rails 6.0
  • Generate Code Coverage Report
  • Add git tools
  • codeclimate
  • codacy
  • codecov
    Part of MapKnitter Upgrades planning (overall) #300
@grvsachdeva grvsachdeva changed the title Rails Upgrade Upgrade rails from 3.2 to rails 5 Jan 26, 2019
@Dhiraj240
Copy link
Member

@SidharthBansal @jywarren @gauravano I would like to work on the this from now onwards so that i get familiar with the end parts of the project before GSOC.
So should i start with breaking up the issues and submitting PR ?

@SidharthBansal
Copy link
Member Author

You can try some small issues of mapknitter to become familiar with this repo. Then you can start breaking this and open up a pr for this issue.

@jywarren
Copy link
Member

this will be a big project! Noting that #304 -- expanded test coverage -- will be VERY helpful before taking on the upgrades, so we can be sure to know what is broken with each change.

@SidharthBansal
Copy link
Member Author

@Dhiraj240 you can start working on #304 then

@Dhiraj240
Copy link
Member

@SidharthBansal @jywarren alright !!

@kaustubh-nair
Copy link
Member

I'm interested in this project too!
I'd love to help you guys out in improving test coverage 😃
If there's an issue I can fix please let me know!

@Dhiraj240
Copy link
Member

@kaunair You can see the available issues in the repository although one of them is highlighted in the above chat.But were you able to install it ?

@grvsachdeva
Copy link
Member

We would also love to have your help @kaunair. But, how about doing the testing part after switch to yarn part, you have claimed? You can start both too, we don't mind that too 😄 . Thank you!

@jywarren
Copy link
Member

https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-3-2-to-rails-4-0 is GREAT and @Souravirus used this in the plots2 upgrade process:

OK this is intimidating, but we can all pitch in here and do it step by step. It's also important to remember that MapKnitter is a MUCH easier and simpler application.

That page also lists upgrade paths for many other, all the way to 6. If I recall, 3.2>4.1 was the hardest, and then it got easier.

@kaustubh-nair
Copy link
Member

Hey @jywarren those links look really useful!
I understand that having decent test coverage is going to be really important for upgrading to rails 5
Since you've already added some tests, could you give a few pointers to what are the next important features that need to be covered by tests?
I think I'll dabble a bit on tests once I finish my current pr!
Thanks!

@jywarren
Copy link
Member

jywarren commented Feb 27, 2019 via email

@SidharthBansal
Copy link
Member Author

SidharthBansal commented Feb 28, 2019

Hi, new version of Rails is 6. So it will be great if we can increment it at MK till the latest version instead of Rails 5. @jywarren if you agree then please change the tiitle of the issue.
Thanks

@jywarren jywarren changed the title Upgrade rails from 3.2 to rails 5 Upgrade rails from 3.2 to rails 6 Feb 28, 2019
@alaxalves
Copy link
Member

Hey @jywarren I'm a student from Brazil and I'd like to work with PublicLab team as a GSoC intern and work with MapKnitter rails 5 upgrade. I have already made some contribution to Mapknitter in #363 #450 #429 and #357. I'm very eager to work with this project in particular since I have previously worked with this type of framework upgrade in Noosfero - a huge open source project - in #1438.

@alaxalves
Copy link
Member

This is an issue that's great for the break-me-up label xD

@avsingh999
Copy link
Member

Hi, new version of Rails is 6. So it will be great if we can increment it at MK till the latest version instead of Rails 5. @jywarren if you agree then please change the tiitle of the issue.
Thanks

@jywarren @SidharthBansal Rails 6 is in Beta according to this link https://rubygems.org/gems/rails/versions so it would be good for changing rails 3.2 to rails 6.0 I am just confirming.
thank you : )

@jywarren
Copy link
Member

jywarren commented Apr 4, 2019 via email

@SidharthBansal SidharthBansal changed the title Upgrade rails from 3.2 to rails 6 Planning Issue: Upgrade rails from 3.2 to rails 6 May 13, 2019
@SidharthBansal
Copy link
Member Author

@alaxalves @kaustubh-nair @jywarren let's discuss the project in this planning issue.
As per @jywarren 's suggestion, I will be mentoring this project (as much as I am capable of). This is my first time mentoring 4-5 big project. I hope everything goes well. 😄

I have heavily edited the above issue body.

@SidharthBansal
Copy link
Member Author

Please feel free to open independent issues for each of the sub-issues present in the above issue body @alaxalves @kaustubh-nair
In the individual issues you can decide which of you will be willing to do.
This will resolve the time difference ambiguity you are facing.

@SidharthBansal
Copy link
Member Author

Let's create a project and a milestone friends for this issue. And I will be requiring your help folks and also don't forget to take help from the vast community.
Ultimately goal of GSoC is not completing a project but its learning how to develop team spirit and friendly relations. Once you will be happy conversing with each other you all will feel you are not working, just you are discussing things online like on chat. So, it will be fun folks. Don't take stress. This summer will be going to be amazing.

@SidharthBansal
Copy link
Member Author

SidharthBansal commented May 13, 2019

@alaxalves will you take the initiative to do the following?

  • Open up a milestone
  • Open Up a project
  • Open sub issues for all the above listed in the issue body
  • Edit the issue body with more information
  • Comment on the issues you wanna work on

@kaustubh-nair I will like to ask you in case you are interested in doing the following. It will be great help to the Public Lab community

  • Link all the issues made by @alaxalves to this main planning issue. Don't forget to link them in the planning issue body
  • Link all the issues in the milestone
  • Link all the issues in the project section
  • Edit the issue body to add the missing parts needed for the project.
  • Comment under the sub issues which you wanna work on.
  • label all the issues with proper labels like gsoc, rails, design etc whatsoever feels appropriate.

Once we are done with these steps, then you both can decide which one will be working on which subissue.
Next step is to call a negotiator for conflict resolutions. Me, Jeff or Sourav can help you to decide at the issues for this.
There will be some issues which will require both of you to work on simultaneously. While others may require only one participant involvement.
Once we are decided with this.

  • Then @kaustubh-nair I will ask you to help us further by listing the issues in the order in which they need to get executed. We will requiring a lot of syncing friends. So, order matters a lot.
  • @alaxalves please then check the order, do movements in the planning issue if required.
    I hope these steps will help you folks. Looking forward to see the sub issues soon.

@divyabaid16
Copy link
Contributor

Hey!!!
Should I create a check list of the task that I had mentioned in my GSoC proposal in a seperate issue and you can guide me there?

@SidharthBansal
Copy link
Member Author

Also folks, we can use tree-like structures here.
There may be sub-issues which require further break up.
Like link tests to these planning issues. In the tests subissue you can break it into sub sub issues unit tests, controller tests and so on.
This help us to have modularity at different levels. We will be dividing requirements in top-down approach and we will be executing them in a bottom-up manner at individual sub-issues. As soon as we close the sub-issues and sub sub-issues please check them.
Does this makes sense?
Thanks

@SidharthBansal
Copy link
Member Author

@divyabaid16 yeah sure. I will help you there for sure.

@divyabaid16
Copy link
Contributor

Okay I will open it soon. :)

@SidharthBansal
Copy link
Member Author

@divyabaid16 #593 please edit it. We can have further conversations there.
Thanks

@SidharthBansal
Copy link
Member Author

Just noticed the tree like structure can also be adopted using the cards of the project section. So, please use that too. It will help us.

@alaxalves
Copy link
Member

@alaxalves will you take the initiative to do the following?

  • Open up a milestone
  • Open Up a project
  • Open sub issues for all the above listed in the issue body
  • Edit the issue body with more information
  • Comment on the issues you wanna work on

@kaustubh-nair I will like to ask you in case you are interested in doing the following. It will be great help to the Public Lab community

  • Link all the issues made by @alaxalves to this main planning issue. Don't forget to link them in the planning issue body
  • Link all the issues in the milestone
  • Link all the issues in the project section
  • Edit the issue body to add the missing parts needed for the project.
  • Comment under the sub issues which you wanna work on.
  • label all the issues with proper labels like gsoc, rails, design etc whatsoever feels appropriate.

Once we are done with these steps, then you both can decide which one will be working on which subissue.
Next step is to call a negotiator for conflict resolutions. Me, Jeff or Sourav can help you to decide at the issues for this.
There will be some issues which will require both of you to work on simultaneously. While others may require only one participant involvement.
Once we are decided with this.

  • Then @kaustubh-nair I will ask you to help us further by listing the issues in the order in which they need to get executed. We will requiring a lot of syncing friends. So, order matters a lot.
  • @alaxalves please then check the order, do movements in the planning issue if required.
    I hope these steps will help you folks. Looking forward to see the sub issues soon.

I started opening sub issues but I need more permissions to put labels in the issues, create projects and such.

@SidharthBansal
Copy link
Member Author

@jywarren can you please help us with the permissions. I think someday you gave me permissions such that I can give permissions to other. But I forget how to upgrade permissions. Please assist us.
Thanks

@kaustubh-nair
Copy link
Member

Hey Sidharth, thanks for the detailed guide!
I'm traveling back home today. I'll start working actively from tomorrow!
Cheers

@alaxalves alaxalves self-assigned this May 14, 2019
@alaxalves
Copy link
Member

alaxalves commented May 14, 2019

I have created the issues you've requested @SidharthBansal and self-assigned to the one I'd like to start working on, I have created the issues based on the following diagram took from my proposal and on what I have previously discussed with the PublicLab members. If there's any change or suggestion let me know 😄

@SidharthBansal
Copy link
Member Author

SidharthBansal commented May 14, 2019 via email

@IgorWilbert
Copy link
Member

Hello! As I was talking to @alaxalves , I am very interested in helping out with this proposal! Here are some thoughts I had after reading @alaxalves proposal:

  • The goal to "Update the entire code to a newer Ruby language syntax and Rails framework syntax" seems to be broad and very time-consuming. Maybe we should divide it into smaller parts to handle it better;
  • I see that improving CI and maybe implement Docker are in your roadmap. I have some experience with CircleCI, Docker and Kubernetes from my internship, so I hope I can help you with this;
  • If the implementation and stabilization of Rails version takes longer than we expect, perhaps we should consider "skipping" some versions, e.g. going from 5.0.1 straight to 5.2.2, without using 5.1.6;
  • To stabilize the versions, I believe the best thing we can do is to write test as much general purpose as possible. This won't only allow us to save time by reusing code, but also will provide some standard to our tests;
  • I have doubts about the replacement of Bower. I see that @alaxalves has made some good progress here. Is there anything missing to complete it?

Looking forward to know your thoughts, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment