This document describes the release process for mcp-clj projects.
The release process is automated via GitHub Actions and includes:
Version numbers follow the format: Major.minor.commit-count
dev/build.clj
(currently 0.1
)Example: 0.1.49
means version 0.1 with 49 commits
Clojars Account
GitHub Secrets Add these secrets to your GitHub repository (Settings → Secrets → Actions):
CLOJARS_USERNAME
: Your Clojars usernameCLOJARS_PASSWORD
: Your Clojars deployment tokenAlways test the release process first with a dry run:
true
This will:
Check the workflow output:
Once dry run succeeds:
false
This will:
v0.1.49
)The following projects are released to Clojars:
org.hugoduncan/mcp-clj-server
org.hugoduncan/mcp-clj-client
org.hugoduncan/mcp-clj-in-memory-transport
Test-only projects (test-dep
, java-sdk-wrapper
) are not released.
# Build a specific project
cd projects/server
clojure -T:build jar
# Build all projects
for project in server client in-memory-transport; do
cd "projects/$project"
clojure -T:build jar
cd ../..
done
# First build the JARs, then:
bash scripts/smoke-test.sh
You cannot do a true dry-run deploy, but you can verify the JARs are built correctly:
cd projects/server
clojure -T:build jar
# Inspect the JAR
jar tf target/mcp-clj-server-*.jar | less
If the workflow detects an existing tag:
This is not supported by design. Instead:
Changelogs are automatically generated using git-cliff from conventional commit messages.
Use semantic commit prefixes:
feat:
- New featuresfix:
- Bug fixesperf:
- Performance improvementsrefactor:
- Code refactoringdocs:
- Documentation changestest:
- Test changesbuild:
- Build system changesci:
- CI/CD changeschore:
- Other changesExample: feat: add subscription support for resources
# View changelog for unreleased commits
git cliff --unreleased
# Generate full changelog
git cliff --output CHANGELOG.md
If GitHub Actions is unavailable, you can deploy manually:
# 1. Build the JAR
cd projects/server
clojure -T:build jar
# 2. Configure Clojars credentials in ~/.m2/settings.xml
cat > ~/.m2/settings.xml <<EOF
<settings>
<servers>
<server>
<id>clojars</id>
<username>YOUR_USERNAME</username>
<password>YOUR_TOKEN</password>
</server>
</servers>
</settings>
EOF
# 3. Deploy
clojure -X:deploy
# 4. Repeat for other projects (client, in-memory-transport)
After a successful release:
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 |