From 1ba6581021e821fceaf3c45e8c5d0cae8ff410d2 Mon Sep 17 00:00:00 2001 From: Jeff Scheel Date: Fri, 26 Feb 2016 09:42:53 -0600 Subject: [PATCH] Review version 0.9.2 - Technical updates to reflect new project structure. - Addition of project structure section to explain project relationships. - General readability improvements. Signed-off-by: Jeff Scheel --- template/bk_main.xml | 14 +- template/ch_example.xml | 6 +- template/ch_template_overview.xml | 9 +- .../figures/project_structure_graphic.bmp | Bin 0 -> 995382 bytes .../figures/project_structure_graphic.odg | Bin 0 -> 39539 bytes template/sec_template_debugging.xml | 66 ++++- template/sec_template_existing_document.xml | 50 ++-- template/sec_template_getting_started.xml | 52 +++- template/sec_template_new_document.xml | 240 +++++++++++++----- template/sec_template_policies.xml | 16 +- template/sec_template_structure.xml | 70 +++++ 11 files changed, 419 insertions(+), 104 deletions(-) create mode 100644 template/figures/project_structure_graphic.bmp create mode 100644 template/figures/project_structure_graphic.odg create mode 100644 template/sec_template_structure.xml diff --git a/template/bk_main.xml b/template/bk_main.xml index 8543563..b021601 100644 --- a/template/bk_main.xml +++ b/template/bk_main.xml @@ -29,11 +29,11 @@ - 2015 + 2015, 2016 OpenPOWER Foundation - Revision 0.9.1 + Revision 0.9.2 OpenPOWER @@ -58,6 +58,16 @@ + + 2016-02-25 + + + + Version 0.9.2: Technical and process updates. Explanation of project structure. + + + + 2016-01-25 diff --git a/template/ch_example.xml b/template/ch_example.xml index 6d1ec47..8afa822 100644 --- a/template/ch_example.xml +++ b/template/ch_example.xml @@ -12,7 +12,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_examples">
Example Itemized List - Here's an example of an itemized list + Here is an example of an itemized list @@ -184,9 +184,9 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_examples">
Example of code citations and user input When showing user input, you want a nice sceen-looking layout, a prompt, monospace text, and a way to differentiate input from output. Here's an example: - $echo "Hello world" + $ echo "Hello world" Hello world -$ +$ Docbook also allows for formatting and display of common languages, allowing for whitespace and line returns just as they are written. Here's a sample snippet of C code with line numbering enabled: diff --git a/template/ch_template_overview.xml b/template/ch_template_overview.xml index a2e357b..a12b212 100644 --- a/template/ch_template_overview.xml +++ b/template/ch_template_overview.xml @@ -10,12 +10,12 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> The major sections of this document addresses the following topics: - Getting started: This section details tools and commands used to contribute to OpenPOWER documentation. + Get started: This section details tools and commands used to contribute to OpenPOWER documentation. All users who are new to OpenPOWER Foundation documentation should start here. Creating a new document: This section provides step-by-step instructions on how to create a new document - from scratch. Use this section to start a new documentation project. + from scratch. Use this section to start a new document. Modifying an existing document: This section highlights common steps in editing an existing OpenPOWER @@ -25,6 +25,10 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> Debugging build failures: This section provides examples of the two most common types of build failures and helps users find the relevant failure information. + + Understanding the project structure: This section provides detailed descriptions of the various project + components and their roles in the documentation creation process. + Policies and conventions: This secion contains the generally accepted guidelines for creating OpenPOWER documentation. Use this section as a reference @@ -47,6 +51,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> + diff --git a/template/figures/project_structure_graphic.bmp b/template/figures/project_structure_graphic.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3b7f4af4f3e66bf86553f4c944a0e584e78a582f GIT binary patch literal 995382 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�fA1VUuV2_d5;S9n@2srY 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 literal 0 HcmV?d00001 diff --git a/template/figures/project_structure_graphic.odg b/template/figures/project_structure_graphic.odg new file mode 100644 index 0000000000000000000000000000000000000000..17e60d40fa7cd2ad816bf12f68afeb192763dbf1 GIT binary patch literal 39539 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 literal 0 HcmV?d00001 diff --git a/template/sec_template_debugging.xml b/template/sec_template_debugging.xml index ed252c6..ef17853 100644 --- a/template/sec_template_debugging.xml +++ b/template/sec_template_debugging.xml @@ -2,7 +2,51 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_debug"> Debugging build failures - Maven/docbkx failures generally fall into one of two categories, validation errors or build failures. Correcting the document begins with understanding which type of failure has occurred and understanding where to look in your document source. + Maven/docbkx failures generally fall into these categories: + + Project structure errors + Docbook validation errors + Build failures + + Correcting the document errors starts with understanding which type of failure has occurred and + understanding where to look in your document source. + +
+ Project structure errors + + Because the OpenPOWER Foundation documentation projects are not self-contained in the + GitHub repositories, forgetting to clone the Docs-Master project in addition + to the document project or cloning it in the wrong location is a common problem. Failures of this kind + produce the following error: +... +[INFO] Scanning for projects... +[ERROR] The build could not read 1 project -> [Help 1] +[ERROR] +[ERROR] The project org.openpowerfoundation.docs:workgroup-pom:1.0.0-SNAPSHOT (/home/scheel/Docs-Template/pom.xml) has 1 error +[ERROR] Non-resolvable parent POM: Could not find artifact org.openpowerfoundation.docs:master-pom:pom:1.0.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 6, column 11 -> [Help 2] +[ERROR] +[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. +[ERROR] Re-run Maven using the -X switch to enable full debug logging. +[ERROR] +[ERROR] For more information about the errors and possible solutions, please read the following articles: +[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException +[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException + The identifying characteristic of this error type is the message, "Non-resolvable parent POM". This occurs because the + pom.xml file in the documentation project, called the "workgroup-pom" because of a project + <artifactId>workgroup-pom</artifactId> declaration, expects its parent pom file to be in the + location defined by the <relativePath>../Docs-Master/pom.xml</relativePath>, up one directory and + then in the Docs-Master director. + + + So, if you see the message "Non-resolvable parent POM", ensure that the Docs-Master project + and your project have been cloned + into the same parent directory. See for detailed directions on how to do this. + +
+ +
+ Docbook validation errors + Validation errors are generally indicated in the build output with text like the following: ... @@@@@@@@@@@@@@@@@@@@@@ @@ -11,7 +55,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_debug"> Note: Open the temporary file: -file:/home/user1/openpower-foundation-docbkx-framework/doc/template/target//bk_main.xml-invalid.xml +file:/home/user1/Docs-Template/template/target//bk_main.xml-invalid.xml to see all the errors in context. You must correct the errors in the original @@ -26,7 +70,7 @@ lineNumber: 272; columnNumber: 70; text not allowed here; expected element "add The full path and filename that contains the context for the failure. In the message above, this is -/home/user1/openpower-foundation-docbkx-framework/doc/template/target//bk_main.xml-invalid.xml. +/home/user1/Docs-Template/template/target//bk_main.xml-invalid.xml. The location within the file of the syntax error. For the above example, the key information is "lineNumber: 272; columnNumber: 70. @@ -35,6 +79,12 @@ lineNumber: 272; columnNumber: 70; text not allowed here; expected element "add An explanation of the failure. This information in the above error reads, "text not allowed here; expected element "address", ...". + +
+ +
+ Build failures + Build errors are easily identified as well. Below is an example: ... [INFO] ------------------------------------------------------------------------ @@ -46,21 +96,25 @@ lineNumber: 272; columnNumber: 70; text not allowed here; expected element "add [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.openpowerfoundation.docs:openpowerdocs-maven-plugin:1.0.0:generate-webhelp (generate-webhelp) on project openpower-template-guide: Execution generate-webhelp of goal org.openpowerfoundation.docs:openpowerdocs-maven-plugin:1.0.0:generate-webhelp failed: XInclude resource error (sec_template_new_document.xml) and no fallback provided. XProc error err:XD0011: org.xml.sax.SAXParseException; systemId: file:/home/user1/openpower-foundation-docbkx-framework/doc/template/sec_template_new_document.xml; lineNumber: 55; columnNumber: 17; The element type "para" must be terminated by the matching end-tag "</para>". -> [Help 1]... + Like validation errors, three key pieces of information are again provided: The full path and filename of our failure is -/home/user1/openpower-foundation-docbkx-framework/doc/template/sec_template_new_document.xml. +/home/user1/Docs-Template/template/sec_template_new_document.xml. The location within the file of the error is "lineNumber: 55; columnNumber: 17. - An explanation of the failure begins with the text, "The element type "para" must be terminated by the matching end-tag "</para>." + An explanation of the failure begins with the text, "The element type "para" must be terminated by the + matching end-tag "</para>." - With these details in hand for either error, one simply locates the offending syntax and makes the appropriate correction. Online resources such as those listed in may be helpful. + With these details in hand for either error, one simply locates the offending syntax and makes the appropriate + correction. Online resources such as those listed in may be helpful. +
diff --git a/template/sec_template_existing_document.xml b/template/sec_template_existing_document.xml index 04365b4..ab3fe52 100644 --- a/template/sec_template_existing_document.xml +++ b/template/sec_template_existing_document.xml @@ -2,19 +2,27 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_existing_document"> Modifying an existing document - To obtain a copy of the existing template document framework and all public documents from the - public OpenPOWER git repository, simply clone the project using this command:$git clone https://github.com/open-power/openpower-foundation-docbkx-framework.git -Cloning into 'openpower-foundation-docbkx-framework'... -remote: Counting objects: 288, done. -remote: Compressing objects: 100% (157/157), done. -remote: Total 288 (delta 121), reused 288 (delta 121) -Receiving objects: 100% (288/288), 12.41 MiB | 8.04 MiB/s, done. -Resolving deltas: 100% (121/121), done. + + To begin editing an existing document, you must first clone two projects -- the master document framework project and + the specific document project. Begin by cloning the master document as described in . + + Once complete, obtain a copy of the desired document by cloning its project. For example, to clone this document, + Master Template Guide, from the + public OpenPOWER Foundation git repository, use this + command:$ git clone https://github.com/OpenPOWERFoundation/Docs-Template.git +Cloning into 'Docs-Template'... +Username for 'https://github.com': my_userid +Password for 'https://my_userid@github.com': my_password +remote: Counting objects: 62, done. +remote: Compressing objects: 100% (10/10), done. +remote: Total 62 (delta 2), reused 0 (delta 0), pack-reused 52 +Unpacking objects: 100% (62/62), done. Checking connectivity... done. -~$ +$ - To build a document such as the template guide, follow these steps from the directory where you just cloned:$cd openpower-foundation-docbkx-framework/doc/template -$mvn clean + To build a specific document such as the template guide, follow these steps from the directory where + you just cloned:$ cd Docs-Template/template +$ mvn clean [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ @@ -22,7 +30,7 @@ Checking connectivity... done. [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ openpower-template-guide --- -[INFO] Deleting ~/openpower-foundation-docbkx-framework/doc/template/target +[INFO] Deleting ~/Docs-Template/template/target [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ @@ -30,7 +38,7 @@ Checking connectivity... done. [INFO] Finished at: Wed Feb 25 12:54:47 CST 2015 [INFO] Final Memory: 3M/7M [INFO] ------------------------------------------------------------------------ -$mvn generate-sources +$ mvn generate-sources [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ @@ -47,8 +55,20 @@ Checking connectivity... done. [INFO] Finished at: Wed Feb 25 12:55:15 CDT 2015 [INFO] Final Memory: 30M/390M [INFO] ------------------------------------------------------------------------ -$ - If all goes well, the generated pdf should be available in ~/openpower-foundation-docbkx-framework/doc/template/target/docbkx/webhelp/template-guide/. +$ + + The permutations of Maven invocations may be combined into one operation where the parameters are specified in the order + in which one wishes to execute them. Thus, the command mvn clean generate-sources would accomplish the + same thing as the above sequence of commands. + + If all goes well, the generated pdf should be available in ~/Docs-Template/template/target/docbkx/webhelp/template-guide/. + + For assistance correcting commmon build failures, see . + Projects may contain multiple documents. While specific documents can be built by executing a + mvn clean generate-sources in the specific document directory, executing this command in + the base project directory will build all projects identified in the <module> list in the + top-level pom.xml file, known as the "workgroup-pom". +
diff --git a/template/sec_template_getting_started.xml b/template/sec_template_getting_started.xml index d04285c..9302a65 100644 --- a/template/sec_template_getting_started.xml +++ b/template/sec_template_getting_started.xml @@ -5,10 +5,13 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_getting_star To begin contributing to the OpenPOWER Foundation documentation, the following steps must be completed: - Install tools + Installing tools - Create accounts + Creating accounts + + + Cloning master document information @@ -22,17 +25,17 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_getting_star source and maven provides the build framework to create the published content in PDF and html form. Installation steps for these tools varies by operating system. On Debian-based Linux operating systems (Ubuntu and Debian), install maven and git as follows: - #apt-get install git -#apt-get install maven + # apt-get install git +# apt-get install maven On RPM-based Linux operating systems (Fedora, RHEL, openSUSE, SLES), install maven and git as follows: - #yum install git -#yum install maven + # yum install git +# yum install maven On Mac OS X, use Macports to install maven and git as follows: - #port install git -#port install maven3 + # port install git +# port install maven3 or use Homebrew to install maven and git as follows: - $brew install git -$brew install maven + $ brew install git +$ brew install maven For information on how to setup the environment on Windows, see the following websites: @@ -44,22 +47,43 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_getting_star + Modification of documentation source files requires a text editor. While standard editors like vim, emacs, or gedit can be used, + it is highly recommended that an editor be used which highlights XML or Docbook syntax. If your favorite editor does not include an + extension or plugin to accomplish this, you might consider using Bluefish to edit your docbook files. Details on this editor + can be found at http://bluefish.openoffice.nl/index.html. -
+
Creating accounts All OpenPOWER project documentation is maintained in GitHub trees, public and private. The first step to creating documentation will be joining the GitHub community. To join the GitHub community, apply at https://github.com/join. - The private trees are grouped in the OpenPOWER Foundation project at + The OpenPOWER Foundation documentation trees are grouped in the OpenPOWER Foundation project at https://github.com/OpenPOWERFoundation. - If you will be participating in private OpenPOWER Foundation trees, you will need to visit the OpenPOWER Foundation Members - Area wiki to find administrators for the appropriate git tree. + Everyone should be able to see and access public trees like Docs-Master. However, + if you will be participating in private OpenPOWER Foundation trees, you will need to request access from the + Technical Steering Committee Chair, tsc-chair@openpowerfoundation.org. To learn more about using git, see the online article in GitHub Help, "Good Resources for Learning Git and GitHub." at https://help.github.com/articles/good-resources-for-learning-git-and-github/.
+
+ Cloning master document information + To successfully build OpenPOWER Foundation documents, common document files must be in place in addition to the specific + document files. These common files are obtained by cloning the OpenPOWER Foundation public project Docs-Master. + To clone the master template document framework use the clone git command:$ git clone https://github.com/OpenPOWERFoundation/Docs-Master.git +Cloning into 'Docs-Master'... +remote: Counting objects: 24, done. +remote: Compressing objects: 100% (18/18), done. +remote: Total 24 (delta 6), reused 20 (delta 5), pack-reused 0 +Unpacking objects: 100% (24/24), done. +Checking connectivity... done. +$ + More information can be found about the Docs-Master project online at + https://github.com/OpenPOWERFoundation/Docs-Master. Additional details about the OpenPOWER Foundation documentation structure + are explained in of this document. +
diff --git a/template/sec_template_new_document.xml b/template/sec_template_new_document.xml index 78c1ecb..845f31b 100644 --- a/template/sec_template_new_document.xml +++ b/template/sec_template_new_document.xml @@ -4,69 +4,176 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_new_document Creating a new document Creating a new document from scratch follows four simple steps: - - Clone the appropriate template document framework. - - - Copy the template directory into a new project directory. - - - Modify core project files. - - - Begin adding document content, either from scratch or from another document. - + + Cloning the project source. + + + Finding a document framework. + + + Modifying core project files. + + + Adding new document content. +
- Cloning the base document framework - All new projects need to begin by cloning the appropriate documentation template. The template document project resides at https://github.com/open-power/openpower-foundation-docbkx-framework.git. This template should be used for both private and public OpenPOWER Foundation documents. - To clone the existing template document framework use the clone git command:$git clone https://github.com/open-power/openpower-foundation-docbkx-framework.git -Cloning into 'openpower-foundation-docbkx-framework'... -remote: Counting objects: 288, done. -remote: Compressing objects: 100% (157/157), done. -remote: Total 288 (delta 121), reused 288 (delta 121) -Receiving objects: 100% (288/288), 12.41 MiB | 8.04 MiB/s, done. -Resolving deltas: 100% (121/121), done. + Clone the project source. + All documentation projects reside in a project directory maintained in GitHub, just like the + Docs-Master framework described in . In the same directory + where the Docs-Master project has been cloned, you will need to + clone the documentation source for your project. A list of the OpenPOWER Foundation projects can be found at + https://github.com/OpenPOWERFoundation/. Select + the project from this list. + + If you do not see the project for which you are looking, you may not be authorized to it. See + for details about joining the OpenPOWER Foundation private projects. If you + feel that you need a new GitHub project, work with the + Technical Steering Committee Chair, tsc-chair@openpowerfoundation.org, to request and get this setup. + + To clone an OpenPOWER Foundation project like Docs-Template issue the following + command:$ git clone https://github.com/OpenPOWERFoundation/Docs-Template.git +Cloning into 'Docs-Template'... +Username for 'https://github.com': my_userid +Password for 'https://my_userid@github.com': my_password +remote: Counting objects: 62, done. +remote: Compressing objects: 100% (10/10), done. +remote: Total 62 (delta 2), reused 0 (delta 0), pack-reused 52 +Unpacking objects: 100% (62/62), done. Checking connectivity... done. -$ - This command clones the head of the git tree into your current working directory. If successful, the contents of the current directory should now include a new openpower-foundation-docbkx-framework directory. -
+$ The results should look roughly something like above with actual numbers of objects, files, etc. varying + for different projects. + Private projects prompt for a GitHub userid and and password. When cloning public projects, these prompts + are skipped. + + The base project has now been cloned. + +
- Copying the template directory into a new project directory - To create a new document directory, follow these steps: + Finding a document framework + If this is your first document, in a brand new project (git tree), you have the fewest number of steps + to perform because your project should have been primed with a single project based on Docs-Template. + You can verify this by inspecting + the files in your project directory. A new project will contain a template directory, a pom.xml + file, a LICENSE file, and a README.md file. If this is the case, you simply + need to perform the following three steps: + - - Navigate down to the doc sub-directory. On Linux and Mac OS command lines, this can be achieved using the cd command: -$cd /openpower-foundation-docbkx-framework/doc -$ - This directory should contain at least two directories, one named doc and another template, as well as a pom.xml file. + + Navigate down to your project directory, called my_project for this example. This can be achieved + using the cd command: +$ cd ~/my_project +$ + This directory should contain the template folder used to prime the project. - To create a new project directory, simply create a new directory and copy the contents of the template directory. If creating a new project named my_proj via a command line in Linux or Mac OS, the command sequence would look like this: -$mkdir my_proj -$cp -r template/* my_proj -$ + Rename the template document directory to something new like my_doc. + To accomplish this, use the mv command:: +$ mv template/ my_doc - Add the new project to the master POM.xml file. Using your editor, add the following lines - between the <modules> and the </modules> tags near the top of the file:my_proj + Change the project name in the workgroup POM.xml file. Using your editor, change this line + between the <modules> and the </modules> tags near the top of the + file:template +]]> to read like this:my_doc ]]> + + + + If this is not the first document in the project, then you can either begin by copying an existing document or by cloning the + Docs-Template project. To copy an existing project, follow these steps: + + + + Navigate down to your project directory, called my_project for this example. + This can be achieved using the cd command: +$ cd ~/my_project +$ + This directory should contain the folder name of the document wishing to be copied, called source_doc + for clarity in these directions. - Finally, make sure to add the new directory to the git repository. -$git add my_proj + To create a new document directory, simply create a new directory and copy the contents of the source_doc + directory. If creating a new directory named my_doc via a command line, the command + sequence would look like this: +$ mkdir my_doc +$ cp -r source_doc/* my_doc +$ + + + Add the new project to the workgroup POM.xml file. Using your editor, add the following lines + between the <modules> and the </modules> tags near the top of the file:my_doc +]]> + + + + Instead of copying an existing document, you may want to start with the template document source. The steps to do this + are similar to those above, but with a few more commands. The following commands will create a new document based on the + the master template: + + + + Navigate down to your project directory, called my_project for this example. + This can be achieved using the cd command: +$ cd ~/my_project +$ + This directory should contain any existing document folders along with at least a pom.xml file, a + LICENSE file, and a README.md file. + + + Clone the the template project into your working directory with this + command:$ git clone https://github.com/OpenPOWERFoundation/Docs-Template.git +Cloning into 'Docs-Template'... +Username for 'https://github.com': my_userid +Password for 'https://my_userid@github.com': my_password +remote: Counting objects: 62, done. +remote: Compressing objects: 100% (10/10), done. +remote: Total 62 (delta 2), reused 0 (delta 0), pack-reused 52 +Unpacking objects: 100% (62/62), done. +Checking connectivity... done. +$ + + + To create a new project directory, simply create a new directory and copy the contents of the Docs-Template/template + directory. If creating a new project named my_doc via a command line, the command + sequence would look like this: +$ mkdir my_doc +$ cp -r Docs-Template/template/* my_doc +$ + + + Once copied, the Docs-Template directory and all its contents should be removed from your project so that it does accidentally get + included in your project. The command rm -rf Docs-Template + + + Finally, add the new project to the workgroup POM.xml file. Using your editor, add the following lines + between the <modules> and the </modules> tags near the top of the file:my_doc +]]> -
-
+ Before committing the project back to git, you will need to add the new directory to the git repository. This can + be performed using the git add my_doc/ command on the whole directory. + + + + You are now ready to begin making updates to your new document. The next section will provided detailed steps of where to + get started. +
+ +
Modifying core project files - The first step to customizing a new project is to modify two core project files--pom.xml and bk_main.xml. Within these two files are XML comment tags that begin "<!-- TODO:" to identify places which need customization. The surrounding comments will provide guidance on what needs to change and how it may be changed. Simply work through each item, making updates as requested. - Be sure to remember two key values you used in the pom.xml file, <webhelpDirname> and <pdfFilenameBase>, as these will be used to locate your generated document. - When complete, be sure to build your new document using standard maven commands like this:$cd openpower-foundation-docbkx-framework/doc/template -$mvn clean + The first step to customizing a new project is to modify two core project files--pom.xml + and bk_main.xml. Within these two files are XML comment tags that begin "<!-- TODO:" + to identify places which need customization. The surrounding comments will provide guidance on what needs to change and how + it may be changed. Simply work through each item, making updates as requested. + Be sure to remember two key values you used in the pom.xml file, <webhelpDirname> + and <pdfFilenameBase>, as these will be used to locate your generated document. + When complete, be sure to build your new document using standard maven commands like + this:$ cd my_proj/my_doc +$ mvn clean [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ @@ -74,7 +181,7 @@ Checking connectivity... done. [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ openpower-template-guide --- -[INFO] Deleting ~/openpower-foundation-docbkx-framework/doc/my_proj/target +[INFO] Deleting ~/my_doc/my_proj/target [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ @@ -82,7 +189,7 @@ Checking connectivity... done. [INFO] Finished at: Wed Feb 25 12:54:47 CST 2015 [INFO] Final Memory: 3M/7M [INFO] ------------------------------------------------------------------------ -$mvn generate-sources +$ mvn generate-sources [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ @@ -99,28 +206,45 @@ Checking connectivity... done. [INFO] Finished at: Wed Feb 25 12:55:15 CDT 2015 [INFO] Final Memory: 30M/390M [INFO] ------------------------------------------------------------------------ -$ - If all goes well, the new generated pdf should be available in target/docbkx/webhelp/<webhelpDirname>/<pdfFilenameBase>.pdf. +$ + If all goes well, the new generated pdf should be available in + target/docbkx/webhelp/<webhelpDirname>/<pdfFilenameBase>.pdf. + For assistance correcting commmon build failures, see . + + The permutations of Maven invocations may be combined into one operation where the parameters are specified in the order + in which one wishes to execute them. Thus, the command mvn clean generate-sources would accomplish the + same thing as the above sequence of commands.
-
- Adding new content - The starting point for book content is the bk_main.xml file (or whatever to which it was renamed in the previous step). Removal and additions of the main chapter files files will be controlled by entries near the end of that file which appear as follows: - +
+ Adding new content + + The starting point for book content is the bk_main.xml file (or whatever to which it was renamed + in the previous step). Removal and additions of the main chapter files files will be controlled by entries near the + end of that file which appear as follows: + - - + + - + ]]> - Copying and modifying existing files from the template or other documents is a great way to get started. When creating whole new chapter or appendix files from scratch, the ch_example.xml and app_template.xml files may serve as excellent starting points. For XML examples of various document structures, please see and its supporting source files in this document. Online resources such as those listed in may also be helpful. - When creating new files for the project, remember to use the git add <file name> command to add new files to the git tree. + + Copying and modifying existing files from the template or other documents is a great way to get started. When creating + whole new chapter or appendix files from scratch, the ch_example.xml and app_template.xml files + may serve as excellent starting points. For XML examples of various document structures, please see + and its supporting source files in this document. Online resources such as those listed in + may also be helpful. + + When creating new files for the project, remember to use the git add <file name> command to + add new files to the git tree. +
diff --git a/template/sec_template_policies.xml b/template/sec_template_policies.xml index 36c0b98..80b82ef 100644 --- a/template/sec_template_policies.xml +++ b/template/sec_template_policies.xml @@ -2,14 +2,17 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_policies"> Policies and conventions - Most document style policies are established simply by using the template documentation framework. However, by applying some conventions to the document source structure, community members will be able to work across more documentation projects. + Most document style policies are established simply by using the template documentation framework. However, + by applying some conventions to the document source structure, community members will be able to work across more d + ocumentation projects. The recommended documentation structure guidelines are as follows: The head book file should be named with the prefix "bk_". - The document versioning as defined by the releaseinfo tag in the main book file bk_xxx should be named "Revision N.N", not "Version N.N" or simply "N.N" + The document versioning as defined by the releaseinfo tag in the main book + file bk_xxx should be named "Revision N.N", not "Version N.N" or simply "N.N" Chapters files should be named with the prefix "ch_". @@ -27,9 +30,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_template_policies"> In addition to documentation documentation structure, general community/project guidelines are as follows - + + Contributions to the documentation projects should conform to the Developer Certificate + Of Origin as defined at + http://elinux.org/Developer_Certificate_Of_Origin. Submissions of patches to GitHub project need + to contain the following line to indicate the submitter accepts the + DCO:Signed-off-by: Your name >your_email@domain.com + - diff --git a/template/sec_template_structure.xml b/template/sec_template_structure.xml new file mode 100644 index 0000000..0a8ed64 --- /dev/null +++ b/template/sec_template_structure.xml @@ -0,0 +1,70 @@ +
+ + Understanding the project structure + The OpenPOWER Foundation documentation build process involves dependency on a common + framework and shared files. As such a deeper explanation about the relationships of key projects and their + components may be helpful to prevent and diagnose documentation build problems. This section + provides a pictorial layout of key files and explains their roles and relationships. + + As mentioned multiple times throughout this guide, successful build of any OpenPOWER Foundation + document requires two things: + + The cloning of the Docs-Master project. + The cloning of the specific documentation project into the same parent directory as the + Docs-Master project. + + To begin to understand why, let us use a picture. The following graphic illustrates + the directory structure of three projects -- two + Docs-Master and Docs-Template, both existing OpenPOWER Foundation GitHub projects and a + hypothetical new project named my_project. + +
+ Directory structure and key files in the OpenPOWER Foundation Docbook projects + + + + + +
+ + To create this structure, one would get the green directories and files by cloning Docs-Master, blue + directories and files by cloning Docs-Template, and the red files by cloning a hypothetical project + my_project. + + Among these directories, the most important directory and project is Docs-Master. Without this project + and associated directory, no document will build. As depicted in the above figure, the Docs-Master directory + must sit at a level equal to all other project directories. Details on how to install this project can be found in the + section. + + Inside the Docs-Masterproject directory, the two most important pieces are a + commmon directory + and a pom.xml file. The directory contains common files used by all projects such as the common preface + (ch_preface.xml) and the common appendix (app_foundation.xml. The pom.xml file + in this directory serves as the "Master POM" for all builds. This file references the OpenPOWER Maven Plugin JAR + (found in the OpenPOWER Foundation Repository at + http://openpowerfoundation.org/repo.openpowerfoundation.org/) + used to control the OpenPOWER + Foundation document builds where all other dependencies, supporting tools, and document build rules are defined. + + The Docs-Template project and directory are depicted in blue in the above figure. The top level of the + project Docs-Template must be cloned into the same parent directory as the Docs-Master + for Maven builds to complete successfully. + At the top level of the Docs-Template project + are a pom.xml referred to as the "Workgroup POM" and a single document directory (template). + The "Workgroup POM" is a minimal POM file that locates the the parent, "Master POM" in the Docs-Masterproject directory + with a <relativePath> definition of ../Docs-Master/pom.xml. + The document directory contains the unique files used to create the document. The two most important files in the + Docs-Template/template directory(and in any project) are the pom.xml or "Document POM" which describes + how to build the document and which points to the main document file, the bk_main.xml file. This book file + contains all the Docbook source, directly or through include statements (<xi:include href="..."), + to build the document. + + For completeness of understanding, a hypothetical project my_project is also depected in red. Like all + OpenPOWER Foundation projects, it is cloned at the correct level, equal to Docs-Master. Like the + Docs-Template project, it has a "Workgroup POM" which will differ only in the <modules> + section where it will describe two document projects, my_doc_1 and my_doc_2. But, each + document directory has similar contents to Docs-Template/template -- a "Document POM" (pom.xml) + and a "Main book file" (bk_main.xml). +
+