-
Notifications
You must be signed in to change notification settings - Fork 30
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
Versioning TaxData #338
Comments
Love the push to get TaxData versioned. I just reread the semver guidelines. I wonder if TaxData versioning might fit more easily once we start thinking of it as an API to generate datasets rather than as collection of datasets or as a routine to generate specific datasets. If we think of TaxData as an API to generate datasets, then everything follows from semver: A major release is anything that breaks backwards compatibility, i.e., takes away from or redefines the API. With this thinking, I'd update @andersonfrailey's table like this: Major Release
Minor Release
"Patch" Release
If we were to adopt this API centric view for TaxData, the production datasets themselves still need to be versioned, but we already have a system of versioning puf.csv and cps.csv by date. That system of versioning could certainly be updated, but --if we adopt the API centric view for TaxData -- any such updates could be seen as a mostly separate issue from versioning TaxData. |
Thanks for your comments, @MattHJensen. I like your ideas for an API centric view of TaxData. With those in mind, I still think our first release should happen once we've updated to the latest CBO projections. Then we can start doing some of the refactoring discussed in #336 to make a more formal and flexible API. |
This make sense and sounds great. If we wait until after the public API is established before incrementing to 1.0.0., then we can use 0.y.z during the period of establishing the public API and not need to worry about distinguishing between between major and minor releases. Anything that is a bugfix would increment Is this in line with your thinking @andersonfrailey? If so, then as far as PSL inclusion goes, I think TaxData can just say it is using semver. |
@MattHJensen, this all sounds good to me. I'm working on a rough sketch of what the public API would look like based on the Tax-Data Generator doc you shared in #336 and some of my own ideas. I'll open an issue laying out some ideas sometime this week before I start working on it. |
One of the requirements for PSL acceptance is to adopt a versioning system. Additionally, if we do end up making a standalone taxdata package/CS app we'll need to specify versions as well. Semantic versioning is probably the default choice, but I don't think it's obvious what would fall into each release category given the nature of taxdata. I've listed my ideas for how we would categorize releases, would be great to get other's input as well.
Major Release
Minor Release
If we were in a situation where we adopted new imputation methods to add new variables to the files would this count as a major or minor change?
"Patch" Release
Alternatively, we could adopt an alternative versioning system such as calendar versioning, though I'm not sure how that would work with conda.
No matter the system we choose, I think our first "release" should come after PR #332 is merged and before we start any major refactoring.
@MattHJensen @MaxGhenis @Peter-Metz @hdoupe @chusloj
The text was updated successfully, but these errors were encountered: