Write down how work gets tracked #67
@@ -23,6 +23,55 @@ and CI clones it at HEAD rather than vendoring a copy. That coupling is
|
||||
deliberate — the harness carries the spec, and a relay tested against a pinned
|
||||
old harness is tested against a pinned old spec.
|
||||
|
||||
## Issues and merge requests
|
||||
|
||||
Work is tracked in GitLab issues, one per thing, in the repository where the fix
|
||||
lands. Four repositories carry this project (see above), so an issue about the
|
||||
apps does not belong here just because the relay noticed it.
|
||||
|
||||
Cross-project references work and should be used: `paulhitt/flamenet-e2e#1`
|
||||
renders as a link from any of the four. Use them rather than restating the other
|
||||
issue, so the two never drift.
|
||||
|
||||
A branch is named `<issue>-<slug>` — `1-metadata-sealed-rosters`. The merge
|
||||
request opens with **`Closes #N`** on its own line, which links the two and shuts
|
||||
the issue on merge. Without it the issue stays open after the fix ships and
|
||||
somebody re-does the work.
|
||||
|
||||
⚠️ `Closes #N` is resolved **in the repository the branch is pushed to**. Getting
|
||||
the repository wrong does not error — it silently points at whatever issue holds
|
||||
that number there, or at nothing. Check `git remote get-url origin` before you
|
||||
commit, not after you push.
|
||||
|
||||
### Labels
|
||||
|
||||
| label | means |
|
||||
|---|---|
|
||||
| `accuracy` | A public page or doc claims something the code does not do |
|
||||
| `privacy` | Changes what is stored, or what we say is stored |
|
||||
| `parity` | One platform has it and the other does not |
|
||||
| `unwired` | Built in the engine, not reachable from the UI |
|
||||
| `ops` | Deploy, CI, infrastructure |
|
||||
| `blocked:apple` | Waiting on App Store review |
|
||||
|
||||
`accuracy` outranks the rest. A page that overstates what we protect is worse
|
||||
than a missing feature: somebody reads it and decides what to say on this
|
||||
network. Fix those first, and fix them in the direction of claiming *less*.
|
||||
|
||||
🔴 **`unwired` is not a nice-to-have.** Engine work that no screen reaches
|
||||
protects nobody, and it is the failure this project keeps repeating — sealed
|
||||
rosters, group names and delivery capabilities all landed in the engine well
|
||||
before any UI called them. An issue that only closes half of that is not closed.
|
||||
|
||||
### What an issue should carry
|
||||
|
||||
The evidence, not the impression. A path and line, a query and its output, a
|
||||
`grep` and what it printed. "Groups may still be plaintext" ages badly; `4
|
||||
plaintext, 0 sealed` does not, and tells the next person how to re-check it.
|
||||
|
||||
Say what "done" is as a checklist, and include the verification step — the thing
|
||||
somebody runs to prove it, not just the thing they change.
|
||||
|
||||
## Building and testing
|
||||
|
||||
Swift **6.1** — pinned, and pinned to match `Dockerfile`. Not 6.0: postgres-kit
|
||||
|
||||
Reference in New Issue
Block a user