diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 9e744d2..a20936a 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -174,16 +174,25 @@ jobs: echo "$ENTRY" > /tmp/changelog_entry.md # Prepend to CHANGELOG.md if it exists - # Preserves full header (everything before first "## [" section marker) + # Handles [Unreleased] section: insert new version AFTER it if [ -f "CHANGELOG.md" ]; then - # Find line number of first version section (## [x.y.z] or ## [Unreleased]) - HEADER_END=$(grep -n '^## \[' CHANGELOG.md | head -1 | cut -d: -f1) - if [ -n "$HEADER_END" ]; then - HEADER_END=$((HEADER_END - 1)) - head -n "$HEADER_END" CHANGELOG.md > /tmp/changelog_new.md + # Check for [Unreleased] section (case-insensitive) + UNRELEASED_LINE=$(grep -in '^## \[Unreleased\]' CHANGELOG.md | head -1 | cut -d: -f1) + # Find first versioned section (## [x.y.z]) + FIRST_VERSION_LINE=$(grep -n '^## \[[0-9]' CHANGELOG.md | head -1 | cut -d: -f1) + + if [ -n "$UNRELEASED_LINE" ]; then + # Has [Unreleased] section - insert new version after it + head -n "$UNRELEASED_LINE" CHANGELOG.md > /tmp/changelog_new.md + echo "" >> /tmp/changelog_new.md + cat /tmp/changelog_entry.md >> /tmp/changelog_new.md + tail -n +"$((UNRELEASED_LINE + 1))" CHANGELOG.md >> /tmp/changelog_new.md + elif [ -n "$FIRST_VERSION_LINE" ]; then + # No [Unreleased], insert before first version section + head -n "$((FIRST_VERSION_LINE - 1))" CHANGELOG.md > /tmp/changelog_new.md echo "" >> /tmp/changelog_new.md cat /tmp/changelog_entry.md >> /tmp/changelog_new.md - tail -n +"$((HEADER_END + 1))" CHANGELOG.md >> /tmp/changelog_new.md + tail -n +"$FIRST_VERSION_LINE" CHANGELOG.md >> /tmp/changelog_new.md else # No version sections found, append to end cat CHANGELOG.md > /tmp/changelog_new.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 857774d..58fcf67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,29 +6,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.10.1] - 2026-01-15 +## [Unreleased] + +## [0.10.2] - 2026-01-16 ### Added -- **schema**: add jsonc support with trailing commas and comments (#1) +- **make**: add workflow targets with fzf interactive prompts (#6) ### Fixed -- **release**: validate custom version input and include all changelog entries (#3) +- **ci**: update npm to latest for OIDC trusted publishing (#5) -### Changed -- ignore .opencode - - -## [Unreleased] - -## [0.10.1] - 2026-01-16 +## [0.10.1] - 2026-01-15 ### Added -- **JSON Schema JSONC support**: Schema now allows trailing commas and comments for better editor compatibility +- **JSON Schema JSONC support**: Schema now allows trailing commas and comments for better editor compatibility (#1) + +### Fixed +- **Release workflow**: Validate custom version input and include all changelog entries (#3) ### CI/CD -- **Automated release workflows**: New `release-pr.yml` and `release-publish.yml` for automated versioning and npm publishing -- **OIDC npm publishing**: Secure npm publishing using GitHub OIDC tokens (no npm tokens stored) -- **Custom version validation**: Release workflow validates custom version input format +- Automated release workflows (`release-pr.yml`, `release-publish.yml`) for versioning and npm publishing (#2) +- OIDC npm publishing using GitHub OIDC tokens (no npm tokens stored) + +### Changed +- Ignore `.opencode` directory ### Documentation - Updated RELEASE.md with automation instructions @@ -211,7 +212,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --- -[Unreleased]: https://github.com/assagman/opencode-toolbox/compare/v0.10.1...HEAD +[Unreleased]: https://github.com/assagman/opencode-toolbox/compare/v0.10.2...HEAD +[0.10.2]: https://github.com/assagman/opencode-toolbox/compare/v0.10.1...v0.10.2 [0.10.1]: https://github.com/assagman/opencode-toolbox/compare/v0.10.0...v0.10.1 [0.10.0]: https://github.com/assagman/opencode-toolbox/compare/v0.9.0...v0.10.0 [0.9.0]: https://github.com/assagman/opencode-toolbox/compare/v0.8.0...v0.9.0 diff --git a/package.json b/package.json index bcee1d8..411e4b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opencode-toolbox", - "version": "0.10.1", + "version": "0.10.2", "description": "Tool Search Tool Plugin for OpenCode - search and execute tools from MCP servers on-demand", "main": "dist/index.js", "module": "dist/index.js",