Skip to content

Commit 1bce167

Browse files
authored
Added lifecycle information and a security policy. (#579)
#579: Added lifecycle information and a security policy.
1 parent ab58282 commit 1bce167

8 files changed

Lines changed: 82 additions & 13 deletions

File tree

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ Needs: impl, utest
109109
- **Key Resources**:
110110
- `README.md`: General overview.
111111
- `doc/developer_guide.md`: Detailed build and internal info.
112-
- `doc/user_guide.md`: Comprehensive tool usage.
112+
- `doc/user_guide/user_guide.md`: Comprehensive tool usage.
113113
- `CONTRIBUTING.md`: Human-AI collaboration guidelines.
114114
- `doc/spec/system_requirements.md`: System requirements specification.
115115
- `doc/spec/design.md`: High-level design documentation.

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ If you find a bug, please let us know by writing an [issue ticket](https://githu
2929
If you are a programmer, a code contribution in form of an automatic unit test case would be most appreciated, since this will make reproduction of the issue easier and prevent future regressions.
3030

3131
## Contributing to the User Guide
32-
Maybe you are good at explaining how to use OFT to end users? Help us improve the [user guide](doc/user_guide.md)!
32+
Maybe you are good at explaining how to use OFT to end users? Help us improve the [user guide](doc/user_guide/user_guide.md)!
3333

3434
## Translations
3535
We plan to make OFT multilingual. If you want to provide a translation, feel free to contact us. Messages in OFT and the user guide are prime candidates for translation.

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
OpenFastTrace (short OFT) is a requirement tracing suite. Requirement tracing keeps track of whether you actually implemented everything you planned to in your specifications. It also identifies obsolete parts of your product and helps you to get rid of them.
66

7-
You can learn more about requirement tracing and how to use OpenFastTrace in the [user guide](doc/user_guide.md).
7+
You can learn more about requirement tracing and how to use OpenFastTrace in the [user guide](doc/user_guide/user_guide.md).
88

99
Below you see a screenshot of an HTML tracing report where OFT traces itself. You see a summary followed by a detail view of the traced requirements.
1010

@@ -31,10 +31,13 @@ Sonarcloud status:
3131

3232
**User Guides and Tools**
3333

34-
* [📖 User Guide](doc/user_guide.md)
34+
* [📖 User Guide](doc/user_guide/user_guide.md)
3535
* [🔌 Extending OpenFastTrace With Plugins](doc/plugins.md)
3636
* [💲 Command Line Usage](core/src/main/resources/usage.txt)
3737
* [🛠 IntelliJ Plugin (PyCharm, Clion, etc.)](https://github.com/itsallcode/openfasttrace-intellij-plugin)
38+
* [🤖 Agent Skills](.agents/skills)
39+
* [🛡️ Security Policy](SECURITY.md)
40+
* [♻️ Project Lifecycle and Deprecations](doc/user_guide/project_lifecycle.md)
3841

3942
**News and Discussions**
4043

@@ -68,7 +71,7 @@ Sonarcloud status:
6871

6972
If you want to use OFT, you have the choice between using it as part of your build process — typically with Maven or Gradle. Or you can run OFT from the command line.
7073

71-
Check the [user guide](doc/user_guide.md) for detailed information on how to use OpenFastTrack.
74+
Check the [user guide](doc/user_guide/user_guide.md) for detailed information on how to use OpenFastTrack.
7275

7376
## Getting OpenFastTrace
7477

@@ -110,7 +113,7 @@ java -jar product/target/openfasttrace-4.2.0.jar trace /path/to/directory/being/
110113

111114
If you want to run OFT automatically as part of a continuous build, we recommend using our plugins for [Gradle](https://github.com/itsallcode/openfasttrace-gradle) and [Maven](https://github.com/itsallcode/openfasttrace-maven-plugin).
112115

113-
For more details about how to run OFT please consult the [user guide](doc/user_guide.md).
116+
For more details about how to run OFT please consult the [user guide](doc/user_guide/user_guide.md).
114117

115118
### Download and Execute in Continuous Integration
116119

SECURITY.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Security Policy
2+
3+
We value the work of security researchers and users who help us keep OpenFastTrace secure. Thank you for your support!
4+
5+
## Supported Versions
6+
7+
We provide security updates for the latest major version. For a detailed overview of supported versions and End-of-Life (EoL) dates, please see our [Project Lifecycle](doc/user_guide/project_lifecycle.md).
8+
9+
## Reporting a Vulnerability
10+
11+
If you discover a potential security issue, please report it privately via [GitHub Security Advisories](https://github.com/itsallcode/openfasttrace/security/advisories/new). We follow coordinated disclosure and aim to:
12+
13+
- **Respond** to your report within 48 hours.
14+
- **Provide a fix** within 30 days.
15+
- **Disclose** the details publicly once a fix is available and users have had time to update.
16+
17+
While we don't offer bug bounties, we'd be happy to publicly acknowledge your contribution in the advisory.

doc/changes/changes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Changes
22

3+
* [4.10.0](changes_4.10.0.md)
34
* [4.9.0](changes_4.9.0.md)
45
* [4.8.0](changes_4.8.0.md)
56
* [4.7.0](changes_4.7.0.md)

doc/changes/changes_4.0.1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Code name: Allow numbers after dots in specification item names
44

55
## Summary
66

7-
This release allows using specification item names with dots `.` followed by numbers, e.g. `req~SR.AB.1.1.1~1`. We also updated the relevant [section in the user guide](../user_guide.md#specification-item-name). Thanks to [@RobertZickler](https://github.com/RobertZickler) for reporting this!
7+
This release allows using specification item names with dots `.` followed by numbers, e.g. `req~SR.AB.1.1.1~1`. We also updated the relevant [section in the user guide](../user_guide/user_guide.md#specification-item-name). Thanks to [@RobertZickler](https://github.com/RobertZickler) for reporting this!
88

99
## Bugfixes
1010

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Project Lifecycle
2+
3+
This is a free and open-source project. Updates are publicly available and free of charge.
4+
5+
Feature, documentation, bugfix and security updates are always provided with the latest release.
6+
7+
## End of Life
8+
9+
This project uses [semantic versioning](https://semver.org/). Versions with the same major version are guaranteed to be backward-compatible to previous versions with that major version.
10+
11+
Minor version updates add features that do not break compatibility and do not change hardware or software environment requirements beyond reasonable update rules. Fix versions only resolve bugs and / or add security updates.
12+
13+
| Version line | First release | End of support | Java version |
14+
|--------------|---------------|----------------|--------------|
15+
| 0.x.y | 2017-08-13 | 2018-06-30 | 8 |
16+
| 1.x.y | 2018-06-30 | 2018-10-13 | 8 |
17+
| 2.x.y | 2018-10-13 | 2020-04-21 | 8 |
18+
| 3.x.y | 2020-04-21 | 2024-06-03 | 11 |
19+
| 4.x.y | 2024-06-03 | 2027-10-01 | 17 |
20+
| 5.x.y | 2027-10-01 | 2029-12-01 | 21 |
21+
22+
We are synchronizing the EoL with the [Temurin LTS release support](https://adoptium.net/support/). Our strategy is to take a Java version that is mature and stable and long enough out to be available on the majority of platforms and machines and then support it as long as the Temurin project supports the JRE. This way users don't need the latest top-of-the-line installations to run OFT.
23+
24+
## Planned Deprecations and Removals
25+
26+
### Features Scheduled for Removal in OFT 5.0.0
27+
28+
The **SpecObject** format is a legacy from ReqM2. This includes importer, exporter and `aspec` reporter. It lacks the clear structure of OFT's specification item trace model and is not very consistent. Also, JSON is now a more popular base format than XML, that's why we will replace the SpecObject format with OFT's own interchange format.
29+
30+
Switch from the SpecObject format to `.oftx.json` when you want to aggregate and exchange specification documents between projects. Generate `.oftr.json` reports instead of `aspec`.
31+
32+
The `.oftx.json` exchange format and `.oftr.json` report format will be available no later than September 30, 2026. SpecObject will then be deprecated and remain supported throughout OFT 4.x. The SpecObject importer, exporter, and aspec reporter will be removed in OFT 5.0.
33+
34+
**Short tags** are another ReqM2 legacy. While this is a little less typing effort, it breaks our rule of writing out specification item IDs. This is inconvenient for text searches. Also, short tags are the only reason why we need per directory configuration. OFT is designed to use auto-detection wherever possible, and this feature works against the auto-detection. We will remove the configuration together with the short tags.
35+
36+
Migrate to OFT's full coverage tags, and you can drop the per-directory tag-import configuration. Short tags will be officially deprecated with OFT 4.10.0.
37+
38+
## Security Updates
39+
40+
Users need to check the [changelog](../changes/changes.md) to stay informed about security updates. You need to install the provided security updates in a timely manner to keep your setup secure. This is also true for any dependencies of this software that do not come bundled. An example is the Java Runtime Environment.
41+
42+
Itsallcode.org provides security updates until the EoL listed above.
43+
44+
Please refer to our [security policy](../../SECURITY.md) for details on coordinated vulnerability disclosure.
45+
46+
### Retaining Updates
47+
48+
Itsallcode.org distributes updates via GitHub releases. Even if the project should be archived, the releases remain accessible for download. Itsallcode.org will keep each security update accessible for at least 10 years.
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
![oft-logo](../core/src/main/resources/openfasttrace_logo.svg)
1+
![oft-logo](../../core/src/main/resources/openfasttrace_logo.svg)
22

33
# OpenFastTrace (OFT) User Guide
44

@@ -416,7 +416,7 @@ In projects of a certain size you always reach the point where a single team is
416416

417417
One proven way to do this is to use tags. The teams then decide for which specification items with which tags they are responsible.
418418

419-
![Covering selected tags](images/uml/object/obj_multiple_detailed_designs.svg)
419+
![Covering selected tags](../images/uml/object/obj_multiple_detailed_designs.svg)
420420

421421
In our example it is the job of Andrea the architect to create a system architecture for the system specification coming from Soeren. Andrea defines a set of components which communicate with each other through well-defined, minimal interfaces. Each component is designed so that it can be independently developed and tested. Only an integration test is later necessary to prove that the components work together as designed. You tag each architectural requirement with the names of the affected components.
422422

@@ -1147,7 +1147,7 @@ and the requirement type with the element `<doctype>`.
11471147

11481148
If you are a software developer planning to integrate OFT into one of your programs or scripts, you will probably want to use the OFT API.
11491149

1150-
Below you find a few short examples of how to use the OFT API. For details check the JavaDoc documentation of the interface [org.itsallcode.openfasttrace.core.Oft](../core/src/main/java/org/itsallcode/openfasttrace/core/Oft.java) in the source code.
1150+
Below you find a few short examples of how to use the OFT API. For details check the JavaDoc documentation of the interface [org.itsallcode.openfasttrace.core.Oft](../../core/src/main/java/org/itsallcode/openfasttrace/core/Oft.java) in the source code.
11511151

11521152
### Using OFT From Java
11531153

@@ -1258,9 +1258,9 @@ oft.reportToStdOut(trace);
12581258

12591259
Import, export and report each have an overloaded variant that can be configured using the following classes
12601260

1261-
* [org.itsallcode.openfasttrace.api.importer.ImportSettings](../api/src/main/java/org/itsallcode/openfasttrace/api/importer/ImportSettings.java)
1262-
* [org.itsallcode.openfasttrace.core.ExportSettings](../core/src/main/java/org/itsallcode/openfasttrace/core/ExportSettings.java)
1263-
* [org.itsallcode.openfasttrace.api.ReportSettings](../api/src/main/java/org/itsallcode/openfasttrace/api/ReportSettings.java)
1261+
* [org.itsallcode.openfasttrace.api.importer.ImportSettings](../../api/src/main/java/org/itsallcode/openfasttrace/api/importer/ImportSettings.java)
1262+
* [org.itsallcode.openfasttrace.core.ExportSettings](../../core/src/main/java/org/itsallcode/openfasttrace/core/ExportSettings.java)
1263+
* [org.itsallcode.openfasttrace.api.ReportSettings](../../api/src/main/java/org/itsallcode/openfasttrace/api/ReportSettings.java)
12641264

12651265
Each of those classes comes with a builder which is called like this:
12661266

0 commit comments

Comments
 (0)