Rich Content Generation
Purpose¶
These contribution instructions SHOULD be used when the following are all true:
-
The ToIP Deliverable is not an instance of a Specification.
-
The contributors have decided to collaborate using an assembly of multiple markdown files as their authoring approach.
-
The contributors have decided that the subject deliverable will need to be published in a variety of formats.
-
The contributors have decided to leverage the ToIP themed MkDocs Authoring Environment.
Target Repository¶
All deliverables that fall under the Multi-Modal Publication Category will require the creation of a dedicated workspace using a GitHub Repository (repo). We use standard GitHub activities to track issues and feature requests, as well as accept all Pull Requests (PR's
) related to the deliverable managed by this new dedicated repo.
Contributors to the new the ToIP Foundation repo SHOULD use easy and transparent activities for:
- Reporting a bug
- Discussing the current state of the ToIP Deliverable
- Submitting a fix
- Proposing process recommendations
- other
General GitHub Workflow¶
- Issue Submission / Tracking
- Pull requests
- Organization Resources
- General GitHub Resources
Preparation¶
Before proposing a new deliverable, consider the following preparatory actions:
- Exploring the idea in the appropriate WG Slack Channel.
- Socialize the idea during a WG meeting.
- Make use of the mailing lists to socialize the idea and to make an assessment that your proposal is novel and you will not be overlapping work already proposed.
- Make use of the Deliverables Portal for a current listing of all work product efforts and their statuses so that you can appropriately position your proposal as unique.
- Make a decision as to the type of deliverable you will be proposing.
- Discuss the roles each contributor will perform. Some members may be knowledgable content contributors, some may be skilled in GitHub, other may have both skills.
- Establish a preliminary outline for the content you will be delivering and who may be contributing specific sections of work.
Proposal Readiness¶
Gather Details¶
The contributors need to gather some specifics before getting started:
- Familiarize themselves with our deliverable naming conventions
- Select the appropriate
<TypeIndicator>
- Obtain a unique
<4digitID>
: When you are ready to create your new deliverable repository you will need to obtain a unique deliverable identifier. To assign a number to your deliverable visit this web page. - Settle on a clear and concise
<DeliverableName>
that is descriptive, yet not verbose or vague.
Create Dedicated Repository¶
The ToIP Foundation provides a GitHub Template Repository to allow contributors to quickly and easily configure a new dedicated deliverables repository. The ToIP MkDocs Material Theme Template Repository allows ToIP contributors to create new repositories with the directory structure, branches, and files necessary to bootstrap the development of a Multi-Modal Publication using a ToIP branded version of MkDocs.
- Visit ToIP MkDocs Material Theme Template Repository.
- Click on the
Use this template
button - Fill out the repo creation form using the appropriate naming convention as depicted below:
- Make sure the
trustoverip
is the owner Organization - Follow our deliverable naming conventions to enter a repository name such as
WP0120-utility-creation-lessons
- Make sure the
- Select
Public
as the commit permissions - Click on the
Create repository from template
button and wait for GitHub to create and prime your new repo. - Visit the new repo and invite your fellow contributors by accessing the repo's
Manage Access Settings
Coordination of roles¶
The stakeholders of this new deliverable, typically members of a task force commissioned by a ToIP WG, will need to gather make few decisions:
- What is the initial outline of the deliverable? Suggestions are available in the
templates
folder of the deliverables repo. - Who will act as content authors and/or GitHub committers?
- How will the contributors coordinate the assignment and delivery of Markdown files to the GitHub committers?
- How will the sections of the deliverable outline be assigned to content authors?
Prepare Proposal¶
One of the members of the contributing team needs to prepare and submit the initial proposal draft. This should include the following:
- Open an Issue against the new repo. Use a title such as "Prime pump for new deliverable
<4digitID>" - Fork and clone the new repository.
- In a terminal window, change directories to the parent folder of your newly cloned repo.
- Rename the current README file to DEV_README
[~/new-repo]
==> cp README.md DEV_README.md
-
Edit the README.md file and replace all existing content with the content from the appropriate template file from the deliverables repo
/template
folder.- Using your browser, navigate to the deliverables repo
- Click on the
/templates
folder - Find the applicable template file and click on the
Raw
button to open a browser window displaying the raw Markdown text. - Using your browser, select all the text, copy it to your clipboard and paste it into the
README.md
replacing all existing text. -
At the top of your file modify the title so it is in the form:
<TypeIndicator><4digitID>: Friendly Version of Your Title.
-
Minimally complete the
Title
andSummary
sections of theREADME.md
. - Consider how your new proposal should be tagged.
-
The template file provides an outline to guide your work. Use the outline to bootstrap your work on the deliverable. Use MUST and SHOULD per standard conventions. Put care into the details! Deliverable submissions that do not present sufficient information as suggested by the template tend to be poorly received.
Submit Proposal Draft¶
-
Commit your changes and submit a PR using previously opened issue.
-
Open an Issue against the Deliverables Repo. Use a title such as "Add new proposal
<4digitID>" - Fork and clone the Deliverables Repo.
- Commit an updated version of
../results/proposed.md
and push your changes. -
Submit a pull request using the previously opened Issue.
-
Make sure that all of your commits satisfy the DCO requirements of the repo and conform to the license restrictions noted below.
- The ToIP Deliverable Maintainers will check to see if the process has been followed, and request any process changes before merging the PR.
- When the PR is merged, your deliverable is now formally in the Proposed state.
Repo generation configuration¶
-
Delete the
mkdocs.spec.yml
file, which is located at the root of the project. -
Follow the instructions for generation of a single Markdown File using the Combine Tool.
-
Follow the instructions for the generation of a PDF. TODO
Repo organization suggestions¶
You can add supporting artifacts and organize your repo filesystem structure as desired. You MAY want to:
- Create an
images
folder to store.jpg
and.png
files that your content may reference. - Leverage PlantUML tools for the generation of UML diagrams. When doing so, you MUST include in your folder:
- Source:
.puml
files in apuml
folder - Output:
.jpg
or.png
files
- Source:
-
Leverage presentation tools (i.e.: PowerPoint, Keynote). When doing so, you MUST include in your folder:
- Source:
.ppt
or.key
files - Output:
.jpg
or.png
files
/images /src /puml interaction_diagram.puml /presentations diagrams.key slides.ppt interaction_diagram.svg interaction_diagram.png interaction_diagram.jpg diagram_1.png slide_1.jpg
- Source:
Iterate on Proposal¶
The contributors of this new repo can now focus on the authoring of content. Iterative updates to the repo reflecting work by contributors will depend on the decisions made by the contributors in the Authoring Coordination Approach.
Submit Proposal for Approval¶
Once the proposal is ready for review and approval by the sponsoring WG, the contributors should follow our Lifecycle Management Process.