Skip to content

Prepare 0.4.0: changelog, generator fixes, and a 0.3 to 0.4 upgrade guide - #143

Merged
lewispb merged 2 commits into
mainfrom
changelog-0-4-0
Sep 3, 2026
Merged

lewispb merged 2 commits into
mainfrom
changelog-0-4-0

Conversation

@lewispb

@lewispb lewispb commented Sep 3, 2026

Copy link
Copy Markdown
Member

Preparation for 0.4.0. Audited every PR merged since v0.3.0 against the changelog and the install generator, and wrote the upgrade guide.

Changelog

Dependabot bumps and CI-only changes (#64, #86, #94, #104) are deliberately not listed. The release pipeline entry arrives with #142.

Install generator

Two gaps a fresh install would have hit:

  • recurring.yml lacked aggregate_rollups (Upright::Rollups::DailyAggregationJob) and advance_maintenances (Upright::MaintenanceAdvanceJob). Added with the schedules the reference deployment uses.
  • database.yml was split into primary and queue but never got a persistent database, so the health, rollup, incident and maintenance jobs would have run against a database that did not exist (Copilot's finding). The rewrite now produces primary, persistent and queue for development and test, with the persistent migrations_paths pointing at the installed gem's db/persistent_migrate. It is extracted to Upright::Generators::DatabaseConfig with a unit test. The README quick start runs db:prepare, which creates and migrates all three.

UPGRADING.md

A step-by-step guide from 0.3 to 0.4 for existing installs: gem update, persistent database, housekeeping and health jobs, site flags, initializer settings, regenerated recording rules, the admin password fix, Playwright in the app container, the hardened deploy config, and, as a separate opt-in step, the public status page with its jobs and services.yml. Ends with checks to run.

After this and #142 merge

Cut 0.4.0: set Upright::VERSION, run bundle install, rename the Unreleased heading to ## v0.4.0, merge, then rake tag.

The changelog was missing automatic incident reporting (#137) and the switch
from CARTO to OpenStreetMap map tiles, and the Upgrading section listed one
recurring job when existing installs need five. The install generator's
recurring.yml template also lacked the rollup aggregation and maintenance
advance jobs that the public status page and scheduled maintenance depend
on, so a fresh install would have shown no daily uptime and never started a
maintenance window; both are added with the schedules the reference
deployment uses. The persistent database that rollups and incidents live in
is now called out under Upgrading as well.
Copilot AI balanced review requested due to automatic review settings September 3, 2026 11:51

Copilot AI 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.

🟡 Changes recommended

Fresh installs schedule persistent-database jobs without generating the required persistent database configuration.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Prepares the 0.4.0 changelog and generated recurring-job configuration.

Changes:

  • Adds rollup aggregation and maintenance advancement schedules.
  • Completes upgrade guidance and release notes.

[!TIP]
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.

File summaries
File Description
CHANGELOG.md Documents release changes and upgrade requirements.
lib/generators/upright/install/templates/recurring.yml Adds missing recurring jobs.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +35 to +37
aggregate_rollups:
class: "Upright::Rollups::DailyAggregationJob"
schedule: every hour at minute 5

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Fixed in 93e19c5, and this was a pre-existing gap: health_metrics and report_incidents were already in the template and also use the persistent database. The generator's database.yml rewrite now produces primary, persistent and queue for development and test, with migrations_paths for persistent pointing at the installed gem's db/persistent_migrate, so bin/rails db:prepare creates and migrates all three. The rewrite is extracted to Upright::Generators::DatabaseConfig with a unit test in test/generators/database_config_test.rb. The README quick start now runs db:prepare instead of db:migrate, and a new UPGRADING.md covers the same for existing installs.

The install generator split development and test into primary and queue
databases but never added the persistent one, so a fresh install scheduled
the health, rollup, incident and maintenance jobs against a database that did
not exist. The rewrite of database.yml now produces primary, persistent and
queue, with the persistent migrations_paths pointing at the installed gem's
db/persistent_migrate, the same arrangement the reference deployment uses.
The rewrite lives in DatabaseConfig so it can be tested without a generated
application.

UPGRADING.md walks an existing 0.3 install through every host-side change:
the persistent database, the new recurring jobs, site flags, initializer
settings, regenerated recording rules, the admin password fix, Playwright in
the app container, the hardened deploy config, and, as a separate opt-in
step, the public status page. The CHANGELOG's Upgrading section points at it
and marks the status page jobs as opt-in. README's quick start runs
db:prepare, which now creates all three databases.
@lewispb lewispb changed the title Bring the changelog and the recurring template up to date for 0.4.0 Prepare 0.4.0: changelog, generator fixes, and a 0.3 to 0.4 upgrade guide Sep 3, 2026
@lewispb
lewispb merged commit 794cb38 into main Sep 3, 2026
8 checks passed
@lewispb
lewispb deleted the changelog-0-4-0 branch September 3, 2026 17:01
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