bazel-contrib / bazel-contrib/rules_python

Create a program to handle release chores

Open
#2,790 3 comments 0 reactions 0 assignees View on GitHub
cleanup Good first issue type: process
Dominant language
Starlark
Stars
688
Forks
721
Avg merge
15h 7m
Merged PRs (30d)
76

Description

There's a few tedious and mechanical steps for our release process around replacing
strings and updating docs. See RELEASING.md for all the steps.

It should be relatively easy to create a program that does the various string processing. The basic logic it needs to do is:

* Update CHANGELOG.md
* Replace the "Unreleased" title with `[X.Y.Z] - YYYY-MM-DD`
* Replace `0.0.0` with X.Y.Z
* Replace `v0-0-0` with `vX-Y-Z`
* Caveat: don't modify the "unreleased template" that is commented out.
* Replace `VERSION_NEXT_*` markers
* caveat: don't replace them in CONTRIBUTING.md, RELEASING.md, and `.*` dirs (.githhub etc)

Something more advanced could look at which `VERSION_NEXT_{FEATURE,PATCH}` markers exist to figure out the next semantic version, but that's just a nice to have.

Just being able to do `tools/private/release.py 1.4.0` would be a big improvement over all the ad-hoc stuff we have to do today.

Contributor guide

Open the contributing guide

Research direction

Read RELEASING.md for the complete release sequence, then use tools/private/release.py as the requested entry point. The program should accept a version such as 1.4.0, update CHANGELOG.md and eligible VERSION_NEXT_* markers while preserving the listed exclusions, and leave the commented unreleased template unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
release, tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.