Contributing to Our Projects, Version 1.5
NOTE: This CONTRIBUTING.md is for software contributions. You do not need to follow the Developer's Certificate of Origin (DCO) process for commenting on the Code.mil repository documentation, such as CONTRIBUTING.md, INTENT.md, etc. or for submitting issues.
Thanks for thinking about using or contributing to this software ("Project") and its documentation!
The project maintainer for this Project will only accept contributions using the Developer's Certificate of Origin 1.1 located at developercertificate.org ("DCO"). The DCO is a legally binding statement asserting that you are the creator of your contribution, or that you otherwise have the authority to distribute the contribution, and that you are intentionally making the contribution available under the license associated with the Project ("License").
2. Developer Certificate of Origin Process
Before submitting contributing code to this repository for the first time, you'll need to sign a Developer Certificate of Origin (DCO) (see below). To agree to the DCO, add your name and email address to the CONTRIBUTORS.md file. At a high level, adding your information to this file tells us that you have the right to submit the work you're contributing and indicates that you consent to our treating the contribution in a way consistent with the license associated with this software (as described in LICENSE.md) and its documentation ("Project").
3. Important Points
Pseudonymous or anonymous contributions are permissible, but you must be reachable at the email address provided in the Signed-off-by line.
If your contribution is significant, you are also welcome to add your name and copyright date to the source file header.
U.S. Federal law prevents the government from accepting gratuitous services unless certain conditions are met. By submitting a pull request, you acknowledge that your services are offered without expectation of payment and that you expressly waive any future pay claims against the U.S. Federal government related to your contribution.
If you are a U.S. Federal government employee and use a
*.gov email address, we interpret your Signed-off-by to mean that the contribution was created in whole or in part by you and that your contribution is not subject to copyright protections.
4. DCO Text
The full text of the DCO is included below and is available online at developercertificate.org:
Developer Certificate of Origin Version 1.1 Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 1 Letterman Drive Suite D4700 San Francisco, CA, 94129 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Developer's Certificate of Origin 1.1 By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
rbenv install 2.4.3
Once you've installed Ruby 2.4.3 and the Bundler gem (
gem install bundler), install the project's gems by running::
Now you're ready to clone the repository locally and start making changes. The website's source code is in the
src folder which contains content pages authored in the Markdown text format. Jekyll configuration is defined in the
src/_config.yml file. Additional configuration files are located in the
Once you've installed the project's dependencies as outlined above, you're ready to run Jekyll and browse the website locally:
This command will build the website to the
public folder and start up a local server, making the website available at
http://127.0.0.1:4000). Fire up your favorite Web browser to view the website locally!
Code formatting conventions are defined in the
.editorconfig file which uses the EditorConfig syntax. There are plugins for a variety of editors that utilize the settings in the
.editorconfig file. It is recommended that you install the EditorConfig plugin for your editor of choice.
Your bug fix or feature addition won't be rejected if it runs afoul of any (or all) of these guidelines, but following the guidelines will definitely make everyone's lives a little easier.
Submitting an Issue
You should feel free to submit an issue on our GitHub repository for anything you find that needs attention on the website. That includes content, functionality, design, or anything else!
Submitting a Bug Report
When submitting a bug report on the website, please be sure to include accurate and thorough information about the problem you're observing. Be sure to include:
- Steps to reproduce the problem,
- The URL of the page where you observed the problem,
- What you expected to happen,
- What actually happend (or didn't happen), and
- Technical details including your Operating System name and version and Web browser name and version number.
When making your changes, it is highly encouraged that you use a branch in Git, then submit a pull request (PR) on GitHub. Your pull request will go through some automated checks using Travis CI, a continuous integration and deployment tool.
After review by the Code.mil team, your PR will either be commented on with a request for more information or changes, or it will be merged into the
master branch and deployed to a URL for testing purposes.
Assuming everything checks out, the Code.mil team will merge the
master branch into the
production branch which will be automatically deployed to the production hosting environment, making your changes available on code.mil.
Note that if you're updating content on policy-specific pages (e.g. Getting Started, How to Open Source, Frequently Asked Questions), be sure to update the
updated_at value in the file's YAML Front Matter (in the format
--- title: Getting Started updated_at: 2018-04-03 ---
Check Your Changes
Before submitting your pull request, you should run the build process locally first to ensure things are working as expected.
You should also run the testing script against your local build. This script will check the built website using the html-proofer Ruby gem. You may run the test script using the following command: