The following is the preferred communication channel:
The following are not actively monitored:
Create a new issue and fill out the template. Thanks for providing feedback on what's important to you as a user!
See the milestones for details on planned features.
Pull requests are very welcome. Thanks in advance for helping the project (that goes double for those of you updating documentation)!
.gradle/eclipse-java-formatter.xml
. (See Code Style for more information.)docs/
.
docs/_includes/nav.md
(for the https://clojurephant.dev site)docs/cljdoc.edn
(for the https://cljdoc.org docs)clojurephant-plugin/
clojurephant-plugin/src/compatTest
A few helpful resources if you're new to writing Gradle plugins:
This project uses the Google Java Style Guide. Google provides google-java-format and an Eclipse formatter profile to help automate this. Both however have a weakness in how they line wrap, primarily for code that heavily uses lambdas. The style guide's text allows for more discretion in where line wrapping happens, but the automated ones can be overzealous. For this reason, we are using a modified version of the Eclipse profile that disables the automatic line wrapping.
The style is enforced using the spotless plugin, which can also reformat your code to comply with the style with ./gradlew spotlessApply
.
You can import the Eclipse formatter settings .gradle/eclipse-java-formatter.xml
to have your IDE respect the style.
clojurephant is built on GitHub Actions. This is configured in .github/workflows/*.yaml
.
There are two workflows:
ci
- General build verification running on all branches and PRs on push:
./gradlew check
and ./gradlew compatTest
test suites and style verification.release
- Publishing the plugin to Gradle's Plugin Portal and Clojars
To update the lock with the latest versions matching any ranges we specified:
./gradlew lock --write-locks
The following task will update our lock files will the latest available versions that match the compatibility rules in our stutter {}
block in clojurephant-plugin/build.gradle
.
./gradlew stutterWriteLocks
The stutter {}
block can also be used to change the ranges we support. See stutter's documentation for details.
We use reckon to manage our versioning and tagging. There is no version number stored in the build file, reckon will determine this automatically from the project history and user input.
We have 3 release stages:
beta
- significant functionality that we'd like to release but the version isn't feature-complete yetrc
- intended as a final
release, but want to provide an opportunity for bug testingfinal
- no known or significant bugs were found in the rc, and it's ready for general consumptionTo generate a release:
rc
or final
) Make sure all issues in GitHub milestone.final
) make sure we've released an rc
already for this commit.master
branch checked out./gradlew reckonTagPush -Preckon.stage=<stage>
(e.g. ./gradlew reckonTagPush -Preckon.stage=beta
)
check
on the project, create a version tag, and push that tagrelease
workflow, including the publish step if tests pass on all supported Java versions.beta
or rc
.Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close