The U.S. Department of Defense (DoD) is experimenting with open sourcing more of its code on GitHub. Code.mil invites developers from around the world to collaborate with federal employees on unclassified code. The Defense Digital Service (DDS), which brings in experts from top technology companies like Google, Amazon, and Netflix for short assignments, is organizing the initiative to open source more government code.
“Open source and free software (which refers to software freedom, not free of cost) are industry best practices and integral parts of modern software development,” the department said in a statement announcing the initiative. “They, however, are concepts yet to be widely adopted within the department. With Code.mil, DoD can access a depth and breadth of technical skill previously underutilized while offering software tools created by the government for free public use.”
The FAQ document for the initiative states that “modern software is open sourced software” and that the department is aiming to more actively participate in the open source and free software communities.
Licensing is one of the unique challenges of making government code open source, as code written by federal employees is not protected by copyright under U.S. laws. After consulting the Open Source Initiative and Free Software Foundation, the DoD devised an open source licensing strategy where code written by federal employees will fall under the public domain with no restrictions. DDS developed a GitHub webhook to ensure commits from government employees follow the Developer Certificate of Origin process. Private sector contributions will be protected by standard OSS licenses. This is outlined in the INTENT.md document on the Code.mil repository.
Code.mil’s First Open Source Project Released Under AGPL to “Test GPL as an Approach”
In addressing one person’s feedback advocating for all Code.mil projects to be MIT-licensed, DDS engineer Tom Bereknyei confirmed that the team will leave this decision to each project’s leadership.
“We’ve had these same discussions internally,” Bereknyei said. “We did not want to endorse a particular license and we intend each project to decide which license is appropriate for them. Some may choose MIT, BSD, Apache, or eventually GPL. We did not want to take that choice away from them.”
eMCM, a web-based viewer for the Manual for Courts-Martial (MCM), is the first open source project to be released on Code.mil. It provides a canonical “live” edition of the manual that is easier to access and maintain than previous versions. eMCM was released this week under the AGPL license.
“We chose to use the Affero General Public License (AGPL) for the eMCM because every military member has the right to know how the raw legal code (i.e., MCM) will be transformed or manipulated by the eMCM,” the Defense Digital Service stated in the announcement. “Applying the AGPL is a small but important way to help ensure the public has that freedom and transparency to the process.”
In the pull-request for updating the license on the project, Bereknyei explained why he proposed the AGPL:
It’s a user-facing project, not a library. Ultimately it would be good to preserve the rights of the public to inspect how the raw MCM is transformed by the viewer.
Among the projects we have, this seems to be the best candidate for a GPL test. It is fairly self contained, doesn’t integrate with any systems, front-end heavy, small enough that a corporate rewrite is easy, and uses only a few libraries. My goal is only to test GPL as an approach. If this project isn’t suited, I’m sure we can find another.
When Bereknyei was questioned by DDS colleague Nicholas Small about why he opted for AGPL over MIT, he said he wanted to protect the code from being redistributed as closed-source.
“MIT would allow someone to fork, improve, and release closed-source,” Bereknyei said. “The rule of thumb I am trying to apply is that when the rights/convenience for developers are more important, go with MIT/BSD/ISC. When the rights/convenience for users are more important, go with GPL.”
Historically, the DoD has used GPL-licensed software extensively and even recommends government contractors select a GPL-compatible license when developing software as a deliverable in DoD contracts.
One beneficial byproduct of the DoD’s initiative to open source more code is that the public can watch and participate as federal employees discuss license selection in the open. The department is finally recognizing that taxpayer-funded code is a public good and inviting private sector professionals to the table to build modern software together. Anyone can open an issue or pull request, regardless of their background, location, or formal qualifications. The DoD plans to expand Code.mil to include projects from other DoD offices and may develop it into a full-fledged website instead of simply redirecting to GitHub.