Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wanadev/changelogify
A basic changelog manager made to avoid conflicts at git merge
https://github.com/wanadev/changelogify
avoid-conflicts changelog changelog-generator merge-conflict npm
Last synced: 3 months ago
JSON representation
A basic changelog manager made to avoid conflicts at git merge
- Host: GitHub
- URL: https://github.com/wanadev/changelogify
- Owner: wanadev
- License: other
- Created: 2020-01-29T14:04:51.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-26T07:56:31.000Z (over 1 year ago)
- Last Synced: 2024-10-31T17:12:37.383Z (3 months ago)
- Topics: avoid-conflicts, changelog, changelog-generator, merge-conflict, npm
- Language: JavaScript
- Homepage:
- Size: 129 KB
- Stars: 6
- Watchers: 8
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Changelogify
A basic changelog manager made to avoid conflicts at git merge.
## Install
Add the package to your project as a dev dependency:
npm install -D changelogify
## Usage
changelogify [options]
Options:
init Copy default configuration file into package to be overwriten.
If the user configuration file is not found, default one will be used.
add Write/overwrite the current git branch changelog file
into ./changelogs/unreleased/
release Concat changelogs file from ./changelogs/unreleased/,
add them into ./CHANGELOG.md and delete them.If no option is specified, `add` is used. This can be changed or removed to display the helper above, see `defaultCommand` in configuration file.
## Example
These three changelogs
```json
{
"message": "feature 1",
"type": "Added",
"branch": "7"
}
``````json
{
"message": "feature 2",
"type": "Added"
}
``````json
{
"message": "lint",
"type": "Meta",
"branch": "8"
}
```will be concatenated into `CHANGELOG.md`
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).## [v1.0.0] - 2020-1-29
### Added
- feature 1 - [7](www.example.com/issues/7)
- feature 2
### Meta
- lint - [8](www.example.com/issues/8)## Commands
### Init
With `init`, the default configuration is copied in `./changelogs/config.json`, where you can overwrite it.
```js
{
// changelog types
"types": [
"Added",
"Changed",
"Deprecated",
"Removed",
"Fixed",
"Security",
"Meta"
],
// link to git issue. `NUMBER` is current branch number by default
// if empty, no link will be provided
"gitIssueTemplate": "[NUMBER](www.example.com/issues/NUMBER)",
// automatic commit for `add` command
"autoCommitAdd": true,
// associated commit message. `NUMBER` is current branch number by default
"changelogMessageAdd": "Add changelog entry for #NUMBER",
// automatic commit for `release` command
"autoCommitRelease": true,
// associated commit message.
"changelogMessageRelease": "changelog",
// default command if none is passed ("", "add", "init" or "release")
"defaultCommand": "add"
}
```After updating the library, you should execute `init`. New settings will be appended, keeping the old ones.
It also creates the file `./EMPTY_CHANGELOG.md` which you can custom. It will be copied to `./CHANGELOG.md` the first time you use the `release` command.
### Add
The `add` command ask you to write a changelog entry, choose an entry type and a branch number (optional).
It will write it in a unique file in `./changelogs/unreleased/`.
```bash
$ npx changelogify add> [email protected] changelog /home/robin/Documents/wanadev/test_changelog
> node node_modules/changelogify/index.js "add"? What's your changelog entry? Feature 1
? Entry type? Added
? What's your git branch number? (Optional) 12
{
"message": "Feature 1",
"type": "Added",
"branch": "12"
}
written in /changelogs/unreleased/12-test-changelogify_1.jsonChangelog committed, use `git push` to write it remotely
```You can also pass parameters to it.
```bash
$ npx changelogify add --message "Feature 1" --type Added --branch 12
# or
$ npx changelogify add -m "Feature 1" -t Added -b 12
```And run it on silent mode.
```bash
$ npx changelogify add -m "Feature 1" -t Added -b 12 -s> [email protected] changelog /home/robin/Documents/wanadev/test_changelog
> node node_modules/changelogify/index.js "add" "-m" "Feature 1" "-t" "Added" "-b" "12" "-s"
```### Release
The `release` command merge every changelog files from `./changelogs/unreleased/` and add the new content on `./CHANGELOG.md`.
If `./CHANGELOG.md` doesn't exist, it is created from `./EMPTY_CHANGELOG.md`. Check [init](https://github.com/wanadev/changelogify#init) if you want to use a custom changelog format.
## Changelogs
### 1.2.1
- fix fs use of URL on Windows
### 1.2.0
- better handling of branch number beginning by 0 or by letters
- clarify how to link an issue from a branch number
- cleanup:
- divide into several files
- make changelogify an ESM
- lint
- check for missing config before `add` and `release` commands### 1.1.7
- add default command option in config
### 1.1.6
- fix error on release auto commit when `unrealeased` directory is missing
### 1.1.5
- do not throw error at release when `unrealeased` directory is missing
### 1.1.3
- process exits with non-zero code if an error occurs
### 1.1.2
- synchronous writing in changelog file at release
### 1.1.1
- fix urls in package.json for npm package
### 1.1.0
- throw error when JSON changelog files have wrong format
- remove changelog messages trailing spaces
- display helper when wrong cli argument submitted### 1.0.1
- add license
### 1.0.0
- initial release