Open
0 of 1 issue completedDescription
As the Ion team and other users have used ion-schema-rust
since its initial release in 2022, we have learned more about what customers need from ion-schema-rust
and discovered bugs and other sharp edges.
In order to continue developing tools that depend on ion-schema-rust
we need to have a stable release of the library. (If we don't, then there will eventually end up being a critical mass of things depending on the current state of ion-schema-rust
and that will become the de facto stable release.)
Items that need to be addressed:
- Tech Debt—there are several correctness issues that need to be fixed
ViolationCode
should be marked as non-exhaustive #209- Cyclical "is-a" relationships between types causes stack overflow #205
- Use an enum instead of a boolean to indicate the closed-ness of a fields constraint in function parameters #224
- Add bag type for storing constraints and type arguments #199
- Make ISL model constructor method naming consistent #197
- Create single resuable method to resolve type references for
Constraint
implementations #44
- Correctness
- Architectural Challenges
- The use of
IonSchemaSystem
makes certain combinations of operations impossible. You cannot load a schema and all its dependencies and then try to manipulate or inspect those schemas. It's impossible to load schemas, add a new type and then use for validation. - The codebase exhibits tight coupling between validation and type resolution processes
- Schema manipulation capabilities are limited
- The violation reporting system lacks flexibility
- The maintenance of two parallel models introduces complexity, as changes often need to be implemented and synchronized across both representations.
- The use of
- API Limitations