#4 Initial edits to fold in OpenShift ideas
Merged 7 years ago by immanetize. Opened 7 years ago by bex.
Unknown source new-workflow  into  new-workflow

file modified
+11 -6
@@ -3,9 +3,14 @@

  For all others, please fork the repo on pagure and provide pull requests to have your contributions added.

  

  TODO:

- - [ ] Finish tools.adoc

- - [ ] Write writing-format.adoc

- - [ ] Write translation.adoc

- - [ ] Write publishing.adoc

- - [ ] Define and write style guide (how we use asciidoc)

- - [ ] Write topic on PR process

+ - [ ] en-US/index.adoc:FIXME - do we need a terms glossary?

+ - [ ] en-US/pr.adoc:- FIXME - how to build previews

+ - [ ] en-US/pr.adoc:- FIXME - add how to keep your branch up to date with other changes

+ - [ ] en-US/pr.adoc:- FIXME - add how to squash commits

+ - [ ] en-US/publishing-translation.adoc:FIXME - Document final publishing tool and translation hand-off

+ - [ ] en-US/repo-org.adoc:FIXME document repository structure

+ - [ ] en-US/tools.adoc:* FIXME - insert final tool here

+ - [ ] en-US/writing-format.adoc:FIXME need a style guide

+ - [ ] en-US/writing-markup.adoc:FIXME - add entities

+ - [ ] en-US/writing-markup.adoc:FIXME - should we use xref for internal references

+ - [ ] en-US/writing-markup.adoc:FIXME - How to do NOTES, WARNINGS, AND ADMONITIONS

@@ -0,0 +1,42 @@

+ = Contribute to Fedora Documentation

+ 

+ == Different Ways to Contribute

+ 

+ There are a few different ways you can contribute to Fedora

+ documentation. While all of these are great ways to contribute, we've

+ listed them in the order of maximum impact.

+ 

+ * If you would like to do the work yourself, or if it is a substantial

+    change, then you you should clone the repository, make your changes,

+    and submit a pull request (PR).  Each PR should have closely-related

+    changes.  In particular, it is a good idea to use separate PRs

+    for bugfix changes (for an old or current release) vs enhancement

+    changes (for an upcoming new release).  Further information about

+    link:pr.adoc[PRs is available] in this documentation set.

+ * Create an issue in https://pagure.io/[pagure.io] in the appropriate

+    document's repository.  See xref:repository-list[Repository List]

+    below for more details.

+ * Email the Fedora documentation team: docs@lists.fedoraproject.org

+ 

+ 

+ [[repository-list]]

+ == Repository List

+ 

+ Major documents and/or documentation sets are separated

+ into separate repositories.  All repositories are stored in

+ https://pagure.io/[pagure.io].

+ 

+ The major documents and documentations sets are:

+ 

+ * Amateur Radio Guide - https://pagure.io/amateur-radio-guide

+ * Installation Guide - https://pagure.io/install-guide

+ * Multiboot Guide - https://pagure.io/multiboot-guide

+ * Networking Guide - https://pagure.io/networking-guide

+ * Release Notes - https://pagure.io/release-notes

+ * RPM Guide - https://pagure.io/rpm-guide

+ * SELinux Users and Adminstration Guide - https://pagure.io/selinux-user-guide 

+ * Storage Guide - https://pagure.io/storage-administration-guide

+ * System Administration Guide - https://pagure.io/system-administrators-guide

+ * Virtualization Getting Started Guide - https://pagure.io/virt-getting-started-guide

+ 

+ This document is stored in https://pagure.io/documentation-guide

file modified
+18 -5
@@ -1,11 +1,24 @@

  = Documentation Guide

  

- <<tools,Tools>> 

+ * link:contributing.adoc[How to Contribute to Fedora Documentation]

  

- <<writing-format,Writing Format>>

+ * link:writing-format.adoc[Document Structure and Style]

  

- <<pr,Pull Request Guidlines>>  

+ * link:writing-markup.adoc[Document Markup]

  

- <<pull_requests,Pull Request Workflow>>

+ * link:repo-org.adoc[Repository Organization]

  

- <<publishing,Publishing>>

+ * link:pr.adoc[Pull Request Guidelines and Workflow]

+ 

+ * link:publishing-translation.adoc[Publishing and Translation]

+ 

+ * link:translation.adoc[Translation]

+ 

+ * link:tools.adoc[Tools]

+ 

+ FIXME - do we need a terms glossary?

+ 

+ Note: Portions of this document are based

+ on the https://www.openshift.org/[OpenShift Origin]

+ https://github.com/openshift/openshift-docs/tree/master/contributing_to_docs[contribution]

+ documentation.

file modified
+102 -11
@@ -1,16 +1,107 @@

- = PR Guidelines

+ = Pull Request Guidelines and Workflow

  

- == Keep writing

- Provided a clear statement of the changes that are included in the PR. This will help the right people see your changes and will aid in getting them looked at faster.

+ == Guidelines

  

- == Keep it small

- Giant dumps or edits make reviews a lengthy and time consuming process. For the sake of the review, and yourself keep PRs as small as you can while still making sense. If you are providing a large amount of edit to existing documents attempt to group them by section, or by the type of correction you are making. If you are adding new content keep limit each PR to a new page or section.

+ === Keep writing

  

- == Keep it clean

- Histories are an extremely valuable part of using a version control system, but providing a history of your small changes may not be as useful. If you are the type of person who commits often locally, and tend to have lots of commits making up your PR look at using `git rebase` to combine commits into a smaller number of more verbose commits.

+ Provided a clear statement of the changes that are included in the

+ PR. This will help the right people see your changes and will aid in

+ getting them looked at faster.

  

- == Keep paying attention

- As the PR submitter your job is not done once you start the process. Make sure to stay engaged and work with the people reviewing your changes. 

+ === Keep it small

  

- == Keep a good attitude 

- After putting a lot of work into something, it is natural to take reviews as a personal attack. Try and remember that this process is designed to help create the best possible end product for Fedora. It is important to keep that in mind and not to let it discourage you from continuing on. 

+ Giant dumps or edits make reviews a lengthy and time consuming

+ process. For the sake of the review, and yourself keep PRs as small as

+ you can while still making sense.

+ 

+ If you are providing a large number

+ of edits to existing documents attempt to group them by section, or by

+ the type of correction you are making. If you are adding new content

+ keep limit each PR to a new page or section.

+ 

+ However, each PR must be fully self-contained. The balance you want

+ to strike is between readability and manageability of the PR and of

+ ensuring that each PR, when committed, leaves the documentation logical

+ and complete.

+ 

+ === Keep it clean

+ 

+ Histories are an extremely valuable part of using a version control

+ system, but providing a history of your small changes may not be as

+ useful. If you are the type of person who commits often locally, and

+ tend to have lots of commits making up your PR look at using `git rebase`

+ to combine commits into a smaller number of more verbose commits.

+ 

+ === Keep paying attention

+ 

+ As the PR submitter your job is not done once you start the process. Make

+ sure to stay engaged and work with the people reviewing your changes.

+ 

+ === Keep a good attitude 

+ 

+ After putting a lot of work into something, it is natural to take reviews

+ as a personal attack. Try and remember that this process is designed to

+ help create the best possible end product for Fedora. It is important

+ to keep that in mind and not to let it discourage you from continuing on.

+ 

+ == Workflow

+ 

+ The sources for Fedora's documentation are stored in git repositories

+ at https://pagure.io.  Contributions are accepted via `pull requests`,

+ which merge changes from your copy of the repository into the original.

+ 

+ - Install the required link:tools.adoc[tools].

+   

+ - Log into `pagure` and click the `Fork` button at the upper right hand

+   corner of a repository.  You now have a personal copy of the repo,

+   called a `fork`.

+ 

+ - Clone your repository using the SSH URL.

+ 

+ ....

+ git clone ssh://git@pagure.io/forks/<fasi>/documentation-guide.git

+ cd documentation-guide

+ ....

+ 

+ - Create a branch to contain your work.  This makes it easier for others

+   to pull from your repo without disrupting their existing content.

+   You can name the branch anything, but something that correlates to

+   the work you'll be doing is best.

+ 

+ ....

+ git checkout -b pull_request_workflow

+ ....

+ 

+ - Make your changes using the editor of your choice.  Add a commit for

+   each distinct change.

+ 

+ ....

+ git add en-US/pr.adoc

+ git commit -m 'begin describing pull request workflow'

+ ....

+ 

+ - FIXME - how to build previews

+ 

+ - Push your changes to `pagure`.

+ 

+ ....

+ git push origin

+ ....

+ 

+ - FIXME - add how to keep your branch up to date with other changes

+   while working and how to do a final rebase to avoid merge conflicts

+ 

+ - FIXME - add how to squash commits

+ 

+ - The new branch will now appear in your fork on pagure.  Once you have

+   pushed a cohesive set of changes, press the `New PR` button to start

+   a new pull request.  `pagure` will send your changes for review after

+   you fill out the form and press `Create`.

+ 

+ - Work with your reviewer to address any concerns.  Subsequent commits

+   pushed to this branch of your fork will be automatically included in

+   the pull request.

+ 

+ - Your changes get merged by the reviewer.  Congratulations!  Reward

+   yourself with a beer, you've earned it!  Soon you'll also earn a

+   https://badges.fedoraproject.org/[Fedora Badge]

@@ -0,0 +1,3 @@

+ = Publishing

+ 

+ FIXME - Document final publishing tool and translation hand-off

file removed
-18
@@ -1,18 +0,0 @@

- = Publishing

- 

- == Install pintail 

- 

- Until pintail packged in Fedora use the copr repo to install it at https://copr.fedorainfracloud.org/coprs/immanetize/pintail/. 

- 

- ....

- dnf copr enable immanetize/pintail 

- dnf install pintail 

- ....

- 

- == Testing

- 

- ....

- pintail build --local

- ....

- 

- The build website can be viewed from `__pintail/build/`.

@@ -1,49 +0,0 @@

- = Pull Requests

- 

- == Workflow

- 

- The sources for Fedora's documentation are stored in git repositories at https://pagure.io.  Contributions are accepted via `pull requests`, which merge changes from your copy of the repository into the original.

- 

- - Install the required `tools`.

-   

- // I don't know how to do cross document links, or I would here.

- 

- - Log into `pagure` and click the `Fork` button at the upper right hand corner of a repository.  

-   You now have a personal copy of the repo, called a `fork`.

- 

- - Clone your repository using the SSH URL.

- 

- ....

- git clone ssh://git@pagure.io/forks/immanetize/documentation-guide.git

- cd documentation-guide

- ....

- 

- - Create a branch to contian your work.  This makes it easier for others to pull from your repo 

-   without disrupting their existing content.  You can name the branch anything, but something

-   that correlates to the work you'll be doing is best.

- 

- ....

- git checkout -b pull_request_workflow

- ....

- 

- - Make your changes using the editor of your choice.  Add a commit for each distinct change.

- 

- ....

- git add en-US/pull_requests.adoc

- git commit -m 'begin describing pull request workflow'

- ....

- 

- - Push your changes to `pagure`.

- 

- ....

- git push

- ....

- 

- - The new branch will now appear in your fork on pagure.  Once you have pushed a cohesive set of changes,

-   press the `New PR` button to start a new pull request.  `pagure` will send your changes for review after

-   you fill out the form and press `Create`.

- 

- - Work with your reviewer to address any concerns.  Subsequent commits pushed to this branch of your fork

-   will be automatically included in the pull request.

- 

- - Your changes get merged by the reviewer.  Congratulations!  Reward yourself with a beer, you've earned it!

file added
+12
@@ -0,0 +1,12 @@

+ [[repository-organization]]

+ == Repository Organization

+ 

+ Major documents and/or documentation sets are separated

+ into separate repositories.  All repositories are stored in

+ https://pagure.io/[pagure.io].

+ 

+ FIXME document repository structure

+ 

+ * Files in every repo

+ * branches are versions

+ * master latest "rawhide" documentation

file modified
+2 -2
@@ -1,4 +1,5 @@

  = Tools

+ 

  The following tools are required to work with Fedora Documentation.

  

  == Writing
@@ -10,5 +11,4 @@

  

  == Publishing

  * asciidoctor

- * asciidoctor-mallard

- * pintail

+ * FIXME - insert final tool here

file modified
+19 -4
@@ -1,6 +1,21 @@

- = Document formatting

+ = Document Structure and Style

  

- == Flow

- In the past, Fedora used a book style format for documentation that was intended to be read linearly. This style of documentation proved to be cumbersome to both read and maintain.

+ == Structure

  

- Documents should now be written in a topical style so that each component of a overall document can be used on its own without needing to read everything that was written in sections before it. An example of this style of documentation can be found in the GNOME documentation at https://help.gnome.org/users/gnome-help/stable/.

+ In the past, Fedora used a book style format for documentation that was

+ intended to be read linearly. This style of documentation proved to be

+ cumbersome to both read and maintain.  Most documentation is still

+ in book style format, however we are slowly migrating to topical

+ documentaiton sets.

+ 

+ New documents should be written in a topical style so that each component

+ of the overall document set can be used on its own without needing to

+ read everything that was written in sections before it. An example of

+ this style of documentation can be found in the GNOME documentation at

+ https://help.gnome.org/users/gnome-help/stable/.

+ 

+ Help is needed to convert our existing documentation to this new format.

+ 

+ == Style

+ 

+ FIXME need a style guide

@@ -0,0 +1,278 @@

+ = Document Markup

+ 

+ == AsciiDoc

+ 

+ Documentation is written using

+ http://www.methods.co.nz/asciidoc/index.html[AsciiDoc] as extended by

+ http://asciidoctor.org/[Asciidoctor].

+ 

+ == Formatting Guidelines

+ 

+ When writing the following formatting rules apply to the AsciiDoc source

+ as used in Fedora:

+ 

+ * Wrap paragraphs sensibly (~80 chars) to improve readability and diffs.

+ 

+ * Format lists visually to make reading the source easy.

+ 

+ * Headers are written in the single-line AsciiDoc format with equal

+   signs only on the left.

+ 

+ * The title, which is the first line of the document, is the only level 1

+   ( = ) title. Section headers within the topic must be level 2 ( == )

+   or lower.

+ 

+ * Section anchors must be all lowercase letters, with no line spaces

+   between the anchor and the section title.  Anchors are typically the

+   same as their title with the spaces replaces by dashes.

+ +

+ ----

+ [[section-anchor-name]]

+ === Section Title

+ ----

+ 

+ * In general, try to generalize documentation to eliminate the need to

+   reference Fedora or a specific version of Fedora.  If this cannot

+   be avoided, use the entities below instead of actually writing out

+   the reference.  This allows us to easily update version numbers and

+   names as needed.

+ +

+ FIXME - add entities

+ +

+ For example:

+ +

+ ----

+ You can deploy applications on {product-title}.

+ ----

+ 

+ * Links to other AsciiDoc files are always created with `link:`.  Links to

+   external websites are created using the short format `url[text]`.

+ +

+ FIXME - should we use xref for internal references

+ +

+ For example:

+ +

+ ----

+ You should fully understand link:other.adoc[foo, bar and baz] before attempting this procedure.

+ The repository of  http://example.com[examples] contains many functional prototypes for you to extend.

+ ----

+ +

+ Whenever possible the link to another topic should be part of the actual

+    sentence. Avoid creating links as a separate sentence that begins with

+    "See [this topic] for more information on x".

+ 

+ * The following elements are marked up semantically as `[tag]#content#`

+   where tag is one of the following:

+ 

+ ** acronym - An often pronounceable word made from the initial (or

+              selected) letters of a name or phrase

+ ** application - The name of a software program

+ ** citetitle - The title of a cited work

+ ** command - The name of an executable program or other software command

+ ** filename - The name of a file

+ ** literal - Inline text that is some literal value

+ ** option - An option for a software command

+ ** package - A name of a software package (e.g. a RPM)

+ ** parameter - A value or a symbolic reference to a value

+ ** replaceable - Content that may or must be replaced by the user

+ ** systemitem - A system-related item or term

+ 

+ 

+ * The following elements are marked up semantically the same way as:

+   `[button]#content#` . These are all marked up using `button`.

+ 

+ ** guibutton

+ ** guilabel

+ ** guimenuitem

+ ** guimenu

+ ** guisubmenu

+ ** keycap

+ ** keycombo 

+ 

+ * Sharing content between files

+ +

+ If you want to share content from one topic so that it appears in another topic,

+ you can use the `include` directive. See the Asciidoctor documentation for

+ details:

+ +

+ http://asciidoctor.org/docs/user-manual/#include-partial

+ +

+ If you find that you need to include content from one topic multiple times into

+ another topic, see the following usage:

+ +

+ http://asciidoctor.org/docs/user-manual/#include-multiple

+ 

+ * Images

+ If you want to link to an image:

+ *

+ 1. Put it in `<topic_dir>/images`

+ 2. In the topic document, use this format to link to an image:

+ +

+ ----

+ image::<name_of_image>[image]

+ ----

+ +

+ You only need to specify `<name_of_image>`. The build mechanism automatically specifies the file path.

+ 

+ * System blocks, table delimiters

+ +

+ For all of the system blocks including table delimiters, use four characters. For example:

+ +

+ ....

+ |=== for tables

+ ---- for code blocks

+ ....

+ 

+ * Code blocks

+ Code blocks are used to show examples of command screen outputs, or configuration files. When using command blocks always use the actual values for any items that a user would normally replace. Code blocks should represent exactly what a customer would see on their screen. If you need to expand or provide information on what some of the contents of a screen output or configuration file represent, then use callouts to provide that information.

+ +

+ Follow these general guidelines when using code blocks:

+ +

+ * Do NOT show replaceables within code blocks.

+ +

+ * Do NOT use any markup in code blocks; code blocks generally do not accept any markup

+ +

+ * Try to use callouts to provide information on what the output represents when required

+ +

+ For all code blocks, you must include an empty line above a code block.

+ +

+ Acceptable:

+ +

+ ....

+ Lorem ipsum

+ 

+ ----

+ $ lorem.sh

+ ----

+ ....

+ +

+ Not acceptable:

+ +

+ ....

+ Lorem ipsum

+ ----

+ $ lorem.sh

+ ----

+ ....

+ +

+ Without the line spaces the content is likely to be not parsed correctly.

+ 

+ * Inline Code or Commands

+ Do NOT show full commands or command syntax inline within a sentence. The next section covers how to show commands and command syntax.

+ +

+ Only use case for inline commands would be general commands and operations, without replaceables and command options. In this case an inline command is marked up using the back ticks:

+ +

+ When writing an inline command example do not nest markup.  For example, write `[command]#ls -l#` not `[command]#ls [option]#-l##`

+ +

+ ....

+ Use the `GET` operation to do x.

+ ....

+ +

+ This renders as:

+ +

+ Use the `GET` operation to do x.

+ 

+ ** Command syntax and examples

+ The main distinction between showing command syntax and example is that a command syntax should just show customers how to use the command without real values. An example on the other hand should show the command with actual values with an example output of that command, where applicable.

+ 

+ ** Command syntax

+ To markup command syntax, use the code block and wrap the replaceables in <> with the required command parameters, as shown in the following example. Do NOT use commands or command syntax inline with sentences.

+ +

+ ....

+ The following command returns a list of objects for the specified object type:

+ 

+ ----

+ oc get <object_type> <object_id>

+ ----

+ ....

+ +

+ This would render as follows:

+ +

+ The following command returns a list of objects for the specified object type:

+ +

+ ----

+ oc get <object_type> <object_id>

+ ----

+ 

+ ***Examples

+ As mentioned an example of a command should use actual values and also show an output of the command, as shown in the following example. In some a heading may not be required.

+ +

+ ....

+ In the following example the `oc get` operation returns a complete list of services that are currently defined.

+ 

+ .Example Title

+ ====

+ 

+ ----

+ $ oc get se

+ NAME                LABELS                                    SELECTOR            IP                  PORT

+ kubernetes          component=apiserver,provider=kubernetes   <none>              172.30.17.96        443

+ kubernetes-ro       component=apiserver,provider=kubernetes   <none>              172.30.17.77        80

+ docker-registry     <none>                                    name=registrypod    172.30.17.158       5001

+ ----

+ ====

+ ....

+ +

+ This would render as shown:

+ +

+ In the following example the `oc get` operation returns a complete list of services that are currently defined.

+ +

+ .Example Title

+ ====

+ 

+ ----

+ $ oc get se

+ NAME                LABELS                                    SELECTOR            IP                  PORT

+ kubernetes          component=apiserver,provider=kubernetes   <none>              172.30.17.96        443

+ kubernetes-ro       component=apiserver,provider=kubernetes   <none>              172.30.17.77        80

+ docker-registry     <none>                                    name=registrypod    172.30.17.158       5001

+ ----

+ ====

+ 

+ 

+ *** Lists

+ Lists are created as shown in this example:

+ +

+ ....

+ . Item 1 (2 spaces between the period and the first character)

+ 

+ . Item 2

+ 

+ . Item 3

+ ....

+ +

+ This will render as such:

+ 

+ . Item 1

+ 

+ . Item 2

+ 

+ . Item 3

+ +

+ If you need to add any text, admonitions, or code blocks you need to add the continuous +, as shown in the example:

+ +

+ ....

+ . Item 1

+ +

+ ----

+ some code block

+ ----

+ 

+ . Item 2

+ 

+ . Item 3

+ ....

+ +

+ This renders as shown:

+ +

+ . Item 1

+ +

+ ----

+ some code block

+ ----

+ 

+ . Item 2

+ 

+ . Item 3

+ 

+ FIXME - How to do NOTES, WARNINGS, AND ADMONITIONS