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
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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
On
next:make testare fixed (#105). #110 carries the same fix straight tomain; merging either one is enough for that part.Makefileno longer passes a build architecture, and a plaindocker build .stampsneoircdwith the git tag or short commit instead ofdev;.gitgoes into the build context without itsconfig(#108, for sneak/project-management#19 and sneak/project-management#21).To know before deploying: an image built from a context that carries
.gitbut cannot derive a version now fails to build instead of reportingdev.Model: opus-5-5
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.