Compile the scim crate in release, and check that profile in CI #26

Merged
jcoffey-dev merged 1 commits from fix/scim-recursion-limit into main 2026-09-23 04:23:09 +00:00
Owner

v2026.9.24 was tagged on a commit CI had passed whose release build could not compile crates/scim: "queries overflow the depth limit", computing the layout of the writable_domain async fn body.

The crate is ours and the failure is profile-dependent, so CI (dev profile) was green on a commit that could not be released. Adds the recursion_limit rustc itself suggests, proved by a local release build, and makes CI build the release profile on pushes to main.

v2026.9.24 was tagged on a commit CI had passed whose release build could not compile crates/scim: "queries overflow the depth limit", computing the layout of the writable_domain async fn body. The crate is ours and the failure is profile-dependent, so CI (dev profile) was green on a commit that could not be released. Adds the recursion_limit rustc itself suggests, proved by a local release build, and makes CI build the release profile on pushes to main.
jcoffey-dev added 1 commit 2026-09-23 04:14:47 +00:00
Compile the scim crate in release, and check that profile in CI
ci / name-check (pull_request) Successful in 3m31s
ci / build (pull_request) Successful in 7m28s
3df042e7d4
v2026.9.24 was tagged on a commit CI had passed, and its release build could
not compile crates/scim at all:

  error: queries overflow the depth limit!
    = note: query depth increased by 130 when computing layout of
      {async fn body of context::<impl ...>::writable_domain()}

The crate is ours, and the failure is profile-dependent: the release profile
computes those async fn layouts in one go and goes past rustc's default query
depth, while the dev profile never gets that far. CI builds dev, so CI was
green on a commit that could not be released. The tag produced no image and
no release, which is the one merciful part.

Two changes:

- #![recursion_limit = "256"] on the crate, which is what rustc itself
  suggests, with a note saying why it only shows up in release. Proved by
  building -p scim in release locally: it now finishes.

- CI builds the release profile too, on pushes to main. Pull requests stay
  on dev, where the wait is worth less. A few minutes per merge is cheaper
  than learning this from a tag, which throws away a multi-architecture
  build and leaves a version half-cut.
jcoffey-dev merged commit 0d8caaa514 into main 2026-09-23 04:23:09 +00:00
jcoffey-dev deleted branch fix/scim-recursion-limit 2026-09-23 04:23:11 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: inbuxa/inbuxa-server#26