-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
- Split this repo into two crates to reduce dependency surface and speed builds:
- sml_core:
SML,SML.DOM,SML.DOM.Parser,SML.DOM.Builder,SML.DOM.Writer,SML.UTF8,SML.Entities,SML.Memory_Model. - sml_schema:
SML.Schemaonly; depends onsml_core.
- sml_core:
Motivation
- Consumers that only need parsing/DOM should not pull schema.
- Faster proofs/builds for core‑only changes; clearer ownership and release cadence.
Out of Scope (for this issue)
- Public API changes beyond moving files.
- New features or behavior changes.
Proposed Plan (high‑level)
- Create new repo/crate: sml_core (this repo renamed or copied), remove
sml-schema*.ad[sb]and schema tests. - Create new repo/crate: sml_schema, add schema sources and tests; set
depends = ["sml_core ^0.1"]inalire.toml. - Update examples to depend on
sml_schema(which pullssml_core). - CI: add
alr testin each crate; verify cross‑build on macOS/Linux.
Acceptance Criteria
alr buildandalr testpass in both crates.sml_coreexports the same Library_Interface minus schema;sml_schemaexports onlySML.Schema.- No cyclic dependencies; compile without warnings elevated to errors in tests.
Risks / Mitigations
- Version skew: start with lockstep minor versions; add CI matrix building
sml_schemaagainst latestsml_core. - API boundaries: keep package specs unchanged; only relocate files.
Notes
- Alternative is a single‑crate conditional build (GPR external
SML_WITH_SCHEMA), but separate crates provide cleaner dependency graphs.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request