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.4.23 #6836

Closed
wants to merge 37 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
77298e1
build: fix build when we don't have a full git tree
Stebalien Sep 4, 2019
6131b7f
fix: close peerstore on stop
Stebalien Sep 6, 2019
71133b6
make: move all test deps to a separate module
Stebalien Sep 11, 2019
721c1ab
build: fix golangci again
Stebalien Sep 12, 2019
36c0cbf
namesys: set the correct cache TTL on publish
Stebalien Sep 23, 2019
c69e347
pin: fix pin update X Y where X==Y
Stebalien Sep 23, 2019
456137b
fix(pin): wait till after fetching to remove direct pin
Stebalien Oct 8, 2019
6ded0ba
fix bug 6748
Nov 8, 2019
745708b
fix(coreapi/add): close the fake repo used when adding with hash-only
Stebalien Nov 4, 2019
9aa2f07
fix issue 6760, adding with hash-only, high CPU usage.
Nov 15, 2019
455e498
fix: limit SW registration to content root
lidel Dec 17, 2019
d87686b
fix: update bbloom to fix race conditions
Stebalien Jan 17, 2020
15cdea8
chore(dep): update xerrors to fix go 1.13 build error
Stebalien Jan 17, 2020
85f0125
chore(dep): update go-cid/go-multihash
Stebalien Jan 17, 2020
5bbf20d
test: handle id -> identity rename
Stebalien Aug 23, 2019
cef8c3c
test: handle murmur3 rename
Stebalien Aug 24, 2019
557c627
chore(dep): update libp2p deps
Stebalien Jan 17, 2020
1045a31
fix: use pre-defined relays for autorelay
Stebalien Jan 17, 2020
f54016b
chore(dep): update go-bitswap
Stebalien Jan 17, 2020
7591a8d
ci: use executors
Stebalien Aug 13, 2019
c9adad2
ci: spit out junit reports from the interop tests
Stebalien Aug 15, 2019
2ea07b6
ci: send interop results to stdout and junit
Stebalien Aug 15, 2019
5a16869
ci: parallelize interop tests
Stebalien Aug 15, 2019
e8a64c9
test(interop): allow weak keys
Stebalien Dec 4, 2019
eb2ed1c
test(interop): explicitly install http client
Stebalien Dec 5, 2019
d0a6b37
ci: wait 30 seconds for the api tests daemon to start
Stebalien Dec 10, 2019
2155b73
test: E2E tests against ipfs-webui HEAD
lidel Jan 15, 2020
b54bdf3
test(ci): update node for webui tests
Stebalien Jan 17, 2020
b7af017
test(ci): use go 1.13 for api tests
Stebalien Jan 17, 2020
c81bcc0
release: bump to v0.4.23
Stebalien Jan 17, 2020
b2777ee
feat: webui 2.7.2
hacdias Dec 4, 2019
a932ab1
chore(dep): update go-libp2p-kad-dht
Stebalien Jan 21, 2020
e493390
Merge pull request #6844 from ipfs/chore/webui-2.7.2
Stebalien Jan 21, 2020
c0cd452
release: bump to v0.4.23-rc2
Stebalien Jan 21, 2020
29400bc
chore(dep): update go-libp2p-swarm
Stebalien Jan 28, 2020
6ce9a35
release: bump to v0.4.23
Stebalien Jan 30, 2020
8f80730
doc(changelog): release notes for 0.4.23
Stebalien Jan 30, 2020
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
161 changes: 115 additions & 46 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
version: 2.0
version: 2.1

aliases:
make_out_dirs: &make_out_dirs
run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_WORKSPACE $CIRCLE_TEST_REPORTS/{unit,sharness}
run: mkdir -p /tmp/circleci-artifacts /tmp/circleci-workspace /tmp/circleci-test-results/{unit,sharness}
restore_gomod: &restore_gomod
restore_cache:
keys:
Expand All @@ -17,28 +17,50 @@ aliases:
- ~/go/pkg/mod
- ~/.cache/go-build/

default_environment: &default_environment
SERVICE: circle-ci
TRAVIS: 1
CIRCLE: 1
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
GIT_PAGER: cat

defaults: &defaults
working_directory: ~/ipfs/go-ipfs
environment:
GIT_PAGER: cat
GO111MODULE: "on"
TEST_NO_DOCKER: 1
TEST_NO_FUSE: 1
GOPATH: /home/circleci/go
CIRCLE_TEST_REPORTS: /tmp/circleci-test-results
CIRCLE: 1
SERVICE: circle-ci
CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
CIRCLE_WORKSPACE: /tmp/circleci-workspace
TEST_VERBOSE: 1
TRAVIS: 1
executors:
golang:
parameters:
tag:
type: string
default: "1.12"
docker:
- image: circleci/golang:<< parameters.tag >>
working_directory: ~/ipfs/go-ipfs
environment:
<<: *default_environment
GO111MODULE: "on"
TEST_NO_DOCKER: 1
TEST_NO_FUSE: 1
GOPATH: /home/circleci/go
TEST_VERBOSE: 1
node:
docker:
- image: circleci/node:10
working_directory: ~/ipfs/go-ipfs
environment:
<<: *default_environment
node-browsers:
docker:
- image: circleci/node:12-browsers
working_directory: ~/ipfs/go-ipfs
environment:
<<: *default_environment
NO_SANDBOX: true
IPFS_REUSEPORT: false
LIBP2P_ALLOW_WEAK_RSA_KEYS: 1
E2E_IPFSD_TYPE: go

jobs:
gobuild:
docker:
- image: circleci/golang:1.12
<<: *defaults
executor: golang
steps:
- checkout
- *make_out_dirs
Expand All @@ -53,9 +75,7 @@ jobs:
TEST_NO_FUSE: 1
- *store_gomod
golint:
<<: *defaults
docker:
- image: circleci/golang:1.12
executor: golang
steps:
- checkout
- *make_out_dirs
Expand All @@ -64,9 +84,7 @@ jobs:
make -O test_go_lint
- *store_gomod
gotest:
docker:
- image: circleci/golang:1.12
<<: *defaults
executor: golang
steps:
- checkout
- *make_out_dirs
Expand All @@ -93,9 +111,7 @@ jobs:
- store_artifacts:
path: /tmp/circleci-test-results
sharness:
docker:
- image: circleci/golang:1.12
<<: *defaults
executor: golang
steps:
- run: sudo apt install socat
- checkout
Expand All @@ -122,9 +138,7 @@ jobs:
- store_artifacts:
path: /tmp/circleci-test-results
build:
docker:
- image: circleci/golang:1.12
<<: *defaults
executor: golang
steps:
- checkout
- *make_out_dirs
Expand All @@ -143,9 +157,8 @@ jobs:
- bin/ipfs
- *store_gomod
interop:
docker:
- image: circleci/node:10
<<: *defaults
executor: node
parallelism: 4
steps:
- *make_out_dirs
- attach_workspace:
Expand All @@ -160,23 +173,43 @@ jobs:
- v1-interop-{{ checksum "~/ipfs/go-ipfs/interop/package-lock.json" }}
- v1-interop-
- run:
command: npm install
name: Installing dependencies
command: |
npm install
working_directory: ~/ipfs/go-ipfs/interop
environment:
IPFS_GO_EXEC: /tmp/circleci-workspace/bin/ipfs
- save_cache:
key: v1-interop-{{ checksum "~/ipfs/go-ipfs/interop/package-lock.json" }}
paths:
- ~/ipfs/go-ipfs/interop/node_modules
- run:
command: npm run test:node
name: Installing js-ipfs
command: |
npm install ipfs ipfs-http-client
working_directory: ~/ipfs/go-ipfs/interop
- run:
name: Installing reporting tools
command: |
npm install --save-dev mocha-junit-reporter@1.23.1 mocha-multi-reporters@1.1.0
working_directory: ~/ipfs/go-ipfs/interop
- run:
name: Running tests
command: |
mkdir -p /tmp/test-results/interop/
export MOCHA_FILE="$(mktemp /tmp/test-results/interop/unit.XXXXXX.xml)"
echo '{"reporterEnabled": "mocha-junit-reporter, spec"}' > mocha-conf.json
node_modules/.bin/mocha -R mocha-multi-reporters --reporter-options "configFile=mocha-conf.json" \
$(sed -n -e "s|^require('\(.*\)')$|test/\1|p" test/node.js | circleci tests split)
working_directory: ~/ipfs/go-ipfs/interop
environment:
IPFS_REUSEPORT: false
LIBP2P_ALLOW_WEAK_RSA_KEYS: 1
IPFS_GO_EXEC: /tmp/circleci-workspace/bin/ipfs
- store_test_results:
path: /tmp/test-results
go-ipfs-api:
docker:
- image: circleci/golang:1.12
<<: *defaults
executor:
name: golang
tag: "1.13"
steps:
- *make_out_dirs
- attach_workspace:
Expand All @@ -192,7 +225,7 @@ jobs:
background: true
- run:
name: Waiting for the daemon
no_output_timeout: 10s
no_output_timeout: 30s
command: |
while ! /tmp/circleci-workspace/bin/ipfs id --api=/ip4/127.0.0.1/tcp/5001 2>/dev/null; do
sleep 1
Expand All @@ -213,9 +246,7 @@ jobs:
name: Stopping the daemon
command: /tmp/circleci-workspace/bin/ipfs shutdown
go-ipfs-http-client:
docker:
- image: circleci/golang:1.12
<<: *defaults
executor: golang
steps:
- *make_out_dirs
- attach_workspace:
Expand All @@ -240,6 +271,41 @@ jobs:
paths:
- ~/go/pkg/mod
- ~/.cache/go-build/
ipfs-webui:
executor: node-browsers
steps:
- *make_out_dirs
- attach_workspace:
at: /tmp/circleci-workspace
- run:
name: Cloning
command: |
git clone https://github.com/ipfs-shipyard/ipfs-webui.git
git -C ipfs-webui log -1
- restore_cache:
keys:
- v1-ipfs-webui-{{ checksum "~/ipfs/go-ipfs/ipfs-webui/package-lock.json" }}
- v1-ipfs-webui-
- run:
name: Installing dependencies
command: |
npm install
working_directory: ~/ipfs/go-ipfs/ipfs-webui
- run:
name: Running upstream tests (finish early if they fail)
command: |
npm test || circleci-agent step halt
working_directory: ~/ipfs/go-ipfs/ipfs-webui
- run:
name: Running tests with go-ipfs built from current commit
command: npm test
working_directory: ~/ipfs/go-ipfs/ipfs-webui
environment:
IPFS_GO_EXEC: /tmp/circleci-workspace/bin/ipfs
- save_cache:
key: v1-ipfs-webui-{{ checksum "~/ipfs/go-ipfs/ipfs-webui/package-lock.json" }}
paths:
- ~/ipfs/go-ipfs/ipfs-webui/node_modules
workflows:
version: 2
test:
Expand All @@ -258,3 +324,6 @@ workflows:
- go-ipfs-http-client:
requires:
- build
- ipfs-webui:
requires:
- build
92 changes: 92 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,97 @@
# go-ipfs changelog

## 0.4.23 2019-01-29

Given the large number of fixes merged since 0.4.22, we've decided to cut another patch release.

This release contains critical fixes. Please upgrade ASAP. Importantly, we're strongly considering switching to TLS by default in go-ipfs 0.5.0 and dropping SECIO support. However, the current TLS transport in go-ipfs 0.4.22 has a bug that can cause connections to spontaneously disconnect during the handshake.

This release fixes that bug, among many other issues. Users that _don't_ upgrade may experience connectivity issues when the network upgrades to go-ipfs 0.5.0.

### Highlights

* Fixes build on go 1.13
* Fixes an issue where we may not connect to providers in bitswap.
* Fixes an issue on the TLS transport where we may abort a handshake unintentionally.
* Fixes a common panic in the websocket transport.
* Adds support for recursively resolving dnsaddrs (makes go-ipfs compatible with the new bootstrappers).
* Fixes several potential panics/crashes.
* Switches to using pre-defined autorelays instead of trying to find them in the DHT:
* Avoids selecting random, potentially poor, relays.
* Avoids spamming the DHT with requests trying to find relays.
* Reduces the impact of accidentally enabling AutoRelay + RelayHop. I.e., the network won't try to DoS you.
* Modifies the connection manager to not count connections in the grace period towards the connection limit.
* Pro: New connections don't cause us to close useful, existing connections.
* Con: Libp2p will keep more connections. Consider reducing your HighWater after applying this patch.
* Improved peer usefulness tracking in bitswap. Frequently used peers will be marked as "important" and the connection manager will avoid closing connections to these peers.
* Includes a new version of the WebUI to fix some issues with the peers map.

## Changelog

- github.com/ipfs/go-ipfs:
- feat: update the webui to fix some performance issues ([ipfs/go-ipfs#6844](https://github.com/ipfs/go-ipfs/pull/6844))
- fix: limit SW registration to content root ([ipfs/go-ipfs#6801](https://github.com/ipfs/go-ipfs/pull/6801))
- fix issue 6760, adding with hash-only, high CPU usage. ([ipfs/go-ipfs#6764](https://github.com/ipfs/go-ipfs/pull/6764))
- fix(coreapi/add): close the fake repo used when adding with hash-only ([ipfs/go-ipfs#6747](https://github.com/ipfs/go-ipfs/pull/6747))
- fix bug 6748 ([ipfs/go-ipfs#6754](https://github.com/ipfs/go-ipfs/pull/6754))
- fix(pin): wait till after fetching to remove direct pin ([ipfs/go-ipfs#6708](https://github.com/ipfs/go-ipfs/pull/6708))
- pin: fix pin update X Y where X==Y ([ipfs/go-ipfs#6669](https://github.com/ipfs/go-ipfs/pull/6669))
- namesys: set the correct cache TTL on publish ([ipfs/go-ipfs#6667](https://github.com/ipfs/go-ipfs/pull/6667))
- build: fix golangci again ([ipfs/go-ipfs#6641](https://github.com/ipfs/go-ipfs/pull/6641))
- make: move all test deps to a separate module ([ipfs/go-ipfs#6637](https://github.com/ipfs/go-ipfs/pull/6637))
- fix: close peerstore on stop ([ipfs/go-ipfs#6629](https://github.com/ipfs/go-ipfs/pull/6629))
- build: fix build when we don't have a full git tree ([ipfs/go-ipfs#6626](https://github.com/ipfs/go-ipfs/pull/6626))
- github.com/ipfs/go-bitswap (v0.0.8-cbb485998356 -> v0.0.8-e37498cf10d6):
- fix: wait until we finish connecting before we cancel the context ([ipfs/go-bitswap#226](https://github.com/ipfs/go-bitswap/pull/226))
- engine: tag peers based on usefulness ([ipfs/go-bitswap#191](https://github.com/ipfs/go-bitswap/pull/191))
- github.com/ipfs/go-cid (v0.0.2 -> v0.0.4):
- fix parsing issues and nits ([ipfs/go-cid#97](https://github.com/ipfs/go-cid/pull/97))
- Verify that prefix is correct v0 prefix ([ipfs/go-cid#96](https://github.com/ipfs/go-cid/pull/96))
- github.com/multiformats/go-multihash (v0.0.5 -> v0.0.10):
- Ensure that length of multihash is properly handled ([multiformats/go-multihash#119](https://github.com/multiformats/go-multihash/pull/119))
- fix murmur3 name ([multiformats/go-multihash#115](https://github.com/multiformats/go-multihash/pull/115))
- rename ID to IDENTITY ([multiformats/go-multihash#113](https://github.com/multiformats/go-multihash/pull/113))
([multiformats/go-multihash#119](https://github.com/multiformats/go-multihash/pull/119))
- github.com/libp2p/go-flow-metrics (v0.0.1 -> v0.0.3):
- fix bug in meter traversal logic ([libp2p/go-flow-metrics#11](https://github.com/libp2p/go-flow-metrics/pull/11))
- github.com/libp2p/go-libp2p (v0.0.28 -> v0.0.32):
- options to configure known relays for autorelay ([libp2p/go-libp2p#705](https://github.com/libp2p/go-libp2p/pull/705))
- feat(host): recursively resolve addresses ([libp2p/go-libp2p#764](https://github.com/libp2p/go-libp2p/pull/764))
- mdns: always use interface addresses ([libp2p/go-libp2p#667](https://github.com/libp2p/go-libp2p/pull/667))
- github.com/libp2p/go-libp2p-connmgr (v0.0.6 -> v0.2.1):
- don't count connections in the grace period against the limit ([libp2p/go-libp2p-connmgr#50](https://github.com/libp2p/go-libp2p-connmgr/pull/50))
- github.com/libp2p/go-libp2p-kad-dht (v0.0.13 -> v0.0.15):
- metrics: fix memory leak ([libp2p/go-libp2p-kad-dht#390](https://github.com/libp2p/go-libp2p-kad-dht/pull/390))
- github.com/libp2p/go-libp2p-tls (v0.0.1 -> v0.0.2):
- close the underlying connection when the handshake fails ([libp2p/go-libp2p-tls#39](https://github.com/libp2p/go-libp2p-tls/pull/39))
- make the error check for not receiving a public key more explicit ([libp2p/go-libp2p-tls#34](https://github.com/libp2p/go-libp2p-tls/pull/34))
- Fix: Connection Closed after handshake ([libp2p/go-libp2p-tls#37](https://github.com/libp2p/go-libp2p-tls/pull/37))
- github.com/libp2p/go-libp2p-swarm (v0.0.6 -> v0.0.7):
- fix: don't assume that transports implement stringer ([libp2p/go-libp2p-swarm#134](https://github.com/libp2p/go-libp2p-swarm/pull/134))
- github.com/libp2p/go-ws-transport (v0.0.4 -> v0.0.6):
- Add mutex for write/close ([libp2p/go-ws-transport#65](https://github.com/libp2p/go-ws-transport/pull/65))

Other:

Update bloom filter libraries to remove unsound usage of the `unsafe` package.

### Contributors

| Contributor | Commits | Lines ± | Files Changed |
|-------------|---------|---------|---------------|
| Steven Allen | 52 | +1866/-578 | 102 |
| vyzo | 12 | +167/-90 | 22 |
| whyrusleeping | 5 | +136/-52 | 7 |
| Roman Proskuryakov | 7 | +94/-7 | 10 |
| Jakub Sztandera | 3 | +58/-13 | 7 |
| hcg1314 | 2 | +31/-11 | 2 |
| Raúl Kripalani | 2 | +7/-33 | 6 |
| Marten Seemann | 3 | +27/-10 | 5 |
| Marcin Rataj | 2 | +26/-0 | 5 |
| b5 | 1 | +2/-22 | 1 |
| Hector Sanjuan | 1 | +11/-0 | 1 |
| Yusef Napora | 1 | +4/-0 | 1 |

## 0.4.22 2019-08-06

We're releasing a PATCH release of go-ipfs based on 0.4.21 containing some critical fixes.
Expand Down
Loading