Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,11 @@ jobs:
key: ${{ matrix.target }}
- name: build
if: ${{ !matrix.musl }}
env:
UCG_GIT_SHA: ${{ github.sha }}
run: cargo build --release --locked --target "${{ matrix.target }}"
run: UCG_GIT_SHA="${GITHUB_SHA::12}" cargo build --release --locked --target "${{ matrix.target }}"
- name: build (musl, static)
if: ${{ matrix.musl }}
run: |
docker run --rm -v "$PWD:/src" -w /src -e UCG_GIT_SHA="${{ github.sha }}" rust:1.99-alpine \
docker run --rm -v "$PWD:/src" -w /src -e UCG_GIT_SHA="${GITHUB_SHA::12}" rust:1.99-alpine \
sh -c 'apk add --no-cache musl-dev && cargo build --release --locked --target "${{ matrix.target }}"'
file "target/${{ matrix.target }}/release/ucgeocoder" | tee /dev/stderr | grep -q 'static'
- name: package
Expand Down
4 changes: 3 additions & 1 deletion docs/PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -409,8 +409,10 @@ Phases 0–10 are committed on `main`; the gate (`cargo fmt --check && cargo cli

**Allocator: mimalloc (2026-10-12).** Measured in Docker on arm64 (Apple M4 Max, Docker Desktop, 8 vCPU), `ab -k -c 64 -t 20` from a container on the same Docker network against a warm geographies HIT (default-layer filtering, 5290-byte body), alternating runs: musl system allocator 9,488 / 10,105 req/s, p99 13 / 12 ms; mimalloc 45,443 / 45,092 req/s, p99 3 / 3 ms (~4.6× throughput). The mimalloc image also builds and serves a live MISS→HIT under amd64 emulation; amd64 was not benchmarked (emulation would measure QEMU). The criterion medians in §13 (18–28 µs) are system-allocator, single-request numbers.

**Released v0.1.0 (2026-10-13).** The work was merged upstream as dathere/uscensus-caching-geocoder#1 with a merge commit (`b5a5e7a`), so every hash in this log is valid upstream. Tag `v0.1.0` on `b5a5e7a` was pushed to `upstream` only; the release workflow (run 38333424379) passed every job, including `check-version` and `gh release create`, and published five tarballs with `.sha256` files. The hand-written release notes replaced the generated ones. The downloaded aarch64-apple-darwin tarball verified and ran. v0.1.0 binaries embed the full 40-character sha; `29ebab6` switched release builds to 12 characters to match Docker and local builds. Remotes: `origin` is the fork (jqnatividad), `upstream` is dathere. Work lands on the fork, then goes to dathere by PR; merge with a merge commit, and push tags to `upstream` only (a tag on the fork would publish a release there). Before 0.1.0 the dry run (`workflow_dispatch`, run 38331310642) had already built every target.

**Still open (not started, not blocking):**
- The release workflow's build matrix has run: a manual dry run (`workflow_dispatch`, run 38331310642 on the fork, 2026-10-13) built and uploaded all five tarballs (x86_64 gnu, x86_64 and aarch64 static musl on `ubuntu-latest` / `ubuntu-24.04-arm`, both macOS) in about 6 minutes, with `check-version` skipped for the branch ref and `release` skipped. Only the tag path (`check-version` on a tag, `gh release create`) is first exercised by the first `v*` tag. CI (`check`, `docker` on amd64, `deny`) first ran green on GitHub for `335560f` (run 38327492793, 2026-10-13); `cargo-deny` has still never been run locally.
- CI (`check`, `docker` on amd64, `deny`) first ran green on GitHub for `335560f` (run 38327492793, 2026-10-13); `cargo-deny` has still never been run locally.
- `tests/live.rs` checks the Tie case by row shape only (batch Tie/No_Match answers are load-dependent upstream); the other cases are byte-exact and can flap only if Census changes its texts or data.
- `.serena/logs/` was untracked at the start of the Phase 7–10 session and was deliberately left alone.
- Two config keys have no implementation (documented as reserved in the README, `check-config` and `ucgeocoder.example.toml`): `jobs.single_record_upgrade` (Phase 7, deferred) and `batch.serve_partial_json_from_batch` (§5.4's `X-UCG-Partial` synthesis; found unimplemented by roborev 5305).
Expand Down
Loading