Release readiness for the current alpha series and the eventual public 1.0. Categorized by who owns each item.
Legend:
✅ Mirror the repo to GitHub.
The repo is available at github.com/mbjarland/clj-ant, which is
the location Clojars' io.github.* verified-group policy checks.
✅ Claim the verified group io.github.mbjarland on Clojars.
The group is verified and matches the artifact coordinates in
build.clj.
✅ Tag v1.0.0-alpha.1.
The first alpha is published. Final 1.0 waits for external usage and
feedback on the public API.
✅ Add a deploy task to build.clj.
build/deploy uses slipset/deps-deploy and the existing
:build alias to publish the jar + generated POM to Clojars.
✅ Wire CLOJARS_USERNAME / CLOJARS_PASSWORD deploy token.
GitHub secrets are configured with a rotated Clojars deploy token.
✅ Confirm Clojars deployment.
io.github.mbjarland/clj-ant 1.0.0-alpha.1 is available on
Clojars.
.github/workflows/ci.yml running on every push:
- clj -T:build javac
- clj -T:build lint
- clj -M:test
- clj -T:build jar
The workflow tests JDK 8, 11, 17, and 21.
✅ Lower javac --release from 11 to 8 in build.clj.
Our Java bridge uses nothing JDK 11+; Ant itself supports
JDK 8. Lowering broadens compatibility for free.
✅ Bump deps to latest safe versions:
metosin/malli 0.16.4 → 0.20.1nrepl/nrepl 1.3.0 → 1.7.0 (alias only)tools.build v0.10.5 → v0.10.13Stay on Clojure 1.11.4 (1.12.0 exists but 1.11 has broader user base; nothing in clj-ant requires 1.12). Ant 1.10.17, ant-jsch 1.10.17, mwiede/jsch 0.2.25 are already latest.
✅ README "Status" banner. Make the alpha state explicit:
Pre-1.0 alpha. Architecture is stable; surface APIs may shift slightly during the alpha period based on real-world feedback. Once 1.0 lands, semver applies normally.
✅ Getting Started snag-fix in README. First-time users
must run clj -T:build javac once when working from source; the
contributor quickstart documents that step prominently.
❓ Babashka pod manifest for the registry.
https://github.com/babashka/pod-registry — optional. Lets bb
users do (pods/load-pod 'mbjarland/clj-ant) instead of
spelling out ["clojure" "-M:pod"]. Worth doing once stable.
✅ CHANGELOG.md with release entries.
It follows keepachangelog.com format and records the first alpha
release separately from unreleased follow-up work.
🚧 cljdoc auto-publish. Free with Clojars; the artifact has landed and cljdoc should index it. If indexing fails, inspect the cljdoc build log for the released version.
❓ Migrate tasks.clj out of git history? It's a 16k-line
generated file. Bloats clones. Could move to an artifact
resource generated at jar-build time. Open question — the
REPL ergonomics rely on it being on the classpath.
❓ Squash the development history before 1.0? 35+ commits with detailed messages — useful for archaeology, possibly noisy for newcomers. A squash to ~10 commits along architectural seams could read better.
Do advertise as battle-tested:
element, as-child, Element record)from-xml round-tripDon't over-promise on:
clj-ant.spec and the :by-parent introspection paths — added
late, no real users yet.lazy-resources proven
to ~10k entries via test, not actual million-file production.1.0.0-alpha.1.clj-ant.spec, pod streaming, and validation.Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |