mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-21 10:27:46 +08:00
|
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 / unit-tests (push) Waiting to run
Go Test / cli-tests (push) Waiting to run
Go Test / example-tests (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(config): Import.* and unixfs-v1-2025 profile
implements IPIP-499: add config options for controlling UnixFS DAG
determinism and introduces `unixfs-v1-2025` and `unixfs-v0-2015`
profiles for cross-implementation CID reproducibility.
changes:
- add Import.* fields: HAMTDirectorySizeEstimation, SymlinkMode,
DAGLayout, IncludeEmptyDirectories, IncludeHidden
- add validation for all Import.* config values
- add unixfs-v1-2025 profile (recommended for new data)
- add unixfs-v0-2015 profile (alias: legacy-cid-v0)
- remove deprecated test-cid-v1 and test-cid-v1-wide profiles
- wire Import.HAMTSizeEstimationMode() to boxo globals
- update go.mod to use boxo with SizeEstimationMode support
ref: https://specs.ipfs.tech/ipips/ipip-0499/
* feat(add): add --dereference-symlinks, --empty-dirs, --hidden CLI flags
add CLI flags for controlling file collection behavior during ipfs add:
- `--dereference-symlinks`: recursively resolve symlinks to their target
content (replaces deprecated --dereference-args which only worked on
CLI arguments). wired through go-ipfs-cmds to boxo's SerialFileOptions.
- `--empty-dirs` / `-E`: include empty directories (default: true)
- `--hidden` / `-H`: include hidden files (default: false)
these flags are CLI-only and not wired to Import.* config options because
go-ipfs-cmds library handles input file filtering before the directory
tree is passed to kubo. removed unused Import.UnixFSSymlinkMode config
option that was defined but never actually read by the CLI.
also:
- wire --trickle to Import.UnixFSDAGLayout config default
- update go-ipfs-cmds to v0.15.1-0.20260117043932-17687e216294
- add SYMLINK HANDLING section to ipfs add help text
- add CLI tests for all three flags
ref: https://github.com/ipfs/specs/pull/499
* test(add): add CID profile tests and wire SizeEstimationMode
add comprehensive test suite for UnixFS CID determinism per IPIP-499:
- verify exact HAMT threshold boundary for both estimation modes:
- v0-2015 (links): sum(name_len + cid_len) == 262144
- v1-2025 (block): serialized block size == 262144
- verify HAMT triggers at threshold + 1 byte for both profiles
- add all deterministic CIDs for cross-implementation testing
also wires SizeEstimationMode through CLI/API, allowing
Import.UnixFSHAMTSizeEstimation config to take effect.
bumps boxo to ipfs/boxo@6707376 which aligns HAMT threshold with
JS implementation (uses > instead of >=), fixing CID determinism
at the exact 256 KiB boundary.
* feat(add): --dereference-symlinks now resolves all symlinks
Previously, resolving symlinks required two flags:
- --dereference-args: resolved symlinks passed as CLI arguments
- --dereference-symlinks: resolved symlinks inside directories
Now --dereference-symlinks handles both cases. Users only need one flag
to fully dereference symlinks when adding files to IPFS.
The deprecated --dereference-args still works for backwards compatibility
but is no longer necessary.
* chore: update boxo and improve changelog
- update boxo to ebdaf07c (nil filter fix, thread-safety docs)
- simplify changelog for IPIP-499 section
- shorten test names, move context to comments
* chore: update boxo to 5cf22196
* chore: apply suggestions from code review
Co-authored-by: Andrew Gillis <11790789+gammazero@users.noreply.github.com>
* test(add): verify balanced DAG layout produces uniform leaf depth
add test that confirms kubo uses balanced layout (all leaves at same
depth) rather than balanced-packed (varying depths). creates 45MiB file
to trigger multi-level DAG and walks it to verify leaf depth uniformity.
includes trickle subtest to validate test logic can detect varying depths.
supports CAR export via DAG_LAYOUT_CAR_OUTPUT env var for test vectors.
* chore(deps): update boxo to 6141039ad8ef
switches to
|
||
|---|---|---|
| .. | ||
| autoconf | ||
| fixtures | ||
| harness | ||
| migrations | ||
| testutils | ||
| add_test.go | ||
| agent_version_unicode_test.go | ||
| api_file_test.go | ||
| backup_bootstrap_test.go | ||
| basic_commands_test.go | ||
| bitswap_config_test.go | ||
| bootstrap_auto_test.go | ||
| cid_profiles_test.go | ||
| cid_test.go | ||
| cli_https_test.go | ||
| commands_without_repo_test.go | ||
| completion_test.go | ||
| config_secrets_test.go | ||
| content_blocking_test.go | ||
| content_routing_http_test.go | ||
| daemon_test.go | ||
| dag_layout_test.go | ||
| dag_test.go | ||
| delegated_routing_v1_http_client_test.go | ||
| delegated_routing_v1_http_proxy_test.go | ||
| delegated_routing_v1_http_server_test.go | ||
| dht_autoclient_test.go | ||
| dht_opt_prov_test.go | ||
| diag_datastore_test.go | ||
| dns_resolvers_multiaddr_test.go | ||
| files_test.go | ||
| fuse_test.go | ||
| gateway_limits_test.go | ||
| gateway_range_test.go | ||
| gateway_test.go | ||
| http_gateway_over_libp2p_test.go | ||
| http_retrieval_client_test.go | ||
| identity_cid_test.go | ||
| init_test.go | ||
| ipfswatch_test.go | ||
| log_level_test.go | ||
| ls_test.go | ||
| must.go | ||
| name_test.go | ||
| p2p_test.go | ||
| peering_test.go | ||
| pin_ls_names_test.go | ||
| pin_name_validation_test.go | ||
| ping_test.go | ||
| pinning_remote_test.go | ||
| pins_test.go | ||
| provide_stats_test.go | ||
| provider_test.go | ||
| pubsub_test.go | ||
| rcmgr_test.go | ||
| repo_verify_test.go | ||
| routing_dht_test.go | ||
| rpc_auth_test.go | ||
| rpc_content_type_test.go | ||
| rpc_get_output_test.go | ||
| rpc_unixsocket_test.go | ||
| stats_test.go | ||
| swarm_test.go | ||
| telemetry_test.go | ||
| tracing_test.go | ||
| transports_test.go | ||
| webui_test.go | ||