All raw documentation content is managed in the FOP CVS repository. Updates should be committed to the repository, then the repository files are used to generate usable output. The remaining discussions on this page assume that the CVS repository is the starting place for processing. The path to the documentation is xml-fop/src/documentation/content/xdocs.
Basic documents are stored in XML files, and use DTDs provided by Apache Forrest.
These principles are not written in stone, but reflect the current philosophy, and are documented here primarily to help achieve consistency. These principles should be changed if better or more practical ones are found, but they should probably be discussed and changed by common consent.
The documentation and the product are in a constant state of change, and there is some difficulty in deciding what product state the website content should reflect. The current thinking is that the website should reflect the current state of the repository code branch from which releases are made. Features or other documentation that applies to unreleased code should be marked in such a way within the content that the user can determine whether and how it applies to the version they are using. For example, "Feature xyz is first available in Release n.nn.n".
Other approaches were considered, but all seemed to have significantly higher costs both to the users and the developers. From the user's standpoint, the choice is either that they potentially have to look multiple places to get the information they need (which was rejected), or they have to filter out an occasional feature that is in code available subsequent to their release (which was accepted).
The FOP web site and documentation are generated using Apache Forrest.
The following table summarizes the flow of data to the FOP website in chronological order:
Process | Output | State | View(s) |
---|---|---|---|
Developer commits code to FOP repository. | FOP source repository (cvs) at icarus.apache.org/home/cvs/xml-fop | Raw XML and other content | ViewCVS |
Forrestbot "refresh". Automatically done every six hours. Can be manually refreshed by authorized users at the Forrestbot Web Interface. | Physical location unknown and unimportant to us | web-ready | Content can be viewed here. |
Forrestbot "publish". Always done manually at the Forrestbot Web Interface. | FOP web repository (cvs) at icarus.apache.org/home/cvs/xml-site/targets/fop | web-ready | ViewCVS |
Automatic Live Site Update every six hours (midnight, 6am, noon, 6pm Pacific time). | FOP live web site, somewhere on daedalus.apache.org | web-ready | FOP Web Site |
To manually use the Forrestbot "refresh", simply follow these steps:
To "publish" the Forrestbot output to the FOP Web repository:
If there are problems with the live site update (the process of copying the web site contents from the FOP web repository to the live site:
There are some situations where you may want to have a local Forrest installation. For example, you do not want to tie up server resources testing major changes, such as sitemap building, that may require many edit/build/test/debug cycles. After you are done testing, use the forrestbot to "refresh" and "publish" the site.
To use a local Forrest:
The one place where manual updates of the web cvs repository are required is when a document is retired. At this point, it will no longer be generated. However, it will still exist in the web cvs repository. You will need to use a cvs client to remove the files, then commit the changes to keep them from continuing to exist on the live site.