Skip to content

Commit e7f0f34

Browse files
authored
Merge pull request #10394 from ipfs/release-v0.28.0
Release: v0.28.0 [skip changelog]
2 parents 59bcea8 + 7374880 commit e7f0f34

File tree

109 files changed

+793
-3276
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+793
-3276
lines changed

.github/FUNDING.yml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
custom: [ipshipyard.gitwallet.co]

.github/ISSUE_TEMPLATE/bug-report.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ body:
1818
label: Checklist
1919
description: Please verify that you've followed these steps
2020
options:
21-
- label: This is a bug report, not a question. Ask questions on [discuss.ipfs.io](https://discuss.ipfs.io).
21+
- label: This is a bug report, not a question. Ask questions on [discuss.ipfs.tech](https://discuss.ipfs.tech/c/help/13).
2222
required: true
2323
- label: I have searched on the [issue tracker](https://github.com/ipfs/kubo/issues?q=is%3Aissue) for my bug.
2424
required: true

.github/ISSUE_TEMPLATE/config.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
blank_issues_enabled: false
22
contact_links:
33
- name: Getting Help on IPFS
4-
url: https://ipfs.io/help
4+
url: https://ipfs.tech/help
55
about: All information about how and where to get help on IPFS.
66
- name: Kubo configuration reference
77
url: https://github.com/ipfs/kubo/blob/master/docs/config.md#readme
88
about: Documentation on the different configuration settings
99
- name: Kubo experimental features docs
1010
url: https://github.com/ipfs/kubo/blob/master/docs/experimental-features.md#readme
1111
about: Documentation on Private Networks, Filestore and other experimental features.
12-
- name: RPC API Reference
12+
- name: Kubo RPC API Reference
1313
url: https://docs.ipfs.tech/reference/kubo/rpc/
1414
about: Documentation of all Kubo RPC API endpoints.
15-
- name: IPFS Official Forum
16-
url: https://discuss.ipfs.io
15+
- name: IPFS Official Discussion Forum
16+
url: https://discuss.ipfs.tech
1717
about: Please post general questions, support requests, and discussions here.

.github/ISSUE_TEMPLATE/enhancement.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ body:
66
- type: markdown
77
attributes:
88
value: |
9-
Suggest an enhancement to Kubo (the program). If you'd like to suggest an improvement to the IPFS protocol, please discuss it on [the forum](https://discuss.ipfs.io).
9+
Suggest an enhancement to Kubo (the program). If you'd like to suggest an improvement to the IPFS protocol, please discuss it on [the forum](https://discuss.ipfs.tech).
1010
1111
Issues in this repo must be specific, actionable, and well motivated. They should be starting points for _building_ new features, not brainstorming ideas.
1212
13-
If you have an idea you'd like to discuss, please open a new thread on [the forum](https://discuss.ipfs.io).
13+
If you have an idea you'd like to discuss, please open a new thread on [the forum](https://discuss.ipfs.tech).
1414
1515
**Example:**
1616

.github/ISSUE_TEMPLATE/feature.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ body:
66
- type: markdown
77
attributes:
88
value: |
9-
Suggest a new feature in Kubo (the program). If you'd like to suggest an improvement to the IPFS protocol, please discuss it on [the forum](https://discuss.ipfs.io).
9+
Suggest a new feature in Kubo (the program). If you'd like to suggest an improvement to the IPFS protocol, please discuss it on [the forum](https://discuss.ipfs.tech).
1010
1111
Issues in this repo must be specific, actionable, and well motivated. They should be starting points for _building_ new features, not brainstorming ideas.
1212
13-
If you have an idea you'd like to discuss, please open a new thread on [the forum](https://discuss.ipfs.io).
13+
If you have an idea you'd like to discuss, please open a new thread on [the forum](https://discuss.ipfs.tech).
1414
1515
**Example:**
1616

.github/workflows/build.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010
- 'master'
1111

1212
env:
13-
GO_VERSION: 1.21.x
13+
GO_VERSION: 1.22.x
1414

1515
concurrency:
1616
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event_name == 'push' && github.sha || github.ref }}

.github/workflows/codeql-analysis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
- name: Setup Go
3535
uses: actions/setup-go@v5
3636
with:
37-
go-version: 1.21.x
37+
go-version: 1.22.x
3838

3939
# Initializes the CodeQL tools for scanning.
4040
- name: Initialize CodeQL

.github/workflows/docker-build.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
steps:
2929
- uses: actions/setup-go@v5
3030
with:
31-
go-version: 1.21.x
31+
go-version: 1.22.x
3232
- uses: actions/checkout@v4
3333
- run: docker build -t $IMAGE_NAME:$WIP_IMAGE_TAG .
3434
- run: docker run --rm $IMAGE_NAME:$WIP_IMAGE_TAG --version

.github/workflows/docker-image.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
shell: bash
6464

6565
- name: Log in to Docker Hub
66-
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d
66+
uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20
6767
with:
6868
username: ${{ vars.DOCKER_USERNAME }}
6969
password: ${{ secrets.DOCKER_PASSWORD }}

.github/workflows/gateway-conformance.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
- name: Setup Go
5050
uses: actions/setup-go@v5
5151
with:
52-
go-version: 1.21.x
52+
go-version: 1.22.x
5353
- uses: protocol/cache-go-action@v1
5454
with:
5555
name: ${{ github.job }}
@@ -137,7 +137,7 @@ jobs:
137137
- name: Setup Go
138138
uses: actions/setup-go@v5
139139
with:
140-
go-version: 1.21.x
140+
go-version: 1.22.x
141141
- uses: protocol/cache-go-action@v1
142142
with:
143143
name: ${{ github.job }}

.github/workflows/gobuild.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
steps:
3131
- uses: actions/setup-go@v5
3232
with:
33-
go-version: 1.21.x
33+
go-version: 1.22.x
3434
- uses: actions/checkout@v4
3535
- run: make cmd/ipfs-try-build
3636
env:

.github/workflows/golang-analysis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
submodules: recursive
2828
- uses: actions/setup-go@v5
2929
with:
30-
go-version: "1.21.x"
30+
go-version: "1.22.x"
3131
- name: Check that go.mod is tidy
3232
uses: protocol/[email protected]
3333
with:

.github/workflows/golint.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@ jobs:
3131
steps:
3232
- uses: actions/setup-go@v5
3333
with:
34-
go-version: 1.21.x
34+
go-version: 1.22.x
3535
- uses: actions/checkout@v4
3636
- run: make -O test_go_lint

.github/workflows/gotest.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
- name: Set up Go
3333
uses: actions/setup-go@v5
3434
with:
35-
go-version: 1.21.x
35+
go-version: 1.22.x
3636
- name: Check out Kubo
3737
uses: actions/checkout@v4
3838
- name: Install missing tools
@@ -45,7 +45,7 @@ jobs:
4545
make -j "$PARALLEL" test/unit/gotest.junit.xml &&
4646
[[ ! $(jq -s -c 'map(select(.Action == "fail")) | .[]' test/unit/gotest.json) ]]
4747
- name: Upload coverage to Codecov
48-
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4.0.1
48+
uses: codecov/codecov-action@7afa10ed9b269c561c2336fd862446844e0cbf71 # v4.2.0
4949
if: failure() || success()
5050
with:
5151
name: unittests

.github/workflows/sharness.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Setup Go
2626
uses: actions/setup-go@v5
2727
with:
28-
go-version: 1.21.x
28+
go-version: 1.22.x
2929
- name: Checkout Kubo
3030
uses: actions/checkout@v4
3131
with:
@@ -55,7 +55,7 @@ jobs:
5555
# increasing parallelism beyond 10 doesn't speed up the tests much
5656
PARALLEL: ${{ github.repository == 'ipfs/kubo' && 10 || 3 }}
5757
- name: Upload coverage report
58-
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4.0.1
58+
uses: codecov/codecov-action@7afa10ed9b269c561c2336fd862446844e0cbf71 # v4.2.0
5959
if: failure() || success()
6060
with:
6161
name: sharness

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Kubo Changelogs
22

3+
- [v0.28](docs/changelogs/v0.28.md)
34
- [v0.27](docs/changelogs/v0.27.md)
45
- [v0.26](docs/changelogs/v0.26.md)
56
- [v0.25](docs/changelogs/v0.25.md)

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.21 AS builder
1+
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.22 AS builder
22

33
ARG TARGETOS TARGETARCH
44

README.md

+21-2
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,24 @@ Official images are published at https://hub.docker.com/r/ipfs/kubo/:
123123

124124
[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/ipfs/kubo?color=blue&label=kubo%20docker%20image&logo=docker&sort=semver&style=flat-square&cacheSeconds=3600)](https://hub.docker.com/r/ipfs/kubo/)
125125

126-
More info on how to run Kubo (go-ipfs) inside Docker can be found [here](https://docs.ipfs.tech/how-to/run-ipfs-inside-docker/).
126+
- 🟢 Releases
127+
- `latest` and `release` tags always point at [the latest stable release](https://github.com/ipfs/kubo/releases/latest)
128+
- `vN.N.N` points at a specific [release tag](https://github.com/ipfs/kubo/releases)
129+
- These are production grade images.
130+
- 🟠 We also provide experimental developer builds
131+
- `master-latest` always points at the `HEAD` of the `master` branch
132+
- `master-YYYY-DD-MM-GITSHA` points at a specific commit from the `master` branch
133+
- These tags are used by developers for internal testing, not intended for end users or production use.
134+
135+
```console
136+
$ docker pull ipfs/kubo:latest
137+
$ docker run --rm -it --net=host ipfs/kubo:latest
138+
```
139+
140+
To [customize your node](https://docs.ipfs.tech/install/run-ipfs-inside-docker/#customizing-your-node),
141+
pass necessary config via `-e` or by mounting scripts in the `/container-init.d`.
142+
143+
Learn more at https://docs.ipfs.tech/install/run-ipfs-inside-docker/
127144

128145
### Official prebuilt binaries
129146

@@ -428,7 +445,9 @@ We ❤️ all [our contributors](docs/AUTHORS); this project wouldn’t be what
428445

429446
This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).
430447

431-
Please reach out to us in one [chat](https://docs.ipfs.tech/community/chat/) rooms.
448+
Members of IPFS community provide Kubo support on [discussion forum category here](https://discuss.ipfs.tech/c/help/help-kubo/23).
449+
450+
Need help with IPFS itself? Learn where to get help and support at https://ipfs.tech/help.
432451

433452
## License
434453

assets/assets.go

+6-18
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ import (
99
"github.com/ipfs/kubo/core/coreapi"
1010

1111
"github.com/ipfs/boxo/files"
12-
"github.com/ipfs/boxo/path"
1312
cid "github.com/ipfs/go-cid"
14-
options "github.com/ipfs/kubo/core/coreiface/options"
1513
)
1614

1715
//go:embed init-doc
@@ -39,30 +37,20 @@ func addAssetList(nd *core.IpfsNode, l []string) (cid.Cid, error) {
3937
return cid.Cid{}, err
4038
}
4139

42-
dirb, err := api.Object().New(nd.Context(), options.Object.Type("unixfs-dir"))
43-
if err != nil {
44-
return cid.Cid{}, err
45-
}
46-
47-
basePath := path.FromCid(dirb.Cid())
40+
dirMap := map[string]files.Node{}
4841

4942
for _, p := range l {
5043
d, err := Asset.ReadFile(p)
5144
if err != nil {
5245
return cid.Cid{}, fmt.Errorf("assets: could load Asset '%s': %s", p, err)
5346
}
5447

55-
fp, err := api.Unixfs().Add(nd.Context(), files.NewBytesFile(d))
56-
if err != nil {
57-
return cid.Cid{}, err
58-
}
59-
60-
fname := gopath.Base(p)
48+
dirMap[gopath.Base(p)] = files.NewBytesFile(d)
49+
}
6150

62-
basePath, err = api.Object().AddLink(nd.Context(), basePath, fname, fp)
63-
if err != nil {
64-
return cid.Cid{}, err
65-
}
51+
basePath, err := api.Unixfs().Add(nd.Context(), files.NewMapDirectory(dirMap))
52+
if err != nil {
53+
return cid.Cid{}, err
6654
}
6755

6856
if err := api.Pin().Add(nd.Context(), basePath); err != nil {

bin/ipns-republish

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ if [ $? -ne 0 ]; then
1919
fi
2020

2121
# check the object is there
22-
ipfs object stat "$1" >/dev/null
22+
ipfs dag stat "$1" >/dev/null
2323
if [ $? -ne 0 ]; then
2424
echo "error: ipfs cannot find $1"
2525
exit 1

client/rpc/api.go

-6
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,6 @@ func (api *HttpApi) Object() iface.ObjectAPI {
227227
return (*ObjectAPI)(api)
228228
}
229229

230-
// nolint deprecated
231-
// Deprecated: use [HttpApi.Routing] instead.
232-
func (api *HttpApi) Dht() iface.DhtAPI {
233-
return (*DhtAPI)(api)
234-
}
235-
236230
func (api *HttpApi) Swarm() iface.SwarmAPI {
237231
return (*SwarmAPI)(api)
238232
}

client/rpc/api_test.go

-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ func (np NodeProvider) MakeAPISwarm(t *testing.T, ctx context.Context, fullIdent
4646
c := n.ReadConfig()
4747
c.Experimental.FilestoreEnabled = true
4848
n.WriteConfig(c)
49-
5049
n.StartDaemon("--enable-pubsub-experiment", "--offline="+strconv.FormatBool(!online))
5150

5251
if online {

client/rpc/dht.go

-33
This file was deleted.

client/rpc/errors.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func parseIPLDErrNotFound(msg string) (error, bool) {
138138

139139
// This is a simple error type that just return msg as Error().
140140
// But that also match ipld.ErrNotFound when called with Is(err).
141-
// That is needed to keep compatiblity with code that use string.Contains(err.Error(), "blockstore: block not found")
141+
// That is needed to keep compatibility with code that use string.Contains(err.Error(), "blockstore: block not found")
142142
// and code using ipld.ErrNotFound.
143143
type blockstoreNotFoundMatchingIPLDErrNotFound struct {
144144
msg string

0 commit comments

Comments
 (0)