From ff51c8e207ee918f8f7eeb5ec7e083fd01acde44 Mon Sep 17 00:00:00 2001 From: Dag Brattli Date: Wed, 11 Feb 2026 07:40:57 +0100 Subject: [PATCH] chore: remove release-please, use tag-based releases Release-please added complexity without value since versions need to be manually specified anyway to stay in sync with Fable. Replaced with a simpler workflow that triggers on GitHub release publish events. - Replace release-please workflow with publish-on-release workflow - Remove release-please-config.json and .release-please-manifest.json - Clean up duplicate entries in CHANGELOG.md - Simplify RELEASING.md with new process Co-Authored-By: Claude Opus 4.6 --- .../{release-please.yml => publish.yml} | 25 ++------ .release-please-manifest.json | 3 - CHANGELOG.md | 36 +---------- RELEASING.md | 60 +++++-------------- release-please-config.json | 12 ---- 5 files changed, 22 insertions(+), 114 deletions(-) rename .github/workflows/{release-please.yml => publish.yml} (57%) delete mode 100644 .release-please-manifest.json delete mode 100644 release-please-config.json diff --git a/.github/workflows/release-please.yml b/.github/workflows/publish.yml similarity index 57% rename from .github/workflows/release-please.yml rename to .github/workflows/publish.yml index 7b1cd6d..aec29cc 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/publish.yml @@ -1,29 +1,14 @@ on: - push: - branches: - - main + release: + types: [published] permissions: - contents: write - pull-requests: write + contents: read -name: Release Please +name: Publish NuGet jobs: - release-please: - runs-on: ubuntu-latest - outputs: - release_created: ${{ steps.release.outputs.release_created }} - tag_name: ${{ steps.release.outputs.tag_name }} - steps: - - uses: googleapis/release-please-action@v4 - id: release - with: - token: ${{ secrets.GITHUB_TOKEN }} - publish: - needs: release-please - if: ${{ needs.release-please.outputs.release_created }} runs-on: ubuntu-latest timeout-minutes: 10 steps: @@ -48,7 +33,7 @@ jobs: - name: Pack NuGet env: - TAG_NAME: ${{ needs.release-please.outputs.tag_name }} + TAG_NAME: ${{ github.event.release.tag_name }} run: just pack-version ${TAG_NAME#v} - name: Push NuGet diff --git a/.release-please-manifest.json b/.release-please-manifest.json deleted file mode 100644 index 70aa638..0000000 --- a/.release-please-manifest.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - ".": "5.0.0-alpha.21.5" -} diff --git a/CHANGELOG.md b/CHANGELOG.md index 4188e3a..974ef08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,35 +2,24 @@ ## [5.0.0-alpha.21.5](https://github.com/fable-compiler/Fable.Python/compare/v5.0.0-alpha.21.4...v5.0.0-alpha.21.5) (2025-12-21) - -### Bug Fixes - -* remove XUnit dependency from Testing module ([3a35e44](https://github.com/fable-compiler/Fable.Python/commit/3a35e4404624a0c2c13b8c869ff987ac7c81a7d7)) - -## [5.0.0-alpha.21.4](https://github.com/fable-compiler/Fable.Python/compare/v5.0.0-alpha.21.4...v5.0.0-alpha.21.4) (2025-12-21) - - ### Bug Fixes * remove XUnit dependency from Testing module ([3a35e44](https://github.com/fable-compiler/Fable.Python/commit/3a35e4404624a0c2c13b8c869ff987ac7c81a7d7)) ## [5.0.0-alpha.21.4](https://github.com/fable-compiler/Fable.Python/compare/v5.0.0-alpha.21.3...v5.0.0-alpha.21.4) (2025-12-21) - ### Features * add Fable.Python.Testing module for cross-platform testing ([#186](https://github.com/fable-compiler/Fable.Python/issues/186)) ([2356705](https://github.com/fable-compiler/Fable.Python/commit/235670557cfb1913b9e67f7ad2e0fd4772a6de6b)) ## [5.0.0-alpha.21.3](https://github.com/fable-compiler/Fable.Python/compare/v5.0.0-alpha.21.2...v5.0.0-alpha.21.3) (2025-12-19) - ### Features * add Fable.Types module for runtime type detection ([#184](https://github.com/fable-compiler/Fable.Python/issues/184)) ([6e1e902](https://github.com/fable-compiler/Fable.Python/commit/6e1e902a0203d24206c3a7e6719383e464193fd5)) ## [5.0.0-alpha.21.2](https://github.com/fable-compiler/Fable.Python/compare/v5.0.0-alpha.21.1...v5.0.0-alpha.21.2) (2025-12-18) - ### Features * add typed array support to Json serialization ([#182](https://github.com/fable-compiler/Fable.Python/issues/182)) ([ef67b4b](https://github.com/fable-compiler/Fable.Python/commit/ef67b4ba9258fde6a3f4ff3db0b843228953e7bc)) @@ -41,32 +30,13 @@ * Add Json static class with Fable-aware serialization ([#175](https://github.com/fable-compiler/Fable.Python/issues/175)) ([1eb5005](https://github.com/fable-compiler/Fable.Python/commit/1eb500523c6d6f43247bc3510a6045ec8d9d9d4e)) -### Bug Fixes - -* correct manifest to last released version ([bb9cb88](https://github.com/fable-compiler/Fable.Python/commit/bb9cb881c00b7ea6809ad3a87a35a7ebc0ff9008)) -* remove versioning strategy from release-please config ([ce84cae](https://github.com/fable-compiler/Fable.Python/commit/ce84caeeb7caa24eaecd96fb8e0723e7cb6e7c6a)) -* update release-please to use prerelease versioning ([7c219e8](https://github.com/fable-compiler/Fable.Python/commit/7c219e848fd3201d4567685ddfefae48c362856c)) - -## [5.0.0-alpha.21.0](https://github.com/fable-compiler/Fable.Python/compare/v5.0.0-alpha.21...v5.0.0-alpha.21.0) (2025-12-16) +## [5.0.0-alpha.21.0](https://github.com/fable-compiler/Fable.Python/compare/v5.0.0-alpha.20.2...v5.0.0-alpha.21.0) (2025-12-16) ### Features * Add exception types ([#173](https://github.com/fable-compiler/Fable.Python/issues/173)) ([72f09b2](https://github.com/fable-compiler/Fable.Python/commit/72f09b2ff6e208e3ab057430a355814611abd46c)) -* add Python stdlib bindings for logging, random, and expand string module ([#166](https://github.com/fable-compiler/Fable.Python/issues/166)) ([709d6c2](https://github.com/fable-compiler/Fable.Python/commit/709d6c2b29199965926ff639727fdcc1bb2e1fb8)) -* add write ([334e800](https://github.com/fable-compiler/Fable.Python/commit/334e80089c081bda25633f83dae037fc6c8fe6f5)) -* Added bindings for Pydantic and FastAPI + examples ([#151](https://github.com/fable-compiler/Fable.Python/issues/151)) ([826629e](https://github.com/fable-compiler/Fable.Python/commit/826629e465fca15d444a4ca37b851b8aab488f9a)) -* Fable v5 ([#147](https://github.com/fable-compiler/Fable.Python/issues/147)) ([abf8e6a](https://github.com/fable-compiler/Fable.Python/commit/abf8e6a1f7bbc2eae152431d04d6b8b5675f7795)) * FastAPI async handlers ([#174](https://github.com/fable-compiler/Fable.Python/issues/174)) ([26cec1f](https://github.com/fable-compiler/Fable.Python/commit/26cec1f239f9244a7c1da1d00bbf1a479596bb3c)) -### Bug Fixes - -* add missing models.py for pydantic example and update README ([#168](https://github.com/fable-compiler/Fable.Python/issues/168)) ([b76ce98](https://github.com/fable-compiler/Fable.Python/commit/b76ce989e0598d0007a8a1be9addfea97936eae7)) -* handle return type correctly ([a634168](https://github.com/fable-compiler/Fable.Python/commit/a6341684ac8bb3f1b244f448c22e1fe6f208fbc0)) -* relax FSharp.Core dependency to >= 5.0.0 ([#163](https://github.com/fable-compiler/Fable.Python/issues/163)) ([10eb65b](https://github.com/fable-compiler/Fable.Python/commit/10eb65b22a157078e1b66bd8fb202b0cd2acbedc)) -* update pyproject toml details ([#62](https://github.com/fable-compiler/Fable.Python/issues/62)) ([b511351](https://github.com/fable-compiler/Fable.Python/commit/b5113514ca6b4a9ba00734e9b3caaf363f3385af)) -* use plain int/string types for open ([b202a25](https://github.com/fable-compiler/Fable.Python/commit/b202a25bd7f48538fadc50125294a9252714d364)) -* use string types for open ([f211f8b](https://github.com/fable-compiler/Fable.Python/commit/f211f8bb9445dd6930926fe48aab6a69720dd30f)) - ### Miscellaneous Chores * sync with Fable 5.0.0-alpha.21 ([fd2685c](https://github.com/fable-compiler/Fable.Python/commit/fd2685c2f992c2d8058ac1bc1261d647271359df)) @@ -81,9 +51,9 @@ ### Bug Fixes -* relax FSharp.Core dependency to >= 5.0.0 ([#163](https://github.com/fable-compiler/Fable.Python/issues/163)) ([10eb65b](https://github.com/fable-compiler/Fable.Python/commit/10eb65b22a157078e1b66bd8fb202b0cd2acbedc)) +* relax FSharp.Core dependency to >= 5.0.0 ([#163](https://github.com/fable-compiler/Fable.Python/issues/163)) ([10eb65b](https://github.com/fable-compiler/Fable.Python/commit/10eb65b22a157078e1b66bd8fb202b0cd2acbedc)) -## [5.0.0-alpha.20](https://github.com/fable-compiler/Fable.Python/compare/v5.0.0-alpha.20...v5.0.0-alpha.20) (2025-12-08) +## [5.0.0-alpha.20](https://github.com/fable-compiler/Fable.Python/compare/v4.0.0...v5.0.0-alpha.20) (2025-12-08) ### Features diff --git a/RELEASING.md b/RELEASING.md index fad71ed..528c0bd 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -1,69 +1,37 @@ # Releasing Fable.Python -This document describes the release process for Fable.Python and how to keep versions in sync with Fable. - ## Version Format Fable.Python uses the version format `X.Y.Z-alpha.N.P` where: -- `X.Y.Z-alpha.N` matches the Fable version (e.g., `5.0.0-alpha.21`) +- `X.Y.Z-alpha.N` matches the Fable version (e.g., `5.0.0-alpha.22`) - `P` is the patch version for Fable.Python releases (0, 1, 2, etc.) -Example: `5.0.0-alpha.21.0`, `5.0.0-alpha.21.1`, `5.0.0-alpha.21.2` +Example: `5.0.0-alpha.22.0`, `5.0.0-alpha.22.1`, `5.0.0-alpha.22.2` ## Release Process -This project uses [release-please](https://github.com/googleapis/release-please) to automate releases. Release-please creates and maintains a release PR that updates automatically as commits are merged to main. - -**Important:** Due to the custom version format, use `Release-As:` to specify the version. - -### Setting the Version - -Add `Release-As:` in the commit message or PR description: - -#### In the commit message - -```text -feat: add new feature - -Release-As: 5.0.0-alpha.21.1 -``` - -#### In the PR description +1. Go to [GitHub Releases](https://github.com/fable-compiler/Fable.Python/releases) +2. Click **"Draft a new release"** +3. Create a new tag in the format `v5.0.0-alpha.22.0` (with `v` prefix) +4. Set the release title (e.g., `5.0.0-alpha.22.0`) +5. Write release notes (or use "Generate release notes") +6. For pre-release versions, check **"Set as a pre-release"** +7. Click **"Publish release"** -Add this line anywhere in the PR body: +The publish workflow will automatically build and push the NuGet package. -```text -Release-As: 5.0.0-alpha.21.1 -``` +## Syncing with a New Fable Version -Release-please will use the specified version for the release. - -### Syncing with a New Fable Version - -When Fable releases a new version (e.g., `5.0.0-alpha.22`): +When Fable releases a new version (e.g., `5.0.0-alpha.23`): 1. Update the codebase to work with the new Fable version -2. Use `Release-As: 5.0.0-alpha.22.0` in the commit or PR -3. Merge the release-please PR +2. Create a release with tag `v5.0.0-alpha.23.0` -### Version History Example +## Version History Example - `5.0.0-alpha.21.0` (initial sync with Fable 5.0.0-alpha.21) - `5.0.0-alpha.21.1` (first patch) - `5.0.0-alpha.21.2` (second patch) - `5.0.0-alpha.22.0` (sync with Fable 5.0.0-alpha.22) - `5.0.0-alpha.22.1` (first patch for alpha.22) - -## Configuration Files - -- `release-please-config.json` - Release-please configuration (release type, tag format) -- `.release-please-manifest.json` - Tracks the current released version - -## Conventional Commits - -This project uses [conventional commits](https://www.conventionalcommits.org/): - -- `feat:` - New features -- `fix:` - Bug fixes -- `chore:`, `docs:`, `style:`, `refactor:`, `test:` - Other changes diff --git a/release-please-config.json b/release-please-config.json deleted file mode 100644 index f6843d1..0000000 --- a/release-please-config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", - "packages": { - ".": { - "release-type": "simple", - "release-as": "5.0.0-alpha.22", - "include-component-in-tag": false, - "include-v-in-tag": true, - "changelog-path": "CHANGELOG.md" - } - } -}