Recap
In Part 4 an independent audit found the product sound, and we accepted most of its recommendations, including a built-in Security Self-Test.
With the audit’s changes in, the product was feature-complete. The remaining work wasn’t glamorous, but it’s what separates a project from a product.
Freeze the plan
First, the improvements plan was declared finished. It stopped being a to-do list and became a historical engineering record: here is every idea we considered, and what we decided. We kept it, and we never edit it again.
Make the documentation tell the truth
Documentation drifts. After many rounds of change, the install guide and readme were full of remarks about how things used to work and why a decision was made. Useful for the builders, confusing for a new user.
So we audited the documents themselves with a single rule: they describe the current product only. History moved into a changelog. Reasons moved into the plan. The readme and install guide now say what the software does today and how to set it up, and nothing else.
The licence
The product is released under the Mozilla Public License 2.0, free for personal and professional use. The full licence text is bundled, unmodified, and a short note at its head says that a small donation is welcome if the software saves you time.
The release candidate, and what it taught us
Every file had been carrying its own patch-level version from the day-by-day changes. For the release candidate we rolled every file up to one named version, 1.01.000 RC so any copy of any file could be matched to the build.
A release candidate is meant to be quiet, and mostly it was. But putting real galleries on real screens did prompt a few user-interface tweaks to the public index page, made during the RC cycle:
- Thumbnail columns are centred and sized to the number of images actually present, never wider than four across.
- Thumbnails are shown at their true dimensions, with landscape and portrait pictures centred against each other so titles and descriptions line up.
- The photographer credit now sits below the bottom pagination, and the welcome note is centred and set off with a thin rule.
- Visitors can pick a look with a small theme switcher, and the owner chooses the default from the gallery admin.
We also added a Minify panel to the processing admin, which shrinks the script and stylesheet for faster page loads while keeping the full copies safe. None of these changed what the product is. They made it nicer to look at and quicker to load.
Roll up to the release
With the tweaks settled, every file was rolled up once more, this time to 1.02.000 Release. The licence and the frozen plan are the only files that sit outside that label.
Package and deploy
The deliverables are bundled in two forms, a self-extracting shell archive and a zip, with a script that checks the archive contents. We tested both by unpacking them and comparing the results with the source.
The final deploy followed the same path as every dev deploy: a clean, empty site, the package unpacked, the first-login password setup, a process run, an album created, the public page viewed. The install guide also recommends removing the documentation files as the very last step before going live.
What we took away
The product ended up quite different from the initial brief, and that’s fine. The brief gave us something to measure against. The process turned each surprise into a decision. And the AI wrote code quickly while a proven engineering process decided whether the code was good.
In short
We froze the plan, rewrote the documents to describe the present, refined the index page during the release candidate, and rolled everything to the 1.02 Release.
Leave a Reply