Skip to content

UDP Tracker client: Print unexpected responses in JSON #670

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
Tracked by #669
josecelano opened this issue Feb 2, 2024 · 1 comment · Fixed by #876
Closed
Tracked by #669

UDP Tracker client: Print unexpected responses in JSON #670

josecelano opened this issue Feb 2, 2024 · 1 comment · Fixed by #876
Assignees
Labels
- Admin - Enjoyable to Install and Setup our Software - Developer - Torrust Improvement Experience Easy Good for Newcomers good first issue Good for newcomers Testing Checking Torrust
Milestone

Comments

@josecelano
Copy link
Member

Parent issue: #669

When you run the UDP tracker client:

cargo run --bin udp_tracker_client announce 127.0.0.1:6969 9c38422213e30bff212b30c360d26f9a02136422

Not all responses are printed in JSON. Some of them are printed in Rust Debug format.

fn print_response(response: Response) -> anyhow::Result<()> {
    match response {
        AnnounceIpv4(response) => {
            let pretty_json = serde_json::to_string_pretty(&AnnounceResponseDto::from(response))
                .context("announce IPv4 response JSON serialization")?;
            println!("{pretty_json}");
        }
        AnnounceIpv6(response) => {
            let pretty_json = serde_json::to_string_pretty(&AnnounceResponseDto::from(response))
                .context("announce IPv6 response JSON serialization")?;
            println!("{pretty_json}");
        }
        Scrape(response) => {
            let pretty_json =
                serde_json::to_string_pretty(&ScrapeResponseDto::from(response)).context("scrape response JSON serialization")?;
            println!("{pretty_json}");
        }
        _ => println!("{response:#?}"), // todo: serialize to JSON all aquatic responses.
    };

    Ok(())
}

We have to implement JSON serialization for all aquatic UDP responses:

//! Aquatic responses are not serializable. These are the serializable wrappers.
use std::net::{Ipv4Addr, Ipv6Addr};

use aquatic_udp_protocol::{AnnounceResponse, ScrapeResponse};
use serde::Serialize;

#[derive(Serialize)]
pub struct AnnounceResponseDto {
    transaction_id: i32,
    announce_interval: i32,
    leechers: i32,
    seeders: i32,
    peers: Vec<String>,
}

impl From<AnnounceResponse<Ipv4Addr>> for AnnounceResponseDto {
    fn from(announce: AnnounceResponse<Ipv4Addr>) -> Self {
        Self {
            transaction_id: announce.transaction_id.0,
            announce_interval: announce.announce_interval.0,
            leechers: announce.leechers.0,
            seeders: announce.seeders.0,
            peers: announce
                .peers
                .iter()
                .map(|peer| format!("{}:{}", peer.ip_address, peer.port.0))
                .collect::<Vec<_>>(),
        }
    }
}

impl From<AnnounceResponse<Ipv6Addr>> for AnnounceResponseDto {
    fn from(announce: AnnounceResponse<Ipv6Addr>) -> Self {
        Self {
            transaction_id: announce.transaction_id.0,
            announce_interval: announce.announce_interval.0,
            leechers: announce.leechers.0,
            seeders: announce.seeders.0,
            peers: announce
                .peers
                .iter()
                .map(|peer| format!("{}:{}", peer.ip_address, peer.port.0))
                .collect::<Vec<_>>(),
        }
    }
}

#[derive(Serialize)]
pub struct ScrapeResponseDto {
    transaction_id: i32,
    torrent_stats: Vec<TorrentStats>,
}

impl From<ScrapeResponse> for ScrapeResponseDto {
    fn from(scrape: ScrapeResponse) -> Self {
        Self {
            transaction_id: scrape.transaction_id.0,
            torrent_stats: scrape
                .torrent_stats
                .iter()
                .map(|torrent_scrape_statistics| TorrentStats {
                    seeders: torrent_scrape_statistics.seeders.0,
                    completed: torrent_scrape_statistics.completed.0,
                    leechers: torrent_scrape_statistics.leechers.0,
                })
                .collect::<Vec<_>>(),
        }
    }
}

#[derive(Serialize)]
struct Peer {
    seeders: i32,
    completed: i32,
    leechers: i32,
}

#[derive(Serialize)]
struct TorrentStats {
    seeders: i32,
    completed: i32,
    leechers: i32,
}
@josecelano josecelano added - Developer - Torrust Improvement Experience - Admin - Enjoyable to Install and Setup our Software Testing Checking Torrust labels Feb 2, 2024
@josecelano josecelano added this to the v3.1.0 milestone Feb 2, 2024
@josecelano josecelano mentioned this issue Feb 2, 2024
22 tasks
@josecelano josecelano added good first issue Good for newcomers Easy Good for Newcomers labels Feb 2, 2024
@mario-nt mario-nt self-assigned this May 18, 2024
@mario-nt
Copy link
Contributor

mario-nt commented May 20, 2024

Tasks:

  • implement JSON response for Connect responses
  • Implement JSON response for Error responses
  • Tests
  • Review

mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue May 20, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue May 21, 2024
@cgbosse cgbosse moved this to In Progress in Torrust Solution May 24, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue May 27, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue May 27, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue May 27, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue Jun 3, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue Jun 3, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue Jun 3, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue Jun 3, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue Jun 3, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue Jun 3, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue Jun 4, 2024
mario-nt added a commit to mario-nt/torrust-tracker that referenced this issue Jun 4, 2024
@github-project-automation github-project-automation bot moved this from In Progress to Done in Torrust Solution Jun 5, 2024
da2ce7 pushed a commit to da2ce7/torrust-tracker that referenced this issue Jun 26, 2024
da2ce7 pushed a commit to da2ce7/torrust-tracker that referenced this issue Jun 26, 2024
da2ce7 pushed a commit to da2ce7/torrust-tracker that referenced this issue Jun 26, 2024
da2ce7 pushed a commit to da2ce7/torrust-tracker that referenced this issue Jun 26, 2024
da2ce7 pushed a commit to da2ce7/torrust-tracker that referenced this issue Jun 26, 2024
da2ce7 pushed a commit to da2ce7/torrust-tracker that referenced this issue Jun 26, 2024
da2ce7 pushed a commit to da2ce7/torrust-tracker that referenced this issue Jun 26, 2024
josecelano added a commit that referenced this issue Aug 13, 2024
592c9cc release: version 3.0.0-alpha.12 (Jose Celano)
1455295 ci: [#1010] fix missing publishing packages (Jose Celano)
62ffffb chore(deps): update dependencies (Jose Celano)
6a707b9 fix: linter errors (Jose Celano)
f5e38bb feat!: [#1006] remove config  deafults for secrets (Jose Celano)
3fbab31 refactor: [#1002] rename is_good fn to meets_retaining_policy (Jose Celano)
1766587 feat: [#1002] remove inactive peers always (Jose Celano)
e563bfb fix: benchmarking config template (Jose Celano)
222fa42 feat: disable TimeoutAcceptor when TSL is enabled (Jose Celano)
5939b9a docs: update roadmap in README (Jose Celano)
7c62645 chore(deps): update dependencies (Jose Celano)
90ef14d feat!: [#938] add mandatory config options (Jose Celano)
287e484 feat!: [#958] improve metadata in config files (Jose Celano)
349692b test: [#989] add more tests for keys (Jose Celano)
8d58882 refactor: make method private (Jose Celano)
d7dfc3b feat: [#978] add semantic validation for configuration (Jose Celano)
e8e935c feat: [#978] add a config option to disable cheking keys' expiration (Jose Celano)
c5beff5 feat: [#979] permanent keys (Jose Celano)
8d3fe72 chore(deps): [#979] add new cargo dep: serde_with (Jose Celano)
e81914b refactor: [#976] concrete errors for parsing keys (Jose Celano)
8d41d18 fix: [#976] do not allow invalid tracker keys (Jose Celano)
04f50e4 docs: [#974] update add key endpoint doc (Jose Celano)
583b305 test: [#874] new key generation endpoint (Jose Celano)
09beb52 feat: [#974] new API endpoint to upload pre-existing keys (Jose Celano)
82a8b43 chore(deps): update dependencies (Jose Celano)
8cefad6 fix: [#933] uppercase for containerfile keywords (Jose Celano)
9791427 chore: update deps (Cameron Garnham)
d2717ad fixup: doc fixups (Cameron Garnham)
7f867d6 toml: use major versions (Cameron Garnham)
cafb9aa chore: update deps (Cameron Garnham)
64850af dev: remove async trait dep (Cameron Garnham)
019cf9f udp: processor for requests (Cameron Garnham)
ca348a8 chore: remove unused dependency (Jose Celano)
9d72f51 feat: [#950] use lowercase for database driver values in configuration (Jose Celano)
d970bb8 refactor: [#950] rename DatabaseDriver to Driver (Jose Celano)
954295a refactor: [#950] move DatabaseDriver to databases mod (Jose Celano)
9be9638 refactor: [#950] decouple database driver enum (Jose Celano)
4673514 fix: [#948] mask secrets in logs (Jose Celano)
16aa652 chore(deps): add url dependency (Jose Celano)
60c6876 feat: [#937] add version to configration file following semver. (Jose Celano)
4846c9f chore: update workflow action build-push-action (Jose Celano)
e2dbb0b chore(deps): update dependencies (Jose Celano)
af61e20 feat: [#936] rename config value log_level to threshold (Jose Celano)
397ef0f feat: log final config after processing all config sources (Jose Celano)
ddfbde3 feat: the configuration can be serialized as JSON (Jose Celano)
46c3263 feat: normalize log nessages (Jose Celano)
e299792 feat: warn adming when no service is enabled in the configration (Jose Celano)
632ad0d refactor: use only latest config version in prod code (Jose Celano)
2969df3 refactor: [#939] change config version (Jose Celano)
b6b841d chore: remove crate from ignore list in cargo machete (Jose Celano)
f61c7c3 docs: add commments to core::Tracker struct fields (Jose Celano)
5a16ea1 refactor: [#932] make all Tracker fields private (Jose Celano)
a5b9e14 refactor: inject the core config to the core tracker (Jose Celano)
ca31c83 feat: [#932] replace `mode` core config option with `private` and `listed` flags (Jose Celano)
f5d8dc6 refactor: [#932] WIP. Add new core config options: private and listed (Jose Celano)
2186809 refactor: [#932] sort config core section fields (Jose Celano)
d1c2d15 fix: [#918] revision for UDP active reqeust buffer comments (Cameron Garnham)
6495a4c docs: [#918] add comments to the UDP server (Jose Celano)
daeb7cc ci: coverage workflow pre-build fix (Cameron Garnham)
77c6954 chore(deps): update dependencies (Jose Celano)
c202db7 dev: tracker client error enums (Cameron Garnham)
988f1c7 dev: add vscode 'code-workspace' to git ignore file (Cameron Garnham)
16d4cb6 ci: coverage workflow add pre-build-test step (Cameron Garnham)
5f3957a ci: coverage build with two jobs (Cameron Garnham)
f0de8dd ci: pre-build coverage test (Cameron Garnham)
3d567c8 ci: nightly build for coverage (Cameron Garnham)
2518c54 fix: [#917] clients output in JSON should not include logging (Jose Celano)
f06976e docs: update some UDP server comments (Jose Celano)
89bb735 refactor: reorganize UDP server mod (Jose Celano)
c121bf2 refactor: rename UDP server types (Jose Celano)
336e0e6 refactor: reorganize mod to extract new submods (Jose Celano)
61fb4b2 refactor: move active requests logic to ActiveRequest type (Jose Celano)
35b6c84 refactor: simplify UDP server receiver (Jose Celano)
a5e2baf refactor: extract method (Jose Celano)
b4b4515 refactor: extract const for logging targets (Jose Celano)
0388e1d refactor: extract consts for logging targets (Jose Celano)
16ae4fd refactor: rename vars and extract constructor (Jose Celano)
7ff0cd2 refactor: rename var (Jose Celano)
0e3678d refactor: rename Socket to BoundSocket and fix format errors" (Jose Celano)
9b3b75b fix: log message (Jose Celano)
84cc1a1 dev: use stream for udp requests (Cameron Garnham)
0bcca80 chore(deps): update dependencies (Jose Celano)
06ad5da feat!: [#878] remove enabled fields in config (Jose Celano)
50bef25 feat: remove ambiguous log entry (Jose Celano)
c5cc9fd feat: [#878] extract tsl_config in toml config (Jose Celano)
7b2f757 feat!: [#878] extract tracker_policy section in core config section (Jose Celano)
fc046e0 feat!: [#878] extract announce_policy section in core config section (Jose Celano)
edc706c feat!: [#878] extract net section in core config section (Jose Celano)
2f94f6c feat!: [#878] extract database section in core config section (Jose Celano)
77dd938 feat!: [#878] make log_level config value mandatory (Jose Celano)
ef9461a feat!: [#878] extract logging and core section in toml config files (Jose Celano)
3c715fb fix: [#898] docker build error: failed to load bitcode of module criterion (Jose Celano)
eb928bc fix: [#893] enable color for logs (Jose Celano)
a293373 chore(deps): add cargo dependency regex (Jose Celano)
a88082a fix: [#893] enable color in logs (Jose Celano)
322b976 chore(deps): update dependencies (Jose Celano)
f8a9976 docs: [#770] update benchmarking docs (Jose Celano)
c08de75 refactor: [#659] use clap and anyhow in E2E test runner (Jose Celano)
ec88dbf chore(deps): remove unused dependencies log and fern (Jose Celano)
d6fd11a test: [#884] add test for parsing array of services from app logs (Jose Celano)
7de2595 chore(deps): [#884] remove unused crate log (Jose Celano)
69f100a refactor: [#884] move from log to tracing crate (Jose Celano)
6e06b2e refactor: [#884] move from log to tracing crate (Jose Celano)
3ccc0e4 chore(deps): add cargo dependency tracing (Jose Celano)
6e87d3e chore(deps): update dependencies (Jose Celano)
f5d843b docs: add benchmarking to torrent repo README (Jose Celano)
0157d96 refactor:[#670] fix clippy errors (Mario)
32416ee refactor: [#670] changed DTOs and variable names (Mario)
5a529cc refactor: [#670]  new mod for responses logic and refactors to json serialization trait (Mario)
74f4cb0 refactor: [#670] added error message for pint_response function (Mario)
08e87ca refactor: [#670] new print_response function from trait implemented (Mario)
625db48 refactor: [#670] new trait for printing responses in JSON format and  enum for Dto wrapper (Mario)
4de7793 feat: [#670] new JSON serialization for connect and error aquatic responses (Mario)
a3df726 fix: clippy errors (Jose Celano)
9e71e71 chore(deps): update dependencies (Jose Celano)
0c9da2f feat: [#870] implement traits Dispaly and FromStr for TrackerMode (Jose Celano)
74d8f79 feat: [#870] remove Copy trait from TrackerMode (Jose Celano)
932e66e feat: [#870] add privacy methods to the TrackerMode (Jose Celano)
9be9366 Fix and improved bootstrap jobs module test. (Gabriel GRONDIN)
23c52b1 Fix REAADME HTTP port (Gabriel Grondin)
23d5e5e fix: [#613] add timeout for time waiting for the first HTTP tracker request (Jose Celano)
9e42a1a feat: [#612] tower middleware to apply timeouts to requests (Jose Celano)
112b76d fix: [#612] add timeout for time waiting for the first API requests (Jose Celano)
dadc216 chore(deps): add cargo dependencies needed for axum timeouts (Jose Celano)
80fc8d6 docs: udpate roadmap in README (Jose Celano)
e1e1071 docs: update README (Jose Celano)
a4d2adf feat!: remove deprecated env var (Jose Celano)
ef15e0b refactor: [#851] rename env vars (Jose Celano)
4de5e7d refactor: move config env vars to configuration package (Jose Celano)
da6a21e refactor: [#855] show toml file location in Figment errors (Jose Celano)
cf1bfb1 chore(deps): update dependencies (Jose Celano)
445bd53 feat: define only non-defaults in toml config templates (Jose Celano)
ae77ebc refactor: tracker core service only needs the core config (Jose Celano)
b545b33 refactor: [#852] extract Core configuration type (Jose Celano)
7519ecc refactor: [#852] enrich field types in Configuration struct (Jose Celano)
ceb3074 refactor: [#852] enrich field types in HttpApi config struct (Jose Celano)
3997cfa refactor: [#852] eenrich field types in TslConfig config struct (Jose Celano)
a2e718b chore(deps): add dependency camino (Jose Celano)
fc191f7 refactor: [#852] enrich field types in HttpTracker config struct (Jose Celano)
1475ead refactor: [#852] eenrich field types in UdpTracker config struct (Jose Celano)
384e9f8 refactor: [#852] eenrich field types in HealthCheckApi config struct (Jose Celano)
0252f30 feat: allow users not to provide config option with default values (Jose Celano)
43942ce tests: add test for configuration with deprecated env var name (Jose Celano)
b0c2f9f docs: update env var name in toml config template files (Jose Celano)
69d7939 refactor: implement Default for Configuration sections (Jose Celano)
caae725 feat: use double underscore to split config env var names (Jose Celano)
b3a1442 refactor!: remove unused method in Configuration (Jose Celano)
632c8ba refactor: move Configuration unit test to inner mods (Jose Celano)
146b77d feat: enable overwrite Configuration values using env vars (Jose Celano)
5bd9494 chore: remove unused config dependenciy (Jose Celano)
265d89d refactor: replace Config by Figment in Configuration implementation (Jose Celano)
002fb30 refactor: reexport config versioned config types (Jose Celano)
e7d344c refactor: create new configuration v1 mod with figment (Jose Celano)
636e779 refactor: create new configuration v1 mod with figment (Jose Celano)
157807c chore(deps): enable figment features: env, toml, test (Jose Celano)
f0e0721 test: remove broken example in rustdoc (Jose Celano)
7da52b1 chore(deps): add dependency figment (Jose Celano)
9e01f7f dev: fix udp ring-buffer not looping (Cameron Garnham)
6f02aeb docs: fix profiling docs (Jose Celano)
cddc4de chore(deps): bump rustc-demangle v0.1.23 -> v0.1.24 (Jose Celano)
3dee03e docs: udpate installation docs (Jose Celano)
e3143f7 feat: log aborted UDP requests (Jose Celano)
62d4a20 chore(deps): update dependencies (Jose Celano)
be51d2f chore(deps): bump ringbuf from 0.3.3 to 0.4.0 (Jose Celano)
801d913 chore(deps): bump aquatic_udp_protocol from 0.8.0 to 0.9.0 (Jose Celano)
7551857 chore(deps): update dependencies (Jose Celano)
895efe9 refactor: [#680] http return errors instead of panicking (ngthhu)
effca56 refactor: [#681] udp return errors instead of panicking (ngthhu)
b27f002 remove unused dependencies (ngthhu)
7de4fbc format fix (ngthhu)
b301596 chore:[#674] Tracker Checker: Ouput in JSON (ngthhu)
87c9834 chore(deps): update dependencies (Jose Celano)
0058e72 feat: new torrent repo implementation using parking_lot Mutex (Jose Celano)
0fa396c chore(deps): add parking_lot to cargo machete (Jose Celano)
9258ac0 feat: new torrent repo implementation using parking_lot RwLock (Jose Celano)
5750e2c chore(deps): add dependency parking_lot (Jose Celano)
40182b4 test: add tests for PeerList type (Jose Celano)
42f1b30 refactor: extract mod peer_list (Jose Celano)
922afda refactor: rename field from peers to swarm (Jose Celano)
4a567cd refactor: extract PeerList (Jose Celano)
5fa01e7 chore(deps): update dependencies (Jose Celano)
aa4bfba refactor: segregate command and query for announce request (Jose Celano)
4030fd1 fix: torrent repository tests. DashMap is not ordered (Jose Celano)
1e76c17 chore: add dashmap cargo dep to cargp machete (Jose Celano)
00ee9db feat: [#565] new torrent repository implementation usind DashMap (Jose Celano)
78b46c4 chore(deps): add cargo dependency: dashmap (Jose Celano)
5373493 chore(deps): update dependencies (Jose Celano)
12f54e7 test: add tests for new torrent repository using SkipMap (Jose Celano)
0989285 refactor: separate torrent repository trait from implementations (Jose Celano)
eec2024 chore: ignore crossbeam-skiplist crate in cargo-machete (Jose Celano)
642d6be feat: new torrent repository using crossbeam_skiplist::SkipMap (Jose Celano)
608585e chore: add new cargo dependency: crossbeam-skiplist (Jose Celano)
3ac4aa5 docs: [#768] udpate profiling docs (Jose Celano)
0999aa0 dev: ci: enable rust stable workflows (Cameron Garnham)
9e23ec9 chore: update deps (Cameron Garnham)
3414e2a dev: torrent repository tests (Cameron Garnham)
e18cae4 dev: torrent repository cleanups (Cameron Garnham)
3e0745b dev: extract clock to new package (Cameron Garnham)
03883c0 dev: repository benchmark uses criterion (Cameron Garnham)
9a43815 dev: move torrent/repository to packages (Cameron Garnham)
4b2d6fe dev: extract repo implementations and benchmarks (Cameron Garnham)
1025125 dev: create torrent repo trait and extract entry (Cameron Garnham)
48ce426 dev: bench torrent/repository add sync_asyn variant (Cameron Garnham)
5c0047a dev: refactor torrent repository (Cameron Garnham)
fbd0469 fix: revert number of active UDP request to previous value (Jose Celano)
294357b docs: [#746] add missing flamegraph in docs (Jose Celano)
6a7275e docs: [#746] for profiling (Jose Celano)
bfdeafc test: [#746] profiling: add configuration to generate flamegraphs (Jose Celano)
d2a346a chore: update deps (Cameron Garnham)
1c59d89 chore: various maintenance (Cameron Garnham)
9015668 refactor: [#746] rename functions and extract named closures (Jose Celano)
cc1cbc1 test: [#746] add a new binary for profiling (Jose Celano)
8395c42 test: [#746] disable tracker stats for profiling (Jose Celano)
14ef168 dev: ci: update coverage build flags (Cameron Garnham)
3a9c52f fix: error messages starting UDP tracker (Jose Celano)
439821c dev: bugfix completed download stat (Cameron Garnham)
b3ad652 chore: update cargo deps (Cameron Garnham)
26215e8 docs: [#733] udpate benchmarking docs and results (Jose Celano)
45c77c3 fix: linter error, unused code (Jose Celano)
d32a748 docs: [#87] benchmarking (Jose Celano)
fd0ad1b test: [#87] remove lua script for HTTP tracker benchmarking (Jose Celano)
d39bfc2 feat: [#725] API. Add scrape filter to torrents endpoint (Jose Celano)
4b24256 chore(deps): add cargo dependency: axum-extra (Jose Celano)
f9a5f7e chore: fix linting errors (Jose Celano)
e77d89f chore: add ADR about when to use plural for mod names (Jose Celano)
eb8478d refactor: [#714] use tower_http::request_id::MakeRequestUuid (Jose Celano)
d4310a5 chore(deps): udpate cargo dependencies (Jose Celano)
5a6c968 feat: [#704] add latency to UDP tracker logs (Jose Celano)
c348f72 docs: fix linter warnings in markdown (Jose Celano)
d673a59 docs: fix podman commands (Jose Celano)
37c1fa7 chore(deps): bump EndBug/label-sync from 2.3.2 to 2.3.3 (Jose Celano)
1bf8a82 chore(deps): udpate dependencies (Jose Celano)
4a2d902 feat: [#698] refactor UDP logs (Jose Celano)
30ae6df feat: [#697] add logs to HTTP tracker (Jose Celano)
e0836bd feat: [#700] add logs to Health Check API (Jose Celano)
5ccdf10 fix: build errors `imported redundantly` (Jose Celano)
32727ca feat: [#696] API, log request and responses (Jose Celano)
945e91f chore: [#696] add cargo dependencies for logging (Jose Celano)
36fcee7 fix: [#691] unknown feature stdsimd (Jose Celano)
873f98d refactor: [#639] Tracker Checker: extract mod for Health checks (Jose Celano)
70924ed refactor: [#639] Tracker Checker: extract mod for HTTP checks (Jose Celano)
77c32a1 refactor: [#639] Tracker Checker: extract mod for UDP checks (Jose Celano)
592c0dd fix: add timeouts to UdpClient operations (Jose Celano)
6b74c66 feat: [#639] Tracker Checker. Setup logging (Jose Celano)
bbfca2c feat: [#639] Tracker Checker. Check UDP trackers (Jose Celano)
661b521 chore: [#639] add cargo dependency: hex_literal (Jose Celano)
1b92b77 refactor: [#639] UDP client. Extract aquatic reponses wrappers (Jose Celano)
a2e123c refactor: [#639] UDP client. Extract command handlers (Jose Celano)
011fdb7 refactor: [#639] Tracker Checker: extract checker:Client to check UDP servers (Jose Celano)
3b735a7 refactor: [#639] Tracker Checker: prepare outout for UDP checks (Jose Celano)
e9e0ded chore: update deps (Cargo Lockfile) (Cameron Garnham)
4456203 feat: [#640] Tracker Chekcer: scrape check (Jose Celano)
cb5bb68 feat: [#640] Tracker Chekcer: announce check (Jose Celano)
47551ff refactor: [#661] move UDP Tracker Client mod (Jose Celano)
b96c2c3 refactor: [#661] move HTTP Tracker Client mod (Jose Celano)
0960ff2 refactor: [#661] move Tracker Checker mod (Jose Celano)
d8a9f7b refactor: [#661] move E2E tests runner mod (Jose Celano)
392ffab refactor: [#656] E2E runner. Pass config as env var to Tracker Checker (Jose Celano)
1bab582 feat: [#656] Tracker Checker sopports env var for config (Jose Celano)
7f43fbd chore: [656] add cargo dep feature (Jose Celano)
8543190 refactor: Tracker Checker: use clap and anyhow (Jose Celano)
f4e9bda feat: [#654] UDP tracker client: scrape (Jose Celano)
1b34d93 refactor: [#654] UDP tracker client: use clap and anyhow (Jose Celano)
0624bf2 refactor: [#649] use anyhow to handle errors (Jose Celano)
271bfa8 feat: [#649] add cargo dep: anyhow (Jose Celano)
415ca1c feat: [#649] scrape req for the HTTP tracker client (Jose Celano)
b05e2f5 refactor: [#649] use clap in HTTP tracker client (Jose Celano)
f439015 feat: [#649] add cargo dependency: clap (Jose Celano)
f18e68c fix: tracker checker return error code when it fails (Jose Celano)
e5cd81b refactor: [#647] E2E tests. Extract function (Jose Celano)
68f71be refactor: [#647] E2E tests. Extract strcut TrackerContainer (Jose Celano)
ddad4a4 ci: [#647] E2E tests. Make sure there are not panics in logs (Jose Celano)
670927c ci: [#647] E2E tests. Make sure we run at least one service per type (Jose Celano)
0afab09 refactor: [#647] extract strcut RunOptions (Jose Celano)
ec13fb4 ci: [#634] run E2E tests in the testing workflow (Jose Celano)
4edcd2e ci: [#634] new script to run E2E tests (Jose Celano)
8e43205 ci: [#634] new dependency to make temp dirs (Jose Celano)
72c8348 udp: handle udp requests concurrently (Cameron Garnham)
b2ef4e0 feat: tracker checker command (Jose Celano)
1b7e5b9 feat: enable all services in dev default config (Jose Celano)
4c416e0 fix: remove coverage report generation from testing workflow (Jose Celano)
f0710d3 feat: [#625] a new UDP tracker client (Jose Celano)
17296cd fix: [#626] healt check api server shutdown (Jose Celano)
bbf1be6 fix: don't start HTTP tracker if it's disabled (Jose Celano)
3f0dcea dev: add tests to health check (Cameron Garnham)
b310c75 dev: extract config from health check (Cameron Garnham)
3b49257 dev: extract config from core::tracker (Cameron Garnham)
129fd2f refactor: move upd tracker client (Jose Celano)
470e608 feat: a simple HTTP tracker client command (Jose Celano)
fec9716 feat: [#609] add timeout to UDP tracker requests (Jose Celano)
3e2b152 feat: [#604] add timeout to http_health_check binary (Jose Celano)
0e6fe33 dev: Announce Responce Cleanup (Cameron Garnham)
58a57d3 refactor: extract struct SwarmStats (Jose Celano)
d4adfa7 refactor: extract config struct `AnnouncePolicy` (Jose Celano)
cca17d5 refactor: rename `non-compact` to `normal` (Jose Celano)
5fd0c84 chore: normalize log ouput (Jose Celano)
0c1f389 fix: [#591] panicking after starting UDP server due to close halt channel (Jose Celano)
ba4cb34 feat: improve logging for HTTP tracker bootstrapping (Jose Celano)
9f3f949 fix: [#592] halt channel closed after starting HTTP tracker (Jose Celano)
452b4a0 feat: improve http_health_check output (Jose Celano)
ac18605 feat: improve log when starting the API (Jose Celano)
53613ec feat: start log lines with capital (Jose Celano)
cf613b8 fix: [#588] broken grateful shutdown for tracker API (Jose Celano)
13140f6 dev: cleanup service bootstraping (Cameron Garnham)
9a0919f chore: update cargo deps (Cameron Garnham)
541a072 ci: add threshold to patch changes (Cameron Garnham)
fc9bd77 refactor: preload info hashes in wrk benchmark (Warm Beer)
02b64f2 refactor: [#343] remove deprecated function (Jose Celano)
d03e930 feat!: [#536] remove always-empty peer list in torrent list item (Jose Celano)
46e67a8 refactor: [#262] split global consts for limits (Jose Celano)
f4c762b chore: update cargo deps (Cameron Garnham)
911708c chore: fixup clippy and spelling (Cameron Garnham)
922a46d Update labels.json #503 (Shrirang Borde)
14cb26c chore: update deps to hyper v1 (Cameron Garnham)
3b8a625 chore: update cargo deps (Cameron Garnham)
ff3928e fix: clippy error (Jose Celano)
6e607c3 feat: [#539] change log for UDP tracker (Jose Celano)
ebb7d4c chore: make Containerfile use nightly rust (Warm Beer)
1735a7a chore: only run contract, deployment & testing jobs in nightly rust (Warm Beer)
6087e4f feat: added benchmarking binary for torrent repository (Warm Beer)
985633e feat!: [#537] move API healthcheck endpoint (Jose Celano)
986ab64 dev: refactor: rename tracker mod to core (Cameron Garnham)
5439b6e chore: update deps (Cameron Garnham)
74511ee feat: add script to install for development (Jose Celano)
5ce0048 fix: disable shellcheck (Jose Celano)
5e0a686 refactor: [#508] extract health check methods (Jose Celano)
bf23479 feat: [#508] add health check for UDP tracker (Jose Celano)
2a05590 refactor: [#508] move UDP tracker client to production code (Jose Celano)
7421306 feat: [#508] add health check enpoint to HTTP tracker (Jose Celano)
ef296f7 feat: [#508] app health check endpoint checks API (Jose Celano)
e1a45a2 feat: [#508] Health Check API but no checks yet (Jose Celano)
48ac64f feat: [#508] add container healthcheck for API (Jose Celano)
0ef4e34 feat: [#508] add new binary HTTP health check (Jose Celano)
f1c7ccc feat: add cargo dependency reqwest (Jose Celano)
b609c83 chore: update dependencies (Jose Celano)
f7c5ace chore: update dependencies (Jose Celano)
f8175b5 chore(deps): bump tokio from 1.33.0 to 1.34.0 (dependabot[bot])
b4329f9 ci: workflow to show the tracker contract in markdown (Jose Celano)
9c0b090 fixup: rename field for clippy (Cameron Garnham)
dbc8920 ci: fix nightly changes (Cameron Garnham)
8ec0a23 chore: update deps (Cameron Garnham)
cb914da feat: replace peer ID recognition with tdyne-peer-id-registry (Dan Groshev)
eb428f2 various: small updates (Cameron Garnham)
ccfb06f ci: deny doc warnings (Cameron Garnham)
417ad73 chore: fix doc warnings (Cameron Garnham)
7dbca2b ci: move doc tests to unit section (Cameron Garnham)
308f490 deps: update cargo lockfile (Cameron Garnham)
8f2e22e ci: maintaince update for labelsync (Cameron Garnham)
62c6c10 ci: improve labels workflow (Cameron Garnham)
483cc04 ci: fixup labels workflow (Cameron Garnham)
d46633c ci: enable sync labels workflow (Cameron Garnham)
050b27a ci: export labels using workflow (Cameron Garnham)
be914b6 ci: re-enable llvm-cov coverage (Cameron Garnham)
4ca47a4 fixup: ignore new clippy warning (Cameron Garnham)
ae3fda6 chore: update dependencies (Jose Celano)
bf269bc fix: renaming yml to yaml (Alex Wellnitz)
8a49a94 docs: remove duplicate COPYRIGHT file (Cameron Garnham)
36716f7 legal: clean up licensing documents (Cameron Garnham)
cba4cda docs: fix little issues in release process (Cameron Garnham)
f897f2f docs: fix docs.rs links in readme (Cameron Garnham)
a14bdc6 develop: bump to version 3.0.0-alpha.12-develop (Cameron Garnham)

Pull request description:

  Release Version 3.0.0-alpha.12 following the [release process](https://github.com/torrust/torrust-tracker/blob/develop/docs/release_process.md).

Top commit has no ACKs.

Tree-SHA512: fdf327a1065fabe55ff90b9aab763dcc7751d6ba51b34c99ff3023627815173467db10b9c9f9a5cf4cbd4fa8821982abaaedb7cdf9a4fbdcf64748d46940e4c9
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
- Admin - Enjoyable to Install and Setup our Software - Developer - Torrust Improvement Experience Easy Good for Newcomers good first issue Good for newcomers Testing Checking Torrust
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants