From cd9b48c9389c23a9e5c02f089bf3d5a6399c7439 Mon Sep 17 00:00:00 2001 From: Jean Philippe Date: Fri, 9 Oct 2026 09:08:25 +0900 Subject: [PATCH] chore: sync main with v1.7.0 stable release --- .github/workflows/Engine-CI-skip.yml | 30 ++-------- .github/workflows/Engine-CI.yml | 7 +++ .github/workflows/release-please.yml | 4 +- .release-please-manifest.json | 2 +- CHANGELOG.md | 61 ++++++++++++++++++++ Contributing.md | 29 +--------- Models/ProjectConfigJson.cs | 38 ++++++++++++ Panzerfaust.csproj | 2 +- README.md | 2 + VERSION.txt | 2 +- docs/project-configuration.md | 60 +++++++++++++++++++ docs/release-process.md | 86 ++++++++++------------------ release-please-config.json | 5 +- 13 files changed, 211 insertions(+), 117 deletions(-) create mode 100644 docs/project-configuration.md diff --git a/.github/workflows/Engine-CI-skip.yml b/.github/workflows/Engine-CI-skip.yml index b907ab0..7b2ac46 100644 --- a/.github/workflows/Engine-CI-skip.yml +++ b/.github/workflows/Engine-CI-skip.yml @@ -17,29 +17,7 @@ jobs: steps: - run: echo "No source changes — skipping commitlint" - # Call reusable workflows with all options false so the nested check names - # (e.g. "windows / build-release / build-windows-x64-Release") appear as - # skipped — satisfying both develop's top-level and main's nested required checks. - windows: - uses: ./.github/workflows/windows-build.yml - with: - targetFramework: net10.0 - run_debug: false - run_release: false - run_deploy: false - - macOS: - uses: ./.github/workflows/macOS-build.yml - with: - targetFramework: net10.0 - run_debug: false - run_release: false - run_deploy: false - - linux: - uses: ./.github/workflows/linux-build.yml - with: - targetFramework: net10.0 - run_debug: false - run_release: false - run_deploy: false + ci-passed: + runs-on: ubuntu-latest + steps: + - run: echo "No source changes — CI skipped" diff --git a/.github/workflows/Engine-CI.yml b/.github/workflows/Engine-CI.yml index ed4aa4c..df180ab 100644 --- a/.github/workflows/Engine-CI.yml +++ b/.github/workflows/Engine-CI.yml @@ -66,3 +66,10 @@ jobs: run_debug: ${{ github.event_name == 'pull_request' && github.base_ref == 'develop' || (github.event_name == 'workflow_dispatch' && fromJSON(inputs.run_debug)) }} run_release: ${{ (github.event_name == 'pull_request' && github.base_ref == 'main') || github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && fromJSON(inputs.run_release)) }} run_deploy: ${{ github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && fromJSON(inputs.run_deploy)) }} + + ci-passed: + needs: [windows, macOS, linux] + if: ${{ always() && !failure() && !cancelled() }} + runs-on: ubuntu-latest + steps: + - run: echo "CI passed" diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index b7919ca..970d951 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -2,7 +2,7 @@ name: Release Please (Stable) on: push: - branches: [main] + branches: [develop] tags: ['v*'] workflow_dispatch: inputs: @@ -29,7 +29,7 @@ jobs: config-file: release-please-config.json manifest-file: .release-please-manifest.json token: ${{ secrets.GITHUB_TOKEN }} - target-branch: main + target-branch: develop publish-windows: needs: release-please diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 6180eb9..7588679 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.5.0" + ".": "1.7.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index ad49215..4d61519 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,66 @@ # Changelog +## [1.7.0](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/compare/v1.6.0...v1.7.0) (2026-10-05) + + +### Features + +* **project:** generate sky and environment lighting defaults ([#77](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/77)) ([5abddc8](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/5abddc83afa643d63814dd7b25d32c7c08682b42)) + +## [1.6.0](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/compare/v1.5.0...v1.6.0) (2026-08-24) + + +### Features + +* assets page redesign, local asset grouping, project card modernization ([#16](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/16)) ([ae27d32](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/ae27d32a9a54cc50b2b23e8d1d1ca897c7b93191)) +* configure VS Code for cross-platform debugging and fix binding errors ([#15](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/15)) ([e08d69c](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/e08d69cd2efd6ce89e680940557a57038cf9624b)) +* engine UX improvements and Linux startup fixes ([#32](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/32)) ([d41dae2](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/d41dae22b8802e197d2f8f85bc019844f0d4a91b)) +* **panzerfaust:** add search support allowing user to find projet by name ([#399](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/399)) ([#447](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/447)) ([69822bc](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/69822bcd05a78fdef78cfae0db3fc9aad7b46814)) +* **panzerfaust:** build launcher UI with engine management, assets, and project workflow ([#554](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/554)) ([739b6af](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/739b6aff41ff533884e8a89c942978070fe062f8)) +* **project:** remove SceneData directory from project layout ([#48](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/48)) ([7e816f8](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/7e816f884a53f5cfb2f7be4528525e58ffba51b8)) +* **project:** standardize asset directories under Assets/ and add sky config ([#46](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/46)) ([90c8faf](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/90c8faf5a337844b5a68433b29800714e89348a3)) +* RC build indicator with orange bloom border and version tag ([#28](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/28)) ([ec34bcb](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/ec34bcb230bec714bfd3317965c2b2210bf92186)) +* show app release version in status bar ([#14](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/14)) ([5315617](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/5315617f48eee0656da496502f1541c15273e126)) +* **ui:** add ZodiacEngineHub app icon ([#49](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/49)) ([52a0bea](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/52a0bea6177272cede9390baade5a4c2b640602f)) + + +### Bug Fixes + +* **assets:** preserve companion file paths and migrate existing flat textures ([#64](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/64)) ([ddf004c](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/ddf004c9a4842c5b2a04e802784614cdc5c153d3)) +* bump version to trigger RC build with orange border indicator ([#27](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/27)) ([7fada50](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/7fada506d65cdbde1700ec2557ddc520c2da4dfc)) +* pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash ([#31](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/31)) ([cf79d5e](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/cf79d5e5698e505dc2b217a3a98697cb73e43bfc)) +* restore Windows caption buttons and fix app version display ([#25](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/25)) ([7846204](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/784620441f95deb0f7103d69838fe3d86d794582)) +* surface engine crash errors and resolve stale rpath for local builds ([#30](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/30)) ([2d9c5db](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/2d9c5dba7c511352a42ff9e489c05bf09de646ee)) + + +### Documentation + +* add README with features, downloads, system requirements and build instructions ([#12](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/12)) ([9ca1e05](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/9ca1e056d70d2b753ae070338c681b1f93976f0a)) +* **roadmap:** add roadmap with planned features and current implementation status ([#24](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/24)) ([d4638a2](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/d4638a2db75d086abd7f34bdd6ae5a31c39abce7)) +* update README with current screenshots ([#17](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/17)) ([f3b3555](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/f3b3555c4e0abc5dba71b3ab00e64c3a6f7adea5)) + + +### Build System + +* remove _WIN32/__MACOS__ defines, fix OutputType to Exe ([be9def5](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/be9def5c8e7b63292c84296e9eff7a021f685f0e)) +* restore OutputType to WinExe ([2790a13](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/2790a13835d6816367bf0a71be3e87910b2de232)) + + +### CI/CD + +* add changelog generation script ([c8ca195](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/c8ca1954df450e5cc5532ad70950228620a799c0)) +* add full CI/CD pipeline for all platforms ([edd6e35](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/edd6e358176212a0e4fc60839b4b6533410a9bb9)) +* configure release-please and versioning for v1.0.0 ([da46c28](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/da46c2875d3cb43e7d10c9c369f5864397b0f4f1)) +* drop macOS x64 build from all workflows ([#44](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/44)) ([eaf213c](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/eaf213c27f9a240e2bc1b5e58cc096576ca286a5)) +* enable single-file publish across all platform build jobs ([#13](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/13)) ([f92afae](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/f92afae642d39d54d87ecf7ff16c86a0858cc3b4)) +* ignore legacy non-conventional commits in commitlint ([#40](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/40)) ([60340d4](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/60340d4c97d3ff4c1a6aca063ee58e3dc95058c9)) +* restore commitlint check for all PRs ([#39](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/39)) ([38aada5](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/38aada553b8546514858e4139fcf02ee7ebc37a7)) +* rewrite pipelines for dotnet, remove C++ engine workflows ([0f97bfb](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/0f97bfb3e0d143fb20e8ed88884e152ccaee67b8)) +* set target-branch to main in release-please config ([#53](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/53)) ([028b27c](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/028b27c7b7d8995e8390ebb744237d039b858f30)) +* skip build for non-source file changes ([#45](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/45)) ([bb35a0e](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/bb35a0e9cea4e11f8ebe7b78669949784f404bb6)) +* switch release flow to target develop directly ([#67](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/issues/67)) ([7161a99](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/7161a99507ffdd2024691259c9ee3127d2781f23)) +* sync dotnet pipelines, configs and scripts from develop ([6c78b92](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/commit/6c78b923f9aeb3815689407a3f401905d3b4455b)) + ## [1.5.0](https://github.com/JeanPhilippeKernel/ZodiacEngineHub/compare/v1.4.0...v1.5.0) (2026-08-22) diff --git a/Contributing.md b/Contributing.md index a6176bc..f9e5dc0 100644 --- a/Contributing.md +++ b/Contributing.md @@ -5,7 +5,7 @@ When contributing to this repository, please first discuss the change you wish t ## Branch target -**All pull requests must target the `develop` branch.** Direct PRs to `main` are not accepted — `main` is updated only through the release process. +**All pull requests must target the `develop` branch.** `main` is a read-only mirror of the last stable release and is never pushed to directly. ## Rules @@ -96,32 +96,7 @@ This installs a `commit-msg` hook that validates conventional commits format loc ## Release Process -Panzerfaust has two release tracks, both fully automated from commit messages. - -### Stable releases (`main`) - -Merges into `main` are picked up by Release Please, which opens a **Release PR** accumulating all changes since the last stable tag. When that PR is merged: - -- `VERSION.txt` is bumped (`0.3.0` → `0.3.1` / `0.4.0` / `1.0.0`) based on commit types -- A tag `v0.3.1` is created -- A GitHub Release is published with build artifacts for all platforms - -### Pre-releases (`develop`) - -Pushes to `develop` follow the same process but produce rc versions: - -- Release Please opens a **Pre-release PR** on `develop` -- When merged: `VERSION.txt` is set to e.g. `0.4.0-rc.1`, tag `v0.4.0-rc.1` is created -- A GitHub Pre-release is published (marked as pre-release in the GitHub UI) -- Each subsequent batch of commits increments the rc counter: `rc.1` → `rc.2` → … - -### Promoting a pre-release to stable - -Once `develop` is stable enough to ship: - -1. Open a PR from `develop` → `main` -2. Merge it — Release Please on `main` sees all the accumulated `feat:`/`fix:` commits and opens a stable Release PR -3. Merge the Release PR → `v0.4.0` stable is tagged and published +See **[docs/release-process.md](docs/release-process.md)** for the full release workflow. ## Pull Request Process diff --git a/Models/ProjectConfigJson.cs b/Models/ProjectConfigJson.cs index 9cb93d7..3b61e3a 100644 --- a/Models/ProjectConfigJson.cs +++ b/Models/ProjectConfigJson.cs @@ -39,6 +39,38 @@ internal class AssetDirectories public string EnvironmentMapDirectory { get; set; } = "$(workingSpace)/Assets/EnvironmentMaps"; } + internal class SkyDefaults + { + [JsonPropertyName("mode")] + public string Mode { get; set; } = "atmosphere"; + + [JsonPropertyName("environmentMap")] + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public Guid? EnvironmentMap { get; set; } + + [JsonPropertyName("environmentIntensity")] + public float EnvironmentIntensity { get; set; } = 1.0f; + + [JsonPropertyName("environmentTint")] + public float[] EnvironmentTint { get; set; } = new[] { 1.0f, 1.0f, 1.0f, 1.0f }; + + [JsonPropertyName("environmentYawRadians")] + public float EnvironmentYawRadians { get; set; } = 0.0f; + } + + internal class RenderingSettings + { + [JsonPropertyName("environment_lighting_quality")] + public string EnvironmentLightingQuality { get; set; } = "standard"; + + [JsonPropertyName("environment_lighting_budget_mb")] + public int EnvironmentLightingBudgetMb { get; set; } = 384; + + // Preserve other rendering policies when a configuration is round-tripped. + [JsonExtensionData] + public Dictionary? AdditionalProperties { get; set; } + } + internal class ProjectConfigJson { [JsonPropertyName("projectName")] @@ -60,6 +92,12 @@ internal class ProjectConfigJson [JsonPropertyName("sceneList")] public IList Scenes { get; set; } = new List { new Scene() }; + [JsonPropertyName("skyDefaults")] + public SkyDefaults SkyDefaults { get; set; } = new(); + + [JsonPropertyName("rendering")] + public RenderingSettings Rendering { get; set; } = new(); + public string ToJson() => JsonSerializer.Serialize(this, new JsonSerializerOptions { WriteIndented = true }); } } diff --git a/Panzerfaust.csproj b/Panzerfaust.csproj index fa393c7..0f7c7a1 100644 --- a/Panzerfaust.csproj +++ b/Panzerfaust.csproj @@ -5,7 +5,7 @@ net10.0 enable enable - 1.5.0 + 1.7.0 1.3.0 1.3.0 true diff --git a/README.md b/README.md index f130542..f00ff1e 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,8 @@ See [Contributing.md](Contributing.md) for commit conventions, branch rules, and For local development with a custom engine build, see [docs/local-engine-path.md](docs/local-engine-path.md). +For generated sky defaults and environment-lighting settings, see [docs/project-configuration.md](docs/project-configuration.md). + --- ## License diff --git a/VERSION.txt b/VERSION.txt index bc80560..bd8bf88 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -1.5.0 +1.7.0 diff --git a/docs/project-configuration.md b/docs/project-configuration.md new file mode 100644 index 0000000..3c97251 --- /dev/null +++ b/docs/project-configuration.md @@ -0,0 +1,60 @@ +# Project configuration + +Panzerfaust writes `projectConfig.json` when creating a project. This is the +project configuration passed to Obelisk; engine documentation and issue reports +may also call this file `project.json`. + +New projects include these defaults alongside their asset directories and scenes: + +```json +{ + "skyDefaults": { + "mode": "atmosphere", + "environmentIntensity": 1, + "environmentTint": [1, 1, 1, 1], + "environmentYawRadians": 0 + }, + "rendering": { + "environment_lighting_quality": "standard", + "environment_lighting_budget_mb": 384 + } +} +``` + +## Sky defaults + +`skyDefaults` supplies authoring defaults for newly created or reset scenes. +Saved scenes retain their own `SkyConfig`. Supported modes are `atmosphere`, +`hdri`, and `skySphere`. The generated atmosphere uses the engine's default +atmosphere settings. + +Environment intensity is a nonnegative multiplier. Tint contains four +nonnegative RGBA components; white preserves the original colors. Yaw is a +rotation in radians. The generated values match the engine's validated defaults. + +`environmentMap` is optional and omitted by default. When configuring an HDRI, +set it to the imported environment asset's UUID string, rather than a file path. +Generated IBL cache paths, renderer handles, and viewport state do not belong in +this section. + +## Environment lighting + +`rendering.environment_lighting_quality` controls environment-lighting bake +quality. The accepted tiers are: + +| Tier | Intended use | +|---|---| +| `low` | Lower-cost previews or constrained hardware; smaller lighting maps and fewer samples. | +| `standard` | Default balance between lighting quality and bake cost. | +| `high` | Higher-quality lighting with larger maps and more samples. | + +`rendering.environment_lighting_budget_mb` is a positive integer number of MiB. +The default is `384`. It caps persistent environment textures, independently of +the quality tier; it is neither a CPU memory budget nor a total GPU memory limit. + +Existing projects require no migration. Missing or invalid lighting settings +fall back to `standard` and `384` in the engine. The editor also accepts the +legacy `sky` section. Panzerfaust creates only new project configurations and +does not rewrite existing configurations to add these defaults. Renaming a +project preserves its other configuration properties, including rendering +settings and legacy sky data. diff --git a/docs/release-process.md b/docs/release-process.md index 9f772ca..5bd3d00 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -1,91 +1,67 @@ # Release Process -Panzerfaust uses two branches and [Release Please](https://github.com/googleapis/release-please) to automate versioning and publishing. - -| Branch | Track | Example tag | -|---|---|---| -| `develop` | Pre-release (RC) | `v1.2.0-rc.1` | -| `main` | Stable | `v1.2.0` | - -All automation is driven by [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). No manual version bumping. +Panzerfaust uses [Release Please](https://github.com/googleapis/release-please) and [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) to automate versioning and publishing. All releases — RC and stable — are driven from `develop`. No manual version bumping, no develop → main merge dance. --- -## Day-to-day development +## Branches -Contributors open PRs against `develop`. Once merged, Release Please on `develop` automatically opens or updates a **Pre-release PR** that accumulates the pending version bump and changelog entries. +| Branch | Purpose | +|---|---| +| `develop` | Default branch. All development, all releases. | +| `main` | Read-only mirror of the last stable release. Updated manually after each stable if desired. | --- -## Cutting a pre-release (RC) - -1. Review the open Release Please PR on `develop` (titled `chore: release X.Y.Z-rc.N`). -2. Check the changelog entries look correct. -3. Merge the PR. +## Day-to-day development -Release Please then: -- Bumps `VERSION.txt` to e.g. `1.2.0-rc.1` -- Creates tag `v1.2.0-rc.1` -- Publishes a GitHub Pre-release with build artifacts for all platforms +Open PRs against `develop`. Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) in your PR title: -Subsequent merges to `develop` before a stable release increment the counter: `rc.1` → `rc.2` → … +``` +feat(scope): add something new → minor bump +fix(scope): correct a bug → patch bump +feat!: breaking change → major bump +ci/docs/chore: housekeeping → no bump +``` --- -## Promoting to stable - -Once `develop` is ready to ship: - -1. Open a PR from `develop` → `main`. -2. Get it reviewed and merge it. -3. Release Please on `main` opens a **Stable Release PR** (titled `chore: release X.Y.Z`). -4. Review and merge that PR. +## Cutting a pre-release (RC) -Release Please then: -- Bumps `VERSION.txt` to e.g. `1.2.0` -- Creates tag `v1.2.0` -- Publishes a GitHub Release (stable) with build artifacts +The pre-release pipeline runs automatically on every push to `develop`. No action needed — if the push contains releasable commits, a new `vX.Y.Z-rc.N` tag is created and a GitHub Pre-release is published with build artifacts. --- -## Syncing `develop` after a stable release +## Cutting a stable release -After the stable Release PR merges to `main`, `develop` is behind by the version bump commit. Sync it: +1. Review the open Release Please PR on `develop` (titled `chore: release X.Y.Z`). +2. Check the changelog looks correct. +3. Merge the PR. -```sh -git checkout develop -git fetch origin -git merge origin/main -git push origin develop -``` +Release Please then: +- Bumps `VERSION.txt` and `Panzerfaust.csproj` to `X.Y.Z` +- Updates `CHANGELOG.md` +- Creates tag `vX.Y.Z` on `develop` +- Publishes a GitHub Release with artifacts for Windows, macOS arm64, and Linux -This keeps `VERSION.txt` and `CHANGELOG.md` consistent on both branches. +That's it. No other steps required. --- -## Hotfix on stable +## Hotfix For urgent fixes that cannot wait for the next RC cycle: -1. Branch off `main`: `git checkout -b fix/ main` +1. Branch off `develop`: `git checkout -b fix/ develop` 2. Apply the fix with a `fix:` commit. -3. Open a PR against `main` directly. -4. Merge — Release Please opens a patch release PR (`v1.2.1`). -5. Merge the release PR. -6. Back-port to `develop`: - -```sh -git checkout develop -git cherry-pick -git push origin develop -``` +3. Open a PR against `develop`. +4. Merge — Release Please updates the pending release PR with the fix. +5. Merge the Release Please PR to ship the patch release. --- ## Version bump rules -The version bump is determined automatically from commit types since the last release: - | Commit type | Bump | |---|---| | `feat` | minor | diff --git a/release-please-config.json b/release-please-config.json index 1e512c3..eef4b6f 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", - "target-branch": "main", + "target-branch": "develop", "bump-minor-pre-major": true, "pull-request-title-pattern": "chore: release ${version}", "packages": { @@ -19,9 +19,6 @@ {"type": "fix", "section": "Bug Fixes"}, {"type": "perf", "section": "Performance"}, {"type": "refactor", "section": "Refactors"}, - {"type": "docs", "section": "Documentation"}, - {"type": "build", "section": "Build System"}, - {"type": "ci", "section": "CI/CD"}, {"type": "revert", "section": "Reverts"} ] }