Translates .gitlab-ci.yml to .gitea/workflows/ci.yml and deletes it. Every gate is kept: secret sweep, unit tests with the vector pin check and the 700-test floor, UI tests with the 10-ran floor, vectors-head (advisory), parity scrub. Xcode jobs run on the pauls-imac runner; the sweep, vectors-head and the scrub run on mac1/mac2. Builds and tests only, no signing. The Obfs4 submodule and the sibling clones now come from git.extant2000.com/extant2000, as do the README links. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.5 KiB
Why this repository pins flamenet-e2e
.e2e-ref is the commit of flamenet-e2e
that the copies in Tests/Vectors/ are checked against. See
Tests/Vectors/PROVENANCE.md for why they are copies at all.
The pin exists because a merge in that repository could stop all work in
this one. flamenet-relay learned it the hard way, its jobs cloned main at
HEAD, and that switch was thrown three times in twelve hours
(flamenet-relay#56), once producing a deadlock with no way out from inside
either repository. Its .e2e-ref.md has the full account.
A pin alone is worse than HEAD, though. The argument for HEAD is real: an
app tested against a pinned old harness is tested against a pinned old spec. If
the vectors move and nothing says so, ProtocolVectorTests quietly goes on
checking last month's protocol and reports green, which is precisely the
failure that suite exists to prevent, reintroduced one level up.
That is what vectors-head is for, and why it is continue-on-error: true in .gitea/workflows/ci.yml.
Being behind is LOUD and NON-BLOCKING. Being broken is a hard stop.
Taking an update
One MR, all parts together:
- Put the new e2e commit in
.e2e-ref. cp <e2e>/test/vectors/*.json Tests/Vectors/- Read what changed before accepting it. A moved vector is a protocol change,
and this app is one of the two ends that has to agree about it, the other
is
flamenet-messenger-android, which pins the same commit and should move in step.