Liking cljdoc? Tell your friends :D

Phase 10: Documentation & Publishing - Completion Report

Date: 2026-01-19
Phase: 10 of 11
Branch: feat/split-phase10-documentation
Status: ✅ COMPLETE


Executive Summary

Phase 10 successfully completed all documentation and publishing infrastructure for the 7 extracted Boundary libraries. Each library now has comprehensive README documentation, build scripts for Clojars publishing, and a complete publishing guide.

Key Achievements

  • 7 enhanced README.md files with installation, usage, and API documentation
  • 7 build.clj files for JAR building and Clojars deployment
  • deps.edn updates with deps-deploy dependency for all libraries
  • Publishing Guide documenting the complete release workflow
  • Ready for Clojars publishing (pending account setup)

Deliverables

1. Enhanced README Files

Each library received a comprehensive README with:

SectionDescription
BadgesStatus, Clojure version, license
Installationdeps.edn and Leiningen examples
FeaturesFeature table with descriptions
RequirementsDependencies and prerequisites
Quick StartCode examples for common use cases
Module StructureDirectory layout
DependenciesExternal dependency table
Relationship DiagramASCII art showing library relationships
DevelopmentCommands for testing and linting
LicenseEPL-2.0 reference

Files Updated:

  • libs/core/README.md (~150 lines)
  • libs/observability/README.md (~180 lines)
  • libs/platform/README.md (~200 lines)
  • libs/user/README.md (~220 lines)
  • libs/admin/README.md (~210 lines)
  • libs/storage/README.md (~200 lines)
  • libs/scaffolder/README.md (~190 lines)

2. Build Scripts (build.clj)

Each library received a build.clj file with:

;; Functions available:
(clean [_])   ; Remove target directory
(jar [_])     ; Build JAR with POM
(install [_]) ; Install to local Maven repo
(deploy [_])  ; Deploy to Clojars

Features:

  • Git-based versioning (0.1.{commit-count})
  • Automatic POM generation with SCM metadata
  • EPL-2.0 license in POM
  • deps-deploy integration for Clojars

Files Created:

  • libs/core/build.clj
  • libs/observability/build.clj
  • libs/platform/build.clj
  • libs/user/build.clj
  • libs/admin/build.clj
  • libs/storage/build.clj
  • libs/scaffolder/build.clj

3. Updated deps.edn Files

Added deps-deploy to the :build alias for all libraries:

:build {:replace-deps {io.github.clojure/tools.build {:git/tag "v0.10.11" :git/sha "c6c670a4"}
                       slipset/deps-deploy {:mvn/version "0.2.2"}}
        :ns-default build}

4. Publishing Guide

Created comprehensive docs/PUBLISHING_GUIDE.md covering:

SectionContent
Library OverviewDependency matrix
PrerequisitesClojars account, tokens, env vars
Version ManagementSemantic versioning strategy
BuildingSingle and batch build commands
TestingPre-publish verification steps
PublishingDependency-ordered publishing
TroubleshootingCommon errors and solutions
GitHub ActionsCI/CD workflow template

Library Artifact IDs

LibraryMaven Artifact
coreio.github.thijs-creemers/boundary-core
observabilityio.github.thijs-creemers/boundary-observability
platformio.github.thijs-creemers/boundary-platform
userio.github.thijs-creemers/boundary-user
adminio.github.thijs-creemers/boundary-admin
storageio.github.thijs-creemers/boundary-storage
scaffolderio.github.thijs-creemers/boundary-scaffolder

Publishing Order

Libraries must be published in this order (dependency-based):

1. boundary-core         (no dependencies)
2. boundary-observability (→ core)
3. boundary-platform     (→ core, observability)
4. boundary-scaffolder   (→ core)
5. boundary-user         (→ platform)
6. boundary-storage      (→ platform)
7. boundary-admin        (→ platform, user)

Build Commands

Build Single Library

cd libs/core
clojure -T:build clean
clojure -T:build jar

Build All Libraries

for lib in core observability platform user admin storage scaffolder; do
  (cd libs/$lib && clojure -T:build jar)
done

Install Locally

cd libs/core
clojure -T:build install
# JAR installed to ~/.m2/repository/io/github/thijs-creemers/boundary-core/

Deploy to Clojars

export CLOJARS_USERNAME=your-username
export CLOJARS_PASSWORD=your-deploy-token

cd libs/core
clojure -T:build deploy

Files Created/Modified

New Files (14)

libs/core/build.clj
libs/observability/build.clj
libs/platform/build.clj
libs/user/build.clj
libs/admin/build.clj
libs/storage/build.clj
libs/scaffolder/build.clj
docs/PUBLISHING_GUIDE.md

Modified Files (14)

libs/core/README.md
libs/core/deps.edn
libs/observability/README.md
libs/observability/deps.edn
libs/platform/README.md
libs/platform/deps.edn
libs/user/README.md
libs/user/deps.edn
libs/admin/README.md
libs/admin/deps.edn
libs/storage/README.md
libs/storage/deps.edn
libs/scaffolder/README.md
libs/scaffolder/deps.edn

Documentation Statistics

MetricValue
README files enhanced7
Build scripts created7
deps.edn files updated7
Publishing guide pages~200 lines
Total documentation added~1,500 lines

Remaining Tasks for Publishing

Before publishing to Clojars:

  1. Create Clojars account at clojars.org
  2. Generate deploy token in Clojars dashboard
  3. Update local deps - Change {:local/root "../core"} to Maven coordinates for release
  4. Tag release - git tag v0.1.0
  5. Run publish script in dependency order

Next Steps: Phase 11 (Final)

Objectives

  1. Remove duplicate code from monolith src/boundary/
  2. Update root deps.edn for simpler development setup
  3. Update root README.md with library documentation
  4. Final integration test after cleanup
  5. Merge to main branch
  6. Create release tag v0.1.0

Estimated Effort

  • Duration: ~1 day
  • Risk: Low (cleanup and documentation only)

Project Status Summary

PhaseStatusDescription
Phase 1✅ Completeboundary/core extraction
Phase 2✅ Completeboundary/observability extraction
Phase 3✅ Completeboundary/platform extraction
Phase 4✅ Completeboundary/user extraction
Phase 5✅ Completeboundary/admin extraction
Phase 6✅ Completeboundary/storage extraction
Phase 7⏭️ Skippedboundary/external (empty)
Phase 8✅ Completeboundary/scaffolder extraction
Phase 9✅ CompleteIntegration testing
Phase 10CompleteDocumentation & publishing
Phase 11🔜 PendingCleanup & finalization

Timeline Performance

MetricValue
Phases complete10 of 11 (91%)
Days used12 of 30
Ahead of schedule60%
Remaining1 phase (cleanup)

Conclusion

Phase 10 successfully prepared all 7 libraries for independent publishing. Each library has comprehensive documentation, build infrastructure, and clear installation instructions. The project is now 91% complete with only the final cleanup phase remaining.

Status: ✅ READY TO PROCEED TO PHASE 11


Document Version: 1.0
Last Updated: 2026-01-19
Next Phase: Phase 11 (Cleanup & Finalization)

Can you improve this documentation?Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close