Visitar URL original
source-code-policy/18f-source-code-policy.md at master · ErieMeyer/source-code-policy · GitHub
Skip to content

Latest commit

 

History

History
73 lines (37 loc) · 6.55 KB

18f-source-code-policy.md

File metadata and controls

73 lines (37 loc) · 6.55 KB

Use of open source software

"Free and Open Source Software" (FOSS) is software that allows its recipients to modify and redistribute the source code; as such, "open source" is a copyright and distribution framework and makes no implications regarding technical support or indemnification.

In almost all cases, FOSS meets the definition of "commercial computer software" and shall be given appropriate statutory preference in accordance with 41 USC 264B (reference (b)) (see also FAR 2.101(b), 12_1.html 12.000, 12.101 (reference (c))).

Executive agencies are required to conduct market research when preparing for the procurement of products or services by 41 USC Sec. 253a (reference (e)) (see also FAR 10.001. Market research for software should include FOSS.

Rationale

There are several positive aspects of FOSS that should compel 18F to seek out FOSS when conducting market research:

  1. Publicly available source code enables continuous and broad peer review that ensures rigorous security and reliability. Specifically, this process encourages the identification and elimination of defects that might otherwise go unrecognized by a more limited core development team.

  2. The unrestricted ability to modify software source code enables 18F to respond more rapidly to constantly changing missions and markets, and is critical to 18F’s ability to create new products and services to keep pace with industry.

  3. Using FOSS instead of proprietary software may reduce reliance on a particular software developer or vendor. FOSS can be operated and maintained by multiple vendors, thus reducing barriers to entry and exit.

  4. Open source licenses do not restrict who can use the software or the endeavors in which the software can be used. This allows 18F to endlessly reuse existing FOSS-based products to satisfy new needs quickly and secure substantial cost savings for our clients and the American people.

  5. Since the monetary cost of FOSS typically lies in support and maintenance as opposed to licensing, FOSS can provide a cost advantage in situations where many copies of the software may be required, and can mitigate risk of cost growth due to licensing in situations where the total number of users may not be known in advance.

  6. By sharing the responsibility for maintenance of FOSS with others, 18F can benefit by reducing the total cost of ownership for software, particularly compared with software for which 18F has sole responsibility for maintenance.

  7. FOSS is particularly suitable for rapid prototyping and experimentation, where the ability to "test drive" the software with minimal costs and administrative delays can be important.

Distribution of code

It is important to understand both the specifics of the open source license in question and how 18F intends to use and redistribute any modified FOSS. There is a misconception that the Government is always obligated to distribute the source code of any modified FOSS to the public, and therefore that FOSS should not be integrated or modified for use in sensitive systems. In contrast, many open source licenses permit the user to modify FOSS for internal use without being obligated to distribute source code to the public.

However, if the user chooses to distribute the modified FOSS outside the user's organization (e.g., a Government user distributes the code outside the Government), then some FOSS licenses (such as the GNU General Public License) do require distribution of the corresponding source code to the recipient of the software.

Licensing

Code written entirely by 18F staff, and by contractors who are developing software on behalf of 18F, is to be released as a public domain work.

Code previously released under an open source license and then modified by 18F or its contractors is considered a "joint work" (see 17 USC § 101); it is partially copyrighted, partially public domain, and as a whole is protected by the copyrights of the non-government authors and must be released according to the terms of the original open-source license.

All code as detailed above must be catalogued and shared with the general public via a highly visible, easily accessible online source code community that facilitates the code’s reuse.

Community involvement

18F staff and contractors are encouraged to be active contributors to FOSS projects that 18F or its clients utilize, even if they are not wholly maintained or operated by 18F.

18F encourages gratuitous contributions to its open-source projects, whether it be code, commentary, bug reports, feature requests, or overall strategic direction.

Because all of 18F’s work is to be released into the public domain, forks or clones of our code repositories are free to be re-distributed into more restrictive licenses, even those that are not considered to be open-source licenses.

The public can use our code as the basis of wholly proprietary and commercial systems. 18F would appreciate that users of our code disclose its lineage, but 18F maintains no legal right to require disclosure. Notifications that our work is being used in a new system are always greatly appreciated.

Exceptions

Code shall not be released if either of the following conditions are met:

  • The Government does not have the rights to reproduce and release the item. The Government has public release rights when the software is developed by Government staff or its contractors, when the Government receives "unlimited rights" in software developed by a contractor at Government expense, or when pre-existing FOSS is modified by or for the Government.

  • The public release of the item is restricted by other law or regulation, such as the Export Administration Regulations or the International Traffic in Arms Regulation.

Conclusions

These considerations result in an open-source first policy at 18F. If a solution cannot be found in the open-source community, 18F may consider other options. Ultimately, the software that best meets the needs and mission of 18F should be used, regardless of whether the software is open source.

18F also hereby adopts an open-development first policy. Whenever possible, 18F will begin development in the open. If code is developed first in private, the 18F DevOps team will lead an interdisciplinary review to ensure that open-sourcing the code will not result in privacy violations or security vulnerabilities.

When contracting developer services, 18F will require vendors to use FOSS and develop open-source code wherever possible, given the rationale above.

Get in touch

Leave an issue, or make a pull request to this repository. To contact us privately, email 18F@gsa.gov.