{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":642164841,"defaultBranch":"main","name":"iroh","ownerLogin":"ApeWorX","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-05-18T01:02:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/76833676?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1684371759.279167","currentOid":""},"activityList":{"items":[{"before":"19c8fd327ff60ed4395cc3557f3dafa93a4a744c","after":"443139d4b6db87c35200e6db495da9a3a84e5cbf","ref":"refs/heads/main","pushedAt":"2024-09-29T17:10:56.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"refactor(ci): redo netsim CI (#2737)\n\n## Description\n\nRefactors the CI jobs for netsim. Groups it to a single parametrized\nrunner job which is also now a callable workflow.\nMakes use of the new parallel runners and also has a quick job for just\ntesting perf.\n\n## Breaking Changes\n\nRemoving the `/netsim` comment commands in favor of running it from the\nactions menu.\n\n## Notes & open questions\n\n\n\n## Change checklist\n\n- [ ] Self-review.\n- [ ] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- [ ] Tests if relevant.\n- [ ] All breaking changes documented.","shortMessageHtmlLink":"refactor(ci): redo netsim CI (n0-computer#2737)"}},{"before":"5dd8bd394422c80b7737fa00d92be3347924d311","after":"19c8fd327ff60ed4395cc3557f3dafa93a4a744c","ref":"refs/heads/main","pushedAt":"2024-09-25T18:44:45.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"docs(iroh-net): Improve last_pong field docs (#2747)\n\n## Description\n\nThis is a bit confusing, at least this description is closer to the\nreality.\n\n## Breaking Changes\n\nNone\n\n## Notes & open questions\n\nNot mentioning PING_TIMEOUT_DURATION since that is not strictly true,\nif the socket has signs of being alive but a pong is lost it will\nstill be considered alive and the pong timeout will not be cleared.\n\n## Change checklist\n\n- [x] Self-review.\n- [x] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- ~~[ ] Tests if relevant.~~\n- ~~[ ] All breaking changes documented.~~","shortMessageHtmlLink":"docs(iroh-net): Improve last_pong field docs (n0-computer#2747)"}},{"before":"285101eec876fe48a1bda3fa43ff5c2c5c6ef568","after":"5dd8bd394422c80b7737fa00d92be3347924d311","ref":"refs/heads/main","pushedAt":"2024-09-17T21:12:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"fix(iroh-blobs): preserve tracing subscriber in the LocalPool (#2735)\n\n## Description\n\nThis preserves the tracing subscriber that is installed in the current\nthread when the LocalPool is created. It then installs it into every\nthread managed by the pool, ensuring that tracing output from the pool\nis preserved.\n\n## Breaking Changes\n\nWhy is this even pub? But fine:\n\n`iroh_blobs::util::local_pool::LocalPool` will now install the tracing\nsubscriber of the thread creating the pool, into each thread managed\nby the pool. Practically this should not break any code already\nmanaging their tracing subscribers either manually inside tasks or by\nsetting a global subscriber before creating the pool. But if you\nreally liked the behaviour of swallowing the logs on doing this it's a\nbreaking change.\n\n## Notes & open questions\n\nMaybe this should be configurable, though since this is just an\ninternal tool for us I think we're fine just always having this\nbehaviour.\n\nFixes #2577 \nReplaces #2589\n\n## Change checklist\n\n- [x] Self-review.\n- [x] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- [x] Tests if relevant.\n- [x] All breaking changes documented.","shortMessageHtmlLink":"fix(iroh-blobs): preserve tracing subscriber in the LocalPool (n0-com…"}},{"before":"3d75dedbea26be51bff74e263691d9042d953a1b","after":"285101eec876fe48a1bda3fa43ff5c2c5c6ef568","ref":"refs/heads/main","pushedAt":"2024-09-17T05:18:35.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"chore: Release","shortMessageHtmlLink":"chore: Release"}},{"before":"ce2cfee00677fb0b17d1cc213e834cc273f6a1b8","after":"3d75dedbea26be51bff74e263691d9042d953a1b","ref":"refs/heads/main","pushedAt":"2024-09-11T05:54:57.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"refactor!(iroh): move protocol specific fields in NodeInner into protocols (#2723)\n\n- refactor(iroh): store gossip in protocolmap\n- refactor(iroh): avoid duplicate SecretKey storage\n- refactor(iroh): store downloader as part of the blobs\n- refactor(iroh): store DocsEngine in protocols\n- refactor(iroh): move blobs store into BlobsProtocol\n- refactor(iroh): move BlobsBatches into BlobsProtocol\n\n## Breaking Changes\n\n- removed\n - `iroh::node::ProtocolBuilder::downloader`\n - `iroh::node::ProtocolBuilder::blobs_db`\n - `iroh::node::ProtocolBuilder::gossip`","shortMessageHtmlLink":"refactor!(iroh): move protocol specific fields in NodeInner into prot…"}},{"before":"b6a64e0764b2973497ee989910d2930ced3160f5","after":"ce2cfee00677fb0b17d1cc213e834cc273f6a1b8","ref":"refs/heads/main","pushedAt":"2024-09-09T21:38:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"refactor(iroh-net)!: Make netcheck::Client !Clone (#2716)\n\n## Description\n\nnetcheck::Client owns the actor task and when dropped it will abort\nthe actor task. Making a struct owning a task Clone means it is easy\nto lose track of who should be owning a task like this. I now believe\neach task should have a clear supervisor/owner in charge of it.\n\nThis cleans up the multiple-ownership of the netcheck::Client, which\nis just a small step into this direction. Later on, for e.g. #2647,\nmore supervision will be added. But small changes are good.\n\n## Breaking Changes\n\n- `iroh_net::netcheck::Client::receive_stun_packet` is no longer\navailable.\n- `iroh_net::netcheck::Client` is not longer `Clone`.\n\n## Notes & open questions\n\nI don't want to make `Addr` public, in fact I'd like all of netcheck to\nbe\nprivate. So I made some docs not links to avoid the warnings resulting\nto\nlinking to private items from public docs.\n\nRemoving `Client::receive_stun_packet` is a bit harsh. I'd like to make\nall\nof netcheck private, but the cli uses it for the doctor so I'm a bit\nstuck.\nIn any case, the way that uses it does not need `receive_stun_packet`.\n\n## Change checklist\n\n- [x] Self-review.\n- [x] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- ~~[ ] Tests if relevant.~~\n- ~~[ ] All breaking changes documented.~~","shortMessageHtmlLink":"refactor(iroh-net)!: Make netcheck::Client !Clone (n0-computer#2716)"}},{"before":"a73314385084ae4e72e15bc15469991e139763ec","after":"b6a64e0764b2973497ee989910d2930ced3160f5","ref":"refs/heads/main","pushedAt":"2024-09-07T15:10:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"deps(iroh-net): Remove direct dependency on rand_core (#2719)\n\n## Description\n\nThis is small and doesn't really affect anything, but removes the\ndirect dependency on rand_core. There's no need for it.\n\n## Breaking Changes\n\nNone\n\n## Notes & open questions\n\nI was looking for easy wins on the dependencies. I guess this wasn't \nreally it...\n\n## Change checklist\n\n- [x] Self-review.\n- ~~[ ] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- ~~[ ] Tests if relevant.~~\n- ~~[ ] All breaking changes documented.~~","shortMessageHtmlLink":"deps(iroh-net): Remove direct dependency on rand_core (n0-computer#2719)"}},{"before":"567577d339f05b0100790977c8b2e90e3e20f4e8","after":"a73314385084ae4e72e15bc15469991e139763ec","ref":"refs/heads/main","pushedAt":"2024-09-07T01:44:00.000Z","pushType":"push","commitsCount":20,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"ci: Remove double spellchecks (#2720)\n\n## Description\n\nWe somehow have 2 spellcheck actions. Keep the 2nd one added as\napparently it found more stuff.\n\nBut switch it to use the checkout action from a tag, we should not be\nusing actions from @master (unless they're specifically designed for\nthis like the rust-toolchain one).\n\n## Breaking Changes\n\n\n\n## Notes & open questions\n\n\n\n## Change checklist\n\n- [x] Self-review.\n- ~~[ ] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- ~~[ ] Tests if relevant.~~\n- ~~[ ] All breaking changes documented.~~","shortMessageHtmlLink":"ci: Remove double spellchecks (n0-computer#2720)"}},{"before":"a029d89a2b9cb1d04eba054960114801b755b582","after":"567577d339f05b0100790977c8b2e90e3e20f4e8","ref":"refs/heads/main","pushedAt":"2024-09-04T09:23:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"fix(iroh-blobs): unconditionally delete blobs (#2692)\n\n- always delete hashes, even if they are protected when calling\n`Store::delete`\n- move gc loop implementation into the stores\n\n## Breaking Changes\n\n- removed `Store::gc_sweep`\n- removed `Store::gc_mark`\n- removed `Store::gc_start`\n- added `Store::gc_run` which starts the full gc schedule\n\nCloses #2657","shortMessageHtmlLink":"fix(iroh-blobs): unconditionally delete blobs (n0-computer#2692)"}},{"before":"4f83c43824eea7be3619f235f8944d228eaa79cc","after":"a029d89a2b9cb1d04eba054960114801b755b582","ref":"refs/heads/main","pushedAt":"2024-09-03T08:45:52.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"chore: Release","shortMessageHtmlLink":"chore: Release"}},{"before":"1d3f3fa8125761df509b94621eb173b91ed42904","after":"4f83c43824eea7be3619f235f8944d228eaa79cc","ref":"refs/heads/main","pushedAt":"2024-08-26T21:09:56.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"feat(bench): Add `--metrics` option printing iroh-net library metrics (#2668)\n\n## Description\n\n\nUsed these changes to test #2667.\n\nI think this is a decent tool. Output looks like this:\n\n
\n$ cd iroh-net/bench && cargo run --release -- iroh\n--metrics --with-relay\n\n```\n Compiling iroh-net-bench v0.23.0 (/home/philipp/program/work/iroh/iroh-net/bench)\n Finished `release` profile [optimized + debuginfo] target(s) in 28.47s\n Running `/home/philipp/program/work/iroh/target/release/bulk iroh --metrics --with-relay`\n\nClient 0 stats:\nConnect time: 1008.829553ms\nOverall download stats:\n\nTransferred 1073741824 bytes on 1 streams in 1.70s (603.46 MiB/s)\n\nTime to first byte (TTFB): 105.312ms\n\nTotal chunks: 36445\n\nAverage chunk time: 46.544ms\n\nAverage chunk size: 28.77KiB\n\nStream download metrics:\n\n │ Throughput │ Duration \n──────┼───────────────┼──────────\n AVG │ 603.75 MiB/s │ 1.70s\n P0 │ 603.50 MiB/s │ 1.70s\n P10 │ 604.00 MiB/s │ 1.70s\n P50 │ 604.00 MiB/s │ 1.70s\n P90 │ 604.00 MiB/s │ 1.70s\n P100 │ 604.00 MiB/s │ 1.70s\n\nMetrics:\nMagicsockMetrics: {\n \"actor_link_change\": 0,\n \"actor_tick_direct_addr_heartbeat\": 0,\n \"actor_tick_direct_addr_update_receiver\": 6,\n \"actor_tick_main\": 22,\n \"actor_tick_msg\": 13,\n \"actor_tick_other\": 0,\n \"actor_tick_portmap_changed\": 0,\n \"actor_tick_re_stun\": 2,\n \"num_direct_conns_added\": 3,\n \"num_direct_conns_removed\": 1,\n \"num_relay_conns_added\": 5,\n \"num_relay_conns_removed\": 3,\n \"re_stun_calls\": 3,\n \"recv_data_ipv4\": 88975499264,\n \"recv_data_ipv6\": 0,\n \"recv_data_relay\": 49200,\n \"recv_datagrams\": 944499,\n \"recv_disco_bad_key\": 0,\n \"recv_disco_bad_parse\": 0,\n \"recv_disco_call_me_maybe\": 2,\n \"recv_disco_call_me_maybe_bad_disco\": 0,\n \"recv_disco_ping\": 14,\n \"recv_disco_pong\": 14,\n \"recv_disco_relay\": 6,\n \"recv_disco_udp\": 24,\n \"relay_home_change\": 2,\n \"send_data\": 1104903421,\n \"send_data_network_down\": 0,\n \"send_disco_relay\": 6,\n \"send_disco_udp\": 24,\n \"send_ipv4\": 1104905771,\n \"send_ipv6\": 470,\n \"send_relay\": 49988,\n \"send_relay_error\": 0,\n \"sent_disco_call_me_maybe\": 2,\n \"sent_disco_ping\": 14,\n \"sent_disco_pong\": 14,\n \"sent_disco_relay\": 6,\n \"sent_disco_udp\": 24,\n \"update_direct_addrs\": 3,\n}\nNetcheckMetrics: {\n \"reports\": 3,\n \"reports_full\": 0,\n \"stun_packets_dropped\": 0,\n \"stun_packets_recv_ipv4\": 0,\n \"stun_packets_recv_ipv6\": 0,\n \"stun_packets_sent_ipv4\": 10,\n \"stun_packets_sent_ipv6\": 10,\n}\nPortmapMetrics: {\n \"external_address_updated\": 0,\n \"local_port_updates\": 3,\n \"mapping_attempts\": 5,\n \"mapping_failures\": 3,\n \"pcp_available\": 0,\n \"pcp_probes\": 3,\n \"probes_started\": 3,\n \"upnp_available\": 0,\n \"upnp_gateway_updated\": 0,\n \"upnp_probes\": 6,\n \"upnp_probes_failed\": 3,\n}\nRelayMetrics: {\n \"accepts\": 2,\n \"bytes_recv\": 50082,\n \"bytes_sent\": 50082,\n \"derp_accepts\": 2,\n \"disco_packets_dropped\": 0,\n \"disco_packets_recv\": 0,\n \"disco_packets_sent\": 0,\n \"disconnects\": 0,\n \"got_ping\": 0,\n \"other_packets_dropped\": 0,\n \"other_packets_recv\": 2,\n \"other_packets_sent\": 0,\n \"send_packets_dropped\": 0,\n \"send_packets_recv\": 9,\n \"send_packets_sent\": 9,\n \"sent_pong\": 0,\n \"unique_client_keys\": 2,\n \"unknown_frames\": 0,\n \"websocket_accepts\": 0,\n}\n```\n\n
\n\n## Breaking Changes\n\n\nNone. The semver check also checks for the \"public API\" of\n`iroh-net/bench`, and there's been another `Opt` addition.\n\n## Notes & open questions\n\n\nThis PR is based on #2664 at the moment, let's merge that first.\n\n## Change checklist\n\n- [x] Self-review.\n- ~~[ ] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- ~~[ ] Tests if relevant.~~\n- [x] All breaking changes documented.","shortMessageHtmlLink":"feat(bench): Add --metrics option printing iroh-net library metrics ("}},{"before":"a5072c3a0a11d931b3fc4e95ac48c32f12959a5b","after":"1d3f3fa8125761df509b94621eb173b91ed42904","ref":"refs/heads/main","pushedAt":"2024-08-24T23:19:39.000Z","pushType":"push","commitsCount":26,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"test(iroh-gossip): Wait for the relay to make `gossip_net_smoke` faster. (#2663)\n\n## Description\n\n\nJust a tiny change that improves performance from ~1s -> ~0.4s on my\nmachine.\n\n## Breaking Changes\n\n\nNone\n\n## Notes & open questions\n\n\nOne could argue we shouldn't make this change, because it doesn't cause\nthat much erratic behavior. We should rather write tests that fail on\n\"more bugs\".\nI'm not sure. Perhaps the gossip smoke test shouldn't be the test that\nwe use to stress network edge cases.\n\n## Change checklist\n\n- [x] Self-review.\n- ~~[ ] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- [x] Tests if relevant.\n- [x] All breaking changes documented.","shortMessageHtmlLink":"test(iroh-gossip): Wait for the relay to make gossip_net_smoke fast…"}},{"before":"ceb94dab985400958da8f9902c6bde4ef5ccdc7c","after":"a5072c3a0a11d931b3fc4e95ac48c32f12959a5b","ref":"refs/heads/main","pushedAt":"2024-08-13T22:33:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"chore(ci): use nextests groups to isolate some tests (#2617)\n\n## Description\n\nAfter a lot of debugging we realized the integrations tests (`gc` tests,\nfor\nexample) run with swarm discovery on since they are not technically\nusing test\niroh, so they bypass the cfg that prevents it from being turned on. This\ncauses\nthe `test_local_swarm_discovery` test to be flooded with nodes from\nother\ntests, making it flaky. Isolating the test should make it no longer\nflaky\nanymore\n\n## Breaking Changes\n\nn/a\n\n## Notes & open questions\n\nWe should still create a test that creates a bunch of nodes and makes\nsure they\nall can find each other within reasonable time. There is still reason to\nbelieve swarm discovery is slow, particularly in linux, but we should\naddress\nit in a test under our countrol, not via the non-deterministic nature of\nconcurrent tests in ci.\n\n## Change checklist\n\n- [x] Self-review.\n- [ ] ~~Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- [ ] ~~Tests if relevant.~~\n- [ ] ~~All breaking changes documented.~~","shortMessageHtmlLink":"chore(ci): use nextests groups to isolate some tests (n0-computer#2617)"}},{"before":"5d98a5cb8194be58aff995a6aa463c36571d5399","after":"ceb94dab985400958da8f9902c6bde4ef5ccdc7c","ref":"refs/heads/main","pushedAt":"2024-08-13T01:33:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"docs(iroh-cli): fix help text for incomplete blobs (#2615)\n\n## Description\n\nAligns the help text for `blobs list incomplete-blobs` with the docs in\niroh.computer.\n\n## Breaking Changes\n\nn/a\n\n## Notes & open questions\n\nn/a\n\n## Change checklist\n\n- [x] Self-review.\n- [x] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- [ ] ~~Tests if relevant.~~\n- [ ] ~~All breaking changes documented.~~","shortMessageHtmlLink":"docs(iroh-cli): fix help text for incomplete blobs (n0-computer#2615)"}},{"before":"a2d2ec69e327da09b32e0e90a148d371e37d4f3a","after":"5d98a5cb8194be58aff995a6aa463c36571d5399","ref":"refs/heads/main","pushedAt":"2024-08-12T14:08:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"fix(iroh-gossip): clarify docs and semantics of gossip joined event (#2597)\n\n## Description\n\nImproves documentation around the `GossipEvent::Joined` event: It is\nonly emitted once at the beginning of the stream, and the event will not\nbe emitted when awaiting `GossipReceiver::joined`.\n\nAlso makes sure that the event is actually only emitted once per intent\n(it potentially could have been emitted multiple times before if the\nneighbor count first got down to 0 and then up again for `GossipTopics`\nsubscribing inbetween).\n\n## Breaking Changes\n\n\n\n## Notes & open questions\n\nInspired by the discussion in\nhttps://github.com/deltachat/deltachat-core-rust/pull/5860\n\n## Change checklist\n\n- [x] Self-review.\n- [x] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- [ ] Tests if relevant.\n- [x] All breaking changes documented.\n\nCo-authored-by: Friedel Ziegelmayer ","shortMessageHtmlLink":"fix(iroh-gossip): clarify docs and semantics of gossip joined event (n…"}},{"before":"d54a5deb099754eaccd28fdb3cc8da93122f1376","after":"a2d2ec69e327da09b32e0e90a148d371e37d4f3a","ref":"refs/heads/main","pushedAt":"2024-08-11T03:58:52.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"test(iroh): Reduce entry amount in `sync_gossip_bulk` (#2608)\n\n## Description\n\n\nThe test currently runs 55s on our windows CI machines, it runs 40s when\nI run it on my laptop locally.\nIf anyone is curious: In release mode, the test runs 0.4s.\n:upside_down_face:\n\nThe test basically sync 1000 entries twice. The number is configurable\nand the default was arbitrarily chosen according to @Frando, so I've\nreduced it by a factor of 10. With `n_entries = 100` the test runs ~4.5s\nfor me, much more reasonable.\n\n## Breaking Changes\n\n\nNone\n\n## Notes & open questions\n\n\n\n## Change checklist\n\n- [x] Self-review.\n- ~~[ ] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- [x] Tests if relevant.\n- [x] All breaking changes documented.","shortMessageHtmlLink":"test(iroh): Reduce entry amount in sync_gossip_bulk (n0-computer#2608)"}},{"before":"605a85d9c121f8d2b48f91c2eb1e86cfa451bd22","after":"d54a5deb099754eaccd28fdb3cc8da93122f1376","ref":"refs/heads/main","pushedAt":"2024-08-07T14:58:01.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"chore: Release","shortMessageHtmlLink":"chore: Release"}},{"before":"d662bfc663ad956bbb38716bd5b8022a699bfce4","after":"605a85d9c121f8d2b48f91c2eb1e86cfa451bd22","ref":"refs/heads/main","pushedAt":"2024-08-04T05:05:17.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"test(iroh-net): increase timeout for local swarm discovery test (#2574)\n\n## Description\nThe `local_swarm_discovery` test was reliably timing out when run on the\nlinux CI. After checking the logs and NOT finding any evidence that\nanything goes wrong, I increased the timeout and can no longer trigger\nthe failure.\n\n## Change checklist\n\n- [x] Self-review.\n\n---------\n\nCo-authored-by: Kasey Huizinga ","shortMessageHtmlLink":"test(iroh-net): increase timeout for local swarm discovery test (n0-c…"}},{"before":"347d45c3de3bcba878657566a67f4e1825b03bc4","after":"d662bfc663ad956bbb38716bd5b8022a699bfce4","ref":"refs/heads/main","pushedAt":"2024-08-03T03:55:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"ref(iroh-net): Remove need for relay info in best_addr (#2579)\n\n## Description\n\nThis moves metrics for when switches between direct connections and\nrelayed connections to the NodeState. This is after all where this\ndecision is made. BestAddr only knows about the best UDP address, it\nhas no business keeping track of relays.\n\nCleaning this up enables further refactoring of BestAddr and PathState\nwhich need to improve because they depend on each other, but are\nhindered by the relay state sneaking into there.\n\n## Breaking Changes\n\nNone\n\n## Notes & open questions\n\nThese metrics ignore the fact that we have mixed as a possibility so\nover-simplify the situation. This makes the logic to increment them\ncomplex, which in turn makes it no one will really know what they\nmean.\n\nI need this to move on with #2546 so don't really want to get into\ndesigning our metrics though. I believe this way the keep the same\nbehaviour.\n\n## Change checklist\n\n- [x] Self-review.\n- [x] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- [x] Tests if relevant.\n- [x] All breaking changes documented.","shortMessageHtmlLink":"ref(iroh-net): Remove need for relay info in best_addr (n0-computer#2579"}},{"before":"9e6b1e0897b15ea7096c95143e11e09e948c862e","after":"347d45c3de3bcba878657566a67f4e1825b03bc4","ref":"refs/heads/main","pushedAt":"2024-08-02T08:58:24.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"refactor(iroh): remove flume from iroh-cli and iroh (#2543)\n\n## Description\n\nrefactor(iroh): remove flume from iroh-cli and iroh\n\nRemoves most usages of flume from iroh and all usages of flume from\niroh-cli.\n\n## Breaking Changes\n\nNone\n\n## Notes & open questions\n\nNote: this does not remove all usages because we need the iroh docs\npurge PR to be merged before that.\n\n## Change checklist\n\n- [ ] Self-review.\n- [ ] ~~Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- [ ] ~~Tests if relevant.~~\n- [ ] ~~All breaking changes documented.~~\n\n---------\n\nCo-authored-by: Philipp Krüger \nCo-authored-by: Kasey \nCo-authored-by: Kasey Huizinga ","shortMessageHtmlLink":"refactor(iroh): remove flume from iroh-cli and iroh (n0-computer#2543)"}},{"before":"f085e633c82531b7d24a70703ae48a2562eccfdd","after":"9e6b1e0897b15ea7096c95143e11e09e948c862e","ref":"refs/heads/main","pushedAt":"2024-07-31T22:17:12.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"test(iroh-cli): make cli resumption tests not flaky (#2564)\n\n## Description\n\nTakes a different approach to tests by doing the setup for them all\nfirst\nbefore running the tests, to prevent windows from whining about a locked\nblobs.db used by the provider. This still requires an ephemeral iroh to\nobtain\nthe blobs.db but does not require much re-starting, making it less prone\nto\nweird shutdown issues. \n\n## Breaking Changes\n\nn/a\n\n## Notes & open questions\n\nNote that there is sleep as a synchronization point because otherwise\nthe\nfolder for the tests will not have the correct contents. Unexpected but\nhave\nseen it happen a lot. We also use a different folder for the iroh\ninstance\nthat actually is providing during the tests, in case shutdown is not\ndone\nfor the instance that produces the blobs.db, when the one that provides\nis\nstarted.\n\n## Change checklist\n\n- [x] Self-review.\n- [ ] ~~Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- [x] Tests if relevant.\n- [ ] ~~All breaking changes documented.~~","shortMessageHtmlLink":"test(iroh-cli): make cli resumption tests not flaky (n0-computer#2564)"}},{"before":"081233357d4dbe0cabe890009d674839d9de18be","after":"f085e633c82531b7d24a70703ae48a2562eccfdd","ref":"refs/heads/main","pushedAt":"2024-07-30T03:22:24.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"test(iroh-cli): reduce flakyness of cli_provide_file_resume (#2563)\n\n## Description\n\nIn windows there is no way to copy a file being accessed by another\nprocess in an accessible way. This is what makes this test fail since it\nattempt to copy the blobs.db folder a couple of times while the iroh\ninstance that handles is running.\n\nThe change is simple: shutdown the provider, copy the files, re-start\nthe provider. From my perspective, this does not affect what the test is\nattempting to assert.\n\nNow, since this includes re-starting the iroh instance that provides the\nfiles several times, and we match on output, sometimes we can get weird\nlogs related to shutdown. One of those (and the only one I have seen so\nfar) is for a netcheck report and didn't finish on time. Instead of\nlogging this in the reportgen actor, the error is bubbled up to be\nhandled by the netcheck actor (which will have shutdown by then) thus\nreducing noise and allowing for better error handling in the future\n\n## Breaking Changes\n\nn/a\n\n## Notes & open questions\n\nn/a\n\n## Change checklist\n\n- [x] Self-review.\n- [ ] ~~Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- [x] Tests if relevant.\n- [ ] ~~All breaking changes documented.~~","shortMessageHtmlLink":"test(iroh-cli): reduce flakyness of cli_provide_file_resume (n0-compu…"}},{"before":"0fc37942be3d68399fbe45401ba7d67be43a83a6","after":"081233357d4dbe0cabe890009d674839d9de18be","ref":"refs/heads/main","pushedAt":"2024-07-28T00:32:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"ci: Generate docs for each PR (#2547)\n\n## Description\n\n\n\nAdded a `docs.yaml` workflow that makes the github action bot reply to\nPRs with a link to built docs to your PRs.\nIt only does so once, and then just updates the comment (although\nactually it doesn't necessarily need to, the link is always the same,\nbut it's still nice in case someone changes the workflow).\n\nThis is using the nightly toolchain, because we're using\n[`#[feature(doc_cfg)]`](https://doc.rust-lang.org/unstable-book/language-features/doc-cfg.html).\n\n## Motivation\n\nI personally wanted this. Every now and then we get a PR with the\ndescription saying \"the best way to review this is to start by looking\nat the generated docs\". But then I need to checkout the PR, build the\ndocs and open them. Having a link directly to the docs would be\n*amazing* IMO.\n\nI *also* think that having easy access to docs on every PR will make\npeople check out the rendered docs on PRs more often. My hope here is\nthat doc quality will thus improve.\n\n## Breaking Changes\n\n\n\nNone of course. This is only CI.\n\n## Notes & open questions\n\n\n\nWdyt?\n\n## Change checklist\n\n- [x] Self-review.\n- ~~[ ] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- ~~[ ] Tests if relevant.~~\n- ~~[ ] All breaking changes documented.~~","shortMessageHtmlLink":"ci: Generate docs for each PR (n0-computer#2547)"}},{"before":"29645698ca794d88314ff9c1117e962ec6260650","after":"0fc37942be3d68399fbe45401ba7d67be43a83a6","ref":"refs/heads/main","pushedAt":"2024-07-26T13:32:52.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"fix(iroh-cli)!: Improve cli and configuration file (#2532)\n\n## Description\n\nThe configuration file behaviour is improved:\n\n- Unknown fields will now cause an error rather than be silently\nignored.\n\n- Make it possible to express GcPolicy in the TOML config file. This\n was not possible before. It was possible to disable it before, but\n it was disabled by default so that was rather moot.\n\nThe --help output is improved:\n\n- Update header of iroh.\n- Directly point to config file docs.\n- Use consistent style.\n\n\n\n\n## Breaking Changes\n\n- Unknown fields in the configuration file will now cause an error.\n\n- Configuring the GC Policy in the configuration file has changed.\n\n\n\n## Notes & open questions\n\n\n\n\n## Change checklist\n\n- [ ] Self-review.\n- [x] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- [x] Tests if relevant.\n- [x] All breaking changes documented.","shortMessageHtmlLink":"fix(iroh-cli)!: Improve cli and configuration file (n0-computer#2532)"}},{"before":"9052905d0d75d62c761139f02294d6abc1c53af6","after":"29645698ca794d88314ff9c1117e962ec6260650","ref":"refs/heads/main","pushedAt":"2024-07-25T04:20:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"refactor(iroh): Remove flume from iroh gossip (#2542)\n\n## Description\n\nrefactor(iroh): Remove flume from iroh gossip\n\nYes, I know there is a PR that touches gossip. But just let me do my\npurge.\n\n## Breaking Changes\n\nNone\n\n## Notes & open questions\n\nNone\n\n## Change checklist\n\n- [x] Self-review.\n- [x] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- [x] Tests if relevant.\n- [x] All breaking changes documented.","shortMessageHtmlLink":"refactor(iroh): Remove flume from iroh gossip (n0-computer#2542)"}},{"before":"b4506b2c4a288434ea55c36607f8fd839d58bf10","after":"9052905d0d75d62c761139f02294d6abc1c53af6","ref":"refs/heads/main","pushedAt":"2024-07-23T21:37:19.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"fix(iroh-blobs): use async_channel instead of flume for local_pool (#2533)\n\n## Description\n\nDuring soft shutdown of the local pool, a Finish message is sent to all\nthreads. On main, this occasionally hangs. Further investigation showed\nthat this is a message that is being sent but not received despite being\nin the channel. Adding a simple timeout to the select! so the flume recv\ncall is executed again fixes it.\n\nSee discussion in\nhttps://discord.com/channels/949724860232392765/950683937661935667/1265205285618847744\n\nSo it seems that there is a bug in flume that occasionally leads to\nnotifications being dropped.\n\nThis PR just does a 1:1 replacement of flume with async_channel.\n\nBefore this change, I can get the test_shutdown test to fail easily by\nrunning it 1000 times:\n\n```\nfor i in $(seq 1 1000); do cargo test --release -p iroh-blobs test_shutdown -- --nocapture >> log.txt; done\n```\n\nResult:\n```\n...\nsending shutdown message\nsending shutdown message\nsending shutdown message\nsending shutdown message\ntest util::local_pool::tests::test_shutdown has been running for over 60 seconds\n```\n\nAfter this change, I can not get test_finish (renamed because it tests\nfinish, not shutdown) to fail at all even after several 1000 tests.\n\n## Breaking Changes\n\nNone\n\n## Notes & open questions\n\nCan somebody talk me out of this? I would prefer to keep flume, but the\nevidence above seems conclusive...\n\nNote: why not tokio::sync::mpsc::channel? I need a mpmc channel. The\nhandle can be cloned, and can send to any of the n worker threads.\n\n## Change checklist\n\n- [x] Self-review.\n- [x] ~~Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- [x] ~~Tests if relevant.~~\n- [x] ~~All breaking changes documented.~~","shortMessageHtmlLink":"fix(iroh-blobs): use async_channel instead of flume for local_pool (n…"}},{"before":"0102b05e084679d909bc33e588aa4f00ebc403cf","after":"b4506b2c4a288434ea55c36607f8fd839d58bf10","ref":"refs/heads/main","pushedAt":"2024-07-22T15:28:17.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"fix(iroh-blobs): properly handle Drop in local pool during shutdown (#2517)\n\n## Description\n\nThe tokio_util LocalPoolHandle does not properly handle Drop during\nshutdown. Its threads are just spawned as detached. So any drop impl\nthat runs in a local pool thread will be stopped as soon as the process\nterminates. This can have some bad consequences if that drop operation\nperforms IO, like closing files and committing database transactions.\n\nHere is where the threads get spawned. The `std::thread::JoinHandle`s\nare just dropped.\n\nhttps://docs.rs/tokio-util/latest/src/tokio_util/task/spawn_pinned.rs.html#381\n\nHere is some discussion of the observed effects:\nhttps://discord.com/channels/949724860232392765/1260571544414064670\n\nLocalPoolHandle also, of course, is using an unbounded channel:\n\nhttps://docs.rs/tokio-util/latest/src/tokio_util/task/spawn_pinned.rs.html#372\n\n## Breaking Changes\n\nPublic interfaces using tokio_util::task::LocalPoolHandle will now use\nour own LocalPool/LocalPoolHandle.\n\n## Notes & open questions\n\nShould we use an unbounded channel like tokio::spawn or\nLocalPoolHandle::spawn_pinned? Seems like a big footgun. But if not, we\nneed to somehow handle when the queue is full.\n\n\n\n## Change checklist\n\n- [x] Self-review.\n- [x] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- [x] Tests if relevant.\n- [x] All breaking changes documented.","shortMessageHtmlLink":"fix(iroh-blobs): properly handle Drop in local pool during shutdown (n…"}},{"before":"538efbfc6575733114292ddcfdc040adb50a246c","after":"0102b05e084679d909bc33e588aa4f00ebc403cf","ref":"refs/heads/main","pushedAt":"2024-07-21T06:34:58.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"deprecation(iroh)!: remove deprecated type aliases (#2467)\n\n## Description\n\nRemove type aliases for the mem and quic node types that are no longer\nnecessary due to boxing of the rpc channel.\n\nAlso document reexports\n\n## Breaking Changes\n\n- iroh: remove client::MemIroh\n- iroh: remove client::QuicIroh\n- iroh: remove client::MemDoc\n- iroh: remove client::QuicDoc\n\n## Notes & open questions\n\n\n\n## Change checklist\n\n- [x] Self-review.\n- [x] ~~Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- [x] ~~Tests if relevant.~~\n- [x] All breaking changes documented.","shortMessageHtmlLink":"deprecation(iroh)!: remove deprecated type aliases (n0-computer#2467)"}},{"before":"f37d9f9f339dd0de50b35a405ce203c36272a0b4","after":"538efbfc6575733114292ddcfdc040adb50a246c","ref":"refs/heads/main","pushedAt":"2024-07-18T02:35:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"ci: keep GitHub Actions up to date with GitHub's Dependabot (#2498)\n\nFixes software supply chain safety warnings like at the bottom right of\nhttps://github.com/n0-computer/iroh/actions/runs/9869350246\n\n* [Keeping your actions up to date with\nDependabot](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot)\n* [Configuration options for the dependabot.yml file -\npackage-ecosystem](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem)\n\n## Description\n\n\n\n## Breaking Changes\n\n\n\n## Notes & open questions\n\n\n\n## Change checklist\n\n- [x] Self-review.\n- [ ] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.\n- [ ] Tests if relevant.\n- [ ] All breaking changes documented.\n\nCo-authored-by: Friedel Ziegelmayer ","shortMessageHtmlLink":"ci: keep GitHub Actions up to date with GitHub's Dependabot (n0-compu…"}},{"before":"d17ffa3e2e96a9cb10ecfc75e5c3d1a1387c0cb8","after":"f37d9f9f339dd0de50b35a405ce203c36272a0b4","ref":"refs/heads/main","pushedAt":"2024-07-17T17:56:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pull[bot]","name":null,"path":"/apps/pull","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/12910?s=80&v=4"},"commit":{"message":"refactor(iroh-net)!: Move relay implemention in `iroh-net` behind `iroh-relay` cfg flag (#2516)\n\n## Description\n\nWe had an `iroh-relay` cfg flag, but it was unused.\n\nEnabling it is useful for working towards building iroh-net for Wasm (we\nwon't be able to compile the server bits to Wasm, sorry\n:stuck_out_tongue: )\n\nThis moves the `axum` and `tokio-rustls-acme` dependencies behind that\nfeature flag as well as the modules `iroh_net::relay::http::server` and\n`iroh_net::relay::iroh_relay`.\n\nI also had to move the `relay::http::server::Protocol` one module up.\n\n## Breaking Changes\n\n- iroh-relay *implementation*-specific features are now behind an\n`iroh-relay` feature flag in iroh-net.\n\n## Notes & open questions\n\nLMK!\n\n## Change checklist\n\n- [X] Self-review.\n- ~~[ ] Documentation updates following the [style\nguide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),\nif relevant.~~\n- ~~[ ] Tests if relevant.~~ I ran `cargo test -p iroh-net`. That\nenables the `iroh-relay` feature and runs successfully.\n- [X] All breaking changes documented.\n\n---------\n\nCo-authored-by: Floris Bruynooghe ","shortMessageHtmlLink":"refactor(iroh-net)!: Move relay implemention in iroh-net behind `ir…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yOVQxNzoxMDo1Ni4wMDAwMDBazwAAAATD-L25","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0xN1QxNzo1NjoyNi4wMDAwMDBazwAAAASCIEHg"}},"title":"Activity · ApeWorX/iroh"}