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.30.0 [skip changelog] #10490

Merged
merged 56 commits into from
Sep 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
a617c52
libp2p: default to preffering TLS
Jorropo Nov 22, 2023
23ca62a
fix: Unix domain socket maddrs used with `NewApi`
djdv Jul 14, 2023
97e5e6b
chore: update version
hacdias May 27, 2024
2fdb997
chore: fix some typos (#10396)
looklose Jun 3, 2024
40cf630
fix(libp2p): streams config validation in resource manager (#10435)
EnchanterIO Jun 3, 2024
a07852a
fix(cli): unify --name param in ls and add (#10439)
lidel Jun 6, 2024
49c2422
Merge branch 'master' into merge-release-v0.29.0
lidel Jun 10, 2024
4edb87b
Merge pull request #10442 from ipfs/merge-release-v0.29.0
lidel Jun 10, 2024
c9bab01
chore: create next changelog (#10443)
lidel Jun 10, 2024
144e97c
docsa: update RELEASE_CHECKLIST.md
lidel Jun 10, 2024
121c602
chore: go-libp2p 0.35.1 (#10430)
MarcoPolo Jun 14, 2024
e9fbc28
chore: gateway-conformance v6 (#10441)
lidel Jun 18, 2024
f08d585
chore: update deps incl. boxo v0.21.0 (#10444)
lidel Jun 21, 2024
de87573
docs: update ipfs-swarm-key-gen example (#10453)
gabemeola Jun 21, 2024
11bfb3c
docs: "error mounting: could not resolve name" (#10449)
swedneck Jun 21, 2024
ddfd776
docs: clarify pnet limitations
lidel Jun 24, 2024
225dbe6
feat: periodic version check and json config (#10438)
Matrix89 Jul 24, 2024
749a61b
chore: update dependencies (#10462)(#10466)
lidel Jul 30, 2024
c2bdd61
Documented unofficial Ubuntu PPA
twdragon Aug 2, 2024
feef085
feat: go-libp2p 0.36 and /webrtc-direct listener (#10463)
lidel Aug 6, 2024
ffab7b2
feat: run AutoNAT V2 service in addition to V1 (#10468)
lidel Aug 6, 2024
fc31f9c
chore: boxo v0.22.0 (#10469)
lidel Aug 6, 2024
9986f7f
Merge branch 'master' into twdragon-ppa
gammazero Aug 7, 2024
84389e8
Merge pull request #10467 from twdragon/twdragon-ppa
gammazero Aug 7, 2024
5c91fe6
Merge branch 'master' into tls-by-default
gammazero Aug 7, 2024
9cc64ef
Update comment
gammazero Aug 7, 2024
a4a05a1
Merge pull request #10227 from ipfs/tls-by-default
gammazero Aug 7, 2024
7500922
docs(readme): add Gentoo Linux (#10474)
vitaly-zdanevich Aug 12, 2024
91ae982
feat: webui v4.3.0 (#10477)
lidel Aug 12, 2024
a339e6e
fix(daemon): panic in kubo/daemon.go:595 (#10473)
lidel Aug 12, 2024
0d42831
feat(daemon): improve stdout on startup (#10472)
lidel Aug 14, 2024
34008b6
chore(daemon): sort listeners (#10480)
lidel Aug 19, 2024
c8007dd
fix: go-libp2p v0.36.2 (#10483)
lidel Aug 19, 2024
893a948
Add unit test for rpc over unix socket
gammazero Aug 20, 2024
56abfc4
Merge branch 'master' into uds-client
gammazero Aug 20, 2024
a5f4d0b
Cleanup commented imports
gammazero Aug 20, 2024
fdfd2bc
docs: document rpc over unix socket
lidel Aug 20, 2024
85ab35d
docs: improve style
lidel Aug 20, 2024
c5b0428
Merge pull request #10019 from djdv/uds-client
gammazero Aug 20, 2024
263edb2
feat: Support storing UnixFS 1.5 Mode and ModTime (#10478)
gammazero Aug 21, 2024
d3c20b0
chore: fix function name (#10481)
shenpengfeng Aug 21, 2024
afe3ae0
chore(deps): bump docker/build-push-action from 5 to 6 (#10451)
dependabot[bot] Aug 21, 2024
3308185
chore: update go-ipfs-cmds and boxo (#10485)
lidel Aug 21, 2024
ca95b63
chore: go-libp2p-kad-dht v0.26.1 (#10488)
lidel Aug 21, 2024
49f9cc9
chore: update version
lidel Aug 21, 2024
483e9c3
chore: update version to rc-2
lidel Aug 28, 2024
f0d2c99
fix: error during config when running benchmarks (#10495)
gammazero Aug 28, 2024
2b245e0
chore: upgrade to go 1.23 (#10486)
lidel Aug 28, 2024
3bb09f8
fix(cli): preserve hostname specified with --api in http request head…
gammazero Aug 28, 2024
467fc69
chore: update go-unixfsnode, cmds, and boxo (#10494)
gammazero Aug 28, 2024
b50e029
fix: switch back to go 1.22 (#10502)
lidel Sep 2, 2024
c228935
chore: boxo v0.23.0 and go-libp2p v0.36.3 (#10507)
lidel Sep 5, 2024
2b1af8d
chore: bump CurrentVersionNumber
lidel Sep 5, 2024
89df952
chore: set version to 0.30.0
lidel Sep 11, 2024
b0812d8
docs: changelog and contributors
lidel Sep 11, 2024
aa355da
docs: changelog cleanup
lidel Sep 11, 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
8 changes: 4 additions & 4 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
# builds, only one platform is being loaded into the cache. This would
# prevent us from testing the other platforms.
- name: Build Docker image (linux/amd64)
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
platforms: linux/amd64
context: .
Expand All @@ -84,7 +84,7 @@ jobs:
cache-to: type=local,dest=/tmp/.buildx-cache-new

- name: Build Docker image (linux/arm/v7)
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
platforms: linux/arm/v7
context: .
Expand All @@ -96,7 +96,7 @@ jobs:
cache-to: type=local,dest=/tmp/.buildx-cache-new

- name: Build Docker image (linux/arm64/v8)
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
platforms: linux/arm64/v8
context: .
Expand All @@ -116,7 +116,7 @@ jobs:
# This will only push the previously built images.
- if: github.event_name != 'workflow_dispatch' || github.event.inputs.push == 'true'
name: Publish to Docker Hub
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
context: .
Expand Down
17 changes: 8 additions & 9 deletions .github/workflows/gateway-conformance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
steps:
# 1. Download the gateway-conformance fixtures
- name: Download gateway-conformance fixtures
uses: ipfs/gateway-conformance/.github/actions/extract-fixtures@v0.5
uses: ipfs/gateway-conformance/.github/actions/extract-fixtures@v0.6
with:
output: fixtures

Expand Down Expand Up @@ -84,9 +84,7 @@ jobs:

# Import dnslink records
# the IPFS_NS_MAP env will be used by the daemon
export IPFS_NS_MAP=$(cat "./fixtures/dnslinks.json" | jq -r '.subdomains | to_entries | map("\(.key).example.com:\(.value)") | join(",")')
export IPFS_NS_MAP="$(cat "./fixtures/dnslinks.json" | jq -r '.domains | to_entries | map("\(.key):\(.value)") | join(",")'),${IPFS_NS_MAP}"
echo "IPFS_NS_MAP=${IPFS_NS_MAP}" >> $GITHUB_ENV
echo "IPFS_NS_MAP=$(cat ./fixtures/dnslinks.IPFS_NS_MAP)" >> $GITHUB_ENV

# 5. Start the kubo-gateway
- name: Start kubo-gateway
Expand All @@ -96,14 +94,15 @@ jobs:

# 6. Run the gateway-conformance tests
- name: Run gateway-conformance tests
uses: ipfs/gateway-conformance/.github/actions/test@v0.5
uses: ipfs/gateway-conformance/.github/actions/test@v0.6
with:
gateway-url: http://127.0.0.1:8080
subdomain-url: http://localhost:8080
args: -skip 'TestGatewayCar/GET_response_for_application/vnd.ipld.car/Header_Content-Length'
json: output.json
xml: output.xml
html: output.html
markdown: output.md
args: -skip 'TestGatewayCar/GET_response_for_application/vnd.ipld.car/Header_Content-Length'

# 7. Upload the results
- name: Upload MD summary
Expand All @@ -129,7 +128,7 @@ jobs:
steps:
# 1. Download the gateway-conformance fixtures
- name: Download gateway-conformance fixtures
uses: ipfs/gateway-conformance/.github/actions/extract-fixtures@v0.5
uses: ipfs/gateway-conformance/.github/actions/extract-fixtures@v0.6
with:
output: fixtures

Expand Down Expand Up @@ -202,14 +201,14 @@ jobs:

# 9. Run the gateway-conformance tests over libp2p
- name: Run gateway-conformance tests over libp2p
uses: ipfs/gateway-conformance/.github/actions/test@v0.5
uses: ipfs/gateway-conformance/.github/actions/test@v0.6
with:
gateway-url: http://127.0.0.1:8092
args: --specs "trustless-gateway,-trustless-ipns-gateway" -skip 'TestGatewayCar/GET_response_for_application/vnd.ipld.car/Header_Content-Length'
json: output.json
xml: output.xml
html: output.html
markdown: output.md
args: --specs "trustless-gateway,-trustless-ipns-gateway" -skip 'TestGatewayCar/GET_response_for_application/vnd.ipld.car/Header_Content-Length'

# 10. Upload the results
- name: Upload MD summary
Expand Down
20 changes: 19 additions & 1 deletion .github/workflows/build.yml → .github/workflows/interop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,27 @@ 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
- run: npx --package @helia/interop helia-interop

# 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
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
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.30](docs/changelogs/v0.30.md)
- [v0.29](docs/changelogs/v0.29.md)
- [v0.28](docs/changelogs/v0.28.md)
- [v0.27](docs/changelogs/v0.27.md)
Expand Down
47 changes: 44 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,13 @@ Before opening an issue, consider using one of the following locations to ensure
- [Downloading builds using IPFS](#downloading-builds-using-ipfs)
- [Unofficial Linux packages](#unofficial-linux-packages)
- [ArchLinux](#arch-linux)
- [Gentoo Linux](#gentoo-linux)
- [Nix](#nix)
- [Solus](#solus)
- [openSUSE](#opensuse)
- [Guix](#guix)
- [Snap](#snap)
- [Ubuntu PPA](#ubuntu-ppa)
- [Unofficial Windows packages](#unofficial-windows-packages)
- [Chocolatey](#chocolatey)
- [Scoop](#scoop)
Expand Down Expand Up @@ -198,11 +200,13 @@ $ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_windows-amd64.zip
</a>

- [ArchLinux](#arch-linux)
- [Gentoo Linux](#gentoo-linux)
- [Nix](#nix-linux)
- [Solus](#solus)
- [openSUSE](#opensuse)
- [Guix](#guix)
- [Snap](#snap)
- [Ubuntu PPA](#ubuntu-ppa)

#### Arch Linux

Expand All @@ -214,6 +218,16 @@ $ ipfs get /ipns/dist.ipfs.tech/kubo/$VERSION/kubo_$VERSION_windows-amd64.zip

[![kubo-git via AUR](https://img.shields.io/static/v1?label=kubo-git&message=latest%40master&color=1793d1&logo=arch-linux&style=flat-square&cacheSeconds=3600)](https://aur.archlinux.org/packages/kubo/)

#### <a name="gentoo-linux">Gentoo Linux</a>

https://wiki.gentoo.org/wiki/Kubo

```bash
# emerge -a net-p2p/kubo
```

https://packages.gentoo.org/packages/net-p2p/kubo

#### <a name="nix-linux">Nix</a>

With the purely functional package manager [Nix](https://nixos.org/nix/) you can install kubo (go-ipfs) like this:
Expand Down Expand Up @@ -246,6 +260,31 @@ You can also install it through the Solus software center.

No longer supported, see rationale in [kubo#8688](https://github.com/ipfs/kubo/issues/8688).

#### Ubuntu PPA

[PPA homepage](https://launchpad.net/~twdragon/+archive/ubuntu/ipfs) on Launchpad.

##### Latest Ubuntu (>= 20.04 LTS)
```sh
sudo add-apt-repository ppa:twdragon/ipfs
sudo apt update
sudo apt install ipfs-kubo
```

##### Any Ubuntu version

```sh
sudo su
echo 'deb https://ppa.launchpadcontent.net/twdragon/ipfs/ubuntu <<DISTRO>> main' >> /etc/apt/sources.list.d/ipfs
echo 'deb-src https://ppa.launchpadcontent.net/twdragon/ipfs/ubuntu <<DISTRO>> main' >> /etc/apt/sources.list.d/ipfs
exit
sudo apt update
sudo apt install ipfs-kubo
```
where `<<DISTRO>>` is the codename of your Ubuntu distribution (for example, `jammy` for 22.04 LTS). During the first installation the package maintenance script may automatically ask you about which networking profile, CPU accounting model, and/or existing node configuration file you want to use.

**NOTE**: this method also may work with any compatible Debian-based distro which has `libc6` inside, and APT as a package manager.

### Unofficial Windows packages

- [Chocolatey](#chocolatey)
Expand Down Expand Up @@ -432,9 +471,11 @@ If you make changes to the protocol buffers, you will need to install the [proto
Find more documentation for developers on [docs](./docs)

## Maintainer Info
* [Project Board for active and upcoming work](https://pl-strflt.notion.site/Kubo-GitHub-Project-Board-c68f9192e48e4e9eba185fa697bf0570)
* [Release Process](https://pl-strflt.notion.site/Kubo-Release-Process-5a5d066264704009a28a79cff93062c4)
* [Additional PL EngRes Kubo maintainer info](https://pl-strflt.notion.site/Kubo-go-ipfs-4a484aeeaa974dcf918027c300426c05)

Kubo is maintained by [Shipyard](https://ipshipyard.com/).

* This repository is part of [Shipyard's GO Triage triage](https://ipshipyard.notion.site/IPFS-Go-Triage-Boxo-Kubo-Rainbow-0ddee6b7f28d412da7dabe4f9107c29a).
* [Release Process](https://ipshipyard.notion.site/Kubo-Release-Process-6dba4f5755c9458ab5685eeb28173778)


## Contributing
Expand Down
2 changes: 1 addition & 1 deletion Rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ help:
@echo ' build - Build binary at ./cmd/ipfs/ipfs'
@echo ' nofuse - Build binary with no fuse support'
@echo ' install - Build binary and install into $$GOBIN'
@echo ' mod_tidy - Remove unused dependencis from go.mod files'
@echo ' mod_tidy - Remove unused dependencies from go.mod files'
# @echo ' dist_install - TODO: c.f. ./cmd/ipfs/dist/README.md'
@echo ''
@echo 'CLEANING TARGETS:'
Expand Down
27 changes: 23 additions & 4 deletions client/rpc/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"encoding/json"
"errors"
"fmt"
"net"
"net/http"
"os"
"path/filepath"
Expand Down Expand Up @@ -98,11 +99,29 @@ func ApiAddr(ipfspath string) (ma.Multiaddr, error) {

// NewApi constructs HttpApi with specified endpoint.
func NewApi(a ma.Multiaddr) (*HttpApi, error) {
transport := &http.Transport{
Proxy: http.ProxyFromEnvironment,
DisableKeepAlives: true,
}

network, address, err := manet.DialArgs(a)
if err != nil {
return nil, err
}
if network == "unix" {
transport.DialContext = func(_ context.Context, _, _ string) (net.Conn, error) {
return net.Dial("unix", address)
}
c := &http.Client{
Transport: transport,
}
// This will create an API client which
// makes requests to `http://unix`.
return NewURLApiWithClient(network, c)
}

c := &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyFromEnvironment,
DisableKeepAlives: true,
},
Transport: transport,
}

return NewApiWithClient(a, c)
Expand Down
Loading
Loading