-
Notifications
You must be signed in to change notification settings - Fork 96
Open Source Code: 100% Code Release - By Default #259
Description
The 20% OSS release of code makes no sense from any technical or administrative point of view. This creates both unnecessary administrative burden and confusion, an is of little technical value:
-
Unnecessary administrative burden and confusion: It will take more effort for agencies to determine which 20% of code to release, rather than just releasing ALL of it. Who it to determine which 20% gets released? How is this to be determined? Why 20%? Why not some other %? Is this 20% a cumulative statistic over time, so that agencies must publish 40% the second year, and 60% by the third years? This raises too many questions, none of them of which are useful expenditure of agency resources. The number should be simple, clear, and enforceable: 100% of all taxpayer funded code, by default. [with exceptions, of course].
-
Technically of little value: By definition, software will be broken and nonfunctional if it is not released as a complete functional unit. In other words, even if 99% of the code of any given software or module is released, it is still 'broken' and nonfunctional, rendering this of zero value to any other federal agency for re-use. Any source code needs to be released in FULLY FUNCTIONAL AND TESTABLE UNITS of code. That means, again, 100%.
THEREFORE, the wording of the OSS release of code should read as follows:
"All (i.e. 100%) of source code of federally-funded software must be released by default in an open source, publically accessible, version-controlled code repository, such that it remains available for download and use by all other federal agencies without restriction, with no redactions or omissions, in FULLY FUNCTIONAL FORM, unless there is an allowable exception for segments of the code.
If some sections of the code must be redacted for allowable reasons (cryptographic code, security code, IP regulations, or embedded data and metadata, such as personally identifiable information, URLS, network addresses, or other agency confidential data, etc.), only the specific segments of code and data may be removed. ALL REDACTED CODE AND DATA MUST BE IDENTIFIED AND DOCUMENTED. The documentation of what was redacted (with specific reference to the module and lines of code) must be included with the code, such that a third party could restore the functionality of the code with their own agency-specific data, metadata, or security code".