* fix: Stop cascade revoking messages for old signer messages
* Fix storage size to be the correct amount in the near future
* add changeset
* Fix broken nightly link
Set up automation so that when we push the `@farcaster/hubble@X.Y.Z` tag
we will automatically kick off a Docker build and push the resulting
image layers + tag to Docker Hub.
* Fix import mapping to work with built JS files
This allows us to ship a Docker image that runs using `node` directly,
rather than via `tsx`.
* Remove use of top-level `await` expressions
These were only used in tests and weren't critical. Switch away so we
have the optional to convert to CommonJS if we need.
* Switch all imports to use relative paths instead of ~ shortcut
The ~ shortcut doesn't work in some contexts, which makes our lives more
difficult when trying to output ESM.
Since we were already using relative paths in some part of the codebase
and not others, just switch to using relative paths everywhere for
simplicity.
* Switch imports to append .js extension
And update Jest configuration to work with this extension.
* Build single image instead of two separate ones
We originally created the other image so that we could build an image
using only packages published to NPM, but this proved problematic when
wanting to test those changes without publishing.
Since there are more situations where we'd want to ship an image using
unpublished packages (i.e. for testing) remove the "public" image and
update our "testing" image to also be used as the public image. However,
a key difference is that the testing image will now run compiled JS
instead of using a TypeScript interpreter.
We want to make it easier for developers to get started with hubs.
Add a separate optimized Docker image which we'll distribute for both
AMD and ARM architectures.
For now the publishing process is manual, but once hubs are fully open
(no peering allowlists) we'll be able to auto-publish with each hubble
release on NPM.
To prevent accidental breakages, test our Docker builds on PRs.
This should be relatively fast thanks to GitHub Actions caching, and the
fact that the NPM `rocksdb` package has a pre-built binary for x64,
which is what `ubuntu-latest` runs.
* perf: shard tests and run them as a matrix in CI
* perf: add concurrency to interrupt prior runs when new ones are pushed
* fix: temporarily lower coverage threshold
* fix: increase propagation delay to account for sporadic test failures
* docs: add comments about concurrency opt