Change the approach to IETF builds to support for md I-Ds #1624
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the approach to building IETF documents to enable writing I-Ds in markdown. I thought it would be easier for review purposes to separate the build changes from the spec changes.
I've been working on #1185 which requires decoupling the core spec from the media type. That requires moving all the media type stuff into an IETF I-D document. I'd like to do that work in markdown rather than xml. Unfortunately, that created several issues that required changing our approach to maintaining the IETF documents we're still maintaining.
Moved the ietf files into their own directory
The first issue is that if we put the I-D markdown file in the same directory as the main spec files, it becomes more difficult to run the build. Right now, we can just build every .md file in the spec folder. But, if we add a an I-D markdown file, we need to figure out a way to exclude that file from the build somehow. We also need different linting rules for I-Ds. Moving the IETF documents to their own directory allows easier control over configuring and build.
Use docker for IETF builds
The I-D markdown tool is written in Ruby. We already have Node.js and Python dependencies and adding a third package manager is starting to get absurd. My solution was to move to managing the IETF builds with a docker image. That way the IETF build complexity is at least encapsulated in one place. I removed the Makefile and the Python package management files. All that should be managed in the Dockerfile now. I'm not crazy about the idea of using docker for this, but I think it's better than expecting users to install Node.js, Python, and Ruby on their systems to work with the specs.
No more build artifacts
Currently we're building the IETF documents and storing those artifacts in Github. That's not necessary and wasteful. I removed this feature entirely. We can add it back in if we determine there's a use for it in the future.