!! IMPORTANT !! If this template is used for a customer project, the following note should be included at the top of this file (by deleting this note and the code-block characters) so as to aleart everyone to the sensitivity of this data.
---------------------------------------------------------------------------
~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=
**WARNING: This repository contains customer data an cannot be made public.**
~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=
---------------------------------------------------------------------------
This repo is used by DornerWorks to manage project documentation:
This repo also contains requirements in the format expected by Doorstop.
Doorstop
checks for generic and project-specific issues in the requirements.
Doorstop
also checks that each requirement is in the correct review status for both changes in content and linked content.
- bootstrap.bat
- Git
- Windows: http://cygwin.com/install.html
- GNU Make:
- Windows: http://cygwin.com/install.html
- Mac: https://developer.apple.com/xcode
- Linux: http://www.gnu.org/software/make (likely already installed)
- virtualenv: https://pypi.python.org/pypi/virtualenv#installation
- Pandoc: http://johnmacfarlane.net/pandoc/installing.html
- Graphviz: http://www.graphviz.org/Download.php
- P4Merge: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Tip: Modify your .gitconfig
to add P4Merge to your Git configuration:
[diff]
tool = p4merge_d
[difftool "p4merge_d"]
cmd = \"C:/Program Files/Perforce/p4merge.exe\" "$(cygpath -wa $REMOTE)" "$(cygpath -wa $LOCAL)"
[difftool]
prompt = false
[merge]
tool = p4merge
[mergetool "p4merge"]
cmd = \"C:/Program Files/Perforce/p4merge.exe\" \"$BASE\" \"$REMOTE\" \"$LOCAL\" \"$MERGED\"
[mergetool]
prompt = false
- bootstrap.bat will install Python and Windows-based dependencies. It will then download bootstrap.py which
will install other dependencies through
pip
. - Install Git for your environment.
- Clone the Git repo and edit the requirements.
- Install other 3rd party tools
- The
Makefile
will create a virtualenv and take care of all dependencies related to automatic checks.
Use the provided Makefile
to generate files and check requirements validity.
The Doorstop
tool is used to generate requirements in the specs/
directory.
The following items will be created in the directories:
- env/ - a Python
virtualenv
to control the tool configuration for development - docs/ - directory for generated document files
- xlsx/ - directory for temporary Excel files for editing
- zips/ - directory for *.zip generated from docs
Create the development environment:
$ make depends
Create Documents (see Doorstop
for details):
$ source env/Scripts/activate
$ doorstop create -p [parent prefix] -d [padded digits] [prefix] specs/[folder]
$ [edit] specs/[folder]/.doorstop.yml // sep: '-'
$ [VCS commit]
$ deactivate
Edit Documents:
$ make excel-export
$ [edit Excel file] [save/close]
$ [VCS commit]
$ make excel-import
Validate Traceability:
$ make reqcheck
View Documentation:
$ make read
Release Specifications:
$ [edit] specs/__version__.py
$ [VCS add/commit]
$ make release
Feature planning can be managed using the VCS (version control system, e.g. SVN, Git).
Changes affecting all current/future releases are edited in the master
branch, then merged onto the target
branch. Modifications of content specific to a targeted feature release are made only on the target
branch.
The merge feature within Git is optimal as it correctly remembers the order of changes made after master
is merged onto target
so that other changes going forward do not overwrite pervious modifications.
!!!Important!!! Never merge target
back onto master
as this will essentially force master
to mirror the target
.
Requirements are added in their original form on master
. If a feature is determined to be not planned for target
, it's active
property is set to FALSE
after is initially merge from master
.