Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
463e0c2
chore: start v0.43.0 dev cycle
lidel May 27, 2026
15e8ff9
chore(deps): bump p2p-forge to 0.9.0 (#11336)
dependabot[bot] May 28, 2026
fbea699
feat: derive AgentSuffix from build origin (#11341)
lidel Jun 2, 2026
26d5ee1
fix(libp2p): quieter dead-listener check (#11342)
lidel Jun 5, 2026
f07f093
chore: go 1.26.4 (#11350)
lidel Jun 5, 2026
dcaa850
fix: bound ipns caching and validate lifetimes (#11349)
lidel Jun 8, 2026
a0be582
fix: avoid redundant cidset in dag stat (#11353)
lidel Jun 8, 2026
d37307a
feat(libp2p): warn when behind CGNAT (#11352)
lidel Jun 8, 2026
8bb2e13
Merge branch 'master' into merge-release-v0.42.0
lidel Jun 8, 2026
8525f42
Merge pull request #11357 from ipfs/merge-release-v0.42.0
lidel Jun 8, 2026
f3c8d04
chore: upgrade to boxo v0.41.0 (#11356)
gammazero Jun 8, 2026
81ac852
upgrade opentelemetry otelhttp and autoprop (#11360)
gammazero Jun 9, 2026
2d9c715
chore(deps): bump github.com/tidwall/gjson from 1.18.0 to 1.19.0 (#11…
dependabot[bot] Jun 9, 2026
0e0086a
upgrade to go-ds-pebble v0.5.12 (#11361)
gammazero Jun 9, 2026
97d7976
docs: clarify optimistic provide is default-on (#11363)
lidel Jun 16, 2026
258def4
chore(deps): bump codecov/codecov-action from 6.0.1 to 7.0.0 (#11362)
dependabot[bot] Jun 18, 2026
f0af201
chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 in the go…
dependabot[bot] Jun 19, 2026
ceefb9d
fix: return error instead of log.Fatal in HolePunching (#11365)
reflecttypefor Jun 21, 2026
433b302
chore: bump p2p-forge to v0.9.1 (#11368)
lidel Jun 22, 2026
84f5f30
fix(config): protect and derive PeerID during JSON replace (#11344)
morning-verlu Jun 24, 2026
d3c454e
chore(deps): bump actions/checkout from 6 to 7 (#11371)
dependabot[bot] Jun 25, 2026
48828b0
chore(deps): bump actions/cache from 5 to 6 (#11370)
dependabot[bot] Jun 25, 2026
d8d0df6
test: cover ipfs get paths containing closing bracket (#11359)
purusachdeva Jun 30, 2026
e15b15b
fix(daemon): return config errors instead of calling log.Fatal (#11373)
blackflytech Jul 1, 2026
baf6a13
docs(changelog): merge startup config entries (#11376)
lidel Jul 1, 2026
097306c
feat: make telemetry opt-in (#11374)
lidel Jul 1, 2026
e14131d
Fix check for opt-in and opt-out messages (#11383)
gammazero Jul 2, 2026
4c227f0
feat(cli): accept native ipfs:// and ipns:// URIs (#11375)
lidel Jul 2, 2026
916f7fb
chore(deps): bump go-libp2p-kad-dht to v0.41.0 (#11377)
lidel Jul 2, 2026
4c30fcf
chore(deps): bump the golang-x group across 1 directory with 5 update…
dependabot[bot] Jul 2, 2026
88fbd67
fix(mfs): stop repo gc from freezing files ops (#11386)
lidel Jul 7, 2026
0478248
fix(key): restore secp256k1 keygen and add PEM PKCS8 import/export (#…
Adel-Ayoub Jul 7, 2026
fb5bbe7
docs: clarify open vs NoFetch gateway recipes (#11382)
lidel Jul 9, 2026
9954300
chore(deps): bump go-libp2p and go-libp2p-pubsub (#11389)
lidel Jul 9, 2026
4b470d3
upgrade go-libp2p-pubsub to v0.17.0 (#11391)
gammazero Jul 10, 2026
0546d2e
update dependencies (#11392)
gammazero Jul 10, 2026
9ad9c36
chore(deps): bump actions/setup-node from 6 to 7 (#11393)
dependabot[bot] Jul 15, 2026
affb148
chore: update webui to v4.13.0 (#11396)
lidel Jul 16, 2026
4d21088
fix: update go-test module (#11390)
gammazero Jul 17, 2026
d07245b
feat(autotls): skip issuance when broker is down (#11397)
lidel Jul 17, 2026
cbcfdd9
chore: bump go-libp2p-kad-dht to v0.42 (#11398)
guillaumemichel Jul 21, 2026
efa9004
chore: upgrade to boxo v0.42.0 (#11399)
gammazero Jul 22, 2026
ad6c520
docs: add contribution and stability guardrails
lidel Jul 22, 2026
f4f58ea
chore: go 1.26.5 and deps (#11400)
lidel Jul 22, 2026
322d943
chore: set version to v0.43.0-rc1
lidel Jul 22, 2026
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 @@ -29,7 +29,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Setup Go
uses: actions/setup-go@v6
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependabot-tidy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
echo "number=$pr_number" >> $GITHUB_OUTPUT
branch=$(gh pr view "$pr_number" --repo "${{ github.repository }}" --json headRefName -q '.headRefName')
echo "branch=$branch" >> $GITHUB_OUTPUT
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
ref: ${{ steps.pr.outputs.branch }}
token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docker-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: hadolint/hadolint-action@v3.3.0
with:
dockerfile: Dockerfile
Expand Down Expand Up @@ -55,7 +55,7 @@ jobs:
run:
shell: bash
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
tags: ${{ steps.tags.outputs.value }}
steps:
- name: Check out the repo
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Set up QEMU
uses: docker/setup-qemu-action@v4
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 @@ -47,7 +47,7 @@ jobs:

# 2. Build the kubo-gateway
- name: Checkout kubo-gateway
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
path: kubo-gateway
- name: Setup Go
Expand Down Expand Up @@ -133,7 +133,7 @@ jobs:

# 2. Build the kubo-gateway
- name: Checkout kubo-gateway
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
path: kubo-gateway
- name: Setup Go
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gobuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
run:
shell: bash
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
go-version-file: 'go.mod'
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 @@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
submodules: recursive
- uses: actions/setup-go@v6
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/golint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
run:
shell: bash
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
go-version-file: 'go.mod'
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/gotest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
shell: bash
steps:
- name: Check out Kubo
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v6
with:
Expand All @@ -43,7 +43,7 @@ jobs:
make test_unit &&
[[ ! $(jq -s -c 'map(select(.Action == "fail")) | .[]' test/unit/gotest.json) ]]
- name: Upload coverage to Codecov
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
if: failure() || success()
with:
name: unittests
Expand Down Expand Up @@ -102,7 +102,7 @@ jobs:
shell: bash
steps:
- name: Check out Kubo
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v6
with:
Expand Down Expand Up @@ -171,7 +171,7 @@ jobs:
shell: bash
steps:
- name: Check out Kubo
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v6
with:
Expand Down Expand Up @@ -214,7 +214,7 @@ jobs:
shell: bash
steps:
- name: Check out Kubo
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v6
with:
Expand Down
68 changes: 46 additions & 22 deletions .github/workflows/interop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
run:
shell: bash
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
go-version-file: 'go.mod'
Expand All @@ -63,7 +63,7 @@ jobs:
run:
shell: bash
steps:
- uses: actions/setup-node@v6
- uses: actions/setup-node@v7
with:
node-version: lts/*
- uses: actions/download-artifact@v8
Expand All @@ -80,30 +80,54 @@ jobs:
id: helia-version
run: echo "version=$(npm view @helia/interop version)" >> $GITHUB_OUTPUT
- name: Cache helia-interop node_modules
uses: actions/cache@v5
uses: actions/cache@v6
id: helia-cache
with:
path: node_modules
key: ${{ runner.os }}-helia-interop-${{ steps.helia-version.outputs.version }}
- name: Install @helia/interop
if: steps.helia-cache.outputs.cache-hit != 'true'
run: npm install @helia/interop
# TODO(IPIP-499): Remove --grep --invert workaround once helia implements IPIP-499
# Tracking issue: https://github.com/ipfs/helia/issues/941
# Recurring @helia/interop regression: the published .aegir.js is unusable
# from inside node_modules, in one of two ways.
#
# PROVISIONAL HACK: Skip '@helia/mfs - should have the same CID after
# creating a file' test due to IPIP-499 changes in kubo.
# 1. Missing: the package ships without .aegir.js in its "files", so
# `aegir test` has no config and discovers no spec files. Happened around
# ipfs/helia#1001 (fixed by ipfs/helia#1003), and again in ipfs/helia#1049
# ("feat!: make libp2p optional"), which dropped it from 11.0.0-11.0.2.
# 2. Present but broken: the shipped config globs the TypeScript sources
# (./src/*.spec.ts), written for running tests inside the helia monorepo.
# Node refuses to type-strip .ts files under node_modules
# (ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING, no tsconfig is shipped),
# so mocha dies on the first spec. This is what ipfs/helia#1066 restored
# in 11.0.3.
#
# WHY IT FAILS: The test creates a 5-byte file in MFS on both kubo and helia,
# then compares the root directory CID. With kubo PR #11148, `ipfs files write`
# now produces raw CIDs for single-block files (matching `ipfs add --raw-leaves`),
# while helia uses `reduceSingleLeafToSelf: false` which keeps the dag-pb wrapper.
# Different file CIDs lead to different directory CIDs.
#
# We run aegir directly (instead of helia-interop binary) because only aegir
# supports the --grep/--invert flags needed to exclude specific tests.
- name: Run helia-interop tests (excluding IPIP-499 incompatible test)
run: npx aegir test -t node --bail -- --grep 'should have the same CID after creating a file' --invert
# In both cases we write a minimal config pointing at the prebuilt
# ./dist/src, which is all a `-t node` run needs; the rest of helia's own
# config is browser-only setup skipped under node. A shipped config that
# does not glob .ts files is left untouched, so this step self-heals once
# helia publishes a node_modules-safe config. It writes into node_modules
# and is fragile if helia's dist layout shifts.
- name: Work around unusable @helia/interop/.aegir.js (ipfs/helia#1049, ipfs/helia#1066)
run: |
config=node_modules/@helia/interop/.aegir.js
if [ ! -f "$config" ]; then
echo "export default { test: { files: './dist/src/*.spec.js' } }" > "$config"
echo "injected minimal $config: file missing from published package"
elif grep -qE "files:.*\.spec\.ts" "$config"; then
echo "export default { test: { files: './dist/src/*.spec.js' } }" > "$config"
echo "replaced $config: shipped config globs .ts sources, which node cannot run from node_modules"
else
echo "$config is usable as shipped, no workaround needed"
fi
# We run aegir directly (instead of the helia-interop binary) because the
# bin spawns a bare `aegir test` with no way to pass the flags below.
# --exit: the node interop specs spawn kubo daemons (via ipfsd-ctl +
# KUBO_BINARY) whose libp2p/RPC handles keep Node's event loop alive after
# the run, so mocha prints its summary and then hangs until the job timeout.
# Force exit once the run completes.
- name: Run helia-interop tests
run: npx aegir test -t node --bail -- --exit
env:
KUBO_BINARY: ${{ github.workspace }}/cmd/ipfs/ipfs
working-directory: node_modules/@helia/interop
Expand All @@ -127,11 +151,11 @@ jobs:
name: kubo
path: cmd/ipfs
- run: chmod +x cmd/ipfs/ipfs
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
repository: ipfs/ipfs-webui
path: ipfs-webui
- uses: actions/setup-node@v6
- uses: actions/setup-node@v7
with:
node-version-file: 'ipfs-webui/.tool-versions'
- id: webui-ref
Expand All @@ -146,7 +170,7 @@ jobs:
run: gh api "$ENDPOINT" --jq "$SELECTOR" | xargs -I{} echo "$KEY={}" | tee -a $GITHUB_OUTPUT
# Cache node_modules based on package-lock.json
- name: Cache node_modules
uses: actions/cache@v5
uses: actions/cache@v6
id: node-modules-cache
with:
path: ipfs-webui/node_modules
Expand All @@ -159,7 +183,7 @@ jobs:
working-directory: ipfs-webui
# Cache Playwright browsers
- name: Cache Playwright browsers
uses: actions/cache@v5
uses: actions/cache@v6
id: playwright-cache
with:
path: ~/.cache/ms-playwright
Expand All @@ -178,7 +202,7 @@ jobs:
working-directory: ipfs-webui
# Cache test build output
- name: Cache test build
uses: actions/cache@v5
uses: actions/cache@v6
id: test-build-cache
with:
path: ipfs-webui/build
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/sharness.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
shell: bash
steps:
- name: Checkout Kubo
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
path: kubo
- name: Setup Go
Expand All @@ -32,7 +32,7 @@ jobs:
go-version-file: 'kubo/go.mod'
- name: Install missing tools
run: sudo apt update && sudo apt install -y socat net-tools fish libxml2-utils
- uses: actions/cache@v5
- uses: actions/cache@v6
with:
path: test/sharness/lib/dependencies
key: ${{ runner.os }}-test-generate-junit-html-${{ hashFiles('test/sharness/lib/test-generate-junit-html.sh') }}
Expand All @@ -55,7 +55,7 @@ jobs:
# increasing parallelism beyond 10 doesn't speed up the tests much
PARALLEL: ${{ github.repository == 'ipfs/kubo' && 10 || 3 }}
- name: Upload coverage report
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
if: failure() || success()
with:
name: sharness
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync-release-assets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- uses: ipfs/start-ipfs-daemon-action@v1
with:
args: --init --init-profile=flatfs,server --enable-gc=false
- uses: actions/setup-node@v6
- uses: actions/setup-node@v7
with:
node-version: 14
- name: Sync the latest 5 github releases
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-migrations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
shell: bash
steps:
- name: Check out Kubo
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Set up Go
uses: actions/setup-go@v6
Expand Down
Loading
Loading