Skip to content

build(release): bump version to v0.9.0#409

Merged
jason-lynch merged 12 commits into
mainfrom
release/v0.9.0
Jun 24, 2026
Merged

build(release): bump version to v0.9.0#409
jason-lynch merged 12 commits into
mainfrom
release/v0.9.0

Conversation

@jason-lynch

Copy link
Copy Markdown
Member

Summary

This is the release PR for v0.9.0.

@codacy-production

codacy-production Bot commented Jun 16, 2026

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 1 medium

Results:
1 new issue

Category Results
Complexity 1 medium

View in Codacy

🟢 Metrics 0 complexity · 5 duplication

Metric Results
Complexity 0
Duplication 5

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0ae9f35b-b81a-4f60-94e5-bb2f5a44329e

📥 Commits

Reviewing files that changed from the base of the PR and between 659a6ac and 12fcadf.

📒 Files selected for processing (2)
  • docs/installation/systemd.md
  • server/internal/api/apiv1/post_init_handlers.go

📝 Walkthrough

Walkthrough

The PR bumps the release to v0.9.0, updates changelog and documentation references, adjusts Swarm orchestration and packaging behavior, adds backup-request validation, normalizes Postgres version reporting, and extends v1.2.0 resource migration support for scheduled jobs.

Changes

v0.9.0 release artifacts and docs

Layer / File(s) Summary
Version bump and release notes
api/version.txt, changes/v0.9.0.md
api/version.txt now reads v0.9.0, and changes/v0.9.0.md adds the new release notes entry with Added, Changed, and Fixed items.
Changelog publication
CHANGELOG.md, docs/changelog.md
The top-level changelogs now include a new v0.9.0 section.
Documentation version references
docs/api/openapi.md, docs/api/reference.md, docs/installation/installation.md, docs/installation/mtls.md, docs/installation/systemd.md, docs/installation/upgrading.md, docs/development/e2e-tests.md
Docs now reference v0.9.0 image tags, versioned URLs, fixture tags, and updated install/upgrade commands.

Swarm orchestration, packaging, and monitoring

Layer / File(s) Summary
Shared config hash wiring
server/internal/orchestrator/swarm/service_spec.go, server/internal/orchestrator/swarm/service_spec_test.go
Swarm service specs now use serviceConfigHash for PGEDGE_CONFIG_VERSION in MCP and RAG containers, and the tests assert the updated hash-based environment behavior.
Pre-redeploy instance refresh
server/internal/orchestrator/swarm/service_instance.go
ServiceInstanceResource.Update now refreshes the stored running state before redeploying.
Package uninstall scripts
.goreleaser.yaml, packaging/deb/preremove.sh, packaging/rpm/preremove.sh
GoReleaser now wires RPM and Debian preremove hooks, and the new scripts stop and disable the control-plane service on removal.
KB host-path directory rejection
server/internal/orchestrator/swarm/mcp_config_resource.go, server/internal/orchestrator/swarm/mcp_config_resource_test.go
MCP KB file validation now rejects directory paths, with a test covering the directory failure case.
Normalized Postgres version query
server/internal/postgres/info.go
Postgres version reporting now derives a normalized X.Y string from server_version_num.

Backup validation

Layer / File(s) Summary
Backup config guard
server/internal/api/apiv1/post_init_handlers.go
BackupDatabaseNode now returns an invalid-input error when no backup configuration is defined.

Scheduled job migration

Layer / File(s) Summary
Scheduler schemas
server/internal/resource/migrations/schemas/v1_1_0/scheduler.go, server/internal/resource/migrations/schemas/v1_2_0/scheduler.go
Both migration schema packages now define scheduler.job resource types and scheduled-job structs.
Scheduled job conversion
server/internal/resource/migrations/1_2_0.go
The v1.2.0 migration now converts scheduled jobs and remaps dependency types through shared helpers.
Scheduled backup migration coverage
server/internal/resource/migrations/1_2_0_test.go, server/internal/resource/migrations/golden_test/TestVersion_1_2_0/with_scheduled_backups.json
The migration tests now cover scheduled backups and include a full golden fixture for the migrated resource graph.

Poem

🐇 Hop hop, the release bells ring,
v0.9.0 takes wing 🪽
Docs, scripts, and migrations aligned,
A cleaner trail for every kind.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description only states this is the v0.9.0 release PR and omits the required Summary, Changes, Testing, Checklist, and Notes sections. Expand the PR description to follow the template with Summary, Changes, Testing, Checklist, and Notes sections, plus any issue and breaking-change details.
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title matches the release/version-bump nature of this PR and is specific enough for history scanning.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/v0.9.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/installation/systemd.md (1)

128-158: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Version mismatch between RPM and Deb installation sections.

The RPM package section (line 133) specifies VERSION="v0.9.0", but the Deb package section (line 151) still specifies VERSION="v0.8.0". For a consistent v0.9.0 release, both installation paths must target the same version.

🔧 Proposed fix for the Deb section
 # Set the version to install
-VERSION="v0.8.0"
+VERSION="v0.9.0"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/installation/systemd.md` around lines 128 - 158, The Deb Package
installation section has an outdated version variable that does not match the
RPM section. In the Deb Package section, change the VERSION variable from v0.8.0
to v0.9.0 to ensure both RPM and Deb installation paths are consistent and
target the same release version. This single-line change in the VERSION
assignment will automatically apply the correct version to all subsequent curl
and install commands in that section.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/installation/systemd.md`:
- Around line 128-158: The Deb Package installation section has an outdated
version variable that does not match the RPM section. In the Deb Package
section, change the VERSION variable from v0.8.0 to v0.9.0 to ensure both RPM
and Deb installation paths are consistent and target the same release version.
This single-line change in the VERSION assignment will automatically apply the
correct version to all subsequent curl and install commands in that section.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7ebcf69f-f497-412f-95e1-7ddfd5152727

📥 Commits

Reviewing files that changed from the base of the PR and between 847bb00 and 00022bf.

⛔ Files ignored due to path filters (5)
  • api/apiv1/gen/control_plane/service.go is excluded by !**/gen/**
  • api/apiv1/gen/http/openapi.json is excluded by !**/gen/**
  • api/apiv1/gen/http/openapi.yaml is excluded by !**/gen/**
  • api/apiv1/gen/http/openapi3.json is excluded by !**/gen/**
  • api/apiv1/gen/http/openapi3.yaml is excluded by !**/gen/**
📒 Files selected for processing (23)
  • CHANGELOG.md
  • api/version.txt
  • changes/unreleased/Added-20260504-150235.yaml
  • changes/unreleased/Added-20260511-090000.yaml
  • changes/unreleased/Added-20260511-090010.yaml
  • changes/unreleased/Added-20260511-090020.yaml
  • changes/unreleased/Added-20260511-100000.yaml
  • changes/unreleased/Added-20260610-000000.yaml
  • changes/unreleased/Added-20260611-090000.yaml
  • changes/unreleased/Added-20260611-090010.yaml
  • changes/unreleased/Changed-20260504-152348.yaml
  • changes/unreleased/Fixed-20260611-090000.yaml
  • changes/unreleased/Fixed-20260611-090010.yaml
  • changes/unreleased/Fixed-20260616-150152.yaml
  • changes/v0.9.0.md
  • docs/api/openapi.md
  • docs/api/reference.md
  • docs/changelog.md
  • docs/development/e2e-tests.md
  • docs/installation/installation.md
  • docs/installation/mtls.md
  • docs/installation/systemd.md
  • docs/installation/upgrading.md
💤 Files with no reviewable changes (12)
  • changes/unreleased/Added-20260511-090010.yaml
  • changes/unreleased/Fixed-20260616-150152.yaml
  • changes/unreleased/Added-20260511-090020.yaml
  • changes/unreleased/Added-20260511-090000.yaml
  • changes/unreleased/Added-20260504-150235.yaml
  • changes/unreleased/Added-20260610-000000.yaml
  • changes/unreleased/Fixed-20260611-090010.yaml
  • changes/unreleased/Added-20260611-090000.yaml
  • changes/unreleased/Added-20260611-090010.yaml
  • changes/unreleased/Fixed-20260611-090000.yaml
  • changes/unreleased/Added-20260511-100000.yaml
  • changes/unreleased/Changed-20260504-152348.yaml

jason-lynch and others added 11 commits June 16, 2026 16:34
This version got out of sync because of the merge order between the
Debian support PR and the v0.8.1 patch release and, as a result, it
didn't get updated automatically by the release target. This one-time
manual change will get it back in sync.
On Debian, `server_version` contains build information, like:
`18.4 (Debian 18.4-1.trixie)`. This breaks our process that reconciles
the database spec with the observed Postgres version.

This commit fixes that issue by changing our `GetPostgresVersion` query
to use the integer representation of the server version, e.g. `180004`,
to compute the string representation. This is more reliable and behaves
consistently across host OSes.
We use `-y` in all the other `apt` and `dnf` commands so that they're
easy to copy and paste or translate into a script.
Putting the Control Plane deb file in /tmp makes it accessible to the
_apt user, so apt can avoid using the root user.
* fix: restart MCP container on KB config change

KB config changes (path, provider, model, key) had no effect after an
update: config.yaml is bind-mounted so SIGHUP-only reload kept the old
KB path, causing "file not found" / SQLite errors. Embed a
PGEDGE_CONFIG_VERSION hash in the MCP container env (like RAG) so a
config change forces a restart and re-initializes the KB.

Also refresh the service instance's UpdatedAt before an update redeploy
so the monitor doesn't briefly mark it failed during the restart.
The preremove scriptlets also get called during package upgrade. Our
preremove scriptlets stop and disable the control plane service, so we
only want them to run during a removal.

This commit resolves the issue by adding a condition that's only true
during removal. This condition is different for each package type, so
I've split this script into separate files like we do for the
postinstall script.
Adds a migration for scheduled job dependencies to use the new common
pgBackRest stanza resource type instead of the the old swarm one.
Adds validation to the backup database node endpoint to return a 400
error when the given node does not have a backup configuration.
Updates the `Updating the Control Plane` section to use the same
commands as the installation section.
@jason-lynch jason-lynch merged commit 685d2ab into main Jun 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants