Skip to main content

release

Use when preparing a release, checking what needs releasing, determining version bumps, auditing unreleased changes across server-side SDKs, or when the user asks "what needs to be released" or "do we need a release".

Aller à l'installation

Informations de source

Dépôt
flipt-io/flipt-server-sdks
Dernière activité de la source
23 juin 2026 à 12:40
Langue détectée de SKILL.md
anglais
Étoiles
2
Forks
18

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
release
description
Use when preparing a release, checking what needs releasing, determining version bumps, auditing unreleased changes across server-side SDKs, or when the user asks "what needs to be released" or "do we need a release".
# Release Audit unreleased changes across Flipt server-side SDKs, determine version bumps, and identify what Release Please will publish. ## Overview This monorepo releases each SDK independently with Release Please. Release PRs are managed by `.github/workflows/release-please.yml`, which reads `release-please-config.json` and `.release-please-manifest.json`. When a release is created, the workflow triggers `.github/workflows/package-sdks.yml` for the released SDK, which dispatches the language-specific package workflow. This repository has no separate native engine publishing stage. Each SDK talks to an upstream Flipt server over HTTP and can be evaluated independently unless a change intentionally touches shared integration tests or repository-wide config. ## SDK reference table | SDK | Directory | Release Please component | Release type | Package workflow | |-----|-----------|--------------------------|--------------|------------------| | Python | `flipt-python/` | `flipt-python` | `python` | `package-python-sdk.yml` | | Node.js | `flipt-node/` | `flipt-node` | `node` | `package-node-sdk.yml` | | Java | `flipt-java/` | `flipt-java` | `java` | `package-java-sdk.yml` | | Rust | `flipt-rust/` | `flipt-rust` | `rust` | `package-rust-sdk.yml` | | PHP | `flipt-php/` | `flipt-php` | `php` | `package-php-sdk.yml` | | C# | `flipt-csharp/` | `flipt-csharp` | `simple` | `package-csharp-sdk.yml` | Current versions live in `.release-please-manifest.json`. Release metadata and extra files live in `release-please-config.json`. ## Step 1: Inspect Release Please state ```bash cat .release-please-manifest.json cat release-please-config.json ``` Confirm the SDK's component name, current version, release type, and any `extra-files` that must be updated by Release Please. ## Step 2: Audit unreleased commits per SDK Find recent tags and commits for each SDK component: ```bash git tag --sort=-creatordate | grep "flipt-python-v" | head -5 git log --oneline <last-python-tag>..HEAD --no-merges -- flipt-python/ git tag --sort=-creatordate | grep "flipt-node-v" | head -5 git log --oneline <last-node-tag>..HEAD --no-merges -- flipt-node/ git tag --sort=-creatordate | grep "flipt-java-v" | head -5 git log --oneline <last-java-tag>..HEAD --no-merges -- flipt-java/ git tag --sort=-creatordate | grep "flipt-rust-v" | head -5 git log --oneline <last-rust-tag>..HEAD --no-merges -- flipt-rust/ git tag --sort=-creatordate | grep "flipt-php-v" | head -5 git log --oneline <last-php-tag>..HEAD --no-merges -- flipt-php/ git tag --sort=-creatordate | grep "flipt-csharp-v" | head -5 git log --oneline <last-csharp-tag>..HEAD --no-merges -- flipt-csharp/ ``` Also check shared files that may require coordinated release notes or tests: ```bash git log --oneline --no-merges -- test/ test/fixtures/ README.md release-please-config.json .github/workflows/ ``` ## Step 3: Determine version bumps Use conventional commits and semver: - `fix:` -> patch bump - `feat:` -> minor bump - breaking change marker (`!` or `BREAKING CHANGE`) -> major bump - docs/chore/test-only changes usually do not require a package release unless they affect published metadata or release artifacts When a change affects multiple SDK directories, evaluate each SDK separately. Release Please will open or update release PRs only for components with qualifying commits according to `release-please-config.json`. ## Step 4: Categorize release priority Present a summary table: ```markdown ## SDK Release Status | SDK | Current Version | Last Tag | Unreleased Commits | Key Changes | Bump Needed | Priority | |-----|-----------------|----------|--------------------|-------------|-------------|----------| ``` Use these priority labels: - **Must release**: user-facing fix/feature in the SDK directory. - **Should release**: package metadata, compatibility, or shared behavior change that should be published soon. - **No release needed**: no qualifying SDK changes since the last tag. - **Investigate**: commits are ambiguous and need maintainer judgment. ## Step 5: Verify before release or merge Run the smallest relevant validation for the SDKs being released: ```bash # Python cd flipt-python && make test # Node.js cd flipt-node && npm test && npm run build # Java cd flipt-java && ./gradlew test # Rust cd flipt-rust && cargo test # PHP cd flipt-php && composer test # C# cd flipt-csharp && dotnet test ``` For behavior expected to be consistent across SDKs, run Dagger integration tests: ```bash dagger run go run ./test --sdks=python,node,rust # or all SDKs dagger run go run ./test ``` ## Step 6: Release flow 1. Merge qualifying conventional commits to `main`. 2. Let `.github/workflows/release-please.yml` open or update Release Please PRs. 3. Review each release PR for the expected version bump and changelog entries. 4. Merge the Release Please PR. 5. Confirm the package workflow for the SDK ran successfully: - `package-python-sdk.yml` - `package-node-sdk.yml` - `package-java-sdk.yml` - `package-rust-sdk.yml` - `package-php-sdk.yml` - `package-csharp-sdk.yml` Do not manually create release tags unless maintainers explicitly decide to bypass Release Please.
Voir sur GitHub