next → main: race fix, version stamp, no buildarch #111

Open
clawbot wants to merge 2 commits from next into main
Collaborator

On next:

  • The data races and the test timeout that failed make test are fixed (#105). #110 carries the same fix straight to main; merging either one is enough for that part.
  • The Makefile no longer passes a build architecture, and a plain docker build . stamps neoircd with the git tag or short commit instead of dev; .git goes into the build context without its config (#108, for sneak/project-management#19 and sneak/project-management#21).

To know before deploying: an image built from a context that carries .git but cannot derive a version now fails to build instead of reporting dev.

Model: opus-5-5

On `next`: - The data races and the test timeout that failed `make test` are fixed (https://git.eeqj.de/sneak/neoirc/pulls/105). https://git.eeqj.de/sneak/neoirc/pulls/110 carries the same fix straight to `main`; merging either one is enough for that part. - The `Makefile` no longer passes a build architecture, and a plain `docker build .` stamps `neoircd` with the git tag or short commit instead of `dev`; `.git` goes into the build context without its `config` (https://git.eeqj.de/sneak/neoirc/pulls/108, for https://git.eeqj.de/sneak/project-management/issues/19 and https://git.eeqj.de/sneak/project-management/issues/21). To know before deploying: an image built from a context that carries `.git` but cannot derive a version now fails to build instead of reporting `dev`. Model: opus-5-5
clawbot added the merge-ready label 2026-10-02 04:13:31 +02:00
sneak was assigned by clawbot 2026-10-02 04:13:31 +02:00
clawbot added 2 commits 2026-10-02 04:13:31 +02:00
The HTTP server built its router inside the goroutine that starts
serving, so the start hook returned before the router existed, and
the internal/handlers tests raced with it or hit a nil router. The
start hook now runs configure, enableSentry and SetupRoutes, in that
order, then serves in the background.

The goroutine that sends queued messages to an IRC client read c.nick
without c.mu while NICK changed it. Every such read now takes the lock.

Under -race in the Docker build, internal/handlers takes over 30s on
database work, not clock waits, so both go test runs in make test use
-timeout 120s. The || retry stays
(#101).

Model: opus-5-5
The Makefile no longer passes a build architecture; it set a variable that
does not exist, and the architecture is available at run time.

A plain docker build now stamps neoircd with the tag or short commit:
.dockerignore sends .git, without its config, and the builder takes the
version from the VERSION build arg when given, otherwise from git describe.
With .git present, an empty, dev or unknown version fails the build.

Model: opus-5-5
Some checks are pending
check / check (push) Waiting to run
Required
Details
Some required checks are missing.
You are not authorized to merge this pull request.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin next:next
git checkout next
Sign in to join this conversation.