You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Attempt to distinguish between deployable and non-deployable parts with two parent POMs.
* Fixed review findings and added developer documentation.
* Updated release date.
Copy file name to clipboardExpand all lines: doc/developer_guide.md
+57-11Lines changed: 57 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,10 +33,10 @@ dependencies {
33
33
34
34
## Build Time Dependencies
35
35
36
-
The list below shows all build time dependencies in alphabetical order. Note that except the Maven build toolall required modules are downloaded automatically by Maven.
36
+
The list below shows all build time dependencies in alphabetical order. Note that except the Maven build tool, Maven downloads all required modules automatically.
|[Equals Verifier](https://github.com/jqno/equalsverifier)| Automatic contract checker for `equals()` and `hash()`| Apache License 2.0 |
42
42
|[Hamcrest Auto Matcher](https://github.com/itsallcode/hamcrest-auto-matcher)| Speed-up for building Hamcrest matchers | GNU General Public License V3 |
@@ -46,7 +46,7 @@ The list below shows all build time dependencies in alphabetical order. Note tha
46
46
47
47
## Preparations
48
48
49
-
OpenFastTrace uses [Apache Maven](https://maven.apache.org) as technical project management tool that resolves and downloads the build-dependencies before building the packages.
49
+
OpenFastTrace uses [Apache Maven](https://maven.apache.org) as the technical project management tool that resolves and downloads the build-dependencies before building the packages.
50
50
51
51
### Installation of Initial Build Dependencies on Linux
52
52
@@ -126,7 +126,7 @@ To build and test with a later version, add argument `-Djava.version=17` to the
126
126
127
127
By default, Maven builds the OFT modules sequentially.
128
128
129
-
To speedup the build and build modules in parallel, add argument `-T 1C` to the Maven command.
129
+
To speed up the build and build modules in parallel, add argument `-T 1C` to the Maven command.
130
130
131
131
### Run Requirements Tracing
132
132
@@ -140,7 +140,7 @@ Import as a Maven project using *"File" → "Import..." → "Maven" →
140
140
141
141
## Configure the `itsallcode style` formatter
142
142
143
-
All sub-projects come with formatter and save actions configuration for Eclipse.
143
+
All subprojects come with formatter and save actions configuration for Eclipse.
144
144
145
145
If you use a different IDE like IntelliJ, please import the formatter configuration [itsallcode_formatter.xml](itsallcode_formatter.xml).
146
146
@@ -183,7 +183,7 @@ This project is configured to produce exactly the same artifacts each time when
183
183
```bash
184
184
mvn initialize artifact:check-buildplan
185
185
```
186
-
* Verify that the build produces excatly the same artifacts:
186
+
* Verify that the build produces exactly the same artifacts:
4. Add changes in new version to `doc/changes/changes.md` and `doc/changes/changes_$VERSION.md` and update the release date.
206
+
4. Add changes in a new version to `doc/changes/changes.md` and `doc/changes/changes_$VERSION.md` and update the release date.
207
207
5. Commit and push changes.
208
208
6. Create a new pull request, have it reviewed and merged to `main`.
209
209
210
210
### Perform the Release
211
211
212
212
1. Start the release workflow
213
-
* Run command `gh workflow run release.yml --repo itsallcode/openfasttrace --ref main`
214
-
* or go to [GitHub Actions](https://github.com/itsallcode/openfasttrace/actions/workflows/release.yml) and start the `release.yml` workflow on branch `main`.
215
-
2. Update title and description of the newly created [GitHub release](https://github.com/itsallcode/openfasttrace/releases).
213
+
* Run command `gh workflow run release.yml --repo itsallcode/openfasttrace --ref main`
214
+
* or go to [GitHub Actions](https://github.com/itsallcode/openfasttrace/actions/workflows/release.yml) and start the `release.yml` workflow on branch `main`.
215
+
2. Update the title and description of the newly created [GitHub release](https://github.com/itsallcode/openfasttrace/releases).
216
216
3. After some time the release will be available at [Maven Central](https://repo1.maven.org/maven2/org/itsallcode/openfasttrace/openfasttrace/).
217
+
218
+
## Module Overview
219
+
220
+
This section explains the module structure of OpenFastTrace.
✅ Deployed to Maven Central: Public API modules that external users can depend on
253
+
254
+
❌ Not Deployed: Internal infrastructure, test utilities, and build configuration
255
+
256
+
### Why Two Parent POMs?
257
+
258
+
As you can see in the table above, not all modules are intended to be deployed on Maven Central. The distinction is made by using two parent POMs.
259
+
260
+
The base POM is `openfasttrace-parent`, it mainly contains common dependencies and build configuration. On top of that, `openfasttrace-mc-deployable-parent` adds signing and Maven central deployment.
261
+
262
+
This structure ensures that only user-facing components are published to Maven Central while keeping internal development tools and build infrastructure private.
0 commit comments