Skip to content

Commit 783b286

Browse files
authored
Merge pull request #96 from cardmagic/docs/maintenance-page
chore: prepare version 1.0.3
2 parents 5528659 + 80dae16 commit 783b286

11 files changed

Lines changed: 129 additions & 12 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
timeout-minutes: 15
6767
services:
6868
redis:
69-
image: public.ecr.aws/docker/library/redis:7
69+
image: mirror.gcr.io/library/redis:7
7070
ports:
7171
- 6379:6379
7272
options: >-
@@ -87,7 +87,7 @@ jobs:
8787
timeout-minutes: 15
8888
services:
8989
postgres:
90-
image: public.ecr.aws/docker/library/postgres:18
90+
image: mirror.gcr.io/library/postgres:18
9191
env:
9292
POSTGRES_USER: solid_objects
9393
POSTGRES_PASSWORD: solid_objects
@@ -121,7 +121,7 @@ jobs:
121121
client: [ mysql2, trilogy ]
122122
services:
123123
mysql:
124-
image: public.ecr.aws/docker/library/mysql:8.4
124+
image: mirror.gcr.io/library/mysql:8.4
125125
env:
126126
MYSQL_USER: solid_objects
127127
MYSQL_PASSWORD: solid_objects

‎CHANGELOG.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 1.0.3 - 2026-10-18
4+
5+
- Add `docs/maintenance.md`. It tells you who maintains the gem, how CI checks
6+
each change, how a release is published, what you keep if maintenance
7+
stops, and how to become a maintainer. The README and the comparison pages
8+
now link to this page. They and `docs/versioning.md` no longer state a count
9+
of maintainers. A new test fails when a page states one.
10+
311
## 1.0.2 - 2026-10-15
412

513
- Add two comparison pages in `docs/compare/`: Solid Queue

‎Gemfile.lock‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
solid_objects (1.0.2)
4+
solid_objects (1.0.3)
55
actioncable (>= 7.1)
66
actionpack (>= 7.1)
77
actionview (>= 7.1)
@@ -392,7 +392,7 @@ CHECKSUMS
392392
rubocop-rails-omakase (1.1.0) sha256=2af73ac8ee5852de2919abbd2618af9c15c19b512c4cfc1f9a5d3b6ef009109d
393393
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
394394
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
395-
solid_objects (1.0.2)
395+
solid_objects (1.0.3)
396396
sqlite3 (2.9.5-aarch64-linux-gnu) sha256=78075b6337d3d182c6d2b4691049ed45cd220826160c9ea18946bf6a1de200dc
397397
sqlite3 (2.9.5-aarch64-linux-musl) sha256=18c801185deb4adc01ddb281e8f672a39e3d1729979ca91e39439cd3eac0402d
398398
sqlite3 (2.9.5-arm-linux-gnu) sha256=1bdfca0c7d63998c60b0f4a8e3c8df2d33800ccc4abd2d612eddbbbc92a4c48b

‎README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ model and when to use it.
1313

1414
**Status.** Version 1.0: the public API follows semantic versioning and does
1515
not break before 2.0. [Versioning](docs/versioning.md) gives the limits of the
16-
promise. First public release: August 6, 2026. One maintainer.
16+
promise. First public release: August 6, 2026.
1717

1818
**Production use.** One first-party application with more than 100,000 users
1919
runs it in production. That is a count of users, not a measure of load. No
@@ -199,6 +199,7 @@ every claim in [`test/guides/`](test/guides/):
199199
- [Reminders](docs/reminders.md)
200200
- [Reactive ERB](docs/realtime.md)
201201
- [Detailed architecture](docs/architecture.md)
202+
- [Maintenance and continuity](docs/maintenance.md)
202203
- [Detailed documentation](docs/)
203204

204205
The dashboard, benchmarks, migration cookbook, schema, and exhaustive API

‎docs/compare/good-job.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ How it works:
210210

211211
- First public release: August 6, 2026.
212212
- Version 1.0.0: October 13, 2026. The public API follows [semantic versioning](../versioning.md).
213-
- One maintainer.
213+
- [Maintenance and continuity](../maintenance.md) tells you who maintains the project and how a release is made.
214214
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load. No production use by other people is known.
215215
- The [benchmarks](../benchmarks.md) are development measurements. Longer soak tests are open work.
216216

‎docs/compare/solid-queue.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ How it works:
205205

206206
- First public release: August 6, 2026.
207207
- Version 1.0.0: October 13, 2026. The public API follows [semantic versioning](../versioning.md).
208-
- One maintainer.
208+
- [Maintenance and continuity](../maintenance.md) tells you who maintains the project and how a release is made.
209209
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load. No production use by other people is known.
210210
- The [benchmarks](../benchmarks.md) are development measurements. Longer soak tests are open work.
211211

‎docs/comparisons.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,4 @@ The problem guides start from the same choices:
2323

2424
## Status
2525

26-
Solid Objects 1.0.0 shipped on October 13, 2026. The first public release was on August 6, 2026. It has one maintainer. One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load. No production use by other people is known. See [versioning](versioning.md).
26+
Solid Objects 1.0.0 shipped on October 13, 2026. The first public release was on August 6, 2026. One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load. No production use by other people is known. See [versioning](versioning.md) and [maintenance and continuity](maintenance.md).

‎docs/maintenance.md‎

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Maintenance and continuity
2+
3+
This page tells you who maintains Solid Objects, how a release is made, and
4+
what you keep if maintenance stops. It also tells you how to help maintain the
5+
project.
6+
7+
## Who maintains it
8+
9+
Lucas Carlson ([@cardmagic](https://github.com/cardmagic)) is the lead
10+
maintainer of the Ruby gem `solid_objects` and of the npm package
11+
[`solid-objects`](https://github.com/cardmagic/solid-objects-js). The two
12+
packages use the same model and the same correctness contract. A change to the
13+
model goes into both packages, and the
14+
[parity ledger](https://github.com/cardmagic/solid-objects-js/blob/main/docs/parity.md)
15+
records each difference between them.
16+
17+
The same maintainer sells [Solid Objects Pro](https://solidobjects.pro), a
18+
commercial package that batches operations at scale. Pro depends on this gem.
19+
This gem does not depend on Pro, and it needs no account, license key, or
20+
service from the maintainer.
21+
22+
## How a change is checked
23+
24+
CI runs on each push and each pull request:
25+
26+
- The full test suite on SQLite, on each pair of Ruby 3.3, 3.4, or 4.0 and
27+
Rails 7.1, 7.2, 8.0, or 8.1.
28+
- The full test suite on PostgreSQL and on MySQL, with both MySQL clients.
29+
- Standard, RuboCop, RBS, Steep, and Brakeman.
30+
31+
[Compatibility and maturity](virtual-actors.md#compatibility-and-maturity)
32+
lists the supported versions. The [correctness contract](correctness.md) lists
33+
the guarantees that the tests check.
34+
35+
## How a release is made
36+
37+
1. The maintainer pushes a version tag, for example `v1.0.3`.
38+
2. GitHub Actions runs all test jobs again on that tag.
39+
3. If all test jobs pass, GitHub Actions builds the gem and pushes it to
40+
RubyGems with trusted publishing. The repository keeps no RubyGems key.
41+
4. The same job makes a GitHub release and attaches the gem file.
42+
43+
[Versioning](versioning.md) tells you what a release can change.
44+
`CHANGELOG.md` lists each release.
45+
46+
## What you keep if maintenance stops
47+
48+
- **Your data.** Actor state, mailboxes, reminders, and effects are rows in
49+
your application's database. [Database schema](database-schema.md) describes
50+
each table. No service of the maintainer holds your data.
51+
- **The code.** The [MIT License](../MIT-LICENSE) lets anyone use, change,
52+
fork, and publish the code.
53+
- **The checks.** The tests and the CI configuration are in this repository. A
54+
fork can check its changes with the same suite.
55+
56+
## Help maintain Solid Objects
57+
58+
The project wants more maintainers. Experience with Rails, with locks and
59+
transactions in PostgreSQL or MySQL, or with TypeScript and Node.js helps.
60+
61+
1. Read [CONTRIBUTING.md](../CONTRIBUTING.md).
62+
2. Send a small pull request: a fix, a test, or a correction to a guide.
63+
3. After some of your pull requests are merged, open an
64+
[issue](https://github.com/cardmagic/solid-objects-ruby/issues) to ask to
65+
become a maintainer.

‎docs/versioning.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ lists the current minimum versions.
4141

4242
Version 1.0 is a promise about the API. It is not a claim of measured scale.
4343
The [benchmarks](benchmarks.md) are development measurements and do not
44-
guarantee capacity. Longer soak tests are open work. The project has one
45-
maintainer, and no production use by other people is known.
44+
guarantee capacity. Longer soak tests are open work. No production use by
45+
other people is known.
4646

4747
## Releases before 1.0
4848

‎lib/solid_objects/version.rb‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# rbs_inline: enabled
22

33
module SolidObjects
4-
VERSION = "1.0.2"
4+
VERSION = "1.0.3"
55
end

0 commit comments

Comments
 (0)