|
| 1 | +# AGENTS.md |
| 2 | + |
| 3 | +This file provides guidance for automated contributors/agents working in the `quickfix-j/quickfixj` repository. |
| 4 | + |
| 5 | +## 1) Scope |
| 6 | + |
| 7 | +- Keep changes minimal and surgical. |
| 8 | +- Avoid unrelated refactors or broad formatting-only edits. |
| 9 | +- Prefer module-focused changes and include only files needed for the task. |
| 10 | + |
| 11 | +## 2) Environment |
| 12 | + |
| 13 | +- Use the repository Maven wrapper: `./mvnw` (or `./mvnw.cmd` on Windows), not system Maven. |
| 14 | +- Java compatibility target is Java 8 (`maven.compiler.source=8`, `maven.compiler.target=8`). |
| 15 | +- CI validates multiple Java versions and OSes (JDK 8/11/21 on Linux, macOS, and Windows). |
| 16 | + |
| 17 | +## 3) Build instructions (fast/default/full) |
| 18 | + |
| 19 | +- Fast local package (no tests): |
| 20 | + - `./mvnw clean package -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin,minimal-fix-latest` |
| 21 | +- CI-equivalent validation baseline: |
| 22 | + - `./mvnw install -Dmaven.javadoc.skip=true -PskipBundlePlugin,minimal-fix-latest` |
| 23 | +- If OSGi bundle artifacts are required, omit `-PskipBundlePlugin`. |
| 24 | + |
| 25 | +## 4) Module dependency order for targeted `quickfixj-core` work |
| 26 | + |
| 27 | +From a clean checkout, for targeted `quickfixj-core` tests/builds: |
| 28 | + |
| 29 | +1. Build orchestration/resources first (`quickfixj-orchestration`). |
| 30 | +2. Build required message artifacts, at least: |
| 31 | + - `quickfixj-messages-fixt11` |
| 32 | + - `quickfixj-messages-all` |
| 33 | + - `quickfixj-messages-fixlatest` |
| 34 | +3. Build/test `quickfixj-core` (typically with `-am` when selecting modules). |
| 35 | + |
| 36 | +This avoids missing generated resources/classes during targeted core runs. |
| 37 | + |
| 38 | +## 5) Testing expectations |
| 39 | + |
| 40 | +- Run module-local tests first for the area you changed. |
| 41 | +- Run broader reactor checks when changes cross module boundaries or affect shared build/generation logic. |
| 42 | +- For bug fixes/features, add or adjust tests where applicable. |
| 43 | + |
| 44 | +## 6) Code style |
| 45 | + |
| 46 | +- Follow surrounding code style and import ordering in edited files. |
| 47 | +- Java formatting reference profile: |
| 48 | + - `quickfixj-core/src/main/eclipse/formatter.xml` |
| 49 | +- The formatter profile uses 4-space indentation, K&R-style braces, and does not auto-reformat comments. |
| 50 | + |
| 51 | +## 7) Safety and contribution rules |
| 52 | + |
| 53 | +- Never commit secrets, credentials, or private keys. |
| 54 | +- Avoid changing generated/build-heavy modules unless required by the task. |
| 55 | +- Keep PRs focused and explain why non-default build profiles/options were used. |
0 commit comments