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 🙏

© 2026 – Pkg Stats / Ryan Hefner

bootstrap-automatic-releases

v5.3.5

Published

The most popular front-end framework for developing responsive, mobile first projects on the web.

Readme

Set up

This repository is a copy of the Bootstrap repository with a few changes to make it work with this new repository:

  • Forked Bootstrap main branch from https://github.com/twbs/bootstrap/commit/0cbfe13adf669ad39ae9d8e873c2ad59befd3a3a

  • Changed if: github.repository == 'twbs/bootstrap' to if: github.repository == 'julien-deramond/bootstrap-automatic-releases' (3e17b6e)

  • Removed .github/dependabot.yml file to avoid having Dependabot alerts

  • Fixed CSpell action by adding "deramond" to the dictionary (45bd8d9)

  • Disabled BrowserStack workflow because it requires a BrowserStack account. However, it should be pretty easy to make it work afterward when the automatic release is set up in Bootstrap. (77eb394)

  • Configured Netlify to deploy the main branch at https://bootstrap-automatic-releases.netlify.app/

  • Changed package name for this repository in package.json to test out the automatic release: used bootstrap-automatic-releases

    • This also required changing the name here:
    diff --git a/build/zip-examples.mjs b/build/zip-examples.mjs
    index e5e39be..df254dc 100644
    --- a/build/zip-examples.mjs
    +++ b/build/zip-examples.mjs
    @@ -18,7 +18,7 @@ const pkgJson = path.join(__dirname, '../package.json')
    const pkg = JSON.parse(await fs.readFile(pkgJson, 'utf8'))
      
    const versionShort = pkg.config.version_short
    -const distFolder = `bootstrap-${pkg.version}-examples`
    +const distFolder = `bootstrap-automatic-releases-${pkg.version}-examples`
    const rootDocsDir = '_site'
    const docsDir = `${rootDocsDir}/docs/${versionShort}/`
      
    diff --git a/package.json b/package.json
    index 7c3d4b4..90e3715 100644
    --- a/package.json
    +++ b/package.json
    @@ -89,7 +89,7 @@
        "release": "npm-run-all dist release-sri docs-build release-zip*",
        "release-sri": "node build/generate-sri.mjs",
        "release-version": "node build/change-version.mjs",
    -    "release-zip": "cross-env-shell \"rm -rf bootstrap-$npm_package_version-dist bootstrap-$npm_package_version-dist.zip && cp -r dist/ bootstrap-$npm_package_version-dist && zip -qr9 bootstrap-$npm_package_version-dist.zip bootstrap-$npm_package_version-dist && rm -rf bootstrap-$npm_package_version-dist\"",
    +    "release-zip": "cross-env-shell \"rm -rf bootstrap-automatic-releases-$npm_package_version-dist bootstrap-automatic-releases-$npm_package_version-dist.zip && cp -r dist/ bootstrap-automatic-releases-$npm_package_version-dist && zip -qr9 bootstrap-automatic-releases-$npm_package_version-dist.zip bootstrap-automatic-releases-$npm_package_version-dist && rm -rf bootstrap-automatic-releases-$npm_package_version-dist\"",
        "release-zip-examples": "node build/zip-examples.mjs",
        "dist": "npm-run-all --aggregate-output --parallel css js",
        "test": "npm-run-all lint dist js-test docs-build docs-lint",

Changes

Here are the changes that could be made to the original Bootstrap repository to have automatic releases.

Get rid of the dist directory

  • Remove dist directory and add it to .gitignore (c0797cb)
  • Add eslint ignore rule eslint-disable-line import/no-unresolved to /js/tests/integration/bundle.js to fix npm run lint without having to build the library (6d959ab)
  • Change npm run docs to add an extra npm run dist command so that /docs/5.3/customize/css-variables can be built (it embeds the content of the dist CSS built file) (d8d05b0)
  • Adapt .github/workflows/docs.yml to use npm run docs instead of several sub-commands (8dacbe0)
  • Adapt BrowserStack workflow (not done here because it requires a BrowserStack account)

Prepare the releases

  • New script prepare-version.mjs that takes 'patch', 'minor', or 'major' as an argument and prepares the main branch for the next release.
    • Changes the version in all files
    • Rename the {version} directories (e.g. 5.3 -> 5.4, or 5.3 -> 6.0) for minor and major versions
  • New npm scripts to prepare the main branch for the next release:
    + "prepare-patch": "node build/prepare-version.mjs patch",
    + "prepare-minor": "node build/prepare-version.mjs minor",
    + "prepare-major": "node build/prepare-version.mjs major",

Release

[!NOTE] This test was done by publishing this https://www.npmjs.com/package/bootstrap-automatic-releases package publicly. It will be deleted afterward.

[!WARNING] It would be possible to use GitHub Actions to publish the package to npm, but it would require a npm token. If the action is not set up correctly, the token could be exposed. Moreover, all the core team (with write access) is not currently allowed to publish to npm. Therefore, it would be better to use the manual process for now.

New scripts

  • publish-release: to run the release script, publish the package to npm, push the changes to the main branch, and create/push a new tag
  • publish-patch: to run the publish-release script, and after that, publish the docs to the gh-pages branch too
  • publish-minor: to run the publish-release script, and after that, publish the docs to the gh-pages branch too
  • publish-major: to run the publish-release script, and after that, publish the docs to the gh-pages branch too
  • build/publish-docs.mjs: to publish the docs to the gh-pages branch

How to publish a new release for a patch version

  • Run npm run publish-patch to publish a new patch version

How to publish a new release for a minor version

How to publish a new release for a major version

After the release

Prepare the main branch for the next release by running:

  • npm run prepare-patch for a patch release
  • npm run prepare-minor for a minor release
  • npm run prepare-major for a major release

This will execute the npm run release-version <version> <next-version>. For example, if the current version is 5.3.0, running npm run prepare-patch will execute npm run release-version 5.3.0 5.3.1.