
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
changelogapp
Advanced tools
Easily create, manage and maintain changelogs
This project can be used as both a command line application and as a module. A simple API is currently available that gives access to changelog functions as an npm module.
To install as a command line application, run the following:
$ npm install changelogapp -g
As an aside, if you have vim
set as your $EDITOR
, then make sure that in your ~/.vimrc
file you add the following line (to enable spellcheck and non-destructive line-wrapping):
" Enable spellcheck and wrap for changelog edit messages
autocmd VimEnter .UPDATE_EDITMSG setlocal spell linebreak wrap
Navigate to the directory that you wish to create and modify changelogs in.
$ changelog <command> [<args>]
Below are the commands that can be run from the command line:
Command | Description |
---|---|
help | List the documentation |
init | Initialize a blank CHANGELOG.md file in the current directory |
parse | Parse the CHANGELOG.md file to JSON format |
status | Print out changelog information, including the current version and a summary of the changes made |
add
, change
, deprecate
, remove
, fix
, and secure
as arguments all serve the same
purpose of updating the Unreleased
section of the changelog with content (corresponding
to the keepachangelog categories).
It will open $EDITOR
, at which point you can enter the changes made prevalent to that category, separating each new item with a new line.
Command | Description |
---|---|
bump [version | patch | minor | major] | This command will bump the Unreleased header to the next desired version. If no argument is specified a patch update will automatically be applied. You can specify your own version (provided it adheres to Semantic Versioning) or you can specify a patch, minor or major jump |
copy | Copy the contents of the latest release item to the clipboard in markdown format |
First things first, install the module as normal by running the following command in the directory you want to install to:
$ npm install changelogapp
Currently you can parse
changelogs to JSON format and stringify
the result back into a CHANGELOG.md file.
const changelog = require("changelogapp");
const fs = require("fs");
// Get the CHANGELOG.md file
fs.readFile("CHANGELOG.md", "utf8", function(err, docs){
// Parse the contents
changelog.parse(docs, function(err, data){
if (err){
console.log("There was an error parsing the changelog");
} else {
console.log(JSON.stringify(data, null, 4));
}
});
});
For the above example, the output will be:
[
{
"version": "Unreleased",
"released": false,
"date": null,
"link": false,
"content": {
"Fixed": [
"Remove the muffin man"
]
}
},
{
"version": "0.0.1",
"released": true,
"date": "2016-02-19T00:00:00.000Z",
"link": false,
"content": {
"Added": [
"The ability to do some cool stuff",
"Have you heard of the muffin man?"
]
}
}
]
const changelog = require("changelogapp");
const fs = require("fs");
const parsedChangelog = require("./parsed-changelog.json");
// Stringify the JSON
changelog.stringify(parsedChangelog, function(err, data){
if (err){
console.log("Could not stringify the changelog data");
} else {
// Write the updated changelog file
fs.writeFile("CHANGELOG.md", data, function(err){
if (err)
throw err;
});
}
});
Given the JSON example from the previous section, the stringify
function will generate the following markdown file:
# 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).
## Unreleased
### Fixed
- Remove the muffin man
## 0.0.1 - 2016-02-19
### Added
- The ability to do some cool stuff
- Have you heard of the muffin man?
Currently, changelog is very much in beta and a few things may not work perfectly. The most notable case being the fact that the parsing algorithm doesn't handle non-keepachangelog-style changelogs very well (if at all).
While support for changelogs that don't conform to this standard is not planned, if you have a CHANGELOG.md file that you believe should be supported, then create a new issue with the CHANGELOG.md file attached and a description of any errors you get.
FAQs
easily create, manage and maintain changelogs
The npm package changelogapp receives a total of 1 weekly downloads. As such, changelogapp popularity was classified as not popular.
We found that changelogapp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.