dryewo-lib
Leiningen template for libraries with better release cycle.
Usage
lein new dryewo-lib me.dryewo/<lib_name>
Then, replace REPO_OWNER/REPO_NAME
in README.md with the real GitHub coordinates of the repo you'll be keeping this project in.
Among other improvements, the generated library uses an alternative release cycle:
- Version in project.clj is the latest release version. It's not decorated with
-SNAPSHOT
. - When you release it, you decide which version you are releasing and run
lein release <segment>
, where<segment>
is one of:major
,:minor
,:patch
. - During
lein release
mentions of the version in README.md are updated to the current one.
Example:
- right now you have version "1.2.3" in your project.clj.
- That means that version "1.2.3" was released a while ago, and in the repository there are some new changes since that last release.
- You recall that you added a new nice feature that you want to release now, which means you'd like to release the current state of the codebase as "1.3.0".
- You probably edit CHANGELOG.md and describe the feature there, and commit it.
- You run
lein release :minor
, and it does for you:- Checks that there are no uncommitted changes
- Bumps the version in project.clj from "1.2.3" to "1.3.0"
- Replaces mentions of "1.2.3" in README.md with "1.3.0"
- Commits the changes
- Creates a tag "1.3.0"
- Uploads the JAR to Clojars
git push
License
Copyright © 2018 Dmitrii Balakhonskii
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.