This page tells you who maintains Solid Objects, how a release is made, and what you keep if maintenance stops. It also tells you how to help maintain the project.
Lucas Carlson (@cardmagic) is the lead
maintainer of the npm package solid-objects and of the Ruby gem
solid_objects. The two
packages use the same model and the same correctness contract. A change to the
model goes into both packages, and the parity ledger records each
difference between them.
The same maintainer sells Solid Objects Pro, a commercial package that batches operations at scale. Pro depends on this package. This package does not depend on Pro, and it needs no account, license key, or service from the maintainer.
CI runs on each push and each pull request:
- Types, formatting, documentation links, the unit tests with coverage, and the packaged artifact.
- The suite on the oldest supported Node.js version.
- The database suites on PostgreSQL and MySQL, and the Redis wake-up suite.
- The browser runtime in Chromium.
Supported versions lists the CI matrix. The correctness contract lists the guarantees that the tests check.
- The maintainer pushes a version tag, for example
v1.0.3. - GitHub Actions runs all test jobs again on that tag.
- If all test jobs pass, GitHub Actions publishes the package to npm with trusted publishing. The repository keeps no npm token, and npm shows a provenance attestation for each version.
- The same job makes a GitHub release from the changelog.
Releasing gives the full procedure. Versioning tells you what a release can change. CHANGELOG.md lists each release.
- Your data. With the SQL runtime, actor state, mailboxes, reminders, and effects are rows in your application's database. No service of the maintainer holds your data.
- The code. The MIT License lets anyone use, change, fork, and publish the code.
- The checks. The tests and the CI configuration are in this repository. A fork can check its changes with the same suite.
The project wants more maintainers. Experience with TypeScript and Node.js, with locks and transactions in PostgreSQL or MySQL, or with Rails helps.
- Read CONTRIBUTING.md.
- Send a small pull request: a fix, a test, or a correction to a guide.
- After some of your pull requests are merged, open an issue to ask to become a maintainer.
To report a vulnerability, use the private process in SECURITY.md.