sam boyer
sam boyer
Even though branches and tags in svn are just convention, it seems like it'd still be useful to enumerate those tags/branches that follow the basic convention. As it stands, not...
Currently, running `thema` outside of either the thema repo itself, or outside of a `cue.mod` module context that does not have the `github.com/grafana/thema` codebase within its `cue.mod/pkg` dir, will result...
This introduces generics in the base thema package, allowing the pairing of a Go type with a `Schema` (`TypedSchema`) and its corresponding `Instance` (`TypedInstance`). Building on these generics, we replace...
For Thema's versioning rules to be meaningfully enforceable, we have to retain the basic rule that lineages are self-contained structures - no external references. However, it is clear that there...
In #45, we added a basic error reprocessing layer that leveraged the knowledge we have about the schemainstance relationship to make validation errors messages clearer and contextualized for Thema. Similar...
For anyone not terribly interested in learning about the details of CUE and just wanting Thema to be a schema framework (our core target use case), validation error output is...
It's essential that we communicate clearly about what the invariants of Thema are. They are the truly unique value proposition of the system, and they're referred to all over the...
As i was working on a larger design doc encompassing Thema, it occurred to me that a good way of describing [a main intended usage pattern for Thema's versioning system](https://github.com/grafana/thema/blob/main/docs/go-usage.md)...
In the formatters introduced in e.g. in #56 and #59, there are a number of calls to `cue.Value.Eval()`. IIRC, i used these originally as a quick hack to eliminate printed...
Thema's versioning system has two digits, e.g. `v0.0` - what people coming from semver would be naturally inclined to call a "major version" and a "minor version." i resisted this...