kubo/test/cli
Guillaume Michel 16479ec692
Some checks are pending
CodeQL / codeql (push) Waiting to run
Docker Check / lint (push) Waiting to run
Docker Check / build (push) Waiting to run
Gateway Conformance / gateway-conformance (push) Waiting to run
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Waiting to run
Go Build / go-build (push) Waiting to run
Go Check / go-check (push) Waiting to run
Go Lint / go-lint (push) Waiting to run
Go Test / go-test (push) Waiting to run
Interop / interop-prep (push) Waiting to run
Interop / helia-interop (push) Blocked by required conditions
Interop / ipfs-webui (push) Blocked by required conditions
Sharness / sharness-test (push) Waiting to run
Spell Check / spellcheck (push) Waiting to run
feat(provide): detailed ipfs provide stat (#11019)
* feat: provide stats

* added N/A

* format

* workers stats alignment

* ipfs provide stat --all --compact

* consolidating compact stat

* update column alignment

* flags combinations errors

* command description

* change schedule AvgPrefixLen to float

* changelog

* alignments

* provide stat description draft

* rephrased provide-stats.md

* linking provide-stats.md from command description

* documentation test

* fix: refactor provide stat command type handling

- add extractSweepingProvider() helper to reduce nested type switching
- extract lowWorkerThreshold constant for worker availability check
- fix --lan error handling to work with buffered providers

* docs: add clarifying comments

* fix(commands): improve provide stat compact mode

- prevent panic when both columns are empty
- fix column alignment with UTF-8 characters
- only track col0MaxWidth for first column (as intended)

* test: add tests for ipfs provide stat command

- test basic functionality, flags, JSON output
- test legacy provider behavior
- test integration with content scheduling
- test disabled provider configurations
- add parseSweepStats helper with t.Helper()

* docs: improve provide command help text

- update tagline to "Control and monitor content providing"
- simplify help descriptions
- make error messages more consistent
- update tests to match new error messages

* metrics rename

```
Next reprovide at:
Next prefix:
```
updated to:
```
Next region prefix:
Next region reprovide:
```

* docs: improve Provide system documentation clarity

Enhance documentation for the Provide system to better explain how provider
records work and the differences between sweep and legacy modes.

Changes to docs/config.md:
- Provide section: add clear explanation of provider records and their role
- Provide.DHT: add provider record lifecycle and two provider systems overview
- Provide.DHT.Interval: explain relationship to expiration, contrast sweep vs legacy behavior
- Provide.DHT.SweepEnabled: rewrite to explain legacy problem, sweep solution, and efficiency gains
- Monitoring section: prioritize command-line tools (ipfs provide stat) before Prometheus

Changes to core/commands/provide.go:
- ipfs provide stat help: add explanation of provider records, TTL expiration, and how sweep batching works

Changes to docs/changelogs/v0.39.md:
- Add context about why stats matter for monitoring provider health
- Emphasize real-time monitoring workflow with watch command
- Explain what users can observe (rates, queues, worker availability)

* depend on latest kad-dht master

* docs: nits

---------

Co-authored-by: Marcin Rataj <lidel@lidel.org>
2025-10-23 20:29:36 +02:00
..
autoconf refactor(config): migration 17-to-18 to unify Provider/Reprovider into Provide.DHT (#10951) 2025-09-18 22:17:43 +02:00
fixtures feat(ipns): records with V2-only signatures (#9932) 2023-06-20 14:24:31 +02:00
harness fix: disable telemetry in test profile (#10931) 2025-08-24 14:30:35 +02:00
migrations fix: migrations for Windows (#11010) 2025-10-08 18:02:04 +02:00
testutils chore: replace random test utils with equivalents in go-test/random (#10915) 2025-08-14 10:37:55 -07:00
add_test.go feat(add): add support for naming pinned CIDs (#10877) 2025-08-06 02:16:16 +02:00
agent_version_unicode_test.go fix(cmds): cleanup unicode identify strings (#9465) 2025-09-19 04:46:38 +02:00
backup_bootstrap_test.go feat(bootstrap): save connected peers as backup bootstrap peers (#8856) 2023-05-25 14:39:49 +02:00
basic_commands_test.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
bitswap_config_test.go chore: replace random test utils with equivalents in go-test/random (#10915) 2025-08-14 10:37:55 -07:00
bootstrap_auto_test.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
cid_test.go fix(cmd): exit 1 on error (#10903) 2025-08-08 17:25:05 -07:00
cli_https_test.go fix(cli): support HTTPS in ipfs --api (#10659) 2025-01-10 22:34:56 +01:00
commands_without_repo_test.go fix: ipfs cid without repo (#10897) 2025-08-08 16:39:34 +02:00
completion_test.go feat: add zsh completions (#10040) 2023-08-17 16:43:27 +02:00
content_blocking_test.go fix typos in docs and comments (#10920) 2025-08-18 08:43:25 -07:00
content_routing_http_test.go chore: replace random test utils with equivalents in go-test/random (#10915) 2025-08-14 10:37:55 -07:00
daemon_test.go refactor: remove goprocess (#10872) 2025-08-06 00:33:45 +02:00
dag_test.go docs: fix some typos (#10377) 2024-03-25 09:59:47 +01:00
delegated_routing_v1_http_client_test.go feat(gateway): expose /routing/v1 server (opt-in) (#9877) 2023-08-25 17:30:04 +02:00
delegated_routing_v1_http_proxy_test.go chore: replace random test utils with equivalents in go-test/random (#10915) 2025-08-14 10:37:55 -07:00
delegated_routing_v1_http_server_test.go feat: Better self-service commands for DHT providing (#10677) 2025-01-31 16:33:11 +01:00
dht_autoclient_test.go chore: replace random test utils with equivalents in go-test/random (#10915) 2025-08-14 10:37:55 -07:00
dht_opt_prov_test.go chore: replace random test utils with equivalents in go-test/random (#10915) 2025-08-14 10:37:55 -07:00
files_test.go fix(mfs): add soft limit for --flush=false (#10985) 2025-09-26 01:25:23 +02:00
fuse_test.go refactor: remove goprocess (#10872) 2025-08-06 00:33:45 +02:00
gateway_limits_test.go feat(config): Gateway.RetrievalTimeout|MaxConcurrentRequests (#10905) 2025-08-15 02:36:33 +02:00
gateway_range_test.go feat(gateway): update gateway api, no multi-range support 2023-10-02 16:43:52 +02:00
gateway_test.go chore: use go-log/v2 (#10801) 2025-05-19 13:04:05 -07:00
http_gateway_over_libp2p_test.go chore: update dependencies (#10462)(#10466) 2024-07-30 16:42:18 +02:00
http_retrieval_client_test.go chore: replace random test utils with equivalents in go-test/random (#10915) 2025-08-14 10:37:55 -07:00
identity_cid_test.go fix: enforce identity CID size limits (#10949) 2025-09-09 20:22:21 +02:00
init_test.go style: gofumpt and godot [skip changelog] (#10081) 2023-08-17 14:02:08 +02:00
log_level_test.go feat: add query functionality to log level command (#10885) 2025-08-11 12:43:48 -07:00
must.go test: port remote pinning tests to Go (#9720) 2023-03-30 07:46:35 -04:00
name_test.go feat(config): AutoConf with "auto" placeholders (#10883) 2025-08-20 05:59:11 +02:00
peering_test.go feat: add identify option to swarm peers command 2023-03-30 04:34:57 +00:00
pin_ls_names_test.go fix: ipfs pin ls <cid> --names (#10970) 2025-09-19 03:17:45 +02:00
pin_name_validation_test.go feat: limit pin names to 255 bytes (#10981) 2025-09-25 23:54:04 +02:00
ping_test.go chore: update go-libp2p-kad-dht 2023-09-21 20:14:21 +02:00
pinning_remote_test.go chore: replace random test utils with equivalents in go-test/random (#10915) 2025-08-14 10:37:55 -07:00
pins_test.go chore: replace random test utils with equivalents in go-test/random (#10915) 2025-08-14 10:37:55 -07:00
provide_stats_test.go feat(provide): detailed ipfs provide stat (#11019) 2025-10-23 20:29:36 +02:00
provider_test.go fix: allow custom http provide when libp2p node is offline (#10974) 2025-09-19 18:55:42 +02:00
rcmgr_test.go fix: future proof with > rcmgr.DefaultLimit for new enum rcmgr values 2023-03-16 13:41:24 +01:00
routing_dht_test.go feat: Better self-service commands for DHT providing (#10677) 2025-01-31 16:33:11 +01:00
rpc_auth_test.go feat(rpc): Opt-in HTTP RPC API Authorization (#10218) 2023-11-17 01:29:29 +01:00
rpc_unixsocket_test.go Cleanup commented imports 2024-08-19 19:55:11 -07:00
stats_test.go fix: stats dht command when Routing.Type=auto (#9538) 2023-01-13 00:38:38 +01:00
swarm_test.go feat(ci): reusable spellcheck from unified CI (#10873) 2025-08-14 00:35:35 +00:00
telemetry_test.go fix: disable telemetry in test profile (#10931) 2025-08-24 14:30:35 +02:00
tracing_test.go style: gofumpt and godot [skip changelog] (#10081) 2023-08-17 14:02:08 +02:00
transports_test.go fix(ci): make NewRandPort thread-safe (#10921) 2025-08-18 22:12:22 +02:00
webui_test.go feat: ipfs-webui v4.9.0 with retrieval diagnostics (#10969) 2025-09-19 04:16:21 +02:00