Today our publish process is done by a bash script in CI, which makes it
difficult to test and maintain. To replace the majority of that script,
`flub publish:tarballs` can be used instead. It's intended to be run on
a folder with a bunch of tarballs in it, and takes an input file to
define the order that the packages will be published in. These files are
produced by `flub list` in the build and CI pipeline.
Metadata about each package is loaded directly from the tarball, so all
that's needed is the order file and the packed tarballs, and you are
ready to publish.
If the package version is already published, it will be skipped. If the
publish process errors, the package can be retried by using the
`retry=N` flag, where N is the number of retries per package to do
(default 0).
If the publish fails more than the retry count for a single package, the
whole publish will stop with an error. Subsequent runs will skip the
already published packages.
The .npmrc must still be configured since npm always uses it to get the
registry to use.