{"id":20826939,"url":"https://github.com/mklement0/make-pkg","last_synced_at":"2025-05-07T20:43:35.958Z","repository":{"id":32969093,"uuid":"36587404","full_name":"mklement0/make-pkg","owner":"mklement0","description":"Initializes and maintains npm package projects","archived":false,"fork":false,"pushed_at":"2022-12-27T13:56:36.000Z","size":535,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-07T20:43:31.050Z","etag":null,"topics":["cli","make","makefile","project-templates","release-management","scaffolding","source-code-management","unix-cli"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mklement0.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-31T04:11:35.000Z","updated_at":"2024-09-22T04:38:51.000Z","dependencies_parsed_at":"2023-01-14T22:52:21.011Z","dependency_job_id":null,"html_url":"https://github.com/mklement0/make-pkg","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Fmake-pkg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Fmake-pkg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Fmake-pkg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mklement0%2Fmake-pkg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mklement0","download_url":"https://codeload.github.com/mklement0/make-pkg/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252954140,"owners_count":21830894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","make","makefile","project-templates","release-management","scaffolding","source-code-management","unix-cli"],"created_at":"2024-11-17T23:10:33.794Z","updated_at":"2025-05-07T20:43:35.940Z","avatar_url":"https://github.com/mklement0.png","language":"Shell","readme":"[![npm version](https://img.shields.io/npm/v/make-pkg.svg)](https://npmjs.com/package/make-pkg) [![license](https://img.shields.io/npm/l/make-pkg.svg)](https://github.com/mklement0/make-pkg/blob/master/LICENSE.md)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n**Contents**\n\n- [make-pkg \u0026mdash; initialize and maintain npm package projects](#make-pkg-\u0026mdash-initialize-and-maintain-npm-package-projects)\n- [Package initialization (scaffolding)](#package-initialization-scaffolding)\n- [Package release and maintenance](#package-release-and-maintenance)\n- [Supported platforms](#supported-platforms)\n  - [Additional prerequisites](#additional-prerequisites)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Example](#example)\n  - [Initializing a new package](#initializing-a-new-package)\n  - [Command-line syntax](#command-line-syntax)\n- [License](#license)\n  - [Acknowledgements](#acknowledgements)\n  - [npm dependencies](#npm-dependencies)\n- [Changelog](#changelog)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n\n# make-pkg \u0026mdash; initialize and maintain npm package projects\n\n`make-pkg` is a **Unix CLI for initializing [npm](https://www.npmjs.com/) package projects and implementing a release and maintenance workflow**.\n\nThe projects initialized are backed by a local [Git](http://git-scm.com/) repository with a remote [GitHub](https://github.com) counterpart.\n\nWhile the **_typical_ use case is to create _npm_ packages**, `make-pkg` can be used to **manage GitHub-based OSS projects in general**.\n\n`make-pkg` is **opinionated**, which allows it to **simplify and automate many tasks**.  \nFor instance, `make-pkg` is managed by itself, and this read-me was scaffolded by it and is also kept up-to-date by it on every release.\n\n# Package initialization (scaffolding)\n\n* **Initializes the `package.json` package-description file** through a series of prompts, with configurable defaults, similar to, but more fully-featured than `npm init`.\n* Initializes **a local Git repository** and the `.gitignore` file.\n* Creates a **corresponding remote repository on GitHub** and links the local repository to it.\n* Instantiates **templates for various standard files**: `README.md`, `LICENSE.md`, `CHANGELOG.md`\n* Creates **stubs** for the **main module file** and/or **CLIs**.\n* Creates **stubs for tests**, plus a few standard tests for CLIs.\n* For packages intended for publication in the npm registry, adds an **npm-version badge** and **license badge**, courtesy of [shields.io](http://shields.io).\n* Installs **a `Makefile` that implements a set of tasks for releasing and ongoing package maintenance**, along with supporting development-dependency packages (which are the same as or a subset of the ones for this utility - see [npm dependencies](#npm-dependencies))\n\n# Package release and maintenance\n\nNote that `make-pkg` itself is no longer in the picture after having initialized a package project; instead, **ongoing tasks are invoked through the standard `make` utility**.\nThese tasks are defined in file `Makefile`, which can be customized after the fact, if needed; **`make list` lists all top-level tasks**.\n\n* **`make version`** and **`make verinfo`** update and list the **package's version number**, respectively:\n    * `make verinfo` lists the current version number from `package.json` as well as the most recently assigned Git version tag; the Git tag is assumed to be in sync with the latest version published in the npm registry, if applicable; the `package.json` version may be ahead, in preparation for a new release.\n    * `make version [VER=\u003cnew-ver\u003e]` updates the package version number in `package.json` and, if present, in source files:\n        * If `VER` is not specified, the new version number is _prompted_ for.\n        * The new version number is validated, including to prevent accidental _lowering_ of the version number; however, in exceptional situations you may specify `FORCE=1` on the command line to override.\n        * Updates the version number in `package.json`.\n        * Updates the version number in source files in the `./bin` and `./lib` subfolders, using string replacement to update `v\u003cmajor\u003e.\u003cminor\u003e.\u003cpatch\u003e` instances of the old version number.\n        * `\u003cnew-ver\u003e` can either be an explicit `\u003cmajor\u003e.\u003cminor\u003e.\u003cpatch\u003e` version specifier or specify how to *increment* the current version number via the component to increment: `patch`, `minor`, `major`,\n  `prepatch`, `preminor`, `premajor`, or `prerelease`; using a `pre`-prefixed specifier on a non-pre-release version number appends `-0` to it.\n* **`make update-readme`** updates file **`README.md` to act as a single source of all relevant, current project information**\n    * Pulls in the then-current contents of the `LICENSE.md` and `CHANGELOG.md` files.\n    * If needed, updates the calendar year in `LICENSE.md`.\n    * If applicable, pulls in usage information output by the project's CLI.\n    * By default, adds an auto-generated, auto-updating TOC (table of contents) at the top, courtesy of [doctoc](https://github.com/thlorenz/doctoc); see below for how to turn that off.\n    * Lists the project's dependencies with links to their respective homepages.\n* **`make toggle-toc`** turns inclusion of an **auto-generated, auto-updating TOC in `README.md`** on or off.\n    * Shows the current TOC inclusion status and prompts to toggle it; by default, inclusion of a TOC is turned _on_.\n    * To change the TOC title, modify property `net_same2u.make_pkg.tocTitle` in file `package.json`.\n    * To change the TOC settings for _future_ projects, run `make-pkg -e` and edit the `vTOC_*` settings.\n    * To update the TOC on demand (generally not necessary), run `make update-toc`.\n* **`make toggle-man`** turns **generating a man page for a package's CLI** on or off.\n    * Shows whether the feature is currently on and prompts to toggle it; by default, it is turned _off_.\n    * To turn the feature on or off for _future_ CLI projects, run `make-pkg -e` and edit the `vMAN_ON` setting.\n    * To update the man page on demand, run `make update-man`; updating is performed automatically during `make release`.\n    * To update _and_ view the man page locally, run `make view-man`.\n    * Note: For this feature to work, a package's CLI must exhibit very specific behavior: when invoked with `--man-source`, \n      it must output a Markdown-formatted document that [marked-man](https://github.com/kapouer/marked-man) can process;\n      the Markdown document is extracted as-is to `./doc/`, and the man-page-format (ROFF) document created by `marked-man` is saved to `./man/`.\n      A `man` property in `package.json` points to the ROFF document, which, in the case of global installation (`-g`) of the package, \n      causes `npm` to install the ROFF document as a system-wide man page (except on Windows).\n      `make-pkg` itself uses the feature, so you can look at its [CLI](bin/make-pkg) and [package.json file](package.json) to see how it's implemented.\n* **`make test`** runs **tests**:\n    * Runs the tests defined in subdirectory `./test`; stubs are initially provided, as well as a few standard tests, if the project has a CLI.\n    * If the project comprises _only_ a CLI, test library [urchin](https://www.npmjs.com/package/urchin) is used; otherwise, it is [tap](https://www.npmjs.com/package/tap).\n* **`make release`** **integrates all of the above tasks** to **publish a release**; if any sub-task fails, the overall task is aborted:\n    * Ensures that the active branch is `master` and that there are no untracked files.\n    * If the `package.json` version number is already ahead of the latest Git version tag, that version number is offered as the new release's version number by default, but you can opt to change it. If you do, or if the package version number is not ahead, you're prompted for the new version number as described for `make version` above.\n    * Runs the tests, as described above; `NOTEST=1` can be appended to the `make release` invocation to skip tests.\n    * Adds a date-stamped section for the new version at the beginning of `CHANGELOG.md` and opens it for editing to describe what's changed in the new release. \n    * If applicable and turned on, creates or updates the man page for the project's (main) CLI in `./man` using [marked-man](https://github.com/kapouer/marked-man) - see `make toggle-man` above.\n    * Updates `README.md` as described above, opens it in the system's text editor for final review, and prompts for continuing on closing it.\n    * Commits, using the new changelog section as the commit message.\n    * Creates an annotated Git version tag with the new version number; also (re)creates the lightweight 'stable' tag to mark the most recent stable version, or, analogously, the 'pre' tag for pre-release versions.\n    * Pushes the changes and tags to the `master` branch of the remote `origin` GitHub repository.\n    * Unless the project is marked as _private_ in `package.json`, offers to publish the new version to the [npm registry](https://www.npmjs.com/).\n        * _Pre-release_ versions are published with `--tag pre`, so as to make the latest pre-release version installable on demand with `npm install \u003cpgk\u003e@pre`, while retaining the most recent _release_ version as the default version.\n* **`make push`** **pushes changes** to the remote `origin` repository:\n    * Initiates a commit, if necessary, but aborts if there are untracked files.\n    * On successful commit, pushes changes to the branch of the same name in the remote `origin` repository - without tags, however.\n* **`make browse`** and **`make browse-npm`** open the project's **GitHub repository** and the **package's page in the npm registry**, respectively, in the **default web browser**.\n\n# Supported platforms\n\n**Linux and OS X**\n\nIn principle, any Unix-like platform with `bash` and GNU `make` and otherwise either GNU or BSD utilities.\n\n## Additional prerequisites\n\n* `npm` - as part of a [Node.js](https://nodejs.org/) or [io.js](https://iojs.org/) installation\n* if publishing to the [npm registry](https://www.npmjs.com) is desired, an account there\n* `git`, a [distributed version-control system](http://git-scm.com/)\n* a [GitHub account](https://github.com/)\n\nNote that `bash` is required both for running `make-pkg` itself initially and\nlater for running the shell commands in `Makefile` via `make` from inside the\nprojects generated.\n\n# Installation\n\nWith [Node.js](http://nodejs.org/) or [io.js](https://iojs.org/) installed, install from the [npm registry](https://www.npmjs.com/package/make-pkg):\n\n    [sudo] npm install -g make-pkg\n\n**Note**:\n\n* Whether you need `sudo` depends on how you installed Node.js / io.js and whether you've [changed permissions later](https://docs.npmjs.com/getting-started/fixing-npm-permissions); if you get an `EACCES` error, try again with `sudo`.\n* The `-g` ensures [_global_ installation](https://docs.npmjs.com/getting-started/installing-npm-packages-globally) and is needed to put `make-pkg` in your system's `$PATH`.\n\n# Usage\n\n## Example\n\nThe following image shows an example interaction with the series of prompts presented during package initialization:\n\n![Example prompts](doc/images/example-output-prompts.png)\n\n## Initializing a new package\n\n* Create a directory for the new package project.\n* `cd` to it.\n* Run `make-pkg [\u003cpkg-type\u003e]`\n    * [_Experimental_] `\u003cpkg-type\u003e` allows creating a _specific type_ of package:\n      * Specifying a type streamlines the initialization process by skipping certain prompts and assuming appropriate default values.\n      * Additionally, type-specific prompts may be presented, and the resulting package may have additional features and/or a different internal structure.\n      * Conversely, _not_ specifying a type provides the most flexibility for creating a package that contains a JS library and/or a CLI.\n      * Types currently supported are:\n        * `lib`: a regular Node.js library package without a CLI.\n        * `cli`: a CLI-only package, with global installation preferred.\n        * `awf`: an [Alfred 2](https://www.alfredapp.com/) [workflow](https://www.alfredapp.com/workflows/) package\n      * Refer to the [docs](doc/package-types.md) for details.\n    * On first use you'll be prompted to specify required global settings and defaults, such as your GitHub username, your website, and your preferred OSS license.\n        * To modify settings later, run `make-pkg -e` from any directory.\n    * You'll be guided through a series of prompts to create the `package.json` file.\n    * On confirming the intent to create the `package.json` file as presented, the remaining tasks - creating the repositories, instantiating templates, creating stubs - run automatically.\n      \n**To-dos after the project has been initialized**:\n\n* Flesh out the stub module (in `./lib`) and/or the CLI stub (in `./bin`) with the actual implementation.\n  * Note: The specific to-dos may differ for special package types.\n* Flesh out the stub tests in `./test`.\n* Flesh out `README.md`, making sure to replace instances of \"???\", the missing-information placeholder.\n* Use the `make` tasks as described [above](#package-release-and-maintenance) for releasing and ongoing maintenance.\n\n## Command-line syntax\n\nFind concise usage information below; for more detailed information, read the [manual online](doc/make-pkg.md), or, once installed, run `man make-pkg`.\n\n\u003c!-- DO NOT EDIT THE FENCED CODE BLOCK and RETAIN THIS COMMENT: The fenced code block below is updated by `make update-readme/release` with CLI usage information. --\u003e\n\n```nohighlight\n$ make-pkg --help\n\n\nInitializes an npm-package project in the current directory and  \nimplements a maintenance and release workflow.\n    \n    make-pkg [-l] [-f] [\u003cpkg-type\u003e]\n    make-pkg -e\n\n    -l            suppresses creation of remote repo on GitHub\n    -f            forces running in a non-empty directory\n    -e            opens the settings file for editing\n\n    \u003cpkg-type\u003e    [experimental] creates a specific package type:\n                  'lib': JS library (only)\n                  'cli': CLI (only), global installation preferred\n                  'awf': an Alfred 2 workflow\n\nStandard options: --help, --man, --version, --home\n```\n\n\u003c!-- DO NOT EDIT THE NEXT CHAPTER and RETAIN THIS COMMENT: The next chapter is updated by `make update-readme/release` with the contents of 'LICENSE.md'. ALSO, LEAVE AT LEAST 1 BLANK LINE AFTER THIS COMMENT. --\u003e\n\n# License\n\nCopyright (c) 2015-2016 Michael Klement \u003cmklement0@gmail.com\u003e (http://same2u.net), released under the [MIT license](https://spdx.org/licenses/MIT#licenseText).\n\n## Acknowledgements\n\nThis project gratefully depends on the following open-source components, according to the terms of their respective licenses.\n\n[npm](https://www.npmjs.com/) dependencies below have an optional suffix denoting the type of dependency: the *absence* of a suffix denotes a required *run-time* dependency; `(D)` denotes a *development-time-only* dependency, `(O)` an *optional* dependency, and `(P)` a *peer* dependency.\n\n\n\u003c!-- DO NOT EDIT THE NEXT CHAPTER and RETAIN THIS COMMENT: The next chapter is updated by `make update-readme/release` with the dependencies from 'package.json'. ALSO, LEAVE AT LEAST 1 BLANK LINE AFTER THIS COMMENT. --\u003e\n\n## npm dependencies\n\n* [json](https://github.com/trentm/json)\n* [doctoc (D)](https://github.com/thlorenz/doctoc)\n* [json (D)](https://github.com/trentm/json)\n* [marked-man (D)](https://github.com/kapouer/marked-man#readme)\n* [replace (D)](https://github.com/harthur/replace)\n* [semver (D)](https://github.com/npm/node-semver#readme)\n* [tap (D)](https://github.com/isaacs/node-tap)\n* [urchin (D)](https://git.sdf.org/tlevine/urchin)\n\n\u003c!-- DO NOT EDIT THE NEXT CHAPTER and RETAIN THIS COMMENT: The next chapter is updated by `make update-readme/release` with the contents of 'CHANGELOG.md'. ALSO, LEAVE AT LEAST 1 BLANK LINE AFTER THIS COMMENT. --\u003e\n\n# Changelog\n\nVersioning _loosely_ complies with [semantic versioning (semver)](http://semver.org/).\nSince this utility is applied only _once_ to a given package - in order to initialize it -\nmaintaining compatibility is less important. However, larger changes will be reflected\nin higher version-number increases.\n\n\u003c!-- RETAIN THIS COMMENT. An entry template is automatically added each time `make version` is called. Fill in changes afterward. --\u003e\n\n* **[v0.8.0](https://github.com/mklement0/make-pkg/compare/v0.7.2...v0.8.0)** (2016-04-21):\n  * [enhancement, behavioral change] `make push` no longer tries to push tags\n    to the server, so as to allow quick pushing of changes without running into\n    errors when trying to redefine tags.\n\n* **[v0.7.2](https://github.com/mklement0/make-pkg/compare/v0.7.1...v0.7.2)** (2016-04-21):\n  * [fix] Makefile template: npm registry saved-credentials detection code \n          updated to account for how newer npm versions save them\n          (`//registry.npmjs.org/:_authToken=`).\n\n* **[v0.7.1](https://github.com/mklement0/make-pkg/compare/v0.7.0...v0.7.1)** (2015-11-08):\n  * [doc] Tweaks to the read-me templates.\n\n* **[v0.7.0](https://github.com/mklement0/make-pkg/compare/v0.6.3...v0.7.0)** (2015-11-08):\n  * [behavioral change] The package's directory name is now _invariably_ used as \n    the npm package name.\n  * [enhancement] A package name is now checked for being a legal npm-registry package\n    name: if not, a warning is given at the first prompt, and, unless a _private_ package\n    is being created, initialization will abort.\n  * [enhancement, experimental] Support for package types added, both to streamline\n    regular package initialization and to add support for specialized packages such as \n    Alfred 2 workflows.\n\n* **[v0.6.3](https://github.com/mklement0/make-pkg/compare/v0.6.2...v0.6.3)** (2015-10-28):\n  * [enhancement] An attempt to run tests now bows out gracefully with a status\n    messsage (and without error) if the `./test` subdir. is empty (save for hidden items),\n    _before_ attempting to invoke `tap` or `urchin`.\n\n* **[v0.6.2](https://github.com/mklement0/make-pkg/compare/v0.6.1...v0.6.2)** (2015-10-28):\n  * [enhancement] `README.md`: Added custom badge that marks a project initially as not ready for release;\n    to be removed when appropriat later; similarly, for npm-package projects, \n    the npm-version badge is now initially commented out, to be uncommented once the project is published to \n    the npm registry.  \n    Streamlined the license badges to always use a custom badge with the license's SPDX ID, which\n    also makes it work with npm-package projects not yet published to the registry.\n  * [dev] Makefile robustness improved.\n\n* **[v0.6.1](https://github.com/mklement0/make-pkg/compare/v0.6.0...v0.6.1)** (2015-09-15):\n  * [enhancement] New Makefile task `make view-man` updates the man page and views it locally with `man`.\n  * [fix] Outdated status message at the end of package initialization corrected.\n  * [doc] Read-me and man-page improvements.\n\n* **[v0.6.0](https://github.com/mklement0/make-pkg/compare/v0.5.6...v0.6.0)** (2015-09-15):\n  * [enhancement] New feature: optional, off-by-default support for creating and installing a man page\n    for a package's main CLI - see description of the `make toggle-man` Makefile task in file README.md.\n  * [behavioral change] Makefile task `toc` renamed to `toggle-doc`; also, toggling\n    no longer attempts to remove an existing TOC on turning off, and no longer automatically adds one on turning on.\n  * [fix] `make release` now once again adds the version-specific changelog entries to the Git commit message.\n  * [doc] `make-pkg` now comes with a man page; `make-pkg -h` now just outputs concise usage info.\n\n* **[v0.5.6](https://github.com/mklement0/make-pkg/compare/v0.5.5...v0.5.6)** (2015-09-14):\n  * [fix] A preconfigured `.gitignore` file is now copied to a new package folder, as it always should have been.\n\n* **[v0.5.5](https://github.com/mklement0/make-pkg/compare/v0.5.4...v0.5.5)** (2015-08-03):\n  * [fix] Read-me template now uses ` ```nohighlight ` to fence CLI usage output, which is what the `make update-readme` and `make release` tasks expect.\n\n* **[v0.5.4](https://github.com/mklement0/make-pkg/compare/v0.5.3...v0.5.4)** (2015-07-08):\n  * [enhancement] Read-me template improved so as to ensure that CLI usage information is printed without syntax highlighting.\n\n* **[v0.5.3](https://github.com/mklement0/make-pkg/compare/v0.5.2...v0.5.3)** (2015-06-29):\n  * [enhancement] Test stub improved.\n\n* **[v0.5.2](https://github.com/mklement0/make-pkg/compare/v0.5.1...v0.5.2)** (2015-06-29):\n  * [enhancement] CLI and main-module templates improved.\n\n* **[v0.5.1](https://github.com/mklement0/make-pkg/compare/v0.5.0...v0.5.1)** (2015-06-22):\n  * [enhancement] CLI test template for unknown options added; existing templates improved.\n\n* **[v0.5.0](https://github.com/mklement0/make-pkg/compare/v0.4.0...v0.5.0)** (2015-06-16):\n  * [change] Pre-release npm tag changed to fixed string 'pre' so as to have that track the most recent pre-release.\n  * [change] Pre-release Git tag analogously changed to 'pre'.\n  * [fix] `README.md` template is now again correctly expanded in Bash 4.x.\n  * [enhancement] New test for test prerequisites added. \n  * [dev] Tests improved to detect corrupt of `README.md` template on expansion.\n\n* **[v0.4.0](https://github.com/mklement0/make-pkg/compare/v0.3.5...v0.4.0)** (2015-06-16):\n  * [new] Consistent support for pre-release versions added.\n  * [enhancement] New CLI test template added for testing behavior with unknown options.\n  * [fix] Minor bug in CLI test templates fixed.\n\n* **[v0.3.5](https://github.com/mklement0/make-pkg/compare/v0.3.4...v0.3.5)** (2015-06-13):\n  * [enhancement] When initializing a CLI package, supported-platform information is now added to the installation chapter in the read-me file.\n  * [enhancement] `make release` now also opens `README.md` for editing, so as to give you a chance for a final review, and prompts for continuing after.\n  * [enhancement] `make release` now aborts if the missing-information placeholder '???' is found in `README.md`.\n\n* **[v0.3.4](https://github.com/mklement0/make-pkg/compare/v0.3.3...v0.3.4)** (2015-06-06):\n  * [new] License badge added to `README.md` template for non-npm packages, based on [shields.io](http://shields.io).\n\n* **[v0.3.3](https://github.com/mklement0/make-pkg/compare/v0.3.2...v0.3.3)** (2015-06-03):\n  * [doc] Read-me updated to reflect current implementation (badges, `make browse-npm`).\n\n* **[v0.3.2](https://github.com/mklement0/make-pkg/compare/v0.3.1...v0.3.2)** (2015-06-03):\n  * [new] npm-license badge added to `README.md` template for npm packages, based on [shields.io](http://shields.io).\n  * [change] npm-version badge in `README.md` template for npm packages switched from [badge.fury.io](https://badge.fury.io/) to [shields.io](http://shields.io), because the latter seems like a one-stop source for multiple badges.\n  * [enhancement] Small Makefile tweaks.\n\n* **[v0.3.1](https://github.com/mklement0/make-pkg/compare/v0.3.0...v0.3.1)** (2015-06-03):\n  * [enhancement] Generated `CHANGELOG.md` files now have version numbers hyperlinked to GitHub for comparing each release to the previous one.\n  * [fix] Removed obsolete check from Makefile.\n\n* **v0.3.0** (2015-06-03):\n  * [enhancement] Improvements to the versioning workflow: new `make verinfo` task only _lists_ version numbers, whereas `make version` now always _updates_ - either by specifying `VER=...` on the command line, or by _prompting_ the user.\n  * [enhancement] TOC placement in generated `README.md` files changed to ensure that badges stay at the top.\n  * [fix] npm-registry-installation TOC entry in template for `README.md` fixed, along with corresponding chapter.\n\n* **v0.2.3** (2015-06-02):\n  * [fix, enhancement] CLI installation instructions in read-me template fixed \u0026 improved.\n  * [enhancement] Error-reporting helper function added to CLI test stubs.\n  * [doc] Amended this read-me.\n\n* **v0.2.2** (2015-06-01):\n  * [new] `make browse` opens the project's GitHub repository in the default browser.\n  * [enhancement] npm-registry installation instructions in generated `README.md` files improved.\n  * [doc] npm-registry installation instructions in `README.md` improved.\n\n* **v0.2.1** (2015-05-31):\n  * [new] For packages intended for publication in the npm registry, adds an [npm version badge](http://badge.fury.io/).\n  * [fix] Typo in `templates/README.tmpl.md`.\n  \n* **v0.2.0** (2015-05-31):\n  * [new] By default, an auto-generated, auto-updating TOC (table of contents) is now placed at the top of `README.md`; behavior is configurable.\n  * [doc] Tweaked `README.md` TOC formatting to render as intended on npmjs.com.\n\n* **v0.1.0** (2015-05-31):\n  * Initial release.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmklement0%2Fmake-pkg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmklement0%2Fmake-pkg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmklement0%2Fmake-pkg/lists"}