diff --git a/.github/skills/dev/git-workflow/run-pre-push-checks/SKILL.md b/.github/skills/dev/git-workflow/run-pre-push-checks/SKILL.md index ec1b2ad32..90c85cd86 100644 --- a/.github/skills/dev/git-workflow/run-pre-push-checks/SKILL.md +++ b/.github/skills/dev/git-workflow/run-pre-push-checks/SKILL.md @@ -34,6 +34,21 @@ manually before each push. > **⏱️ Expected runtime: ~5 minutes** on a modern developer machine with warm caches. > AI agents should set a command timeout of **at least 15 minutes** before invoking > `./contrib/dev-tools/git/hooks/pre-push.sh`. +> +> **For AI agents — `git push` is a long-running command:** +> When the pre-push hook is installed, `git push` runs the full check suite (~5 minutes) +> before sending objects to the remote. Do **not** poll, retry, or issue a second `git push` +> while the first is still running. Wait for the IDE terminal-completion notification +> (exit code + output) before taking any follow-up action. +> +> To avoid parsing shared terminal history (which other commands or the user may have +> populated), redirect the output to a dedicated file and read that file for results: +> +> ```bash +> git push > .tmp/push-output.txt 2>&1; echo "Exit: $?" >> .tmp/push-output.txt +> ``` +> +> The `.tmp/` directory is git-ignored. Clean stale files periodically. Run the pre-push script. **It must exit with code `0` before every push.** diff --git a/Cargo.lock b/Cargo.lock index 305667c79..0fd234e6a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -622,7 +622,6 @@ dependencies = [ "serde_bencode", "thiserror 2.0.18", "torrust-tracker-clock", - "torrust-tracker-configuration", "torrust-tracker-contrib-bencode", "torrust-tracker-located-error", "torrust-tracker-primitives", @@ -5600,6 +5599,7 @@ dependencies = [ "thiserror 2.0.18", "toml 0.9.12+spec-1.1.0", "torrust-tracker-located-error", + "torrust-tracker-primitives", "tracing", "tracing-subscriber", "url", @@ -5664,7 +5664,6 @@ dependencies = [ "tdyne-peer-id-registry", "thiserror 2.0.18", "torrust-tracker-clock", - "torrust-tracker-configuration", "url", ] diff --git a/docs/issues/open/1669-overhaul-packages/EPIC.md b/docs/issues/open/1669-overhaul-packages/EPIC.md index 45cc03f9f..2e36751d1 100644 --- a/docs/issues/open/1669-overhaul-packages/EPIC.md +++ b/docs/issues/open/1669-overhaul-packages/EPIC.md @@ -207,7 +207,7 @@ Status: TODO unless noted. `SI-XX` = recommended implementation sequence number. - [ ] SI-01 — Establish baseline: dependency graph + README audit _(analysis; no blockers; informs all other subissues)_ - [x] SI-02 — Move `DurationSinceUnixEpoch` from `torrust-tracker-primitives` to `torrust-tracker-clock` _(Rule M; no hard blockers)_ - [ ] SI-03 — Define per-package default timeout constants and remove `DEFAULT_TIMEOUT` from `torrust-tracker-configuration` _(Rule M; no blockers)_ -- [ ] SI-04 — Move `AnnouncePolicy` from `torrust-tracker-configuration` to `torrust-tracker-primitives` _(Rule M; no blockers)_ +- [ ] 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)_ - [ ] SI-05 — Create `torrust-net-primitives` and move `ServiceBinding` from `torrust-tracker-primitives` _(Rule M + new package; no blockers)_ - [ ] SI-06 — Resolve `bittorrent-tracker-core` ↔ `torrust-rest-tracker-api-client` layer violation _(Rule M; prerequisite for `bittorrent-tracker-core` extraction)_ - [ ] SI-07 — Align `torrust-` prefix: rename 7 tracker-specific packages to `torrust-tracker-` _(Rule U; no blockers)_ @@ -227,7 +227,7 @@ Details: | SI-01 | #TBD — Establish baseline: dependency graph + README audit | [docs/issues/drafts/1669-01-establish-baseline-analysis.md](../../drafts/1669-01-establish-baseline-analysis.md) | TODO | No blockers; informs extraction decisions | | 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 | | 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 | -| 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 | +| 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 | | 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 | | 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 | | 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 | diff --git a/docs/issues/drafts/1669-04-move-announce-policy-to-torrust-tracker-primitives.md b/docs/issues/open/1795-1669-04-move-announce-policy-to-torrust-tracker-primitives.md similarity index 74% rename from docs/issues/drafts/1669-04-move-announce-policy-to-torrust-tracker-primitives.md rename to docs/issues/open/1795-1669-04-move-announce-policy-to-torrust-tracker-primitives.md index ae36c2e47..a8638cc95 100644 --- a/docs/issues/drafts/1669-04-move-announce-policy-to-torrust-tracker-primitives.md +++ b/docs/issues/open/1795-1669-04-move-announce-policy-to-torrust-tracker-primitives.md @@ -1,12 +1,12 @@ --- doc-type: issue issue-type: task -status: draft +status: open priority: p2 -github-issue: null -spec-path: docs/issues/drafts/1669-04-move-announce-policy-to-torrust-tracker-primitives.md -branch: null -related-pr: null +github-issue: 1795 +spec-path: docs/issues/open/1795-1669-04-move-announce-policy-to-torrust-tracker-primitives.md +branch: 1669-04-move-announce-policy-to-torrust-tracker-primitives +related-pr: 1796 last-updated-utc: 2026-05-18 00:00 semantic-links: skill-links: @@ -16,12 +16,13 @@ semantic-links: - packages/primitives/src/lib.rs - packages/primitives/Cargo.toml - docs/issues/open/1669-overhaul-packages/EPIC.md + - https://github.com/torrust/torrust-tracker/issues/1795 - docs/issues/open/1669-overhaul-packages/workspace-coupling-report.md --- -# Issue #[To be assigned] - Move `AnnouncePolicy` from `torrust-tracker-configuration` to `torrust-tracker-primitives` +# Issue #1795 - Move `AnnouncePolicy` from `torrust-tracker-configuration` to `torrust-tracker-primitives` ## Goal @@ -80,25 +81,25 @@ Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`. | ID | Status | Task | Notes / Expected Output | | --- | ------ | -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| T1 | TODO | Locate all definition and usage sites of `AnnouncePolicy` across the workspace | `grep -r "AnnouncePolicy" . --include="*.rs"` — build a full consumer list | -| 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` | -| T3 | TODO | Remove `AnnouncePolicy` from `packages/configuration/src/` | Definition gone; re-export or direct dep on `torrust-tracker-primitives` added to configuration | -| T4 | TODO | Add `torrust-tracker-primitives` as a dep of `packages/configuration/Cargo.toml` if not already present | `torrust-tracker-primitives` in `[dependencies]` | -| T5 | TODO | Remove `torrust-tracker-configuration` dep from `packages/primitives/Cargo.toml` if `AnnouncePolicy` was its sole reason | `cargo machete` reports no unused dep | -| T6 | TODO | Update all workspace files that import `AnnouncePolicy` from `torrust_tracker_configuration` to use `torrust_tracker_primitives` | One-line change per file | -| T7 | TODO | Run `cargo build --workspace` and `cargo test --workspace` | Clean build; all tests pass | -| T8 | TODO | Run `linter all` | Exit code `0` | +| T1 | DONE | Locate all definition and usage sites of `AnnouncePolicy` across the workspace | `grep -r "AnnouncePolicy" . --include="*.rs"` — build a full consumer list | +| 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` | +| T3 | DONE | Remove `AnnouncePolicy` from `packages/configuration/src/` | Definition gone; re-export or direct dep on `torrust-tracker-primitives` added to configuration | +| T4 | DONE | Add `torrust-tracker-primitives` as a dep of `packages/configuration/Cargo.toml` if not already present | `torrust-tracker-primitives` in `[dependencies]` | +| T5 | DONE | Remove `torrust-tracker-configuration` dep from `packages/primitives/Cargo.toml` if `AnnouncePolicy` was its sole reason | `cargo machete` reports no unused dep | +| T6 | DONE | Update all workspace files that import `AnnouncePolicy` from `torrust_tracker_configuration` to use `torrust_tracker_primitives` | One-line change per file | +| T7 | DONE | Run `cargo build --workspace` and `cargo test --workspace` | Clean build; all tests pass | +| T8 | DONE | Run `linter all` | Exit code `0` | ## Progress Tracking ### Workflow Checkpoints -- [ ] Spec drafted in `docs/issues/drafts/` -- [ ] Spec reviewed and approved by user/maintainer -- [ ] GitHub issue created and issue number added to this spec -- [ ] Spec moved to `docs/issues/open/` with issue number prefix -- [ ] Implementation completed -- [ ] Automatic verification completed (`linter all`, `cargo test --workspace`) +- [x] Spec drafted in `docs/issues/drafts/` +- [x] Spec reviewed and approved by user/maintainer +- [x] GitHub issue created and issue number added to this spec +- [x] Spec moved to `docs/issues/open/` with issue number prefix +- [x] Implementation completed +- [x] Automatic verification completed (`linter all`, `cargo test --workspace`) - [ ] Manual verification scenarios executed and recorded - [ ] Acceptance criteria reviewed after implementation and updated with evidence - [ ] EPIC #1669 Active Subissues table updated to `DONE` @@ -108,17 +109,20 @@ Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`. - 2026-05-18 00:00 UTC - josecelano - Spec drafted as subissue of EPIC #1669, addressing F-03 from the coupling analysis report. +- 2026-05-19 UTC - josecelano - Implementation completed: moved `AnnouncePolicy` to + `primitives/src/announce.rs`, removed inverted dep, added deprecated re-export in + `configuration`, updated all workspace consumers. All checks pass. ## Acceptance Criteria -- [ ] `packages/primitives/src/` defines `AnnouncePolicy` and exports it publicly. -- [ ] `packages/primitives/Cargo.toml` does not list `torrust-tracker-configuration` as a dependency. -- [ ] `packages/configuration/src/` no longer defines `AnnouncePolicy`; it imports from `torrust-tracker-primitives`. -- [ ] No workspace file imports `AnnouncePolicy` from `torrust_tracker_configuration` +- [x] `packages/primitives/src/` defines `AnnouncePolicy` and exports it publicly. +- [x] `packages/primitives/Cargo.toml` does not list `torrust-tracker-configuration` as a dependency. +- [x] `packages/configuration/src/` no longer defines `AnnouncePolicy`; it imports from `torrust-tracker-primitives`. +- [x] No workspace file imports `AnnouncePolicy` from `torrust_tracker_configuration` (all migrated to `torrust_tracker_primitives` or re-exported through it). -- [ ] `cargo build --workspace` succeeds with zero errors. -- [ ] `cargo test --workspace` passes with zero failures. -- [ ] `linter all` exits with code `0`. +- [x] `cargo build --workspace` succeeds with zero errors. +- [x] `cargo test --workspace` passes with zero failures. +- [x] `linter all` exits with code `0`. ## Verification Plan @@ -134,8 +138,8 @@ Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`. Status values: `TODO`, `IN_PROGRESS`, `DONE`, `FAILED`, `BLOCKED`. -| 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 | | -| M2 | `primitives` exports `AnnouncePolicy` | `grep "AnnouncePolicy" packages/primitives/src/lib.rs` | `pub` declaration found | TODO | | -| M3 | `primitives` dep list does not include `configuration` | `grep "torrust-tracker-configuration" packages/primitives/Cargo.toml` | Zero matches | TODO | | +| 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 | +| M2 | `primitives` exports `AnnouncePolicy` | `grep "AnnouncePolicy" packages/primitives/src/lib.rs` | `pub` declaration found | DONE | `pub use announce::{AnnounceData, AnnounceEvent, AnnouncePolicy};` | +| M3 | `primitives` dep list does not include `configuration` | `grep "torrust-tracker-configuration" packages/primitives/Cargo.toml` | Zero matches | DONE | `grep` returned zero matches | diff --git a/packages/configuration/Cargo.toml b/packages/configuration/Cargo.toml index 1155ba417..50b44b32a 100644 --- a/packages/configuration/Cargo.toml +++ b/packages/configuration/Cargo.toml @@ -24,6 +24,7 @@ serde_with = "3" thiserror = "2" toml = "0" torrust-tracker-located-error = { version = "3.0.0-develop", path = "../located-error" } +torrust-tracker-primitives = { version = "3.0.0-develop", path = "../primitives" } tracing = "0" tracing-subscriber = { version = "0", features = [ "json" ] } url = "2" diff --git a/packages/configuration/src/lib.rs b/packages/configuration/src/lib.rs index 4f76023ba..5511102f6 100644 --- a/packages/configuration/src/lib.rs +++ b/packages/configuration/src/lib.rs @@ -222,56 +222,18 @@ impl Info { } } -/// Announce policy -#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone, Copy, Constructor)] -pub struct AnnouncePolicy { - /// Interval in seconds that the client should wait between sending regular - /// announce requests to the tracker. - /// - /// It's a **recommended** wait time between announcements. - /// - /// This is the standard amount of time that clients should wait between - /// sending consecutive announcements to the tracker. This value is set by - /// the tracker and is typically provided in the tracker's response to a - /// client's initial request. It serves as a guideline for clients to know - /// how often they should contact the tracker for updates on the peer list, - /// while ensuring that the tracker is not overwhelmed with requests. - #[serde(default = "AnnouncePolicy::default_interval")] - pub interval: u32, - - /// Minimum announce interval. Clients must not reannounce more frequently - /// than this. - /// - /// It establishes the shortest allowed wait time. - /// - /// This is an optional parameter in the protocol that the tracker may - /// provide in its response. It sets a lower limit on the frequency at which - /// clients are allowed to send announcements. Clients should respect this - /// value to prevent sending too many requests in a short period, which - /// could lead to excessive load on the tracker or even getting banned by - /// the tracker for not adhering to the rules. - #[serde(default = "AnnouncePolicy::default_interval_min")] - pub interval_min: u32, -} - -impl Default for AnnouncePolicy { - fn default() -> Self { - Self { - interval: Self::default_interval(), - interval_min: Self::default_interval_min(), - } - } -} - -impl AnnouncePolicy { - fn default_interval() -> u32 { - 120 - } - - fn default_interval_min() -> u32 { - 120 - } -} +/// Announce policy for the `BitTorrent` announce cycle. +/// +/// **Deprecated**: import from [`torrust_tracker_primitives::AnnouncePolicy`] instead. +/// This re-export is kept for backwards compatibility and will be removed in a +/// future release. Removal is tracked as a follow-up cleanup subissue of EPIC +/// [#1669](https://github.com/torrust/torrust-tracker/issues/1669). +#[deprecated( + since = "3.0.0-develop", + note = "import `AnnouncePolicy` from `torrust_tracker_primitives` instead; \ + this re-export will be removed in a future release (see EPIC #1669)" +)] +pub use torrust_tracker_primitives::AnnouncePolicy; /// Errors that can occur when loading the configuration. #[derive(Error, Debug)] diff --git a/packages/configuration/src/v2_0_0/core.rs b/packages/configuration/src/v2_0_0/core.rs index 32dac8b3c..6f2783106 100644 --- a/packages/configuration/src/v2_0_0/core.rs +++ b/packages/configuration/src/v2_0_0/core.rs @@ -1,10 +1,11 @@ use derive_more::{Constructor, Display}; use serde::{Deserialize, Serialize}; +use torrust_tracker_primitives::AnnouncePolicy; use super::network::Network; +use crate::TrackerPolicy; use crate::v2_0_0::database::Database; use crate::validator::{SemanticValidationError, Validator}; -use crate::{AnnouncePolicy, TrackerPolicy}; #[allow(clippy::struct_excessive_bools)] #[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)] diff --git a/packages/http-protocol/Cargo.toml b/packages/http-protocol/Cargo.toml index 3436c1e77..94d9162e2 100644 --- a/packages/http-protocol/Cargo.toml +++ b/packages/http-protocol/Cargo.toml @@ -25,7 +25,6 @@ serde = { version = "1", features = [ "derive" ] } serde_bencode = "0" thiserror = "2" torrust-tracker-clock = { version = "3.0.0-develop", path = "../clock" } -torrust-tracker-configuration = { version = "3.0.0-develop", path = "../configuration" } torrust-tracker-contrib-bencode = { version = "3.0.0-develop", path = "../../contrib/bencode" } torrust-tracker-located-error = { version = "3.0.0-develop", path = "../located-error" } torrust-tracker-primitives = { version = "3.0.0-develop", path = "../primitives" } diff --git a/packages/http-protocol/src/v1/responses/announce.rs b/packages/http-protocol/src/v1/responses/announce.rs index 00ee66cb1..dcf0ae50b 100644 --- a/packages/http-protocol/src/v1/responses/announce.rs +++ b/packages/http-protocol/src/v1/responses/announce.rs @@ -277,10 +277,9 @@ mod tests { use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; use std::sync::Arc; - use torrust_tracker_configuration::AnnouncePolicy; use torrust_tracker_primitives::peer::fixture::PeerBuilder; use torrust_tracker_primitives::swarm_metadata::SwarmMetadata; - use torrust_tracker_primitives::{AnnounceData, PeerId}; + use torrust_tracker_primitives::{AnnounceData, AnnouncePolicy, PeerId}; use crate::v1::responses::announce::{Announce, Compact, Normal}; diff --git a/packages/primitives/Cargo.toml b/packages/primitives/Cargo.toml index b19b3ad0e..e85a92049 100644 --- a/packages/primitives/Cargo.toml +++ b/packages/primitives/Cargo.toml @@ -24,7 +24,6 @@ tdyne-peer-id = "1" tdyne-peer-id-registry = "0" thiserror = "2" torrust-tracker-clock = { version = "3.0.0-develop", path = "../clock" } -torrust-tracker-configuration = { version = "3.0.0-develop", path = "../configuration" } url = "2.5.4" [dev-dependencies] diff --git a/packages/primitives/src/announce.rs b/packages/primitives/src/announce.rs index 2d80ee37f..dfcdb4b10 100644 --- a/packages/primitives/src/announce.rs +++ b/packages/primitives/src/announce.rs @@ -3,11 +3,62 @@ use std::sync::Arc; use derive_more::derive::Constructor; -use torrust_tracker_configuration::AnnouncePolicy; +use serde::{Deserialize, Serialize}; use crate::peer; use crate::swarm_metadata::SwarmMetadata; +/// Announce policy +#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone, Copy, Constructor)] +pub struct AnnouncePolicy { + /// Interval in seconds that the client should wait between sending regular + /// announce requests to the tracker. + /// + /// It's a **recommended** wait time between announcements. + /// + /// This is the standard amount of time that clients should wait between + /// sending consecutive announcements to the tracker. This value is set by + /// the tracker and is typically provided in the tracker's response to a + /// client's initial request. It serves as a guideline for clients to know + /// how often they should contact the tracker for updates on the peer list, + /// while ensuring that the tracker is not overwhelmed with requests. + #[serde(default = "AnnouncePolicy::default_interval")] + pub interval: u32, + + /// Minimum announce interval. Clients must not reannounce more frequently + /// than this. + /// + /// It establishes the shortest allowed wait time. + /// + /// This is an optional parameter in the protocol that the tracker may + /// provide in its response. It sets a lower limit on the frequency at which + /// clients are allowed to send announcements. Clients should respect this + /// value to prevent sending too many requests in a short period, which + /// could lead to excessive load on the tracker or even getting banned by + /// the tracker for not adhering to the rules. + #[serde(default = "AnnouncePolicy::default_interval_min")] + pub interval_min: u32, +} + +impl Default for AnnouncePolicy { + fn default() -> Self { + Self { + interval: Self::default_interval(), + interval_min: Self::default_interval_min(), + } + } +} + +impl AnnouncePolicy { + fn default_interval() -> u32 { + 120 + } + + fn default_interval_min() -> u32 { + 120 + } +} + /// Structure that holds the data returned by the `announce` request. #[derive(Clone, Debug, PartialEq, Constructor, Default)] pub struct AnnounceData { diff --git a/packages/primitives/src/lib.rs b/packages/primitives/src/lib.rs index 20b7c950d..2a478cd38 100644 --- a/packages/primitives/src/lib.rs +++ b/packages/primitives/src/lib.rs @@ -15,7 +15,7 @@ pub mod swarm_metadata; use std::collections::BTreeMap; -pub use announce::{AnnounceData, AnnounceEvent}; +pub use announce::{AnnounceData, AnnounceEvent, AnnouncePolicy}; use bittorrent_primitives::info_hash::InfoHash; pub use number_of_bytes::NumberOfBytes; pub use peer_id::{PeerClient, PeerId}; diff --git a/packages/tracker-core/src/announce_handler.rs b/packages/tracker-core/src/announce_handler.rs index 435b3c05e..f1d4f2427 100644 --- a/packages/tracker-core/src/announce_handler.rs +++ b/packages/tracker-core/src/announce_handler.rs @@ -60,7 +60,7 @@ //! //! ```rust,no_run //! use torrust_tracker_primitives::peer; -//! use torrust_tracker_configuration::AnnouncePolicy; +//! use torrust_tracker_primitives::AnnouncePolicy; //! //! pub struct AnnounceData { //! pub peers: Vec, diff --git a/packages/tracker-core/tests/integration.rs b/packages/tracker-core/tests/integration.rs index 374b1ba06..1d2aa0cea 100644 --- a/packages/tracker-core/tests/integration.rs +++ b/packages/tracker-core/tests/integration.rs @@ -2,9 +2,8 @@ mod common; use common::fixtures::{ephemeral_configuration, remote_client_ip, sample_info_hash, sample_peer}; use common::test_env::TestEnv; -use torrust_tracker_configuration::AnnouncePolicy; -use torrust_tracker_primitives::AnnounceData; use torrust_tracker_primitives::swarm_metadata::SwarmMetadata; +use torrust_tracker_primitives::{AnnounceData, AnnouncePolicy}; #[tokio::test] async fn it_should_handle_the_announce_request() {