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
-[ ] SI-01 — Establish baseline: dependency graph + README audit _(analysis; no blockers; informs all other subissues)_
208
208
-[x] SI-02 — Move `DurationSinceUnixEpoch` from `torrust-tracker-primitives` to `torrust-tracker-clock`_(Rule M; no hard blockers)_
209
209
-[ ] SI-03 — Define per-package default timeout constants and remove `DEFAULT_TIMEOUT` from `torrust-tracker-configuration`_(Rule M; no blockers)_
210
-
-[ ] SI-04 — Move `AnnouncePolicy` from `torrust-tracker-configuration` to `torrust-tracker-primitives`_(Rule M; no blockers)_
210
+
-[ ] SI-04 — [#1795](https://github.com/torrust/torrust-tracker/issues/1795)Move `AnnouncePolicy` from `torrust-tracker-configuration` to `torrust-tracker-primitives`_(Rule M; no blockers)_
211
211
-[ ] SI-05 — Create `torrust-net-primitives` and move `ServiceBinding` from `torrust-tracker-primitives`_(Rule M + new package; no blockers)_
212
212
-[ ] SI-06 — Resolve `bittorrent-tracker-core` ↔ `torrust-rest-tracker-api-client` layer violation _(Rule M; prerequisite for `bittorrent-tracker-core` extraction)_
213
213
-[ ] SI-07 — Align `torrust-` prefix: rename 7 tracker-specific packages to `torrust-tracker-`_(Rule U; no blockers)_
| SI-02 |[#1790](https://github.com/torrust/torrust-tracker/issues/1790) — Move `DurationSinceUnixEpoch` from `torrust-tracker-primitives` to `torrust-tracker-clock`|[docs/issues/open/1790-move-duration-since-unix-epoch-to-torrust-tracker-clock.md](../../open/1790-move-duration-since-unix-epoch-to-torrust-tracker-clock.md)| DONE | Rule M; no hard blockers; prerequisite for SI-13 |
229
229
| SI-03 |[#1793](https://github.com/torrust/torrust-tracker/issues/1793) — Define per-package default timeout constants and remove `DEFAULT_TIMEOUT` from `torrust-tracker-configuration`|[docs/issues/open/1793-1669-03-define-per-package-default-timeout-constants.md](../../open/1793-1669-03-define-per-package-default-timeout-constants.md)| TODO | Rule M; no blockers; SI-09 no longer depends on this |
230
-
| SI-04 |#TBD — Move `AnnouncePolicy` from `torrust-tracker-configuration` to `torrust-tracker-primitives`|[docs/issues/drafts/1669-04-move-announce-policy-to-torrust-tracker-primitives.md](../../drafts/1669-04-move-announce-policy-to-torrust-tracker-primitives.md)| TODO | Rule M; fixes inverted dep (primitives → configuration); no blockers |
230
+
| SI-04 |[#1795](https://github.com/torrust/torrust-tracker/issues/1795) — Move `AnnouncePolicy` from `torrust-tracker-configuration` to `torrust-tracker-primitives`|[docs/issues/open/1795-1669-04-move-announce-policy-to-torrust-tracker-primitives.md](../../open/1795-1669-04-move-announce-policy-to-torrust-tracker-primitives.md)| TODO | Rule M; fixes inverted dep (primitives → configuration); no blockers |
231
231
| SI-05 | #TBD — Create `torrust-net-primitives` and move `ServiceBinding` from `torrust-tracker-primitives`|[docs/issues/drafts/1669-05-create-torrust-net-primitives-and-move-service-binding.md](../../drafts/1669-05-create-torrust-net-primitives-and-move-service-binding.md)| TODO | Rule M + new package; generic networking type; breaks server-lib → tracker-primitives dep |
232
232
| SI-06 | #TBD — Resolve `bittorrent-tracker-core` ↔ `torrust-rest-tracker-api-client` layer violation |[docs/issues/drafts/1669-06-resolve-bittorrent-tracker-core-rest-api-layer-violation.md](../../drafts/1669-06-resolve-bittorrent-tracker-core-rest-api-layer-violation.md)| TODO | Rule M; stale unused dev dep — one-line `Cargo.toml` deletion; unblocks `bittorrent-tracker-core` extraction |
233
233
| SI-07 | #TBD — Align `torrust-` prefix: rename 7 tracker-specific packages to `torrust-tracker-`|[docs/issues/drafts/1669-07-align-torrust-prefix-rename-tracker-specific-packages.md](../../drafts/1669-07-align-torrust-prefix-rename-tracker-specific-packages.md)| TODO | Rule U; none of the 7 are published; pure workspace rename; no blockers |
| T1 |TODO| Locate all definition and usage sites of `AnnouncePolicy` across the workspace |`grep -r "AnnouncePolicy" . --include="*.rs"` — build a full consumer list |
84
-
| T2 |TODO| Move `AnnouncePolicy` definition to `packages/primitives/src/` (e.g. `primitives/src/announce_policy.rs`) | Public module exported from `packages/primitives/src/lib.rs`|
85
-
| T3 |TODO| Remove `AnnouncePolicy` from `packages/configuration/src/`| Definition gone; re-export or direct dep on `torrust-tracker-primitives` added to configuration |
86
-
| T4 |TODO| Add `torrust-tracker-primitives` as a dep of `packages/configuration/Cargo.toml` if not already present |`torrust-tracker-primitives` in `[dependencies]`|
87
-
| T5 |TODO| Remove `torrust-tracker-configuration` dep from `packages/primitives/Cargo.toml` if `AnnouncePolicy` was its sole reason |`cargo machete` reports no unused dep |
88
-
| T6 |TODO| Update all workspace files that import `AnnouncePolicy` from `torrust_tracker_configuration` to use `torrust_tracker_primitives`| One-line change per file |
89
-
| T7 |TODO| Run `cargo build --workspace` and `cargo test --workspace`| Clean build; all tests pass |
90
-
| T8 |TODO| Run `linter all`| Exit code `0`|
84
+
| T1 |DONE| Locate all definition and usage sites of `AnnouncePolicy` across the workspace |`grep -r "AnnouncePolicy" . --include="*.rs"` — build a full consumer list |
85
+
| T2 |DONE| Move `AnnouncePolicy` definition to `packages/primitives/src/` (e.g. `primitives/src/announce_policy.rs`) | Public module exported from `packages/primitives/src/lib.rs`|
86
+
| T3 |DONE| Remove `AnnouncePolicy` from `packages/configuration/src/`| Definition gone; re-export or direct dep on `torrust-tracker-primitives` added to configuration |
87
+
| T4 |DONE| Add `torrust-tracker-primitives` as a dep of `packages/configuration/Cargo.toml` if not already present |`torrust-tracker-primitives` in `[dependencies]`|
88
+
| T5 |DONE| Remove `torrust-tracker-configuration` dep from `packages/primitives/Cargo.toml` if `AnnouncePolicy` was its sole reason |`cargo machete` reports no unused dep |
89
+
| T6 |DONE| Update all workspace files that import `AnnouncePolicy` from `torrust_tracker_configuration` to use `torrust_tracker_primitives`| One-line change per file |
90
+
| T7 |DONE| Run `cargo build --workspace` and `cargo test --workspace`| Clean build; all tests pass |
91
+
| T8 |DONE| Run `linter all`| Exit code `0`|
91
92
92
93
## Progress Tracking
93
94
94
95
### Workflow Checkpoints
95
96
96
-
-[] Spec drafted in `docs/issues/drafts/`
97
-
-[] Spec reviewed and approved by user/maintainer
98
-
-[] GitHub issue created and issue number added to this spec
99
-
-[] Spec moved to `docs/issues/open/` with issue number prefix
100
-
-[] Implementation completed
101
-
-[] Automatic verification completed (`linter all`, `cargo test --workspace`)
97
+
-[x] Spec drafted in `docs/issues/drafts/`
98
+
-[x] Spec reviewed and approved by user/maintainer
99
+
-[x] GitHub issue created and issue number added to this spec
100
+
-[x] Spec moved to `docs/issues/open/` with issue number prefix
101
+
-[x] Implementation completed
102
+
-[x] Automatic verification completed (`linter all`, `cargo test --workspace`)
102
103
-[ ] Manual verification scenarios executed and recorded
103
104
-[ ] Acceptance criteria reviewed after implementation and updated with evidence
104
105
-[ ] EPIC #1669 Active Subissues table updated to `DONE`
@@ -108,17 +109,20 @@ Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`.
108
109
109
110
- 2026-05-18 00:00 UTC - josecelano - Spec drafted as subissue of EPIC #1669, addressing F-03
110
111
from the coupling analysis report.
112
+
- 2026-05-19 UTC - josecelano - Implementation completed: moved `AnnouncePolicy` to
113
+
`primitives/src/announce.rs`, removed inverted dep, added deprecated re-export in
114
+
`configuration`, updated all workspace consumers. All checks pass.
111
115
112
116
## Acceptance Criteria
113
117
114
-
-[]`packages/primitives/src/` defines `AnnouncePolicy` and exports it publicly.
115
-
-[]`packages/primitives/Cargo.toml` does not list `torrust-tracker-configuration` as a dependency.
116
-
-[]`packages/configuration/src/` no longer defines `AnnouncePolicy`; it imports from `torrust-tracker-primitives`.
117
-
-[] No workspace file imports `AnnouncePolicy` from `torrust_tracker_configuration`
118
+
-[x]`packages/primitives/src/` defines `AnnouncePolicy` and exports it publicly.
119
+
-[x]`packages/primitives/Cargo.toml` does not list `torrust-tracker-configuration` as a dependency.
120
+
-[x]`packages/configuration/src/` no longer defines `AnnouncePolicy`; it imports from `torrust-tracker-primitives`.
121
+
-[x] No workspace file imports `AnnouncePolicy` from `torrust_tracker_configuration`
118
122
(all migrated to `torrust_tracker_primitives` or re-exported through it).
119
-
-[]`cargo build --workspace` succeeds with zero errors.
120
-
-[]`cargo test --workspace` passes with zero failures.
121
-
-[]`linter all` exits with code `0`.
123
+
-[x]`cargo build --workspace` succeeds with zero errors.
124
+
-[x]`cargo test --workspace` passes with zero failures.
125
+
-[x]`linter all` exits with code `0`.
122
126
123
127
## Verification Plan
124
128
@@ -134,8 +138,8 @@ Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`.
134
138
135
139
Status values: `TODO`, `IN_PROGRESS`, `DONE`, `FAILED`, `BLOCKED`.
136
140
137
-
| ID | Scenario | Command / Steps | Expected Result | Status | Evidence |
| M1 | No workspace import of `AnnouncePolicy` from `configuration`|`grep -r "torrust_tracker_configuration::AnnouncePolicy" . --include="*.rs"`| Zero matches |TODO||
140
-
| M2 |`primitives` exports `AnnouncePolicy`|`grep "AnnouncePolicy" packages/primitives/src/lib.rs`|`pub` declaration found |TODO||
141
-
| M3 |`primitives` dep list does not include `configuration`|`grep "torrust-tracker-configuration" packages/primitives/Cargo.toml`| Zero matches |TODO||
141
+
| ID | Scenario | Command / Steps | Expected Result | Status | Evidence |
| M1 | No workspace import of `AnnouncePolicy` from `configuration`|`grep -r "torrust_tracker_configuration::AnnouncePolicy" . --include="*.rs"`| Zero matches |DONE|`grep` returned zero matches |
144
+
| M2 |`primitives` exports `AnnouncePolicy`|`grep "AnnouncePolicy" packages/primitives/src/lib.rs`|`pub` declaration found |DONE|`pub use announce::{AnnounceData, AnnounceEvent, AnnouncePolicy};`|
145
+
| M3 |`primitives` dep list does not include `configuration`|`grep "torrust-tracker-configuration" packages/primitives/Cargo.toml`| Zero matches |DONE|`grep` returned zero matches |
0 commit comments