• Keep a tombstone on gem yank (#155)
    ci/woodpecker/tag/docker Pipeline was successful

    unkin-agent released this 2026-10-18 02:08:46 +11:00 | 29 commits to master since this release

    Yank hard-deleted a local gem version, so the same name-version-platform could be re-pushed with different bytes and break lockfiles pinning the old checksum. rubygems.org forbids re-pushing a yanked version.

    • write a _yanked/<name>/<full> tombstone before deleting the gem, quick spec and index line
    • reject a push of a tombstoned version with 409
    • serialise push and yank of one version on the engine Redis lock; 503 when it stays busy
    • drop partial push writes on failure
    • return 404 for _index/ and _yanked/ paths on gems locals
    • encode out-of-range gemspec dates (before 1900) as the epoch instead of wrapping the Time#_dump year field
    • extend the ruby:3.3 e2e to yank, re-push different bytes and fail to install the yanked version

    Reviewed-on: #155
    Co-authored-by: unkin-agent unkin-agent@unkin.net
    Co-committed-by: unkin-agent unkin-agent@unkin.net

    Downloads