Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release: v0.31.0 [skip changelog] #10535

Merged
merged 38 commits into from
Oct 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
f6fb36c
chore: update version (#10491)
lidel Aug 21, 2024
91144f7
Docs fix spelling issues (#10493)
nnsW3 Aug 26, 2024
add45cf
chore: update go-unixfsnode, cmds, and boxo (#10494)
gammazero Aug 28, 2024
175aabd
fix: error during config when running benchmarks (#10495)
gammazero Aug 28, 2024
2260e35
chore: upgrade to go 1.23 (#10486)
lidel Aug 28, 2024
5fe9604
fix(cli): preserve hostname specified with --api in http request head…
gammazero Aug 28, 2024
23ca1dd
fix: switch back to go 1.22 (#10502)
lidel Sep 2, 2024
cc2402c
chore(deps): bump docker/login-action from 3.1.0 to 3.3.0 (#10460)
dependabot[bot] Sep 5, 2024
680d420
docs: replace outdated package paths described in rpc README (#10505)
gammazero Sep 5, 2024
6454bdb
chore: boxo v0.23.0 and go-libp2p v0.36.3 (#10507)
lidel Sep 5, 2024
2b86fa8
Merge branch 'master' into merge-release-v0.30.0
lidel Sep 11, 2024
e384226
Merge pull request #10508 from ipfs/merge-release-v0.30.0
lidel Sep 11, 2024
3799c32
chore: create next changelog (#10510)
lidel Sep 11, 2024
4842d6e
docs: update RELEASE_CHECKLIST.md (#10496)
lidel Sep 11, 2024
b71cf0d
chore: switch back to release @helia/interop (#10516)
lidel Sep 17, 2024
60588af
docs(config): improve profile descriptions (#10517)
lidel Sep 20, 2024
58434ec
docs(config): add useful references
lidel Sep 20, 2024
ce23fc7
feat: ipfs-webui v4.3.2 (#10523)
SgtPooki Sep 24, 2024
43ba17b
chore: clarify dep update in RELEASE_CHECKLIST.md (#10518)
lidel Sep 26, 2024
836d516
docs: clarify Gateway.PublicGateways (#10525)
lidel Sep 26, 2024
ca4f486
refactor: simplify logic for MFS pinning (#10506)
gammazero Sep 27, 2024
9577527
feat(bitswap): allow configuring WithWantHaveReplaceSize (#10512)
gammazero Sep 28, 2024
a178307
Fix issue in ResourceManager and nopfsPlugin about repo path (#10492)
fengzie Sep 29, 2024
22aeb13
fix(core): look for MFS root in local repo only (#8661)
schomatis Oct 3, 2024
a8ecf01
feat: explicit announce-on/off profiles (#10524)
lidel Oct 3, 2024
e1955a8
chore: boxo v0.24.0 and go-libp2p v0.36.4 (#10531)
gammazero Oct 3, 2024
1bc773f
chore: dependency updates for 0.31 (#10511)
lidel Oct 3, 2024
52b0062
feat: pebbleds profile and plugin (#10530)
gammazero Oct 3, 2024
4566741
chore: update changelog and config doc with more info about pebble (…
gammazero Oct 3, 2024
6305932
fix(daemon): webui URL when rpc is catch-all (#10520)
lidel Oct 3, 2024
52ca370
feat(routing/http): support IPIP-484 and streaming (#10534)
lidel Oct 3, 2024
a55215c
chore: bump version to v0.31.0-rc1
gammazero Oct 3, 2024
38ae2e7
chore: go-libp2p v0.36.5 (#10538)
lidel Oct 4, 2024
6b3cd0d
chore: typo
lidel Oct 7, 2024
5985451
fix: go 1.23(.2) (#10540)
lidel Oct 8, 2024
bd9e154
chore: 0.31.0-rc2
lidel Oct 8, 2024
8135adc
update version for release
gammazero Oct 16, 2024
4aebe7f
Add full changelog to release changelog
gammazero Oct 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: 1.22.x
go-version: 1.23.x

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
steps:
- uses: actions/setup-go@v5
with:
go-version: 1.22.x
go-version: 1.23.x
- uses: actions/checkout@v4
- run: docker build -t $IMAGE_NAME:$WIP_IMAGE_TAG .
- run: docker run --rm $IMAGE_NAME:$WIP_IMAGE_TAG --version
2 changes: 1 addition & 1 deletion .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
shell: bash

- name: Log in to Docker Hub
uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/gateway-conformance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: 1.22.x
go-version: 1.23.x
- uses: protocol/cache-go-action@v1
with:
name: ${{ github.job }}
Expand Down Expand Up @@ -136,7 +136,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: 1.22.x
go-version: 1.23.x
- uses: protocol/cache-go-action@v1
with:
name: ${{ github.job }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gobuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
steps:
- uses: actions/setup-go@v5
with:
go-version: 1.22.x
go-version: 1.23.x
- uses: actions/checkout@v4
- run: make cmd/ipfs-try-build
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/golang-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
submodules: recursive
- uses: actions/setup-go@v5
with:
go-version: "1.22.x"
go-version: "1.23.x"
- name: Check that go.mod is tidy
uses: protocol/[email protected]
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/golint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ jobs:
steps:
- uses: actions/setup-go@v5
with:
go-version: 1.22.x
go-version: 1.23.x
- uses: actions/checkout@v4
- run: make -O test_go_lint
2 changes: 1 addition & 1 deletion .github/workflows/gotest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.22.x
go-version: 1.23.x
- name: Check out Kubo
uses: actions/checkout@v4
- name: Install missing tools
Expand Down
22 changes: 2 additions & 20 deletions .github/workflows/interop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
- 'master'

env:
GO_VERSION: 1.22.x
GO_VERSION: 1.23.x

concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event_name == 'push' && github.sha || github.ref }}
Expand Down Expand Up @@ -70,27 +70,9 @@ jobs:
restore-keys: ${{ runner.os }}-${{ github.job }}-helia-
- run: sudo apt update
- run: sudo apt install -y libxkbcommon0 libxdamage1 libgbm1 libpango-1.0-0 libcairo2 # dependencies for playwright

# TODO: for now run against version from https://github.com/ipfs/helia/pull/584
- name: Checkout helia-interop with provisional fix
uses: actions/checkout@v4
with:
repository: ipfs/helia
ref: ab6b385787075ad9932f24362293b3bb82ff1d96
path: helia
- name: Run provisional build of helia
run: npm i && npm run build
working-directory: helia
- name: Run provisional build of helia-interop
run: npm i && npm run build && npx .
working-directory: helia/packages/interop
- run: npx --package @helia/interop helia-interop
env:
KUBO_BINARY: ${{ github.workspace }}/cmd/ipfs/ipfs

# TODO: switch back to release once https://github.com/ipfs/helia/pull/584 ships
#- run: npx --package @helia/interop helia-interop
# env:
# KUBO_BINARY: ${{ github.workspace }}/cmd/ipfs/ipfs
ipfs-webui:
needs: [interop-prep]
runs-on: ${{ fromJSON(github.repository == 'ipfs/kubo' && '["self-hosted", "linux", "x64", "2xlarge"]' || '"ubuntu-latest"') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sharness.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: 1.22.x
go-version: 1.23.x
- name: Checkout Kubo
uses: actions/checkout@v4
with:
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Kubo Changelogs

- [v0.31](docs/changelogs/v0.31.md)
- [v0.30](docs/changelogs/v0.30.md)
- [v0.29](docs/changelogs/v0.29.md)
- [v0.28](docs/changelogs/v0.28.md)
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.22 AS builder
FROM --platform=${BUILDPLATFORM:-linux/amd64} golang:1.23 AS builder

ARG TARGETOS TARGETARCH

Expand Down
46 changes: 25 additions & 21 deletions client/rpc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

> IPFS CoreAPI implementation using HTTP API
This packages implements [`coreiface.CoreAPI`](https://pkg.go.dev/github.com/ipfs/boxo/coreiface#CoreAPI) over the HTTP API.
This package implements [`coreiface.CoreAPI`](https://pkg.go.dev/github.com/ipfs/kubo/core/coreiface#CoreAPI) over the HTTP API.

## Documentation

Expand All @@ -16,29 +16,33 @@ Pin file on your local IPFS node based on its CID:
package main

import (
"context"
"fmt"
"context"
"fmt"

"github.com/ipfs/kubo/client/rpc"
path "github.com/ipfs/boxo/coreiface/path"
"github.com/ipfs/boxo/path"
"github.com/ipfs/go-cid"
"github.com/ipfs/kubo/client/rpc"
)

func main() {
// "Connect" to local node
node, err := rpc.NewLocalApi()
if err != nil {
fmt.Printf(err)
return
}
// Pin a given file by its CID
ctx := context.Background()
cid := "bafkreidtuosuw37f5xmn65b3ksdiikajy7pwjjslzj2lxxz2vc4wdy3zku"
p := path.New(cid)
err = node.Pin().Add(ctx, p)
if err != nil {
fmt.Printf(err)
return
}
return
// "Connect" to local node
node, err := rpc.NewLocalApi()
if err != nil {
fmt.Println(err)
return
}
// Pin a given file by its CID
ctx := context.Background()
c, err := cid.Decode("bafkreidtuosuw37f5xmn65b3ksdiikajy7pwjjslzj2lxxz2vc4wdy3zku")
if err != nil {
fmt.Println(err)
return
}
p := path.FromCid(c)
err = node.Pin().Add(ctx, p)
if err != nil {
fmt.Println(err)
return
}
}
```
33 changes: 29 additions & 4 deletions cmd/ipfs/kubo/daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -586,7 +586,7 @@ take effect.
prometheus.MustRegister(&corehttp.IpfsNodeCollector{Node: node})

// start MFS pinning thread
startPinMFS(daemonConfigPollInterval, cctx, &ipfsPinMFSNode{node})
startPinMFS(cctx, daemonConfigPollInterval, &ipfsPinMFSNode{node})

// The daemon is *finally* ready.
fmt.Printf("Daemon is ready\n")
Expand All @@ -600,8 +600,25 @@ take effect.
fmt.Println("(Hit ctrl-c again to force-shutdown the daemon.)")
}()

// Give the user heads up if daemon running in online mode has no peers after 1 minute
if !offline {
// Warn users who were victims of 'lowprofile' footgun (https://github.com/ipfs/kubo/pull/10524)
if cfg.Experimental.StrategicProviding {
fmt.Print(`
⚠️ Reprovide system is disabled due to 'Experimental.StrategicProviding=true'
⚠️ Local CIDs will not be announced to Amino DHT, making them impossible to retrieve without manual peering
⚠️ If this is not intentional, call 'ipfs config profile apply announce-on'
`)
} else if cfg.Reprovider.Interval.WithDefault(config.DefaultReproviderInterval) == 0 {
fmt.Print(`
⚠️ Reprovider system is disabled due to 'Reprovider.Interval=0'
⚠️ Local CIDs will not be announced to Amino DHT, making them impossible to retrieve without manual peering
⚠️ If this is not intentional, call 'ipfs config profile apply announce-on', or set 'Reprovider.Interval=22h'
`)
}

// Give the user heads up if daemon running in online mode has no peers after 1 minute
time.AfterFunc(1*time.Minute, func() {
cfg, err := cctx.GetConfig()
if err != nil {
Expand Down Expand Up @@ -706,10 +723,18 @@ func serveHTTPApi(req *cmds.Request, cctx *oldcmds.Context) (<-chan error, error
for _, listener := range listeners {
// we might have listened to /tcp/0 - let's see what we are listing on
fmt.Printf("RPC API server listening on %s\n", listener.Multiaddr())
// Browsers require TCP.
// Browsers require TCP with explicit host.
switch listener.Addr().Network() {
case "tcp", "tcp4", "tcp6":
fmt.Printf("WebUI: http://%s/webui\n", listener.Addr())
rpc := listener.Addr().String()
// replace catch-all with explicit localhost URL that works in browsers
// https://github.com/ipfs/kubo/issues/10515
if strings.Contains(rpc, "0.0.0.0:") {
rpc = strings.Replace(rpc, "0.0.0.0:", "127.0.0.1:", 1)
} else if strings.Contains(rpc, "[::]:") {
rpc = strings.Replace(rpc, "[::]:", "[::1]:", 1)
}
fmt.Printf("WebUI: http://%s/webui\n", rpc)
}
}

Expand Down
Loading
Loading