Build the CLI
Clone the repository and use Node.js 22 or newer:
git clone --branch v1.0.1 https://github.com/sebytza23/Fast-No-Sync-Package-Manager.git
cd Fast-No-Sync-Package-Manager
npm ci
npm run check
npm test
npm run test:package
The repository uses one npm development lockfile for the CLI. prepack builds the executable and TypeScript declarations before packaging. The installed-package check tests an actual tarball, its CLI, imports, and declarations outside the source tree.
Native manager checks
Install the managers you want to test on PATH, then run:
npm run test:managers -- npm yarn pnpm bun deno
npm run format:check
npm audit
Native fixtures use local archives and a private localhost registry for the test dependencies. The CI workflow provisions pinned manager versions and runs on Windows, macOS, and Linux with Node 22 and 24.
Cloud-provider exclusions are not covered by automated tests.
Build and preview the documentation
The documentation has its own private package and lockfile. Its renderer is a build dependency; the published site contains static HTML, CSS, and browser JavaScript.
npm ci --prefix docs
npm run build --prefix docs
npm run check --prefix docs
npm run serve --prefix docs
The local server prints the project-scoped URL. Use it rather than opening HTML through file://, so asset and search requests use the same base-path behavior as GitHub Pages.
Edit a page
Guide sources are in docs/content/. Page titles, summaries, ordering, and navigation groups live in docs/site.config.cjs. The layout is generated by docs/build.cjs, with assets in docs/assets/.
Use ordinary Markdown, fenced code blocks, and links to other source filenames. For example, a link to configuration.md is converted into the matching published route. Keep heading names distinct when convenient; the builder generates unique anchors when a page repeats a heading.
The build generates a search index from the page content. Search requires no external service or account. Full pages and navigation remain readable without JavaScript.
The current changelog page is generated directly from the root CHANGELOG.md. Update the release notes there rather than maintaining a second changelog for the site. The current version and exact-release installation examples come from the CLI's root package manifest. Use the version placeholder in Markdown examples instead of fixing the current version manually.
Preserve documentation for a release
Before changing the CLI version for the next release, save the current published guides:
npm run snapshot --prefix docs
This writes the guide sources, changelog and edition metadata into docs/versions/<version>/. It refuses to overwrite an existing snapshot. Commit that snapshot, then prepare the next CLI version and update the current documentation.
The builder discovers archived editions automatically and adds them to the version menu and Documentation versions. Each archive gets its own routes, search index, pinned installation examples and an archive banner. The current edition stays at the site's root URL. Historical sources are stored in the repository, so builds do not need to fetch old branches or tags.
The 1.0.0 snapshot was taken from the original documentation commit; the 0.3.0 snapshot uses that release's README and changelog. Earlier releases without verified archived sources are not listed as complete documentation editions.
Checks before publication
The documentation checker verifies local links, section anchors, referenced assets, navigation targets, page titles, the version, and searchable content. Browser validation should also cover desktop and mobile navigation, search, keyboard access, and code-copy controls.
Changes to documentation do not publish a new npm package. Documentation and npm releases have separate deployment paths.
Publish to GitHub Pages
For an authorized local deployment, with GitHub credentials that can push the repository:
npm run deploy --prefix docs
This builds and checks the site, then publishes the generated files to the dedicated gh-pages branch. Its GitHub Actions workflow uploads and deploys the static site through GitHub Pages. It does not push changes to the protected main branch.
Once the documentation source PR is merged, updates on main also build and deploy through the documentation workflow. Pull requests build and check the site without deploying it.
Keep the site at the configured repository base path unless you also update the configuration and validate its links. A custom domain is not configured by this project.
Contributing and license
Propose code or documentation changes through pull requests. Include the behavior you changed and the checks you ran. When reporting a dependency-storage issue, include manager and Node versions, the relevant config with private paths removed, and doctor output.
The project is licensed under GPL-3.0-only. The author is Marin-Eusebiu Șerban.