|
Pinba Engine 2.11.3
MySQL Storage Engine for PHP Performance Statistics
|
This project uses a semi-automated release flow on GitHub:
CHANGELOG.md is updated automatically;This replaces the old manual NEWS-driven flow, which is now archived in docs/legacy-news.md, and is intended for active development in the fork.
Configured via GitHub Actions + Release Please:
master when there is at least one release-triggering commit;major: commit with ! or BREAKING CHANGE:;minor: at least one feat;patch: fix, perf, revert, deps;CHANGELOG.md;vX.Y.Z) and GitHub Release after merge.With the current Release Please configuration only "user-facing" commit types trigger a release (feat, fix, perf, revert, deps, and any breaking change). The following types are not release-triggering on their own and will not open a Release PR by themselves:
docs, style, refactor, test, build, ci, chore.In particular, a documentation-only or CI-only change does not produce a new patch release. These commits are still valid and are folded into the changelog of the next release that is triggered by a release-triggering commit — they just do not start a release on their own.
The upstream version — the vX.Y.Z tag and the VERSION in CMakeLists.txt — tracks the shipped plugin (ha_pinba.so) only. Pick a commit type by what the change actually affects, not by how big it feels:
ha_pinba.so, its behaviour, or the set of database servers it supports: src/**, pinba.proto, CMakeLists.txt and cmake/**, and the vendored server headers under vendor/** when they add or change a supported MySQL/MariaDB version. Use feat: (a new capability or a newly supported server version → minor) or fix: (a bug or behaviour correction → patch). These cut a new version and tag.debian/, rpm/, docker/), CI and workflows (.github/), helper scripts and tools (scripts/, tools/), documentation (docs/, knowledge/, README.md, *.md) and tests or benchmarks (tests/, benchmarks/). Use ci:, build:, chore:, docs: or test:. These do not bump the version: the released ha_pinba.so is unchanged, so no one repackaging our source (Debian/Ubuntu, Fedora/RPM/Copr) has any reason to see a new release.Why it matters: a new tag forces every downstream repackager to rebuild an identical artefact. Packaging or CI churn must never inflate the plugin's version.
Two rules of thumb:
fix over feat for corrections. feat is for new capability only; making previously surprising or incorrect behaviour correct is a fix (a patch).workflow_dispatch on ppa-build.yml or rpm.yml). For an RPM, a rebuild only needs a Release bump — never a new upstream Version.Examples:
ci(rpm): ... (no release).feat: ... (minor).fix: ... (patch).docs: ... (no release).Use Conventional Commits in PR titles:
feat: ...fix: ...perf: ...refactor: ...docs: ...test: ...chore: ...Optional scope is supported:
feat(parser): ...fix(ci): ...Breaking changes:
feat!: ...BREAKING CHANGE: in body/footer.master is the release branch.master.master.release-please opens/updates a Release PR once master contains at least one release-triggering commit since the last release (see "Commits that do not trigger a release").vX.Y.Z;CHANGELOG.md in history.No manual tag creation is needed in normal flow.
Legacy project tags are in format RELEASE_X_Y_Z, while new flow uses vX.Y.Z.
Baseline is set in .release-please-manifest.json:
So the first automated release starts from 1.2.0 baseline and creates the next v... tag according to new commits.
.github/workflows/release-please.yml.github/workflows/pr-title-conventional.ymlrelease-please-config.json.release-please-manifest.jsonCHANGELOG.mdDo this once in your fork repository settings:
Settings -> Actions -> GeneralSettings -> Actions -> General -> Workflow permissionsSettings -> Branches (for master)Settings -> Pull Requestsmaster.docs/legacy-news.md as historical archive, but treat CHANGELOG.md as the source of truth for all new releases..release-please-manifest.json to the desired baseline version.