Comments (4)
this is a usability issues, not a stability issue
We need to deal with validation error first, and then with the messages for authors when we start making this used in Plugin generation
from thema.
#82 begins the use of github.com/cockroachdb/errors. However, there's a fair bit of planning and design on its own that needs to go into adopting the library - see this whole design doc that covers the behaviors.
i could be talked out of it, but i think for the role we would like to see Thema occupy - a highly portable utility that can tuck into individual programs or complex operational topologies - ensuring our errors have the properties outlined in that document's motivation section seems like the right move. i'm fine with a complex errors implementation inside thema, so long as it's simple to use on the outside.
from thema.
I agree there is a fair bit of planning and design to do, and this is one of the things I talked abut with all the designers we interviewed. Error handling is both a technical and a usability issue, and we need to start from what we want to expose to final users and walk back to what we can achieve based on constraints in the implementation (there might be none, but there might be some big ones)
Motivation behind the errors is super important, and for me in the end it boils down to: what do we want users to do when a specific error (or class of errors) comes out?
from thema.
Closing in favor of #164
from thema.
Related Issues (20)
- Add a command to clean all txtar output HOT 4
- disallow if statements in schema definitions
- disallow comprehensions in schema definitions
- Emit embedded or inlined structs in Go to correspond with struct unifications in schemas HOT 2
- Bring validation error output in sync with lineage flattening
- feature request: add error return value to `Translate()` HOT 4
- feature request: improve error output with invalid `lens` configuration
- bug: inconsistently-shaped `instances` from `Translate` and `Validate` HOT 1
- feature request: add error return to `ValidateAny()` HOT 1
- Inconsistent lineage errors between thema cli and library HOT 1
- feature request: make the thema CLI go gettable
- feature request: thema version flag/subcommand/thingy
- Create standard error models for all thema operations HOT 2
- Generate something nicer than interfaces when we use disjunctions in Go models.
- Constraints break backward-compatibility check
- Translate() may return an invalid instance
- asdada
- Evaluate scalability of main Thema operations
- Set up Thema releases
- Enforce ordering of items in `schemas` and `lenses` during `BindLineage` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from thema.