Skip to content

Releases: echovisionlab/go-open-discogs-batch

v2.3.14

Choose a tag to compare

@state303 state303 released this 15 Oct 11:48
6f48419

2.3.14 (2026-10-15)

Bug Fixes

  • publish as github.com/echovisionlab/go-open-discogs-batch (#97) (2e4cc88)

v2.3.13

Choose a tag to compare

@state303 state303 released this 11 Oct 20:46
6a4e1b9

2.3.13 (2026-10-11)

Changes

  • Adopt OpenDiscogs model v1.0.0. Canonical SQL, Go model APIs, and import contract revisions are unchanged; no new migration is added.
  • Use Go 1.27.2 for source and container builds, including its standard-library security fixes.
  • Update pgx to 5.11.0, Moby API/client to 1.56.1/0.6.2, Testcontainers to 0.44.0, Logrus to 1.10.2, the PostgreSQL GORM driver to 1.6.3, and OpenTelemetry to 1.47.0. Refresh the remaining module and workflow dependencies.
  • Keep title and body edits outside the required CI check suite and rerun full CI when a same-repository PR changes base.

The Java Batch is deprecated and archived. Existing Java deployments should use
its Go migration guide.

v2.3.12

Choose a tag to compare

@state303 state303 released this 10 Sep 06:07
e06f4bc

2.3.12 (2026-09-10)

Documentation

  • align operational guidance with the current import contract (4d31cb7)

v2.3.11

Choose a tag to compare

@state303 state303 released this 14 Aug 05:19
cc04cbb

2.3.11 (2026-08-14)

Bug Fixes

v2.3.10

Choose a tag to compare

@state303 state303 released this 14 Aug 05:07
6eafd8e

2.3.10 (2026-08-14)

Performance Improvements

  • consume model 0.4.0 exact lookup indexes (#75) (f580e52)

v2.3.9

Choose a tag to compare

@state303 state303 released this 13 Aug 17:06
f669521

2.3.9 (2026-08-13)

Performance Improvements

  • Consume canonical open-discogs-model v0.3.2 and apply V022 before import work starts (#73).
  • Keep Go and Java migrators on identical canonical migration bytes.

Measured impact

On the model-owned 1,000,000-release fixture, combined-filter SQL p99 decreased from 6.856 ms to 0.225 ms (-96.7%). The plan changed from 4,386 heap blocks plus a top-N sort to an ordered 53-buffer index scan. The index occupies 31,522,816 bytes (+6.5% on the post-V007 test database). Import throughput is unchanged because the writer path did not change.

Upgrade note

V022 builds the index once during schema migration before import processing begins. Allow time and storage for the index build on an existing release table.

v2.3.8

Choose a tag to compare

@state303 state303 released this 13 Aug 13:17
5033342

2.3.8 (2026-08-13)

Bug Fixes

  • preserve canonical dump data and bound full imports (#71) (b274320)

v2.3.7

Choose a tag to compare

@state303 state303 released this 12 Aug 17:37
606e3e7

What changed

  • Release workers now lock every affected master row in ascending ID order before writing release roots and reconciling main_release_id.
  • This removes the circular lock ordering that could occur when concurrent chunks referenced overlapping masters.
  • Import durability is unchanged: each chunk remains transactional, failed runs remain auditable, and a retry uses idempotent upserts.

Production evidence

The v2.3.6 production import used chunk-size=5000 and max-workers=4. Artist, label, and master imports completed, then release import committed its first 5,000 roots before PostgreSQL reported a four-transaction UPDATE master deadlock. The failed run and committed chunk were retained correctly.

Completed stages before that failure:

  • Artist: 10,163,318 roots in 110.80 s (91,729.54 roots/s)
  • Label: 2,405,196 roots in 21.98 s (109,416.57 roots/s)
  • Master: 2,579,897 roots in 82.01 s (31,459.07 roots/s)

Validation

  • Four concurrent release writers targeting four overlapping masters completed without deadlock in 10/10 integration-test runs.
  • Full race-enabled test suite passed with exact 100.0% statement coverage.
  • PostgreSQL end-to-end import tests passed.
  • Test-owned containers, networks, and volumes were removed and verified absent.

Performance note

This is a correctness and forward-progress fix, not a claimed latency or throughput optimization. The lock adds one ordered row-lock query per release chunk. End-to-end throughput and peak memory will be reported from the successful full production retry rather than inferred from the failed run.

Distribution

  • Signed release commit: 606e3e78a3d4e4c440e9bbf8cbef6ba506ff2309
  • GHCR multi-arch image: ghcr.io/dsub-io/go-open-discogs-batch:2.3.7
  • OCI index digest: sha256:27a41d4f28050b63378ab934ede0a0ad3fd0884431e54cd1ec1a295a40cb9159
  • Image platforms: linux/amd64, linux/arm64
  • Release binaries: Linux, macOS, and Windows for amd64/arm64, with published SHA-256 checksums

v2.3.6

Choose a tag to compare

@state303 state303 released this 12 Aug 16:51
1f7ae24

What changed

  • Adopted the canonical open-discogs-model v0.3.0 migration inventory, checksums, lock, and release relation contract, serializing schema migration ownership across batch implementations.
  • Rejects unsafe partial Artist/Master/Release resumes before import begins when required dependency checkpoints are missing.
  • Deduplicates Release relations only by their canonical PostgreSQL conflict keys. Conflicting payloads for one key now fail explicitly instead of silently choosing first- or last-wins data.
  • Preserves (release_item_id, label_id, catalog_number) as the label relation identity and removes only exact duplicates.
  • Secured release publishing and kept release commits verifiably signed.

Data evidence

The 2026-08 dump audit streamed all 19,341,287 releases and 22,465,877 label relations. The old two-column label key collided 1,387,721 times: 1,380,015 represented distinct catalog numbers that must be preserved, while 7,706 were exact duplicates.

This is a correctness and durability release. A full production import was intentionally not run before release, so no throughput, latency, or RSS improvement is claimed.

Validation

  • Full Go suite passed with the race detector and 100.0% statement coverage.
  • PostgreSQL end-to-end import, interruption/recovery, static checks, and release-image verification passed.
  • Test containers, networks, and volumes were removed and residue checks passed.

Distribution

  • Linux, macOS, and Windows archives plus Linux DEB/RPM/APK packages and checksums are attached below.
  • Public OCI image: ghcr.io/dsub-io/go-open-discogs-batch:2.3.6
  • Platforms: linux/amd64, linux/arm64
  • OCI index digest: sha256:5853fc7fd82641d2cc1f191537e5b698e6fb83371850d2d8f886ab357090abd5
  • latest points to the same validated digest.

v2.3.5

Choose a tag to compare

@state303 state303 released this 12 Aug 11:36
d081589

2.3.5 (2026-08-12)

Bug Fixes

  • keep interactive progress output readable (#62) (b568812)