Open source requirement tracing suite
Clone or download
redcatbear Raised version number to 2.0.1
The self trace is now fixed again thanks to @kaklakariada.
We also have a build breaker to prevent this from happening again.
Neither interface nor functionality of OFT itself changed, therefore I only incremented the fix-version.
Latest commit 0795c68 Oct 19, 2018

README.md

OFT logo OpenFastTrace

What is OpenFastTrace?

OpenFastTrace is a requirement tracing suite. Requirement tracing helps you keeping track of whether you actually implemented everything you planned to in your specifications. It also identifies obsolete parts of your product and helps you getting rid of them.

You can learn more about requirement tracing and how to use OpenFastTrace in the user guide.

Project Information

Build Status Circle CI codecov Coverity Scan Build Status Download Maven Central

Sonarcloud status:

Quality Gate Bugs Code smells Coverage Duplicated Lines Lines of Code Maintainability Rating Reliability Rating Security Rating Technical Dept Vulnerabilities

Download

Download the executable jar at jcenter:

Maven

To use OpenFastTrace as a dependency in your maven project add this to your pom.xml:

<dependencies>
    <dependency>
        <groupId>org.itsallcode</groupId>
        <artifactId>openfasttrace</artifactId>
        <version>1.2.1</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

Gradle

To use OpenFastTrace as a dependency in your gradle project:

repositories {
    jcenter()
}
dependencies {
    compile "org.itsallcode:openfasttrace:1.2.1"
}

Using OpenFastTrace

Check the user guide for information on how to use OpenFastTrack.

Installation

Runtime Dependencies

OpenFastTrace only needs a Java 8 (or later) runtime environment to run.

Installation of runtime dependencies on Linux

Ubuntu or Debian

If you just want to run OFT:

apt-get install openjdk-8-jre

If you want to build OFT:

apt-get install openjdk-8-jdk maven

Development

Build Time Dependencies

The list below show all build time dependencies in alphabetical order. Note that except the Maven build tool all required modules are downloaded automatically by Maven.

Dependency Purpose License
Apache Maven Build tool Apache License 2.0
Equals Verifier Automatic contract checker for equals() and hash() Apache License 2.0
Hamcrest Auto Matcher Speed-up for building Hamcrest matchers GNU General Public License V3
JUnit Unit testing framework Eclipse Public License 1.0
Mockito Mocking framework MIT License
System rules JUnit rules for testing STDOUT, STDIN and STDERR Common Public License 1.0
Pitest Mutation testing Apache License 2.0

Essential Build Steps

  • git clone https://github.com/itsallcode/openfasttrace.git
  • Run mvn test to run unit tests.
  • Run mvn exec:java@trace to run requirements tracing.

Using Eclipse

Import as a Maven project using File > Import... > Maven > Existing Maven Projects

Configure Logging

We use java.util.logging for logging. To configure log level and formatting, add the following system property:

-Djava.util.logging.config.file=src/test/resources/logging.properties

License File Header

  • We use license-maven-plugin to check in verify phase that all files have the correct license header. The build will fail if there are any files with missing/outdated headers.
  • To update files with correct license headers and generate file LICENSE.txt, run command
mvn license:update-project-license license:update-file-header

Run local sonar analysis

mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package sonar:sonar \
    -Dsonar.host.url=https://sonarcloud.io \
    -Dsonar.organization=itsallcode \
    -Dsonar.login=[token]

See analysis results at https://sonarcloud.io/dashboard?id=org.itsallcode%3Aopenfasttrace

Run mutation testing

mvn org.pitest:pitest-maven:mutationCoverage
# speed up repeated analysis with history
mvn -DwithHistory org.pitest:pitest-maven:mutationCoverage

Publishing to JCenter

  1. Add the following to your ~/.m2/settings.xml:

    <servers>
        <server>
            <id>bintray-openfasttrack-maven-repo</id>
            <username>[bintray-username]</username>
            <password>[bintray-api-key]</password>
        </server>
    </servers>
  2. Checkout the develop branch.

  3. Update version in pom.xml and README.md, commit and push.

  4. Run command

    mvn deploy
  5. Create a release on GitHub.

  6. Sign in at bintray.com

  7. Go to the bintray project page

  8. There should be a notice saying "You have 6 unpublished item(s) for this package". Click the "Publish" link. Binaries will be available for download at jcenter

  9. Publish to Maven Central by clicking the "Sync" button at https://bintray.com/itsallcode/itsallcode/openfasttrace#central. After some time the new version will appear at https://repo1.maven.org/maven2/org/itsallcode/openfasttrace/.