Prepare 0.4.0: changelog, generator fixes, and a 0.3 to 0.4 upgrade guide - #143
Conversation
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.
There was a problem hiding this comment.
🟡 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 rungh pr ready --undo.
Click "Ready for review" or rungh pr readyto 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.
| aggregate_rollups: | ||
| class: "Upright::Rollups::DailyAggregationJob" | ||
| schedule: every hour at minute 5 |
There was a problem hiding this comment.
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.
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
recurring.ymlitem under Upgrading to list every entry an existing install needs, with the status page's three jobs marked as opt-in.persistentdatabase to Upgrading and pointed atUPGRADING.md.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.ymllackedaggregate_rollups(Upright::Rollups::DailyAggregationJob) andadvance_maintenances(Upright::MaintenanceAdvanceJob). Added with the schedules the reference deployment uses.database.ymlwas split intoprimaryandqueuebut never got apersistentdatabase, so the health, rollup, incident and maintenance jobs would have run against a database that did not exist (Copilot's finding). The rewrite now producesprimary,persistentandqueuefor development and test, with the persistentmigrations_pathspointing at the installed gem'sdb/persistent_migrate. It is extracted toUpright::Generators::DatabaseConfigwith a unit test. The README quick start runsdb: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, runbundle install, rename the Unreleased heading to## v0.4.0, merge, thenrake tag.