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

@oat-sa/tao-release-notes

v1.1.1

Published

Extract release notes from a TAO extension

Downloads

27

Readme

tao-release-notes

A CLI tool for extracting release notes from Github repos

Project setup

From npm:

npm install -g @oat-sa/tao-release-notes # installs globally and creates the 'taoReleaseNotes' binary

From Github:

git clone https://github.com/oat-sa/tao-release-notes.git
cd tao-release-notes
npm i && npm link # installs and creates the 'taoReleaseNotes' binary

Prerequisites

  • Github account

The first time the tool is run, it requires a Github Personal Access Token to be manually installed. The tool will prompt you to create one by opening https://github.com/settings/tokens. This token needs repo rights.

The token will be stored for subsequent use in $HOME/.tao-release-notes.

Running the tool

The tool has 3 modes, specified by the command line options.

1. Composers mode - specify 2 local files when prompted

taoReleaseNotes composers

You will be prompted for the paths to 2 composer.json files (local to the current working directory). The composers can contain flat lists of extensions, and can also reference tao-community versions. If tao-community is included in your composer, the version will be looked up online and its dependencies will be added to the parent composer for the current run.

Once the 2 composers are loaded and resolved, extraction of each extension's notes will begin. For most extensions, the version range will be automatic. You will be prompted for the start version of any extension missing from composer #1, and the end version of any extension missing from composer #2.

When you are prompted for versions, there will be a suggestion auto-filled - it represents the earliest or latest version available. Press Enter to accept, or type a different version.

You can also press s to skip notes for that extension.

2. Composers mode - pass 2 local files as params

taoReleaseNotes composers --c1 <path/to/composer1.json> --c2 <path/to/composer2.json>

Same as the other composers mode, except you must pass the file paths explicitly.

3. Single extension mode

taoReleaseNotes single -e <repo-name>

This command fetches the release notes for a single extension you specify as a parameter. It should be in the form of the Github repo name, e.g. extension-tao-items.

You will be prompted to enter the start and end version of your desired release notes range.

Full list of CLI parameters

| Short & long form | Type | Modes available in | Description | |---------------------------|------|--------------------|--------------------------------------------| | --c1 <file> | | composers | Relative path to first composer file | | --c2 <file> | | composers | Relative path to second composer file | | -a, --autoVersions | Flag | composers | Automatically select missing versions | | -f, --format <ext> | | composers | Generate output in csv (default) or md | | --extension <extension> | | single | Repo name of an individual extension |

Output

All extracted notes will be put into a folder release_notes/{timestamp}/.

At the end of the run, a concatenated file, all_notes.csv, will be generated in the same location.

Troubleshooting

For extremely large numbers of extensions and notes it could happen that you run into rate limits on Github's API. In such cases, the tool's execution will fail at some point.

A manual workaround at this stage is to split the job into 2 parts by temporarily editing the lists of extensions in your composer files.

In case you have downloaded most of the notes you wanted but the rate limit has been hit before the tool's final concatenation step, a possible command to concatenate your existing files is (on *NIX systems) is:

cat *.csv > all_notes.csv

Happy downloading!