A new WithResolver(...) option can be used with NewBlocksBackend(...) allowing the user to pass their custom Resolver implementation.
The gateway now sets a Cache-Control header for requests under the /ipns/ namespace if the TTL for the corresponding IPNS Records or DNSLink entities is known.
boxo/bitswap/client:
A new WithoutDuplicatedBlockStats() option can be used with bitswap.New and bsclient.New. This disable accounting for duplicated blocks, which requires a blockstore.Has() lookup for every received block and thus, can impact performance.
🛠The IPFSBackend interface was updated to make the responses of the Head method more explicit. It now returns a HeadResponse instead of a files.Node.
boxo/routing/http/client.Client is now exported. This means you can now pass it around functions, or add it to a struct if you want.
🛠The path package has been massively refactored. With this refactor, we have condensed the different path-related and/or Kubo-specific packages under a single generic one. Therefore, there are many breaking changes. Please consult the documentation for more details on how to use the new package.
Note: content paths created with boxo/path are automatically normalized:
Replace multiple slashes with a single slash.
Eliminate each . path name element (the current directory).
Eliminate each inner .. path name element (the parent directory) along with the non-.. element that precedes it.
Eliminate .. elements that begin a rooted path: that is, replace "/.." by "/" at the beginning of a path.
🛠The signature of CoreAPI.ResolvePath in coreiface has changed to now return the remainder segments as a second return value, matching the signature of resolver.ResolveToLastNode.
🛠routing/http/client.FindPeers now returns iter.ResultIter[types.PeerRecord] instead of iter.ResultIter[types.Record]. The specification indicates that records for this method will always be Peer Records.
🛠The namesys package has been refactored. The following are the largest modifications:
The options in coreiface/options/namesys have been moved to namesys and their names have been made more consistent.
Many of the exported structs and functions have been renamed in order to be consistent with the remaining packages.
namesys.Resolver.Resolve now returns a TTL, in addition to the resolved path. If the TTL is unknown, 0 is returned. IPNSResolver is able to resolve a TTL, while DNSResolver is not.
namesys/resolver.ResolveIPNS has been moved to namesys.ResolveIPNS and now returns a TTL
in addition to the resolved path.
DefaultRecordLifetime follows the increased expiration window of Amino DHT (go-libp2p-kad-dht#793) and is set to 48h
🛠The gateway's IPFSBackend.ResolveMutable is now expected to return a TTL in addition to the resolved path. If the TTL is unknown, 0 should be returned.
A new WithResolver(...) option can be used with NewBlocksBackend(...) allowing the user to pass their custom Resolver implementation.
The gateway now sets a Cache-Control header for requests under the /ipns/ namespace if the TTL for the corresponding IPNS Records or DNSLink entities is known.
boxo/bitswap/client:
A new WithoutDuplicatedBlockStats() option can be used with bitswap.New and bsclient.New. This disable accounting for duplicated blocks, which requires a blockstore.Has() lookup for every received block and thus, can impact performance.
🛠The IPFSBackend interface was updated to make the responses of the
Head method more explicit. It now returns a HeadResponse instead of a
files.Node.
boxo/routing/http/client.Client is now exported. This means you can now pass
it around functions, or add it to a struct if you want.
🛠The path package has been massively refactored. With this refactor, we have
condensed the different path-related and/or Kubo-specific packages under a single generic one. Therefore, there
are many breaking changes. Please consult the documentation
for more details on how to use the new package.
Note: content paths created with boxo/path are automatically normalized:
Replace multiple slashes with a single slash.
Eliminate each . path name element (the current directory).
Eliminate each inner .. path name element (the parent directory) along with the non-.. element that precedes it.
Eliminate .. elements that begin a rooted path: that is, replace "/.." by "/" at the beginning of a path.
🛠The signature of CoreAPI.ResolvePath in coreiface has changed to now return
the remainder segments as a second return value, matching the signature of resolver.ResolveToLastNode.
🛠routing/http/client.FindPeers now returns iter.ResultIter[types.PeerRecord] instead of iter.ResultIter[types.Record]. The specification indicates that records for this method will always be Peer Records.
🛠The namesys package has been refactored. The following are the largest modifications:
The options in coreiface/options/namesys have been moved to namesys and their names
have been made more consistent.
Many of the exported structs and functions have been renamed in order to be consistent with
the remaining packages.
namesys.Resolver.Resolve now returns a TTL, in addition to the resolved path. If the
TTL is unknown, 0 is returned. IPNSResolver is able to resolve a TTL, while DNSResolver
is not.
namesys/resolver.ResolveIPNS has been moved to namesys.ResolveIPNS and now returns a TTL
... (truncated)
Commits
521f8d4 Merge pull request #505 from ipfs/release-v0.15.0
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Bumps github.com/ipfs/boxo from 0.13.1 to 0.15.0.
Release notes
Sourced from github.com/ipfs/boxo's releases.
... (truncated)
Changelog
Sourced from github.com/ipfs/boxo's changelog.
... (truncated)
Commits
521f8d4
Merge pull request #505 from ipfs/release-v0.15.05af54b2
chore: release 0.15.075ca06e
docs: release notes for 0.15.03982cdc
chore: bump to go-libp2p@0.32.09c22812
Merge pull request #501 from ipfs/release07c5719
Merge pull request #500 from ipfs/release-v0.14.050f0e2c
chore: bump version to 0.14.066c76e5
docs: update changelog for 0.14.008b11e5
Merge pull request #474 from ipfs/chore/migrate-bootstrap45426db
Update bootstrap/bootstrap.goYou can trigger a rebase of this PR by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show