-
Notifications
You must be signed in to change notification settings - Fork 107
Updating the Code.gov Metadata Schema [Due by 7/14] #250
Comments
A few issues:
Other thoughts, that may not be in issues yet:
|
One suggestion I have for the next schema would be to include a field with the date the code repository was created. Adding this date would help Agencies with the compliance pilot program since the policy is effective for custom code developed August 8, 2017 and forward. |
Add |
Add |
@apyle - I wonder if "number of repositories open sources" would be the better metric for calculating that 20% number. |
@IanLee1521 - iif an agency chooses to measure code by the number of projects then your suggestion is appropriate. But if an agency chooses one of the other suggested measuring options such as lines of code, number of self-contained modules, cost, etc. then we need a way to report that measure. |
Hi everyone, In order to move this process along so we can start implementing the changes, we'd like to get everyone's comments in by this Friday, June 14th. If you haven't already provided comments and recommendations, please do so this week. Thanks! |
Reserve name spaces for agencies. Within the agency object, reserve any name that starts with the agency code in upper case followed by an underscore for that agencies local use. For instance, a This provides a safe space for agencies to implement local customizations that won't interfere with other agencies' customizations. |
@apyle That suggests that there will be a definitive list of agency codes that users can consult. Does that exist anywhere? |
Nice! And since its in JSON, user friendly forms can be automatically derived, which makes adding new agencies simple. |
I have three suggestions for the schema: I'm still very confused by the From speaking with several people, I've heard many interpret this field as "can government reuse this software?". I don't think that's the correct interpretation, because it seems to me that it's possible the field is I would like to see that field documented better, and more guidance given as to how to set it. It might be worth considering deprecating it or replacing it with something more descriptive, like Another issue I'd like clarified is which projects are tracked. Not every line of code a developer writes is worth tracking. When does a project become large enough that it goes from "some small utils in my home directory" to a "project" status and should be tracked? Additionally, it's not clear how projects should be tracked which may have started within an Agency, but then transferred outside via something like a CRADA or some contribution to an open source community, like Apache. Clarity on tracking non-Agency published open source software which receives (or received) significant contribution from a Federal Agency would be very helpful, as well as clarity for those curated by another entity under a collaboration agreement. If all of this should be tracked, the schema should be updated to indicate curation by another, non-government entity. Perhaps Another suggestion I have for the schema... which I don't think will go over well, because it represents a larger conceptual change... is that the schema should stop tracking projects, and start tracking "releases". This is what open source projects do, and it's far more useful of metadata to track. Releases are static, and the facts about them are true at the time of their release. Details about a project can change between releases, and metadata about releases can easily reflect this. See all the "POM" files in search.maven.org for an example, or any of the DOAP files at apache.org. This requires introducing and defining the concept of "release" to the schema. Typically a "release" is a checkpoint in the code which represents a state which can be identified by a versioned name and a statement of quality or supportability that the developer wishes to communicate. In certain open source communities, such as the Apache Software Foundation, a release represents having a certain legal status as well. Of course, some projects are "continuous release" types, and that would have to be accounted for in the schema or the definition of "release" used by the schema if that were added. For these, a version could be imposed and incremented whenever any change in the metadata occurs. |
I probably have more thoughts than this, but wanted to be sure to get something in before the deadline.
Existing suggestions I agree with:
|
@sheepeeh The "designed for reuse" wording still leaves the question open as to whether the code was developed for multiple consumers (modular design, stable API, built as library), or whether the contract wording was designed to make the project freely reusable. Those aren't the same thing. |
@ctubbsii That's why the field definition should also be updated to reflect which case it's referring to. |
@sheepeeh Sorry, I should have been more clear. I agree with you on that. But, if the intent is to indicate something about the contract it was developed/acquired under, then my suggestion would be change the field so that it more explicitly declares which contract clause/type it is reusable under. That is, instead of a binary field, it should be an enum. Example: |
@ctubbsii Ah, ok. As for permission to re-use, I believe a project is reusable unless it has an
Whether it is Public Domain or something else would be recorded under |
@sheepeeh A software project may be listed in the inventory and not be exempted but still not available for governmentwide reuse. For instance, the program may not know if they have the rights to share the code and are working through the contracting issues. A code project can have |
Instead of declaring the mechanism under which a project is reusable, it could declare the mechanism under which it is not reusable, due to an exemption. As in (As for "Public Domain", my previous example might have been better if it instead said "government work", in conjunction with a license field that said "Public Domain".) |
I really like the idea of having something that captures DFARs clauses for code that was developed under contract. Maybe this could also capture if the code is exempt from copyright in the US due to being developed a US government civilian. It would need to be flexible enough to capture the case where a code base has both those present. |
Unless something like #238 is implemented, then I don't see the point of these fields as they are likely not going to be accurate unless the projects are inactive:
|
Before Code.gov launched in November 2016, we relied on this community of supporters to help shape the first version of our metadata schema. That schema is the foundation of Code.gov. The vibrant discussion that followed reflected the range of expertise we're lucky to have at our disposal. And now we'd like to tap into that again as we revisit the next version of the Code.gov Metadata Schema.
Over the next few weeks (an updated timeline will be provided), we want to gather comments about what we should include (or remove) in the next iteration of the schema.
Please feel free to tag or refer other related issues!
Looking forward to seeing where this discussion takes us.
The text was updated successfully, but these errors were encountered: