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

Proof of concept for release-please in biocommons.seqrepo #104

Open
holtgrewe opened this issue May 3, 2023 · 2 comments
Open

Proof of concept for release-please in biocommons.seqrepo #104

holtgrewe opened this issue May 3, 2023 · 2 comments
Milestone

Comments

@holtgrewe
Copy link
Contributor

release-please is a useful tool for automating release and changelog generation.

Example Projects

Prerequisites / Requirements

These things have to be

  • Commit messages must follow conventional commits. E.g., they should start with fix: for fixes, feat: for new features, ci: for CI changes, build: for build system changes, docs: for documentation.
  • Commits must be limited to squash commits.
  • Tickets are linked to in parentheses after the ticket, e.g., ci: introducing release-please (#123).

Needed Changes

  • document conventions appropriately, maybe in a .github/pull_request_template.md PR template (cf snakemake's).
  • add a CHANGELOG.md file
  • protect main branch to require a PR
  • (version update in setup.py not necessary as setuptools_scm is used)
  • add a .github/workflows/conventional-prs.yml to enforce conventional commit PRs, (cf. snakemake's)
  • add a .github/workflows/release-please.yml to create Git tags, create GitHub releases, and publish to pypi (cf. snakemake's)
  • register PYPI_TOKEN in the project to make releases to PyPi work

Release Please Workflow

  • merged PRs will lead to conventional commit messages as enforced by the conventional-commits workflow
  • release-please is triggered on each merge to main and will create and update a PR that updates the changelog (could also update the version in a setup.py file etc.) snakemake example
  • you will get a preview of the next version, a fix will bump the patch version, a feat will bump the minor version, any breaking change, e.g., fix!, or feat! will bump the major version
  • you can enforce a certain version with a Release-As: major.minor.patch "footer" in the commit message
  • once the person doing the releases is happy then they merge the PR
  • release-please recognizes the merge to the main tag and will
    • create a tag
    • create a GitHub release with the changelog on the github page
    • build the package and push it to PyPi if the PYPI_TOKEN has been set
  • on the next merged PR that contains a "releasable" (I believe ci/build are considered not releasable by default while patch/fix does), a new release-please PR is created
  • release-please will maintain the PR with changes
holtgrewe added a commit to holtgrewe/biocommons.seqrepo that referenced this issue May 4, 2023
@github-actions
Copy link

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.

@github-actions github-actions bot added the stale Issue is stale and subject to automatic closing label Sep 18, 2023
@github-actions
Copy link

This issue was closed because it has been stalled for 7 days with no activity.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 25, 2023
@reece reece added stale closed Issue was closed automatically due to inactivity and removed stale closed Issue was closed automatically due to inactivity labels Nov 27, 2023
@reece reece added this to the 0.7 milestone Nov 27, 2023
@reece reece reopened this Nov 27, 2023
@reece reece removed the stale Issue is stale and subject to automatic closing label Nov 27, 2023
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