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

yankee

v1.0.8

Published

Easy release management with YAML changelogs

Downloads

3,359

Readme

Coveralls – test coverage
Travis – build status
David – status of dependencies
Code style: airbnb

 

yankee

Easy release management with YAML changelogs

 

Installation

# As a global command:
npm install --global yankee

# …or locally for an npm project:
npm install --save-dev yankee

 

Synopsis

yankee [<path>]  
yankee --help

 

Description

The file Changelog.yaml is the single source of information about your releases. It should be an object with one key per release and an optional master: key at the top. Here’s an example:

master:
  new features:
    - The cool new flag `--verbose`.

2.0.1:
  date: 1992-02-09
  fixed bugs:
    - Got rid of a nasty IO bug.
    - Improved the docs.

2.0.0:
  date: 1982-03-15
  breaking changes:
    - API redesign. See the readme for details.

1.0.0:
  date: 1970-01-01
  note: Initial release.

When you call yankee, we’ll determine what version number comes next and update the file accordingly. We’ll replace master: with the new version and add a date: property with the current day right below that.

If the master: object contains the key breaking changes:, we’ll make it a major release (X.y.z). If it contains the key new features:, we’ll make a minor bump (x.Y.z). Otherwise, make sure your master: changelog has the key fixed bugs: – we’ll release it as a patch (x.y.Z).

The version number against which we’ll be bumping is the first key in your Changelog.yaml except master:. If there’s no other key, we’ll always tag the release as 1.0.0.

If you call yankee without any options, we’ll only output the version number, so that it’s easy for you to process with scripts.

 

Options

[path]

The path to your project directory. Should contain a Changelog.yaml. Default: $(pwd).

-n, --npm

Attempt to update the version field in package.json and npm-shrinkwrap.json.

-c, --commit

Commit changes. The commit message will be the raw version number.

-t, --tag

Tag the commit with an annotated tag. The tag name will be the raw version number preceeded with a “v”. Implies --commit.

-h, --help

You’re looking at it.

 

Example

Here a simple example using cat and here docs. When creating your package, you start off with a simple changelog:

$ cat << ——— > Changelog.yaml
  master:
    note: Initial release.
  ———

When you’re ready for a 1.0.0 release, just call yankee:

$ yankee
  1.0.0

$ cat Changelog.yaml
  1.0.0:
    date: 2016-05-20
    note: Initial release.

Working on new stuff, update the changelog accordingly:

$ cat << ——— > Changelog.yaml
  master:
    new features:
      - Cool new stuff!

  $(cat Changelog.yaml)
  ———

When ready for a release, yankee will figure out what the release number should be:

$ yankee
  1.1.0

$ cat Changelog.yaml
  1.1.0:
    date: 2016-05-20
    new features:
      - Cool new stuff!

  1.0.0:
    date: 2016-05-20
    note: Initial release.

 

License

MIT © Studio B12