Skip to content

feat(primitives): move AnnouncePolicy from configuration to primitives (#1795)#1796

Merged
josecelano merged 4 commits into
torrust:developfrom
josecelano:1669-04-move-announce-policy-to-torrust-tracker-primitives
May 19, 2026
Merged

feat(primitives): move AnnouncePolicy from configuration to primitives (#1795)#1796
josecelano merged 4 commits into
torrust:developfrom
josecelano:1669-04-move-announce-policy-to-torrust-tracker-primitives

Conversation

@josecelano
Copy link
Copy Markdown
Member

Summary

Moves AnnouncePolicy from torrust-tracker-configuration into torrust-tracker-primitives, fixing an inverted dependency where a primitives package depended on a configuration package.

  • Before: primitivesconfiguration (for AnnouncePolicy)
  • After: configurationprimitives (natural direction)

Changes

  • Move AnnouncePolicy struct + impls into packages/primitives/src/announce.rs
  • Export AnnouncePolicy from torrust_tracker_primitives lib.rs
  • Remove torrust-tracker-configuration dep from primitives/Cargo.toml
  • Add torrust-tracker-primitives dep to configuration/Cargo.toml
  • Replace AnnouncePolicy definition in configuration/src/lib.rs with a #[deprecated] re-export for external consumer backwards compatibility
  • Update configuration/src/v2_0_0/core.rs to import from torrust_tracker_primitives
  • Update bittorrent-http-tracker-protocol test import + remove unused torrust-tracker-configuration dep from its Cargo.toml
  • Update bittorrent-tracker-core integration test import
  • Update announce_handler.rs doc comment import path

Verification

  • cargo build --workspace: clean
  • cargo test --workspace: all pass
  • linter all: exit code 0
  • cargo machete: no unused deps

Closes #1795
Part of #1669 (SI-04)

Move AnnouncePolicy from torrust-tracker-configuration to
torrust-tracker-primitives (SI-04 of EPIC torrust#1669).

- Move spec from drafts/ to open/ with issue number prefix
- Update EPIC torrust#1669 subissues table with torrust#1795 issue link
- Link torrust#1795 as subissue of torrust#1669 on GitHub
torrust#1795)

Fixes the inverted dependency where torrust-tracker-primitives depended on
torrust-tracker-configuration for AnnouncePolicy. After this change:

- Before: primitives -> configuration (inverted dep)
- After:  configuration -> primitives (natural direction)

Changes:
- Move AnnouncePolicy struct+impls into packages/primitives/src/announce.rs
- Export AnnouncePolicy from torrust_tracker_primitives lib.rs
- Remove torrust-tracker-configuration dep from primitives/Cargo.toml
- Add torrust-tracker-primitives dep to configuration/Cargo.toml
- Replace AnnouncePolicy definition in configuration/src/lib.rs with a
  #[deprecated] re-export for external consumer backwards compatibility
- Update configuration/src/v2_0_0/core.rs to import from torrust_tracker_primitives
- Update bittorrent-http-tracker-protocol test import + remove unused
  torrust-tracker-configuration dep from its Cargo.toml
- Update bittorrent-tracker-core integration test import
- Update announce_handler.rs doc comment import path

All acceptance criteria verified:
- cargo build --workspace: clean
- cargo test --workspace: all pass
- linter all: exit code 0
- cargo machete: no unused deps
- grep torrust_tracker_configuration::AnnouncePolicy: zero matches

Closes torrust#1795
Part of torrust#1669 (SI-04)
Add a note to the run-pre-push-checks skill warning agents that git push
is a long-running command (~5 minutes with the pre-push hook installed).
Agents must wait for the terminal-completion notification before acting,
and should redirect push output to .tmp/ to avoid parsing shared terminal
history that may contain unrelated commands.
@josecelano josecelano requested a review from a team as a code owner May 19, 2026 17:28
Copilot AI review requested due to automatic review settings May 19, 2026 17:28
@josecelano josecelano self-assigned this May 19, 2026
@josecelano
Copy link
Copy Markdown
Member Author

ACK 0bcb28e

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Moves AnnouncePolicy from torrust-tracker-configuration to torrust-tracker-primitives to fix an inverted dependency where primitives depended on configuration. A #[deprecated] re-export is kept in configuration for external backwards compatibility.

Changes:

  • Moved AnnouncePolicy struct + impls into packages/primitives/src/announce.rs and exported from primitives/lib.rs.
  • Flipped the dependency direction: removed torrust-tracker-configuration from primitives/Cargo.toml, added torrust-tracker-primitives to configuration/Cargo.toml, and dropped configuration from http-protocol/Cargo.toml.
  • Updated all in-workspace imports (configuration/v2_0_0/core.rs, tracker-core integration test, http-protocol test, and a doc-comment in announce_handler.rs) and updated spec/EPIC docs.

Reviewed changes

Copilot reviewed 13 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/primitives/src/announce.rs New definition of AnnouncePolicy with serde defaults and Default/Constructor impls.
packages/primitives/src/lib.rs Re-export AnnouncePolicy alongside AnnounceData/AnnounceEvent.
packages/primitives/Cargo.toml Dropped inverted torrust-tracker-configuration dependency.
packages/configuration/src/lib.rs Replaced struct definition with a #[deprecated] pub use re-export.
packages/configuration/src/v2_0_0/core.rs Imports AnnouncePolicy from torrust_tracker_primitives.
packages/configuration/Cargo.toml Adds torrust-tracker-primitives dependency.
packages/http-protocol/Cargo.toml Removes now-unused torrust-tracker-configuration dependency.
packages/http-protocol/src/v1/responses/announce.rs Test import switched to torrust_tracker_primitives.
packages/tracker-core/tests/integration.rs Test import switched to torrust_tracker_primitives.
packages/tracker-core/src/announce_handler.rs Doc-comment import path updated.
Cargo.lock Reflects the dependency flip.
docs/issues/open/1795-1669-04-...md Spec moved from draft to open and marked completed.
docs/issues/open/1669-overhaul-packages/EPIC.md EPIC table updated with issue #1795 links.
.github/skills/dev/git-workflow/run-pre-push-checks/SKILL.md Unrelated guidance for AI agents on long-running git push.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.64%. Comparing base (6b8cb35) to head (0bcb28e).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #1796      +/-   ##
===========================================
- Coverage    77.73%   77.64%   -0.09%     
===========================================
  Files          378      379       +1     
  Lines        28602    28602              
  Branches     28602    28602              
===========================================
- Hits         22233    22209      -24     
- Misses        6063     6080      +17     
- Partials       306      313       +7     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@josecelano josecelano merged commit ca97cce into torrust:develop May 19, 2026
26 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move AnnouncePolicy from torrust-tracker-configuration to torrust-tracker-primitives

2 participants