Template updates
Your product's repository started as a copy of the Starter, and has diverged since. New versions of the Starter keep coming; this page is how to take them in.
How versions are published
- Each release is a tag on the Starter's repository, numbered with
semantic versioning:
v1.4.0adds or fixes without breaking,v2.0.0may break. CHANGELOG.md, at the root of the repository, lists what each version changes — and, for a change you have to act on, what to do.- Your licence includes every update of the version you bought; a new major version
may be sold separately (
LICENSE.md, §3).
Bringing a version in
The Starter's repository becomes a second remote of yours, upstream, and a version is a
tag you merge.
Once: add the remote.
git remote add upstream https://github.com/BlouppyStarter/blouppy-starter.git git remote set-url --push upstream no-push # never push to it by mistakeRead the changelog of every version between yours and the new one.
Fetch the tags and merge the version on a branch of your own:
git fetch upstream --tags git checkout -b update/v1.4.0 git merge v1.4.0Resolve the conflicts, build and test — see below.
Open a pull request in your repository, as for any change.
Resolving the conflicts
Conflicts land where you changed what the Starter also changed. Some are expected:
| Where | Usually |
|---|---|
| The example domain (Workspaces, teams) | Yours if you replaced it — keep your side |
Branding: names, logos, addresses, _site.json, the landing page | Keep your side |
Translation catalogues (en.json, fr.json) | Keep both: your keys and the new ones |
Directory.Packages.props, package-lock.json | Take the newer versions; regenerate the lockfile with npm install in front/ |
| EF Core migrations | Never edit a migration that shipped. If both sides added migrations, keep both and add one more that brings the model snapshot in line |
After the merge
dotnet build back/ && dotnet test back/
cd front && npm ci
cd application && npm test && npm run build && npm run gallery
The architecture tests are the quickest way to find a merge that broke a boundary. Before deploying, read the Upgrading steps — back up the database first: the migration runner applies the new version's migrations on the next start.
Keeping updates easy
- Add, rather than edit. A new domain or module beside the Starter's merges cleanly; a rewritten Starter file conflicts at every release.
- Keep the conventions. Code that follows the Starter's patterns is code its changelog speaks to.
- Update often. Several small merges are easier than one across many versions.