Open JoshData opened 8 years ago
Great suggestions! We are planning to implement both a CHANGLOG.md and a <version>
element in an upcoming release.
Could we re-open this? A change log was just one part of my request.
So, for an example of why versioning would be helpful: Right now ~500 files are published according to a previous schema (see #17). Because of a lag in getting those files regenerated, the data files posted aren't all generated in a consistent format. I don't want to have to guess which schema is in use for which file.
Tagging #25 here as an example of why we need to talk more about this. The changelog was posted only after files with the new format were published.
A new top-level element <version>
is now available in day-forward bill status files. Current value for this field is 1.0.0. Here are two examples https://www.gpo.gov/fdsys/bulkdata/BILLSTATUS/115/sres/BILLSTATUS-115sres62.xml and https://www.gpo.gov/fdsys/bulkdata/BILLSTATUS/115/hr/BILLSTATUS-115hr2100.xml. Version number is provided to GPO by the Library of Congresss, and it is passed through to files on the bulk data repository. Plan is to increment value when data format changes. Element will be available in all bill status bulk data files after reprocessing. Check it out and let us know what you think. We will also be updating documentation including Change Log and User Guide.
@JoshData @llaplant Do we have xsd defined for the BillStatus XMLs?
A few related questions:
CHANGELOG.md
file at the root of this repo would be a great place to list changes to the data format. Here's an example of a CHANGELOG from one of my projects. Now that the documentation is in Markdown we could just look at the diffs, but a CHANGELOG would be clearer and more explicit.Why to do versioning:
How to do versioning:
A date would work well here as a version number. e.g. The
2016-04-27
version would represent the bill status data format as it was on April 27, 2016. The date would be incremented only when the data format actually changes. This gets around deep questions of whether a change should increment a major version number, minor version number, etc etc.A simple integer (version
201
) would also work, as would semantic versioning (1.2.3
).