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

Selection of Git development model and releases. #8

Open
jdeaton opened this issue Oct 24, 2018 · 3 comments
Open

Selection of Git development model and releases. #8

jdeaton opened this issue Oct 24, 2018 · 3 comments

Comments

@jdeaton
Copy link
Member

jdeaton commented Oct 24, 2018

In order for my MAST spack package to work as designed and be pulled into the mainline spack repository, we need to define version numbering for MAST. I think now is also a good time to try to migrate some of the recent work back into this repository and come up with a branching/pulling strategy to incorporate stabile capabilities into releases.

As far as I can tell from reading around, a good version strategy is A.B.C where A involves major API breaking changes, B adds functionality, and C are hotfixes. Perhaps a good 0.X.0 (start X at whatever number you want) release would be to incorporate the refactored CMake build system with 3 simple examples (same problem, first do analysis, then do direct sensitivities, then adjoint sensitivities). For the 0.(X+1).0 release we can simply add more examples.

I did some searching and it seems like there are various strategies for using branches to collect commits/features into releases and manage incorporating bug-fixes.

I think one of the last two looks like it might work best.

@manavbhatia
Copy link
Member

I think the basic idea is to do all the development in other branches and merge them back to the master after testing. The second one is talking about a develop branch, which I don't like. I would prefer a master branch which is tagged for version release based on a suitable schedule.

@jdeaton
Copy link
Member Author

jdeaton commented Jan 4, 2020

I wanted to revisit this issue now since there are definitely multiple folks working on MAST and @JohnDN90 and I have been working along with pull requests for some time now. I think based on what we have been doing the last workflow listed

is what we should stick to (its close to what we've been doing already).

The only thing that isn't described well in the article is what to do when master has changed a lot since your feature branch was forked. In this case, you just need to either:

  • merge master -> your feature
  • rebase your feature on top of master and force push back to your feature branch

@manavbhatia if you are agreeable, I'll add a page to the documentation that tries to describe the suggested workflow with some illustrations.

The other thing is we need to decide is releases. We have quite a few things we've added/updated/changed (on our repo) and we need to prioritize getting them into master on GitHub and where we might want to break releases at. I think we can use the "Projects" feature on the top-level MASTmultiphysics organization/team to do this planning (https://github.com/orgs/MASTmultiphysics/projects).

@manavbhatia
Copy link
Member

@jdeaton I support both ideas and the forking workflow also conforms to my preferred workflow concept.

Let me know when you and @JohnDN90 are ready to identify all new components that you intend to commit to the repository. I can do the same at my end, and we can chalk out a release schedule.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants