ioos / compliance-checker

Python tool to check your datasets against compliance standards
http://ioos.github.io/compliance-checker/
Apache License 2.0
109 stars 58 forks source link

Discussion -- Pull Requests and Branches #824

Closed daltonkell closed 3 years ago

daltonkell commented 4 years ago

This is intended for community discussion

As an open-source project, the Compliance Checker gets lots of useful PRs from a variety of contributors. Most of these PRs go straight to the master branch, and typically public feature branches are used for adding large features, such as new checkers, API changes, etc. With more activity as of recent, I believe we should move towards locking master to the latest release and having a permanent development branch. This way, we can ensure no confusion when merging PRs that may not directly relate to a specifically planned milestone. Thoughts? @benjwadams @Bobfrat @ocefpaf @neumannd @mwengren (feel free to tag anyone I might have accidentally missed, just picked the few top 'Review" suggestions)

ocefpaf commented 4 years ago

I'm fine with that. Although I'm more used to a slightly variation of that model where master is the development branch and a versioned branch be the "locked" release one.

neumannd commented 4 years ago

I'm not very experianced in participating in open source projects. Sounds reasonable to split up the one master branch into a development and a release branch. Maybe it leads to less confusion/errors of new contributors if the master is kept as development branch.

Bobfrat commented 4 years ago

I'm also good with this. I've seen both what you describe with a develop/master branch and what @ocefpaf describes (master/stable). I'm ok with either as long as its very clear in a contributing.md file or similar. Also tagging some OG's @lukecampbell @daf @kwilcox

mwengren commented 4 years ago

I've never used an active develop branch on a project before, but sounds like a reasonable plan. There wouldn't be any major workflow changes it sounds like. New release functionality goes into develop (or master depending on the names chosen) and master|stable is kept to match the most recent release?

Major new changes not planned for the next release (such as an API change perhaps) would still go into a 'feature' branch?

lukecampbell commented 4 years ago

I'm a little late to the discussion, but from my experience most github repositories rely on the master branch being the unstable development version, since pull requests default to master, and master has been historically used as the development branch. It's more common, in my opinion, to create separate stabilized branches from master and pull in features, or version release candidates from the master branch, and once the release is ready a tag is made from that branch.

benjwadams commented 3 years ago

There was some major overhaul to the compliance checker back when the CF 1.7 checker was under development which may have prompted this discussion. However, I'm in favor of keeping the development version under master, but creating PyPI and Conda releases for stable, tagged commits on master, and maybe leading edge builds as well if it can be set up with CI. Closing and sticking with the current status quo. If we want to release more "bleeding-edge" compliance checker versions as Python packages, that can be discussed in a separate issue.