No more pear run
The pear run command is removed as of v3. It’s superseded by a combination of pear-runtime a module which supplies a run() method for Bare workers and peer-to-peer over-the-air updates, the pear build command introduced in v2 for creating deployment folders and the new v3 command, pear install.
Peer-to-Peer Application & Binary Installation
Use pear install <link> to install any application or binary from a deployment created with pear build and deployed with pear.
For example, Keet’s production pear link is pear://17pwkcszz18deaccarhrrixhzf1f5ko1b1dz6j3pxhexebutjwzy, so Keet can be installed peer-to-peer with:
pear install pear://17pwkcszz18deaccarhrrixhzf1f5ko1b1dz6j3pxhexebutjwzy
This will install the application to your system (e.g. on macOS it installs to /Applications/Keet.app) from peers – unless it’s already installed, and then pear install will refuse to overwrite.
Binaries are also supported. Declare a binary on the package.json bin field and use bare-build to create a binary with a matching name, deploy that with pear and then pear install can be used to install it to system – ~/.local/bin on macOS and Linux and %LOCALAPPDATA%\Programs\<app-name>\<bin-name>.exe on Windows.
To quickly make p2p installable applications use the boilerplates, we talked about them in the Hello Pear Boilerplates article. Use the hello-pear-electron boilerplate for applications, and the hello-pear-bare boilerplate for binaries.
The pear install command is backed by the pear-install module, the same installer can be invoked npx pear-install <link>, and it can also be used as a library so that a p2p app can allow users to install other apps peer-to-peer.
Pear is a build of Bare deployed with Pear
Pear CLI has always been deployed with Pear CLI but this iteration from pear run to pear-runtime OTA updates to pear install dead-ended updater logic that Pear CLI used internally to self-update and switch release branches. v3.0.0 also means no more pear sidecar –key for release switching.
We integrated the pear-runtime module into Pear CLI to replace the updater logic and aligned the architecture to create binary standalones. So Pear CLI is now also a Pear app and it can be installed to the system by the same pear-install module which means npx pear-install <link> can be used for release-line switching.
This also means the <pear-dir>/bin path no longer needs to be in system PATH. Pear v3 is installed to ~/.local/bin/pear on macOS and Linux and %LOCALAPPDATA%\Programs\pear\pear.exe on Windows.
Got Pear?
Binaries can also be downloaded directly from install.pears.com or you can directly install via npx, curl, irm
On macOS and Linux:
curl https://install.pears.com/pear.sh | sh
On Windows PowerShell:
irm https://install.pears.com/pear.ps1 | iex
With Node.js + npm:
npx pear@3
NOTE: If you’re already running Pear v2, use npx pear@3 for migration because it updates the PATH environment variable for v3. After install run pear -v to check that your system is resolving to the correct binary. If the version isn’t >= 3.0.0 then check your system PATH and remove <pear-dir>/bin from it.
From here?
From here, we don’t anticipate a new major for a long time; the architecture has collapsed down into what really seems like a stable state. From here, we’re focusing on depth, interoperability, stability and in time we’ll be seeing some interesting new features as the CLI aligns to complement the as-yet-unreleased-but-upcoming Pear Software Development Kit (SDK).
We’re excited about this release and stability and appraochability it brings to P2P app development. Let us know what you’re building or how the new architecture impacts your development in our public Keet channel:
keet://chat/yfo6dbyb4iz9bhhdq6nzq888dto4b4mxttz94i8ttaidrppwnmtehgn4so6u5jy9cfg41x7aoht5egf8354wjaz7eip5am37ie9ffy3gpq4bngkz35fx4f9zxpeo53qt679q4e8bjazbxoo356pz96c9munhaye