Roadmap¶
v0.1 — done¶
- The Pcore type calculus as Go types (scalar, collection, abstract, plus
Timestamp/Timespan/Binary). Parse(string) (Type, error)with a canonical, round-trippableString().- The value model, including a redacting
Sensitive. IsInstance,IsAssignable,Infer,Generalize,CommonType.- Rich-data
ToData/FromData. - 100% coverage,
gofmt+go vetclean, CI green on amd64, arm64, riscv64, loong64, ppc64le and s390x.
v0.2 — done¶
- Type aliases — named, referenceable type definitions, including forward
and recursive references, via a
Loadertype environment. TypeSet— grouped, namespaced type definitions with references.Timestamp/Timespanrange parameters (Timestamp[from, to]).SemVer/SemVerRange,Init,Object,RichData,Runtime,URI,Iterable/Iterator,ErrorandCallable.
Later¶
- Pcore-exact
Timespantextual form (D-HH:MM:SS.fff). - Tighter
CommonTypefor strings (length-range merging).
Consumers¶
go-pcore is the foundational type layer for go-puppet (the Puppet DSL
evaluator) and for go-ruby-puppet, which marshals rbgo.Value ↔ pcore.Value
across the rich-data protocol.