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

Documentation Changes for Git Usage, Branching Model, and Release Management #713

Merged
merged 10 commits into from
Sep 6, 2024

Conversation

robertbartel
Copy link
Contributor

@robertbartel robertbartel commented Sep 5, 2024

Modifying and expanding documentation related to release management and new Git branching model.

Additions

  • New RELEASE_MANAGEMENT.md doc with details on release process

Removals

  • Deleted gitflow.md doc in favor of using GIT_USAGE.md

Changes

  • Modified GIT_USAGE.md appropriately for move to new branching model
  • Moved a few items present in gitflow.md - in particular on pre-commit integration - to GIT_USAGE.md

Testing

  1. None; doc updates only

Todos

  • The specifics for "testing and quality pre-release tasks" during the release process need to be decided upon and documented.
  • The exact process for peer reviewing changes made to release branches (e.g., bug fixes) during the release process needs to be decided upon and documented.

Checklist

  • PR has an informative and human-readable title
  • Changes are limited to a single goal (no scope creep)
  • Code can be automatically merged (no conflicts)
  • Code follows project standards (link if applicable)
  • Passes all existing automated tests
  • Any change in functionality is tested
  • New functions are documented (with a description, list of inputs, and expected output)
  • Placeholder code is flagged / future todos are captured in comments
  • Visually tested in supported browsers and devices (see checklist below 👇)
  • Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
  • Reviewers requested with the Reviewers tool ➡️

Updating with details applicable for new branching model and to include
information from soon-to-be-deleted gitflow.md, in particular on Git
pre-commit hook.
Remove in favor of doc/GIT_USAGE.md.
@robertbartel robertbartel added documentation Improvements or additions to documentation maas MaaS Workstream labels Sep 5, 2024
Copy link
Contributor

@christophertubbs christophertubbs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can I get a mermaid diagram showing the relationship between the dev, master, release, and feature branches?

@robertbartel
Copy link
Contributor Author

Sure, @christophertubbs, that shouldn't be any trouble.

@robertbartel robertbartel marked this pull request as draft September 6, 2024 13:06
@robertbartel robertbartel changed the base branch from dev to master September 6, 2024 13:06
Changing rolls and names of branches (master is now integration branch
and new "production" branch created to point to latest released code)
to cause less disruption to current workflows.
Changing rolls and names of branches (master is now integration/dev
branch and new "production" branch created to point to latest released
code) to cause less disruption to current workflows.
doc/GIT_USAGE.md Outdated
- **production**: the branch representing the latest code verified as production-ready and pointing to the most recently release, official version
- Most interaction with DMOD repo is done via pull requests (PRs) to the `master` branch
- Independent branches for features or bug fixes are created off `master` to contain development work that is in progress
- These branches are reviewed and their changes integrated back into `master` once complete via PRs
- Typically feature/fix branches exist in personal clones and personal Github forks, but not in the official OWP repo
- Release branches (e.g., `release-X` for pending version `X`) will periodically be created to finalize the next new version when it is time for it to be released
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you clarify this by stating whether the release branch will be created every release or as needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I will reword things.

The intent was for a release branch to be created every time there was a new release, to provide a clear, isolated target for testing, QA, etc. But what exactly constitutes "testing, QA, etc." is intentionally undefined for the time being, as is how to decide when it is time to cut the next release.

doc/GIT_USAGE.md Outdated
- **production**: the branch representing the latest code verified as production-ready and pointing to the most recently release, official version
- Most interaction with DMOD repo is done via pull requests (PRs) to the `master` branch
- Independent branches for features or bug fixes are created off `master` to contain development work that is in progress
- These branches are reviewed and their changes integrated back into `master` once complete via PRs
- Typically feature/fix branches exist in personal clones and personal Github forks, but not in the official OWP repo
- Release branches (e.g., `release-X` for pending version `X`) will periodically be created to finalize the next new version when it is time for it to be released
- These are managed by the core OWP contributors team
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you emphasize that 99% of people interacting with this repo will not be involved in release or production branches unless they are writing fixes for production releases?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a sign of my own confusion since they won't really be for fixes, but release candidates. Is there any way you can specify or elaborate on that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you emphasize that 99% of people interacting with this repo will not be involved in release or production branches unless they are writing fixes for production releases?

I am going to add this immediately under the title heading at the top of the file (and also add a bunch of the practical stuff to CONTRIBUTING.md):

Note that this document goes into detail on the Git strategy and branching model for DMOD. It is here for openness and transparency, but many (if not most) users will not need to be concerned with this level of detail. For information geared toward day-to-day development contributions and Git, see the CONTRIBUTING doc.

Does that seem sufficient, or should there also be something here to that effect?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, it's great

- Independent branches for features or bug fixes are created off `dev` to contain development work that is in progress
- These branches are reviewed and their changes integrated back into `dev` once complete via PRs
- **master**: the main development and integration branch containing the latest completed development work intended for the next released version
- **production**: the branch representing the latest code verified as production-ready and pointing to the most recently release, official version
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you emphasize that 99% of contributors will not be involved with the production branch? Most devs will be connected to the OWP, so they'd be an OWP contributor, but not an OWP versioner or maintainer.

I think this interaction has been what's caused the most confusion.

Moving more essential, Git-related info needed for code contributions to
CONTRIBUTING.md.
Take day-to-day Git contributing stuff out of GIT_USAGE.md and reserve
it for things most contributors don't need to know (but are welcome to
read about if they want).
@robertbartel robertbartel marked this pull request as ready for review September 6, 2024 18:50
@christophertubbs
Copy link
Contributor

I think it looks good - thanks for putting up with my nit-picking!

@christophertubbs christophertubbs merged commit 7b6c60a into NOAA-OWP:master Sep 6, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation maas MaaS Workstream
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants