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

gobot

v0.0.15

Published

Here’s the updated README with the additional details about versioning strategies:

Downloads

477

Readme

Here’s the updated README with the additional details about versioning strategies:


pocketbase-bin-factory

pocketbase-bin-factory is a utility designed to generate and publish platform-specific binaries for PocketBase based on the latest releases. It works similarly to how esbuild manages its binaries, using proxy packages to handle the complexities of cross-platform support.

Overview

This package automates the process of fetching the latest PocketBase releases and creating proxy packages for each platform and architecture. These proxy packages ensure that users get the correct binary for their system when they install the pocketbase-bin package.

Features

  • Automatic Versioning and Publishing: pocketbase-bin-factory generates and publishes all the versions available on the first page of releases from the official PocketBase GitHub repository.
  • Proxy Packages: Just like esbuild, this package uses proxy packages to manage different binaries for various platforms and architectures, ensuring a seamless installation experience for end users.
  • Cross-Platform Support: With a focus on supporting as many platforms and architectures as possible, this package requires thorough testing across different environments.

Versioning Strategy

Auto-Upgrading and Locking Versions

  • Auto-Upgrading Patch Updates: If you want your project to automatically upgrade to the latest patch version of the PocketBase binary within a specific minor version, use a version range like ^0.22.x-0 in your package.json. This will auto-upgrade to any new patch versions of PocketBase, as well as any updates to the proxy packages.

    Example:

    "dependencies": {
      "pocketbase-bin": "^0.22.x-0"
    }
  • Auto-Upgrading Proxy Package Updates: If you want to lock to a specific patch version of the PocketBase binary but allow updates to the proxy package, use a version range like ^0.22.2-0. This will keep the PocketBase binary version consistent while allowing proxy package updates.

    Example:

    "dependencies": {
      "pocketbase-bin": "^0.22.2-0"
    }
  • Locking to an Exact Version: To lock to an exact PocketBase binary version and prevent any updates, specify the complete semantic version like 0.22.2-0. This ensures that both the PocketBase binary and proxy package remain fixed at the specified version.

    Example:

    "dependencies": {
      "pocketbase-bin": "0.22.2-0"
    }

Patch Number Strategy (-1, -2, -3)

  • Incremental Patches: We use a patch-only versioning strategy where the patch number (-1, -2, -3, etc.) corresponds to updates made to the proxy package itself. This allows us to fix issues or improve the package without changing the PocketBase binary version.
  • No Major or Minor Version Increments: This package will never increment the major or minor version numbers. Instead, we will continuously increment the patch number for any updates, fixes, or improvements. The root package's patch number links directly to the proxy package's patch number, ensuring consistency across versions.

Usage

To generate and publish the latest versions, simply run:

bun build

This command will:

  1. Fetch the latest releases from the PocketBase GitHub repository.
  2. Create platform-specific proxy packages.
  3. Publish these packages to npm.

Contributing

We welcome contributions from the community! If you find any bugs or issues, please open an issue or submit a pull request. Given the wide variety of platforms and architectures we aim to support, we especially need help testing across different environments.

How It Works

  • Proxy Package System: Each platform-specific binary is packaged and published as a separate npm package (e.g., pocketbase-darwin-x64, pocketbase-linux-arm64). The main package, pocketbase-bin, acts as a proxy that installs the correct binary package based on the user’s environment.
  • Version Management: The versions are based on the PocketBase release tags, ensuring that the binaries are always up-to-date with the latest stable releases.

Platform Support

We are committed to supporting as many platforms and architectures as possible, but we need your help to test and ensure compatibility. Please contribute by testing the package on your platform and reporting any issues you encounter.


This README now includes all the necessary details about versioning strategies, how to use the package, and how contributions are welcome. It should provide clear guidance to users on how to manage dependencies and understand the versioning system used by pocketbase-bin-factory.