mirror of https://github.com/astral-sh/ruff
Add `rooster` release management configuration and instructions (#8567)
I'd rather not be the only one who can easily generate our changelog entries so I invested some time to get Rooster a bit further along and add instructions.
This commit is contained in:
parent
3ebaca5246
commit
fe9727ac38
|
|
@ -1,29 +0,0 @@
|
||||||
# https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuring-automatically-generated-release-notes
|
|
||||||
changelog:
|
|
||||||
exclude:
|
|
||||||
labels:
|
|
||||||
- internal
|
|
||||||
- documentation
|
|
||||||
categories:
|
|
||||||
- title: Breaking Changes
|
|
||||||
labels:
|
|
||||||
- breaking
|
|
||||||
- title: Rules
|
|
||||||
labels:
|
|
||||||
- rule
|
|
||||||
- title: Settings
|
|
||||||
labels:
|
|
||||||
- configuration
|
|
||||||
- cli
|
|
||||||
- title: Bug Fixes
|
|
||||||
labels:
|
|
||||||
- bug
|
|
||||||
- title: Formatter
|
|
||||||
labels:
|
|
||||||
- formatter
|
|
||||||
- title: Preview
|
|
||||||
labels:
|
|
||||||
- preview
|
|
||||||
- title: Other Changes
|
|
||||||
labels:
|
|
||||||
- "*"
|
|
||||||
|
|
@ -315,9 +315,18 @@ even patch releases may contain [non-backwards-compatible changes](https://semve
|
||||||
|
|
||||||
### Creating a new release
|
### Creating a new release
|
||||||
|
|
||||||
1. Update the version with `rg 0.0.269 --files-with-matches | xargs sed -i 's/0.0.269/0.0.270/g'`
|
We use an experimental in-house tool for managing releases.
|
||||||
1. Update `BREAKING_CHANGES.md`
|
|
||||||
1. Create a PR with the version and `BREAKING_CHANGES.md` updated
|
1. Install `rooster`: `pip install git+https://github.com/zanieb/rooster@main`
|
||||||
|
1. Run `rooster release`; this command will:
|
||||||
|
- Generate a changelog entry in `CHANGELOG.md`
|
||||||
|
- Update versions in `pyproject.toml` and `Cargo.toml`
|
||||||
|
- Update references to versions in the `README.md` and documentation
|
||||||
|
1. The changelog should then be editorialized for consistency
|
||||||
|
- Often labels will be missing from pull requests they will need to be manually organized into the proper section
|
||||||
|
- Changes should be edited to be user-facing descriptions, avoiding internal details
|
||||||
|
1. Highlight any breaking changes in `BREAKING_CHANGES.md`
|
||||||
|
1. Create a pull request with the changelog and version updates
|
||||||
1. Merge the PR
|
1. Merge the PR
|
||||||
1. Run the release workflow with the version number (without starting `v`) as input. Make sure
|
1. Run the release workflow with the version number (without starting `v`) as input. Make sure
|
||||||
main has your merged PR as last commit
|
main has your merged PR as last commit
|
||||||
|
|
@ -330,7 +339,11 @@ even patch releases may contain [non-backwards-compatible changes](https://semve
|
||||||
1. Attach artifacts to draft GitHub release
|
1. Attach artifacts to draft GitHub release
|
||||||
1. Trigger downstream repositories. This can fail non-catastrophically, as we can run any
|
1. Trigger downstream repositories. This can fail non-catastrophically, as we can run any
|
||||||
downstream jobs manually if needed.
|
downstream jobs manually if needed.
|
||||||
1. Create release notes in GitHub UI and promote from draft.
|
1. Publish the GitHub release
|
||||||
|
1. Open the draft release in the GitHub release section
|
||||||
|
1. Copy the changelog for the release into the GitHub release
|
||||||
|
- See previous releases for formatting of section headers
|
||||||
|
1. Generate the contributor list with `rooster contributors` and add to the release notes
|
||||||
1. If needed, [update the schemastore](https://github.com/charliermarsh/ruff/blob/main/scripts/update_schemastore.py)
|
1. If needed, [update the schemastore](https://github.com/charliermarsh/ruff/blob/main/scripts/update_schemastore.py)
|
||||||
1. If needed, update the `ruff-lsp` and `ruff-vscode` repositories.
|
1. If needed, update the `ruff-lsp` and `ruff-vscode` repositories.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,3 +69,32 @@ force-exclude = '''
|
||||||
| crates/ruff_python_formatter/resources
|
| crates/ruff_python_formatter/resources
|
||||||
)/
|
)/
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
[tool.rooster]
|
||||||
|
major_labels = [] # Ruff never uses the major version number
|
||||||
|
minor_labels = ["breaking"] # Bump the minor version on breaking changes
|
||||||
|
|
||||||
|
changelog_ignore_labels = ["internal"]
|
||||||
|
|
||||||
|
changelog_sections.breaking = "Breaking changes"
|
||||||
|
changelog_sections.preview = "Preview features"
|
||||||
|
changelog_sections.rule = "Rule changes"
|
||||||
|
changelog_sections.formatter = "Formatter"
|
||||||
|
changelog_sections.cli = "CLI"
|
||||||
|
changelog_sections.configuration = "Configuration"
|
||||||
|
changelog_sections.bug = "Bug fixes"
|
||||||
|
changelog_sections.__unknown__ = "Other changes"
|
||||||
|
|
||||||
|
# We exclude contributors from the CHANGELOG file
|
||||||
|
# Generate separately with `rooster contributors` for the GitHub release page
|
||||||
|
changelog_contributors = false
|
||||||
|
|
||||||
|
version_files = [
|
||||||
|
"README.md",
|
||||||
|
"docs/integrations.md",
|
||||||
|
"crates/flake8_to_ruff/Cargo.toml",
|
||||||
|
"crates/ruff_cli/Cargo.toml",
|
||||||
|
"crates/ruff_linter/Cargo.toml",
|
||||||
|
"crates/ruff_shrinking/Cargo.toml",
|
||||||
|
"scripts/benchmarks/pyproject.toml",
|
||||||
|
]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue