Skip to content

Support dependentSchemas and dependentRequired on codegen#780

Merged
jviotti merged 1 commit into
mainfrom
codegen-dependent
Jun 15, 2026
Merged

Support dependentSchemas and dependentRequired on codegen#780
jviotti merged 1 commit into
mainfrom
codegen-dependent

Conversation

@jviotti

@jviotti jviotti commented Jun 15, 2026

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Review in cubic

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 72 files

Re-trigger cubic

@augmentcode

augmentcode Bot commented Jun 15, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR updates vendored dependencies to extend JSON Schema codegen support for the 2020-12 keywords dependentSchemas and dependentRequired.

Changes:

  • Update Blaze canonicalizer rules to rewrite dependentSchemas / dependentRequired into supported applicator forms.
  • Mark both keywords as supported in docs/codegen.markdown.
  • Bump vendored core and blaze revisions in DEPENDENCIES.
  • Expand Core Crypto with Base64/Base64url, SHA-384/SHA-512, cross-platform randomness, and RSA/ECDSA signature verification backends.
  • Add a Core JOSE module for parsing JWK/JWKS and mapping supported JWS algorithms.
  • Add an HTTP helper for parsing Bearer credentials and time helpers for Unix timestamps; normalize CRLF handling when iterating stream lines.

Technical notes: When using system OpenSSL for Core Crypto, the build now requires OpenSSL 3.0 APIs (used for key construction/verification).

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 3 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

target_link_libraries(sourcemeta_core_jose
PUBLIC sourcemeta::core::json)
target_link_libraries(sourcemeta_core_jose
PRIVATE sourcemeta::core::crypto)

@augmentcode augmentcode Bot Jun 15, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vendor/core/src/core/jose/CMakeLists.txt:8sourcemeta_core_jose’s sources call into sourcemeta::core::crypto (e.g., JWK base64url decoding), so keeping that dependency PRIVATE may cause undefined symbols for consumers when building/linking static libs that only link sourcemeta::core::jose.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

crypto_sha2_64.h crypto_random.h crypto_helpers.h)

target_link_libraries(sourcemeta_core_crypto
PRIVATE sourcemeta::core::text sourcemeta::core::numeric)

@augmentcode augmentcode Bot Jun 15, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vendor/core/src/core/crypto/CMakeLists.txt:8-9sourcemeta_core_crypto now uses sourcemeta::core::text/numeric symbols (e.g., bytes_to_hex, is_hex_digit), but these are linked PRIVATE; in static builds this can fail to link for downstreams that only link sourcemeta::core::crypto.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Comment thread vendor/core/src/core/http/parse_bearer.cc
@jviotti jviotti merged commit fc125d6 into main Jun 15, 2026
15 checks passed
@jviotti jviotti deleted the codegen-dependent branch June 15, 2026 20:13
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jun 18, 2026
⚠️ **CAUTION: this is a major update, indicating a breaking change!** ⚠️

This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [sourcemeta/jsonschema](https://github.com/sourcemeta/jsonschema) | major | `v15.11.0` → `v16.0.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>sourcemeta/jsonschema (sourcemeta/jsonschema)</summary>

### [`v16.0.0`](https://github.com/sourcemeta/jsonschema/releases/tag/v16.0.0)

[Compare Source](sourcemeta/jsonschema@v15.11.0...v16.0.0)

#### What's Changed

- Support bundled schemas with custom meta-schemas by [@&#8203;jviotti](https://github.com/jviotti) in [#&#8203;779](sourcemeta/jsonschema#779)
- Support `dependentSchemas` and `dependentRequired` on `codegen` by [@&#8203;jviotti](https://github.com/jviotti) in [#&#8203;780](sourcemeta/jsonschema#780)

#### Breaking Changes

- Use system `libcurl` through `dlopen` on Linux/BSD by [@&#8203;jviotti](https://github.com/jviotti) in [#&#8203;781](sourcemeta/jsonschema#781)

Before this release, the Linux pre-compiled binaries were built against a vendored static copy of cURL. While that worked in most cases, it relied on a very specific CA certificate store. Making it problematic if you need more runtime control over that in your actual target installation.

So instead of linking against a specific version of cURL in the system (and therefore probably breaking some distros no matter what), we take a more dynamic approach: we can at runtime try to find an appropriate cURL library we can use (probing lots of popular paths across distros), and dynamically load it.

Most Linux systems have cURL installed out of the box, otherwise you get a friendly runtime error instructing you on how to fix it or point to a custom one of your choice.

**Full Changelog**: <sourcemeta/jsonschema@v15.11.0...v16.0.0>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMjcuMSIsInVwZGF0ZWRJblZlciI6IjQzLjIyNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiLCJhdXRvbWF0aW9uOmJvdC1hdXRob3JlZCIsImRlcGVuZGVuY3ktdHlwZTo6bWFqb3IiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant