-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Schema lifecycle #4
Comments
I guess that covers expansionary issues, but aesthetic ones, like "these two very similar things have vastly different structures for no reason"... I don't know, maybe those need to be posed as pull requests, too. (If you can't propose a clear refactor to solve the problem, it's not clear enough what the problem is.) |
So yeah, my thinking for the schema lifecycle is:
I'm not exactly sure how to pair this with the dataset and CI validation - changes to the draft need to kick off a new validation of the corresponding dataset branch. There's also the matter of making sure any dataset migration is up to date with the latest changes at the tip of master. |
Another thing: versions stick at "vx.x.0" while they're in drafts - any change to the content of any schema after release (of a typo or strictness-changing nature) increments the patch version of all schemas in that major-minor |
Okay, so as I was just describing in #7, I think what might make sense would be if the draft "next version" branch starts with an "Update SCHEMA_VERSION to draft/vX.X" commit, and then refactor commits get filed as Maybe it should be a different tag than And what about writing scripts to auto-migrate? Should those live somewhere (or just in commit messages)? |
I think the ultimate endpoint for pull requests, as I realized last time I got hyped up over this, is to just leave the validation as-is, as all it's good for is validating whether the tip commit is valid - there's no way to say "test that this is okay against a proposal, but not okay to merge into master". By forcing the validator to only recognize schema versions that have been pushed to master in the schemata, we force it to only pass tests that can and should be merged to master in the dataset. |
You know, that being said, in CircleCI 2.0 there could be two sets of tests, one being a validation that can run against foreign schemata / branches, and one that tests that the repo does not have any such artifacts, and master could check for both, and other branches wouldn't be subject to the checks (either they'd be disabled in the config.yml, or they'd be present, but just not a blocker for protected branches). |
Let's see, skipping branches works based on the name of the branch the commit is on, so if I had a rule like "skip the published-version test for branches called |
I just realized it'd be a lot easier to rebase against a rolling draft if it were just kept in a flat |
Okay, here's what I'm thinking:
|
Maybe better would be, for
|
I'm still not sure if I should be merging drafts in as merges (what my gut tells me) or as squashes. (See the cacophony that is opws/opws-schemata#17 and opws/opws-schemata#18.) |
You know what, I think I've got it, hang on. |
I think the correct solution is to author the "Graduate v(whatever)" commit as IDK, maybe graduations can't fit in the pull request system, and maybe that's fine - cutting a release like this should use long-standing issues tracking the release's progress (the way Bootstrap does it) anyway, which then get closed via "Closes #X". |
I just realized all of this should really live in opws-schemata's CONTRIBUTING.md, not opws-guidelines. |
D'oh, I forgot to update the Now that I realize that graduating a draft requires a change to the files in the tree, I'm back on board with the "do a pull request with a merge bubble" idea. |
OK, one change I'm making in the 0.3 draft is that I'm putting "DRAFT" in ALL CAPS, so as to signify two things:
Also, keeping one shared |
opws/opws-dataset#100 (comment) noted that there was a lot of clumsiness around the way domainprofiles issues talked about the schema, and suggested that this repository could have some body of text laying out a lifecycle that might make more sense.
I think that a prescriptive set of guidelines around a more flexible issue paradigm would be sensible, especially as opws/opws-dataset#147 entails migrating a bunch of the old repo's issues to the schema repo.
I'm thinking:
The text was updated successfully, but these errors were encountered: