release
Skill11 starsChanged 3 months agoApache-2.0View on GitHub
Cut a new transformers-mlinter release. Bumps the version across all pinned locations, updates the CHANGELOG, runs local checks and a packaged smoke test, drives the tag-based GitHub Actions publish to PyPI, then opens the next development version on main. Use when asked to release, cut a version, or ship X.Y.Z.
- Installs packages
- Commits and pushes
196 other projects use a version of this.
Adopted by
Most recently taken up by
- zxcvbn-ts/zxcvbntheir own version, first seen Nov 9, 2026
- TechbeeAT/jtxBoardtheir own version, first seen Nov 9, 2026
- ddnexus/pagytheir own version, first seen Nov 9, 2026
- zerx-lab/FluxDowntheir own version, first seen Nov 9, 2026
- orioledb/orioledbtheir own version, first seen Nov 9, 2026
- AmruthPillai/Reactive-Resumetheir own version, first seen Nov 8, 2026
Used with
Projects with it also use create-agent-adapter, changelog-style and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillcreate-agent-adapter
Technical guide for creating a new Paperclip agent adapter. Use when building a new adapter package, adding support for a new AI coding tool (e.g. a new CLI agent, API-based agent, or custom process), or when modifying the adapter system. Covers the required interfaces, module structure, registration points, and conventions derived from the existing claude-local and codex-local adapters.
Also in 5 projects that use this
GrinvSkillchangelog-style
Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR or cutting a release, to write/fix the [Unreleased] section's entries — moving [Unreleased] under a new dated version heading is a separate, automated step (see the release skill / scripts/sync-version.ts), not this skill's job.
Also in 4 projects that use this
GrinvSkilldocs-consistency-check
Check README/manifest.json/server.json/CHANGELOG.md/AGENTS.md and docs/*.md for drift against the actual registered tools and source. Use after adding, renaming, or removing a tool, or as part of a live-audit pass.
Also in 4 projects that use this
Microsoft AzureSkillcomponent-release
Prepares a verifiable Agent Landing Zone UI release. Use for release branches, VERSION, changelog entries, tags, release notes, and compatibility evidence; never publish without explicit human approval.
Also in 4 projects that use this
Microsoft AzureSkilldocumentation-consistency
Keeps AI Landing Zone contributor, user, and operator documentation aligned with shipped Bicep behavior. Use for parameters, defaults, outputs, topology, deployment flow, operations, or releases.
Also in 8 projects that use this
rivet-devSkilllaunch-graphics
Generate agentOS marketing/launch graphics (launch & social heroes, code-snippet cards) from the committed generators in docs-internal/graphics. Use when asked to make, update, or render an agentOS launch image, social image, "agentOS Apps" graphic, or technical code-snippet image.
Also in 3 projects that use this
- +3 more from Grinv
Other versions196 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 196
- paperclipai/paperclip★ 112ksame name
- modelcontextprotocol/servers★ 92ksame name
- remotion-dev/remotion★ 72ksame name
- traefik/traefik★ 65ksame name
- usememos/memos★ 64ksame name
- tw93/Pake★ 63ksame name
- AmruthPillai/Reactive-Resume★ 45ksame name
- amruthpillai/reactive-resume★ 45ksame name
- reactive-resume/reactive-resume★ 45ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
186 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- .ai/AGENTS.mdAGENTS.md
- add-mlinter-ruleSkill
- remove-mlinter-ruleSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 3 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 186 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
Do NOT run twine upload locally — publishing is CI-only via the pushed tag.
- Distinctive: line 24
Always confirm with the user before pushing the tag (the tag push is the irreversible, publish-triggering step).
- Very specific: line 37
Do NOT reintroduce hardcoded version strings elsewhere.
- Very specific: line 48
Update
CHANGELOG.md: Add a ## [X.Y.Z] - YYYY-MM-DD section (today's date) above the previous release, using ### Added (new TRF rules … - Distinctive: line 62
Run local checks: All three must pass:
- Distinctive: line 90
Add any other files the release genuinely touched (new rule modules, tests, etc.).
“Common” is measured: kept by at least 6 in 10 of the 186 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Release transformers-mlinter
Cuts a versioned release. The canonical prose reference is docs/release.md; this
skill is the operational checklist. Publishing itself is done by CI — pushing the
vX.Y.Z tag triggers .github/workflows/release.yml, which builds, tests, and
publishes to PyPI via OIDC trusted publishing (no local upload).
Input
<version>: the target release versionX.Y.Z(e.g.0.1.2). A pre-release usesX.Y.ZrcN.
Constraints
- Semantic versioning. Patch releases (
Zbumps) reuse the existingvX.Y-releasebranch; a new minor/major starts a freshvX.Y-releasebranch. - Work from a clean checkout on
main. Never publish uncommitted changes. - Do NOT run
twine uploadlocally — publishing is CI-only via the pushed tag. - Always confirm with the user before pushing the tag (the tag push is the irreversible, publish-triggering step).
The version lives in one place
pyproject.toml [project].version is the single source of truth. At runtime
mlinter/_version.py reads the version from the installed distribution metadata,
falling back to pyproject.toml; nothing else hardcodes the release version. So a
release bumps exactly one version field plus the CHANGELOG:
pyproject.toml—[project].version(the only version edit)CHANGELOG.md— a new## [X.Y.Z] - YYYY-MM-DDsection (see step 2)
Do NOT reintroduce hardcoded version strings elsewhere. DEFAULT_BASE_VERSION in
mlinter/_version.py is a static 0.0.0 sentinel and must stay unbumped; the
docs/usage.md example suffix and the tests/test_mlinter.py version pins use fixed
illustrative values (1.2.3+g1a2b3c4, 9.9.9) decoupled from the real release.
Workflow
- Preflight. Confirm the branch is
main, the tree is clean, and it is up to date (git status,git fetch && git status). Confirm the target<version>is greater than the latest tag (git tag). - Update
CHANGELOG.md. Add a## [X.Y.Z] - YYYY-MM-DDsection (today's date) above the previous release, using### Added(new TRF rules only, in rule-number order) /### Improved(everything else that is not a bug fix) /### Fixed. KeepingAddedto rules alone is what makes it scannable — a release adds dozens. Summarize what landed since the last tag —git log vPREV..HEAD --onelineis the source. Each newTRFNNNrule and any change to file-discovery globs gets an entry. - Bump the version — set
[project].versioninpyproject.tomlto<version>. That is the only version edit. For a release that added newTRFNNNrules, also add the corresponding public-API assertions intests/test_mlinter.py(public_api.TRFNNN == "TRFNNN"and"TRFNNN"inpublic_api.__all__) — mirror the existing pattern. - Run local checks. All three must pass:
make lint make test make typecheck - Build and validate the package.
Then smoke-test the wheel in a throwaway venv (adjust the version string):make build-release python -m twine check --strict dist/*python -m venv /tmp/mlinter-release && source /tmp/mlinter-release/bin/activate pip install dist/*.whl cd /tmp && mlinter --version && python -m mlinter --version python -c "import mlinter; print(mlinter.__version__)" deactivatemlinter --versionmust printX.Y.Z(no+g...suffix from an installed wheel). - Commit the bump on
main. Match the existing message style:
Add any other files the release genuinely touched (new rule modules, tests, etc.).git add pyproject.toml CHANGELOG.md git commit -m "preparing for X.Y.Z" git push origin main - Update the release branch. For a new minor line:
For a patch on an existing line, fast-forward the branch fromgit switch -c vX.Y-release git push -u origin vX.Y-releasemain:
Pushing the branch runs thegit switch vX.Y-release && git merge --ff-only main && git push origin vX.Y-releaseReleaseworkflow's build+test job (no publish yet). - Tag and publish. Confirm with the user first, then from
vX.Y-release:
The tag push triggers the build job again followed by thegit tag vX.Y.Z -m "Release vX.Y.Z" git push origin vX.Y.Zupload_packagejob, which runs in thepypi-releaseenvironment (may require reviewer approval) and publishes viapypa/gh-action-pypi-publishwith OIDC. Watch the run withgh run watchorgh run list --workflow=release.yml. - Verify from PyPI once the publish job succeeds:
python -m pip install -U "transformers-mlinter==X.Y.Z" mlinter --version Open the next development version. With
X.Y.Zpublished, movemainoff the released version so subsequent commits are not attributed to a version already on PyPI. Default to the next patch,X.Y.(Z+1), unless the user names a different target. Two edits:pyproject.toml— set[project].versionto the next versionCHANGELOG.md— add a bare## [Unreleased]heading above the section just released, with no subsections; the next change adds its own### Added/### Improved/### Fixed
This lands on
mainthrough a branch, not a direct push:git switch main && git pull git switch -c start-NEXT # edit pyproject.toml and CHANGELOG.md git add pyproject.toml CHANGELOG.md git commit -m "Starting version NEXT" git push -u origin start-NEXT gh pr create --title "Starting version NEXT" --body "Post-release bump after X.Y.Z." gh pr merge --squash --delete-branchThe squash keeps
Starting version NEXTas the commit subject onmain. Do not tag this commit and do not merge it intovX.Y-release— the release branch stays at the released version.
Notes
- No
.dev0suffix is used. Releasing is a single bump + tag; the step 10 post-release bump setsmainto the next plainX.Y.Z. - First-ever PyPI publish requires a pending trusted publisher configured on PyPI
pointing at
release.ymlwith environmentpypi-release— seedocs/release.md. - Optional TestPyPI dry run is documented in
docs/release.mdand is manual.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

