Discoverability: demo GIF, GHCR, ClickHouse version matrix, community files - #66
Merged
Conversation
- SECURITY.md with private advisory reporting and supported versions - CONTRIBUTING.md with the exact CI checks and compose-based test setup - issue forms, issue template config, PR template - LICENCE.txt -> LICENSE so GitHub detects the license - CHANGELOG.txt -> CHANGELOG.md with markdown headings; pyproject Changelog URL now points at the file instead of the releases page Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- release.yml now pushes the same multiarch tags to ghcr.io alongside Docker Hub, so users behind Docker Hub rate limits have a mirror - ci.yml test matrix pins ClickHouse 24.8 and 25.3 next to latest instead of only testing latest; same job count as before - Dockerfile: fix org.opencontainers.image.licenses (was .license, an invalid key) and add title/description/documentation labels Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- demo/demo.tape renders init -> new -> cat -> up --dry-run -> up -> show -> rollback against a live ClickHouse (22s, 175K) - demo/events.sql is the migration the tape writes off-camera - .github/workflows/demo.yml re-renders the GIF in CI (workflow_dispatch, or when the tape changes) and commits assets/demo.gif, so it never has to be recorded by hand - README first screen reordered: logo -> one-line positioning -> GIF -> install -> badges. Added a ClickHouse-versions badge, a GHCR pull line, and Versioning/Contributing sections stating semver and 2.x production readiness Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
People search for "alembic for clickhouse" and "golang-migrate clickhouse"; the page previously covered only Goose, Flyway, Liquibase, and clickhouse-migrations. Each new row states where that tool is the better choice, which is also the honest answer. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Packaging and distribution only, no CLI or migration behavior changes. The release exists to publish the first GHCR image — that job runs on a v* tag. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The master ruleset requires status checks named exactly 'Test (Python 3.11)' through 'Test (Python 3.14)'. Renaming the jobs to include the ClickHouse version meant those checks would never report again, permanently blocking every PR into master — including this one. The ClickHouse version now shows up in the test step name and the Codecov flag instead of the job name. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removes the technical blockers that stop people from trying the tool, and the missing signals that stop them from trusting it with a production schema.
Half of the usual "promote your repo" checklist was already done (topics, description, Docker version tags, multiarch, PyPI metadata, releases with notes, a comparison page). This covers what was actually missing.
Demo GIF
assets/demo.gif— 22s, 175K:init→new→ the migration file →up --dry-run→up→show→rollback, against a live ClickHouse.Rendered from
demo/demo.tapeby.github/workflows/demo.yml(manual trigger, or when the tape changes), so it never has to be recorded by hand. The committed GIF was rendered locally with the same tape.README first screen reordered: logo → one-line positioning → GIF → install → badges. Nothing below the fold changed.
GHCR
release.ymlpushes the same multiarch tags toghcr.io/maksim-burtsev/pyclickhousemigratoralongside Docker Hub — companies that hit Docker Hub rate limits block it at the infra level. Documented in README anddocs/docker.md.Also fixed
org.opencontainers.image.license→licensesin the Dockerfile (the singular form is not a valid OCI key, so that label was being ignored).ClickHouse version matrix
CI tested only
clickhouse-server:latest. Now 24.8 and 25.3 alongside latest, same job count as before. Verified locally: 214 tests pass on 24.8, 25.3, and latest.Badge added to the README — "tested on three ClickHouse versions" is a stronger signal than a coverage number for a tool that runs DDL against production.
Trust signals
SECURITY.md,CONTRIBUTING.md, issue forms, PR templateLICENCE.txt→LICENSEso GitHub detects the licenseCHANGELOG.txt→CHANGELOG.md; the PyPI Changelog link now points at the fileComparison page
docs/why-pyclickhousemigrator.mdnow names golang-migrate, Atlas, dbt, and Alembic, each with where it is the better choice. People search for "alembic for clickhouse" and "golang-migrate clickhouse"; the page covered neither.Verification
ruff check/ruff format --check/mypycleanzensical build --strictcleanNote: the README GIF renders as broken in this PR — the raw.githubusercontent URL points at
masterand resolves once merged.🤖 Generated with Claude Code