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".

Ir para a instalação

Informações da origem

Repositório
flipt-io/flipt-server-sdks
Última atividade na origem
23 de junho de 2026 às 12:40
Idioma detectado do SKILL.md
inglês
Estrelas
2
Forks
18

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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.
Ver no GitHub