Skip to content

build(deps): bump simple-home-dir from 0.4.7 to 0.5.0#2565

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/cargo/simple-home-dir-0.5.0
Closed

build(deps): bump simple-home-dir from 0.4.7 to 0.5.0#2565
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/cargo/simple-home-dir-0.5.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Feb 27, 2025

Bumps simple-home-dir from 0.4.7 to 0.5.0.

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [simple-home-dir](https://github.com/splurf/simple-home-dir) from 0.4.7 to 0.5.0.
- [Commits](https://github.com/splurf/simple-home-dir/commits)

---
updated-dependencies:
- dependency-name: simple-home-dir
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Feb 27, 2025
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github Feb 27, 2025

Looks like simple-home-dir is no longer a dependency, so this is no longer needed.

@dependabot dependabot Bot closed this Feb 27, 2025
@dependabot dependabot Bot deleted the dependabot/cargo/simple-home-dir-0.5.0 branch February 27, 2025 02:19
jqnatividad added a commit that referenced this pull request May 28, 2026
…oborev #2565)

Roborev #2565 (Medium): the local-file `contentUrl` fallback used
`res.name` before `source_label | basename`, but `context::build`
defaults `res.name` from `Path::file_stem()` (no extension), so
`in.csv` projected `"contentUrl": "in"` instead of `"in.csv"`. A
user-supplied `res.name` via `--initial-context` is also typically a
human label, not a usable content URL.

Removed `res.name` from the fallback chain; `source_label | basename`
preserves the extension and works for both default and seeded cases.
Verified: `in.csv` now projects `"contentUrl": "in.csv"`, and
`mlcroissant validate` still accepts the output.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jqnatividad added a commit that referenced this pull request May 28, 2026
* feat(profile): upgrade croissant profile to Croissant 1.1

The bundled `croissant` profile now emits canonical Croissant 1.1
JSON-LD (https://github.com/mlcommons/croissant/blob/main/docs/croissant-spec-1.1.md)
instead of 1.0.

Spec deltas applied to resources/profiles/croissant.yaml:

* conformsTo IRI bumped from `.../croissant/1.0` → `.../croissant/1.1`
* @context expanded to the canonical 1.1 prefix table (adds `sc:`,
  `rai:`, and the cr: shortcut terms `recordSet`, `field`,
  `fileObject`, `source`, `extract`, `column`, `dataType`, `citeAs`,
  `data`, `isLiveDataset`, `key`, `references`, `regex`, `subField`,
  `transform`, `fileSet`, `includes`)
* Distribution `@type` switched from `sc:FileObject` to `cr:FileObject`
  (Croissant 1.1 defines its own FileObject class)
* FileObject and RecordSet now carry stable `@id` slugs (`data.csv` and
  `main-table`) so cr:Field.source can reference the FileObject by IRI
* File hash switched from the non-canonical
  `cr:fileFingerprint` + `cr:Checksum` nested shape to the canonical
  direct `sha256` property mlcroissant validates against (uses
  `sha256_of`; BLAKE3 is faster but not in the Croissant vocabulary)
* cr:Field entries now carry the canonical
  `source.{fileObject:{@id}, extract:{column}}` block. The existing
  `build_croissant_fields` helper only emits a 1.0-style flat field
  list, so the recordSet template was switched to an inline Jinja
  loop over `stats | items` that emits the source block per column.
  `qsv:cardinality` / `qsv:nullcount` diagnostics preserved.
* New 1.1-first-class `citeAs` field, populated from `pkg.citation`
  via a new `/package/citation → /projection/citeAs` field mapping
* Catalog envelope `conforms_to` bumped to 1.1

Test updates:

* `tests/test_profile.rs::croissant_distribution_uses_file_object_type`
  now asserts `cr:FileObject` (was `sc:FileObject`)
* `src/cmd/profile/profile_spec.rs::embedded_croissant_parses_and_dry_compiles`
  bumps `field_mappings.len()` 16 → 17 for the new `citation` mapping

Verified end-to-end on `nyc-311-subset.csv`: emitted JSON-LD has the
correct conformsTo, full canonical @context, `cr:FileObject` with
direct `sha256`, and per-column `cr:Field` entries whose `source`
blocks point back to `@id: data.csv`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(CHANGELOG): note Croissant profile 1.0 → 1.1 upgrade

Adds a Changed entry under [Unreleased] documenting the spec-version
bump, the canonical 1.1 @context / @type / @id changes, the new
citeAs field, and the one user-visible behavioral delta (file-hash
slot switched from BLAKE3-via-cr:fileFingerprint to canonical
direct sha256). References PR #3916.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(profile): make croissant 1.1 projection pass mlcroissant validate

Two fixes surfaced by running `mlcroissant validate --jsonld` against
the rendered projection block:

1. `contentUrl` is mandatory on `cr:FileObject` per the 1.1 spec, but
   the previous template gated it behind `only_if_absolute_iri`, so
   local-file inputs (with no `res.url`) emitted no contentUrl at all
   — failing mlcroissant's mandatory-property check. The canonical
   1.1 example uses a relative path (`"contentUrl": "data/data.csv"`),
   so a bare basename is spec-conformant. Template now falls back to
   `res.name | source_label | basename` when no `res.url` is set.

2. mlcroissant's canonical @context includes a longer cr: shortcut
   term table than what was emitted. mlcroissant logged a "JSON-LD
   @context is not standard" WARNING listing the missing keys.
   Added: `equivalentProperty`, `examples`, `fileProperty`, `format`,
   `jsonPath`, `md5`, `parentField`, `path`, `repeated`, `replace`,
   `samplingRate`, `separator`. Profile @context now matches the
   canonical 1.1 context one-for-one; the warning is gone.

Verified end-to-end with `pip install mlcroissant` + a populated
`--initial-context`: `qsv profile --profile croissant --validate`
produces `projection_warnings: []` and a direct
`mlcroissant validate --jsonld projection.jsonld` reports "Done."
with zero errors and zero warnings.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(profile): keep file extension in croissant contentUrl fallback (roborev #2565)

Roborev #2565 (Medium): the local-file `contentUrl` fallback used
`res.name` before `source_label | basename`, but `context::build`
defaults `res.name` from `Path::file_stem()` (no extension), so
`in.csv` projected `"contentUrl": "in"` instead of `"in.csv"`. A
user-supplied `res.name` via `--initial-context` is also typically a
human label, not a usable content URL.

Removed `res.name` from the fallback chain; `source_label | basename`
preserves the extension and works for both default and seeded cases.
Verified: `in.csv` now projects `"contentUrl": "in.csv"`, and
`mlcroissant validate` still accepts the output.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* address PR #3916 review: dedupe datatype map, add regression tests, suppress DevSkim md5 context-term hit

Copilot review #3315150422 (Medium): the per-column qsv stats type →
Croissant dataType mapping was inlined inside the recordSet template
while `vocabularies.croissant_datatype` already defined the same
table. Replaced the inline `({...})[qsv_type] | default("sc:Text")`
with `lookup("croissant_datatype", qsv_type) | default("sc:Text")`
so the mapping lives in exactly one place. Verified the rendered
dataType values are identical (sc:Text / sc:DateTime / sc:Integer /
...) and mlcroissant still validates clean.

Copilot review #3315150455 (Medium): added
`croissant_distribution_emits_canonical_sha256_not_legacy_fingerprint`
asserting (a) `distribution[0].sha256` is a 64-char lowercase-hex
SHA-256 digest, and (b) the pre-1.1 `cr:fileFingerprint` /
`cr:Checksum` shape never appears anywhere in the projection. Prevents
silent regression back to the 1.0 fingerprint layout.

Copilot review #3315150471 (Medium): added
`croissant_recordset_fields_wire_source_to_file_object` asserting
every emitted cr:Field carries a `source.fileObject.@id` pointing at
the FileObject's `@id` and a `source.extract.column` matching the
field's `name`. That's the canonical 1.1 wiring between schema
metadata and actual bytes; without this guard, the per-Field template
could silently drop the source block while other tests still pass on
field count / type / dataType alone.

github-advanced-security[bot] (DevSkim DS126858, 2 hits): suppressed
on the `md5: "cr:md5"` line — that's a JSON-LD @context shortcut term
declaring the bare `md5` key resolves to the `cr:md5` IRI, NOT actual
MD5 hash usage. qsv emits SHA-256 as the canonical Croissant 1.1
fingerprint; MD5 is never computed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: rust fmt

* test(profile): enforce lowercase hex in croissant sha256 regression check (roborev #2568)

Roborev #2568 (Low): the SHA-256 regression test claimed "lowercase
hex" in its failure message but used `is_ascii_hexdigit()`, which
also accepts uppercase A-F — so a regression to uppercase digests
would pass silently. Tightened to `c.is_ascii_digit() || ('a'..='f').
contains(&c)` so the check now matches the documented contract.
`sha256_of` already emits lowercase hex, so the assertion still
passes against current output.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants