Return-Path:
Status.xml if an XML file that records the actions that have been taken in each release
- of a project. You can then generate a Change Log from that file using the projectInfo
- plugin.
+ Status.xml if an XML file that records the actions that have been taken
+ in each release of a project. You can then generate a Change Log from
+ that file using the projectInfo plugin.
+ Provide a central location and a semi-structured format for recording
- actions taken during project development. This file can then be used to
- generate various views on the changes in a release. For example:
+ Provide a central location and a semi-structured format for recording
+ actions taken during project development. This file can then be used
+ to generate various views on the changes in a release. For example:
+ In your favourite XML editor either create a new file
- or open an existing status.xml file. The default location of these files
- within a Forrest content object is in the project root. This file should
- conform to one of the status.xml schemas. The root element for this
- document is
+ In your favourite XML editor either create a new file or open an
+ existing status.xml file. The default location of these files within
+ a Forrest content object is in the project root. This file should
+ conform to one of the status.xml schemas. The root element for this
+ document is In order to attribute changes to a specific developer it is neceessary to create
- a
+ In order to attribute changes to a specific developer it is
+ neceessary to create a Each action within a release is given a context to help classify changes.
- When reports are created the context of an action is used to create a more
- readable report in which similar actions are grouped together. You can
- specify any contexts you like within the Common contexts used in an software development project are:
status
.status
.
+ developers
element. Within this element you should add a single
- person
element for each develop who works on the project.developers
element. Within this
+ element you should add a single person
element for each
+ develop who works on the project.
+ contexts
element.
+ Common contexts used in an software development project are: +
+ + ]]> +Actions that describe the changed in a release are placed within
- a changes
.
+ Actions that describe the changed in a release are placed within a
+ changes
.
+
The details of each release are enclosed within a release
element,
- so you need to create that now.
+ The details of each release are enclosed within a
+ release
element, so you need to create that now.
+
Each release can have a
+ Each release can have a During the development cycle for the release If the change is of particular significance and you woul dlike it to appear
- in the release notes generated by the projectInfo plugin you should set the
- notes
section. This is used
- to provide descriptive text at the start of many reports. The notes
+ notes
section. This is used to
+ provide descriptive text at the start of many reports. The notes
should describe the release in fairly high level detail, it should
- not describe any change descriptions, these will be added in the
- next step.action
elements
- should be added for each significant contribution to the release.importance
attribute to "high"
.
+ During the development cycle for the release action
+ elements should be added for each significant contribution to the
+ release.
+
+ If the change is of particular significance and you woul dlike it to
+ appear in the release notes generated by the projectInfo plugin you
+ should set the importance
attribute to
+ "high"
.
+
action
element.To generate a changelog from your status.xml file you need to request
- /changes.html
or changes.pdf
or whatever format
- you have enabled within Forrest using output plugins.
Note that the projectInfo plugin provides a special RSS output format
- of. Technically, this should not be part of an input plugin and therefore
- it may be moved at a later date. However, you will always be able to
- generate the RSS feed by requesting changes.rss
.
You can generate a change log for a specific version by specifying a
- version number in the request, for example, changes_0.1.html
.
+ To generate a changelog from your status.xml file you need to
+ request /changes.html
or changes.pdf
or
+ whatever format you have enabled within Forrest using output
+ plugins.
+
+ Note that the projectInfo plugin provides a special RSS output
+ format of. Technically, this should not be part of an input plugin
+ and therefore it may be moved at a later date. However, you will
+ always be able to generate the RSS feed by requesting
+ changes.rss
.
+
+ You can generate a change log for a specific version by specifying a
+ version number in the request, for example,
+ changes_0.1.html
.
+
Write semi-structured use case documents so that they can be reused in a variety of ways. - This use case describews a process for writing such documents. This document is derived from - such a source document.
- ++ Write semi-structured use case documents so that they can be reused in a + variety of ways. This use case describews a process for writing such + documents. This document is derived from such a + source document. +
A use case describes a unit of work. It is typically used in the design - stages of a software project. It is very useful for describing what an applicaiton must - do and what patchs through the system can be taken.
- -By bringing this information together in a semi-structured document we can use it in many - different ways. For example:
- ++ A use case describes a unit of work. It is typically used in the + design stages of a software project. It is very useful for describing + what an applicaiton must do and what patchs through the system can be + taken. +
++ By bringing this information together in a semi-structured document we + can use it in many different ways. For example: +
/content/documentation/useCases/**.xml
+ /content/documentation/useCases/**.xml
A use case is enclosed within a useCase
element.
- Each use case should be given a brief title
to describe it.
+ A use case is enclosed within a useCase
element. Each
+ use case should be given a brief title
to describe it.
+
Each use case should be described in terms of:
-This information should be placed in the description
element
- of your use case. This node allows any XDoc markup and therefore you are
- reasonably free to use whatever formatting or images are needed to convey the
- important details most efficiently.
+ Each use case should be described in terms of: +
+
+ This information should be placed in the description
+ element of your use case. This node allows any XDoc markup and
+ therefore you are reasonably free to use whatever formatting or
+ images are needed to convey the important details most efficiently.
+
Each use case will be subdivided into one or more steps that must be carried out
- in order to complete the task. Each of these steps is defined within a step
- element which are chilren of a steps
element.
Each step has a title and a description. The description should provide enough information - for a user to complete the task and for a developer to implement support for the user in that - task.
- -In addition each step can be described as required or optional. By default a step is assumed
- be required. To set it to optional add a required="false"
attribute to the
- step
element.
+ Each use case will be subdivided into one or more steps that must be
+ carried out in order to complete the task. Each of these steps is
+ defined within a step
element which are chilren of a
+ steps
element.
+
+ Each step has a title and a description. The description should + provide enough information for a user to complete the task and for a + developer to implement support for the user in that task. +
-Provide, within a result
a brief description of the expected results from
- this step. This should summarise what state the application will be in once this use case
- has been performed.
+ In addition each step can be described as required or optional. By
+ default a step is assumed be required. To set it to optional add a
+ required="false"
attribute to the step
+ element.
+
+ Provide, within a result
a brief description of the
+ expected results from this step. This should summarise what state
+ the application will be in once this use case has been performed.
+
A fixme note is enclosed within a fixme
element. It describes something that
- remains to be done within this step. Each fixme has a priority attribute which can take one of
- of the followin values:
+ A fixme note is enclosed within a fixme
element. It
+ describes something that remains to be done within this step. Each
+ fixme has a priority attribute which can take one of of the followin
+ values:
+
Although this step is optional, it is good practice to allways add a
- <fixme priority="blocker">Not yet implemented</fixme>
- element to all new steps. This is becuase these nodes will be used to build a
- functionality matrix later on.
+ Although this step is optional, it is good practice to allways add a
+ <fixme priority="blocker">Not yet
+ implemented</fixme>
element to all new steps. This is
+ becuase these nodes will be used to build a functionality matrix
+ later on.
+
Sometimes there will be alternative paths through each step. These can be described in an
- alternatives
element that allows free-form XDoc content. However, please be
- careful, if an alternative is more than a simple variation you may want to consider a
- whole new use case for the alternative.
Developer implementation notes for each of the steps should be added either when writing the - initial use case or later during the development phases of the use case. These notes are for technical readers - and are intended to help those who come after the initial author to get a starting point when inspecting how - a feature is implemented. It is not intended that these notes will contain full implementation details, only an - overview should be provided.
-
+ Sometimes there will be alternative paths through each step. These
+ can be described in an alternatives
element that allows
+ free-form XDoc content. However, please be careful, if an
+ alternative is more than a simple variation you may want to consider
+ a whole new use case for the alternative.
+
+ Developer implementation notes for each of the steps should be added + either when writing the initial use case or later during the + development phases of the use case. These notes are for technical + readers and are intended to help those who come after the initial + author to get a starting point when inspecting how a feature is + implemented. It is not intended that these notes will contain full + implementation details, only an overview should be provided. +
+Generate a complete list of all use cases for a project in a format useful to - developers of the application. This list is to include:
- ++ Generate a complete list of all use cases for a project in a format + useful to developers of the application. This list is to include: +
A use case describes a unit of work. It is typically used in the design - stages of a software project, however, they can often be useful in creating - user documentaiton. Especially when they describe user interface functionality.
- -+ A use case describes a unit of work. It is typically used in the + design stages of a software project, however, they can often be useful + in creating user documentaiton. Especially when they describe user + interface functionality. +
+- Request - http://localhost:8888/docs/developer/useCases.xml + Request http://localhost:8888/docs/developer/useCases.xml
Depending on what plugins are available within your running instance of Forrest you will - be able to request different output formats as per the usual Forrest usage. For example requesting - a http://localhost:8888/docs/developer/useCases.html will generate the HTML document, whilst - http://localhost:8888/docs/developer/useCases.pdf will generate the PDF document (as long - as you have the relevant plugins installed).
++ Depending on what plugins are available within your running instance + of Forrest you will be able to request different output formats as + per the usual Forrest usage. For example requesting a + http://localhost:8888/docs/developer/useCases.html will generate the + HTML document, whilst + http://localhost:8888/docs/developer/useCases.pdf will generate the + PDF document (as long as you have the relevant plugins installed). +
The source document for use cases is, by default, called useCases.xml
and is
- located in the root of the projects xdocs directory.
The URL space docs/**/useCases.xml
is reserved for the projectInfo plugin. A request to
- /docs/developer/useCases.xml results in the useCases.xml file being translated into an XDoc as per
- the usual forrest processing. See the input.xmap file fo this plugin,
+ The source document for use cases is, by default, called
+ useCases.xml
and is located in the root of the
+ projects xdocs directory.
+
+ The URL space docs/**/useCases.xml
is reserved for
+ the projectInfo plugin. A request to /docs/developer/useCases.xml
+ results in the useCases.xml file being translated into an XDoc as
+ per the usual forrest processing. See the input.xmap file fo this
+ plugin,
+
Generate a complete list of all use cases for a project. This list is to include:
- ++ Generate a complete list of all use cases for a project. This list is to + include: +
A use case describes a unit of work. It is typically used in the design - stages of a software project, however, they can often be useful in creating - user documentaiton. Especially when they describe user interface functionality.
- -+ A use case describes a unit of work. It is typically used in the + design stages of a software project, however, they can often be useful + in creating user documentaiton. Especially when they describe user + interface functionality. +
+- Request - http://localhost:8888/docs/user/useCases.xml + Request http://localhost:8888/docs/user/useCases.xml
Depending on what plugins are available within your running instance of Forrest you will - be able to request different output formats as per the usual Forrest usage. For example requesting - a http://localhost:8888/docs/user/useCases.html will generate the HTML document, whilst - http://localhost:8888/docs/user/useCases.pdf will generate the PDF document (as long - as you have the relevant plugins installed).
++ Depending on what plugins are available within your running instance + of Forrest you will be able to request different output formats as + per the usual Forrest usage. For example requesting a + http://localhost:8888/docs/user/useCases.html will generate the HTML + document, whilst http://localhost:8888/docs/user/useCases.pdf will + generate the PDF document (as long as you have the relevant plugins + installed). +
The source document for use cases is, by default, called useCases.xml
and is
- located in the root of the projects xdocs directory.
The URL space docs/**/useCases.xml
is reserved for the projectInfo plugin. A request to
- /docs/user/useCases.xml results in the useCases.xml file being translated into an XDoc as per
- the usual forrest processing, see input.xmap for more details.
+ The source document for use cases is, by default, called
+ useCases.xml
and is located in the root of the
+ projects xdocs directory.
+
+ The URL space docs/**/useCases.xml
is reserved for
+ the projectInfo plugin. A request to /docs/user/useCases.xml
+ results in the useCases.xml file being translated into an XDoc as
+ per the usual forrest processing, see input.xmap for more details.
+
If a use case document is correcly marked up with fixme
elements it is possible
- to create a functionality matrix for each use case. This will show how complete the implementation
- of a use case is.
A table can be created which shows each of the steps in a use case, each step can be given a
- count for the bumber of fixme items outstanding on each of the steps. Furthermore, since each
- fixme
is given a priority we can clearly indicate which use cases are operational an
- hich are not.
+ If a use case document is correcly marked up with fixme
+ elements it is possible to create a functionality matrix for each use
+ case. This will show how complete the implementation of a use case is.
+
+ A table can be created which shows each of the steps in a use case, each
+ step can be given a count for the bumber of fixme items outstanding on
+ each of the steps. Furthermore, since each fixme
is given a
+ priority we can clearly indicate which use cases are operational an hich
+ are not.
+
- An XDoc is created that lists the steps in each use case and identifies the status - of each use case. + An XDoc is created that lists the steps in each use case and + identifies the status of each use case.
Depending on what plugins are available within your running instance of Forrest you will - be able to request different output formats as per the usual Forrest usage. For example requesting - a http://localhost:8888/docs/developer/featureMatrix/useCases.html will generate the HTML document, whilst - http://localhost:8888/docs/developer/featureMatrix/useCases.pdf will generate the PDF document (as long - as you have the relevant plugins installed).
++ Depending on what plugins are available within your running instance + of Forrest you will be able to request different output formats as + per the usual Forrest usage. For example requesting a + http://localhost:8888/docs/developer/featureMatrix/useCases.html + will generate the HTML document, whilst + http://localhost:8888/docs/developer/featureMatrix/useCases.pdf will + generate the PDF document (as long as you have the relevant plugins + installed). +
The source document for use cases is, by default, called useCases.xml
and is
- located in the root of the projects xdocs directory.
The URL space docs/**/useCases.xml
is reserved for the projectInfo plugin. A request to
- /docs/developer/featureMatrix/useCases.xml results in the useCases.xml file being translated into an XDoc as per
- the usual forrest processing. See the input.xmap file fo this plugin,
+ The source document for use cases is, by default, called
+ useCases.xml
and is located in the root of the
+ projects xdocs directory.
+
+ The URL space docs/**/useCases.xml
is reserved for
+ the projectInfo plugin. A request to
+ /docs/developer/featureMatrix/useCases.xml results in the
+ useCases.xml file being translated into an XDoc as per the usual
+ forrest processing. See the input.xmap file fo this plugin,
+
This plugin generates project info from various configuration files.
++ This plugin generates project info from various configuration files. +
By maintaining a file called status.xml
you can manage a list
- changes to your code base. This list can then be generated as a changes
- page and/or an RSS feed of those changes. For example, here are the
- changes for this plugin, here is the same
- list of changes as an RSS feed.
It's possible to limit the displayed changes to a particular version - number as well. For example, here are the changes for - version 0.1 of this plugin (and - as an RSS feed).
- -If you want to only retrieve the changes for the most recent version - of the project then you can do that too. Here are the changes in the - current development version of this - plugin (and once more as an RSS feed).
- +
+ By maintaining a file called status.xml
you can manage a
+ list changes to your code base. This list can then be generated as a
+ changes page and/or an RSS feed of those changes. For example, here are
+ the changes for this plugin, here is the same
+ list of changes as an RSS feed.
+
+ It's possible to limit the displayed changes to a particular version + number as well. For example, here are the changes for + version 0.1 of this plugin (and as an + RSS feed). +
++ If you want to only retrieve the changes for the most recent version of + the project then you can do that too. Here are the changes in the + current development version of this + plugin (and once more as an RSS feed). +
You can generate as well the changes with svn. For this you need to
- point forrest to the directory where the svn logs are. The defaut is
- set to {properties:content}svn-log/
and you can change it by
- setting projectInfo.svn.log.dir
in your project
- locationmap.
We created a log file for demonstration with the following command:
+
+ You can generate as well the changes with svn. For this you need to
+ point forrest to the directory where the svn logs are. The defaut is set
+ to {properties:content}svn-log/
and you can change it by
+ setting projectInfo.svn.log.dir
in your project
+ locationmap.
+
+ We created a log file for demonstration with the following command: +
-This file reflect all changes that have been done to this plugin. You - can see the result log.svn.html.
-You see the only context we have definied is "code". This is
- controlled by a mapper file. The defaut is set to
- {properties:content}path-to-context.xml
and you can change it
- by setting projectInfo.svn.mapper
in your project
- locationmap.
+ If the log file is growing, one is looking into splitting the file. You + can find out the revision number of the first and last commit of a month + within the log by requesting + log.svn-revision.xml. +
+
+ We implemented as well a small svn cli output to generate log files per
+ month log.svn-sh.xml. The defaut url is set
+ to http://svn.myHost.org/repos
and you can change it by
+ setting project.svn.url
in your project locationmap.
+
The status.xml file can also be used to manage a list of todo items for - the community. For example, here is a - psuedo todo list for this plugin (our real todo list - is managed in an Issue Tracker, one day we hope to add support for that - here too).
++ The status.xml file can also be used to manage a list of todo items for + the community. For example, here is a psuedo todo + list for this plugin (our real todo list is managed in an Issue + Tracker, one day we hope to add support for that here too). +
To produce release notes you must maintain a status.xml
file
- for your project and request a page with an URL such as
- http://domain.com/releaseNotes_0.7-dev.html
, this will be produce
- the release notes for 0.7-dev.
If the version number ends with -dev
a warning will be included
- in the generated page, informing the reader that it is a development version and
- therefore the list of changes is incomplete.
For a status.xml
action
toi be included in the
- release notes it must have an attribute importance="high"
. When
- writing actions in status.xml
you should write them with the
- following two questions in mind:
+ To produce release notes you must maintain a status.xml
+ file for your project and request a page with an URL such as
+ http://domain.com/releaseNotes_0.7-dev.html
, this will be
+ produce the release notes for 0.7-dev.
+
+ If the version number ends with -dev
a warning will be
+ included in the generated page, informing the reader that it is a
+ development version and therefore the list of changes is incomplete.
+
+ For a status.xml
action
toi be included in the
+ release notes it must have an attribute importance="high"
.
+ When writing actions in status.xml
you should write them
+ with the following two questions in mind:
+
The introductory text in the release notes comes from the (optional)
- element notes
(a child of the release
element).
+ The introductory text in the release notes comes from the (optional)
+ element notes
(a child of the release
+ element).
+
The status.xml file can also contain a list of committers and - contributors which can, optionally, be displayed as part of the changes file.
- -At the time of writing this functionality is quite minimal, being just - a list of authors at the end of the changes document. However, in future - releases it is intended that a more configurable output will be - available.
- ++ The status.xml file can also contain a list of committers and + contributors which can, optionally, be displayed as part of the changes + file. +
++ At the time of writing this functionality is quite minimal, being just a + list of authors at the end of the changes document. However, in future + releases it is intended that a more configurable output will be + available. +
It may be that some items have been contributed by authors other
- than those listed in the developer list. These are accredited in a
- due-to
attribute of the action
element in
- status.xml. A list of this contributors is made available at the
- end of the release notes for each version.
+ It may be that some items have been contributed by authors other than
+ those listed in the developer list. These are accredited in a
+ due-to
attribute of the action
element in
+ status.xml. A list of this contributors is made available at the end
+ of the release notes for each version.
+
Projects can manage a document describing various use cases for the - application. These use cases can then be used to generate useful developer - and user documentation, as well as helping to track the implementation - status of features.
- -Some of the uses of this feature are:
- ++ Projects can manage a document describing various use cases for the + application. These use cases can then be used to generate useful + developer and user documentation, as well as helping to track the + implementation status of features. +
++ Some of the uses of this feature are: +
To see some examples take a look at:
- ++ To see some examples take a look at: +
These features are operational, however, they are not fully developed and - may change considerably before they become part of the official feature set. - You can use them, but be prepared for changes, possibly without warning. If you - do use these features we recomend that you join the developers mailing list.
- ++ These features are operational, however, they are not fully developed + and may change considerably before they become part of the official + feature set. You can use them, but be prepared for changes, possibly + without warning. If you do use these features we recomend that you join + the developers mailing list. +
This plugin uses an experimental properties system that allows plugins
- to expose configuration information to the project. It is likely that at
- least some of these configuration options will eventually move into Dispatcher
- based contracts. In the meantime, you can use this config system to control
- some aspects of the display information. See the
- forrest.properties.xml
file for a description of the config
- options available. To alter the configuration simply override these
- properties in your projects forrest.properties.xml
file.
+ This plugin uses an experimental properties system that allows plugins
+ to expose configuration information to the project. It is likely that
+ at least some of these configuration options will eventually move into
+ Dispatcher based contracts. In the meantime, you can use this config
+ system to control some aspects of the display information. See the
+ forrest.properties.xml
file for a description of the
+ config options available. To alter the configuration simply override
+ these properties in your projects forrest.properties.xml
+ file.
+
See also the main - changes +
+ See also the main changes related to all plugins.
This plugin provides various mechanisms for extracting and - displaying information about one or more projects.
++ This plugin provides various mechanisms for extracting and + displaying information about one or more projects. +
This plugin encapsulates and extends functionality that was originally in - Forrest Core. With the advent of plugins in Forrest 0.7 we extracted the - functionality for generating changes.xml and todo.xml from the status.xml file. It is - intended that this functionality be extended further within this plugin.
- -In fact, we have already extended the functionality in a couple of important - ways. See the changelog for more details.
++ This plugin encapsulates and extends functionality that was + originally in Forrest Core. With the advent of plugins in Forrest + 0.7 we extracted the functionality for generating changes.xml and + todo.xml from the status.xml file. It is intended that this + functionality be extended further within this plugin. +
++ In fact, we have already extended the functionality in a couple of + important ways. See the changelog for more details. +