Skip to content

Commit 78e0c00

Browse files
committed
Merge #1886: chore(issues): maintain issue specs — archive closed, promote drafts, add new subissues
6ee41da chore(issues): archive closed #1881 SI-16 bencode spec; update EPIC #1669 (Jose Celano) 1293cc3 chore(issues): address Copilot PR review comments on #1886 (Jose Celano) e159b61 chore(issues): promote draft #1885 SI-20 extract-torrust-net-primitives to open; update EPIC #1669 (Jose Celano) 35fd55c chore(issues): add draft spec SI-20 extract-torrust-net-primitives; update EPIC #1669 (Jose Celano) 975b78d chore(issues): promote draft #1884 SI-19 move-bittorrent-peer-id to open; update EPIC #1669 (Jose Celano) 555108e chore(issues): add draft spec for moving bittorrent-peer-id to torrust-bittorrent; update EPIC #1669 (Jose Celano) 8b29e9c chore(issues): promote draft #1882 extract-torrust-metrics to open; update EPIC #1669 (Jose Celano) f34fddc chore(issues): archive closed issue specs #1854, #1864 to docs/issues/closed (Jose Celano) 2717f63 chore: move issue 1879 spec from open to closed (Jose Celano) Pull request description: ## Summary Routine issue spec maintenance on branch `chore/issue-specs-updates`. ### Changes | Commit | Description | |--------|-------------| | `698e00c0` | Move issue #1879 spec from `open/` to `closed/` (PR #1880 merged) | | `69fd8f2c` | Archive closed issue specs #1854 and #1864 to `docs/issues/closed/` | | `a595d38c` | Promote draft #1882 SI-18 (extract torrust-metrics) to `open/`; update EPIC | | `34214084` | Add draft spec for moving `bittorrent-peer-id` to `torrust-bittorrent` | | `f3e405fa` | Promote draft #1884 SI-19 (move bittorrent-peer-id) to `open/`; update EPIC | | `e3af4fb9` | Add draft spec SI-20 for extracting `torrust-net-primitives` to standalone repo | | `a9eff126` | Promote draft #1885 SI-20 (extract torrust-net-primitives) to `open/`; update EPIC | ### New GitHub issues created - [#1882](#1882) — SI-18: Extract `torrust-metrics` to standalone repository - [#1884](#1884) — SI-19: Move `bittorrent-peer-id` to `torrust/torrust-bittorrent` as `torrust-peer-id` - [#1885](#1885) — SI-20: Extract `torrust-net-primitives` to standalone repository ### Related Part of EPIC #1669 — Overhaul: Packages ACKs for top commit: josecelano: ACK 6ee41da Tree-SHA512: 8cb1b18a3712a8110afce92b4fecdca6f5e7e5ba7b741bfb45aaa433e0536d1218e7473fa5de9987f4b5198ddeda0675afcb7e1d819795b74ac649e79db12942
2 parents 9322406 + 6ee41da commit 78e0c00

9 files changed

Lines changed: 398 additions & 34 deletions

File tree

docs/issues/open/1854-1840-workflow-performance-container-test-gating/ISSUE.md renamed to docs/issues/closed/1854-1840-workflow-performance-container-test-gating/ISSUE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
22
doc-type: issue
33
issue-type: task
4-
status: open
4+
status: done
55
priority: p1
66
github-issue: 1854
7-
spec-path: docs/issues/open/1854-1840-workflow-performance-container-test-gating/ISSUE.md
7+
spec-path: docs/issues/closed/1854-1840-workflow-performance-container-test-gating/ISSUE.md
88
branch: "1854-container-test-gating"
9-
related-pr: null
10-
last-updated-utc: 2026-05-27 00:00
9+
related-pr: 1874
10+
last-updated-utc: 2026-06-05 00:00
1111
semantic-links:
1212
skill-links:
1313
- create-issue

docs/issues/open/1854-1840-workflow-performance-container-test-gating/nextest-archive-analysis.md renamed to docs/issues/closed/1854-1840-workflow-performance-container-test-gating/nextest-archive-analysis.md

File renamed without changes.

docs/issues/open/1864-1669-review-torrent-peers-limit/ISSUE.md renamed to docs/issues/closed/1864-1669-review-torrent-peers-limit/ISSUE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
22
doc-type: issue
33
issue-type: task
4-
status: open
4+
status: done
55
priority: p3
66
github-issue: 1864
7-
spec-path: docs/issues/open/1864-1669-review-torrent-peers-limit/ISSUE.md
7+
spec-path: docs/issues/closed/1864-1669-review-torrent-peers-limit/ISSUE.md
88
branch: null
9-
related-pr: null
10-
last-updated-utc: 2026-06-01 00:00
9+
related-pr: 1877
10+
last-updated-utc: 2026-06-05 00:00
1111
semantic-links:
1212
skill-links:
1313
- create-issue

docs/issues/open/1879-1669-17-extract-torrust-clock-to-standalone-repo.md renamed to docs/issues/closed/1879-1669-17-extract-torrust-clock-to-standalone-repo.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
---
22
doc-type: issue
33
issue-type: task
4-
status: open
4+
status: done
55
priority: p3
66
github-issue: 1879
7-
spec-path: docs/issues/open/1879-1669-17-extract-torrust-clock-to-standalone-repo.md
7+
spec-path: docs/issues/closed/1879-1669-17-extract-torrust-clock-to-standalone-repo.md
88
branch: 1879-1669-extract-torrust-clock-to-standalone-repo
9-
related-pr: null
9+
related-pr: 1880
1010
last-updated-utc: 2026-06-05 00:00
1111
semantic-links:
1212
skill-links:
1313
- create-issue
1414
related-artifacts:
15-
- packages/clock/Cargo.toml
1615
- Cargo.toml
1716
- docs/packages.md
1817
- AGENTS.md
@@ -149,7 +148,7 @@ Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`.
149148
- 2026-06-05 00:00 UTC - josecelano - T6 deferred: CI, AI agent setup, and release process will be established when the first change to torrust-clock is needed; initial commit pushed to GitHub
150149
- 2026-06-05 00:00 UTC - josecelano - torrust-clock v3.0.0 published on crates.io; T7–T9 DONE: all 13 consumers migrated to crates.io dep, packages/clock removed from workspace members, directory deleted; M1+M2 verified
151150
- 2026-06-05 00:00 UTC - josecelano - T10 DONE: AGENTS.md, packages/AGENTS.md, docs/packages.md updated; T13 DONE: EPIC #1669 tables updated; T11+T12 deferred to CI (PR checks)
152-
- 2026-06-05 00:00 UTC - josecelano - T10 DONE: AGENTS.md, packages/AGENTS.md, docs/packages.md updated; T13 DONE: EPIC #1669 tables updated; T11+T12 deferred to CI (PR #TBD)
151+
- 2026-06-05 00:00 UTC - josecelano - PR #1880 merged into develop; issue closed; spec moved to docs/issues/closed/
153152

154153
> **Note — deferred setup for `torrust/torrust-clock`**: The following work is intentionally deferred to a future issue opened against the `torrust/torrust-clock` repository, to be done when the first change or publication is needed:
155154
>

docs/issues/open/1881-1669-16-migrate-contrib-bencode-to-torrust-bittorrent/ISSUE.md renamed to docs/issues/closed/1881-1669-16-migrate-contrib-bencode-to-torrust-bittorrent/ISSUE.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
22
doc-type: issue
33
issue-type: task
4-
status: open
4+
status: done
55
priority: p2
66
github-issue: 1881
7-
spec-path: docs/issues/open/1881-1669-16-migrate-contrib-bencode-to-torrust-bittorrent/ISSUE.md
7+
spec-path: docs/issues/closed/1881-1669-16-migrate-contrib-bencode-to-torrust-bittorrent/ISSUE.md
88
branch: 1881-1669-16-migrate-contrib-bencode-to-torrust-bittorrent
9-
related-pr: null
9+
related-pr: 1883
1010
last-updated-utc: 2026-06-05 00:00
1111
semantic-links:
1212
skill-links:

docs/issues/open/1669-overhaul-packages/EPIC.md

Lines changed: 18 additions & 9 deletions
Large diffs are not rendered by default.

docs/issues/drafts/1669-extract-torrust-metrics-to-standalone-repo.md renamed to docs/issues/open/1882-1669-18-extract-torrust-metrics-to-standalone-repo.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
22
doc-type: issue
33
issue-type: task
4-
status: draft
4+
status: open
55
priority: p3
6-
github-issue: null
7-
spec-path: docs/issues/drafts/1669-extract-torrust-metrics-to-standalone-repo.md
6+
github-issue: 1882
7+
spec-path: docs/issues/open/1882-1669-18-extract-torrust-metrics-to-standalone-repo.md
88
branch: null
99
related-pr: null
10-
last-updated-utc: 2026-05-15 12:00
10+
last-updated-utc: 2026-06-05 00:00
1111
semantic-links:
1212
skill-links:
1313
- create-issue
@@ -22,7 +22,7 @@ semantic-links:
2222

2323
<!-- skill-link: create-issue -->
2424

25-
# Issue #[To be assigned] - Extract `torrust-metrics` to a standalone repository
25+
# Issue #1882 - Extract `torrust-metrics` to a standalone repository
2626

2727
## Goal
2828

@@ -113,12 +113,12 @@ Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`.
113113

114114
### Workflow Checkpoints
115115

116-
- [ ] Spec drafted in `docs/issues/drafts/`
117-
- [ ] Spec reviewed and approved by user/maintainer
116+
- [x] Spec drafted in `docs/issues/drafts/`
117+
- [x] Spec reviewed and approved by user/maintainer
118118
- [ ] Metrics rename subissue complete (SI-08; prerequisite)
119119
- [ ] `torrust-metrics` published on crates.io (T1b; required before extraction)
120-
- [ ] GitHub issue created and issue number added to this spec
121-
- [ ] Spec moved to `docs/issues/open/` with issue number prefix
120+
- [x] GitHub issue created and issue number added to this spec
121+
- [x] Spec moved to `docs/issues/open/` with issue number prefix
122122
- [ ] Standalone repository created
123123
- [ ] Source moved with history preserved
124124
- [ ] CI set up and passing in new repository
@@ -134,6 +134,7 @@ Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`.
134134

135135
- 2026-05-15 12:00 UTC - josecelano - Spec drafted as subissue of EPIC #1669; follows
136136
metrics rename subissue
137+
- 2026-06-05 00:00 UTC - josecelano - GitHub issue #1882 created; spec moved to docs/issues/open/
137138

138139
## Acceptance Criteria
139140

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
---
2+
doc-type: issue
3+
issue-type: task
4+
status: open
5+
priority: p2
6+
github-issue: 1884
7+
spec-path: docs/issues/open/1884-1669-19-move-bittorrent-peer-id-to-torrust-bittorrent.md
8+
branch: 1884-1669-move-bittorrent-peer-id-to-torrust-bittorrent
9+
related-pr: null
10+
last-updated-utc: 2026-06-05 00:00
11+
semantic-links:
12+
skill-links:
13+
- create-issue
14+
related-artifacts:
15+
- packages/peer-id/Cargo.toml
16+
- Cargo.toml
17+
- packages/http-protocol/Cargo.toml
18+
- packages/primitives/Cargo.toml
19+
- packages/udp-protocol/Cargo.toml
20+
- AGENTS.md
21+
- docs/packages.md
22+
- docs/issues/open/1669-overhaul-packages/EPIC.md
23+
---
24+
25+
<!-- skill-link: create-issue -->
26+
27+
# Issue #1884 - Move `packages/peer-id` to `torrust/torrust-bittorrent` as `torrust-peer-id`
28+
29+
## Goal
30+
31+
Rename the crate `bittorrent-peer-id` to `torrust-peer-id`, and move it from the tracker
32+
workspace (`packages/peer-id`) into `torrust/torrust-bittorrent` (`packages/peer-id`).
33+
34+
## Background
35+
36+
The `packages/peer-id` package is a pure BitTorrent peer-ID parsing and client-identification
37+
library with no tracker-specific logic. Several facts confirm it is ready for extraction:
38+
39+
- **No workspace dependencies**: its only dependencies are external crates (`compact_str`,
40+
`hex`, `quickcheck`, `regex`, `serde`, `zerocopy`). The extraction can proceed without
41+
publishing any other workspace package first. _(Verified June 2026.)_
42+
- **No crates.io publication blockers**: the crate has never been published, so there is no
43+
migration window or old-name yank required.
44+
- **`torrust/torrust-bittorrent` is the agreed destination**: the EPIC #1669 "Desired Package
45+
State" table already lists `torrust-peer-id` as an incoming package in that workspace.
46+
This is the first package in the `bittorrent-*` extraction sequence.
47+
- **Three workspace consumers**: `packages/http-protocol`, `packages/primitives`, and
48+
`packages/udp-protocol` all depend on `bittorrent-peer-id` via a local path dep. After
49+
extraction each dependency becomes a normal crates.io dependency — no other workspace
50+
packages change.
51+
- **Naming alignment**: the `bittorrent-` prefix is a working name carried over from an
52+
earlier refactoring cycle. Renaming to `torrust-peer-id` aligns with the `torrust-`
53+
organisation prefix adopted for all packages landing in `torrust/torrust-bittorrent`.
54+
55+
This issue is a subissue of EPIC #1669 (Overhaul: Packages).
56+
57+
## Scope
58+
59+
### In Scope
60+
61+
- Rename the crate `name` in `packages/peer-id/Cargo.toml` from `bittorrent-peer-id` to
62+
`torrust-peer-id`.
63+
- Move the crate source to `packages/peer-id` in `torrust/torrust-bittorrent`, preserving
64+
relevant history.
65+
- Update `repository` URL and crate metadata in `Cargo.toml` to point to
66+
`https://github.com/torrust/torrust-bittorrent`.
67+
- Ensure CI passes in the destination repository after migration.
68+
- Publish `torrust-peer-id` on crates.io from the destination repository.
69+
- Update the three consumers in the tracker workspace to depend on the published
70+
`torrust-peer-id` crate (remove all local path dependencies):
71+
- `packages/http-protocol/Cargo.toml`
72+
- `packages/primitives/Cargo.toml`
73+
- `packages/udp-protocol/Cargo.toml`
74+
- Remove `packages/peer-id/` from the tracker workspace:
75+
- Remove from `members` in the root `Cargo.toml`.
76+
- Remove the workspace dependency entry for `bittorrent-peer-id`.
77+
- Delete `packages/peer-id/` directory from the tracker repo.
78+
- Update `packages/AGENTS.md`, `AGENTS.md` Package Catalog, and `docs/packages.md`.
79+
80+
### Out of Scope
81+
82+
- Changes to the crate's API or behaviour.
83+
- Updating other downstream repositories — separate task per repo.
84+
- Extracting other `bittorrent-*` or `contrib/` crates — each gets its own subissue.
85+
- Setting up CI from scratch in `torrust/torrust-bittorrent` if it is already in place.
86+
87+
## Implementation Plan
88+
89+
Status values: `TODO`, `IN_PROGRESS`, `BLOCKED`, `DONE`.
90+
91+
| ID | Status | Task | Notes / Expected Output |
92+
| --- | ------ | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
93+
| T1 | TODO | Rename `name` in `packages/peer-id/Cargo.toml` to `torrust-peer-id` | `name = "torrust-peer-id"` |
94+
| T2 | TODO | Update `repository` URL in `packages/peer-id/Cargo.toml` and crate metadata | Point to `https://github.com/torrust/torrust-bittorrent` |
95+
| T3 | TODO | Confirm destination workspace `torrust/torrust-bittorrent` migration path | Target path agreed: `packages/peer-id` |
96+
| T4 | TODO | Move/merge crate source into destination workspace, preserving history where practical | `packages/peer-id` added to `torrust/torrust-bittorrent` |
97+
| T5 | TODO | Set up/adjust CI in destination repository if needed | CI green after migration |
98+
| T6 | TODO | Publish `torrust-peer-id` on crates.io from destination repository | Successful `cargo publish`; crate visible at crates.io/crates/torrust-peer-id |
99+
| T7 | TODO | Update `packages/http-protocol/Cargo.toml`: replace path dep with published `torrust-peer-id` | `torrust-peer-id = "X.Y.Z"` (no path) |
100+
| T8 | TODO | Update `packages/primitives/Cargo.toml`: replace path dep with published `torrust-peer-id` | `torrust-peer-id = "X.Y.Z"` (no path) |
101+
| T9 | TODO | Update `packages/udp-protocol/Cargo.toml`: replace path dep with published `torrust-peer-id` (keep `zerocopy` feature) | `torrust-peer-id = { version = "X.Y.Z", features = ["zerocopy"] }` (no path) |
102+
| T10 | TODO | Remove `packages/peer-id/` from tracker workspace (`members` + workspace dep in `Cargo.toml`) | `cargo build --workspace` succeeds without the local crate |
103+
| T11 | TODO | Delete `packages/peer-id/` directory from the tracker repo | Directory gone; workspace still builds |
104+
| T12 | TODO | Update `packages/AGENTS.md`, `AGENTS.md`, `docs/packages.md`, and any README references | No stale references to `bittorrent-peer-id` |
105+
| T13 | TODO | Run `cargo build --workspace`, `cargo test --workspace`, `linter all` | All green |
106+
| T14 | TODO | Update EPIC #1669 `Package Inventory` and `Desired Package State` tables | Remove `bittorrent-peer-id` from tracker table; mark as extracted in bittorrent table |
107+
108+
## Progress Tracking
109+
110+
### Workflow Checkpoints
111+
112+
- [x] Spec drafted in `docs/issues/drafts/`
113+
- [x] Spec reviewed and approved by user/maintainer
114+
- [x] GitHub issue created and issue number added to this spec
115+
- [x] Spec moved to `docs/issues/open/` with issue number prefix
116+
- [ ] Implementation completed
117+
- [ ] Automatic verification completed (`linter all`, `cargo test --workspace`)
118+
- [ ] Manual verification scenarios executed and recorded
119+
- [ ] Acceptance criteria reviewed after implementation and updated with evidence
120+
- [ ] `torrust-peer-id` published from `torrust/torrust-bittorrent`
121+
- [ ] EPIC #1669 Active Subissues table updated to `DONE`
122+
- [ ] Issue closed and spec moved to `docs/issues/closed/`
123+
124+
### Progress Log
125+
126+
- 2026-06-05 00:00 UTC - josecelano - Spec drafted as subissue of EPIC #1669
127+
- 2026-06-05 00:00 UTC - josecelano - GitHub issue #1884 created; spec promoted to docs/issues/open/
128+
129+
## Acceptance Criteria
130+
131+
- [ ] `packages/peer-id/` directory no longer exists in the tracker workspace.
132+
- [ ] Root `Cargo.toml` does not list `packages/peer-id` as a workspace member.
133+
- [ ] No `Cargo.toml` in the tracker workspace references `bittorrent-peer-id`.
134+
- [ ] `packages/http-protocol/Cargo.toml` depends on the published `torrust-peer-id`.
135+
- [ ] `packages/primitives/Cargo.toml` depends on the published `torrust-peer-id`.
136+
- [ ] `packages/udp-protocol/Cargo.toml` depends on the published `torrust-peer-id` with the `zerocopy` feature.
137+
- [ ] `cargo build --workspace` succeeds without the local peer-id crate.
138+
- [ ] `cargo test --workspace` passes with zero failures.
139+
- [ ] `linter all` exits with code `0`.
140+
- [ ] `torrust-peer-id` is published and visible on crates.io.
141+
- [ ] Destination repository (`torrust/torrust-bittorrent`) has passing CI and a published release.
142+
- [ ] `packages/AGENTS.md`, `AGENTS.md`, and `docs/packages.md` no longer list `bittorrent-peer-id`.
143+
144+
## Verification Plan
145+
146+
### Automatic Checks
147+
148+
- `cargo build --workspace`
149+
- `cargo test --doc --workspace`
150+
- `cargo test --tests --workspace --all-targets --all-features`
151+
- `linter all`
152+
- `cargo machete`
153+
154+
### Manual Verification Scenarios
155+
156+
Status values: `TODO`, `IN_PROGRESS`, `DONE`, `FAILED`, `BLOCKED`.
157+
158+
| ID | Scenario | Command/Steps | Expected Result | Status | Evidence |
159+
| --- | ----------------------------------------- | -------------------------------------------------------------------------------------- | --------------------------------------- | ------ | -------- |
160+
| M1 | No stale workspace reference to old crate | `grep -r "bittorrent-peer-id\|packages/peer-id" . --include="*.toml" --include="*.rs"` | Zero matches in tracker repo | TODO | |
161+
| M2 | New crate visible on crates.io | Visit `https://crates.io/crates/torrust-peer-id` | Crate page exists, latest version shown | TODO | |
162+
| M3 | Destination repository CI green | Check CI status on `torrust/torrust-bittorrent` default branch | All checks pass | TODO | |

0 commit comments

Comments
 (0)