Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions Contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
This website is maintained by the in-toto steering committee and is modeled after the [Kubernetes documentation contribution workflow](https://kubernetes.io/docs/contribute/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this contributing doc ever going to be on a website?
maybe appearing somewhere here? https://in-toto.io/specs/

Or will it always be a contributing guide for this repo?

@jbogarthyde jbogarthyde Jan 2, 2024

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these guidelines should stay here in the community repo ( https://github.com/in-toto/community/blob/main/CONTRIBUTING.md ). There's a pointer to it from https://github.com/in-toto/docs/blob/master/ROADMAP.md.

The plan is for the content of the Spec to be transformed into a Docs section of the in-toto website. I expect the https://in-toto.io/specs/ repo will continue to be the source for the text, even if that text is broken up into separate files to match separate web pages. We expect to add navigation (site and page TOCs) to make it easier for new users to find introductory information before diving into the demo.

Maybe these guidelines should specify where the doc sources will live, and (when it is decided) what tools are used to produce the public documentation on the in-toto website.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it also depends on the final structure of in-toto repositories. Are we going to rename this one to in-toto/specification and then create a new in-toto/docs repository? Is the specification going to continue to live in the docs repository?


in-toto documentation contributors:
- Improve existing content
- Create new content
- Translate the documentation
- Manage and publish the documentation parts of the in-toto release cycle

## Getting started

Anyone can open an issue about documentation, or contribute a change with a pull request (PR) to the respective repo.

There are different workflows for changing documentation in in-toto depending on the level of change
that is being made.

The first type of change is that which is confined to a few lines and which is likely to be
uncontentious. This is something like a typo fix or a minor clarification. For example, if you see a sentence
like: "A signed attestation is created by a functionary as it performs a software supply chain step. This
may be later consumed by a party who verifies a layout." What "This" refers to in the second sentence may have
confused you and you may wish to clarify it. For non-specification changes, simply submit a PR of the
"typo / minor clarification" type to address this issue. If you wish to make a change to the specification,
see the directions below.

The second type of change is more substantial. This is something like adding a translation of documentation
to a new language, adding a tutorial, reorganizing the pages to have a different flow, etc. For these, please
ask on the in-toto documentation slack channel before starting this process. (The main exception to this is
the [friends](https://github.com/in-toto/friends) repository where adoptions are tracked. Feel free to create
a PR here directly without talking with us.) There should be an issue created
on the issue tracker and an ITSC member should thumbs-up this before you begin. If your documentation is for a

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definition of ITSC would be valuable here 😄.

specific sub-project or repository, the approval of a maintainer is perfectly fine instead. The rationale is
that we want someone to both help to confirm the documentation is likely to be of use, and also identify a likely
shepherd of the work. (Note that if you are a maintainer or ITSC member, it is fine to self approve.)

For a change to the specification, it is important to ask first. So, please start by asking on the in-toto
slack channel. Depending on the type or scope of this change, it may be as simple as a typo / minor clarification
fix below or it may require a separate process (such as an [ITE](https://github.com/in-toto/ITE)). For a non-trivial
change, this process has extra steps and cannot be approved by a single party. The [specification](https://github.com/in-toto/docs)
intentionally is a very stable, slow-moving document and so changes to it are conservative in nature.

## Actually Making a Change

You need to be comfortable with [git](https://git-scm.com/) and [GitHub](https://skills.github.com/) to work effectively in our community.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a link to a good set of resources for learning Git and Github? https://docs.github.com/en/get-started/quickstart/git-and-github-learning-resources - just a thought

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah - I see there is the skills.github.com URL as the link for GitHub. If that has tutorials for using Git then perfect 😄 .


To get involved with documentation:

1. Sign the CNCF [Contributor License Agreement](https://github.com/kubernetes/community/blob/master/CLA.md).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure the CLA is required/enforced on any in-toto repo right now but I could be wrong

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, this may be something that needs clarification in project governance?

2. Familiarize yourself with the documentation repository and the website's static site generator. If the
individual repository has guidance for documentation, it supercedes this document's guidance.
3. Make sure you understand the basic processes for opening a PR. The [Kubernetes documentation on opening a
pull request](https://kubernetes.io/docs/contribute/new-content/open-a-pr/) is quite detailed and a good place
to start if you need guidance.
Comment on lines +49 to +51

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be a bit confusing as it does talk about the kubernetes docs repo and using hugo which this repo doesn't use.

@jbogarthyde jbogarthyde Jan 2, 2024

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The content should probably be copied here and adapted to in-toto

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, I think this one can only progress once the "architecture" of the docs rendering is decided for in-toto.


As was stated above, for trivial, non-specification changes, create a PR directly. For other changes, you will
need to discuss this with other folks and create an issue.

Do not make edits that cause large diffs, which are not relevant to content. For example, do not re-wrap lines

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do not re-wrap lines

:(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One way we've handled this is with pre-commit hooks. Not everyone may install them but, you can also run the pre-commit hooks in a GHA for the PR. There's even some specific linting for markdown documents: https://pre-commit.com/hooks.html

after making a change. Do not add or delete blank linkes in a document unless there is a clear reason to do so.
Do not add or remove trailing whitespace on lines for a similar reason.

## Style Guideline

The American spelling for words is preferred when writing in the English language.

In general, markdown files are preferred for READMEs and similar documentation. For webpages, when you contribute

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This also depends on the final repo structure.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In general, markdown files are preferred for READMEs and similar documentation. For webpages, when you contribute
In general, markdown files are preferred for READMEs and similar documentation. For webpages, when you contribute

to a repository, match the documentation style and/or web framework for the individual repository.