{"id":19302394,"url":"https://github.com/dryewo/lein-changelog","last_synced_at":"2026-03-08T20:33:40.103Z","repository":{"id":57716729,"uuid":"146161810","full_name":"dryewo/lein-changelog","owner":"dryewo","description":"A Leiningen plugin to automate changelog tasks.","archived":false,"fork":false,"pushed_at":"2019-01-23T19:35:36.000Z","size":27,"stargazers_count":5,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-15T04:39:46.367Z","etag":null,"topics":["changelog","clojure","lein","leiningen"],"latest_commit_sha":null,"homepage":"https://keepachangelog.com","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dryewo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-26T07:50:42.000Z","updated_at":"2024-01-02T17:40:03.000Z","dependencies_parsed_at":"2022-08-23T19:00:24.616Z","dependency_job_id":null,"html_url":"https://github.com/dryewo/lein-changelog","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dryewo%2Flein-changelog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dryewo%2Flein-changelog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dryewo%2Flein-changelog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dryewo%2Flein-changelog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dryewo","download_url":"https://codeload.github.com/dryewo/lein-changelog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250221415,"owners_count":21394700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["changelog","clojure","lein","leiningen"],"created_at":"2024-11-09T23:21:47.964Z","updated_at":"2026-03-08T20:33:35.082Z","avatar_url":"https://github.com/dryewo.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lein-changelog\n[![Build Status](https://travis-ci.org/dryewo/lein-changelog.svg?branch=master)](https://travis-ci.org/dryewo/lein-changelog)\n[![codecov](https://codecov.io/gh/dryewo/lein-changelog/branch/master/graph/badge.svg)](https://codecov.io/gh/dryewo/lein-changelog)\n[![Clojars Project](https://img.shields.io/clojars/v/lein-changelog/lein-changelog.svg)](https://clojars.org/lein-changelog/lein-changelog)\n\nA Leiningen plugin to automate changelog tasks as part of `lein release` routine.\n\nIn support for [Keep a Changelog] initiative, relies on the changelog format proposed there.\n\nIntended to be used as part of [automated release procedure].\n\n\n## Usage\n\nFirst, modify `:plugins` vector of your _project.clj_:\n\n```clj\n    :plugins [[lein-changelog \"0.3.2\"]]\n```\n\nThen add `[\"changelog\" \"release\"]` to `:release-tasks` in your _project.clj_:\n\n```clj\n  :release-tasks [... \n                  [\"changelog\" \"release\"]\n                  ...]\n```\n\nIf you have no `:release-tasks` key in your _project.clj_, please read more about [custom release tasks] and add it.\nCustom `:release-tasks` is necessary to automate changelog work.\n  \n**IMPORTANT**: the `[\"changelog\" \"release\"]` has to come after version bumping (`[\"change\" \"version\" ...]`), because lein-changelog reads the version\nfrom _project.clj_.\n\nExample `:release-tasks` (read more about this specific procedure [here](https://github.com/dryewo/clojure-library-template)):\n\n```clj\n  :release-tasks [[\"vcs\" \"assert-committed\"]\n                  [\"change\" \"version\" \"leiningen.release/bump-version\"]\n                  [\"change\" \"version\" \"leiningen.release/bump-version\" \"release\"]\n                  [\"changelog\" \"release\"]\n                  [\"vcs\" \"commit\"]\n                  [\"vcs\" \"tag\"]\n                  [\"deploy\"]\n                  [\"vcs\" \"push\"]]\n```\n\n### If you don't have _CHANGELOG.md_\n\nRun this command to generate a dummy _CHANGELOG.md_ file from template:\n\n    $ lein changelog init\n\nOpen the freshly generated _CHANGELOG.md_ file and check its contents.\nYou might want to correct the intro part and add some details to the the last released version section as well\n(it was generated from the latest git tag).\n\nAs you work on your project, add [notable changes](https://keepachangelog.com/en/1.0.0/#how) to `## [Unreleased]`\nsection with every commit you make.\n\n### If you already have _CHANGELOG.md_\n\nIf you didn't use `lein changelog init` to create it, make sure that it corresponds to the [format](#changelog-format).\n\nWhen you are ready to release the next version, just run:\n\n    $ lein release :patch\n    # or\n    $ lein release :minor\n    # or\n    $ lein release :major\n\nIf you have configured `:release-tasks` as described above,\n`lein changelog release` will be called automatically to update _CHANGELOG.md_.\n\n\n## Explanation\n\nWhen you run\n\n    $ lein release :\u003csegment\u003e\n\ngiven that you have configured `:release-tasks` as described above, this plugin does the following\n(after the version is bumped in _project.clj_):\n\n1. Reads contents of the _CHANGELOG.md_ file.\n2. Replaces `## [Unreleased]` line with `## [X.Y.Z] - 2018-18-18`,  \n   where `X.Y.Z` is the version from _project.clj_ and `2018-18-18` is today's date.  \n3. Adds a new empty section with `## [Unreleased]` title on top of the file.\n4. Inserts links to GitHub diff UI to the end of the file:\n   * `[X.Y.Z]` to show differences between this released version and previously released one.\n   * `[Unreleased]` to show new changes since the latest released version.\n\nExample:\n\nGiven this _CHANGELOG.md_:\n\n```\nblah-blah\n\n## [Unreleased]\nnew-blah\n\n## [0.1.1] - 2018-06-01\nold-blah\n\n## 0.1.0 - 2018-01-01\ninitial-blah\n\n[0.1.1]: https://github.com/your-name/your-repo/compare/0.1.0...0.1.1\n[Unreleased]: https://github.com/your-name/your-repo/compare/0.1.1...HEAD\n```\n\nAfter running `lein release :minor`,\nlein-changelog updates _CHANGELOG.md_ like this (new version being released is `0.2.0`):\n\n```\nblah-blah\n\n## [Unreleased]\n\n## [0.2.0] - 2018-18-18\nnew-blah\n\n## [0.1.1] - 2018-06-01\nold-blah\n\n## 0.1.0 - 2018-01-01\ninitial-blah\n\n[0.1.1]: https://github.com/your-name/your-repo/compare/0.1.0...0.1.1\n[0.2.0]: https://github.com/your-name/your-repo/compare/0.1.1...0.2.0\n[Unreleased]: https://github.com/your-name/your-repo/compare/0.2.0...HEAD\n```\n\n### Changelog format\n\nlein-changelog relies on the format described on [Keep a Changelog], but the only required parts here are:\n\n1. The file has to be named \"CHANGELOG.md\" and located in the root of the repository.\n2. `## [Unreleased]` line has be present in _CHANGELOG.md_ exactly.\n3. There has to be a line that looks like `[Unreleased]: https://github.com/your-name/your-repo/compare/A.B.C...HEAD`  \n   It will be copied and updated to create a diff link to the version currently being released (`X.Y.Z`) as well as\n   to the new `[Unreleased]` diff.\n\nIf any of these lines are missing, the plugin will fail and exit with a non-zero code. \n\n\n## License\n\nCopyright © 2018 Dmitrii Balakhonskii\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n\n[automated release procedure]: https://github.com/technomancy/leiningen/blob/master/doc/DEPLOY.md#releasing-simplified\n[custom release tasks]: https://github.com/technomancy/leiningen/blob/master/doc/DEPLOY.md#overriding-the-default-release-tasks\n[Keep a Changelog]: https://keepachangelog.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdryewo%2Flein-changelog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdryewo%2Flein-changelog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdryewo%2Flein-changelog/lists"}