airavata-courses / TeamAviato

A weather predictor SaaS using Microservices.
http://courses.airavata.org/
0 stars 3 forks source link

Ideas on how to proceed with branching for the second milestone. #27

Closed amolrbhagwat closed 7 years ago

LaxmiBhavaniM commented 8 years ago

As of now we just have separate feature branches. We haven't had a development branch yet. How about merging our features from Milestone 1 onto development branch and continue working on our individual branches?

tilaks26 commented 8 years ago

Yeah. Sounds good. But we won't be able to successfully build the development branch cause of the clash in .travis.yml files.

amolrbhagwat commented 8 years ago

@gouravshenoy @vaglomangirish kindly share your thoughts.

vaglomangirish commented 8 years ago

There are 3 options from what I see:-

1) You could have dev branches created for every micro service, wherein you merge the milestone 1 code and build on top of it, without touching the milestone 1 branches. Once you finish milestone 2, take a new milestone 2 branch for every microservice.

2) Continue developing from the current branches and create a new fork for milestone 2, like you created for milestone 1 for submission

3) Ideal way would be (had discussed this with other AIs and @marpierc Marlon, @smarru Suresh), create your own git organization (e.g. airavata-courses is an organization) and separate repos for every micro service under your organization. Each microservice repo would have master, dev and deliverable branches created.

You may choose whichever option works the best for you, just make sure you don't lose the milestone 1 checkpoint and during your submission you have the deliverable repo and instructions clear.

Hope this helps.

amolrbhagwat commented 8 years ago

@vaglomangirish What is your opinion on having a milestone branch for each microservice? We merge our current branches to their milestone branches for each milestone, and continue development on the current branches. (It's kind of like method 1 which you mentioned)

gouravshenoy commented 8 years ago

@amolrbhagwat , In my opinion creating a separate organization (analogy: similar to 'Airavata-Courses') would be a good choice, and then maintaining different repositories under the organization for different micro-services (analogy: similar to 'Team-Aviato', 'Team-Apex', etc). And then within each repository (for that micro-service), have master, dev & milestone-x release branches.

But again, if that does not seem feasible for your team then you can have separate 'dev' branches for each micro-service under the current setup. You could create 'dev-' branch for working on developments (eg: dev-api-gateway). And when you feel that it is ready for a milestone release, you can merge respective 'dev-' branch with the '' branch.

Hope this helps!

amolrbhagwat commented 8 years ago

We have decided to go ahead with a parallel branch for each branch, called -releases, wherein for each milestone, we would merge our current branch onto it, and have a corresponding commit message.

gouravshenoy commented 8 years ago

@amolrbhagwat Sounds good! You plan on creating -dev branches for working on development, or continue developing in existing feature branches?

amolrbhagwat commented 8 years ago

@gouravshenoy We plan on continuing development on the current branches. Creating a -dev branch for each microservice would create unnecessary clutter.