Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
107 lines (80 sloc) 4.17 KB

Submitting Drafts

Occasionally, you will want to submit versions of your draft to the official IETF repository. The automated process is recommended.

Automated Process

If you have enabled continuous integration, the CI system can automatically upload a draft to the datatracker. All you have to do is tag the repository, push the tag, and await an email with further instructions.

$ git tag -a draft-ietf-unicorn-protocol-03
$ git push origin <branchname>
$ git push origin draft-ietf-unicorn-protocol-03

This tag has to include the full name of the draft without any file extension. That name has to include a revision number. The tag also has to match the name of the source file. For the above example, the source for the draft needs to be either or draft-ietf-unicorn-protocol.xml.

For this feature to work you also need to use an annotated tag (that's the -a option above). Annotated tags require a comment (use -m to set this on the command line). An annotated tag associates your email address with the submission. Lightweight tags don't have an email address and will be ignored by the CI build.

Important: Push the commit that you intend to tag before you push the tag to check that the draft can be built correctly. Pushing the tag won't also push the commit it references and so the build will not run. Circle (and maybe Travis) will then refuse to build that tag ever again.

Note: The email address you use for making this submission needs to match a valid datatracker account email address (create one here). The email address must also match one of the author addresses (this condition might be temporary). The email address that git uses can be found by calling git config --get, if you aren't certain.

Note: Existing users will need to update their configuration to take advantage of this feature. For Circle CI users, adding .circleci/config.yml to your repository and removing any existing circle.yml file is recommended. Travis support is less well-tested (and slower). Updating the Makefile provides a small additional speed improvement.

Bug: Circle CI has a bug that prevents git push --tags from triggering builds if you have multiple drafts. Tag every draft, then push each tag individually. (Tagging all drafts first means that cross references will work.)

Once the CI system has built the draft, it will upload it automatically and you will receive an email asking you to confirm submission. You don't need to have a GitHub account token configured for this feature to be enabled.

Semi-automated Process

Rather than rely on the CI system, the make upload command can be used to upload to the datatracker.

$ git tag -a draft-ietf-unicorn-protocol-03
$ git push origin draft-ietf-unicorn-protocol-03
$ make upload

This uses the same process as the CI system. Note that if you have multiple tags pointing to the current HEAD, this will attempt to upload all of those drafts.

Manual Process

Make a submission version of your draft. The makefile uses git tags to work out what version to create. It looks for the last version number you have tagged the draft with and calculates the next version. When there are no tags, it generates a -00 version.

$ make submit

If you already have a tag in place or want to build a specific tag, you can identify the specific XML file directly.

$ make draft-ietf-unicorn-protocol-03.xml

Submit the .xml file.

Then you can tag your repository and upload the tags. The tag you should use is the full draft name including a revision number.

$ git tag -a draft-ietf-unicorn-protocol-03
$ git push origin draft-ietf-unicorn-protocol-03