Liking cljdoc? Tell your friends :D

Maintainer Guide

Audience

You are involved in maintaining/releasing test-doc-blocks.

Releasing

A release is triggered manually via a GitHub Action "Release" workflow.

Automated Workflow

The released workflow is handled by our Release GitHub Action.

Our GitHub Actions "Release" workflow:

  1. Calculate a version using our versioning scheme and applies it to:

    1. deps.edn usage example in the user guide

    2. "unreleased" and "unreleased breaking changes" headings in the change log

    3. pom.xml's version and scm→`tag`

  2. Create a thin jar

  3. Deploy the jar to clojars

  4. Commit and push updates made to CHANGELOG.adoc, pom.xml and 01-user-guide.adoc back to the project

  5. Create and push a release tag back to the project repo

  6. Inform cljdoc of the new release

At this time, the release workflow does not run tests. The assumption is that you’ve waited for the last CI test run to complete and are happy with the results.

The release workflow will fail if the change log is not ready for release.

Updating the Version

Edit version.edn in the project root. The release workflow consults this file when constructing the version.

Special Setup

GitHub has been configured with necessary secrets for GitHub Actions to deploy to clojars.

Local Verification

To run the change log validation locally:

bb ci-release validate

If you so wish, you can also locally run all steps up to, but not including, deploy via:

bb release prep

Locally verify, but do NOT check in changes prep makes to CHANGELOG.adoc, pom.xml and doc/01-user-guide.adoc.

Invoking a Release

As a maintainer, you should have sufficient privileges to see a "Run Workflow" dropdown button on the Release action page. The dropdown will prompt for a branch. I did not see a way to disable this prompt, leave it at "main" and run the workflow.

Don’t forget to pull after a release to get the changes made by the release workflow.

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close