npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

changelord

v0.2.0

Published

cli-based changelog manager

Downloads

6

Readme

Changelord, registrar of deeds extraordinaire

Changelord is a changelog manager scratching my particular itches. It's cli-based, and keep its data in a YAML file adhering to a well-defined schema.

The first iteration of changelord was written in Perl. You can read its introductory article on my blog.

Installation

pnpm install changelord

changelog-next directory

If you want to mininize merge conflicts in CHANGELOG.yml, you can set the option project.next_directory to a directory (typically ./changelog-next) that will hold yaml files containing the changes for the NEXT release. Each of those files is expected to have a list of changes.

CLI commands

Global options

--help

Outputs the list of commands and options.

--version

Outputs the changelord version.

--source

Specifies which source yaml file to use. Defaults to the CHANGELOG.yml file in the current directory.

changelord init

Initializes the changelog source file. The YAML file is made of three sections.

  • project -- contains information and configuration about the project itself.
  • releases -- the entries for the changelog proper.
  • change_types -- defines all types of changes this project supports.

changelord add

Adds an entry to the NEXT release.

If project.next_directory is defined, the entry will be added to that directory instead of directly into CHANGELOG.yml.

$ changelord add --type=maint added a changelog to the project.

Options

  • --type -- type of change.
  • --ticket -- associated ticket.

changelord print

Renders the changelog as markdown.

Options

  • --no-next -- don't show the NEXT section.

changelord cut

Cuts the next release. That is, resolves the NEXT version number based on the latest version and the changes in the NEXT section, and sets its date as today. Modifies the source file with the result.

If the project.next_directory option is present, all the changes in that directory are merged to CHANGELOG.yml and the files themselves are deleted.

Options

  • --dry -- Resolves the next version but only outputs the resulting section without changing the source file.

changelord schema

Outputs the JSON schema defining the structure of the source file.

changelord upcoming

Outputs the changes listed in the NEXT release.

changelord latest-version

Outputs the latest non-NEXT release.

$ changelord latest-version
3.2.0

changelord validate

Validates the changelog source against its json schema.

changelord git-gather

Gathers change entries from git commits. If any are found, they are added to the changelog.

Lower bound of the git log

git-gather inspects the git log from the most recent of those three points:

  • The last change in the NEXT release having a commit property.
  • The last tagged version.
  • The beginning of time.

Change-like git message

Git messages are compared to the regular expression configured at project.commit_regex. If none is found, it defaults to

^(?<type>[^: ]+):\s*(?<desc>.*?)(\[(?<ticket>[^\]]+)\])?$

The regular expression must capture a desc field, and may capture a type and ticket as well.