sam boyer

Results 134 issues of 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...

bug

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...

enhancement

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...

enhancement

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...

enhancement
invariants

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...

enhancement

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...

documentation

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)...

documentation
enhancement
good first issue
breaking change

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...

bug

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...

documentation
good first issue
help wanted