fix: add examples to major, minor and patch changes#44
fix: add examples to major, minor and patch changes#44arielleleon wants to merge 5 commits intomainfrom
Conversation
seanmcculloch
left a comment
There was a problem hiding this comment.
Minor version changes could be specifically strictly addition-only changes in the results (including dependency/capsule changes). For example adding a new QC metric to the quality_control.json along with an image, where everything else is left unchanged
| - Update to `aind-data-schema` that renames or restructures the metadata. | ||
| - Any default parameter changes. | ||
| - Changes to the output file structure. | ||
|
|
There was a problem hiding this comment.
add "any code update that changes output file content, even if that is fixing previously incorrect behavior"
|
|
||
| - Patch version changes indicate backwards compatible bug fixes. | ||
|
|
||
| - Critical bug fixes that do not alter the data structure. |
There was a problem hiding this comment.
I'd say "do not alter output contents". Content vs structure is a big question here - I'd say writing to NWB 2.1 instead of 2.0 (changing structure in a non-breaking way) might make the most sense as a minor version (essentially bumping a dependency as in Sean's comment. but any change of content should be a major version (under strict semantic versioning anyway.
In my view this is perhaps a reason not to use strict semantic versioning, though I'm a bit undecided here.
There was a problem hiding this comment.
also clearly an actual patch: bug fix that simply enables a job that was previously failing to generate results (since this isn't changing contents)
|
As I said in one of the comments, I kind of think that strict semantic versioning might not satisfy our needs here (see for instance numpy/numpy#10156). And even if it does, we definitely need it to be determined by more detail than is captured in conventional commits. build: Changes to build system or external dependencies (larger than a dependency bugfix patch) - minor feat/refactor[breaking]: if one of the above fundamentally changes the processing approach or output structure to the extent that results before vs after are not directly comparable - major perf: A code change that improves performance with output unchanged - minor |
|
I like Tom's suggestions. If there's no disagreement, let's add them in the policy under separate categories for major/minor/version |
|
@tmchartrand - thanks for the feedback. Can you take a look at the latest updates? |
|
This looks good, except I realized I was thinking of "patch" as the least-change option, but some of those categories should actually just lead to no update - I'll clarify soon! |
No description provided.