Repository navigation
Back-merge main after the #86 release, so develop contains it - #87
Merged
Merged
Conversation
Release: the branching model, and the CI that enforces it
Release: reviewed repository documents
Release: the documents say each thing once
Release: the sandbox gets a session layer, and the lab gets its own relay
Release: the lab says what went wrong, and the rules an agent breaks are written down
Release: the lab measures the attacker's route, and a rebuilt server changes the page
Release: the board becomes an instrument, and a machine can always rejoin
CONTRIBUTING's branch diagram has main returning to develop after a release, and this repository has never done it: main carried six merge commits develop had never seen, so `git merge-base --is-ancestor main develop` answered no and every release looked like a divergence rather than a ship. This carries no file change at all — `git diff origin/develop origin/main` is empty — because a release merge commit holds no content of its own. What it restores is the invariant the model is built on: develop contains main, so the next release is develop's new work and nothing else.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Target
develop: the normal case for a fix, a chapter, alab change, a typo
develop→main, shipping to the published guidemain, because published advice iscurrently locking readers out or leaving them exposed
What this changes
CONTRIBUTING.md's branch diagram hasmainreturning todevelopafter arelease — the arrow labelled "a release, back-merged". This repository has never
made that trip, and #86 is the seventh release to end with
developnotcontaining the branch it just shipped to.
The cost is not files. It is that
git merge-base --is-ancestor main developanswers no, so nothing can cheaply ask "is everything on
mainalso ondevelop?" and get a trustworthy answer. Comparing the two showsmainsix orseven commits "ahead" — all of them empty release merge commits — which reads
as a divergence and is not one. Working out that it is not one takes a diff
against the merge base every single time.
This merges
mainintodevelopwith--no-ffand restores the invariant. Itis the pattern CONTRIBUTING already documents for a hotfix ("main must be
back-merged into develop afterwards or the next release silently reverts your
fix"); the same trip after an ordinary release is what keeps that hotfix
back-merge from being a special case nobody has practised.
Closes #
Kind
What this does not change
Every file. A release merge commit holds no content of its own, so bringing it
back carries none either:
The second is the merge commit in this pull request, compared against the
developit sits on. Nothing was added, removed or edited.git loggains onecommit and that is the whole diff.
The invariant, before and after
Seven, not six, because #86's own merge commit joined the six that #54, #56,
#63, #66, #72 and #76 left behind. That number grows by one per release for as
long as this goes unmade, which is the argument for making it now rather than
at the point somebody needs the answer urgently.
Checks
make -C lab checkpassesgofmtis clean (make checkfails on any output at all)SPDX-License-Identifierheader — notapplicable, no file is added or changed
Run on the merge commit itself, after the merge, so what passed is the tree this
pull request produces.
Merging this one
Merge, do not squash. A squash writes a new commit with no link to the ones
it replaced, which would drop
mainfromdevelop's ancestry and leave theinvariant exactly as broken as it is now — this pull request would then be the
eighth thing in the list it exists to shorten.
CONTRIBUTING already says this for releases and hotfixes. It is the same reason
in the same direction.
If this changes advice or a command
Not applicable. No chapter, no page, no command a reader runs, and no lab
behaviour is touched.
If this touches the guide's pages
Not applicable. No file under
assets/, no chapter, no navigation entry.If this touches the lab or sandbox engine
Not applicable. No file under
lab/changes.Licence
CC BY-SA 4.0 (guide) or GPL-3.0-or-later (code), per the file I touched