Skip to content

Commit ee08c89

Browse files
authored
Merge pull request #22 from cardmagic/agent/prepare-0-9-0
chore: prepare 0.9.0 release
2 parents 9b3dffb + 8e21bf3 commit ee08c89

4 files changed

Lines changed: 95 additions & 4 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
## Unreleased
3+
## 0.9.0 - 2026-08-10
44

55
- Add a browser test suite running the refresh modules against real Chromium and
66
a real Turbo build, covering `component_refresh.js`, which previously had no

‎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 (0.8.0)
4+
solid_objects (0.9.0)
55
actioncable (>= 8.0)
66
actionpack (>= 8.0)
77
actionview (>= 8.0)
@@ -380,7 +380,7 @@ CHECKSUMS
380380
rubocop-rails-omakase (1.1.0) sha256=2af73ac8ee5852de2919abbd2618af9c15c19b512c4cfc1f9a5d3b6ef009109d
381381
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
382382
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
383-
solid_objects (0.8.0)
383+
solid_objects (0.9.0)
384384
sqlite3 (2.9.5-aarch64-linux-gnu) sha256=78075b6337d3d182c6d2b4691049ed45cd220826160c9ea18946bf6a1de200dc
385385
sqlite3 (2.9.5-aarch64-linux-musl) sha256=18c801185deb4adc01ddb281e8f672a39e3d1729979ca91e39439cd3eac0402d
386386
sqlite3 (2.9.5-arm-linux-gnu) sha256=1bdfca0c7d63998c60b0f4a8e3c8df2d33800ccc4abd2d612eddbbbc92a4c48b

‎docs/local-testing.md‎

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Local testing
2+
3+
The default suite runs against SQLite and needs nothing extra:
4+
5+
```bash
6+
bundle exec rake
7+
```
8+
9+
Everything below is optional. Each adapter and each optional service skips its
10+
tests when the service is absent, so a missing container degrades coverage
11+
rather than breaking the run. That is convenient, and it is also a trap: a
12+
skipped test looks identical to a passing one in the summary line. Check the
13+
skip count when a change touches an adapter.
14+
15+
## PostgreSQL
16+
17+
```bash
18+
brew services start postgresql@17
19+
createuser -h 127.0.0.1 -s solid_objects
20+
psql -h 127.0.0.1 -d postgres -c "ALTER USER solid_objects WITH PASSWORD 'solid_objects';"
21+
createdb -h 127.0.0.1 -O solid_objects solid_objects_test
22+
23+
SOLID_OBJECTS_DATABASE_URL=postgresql://solid_objects:solid_objects@127.0.0.1:5432/solid_objects_test \
24+
bundle exec rake test
25+
```
26+
27+
Running this locally is worth the setup: it is what caught the PostgreSQL
28+
version comparison reading a packed integer, where `170010` compared greater
29+
than any minimum and made the check useless on the adapter it mattered most for.
30+
31+
## MySQL and Redis in Docker
32+
33+
These use non-default ports so they cannot collide with a MySQL or Redis that
34+
another project is already running:
35+
36+
```bash
37+
docker run -d --name so-mysql -p 3307:3306 \
38+
-e MYSQL_ROOT_PASSWORD=solid_objects \
39+
-e MYSQL_DATABASE=solid_objects_test \
40+
-e MYSQL_USER=solid_objects \
41+
-e MYSQL_PASSWORD=solid_objects \
42+
mysql:8
43+
44+
docker run -d --name so-redis -p 6380:6379 redis:7-alpine
45+
```
46+
47+
```bash
48+
SOLID_OBJECTS_DATABASE_URL=mysql2://solid_objects:solid_objects@127.0.0.1:3307/solid_objects_test \
49+
bundle exec rake test
50+
51+
SOLID_OBJECTS_REDIS_URL=redis://127.0.0.1:6380/15 \
52+
bundle exec rake test TEST=test/integration/redis_wake_up_test.rb
53+
```
54+
55+
Stop them with `docker rm -f so-mysql so-redis`.
56+
57+
## Recreating a database between runs
58+
59+
The test helper migrates unconditionally, so a second run against a database
60+
that already has the tables fails with a duplicate-table error rather than a
61+
test failure. Recreate first:
62+
63+
```bash
64+
dropdb -h 127.0.0.1 solid_objects_test && createdb -h 127.0.0.1 -O solid_objects solid_objects_test
65+
66+
docker exec so-mysql mysql -u root -psolid_objects \
67+
-e "DROP DATABASE IF EXISTS solid_objects_test; CREATE DATABASE solid_objects_test;
68+
GRANT ALL ON solid_objects_test.* TO 'solid_objects'@'%';"
69+
```
70+
71+
## Rails and Ruby span
72+
73+
`RAILS_VERSION` pins the Rails line the gemspec advertises:
74+
75+
```bash
76+
RAILS_VERSION=8.0 bundle install
77+
RAILS_VERSION=8.0 bundle exec rake test
78+
```
79+
80+
## Browser modules
81+
82+
```bash
83+
npm install
84+
npm test # jsdom, fast
85+
npx playwright install chromium
86+
npm run test:browser # real Chromium and a real Turbo build
87+
```
88+
89+
The jsdom suite covers logic; the browser suite covers integration with Turbo.
90+
Both matter: every batching defect that reached production passed the jsdom
91+
suite alone.

‎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 = "0.8.0"
4+
VERSION = "0.9.0"
55
end

0 commit comments

Comments
 (0)