add initial changelog for 0.4.14
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
Jeromy committed
Mar 2, 2018 at 12:32 UTC
12c22e38a2b49cfb167458d2af224b4f7070bafd
5 files changed
+170
-5
.gx/lastpubver
+1
-1
@@ -1 +1 @@
1
-0.4.13: QmViBzgruNUoLNBnXcx8YWbDNwV8MNGEGKkLo6JGetygdw
1
+0.4.14-rc1: QmXporsyf5xMvffd2eiTDoq85dNpYUynGJhfabzDjwP8uR
CHANGELOG.md
+157
@@ -1,5 +1,162 @@
1
# go-ipfs changelog
2
3
+## 0.4.14 2018-03-02
4
+
5
+Ipfs 0.4.14 is a big release with a large number of improvements and bugfixes.
6
+It is also the first release of 2018, and our first release in over three
7
+months. The release took longer than expected due to our refactoring and
8
+extracting of our commands library. This refactor had two stages. The first
9
+round of the refactor disentangled the commands code from core ipfs code,
10
+allowing us to move it out into a [separate
11
+repository](https://github.com/ipfs/go-ipfs-cmds). The code was previously
12
+very entangled with the go-ipfs codebase and not usable for other projects.
13
+The second round of the refactor had the goal of fixing several major issues
14
+around streaming outputs, progress bars, and error handling. It also paved the
15
+way for us to more easily provide an API over other transports, such as
16
+websockets and unix domain sockets. It took a while to flush out all the kinks
17
+on such a massive change. We're pretty sure we've got most of them, but if you
18
+notice anything weird, please let us know.
19
+
20
+Beyond that, we've added a new experimental way to use IPNS. With the new
21
+pubsub IPNS resolver and publisher, you can subscribe to updates of an IPNS
22
+entry, and the owner can publish out changes in real time. With this, IPNS can
23
+become nearly instantaneous. To make use of this, simply start your ipfs daemon
24
+with the `--enable-namesys-pubsub` option, and all IPNS resolution and
25
+publishing will use pubsub. Note that resolving an IPNS name via pubsub without
26
+someone publishing it via pubsub will result in a fallback to using the DHT.
27
+Please give this a try and let us know how it goes!
28
+
29
+Memory and CPU usage should see a noticeable improvement in this release. We
30
+have spent considerable time fixing excess memory usage throughout the codebase
31
+and down into libp2p. Fixes in peer tracking, bitswap allocation, pinning, and
32
+many other places have brought down both peak and average memory usage. An
33
+upgraded hashing library, base58 encoding library, and improved allocation
34
+patterns all contribute to overall lower CPU usage across the board. See the
35
+full changelist below for more memory and CPU usage improvements.
36
+
37
+This release also brings the beginning of the ipfs 'Core API'. Once finished,
38
+the Core API will be the primary way to interact with go-ipfs using go. Both
39
+embedded nodes and nodes accessed over the http API will have the same
40
+interface. Stay tuned for future updates and documentation.
41
+
42
+These are only a sampling of the changes that made it into this release, the
43
+full list (almost 100 PRs!) is below.
44
+
45
+Finally, I'd like to thank everyone who contributed to this release, whether
46
+you're just contributing a typo fix or driving new features. We are really
47
+grateful to everyone who has spent their their time pushing ipfs forward.
48
+
49
+SECURITY NOTE:
50
+
51
+This release of ipfs disallows the usage of insecure hash functions and
52
+lengths. Ipfs does not create these insecure objects for any purpose, but it
53
+did allow manually creating them and fetching them from other peers. If you
54
+currently have objects using insecure hashes in your local ipfs repo, please
55
+remove them before updating.
56
+
57
+- Features
58
+ - Pubsub IPNS Publisher and Resolver (experimental) ([ipfs/go-ipfs#4047](https://github.com/ipfs/go-ipfs/pull/4047))
59
+ - Implement coreapi Dag interface ([ipfs/go-ipfs#4471](https://github.com/ipfs/go-ipfs/pull/4471))
60
+ - Add --offset flag to ipfs cat ([ipfs/go-ipfs#4538](https://github.com/ipfs/go-ipfs/pull/4538))
61
+ - Command to apply config profile after init ([ipfs/go-ipfs#4195](https://github.com/ipfs/go-ipfs/pull/4195))
62
+ - Implement coreapi Name and Key interfaces ([ipfs/go-ipfs#4477](https://github.com/ipfs/go-ipfs/pull/4477))
63
+ - Add --length flag to ipfs cat ([ipfs/go-ipfs#4553](https://github.com/ipfs/go-ipfs/pull/4553))
64
+ - Implement coreapi Object interface ([ipfs/go-ipfs#4492](https://github.com/ipfs/go-ipfs/pull/4492))
65
+ - Implement coreapi Block interface ([ipfs/go-ipfs#4548](https://github.com/ipfs/go-ipfs/pull/4548))
66
+ - Implement coreapi Pin interface ([ipfs/go-ipfs#4575](https://github.com/ipfs/go-ipfs/pull/4575))
67
+ - Add a --with-local flag to ipfs files stat ([ipfs/go-ipfs#4638](https://github.com/ipfs/go-ipfs/pull/4638))
68
+ - Disallow usage of blocks with insecure hashes ([ipfs/go-ipfs#4751](https://github.com/ipfs/go-ipfs/pull/4751))
69
+- Improvements
70
+ - Add uuid to event logs ([ipfs/go-ipfs#4392](https://github.com/ipfs/go-ipfs/pull/4392))
71
+ - Add --quiet flag to object put ([ipfs/go-ipfs#4411](https://github.com/ipfs/go-ipfs/pull/4411))
72
+ - Pinning memory improvements and fixes ([ipfs/go-ipfs#4451](https://github.com/ipfs/go-ipfs/pull/4451))
73
+ - Update WebUI version ([ipfs/go-ipfs#4449](https://github.com/ipfs/go-ipfs/pull/4449))
74
+ - Check strong and weak ETag validator ([ipfs/go-ipfs#3983](https://github.com/ipfs/go-ipfs/pull/3983))
75
+ - Improve and refactor FD limit handling ([ipfs/go-ipfs#3801](https://github.com/ipfs/go-ipfs/pull/3801))
76
+ - Support linking to non-dagpb objects in ipfs object patch ([ipfs/go-ipfs#4460](https://github.com/ipfs/go-ipfs/pull/4460))
77
+ - Improve allocation patterns of slices in bitswap ([ipfs/go-ipfs#4458](https://github.com/ipfs/go-ipfs/pull/4458))
78
+ - Secio handshake now happens synchronously ([libp2p/go-libp2p-secio#25](https://github.com/libp2p/go-libp2p-secio/pull/25))
79
+ - Don't block closing connections on pending writes ([libp2p/go-msgio#7](https://github.com/libp2p/go-msgio/pull/7))
80
+ - Improve memory usage of multiaddr parsing ([multiformats/go-multiaddr#56](https://github.com/multiformats/go-multiaddr/pull/56))
81
+ - Don't lock up 256KiB buffers when adding small files ([ipfs/go-ipfs#4508](https://github.com/ipfs/go-ipfs/pull/4508))
82
+ - Clear out memory after reads from the dagreader ([ipfs/go-ipfs#4525](https://github.com/ipfs/go-ipfs/pull/4525))
83
+ - Improve error handling in ipfs ping ([ipfs/go-ipfs#4546](https://github.com/ipfs/go-ipfs/pull/4546))
84
+ - Allow install.sh to be run without being the script dir ([ipfs/go-ipfs#4547](https://github.com/ipfs/go-ipfs/pull/4547))
85
+ - Much faster base58 encoding ([libp2p/go-libp2p-peer#24](https://github.com/libp2p/go-libp2p-peer/pull/24))
86
+ - Use faster sha256 and blake2b libs ([multiformats/go-multihash#63](https://github.com/multiformats/go-multihash/pull/63))
87
+ - Greatly improve peerstore memory usage ([libp2p/go-libp2p-peerstore#22](https://github.com/libp2p/go-libp2p-peerstore/pull/22))
88
+ - Improve dht memory usage and peer tracking ([libp2p/go-libp2p-kad-dht#111](https://github.com/libp2p/go-libp2p-kad-dht/pull/111))
89
+ - New libp2p metrics lib with lower overhead ([libp2p/go-libp2p-metrics#8](https://github.com/libp2p/go-libp2p-metrics/pull/8))
90
+ - Fix memory leak that occurred when dialing many peers ([libp2p/go-libp2p-swarm#51](https://github.com/libp2p/go-libp2p-swarm/pull/51))
91
+ - Wire up new dag interfaces to make sessions easier ([ipfs/go-ipfs#4641](https://github.com/ipfs/go-ipfs/pull/4641))
92
+- Documentation
93
+ - Correct StorageMax config description ([ipfs/go-ipfs#4388](https://github.com/ipfs/go-ipfs/pull/4388))
94
+ - Add how to download IPFS with IPFS doc ([ipfs/go-ipfs#4390](https://github.com/ipfs/go-ipfs/pull/4390))
95
+ - Document gx release checklist item ([ipfs/go-ipfs#4480](https://github.com/ipfs/go-ipfs/pull/4480))
96
+ - Add some documentation to CoreAPI ([ipfs/go-ipfs#4493](https://github.com/ipfs/go-ipfs/pull/4493))
97
+ - Add interop tests to the release checklist ([ipfs/go-ipfs#4501](https://github.com/ipfs/go-ipfs/pull/4501))
98
+ - Add badgerds to experimental-features ToC ([ipfs/go-ipfs#4537](https://github.com/ipfs/go-ipfs/pull/4537))
99
+ - Fix typos and inconsistencies in commands documentation ([ipfs/go-ipfs#4552](https://github.com/ipfs/go-ipfs/pull/4552))
100
+ - Add a document to help troubleshoot data transfers ([ipfs/go-ipfs#4332](https://github.com/ipfs/go-ipfs/pull/4332))
101
+ - Add a bunch of documentation on public interfaces ([ipfs/go-ipfs#4599](https://github.com/ipfs/go-ipfs/pull/4599))
102
+ - Expand the issue template and remove the severity field ([ipfs/go-ipfs#4624](https://github.com/ipfs/go-ipfs/pull/4624))
103
+ - Add godocs for importers module ([ipfs/go-ipfs#4640](https://github.com/ipfs/go-ipfs/pull/4640))
104
+ - Document make targets ([ipfs/go-ipfs#4653](https://github.com/ipfs/go-ipfs/pull/4653))
105
+ - Add godocs for merkledag module ([ipfs/go-ipfs#4665](https://github.com/ipfs/go-ipfs/pull/4665))
106
+ - Add godocs for unixfs module ([ipfs/go-ipfs#4664](https://github.com/ipfs/go-ipfs/pull/4664))
107
+ - Add sharding to experimental features list ([ipfs/go-ipfs#4569](https://github.com/ipfs/go-ipfs/pull/4569))
108
+ - Add godocs for routing module ([ipfs/go-ipfs#4676](https://github.com/ipfs/go-ipfs/pull/4676))
109
+ - Add godocs for path module ([ipfs/go-ipfs#4689](https://github.com/ipfs/go-ipfs/pull/4689))
110
+ - Add godocs for pin module ([ipfs/go-ipfs#4696](https://github.com/ipfs/go-ipfs/pull/4696))
111
+ - Update link to filestore experimental status ([ipfs/go-ipfs#4557](https://github.com/ipfs/go-ipfs/pull/4557))
112
+- Bugfixes
113
+ - Remove trailing slash in ipfs get paths, fixes #3729 ([ipfs/go-ipfs#4365](https://github.com/ipfs/go-ipfs/pull/4365))
114
+ - fix deadlock in bitswap sessions ([ipfs/go-ipfs#4407](https://github.com/ipfs/go-ipfs/pull/4407))
115
+ - Fix two race conditions (and possibly go routine leaks) in commands ([ipfs/go-ipfs#4406](https://github.com/ipfs/go-ipfs/pull/4406))
116
+ - Fix output delay in ipfs pubsub sub ([ipfs/go-ipfs#4402](https://github.com/ipfs/go-ipfs/pull/4402))
117
+ - Use correct context in AddWithContext ([ipfs/go-ipfs#4433](https://github.com/ipfs/go-ipfs/pull/4433))
118
+ - Fix various IPNS republisher issues ([ipfs/go-ipfs#4440](https://github.com/ipfs/go-ipfs/pull/4440))
119
+ - Fix error handling in commands add and get ([ipfs/go-ipfs#4454](https://github.com/ipfs/go-ipfs/pull/4454))
120
+ - Fix hamt (sharding) delete issue ([ipfs/go-ipfs#4398](https://github.com/ipfs/go-ipfs/pull/4398))
121
+ - More correctly check for reuseport support ([libp2p/go-reuseport#40](https://github.com/libp2p/go-reuseport/pull/40))
122
+ - Fix goroutine leak in websockets transport ([libp2p/go-ws-transport#21](https://github.com/libp2p/go-ws-transport/pull/21))
123
+ - Update badgerds to fix i386 windows build ([ipfs/go-ipfs#4464](https://github.com/ipfs/go-ipfs/pull/4464))
124
+ - Only construct bitswap event loggable if necessary ([ipfs/go-ipfs#4533](https://github.com/ipfs/go-ipfs/pull/4533))
125
+ - Ensure that flush on the mfs root flushes its directory ([ipfs/go-ipfs#4509](https://github.com/ipfs/go-ipfs/pull/4509))
126
+ - Fix defered unlock of pin lock in AddR ([ipfs/go-ipfs#4562](https://github.com/ipfs/go-ipfs/pull/4562))
127
+ - Fix iOS builds ([ipfs/go-ipfs#4610](https://github.com/ipfs/go-ipfs/pull/4610))
128
+ - Calling repo gc now frees up space with badgerds ([ipfs/go-ipfs#4578](https://github.com/ipfs/go-ipfs/pull/4578))
129
+ - Fix leak in bitswap sessions shutdown ([ipfs/go-ipfs#4658](https://github.com/ipfs/go-ipfs/pull/4658))
130
+ - Fix make on windows ([ipfs/go-ipfs#4682](https://github.com/ipfs/go-ipfs/pull/4682))
131
+ - Ignore invalid key files in keystore directory ([ipfs/go-ipfs#4700](https://github.com/ipfs/go-ipfs/pull/4700))
132
+- General Changes and Refactorings
133
+ - Extract and refactor commands library ([ipfs/go-ipfs#3856](https://github.com/ipfs/go-ipfs/pull/3856))
134
+ - Remove all instances of `Default(false)` ([ipfs/go-ipfs#4042](https://github.com/ipfs/go-ipfs/pull/4042))
135
+ - Build for all supported platforms when testing ([ipfs/go-ipfs#4445](https://github.com/ipfs/go-ipfs/pull/4445))
136
+ - Refine gateway and namesys logging ([ipfs/go-ipfs#4428](https://github.com/ipfs/go-ipfs/pull/4428))
137
+ - Demote bitswap error to an info ([ipfs/go-ipfs#4472](https://github.com/ipfs/go-ipfs/pull/4472))
138
+ - Extract posinfo package to github.com/ipfs/go-ipfs-posinfo ([ipfs/go-ipfs#4669](https://github.com/ipfs/go-ipfs/pull/4669))
139
+ - Move signature verification to ipns validator ([ipfs/go-ipfs#4628](https://github.com/ipfs/go-ipfs/pull/4628))
140
+ - Extract importers/chunk module as go-ipfs-chunker ([ipfs/go-ipfs#4661](https://github.com/ipfs/go-ipfs/pull/4661))
141
+ - Extract go-detect-race from Godeps ([ipfs/go-ipfs#4686](https://github.com/ipfs/go-ipfs/pull/4686))
142
+ - Extract flags, delay, ds-help ([ipfs/go-ipfs#4685](https://github.com/ipfs/go-ipfs/pull/4685))
143
+ - Extract routing package to go-ipfs-routing ([ipfs/go-ipfs#4703](https://github.com/ipfs/go-ipfs/pull/4703))
144
+ - Extract blocks/blockstore package to go-ipfs-blockstore ([ipfs/go-ipfs#4707](https://github.com/ipfs/go-ipfs/pull/4707))
145
+ - Add exchange.SessionExchange interface for exchanges that support sessions ([ipfs/go-ipfs#4709](https://github.com/ipfs/go-ipfs/pull/4709))
146
+ - Extract thirdparty/pq to go-ipfs-pq ([ipfs/go-ipfs#4711](https://github.com/ipfs/go-ipfs/pull/4711))
147
+ - Separate "path" from "path/resolver" ([ipfs/go-ipfs#4713](https://github.com/ipfs/go-ipfs/pull/4713))
148
+- Testing
149
+ - Increase verbosity of t0088-repo-stat-symlink.sh test ([ipfs/go-ipfs#4434](https://github.com/ipfs/go-ipfs/pull/4434))
150
+ - Make repo size test pass deterministically ([ipfs/go-ipfs#4443](https://github.com/ipfs/go-ipfs/pull/4443))
151
+ - Always set IPFS_PATH in test-lib.sh ([ipfs/go-ipfs#4469](https://github.com/ipfs/go-ipfs/pull/4469))
152
+ - Fix sharness docker ([ipfs/go-ipfs#4489](https://github.com/ipfs/go-ipfs/pull/4489))
153
+ - Fix loops in sharness tests to fail the test if the inner command fails ([ipfs/go-ipfs#4482](https://github.com/ipfs/go-ipfs/pull/4482))
154
+ - Improve bitswap tests, fix race conditions ([ipfs/go-ipfs#4499](https://github.com/ipfs/go-ipfs/pull/4499))
155
+ - Fix circleci cache directory list ([ipfs/go-ipfs#4564](https://github.com/ipfs/go-ipfs/pull/4564))
156
+ - Only run the build test on test_go_expensive ([ipfs/go-ipfs#4645](https://github.com/ipfs/go-ipfs/pull/4645))
157
+ - Fix go test on Windows ([ipfs/go-ipfs#4632](https://github.com/ipfs/go-ipfs/pull/4632))
158
+ - Fix some tests on FreeBSD ([ipfs/go-ipfs#4662](https://github.com/ipfs/go-ipfs/pull/4662))
159
+
160
## 0.4.13 2017-11-16
161
162
Ipfs 0.4.13 is a patch release that fixes two high priority issues that were
docs/releases.md
+10
-2
@@ -6,6 +6,14 @@ five weeks for code of any type (features, bugfixes, etc) to be added. After
6
the five weeks is up, a release canidate is tagged and only important bugfixes
7
will be allowed up to release day.
8
9
+## Release Candidate Checklist
10
+- [ ] CHANGELOG.md has been updated
11
+ - use `./bin/mkreleaselog` to generate a nice starter list
12
+- [ ] version string in `repo/config/version.go` has been updated
13
+- [ ] tag commit with vX.Y.Z-rcN
14
+- [ ] publish gx version with `gx publish`, as per [gx release guidelines](https://github.com/whyrusleeping/gx#publishing-and-releasing)
15
+ - you will have to manually adjust the gx version to 'rc'
16
+
17
## Pre-Release Checklist
18
- [ ] before release, tag 'release canidate' for users to test against
19
- if bugs are found/fixed, do another release canidate
@@ -13,16 +21,16 @@ will be allowed up to release day.
21
- [ ] run interop tests https://github.com/ipfs/interop#test-with-a-non-yet-released-version-of-go-ipfs
22
- [ ] webui works (for most definitions of 'works') - Test the multiple pages and verify that no visible errors are shown.
23
- [ ] CHANGELOG.md has been updated
16
- - use `LAST=v0.4.2 ; for n in $(git log --oneline --merges --reverse -n-1 $LAST...master | cut -d'#' -f2 | cut -d' ' -f1); do echo https://github.com/ipfs/go-ipfs/pull/$n; done`
24
+ - use `./bin/mkreleaselog` to generate a nice starter list
25
- [ ] version string in `repo/config/version.go` has been updated
26
- [ ] tag commit with vX.Y.Z
19
-- [ ] bump version string in `repo/config/version.go` to `vX.Y.Z-dev`
27
- [ ] update release branch to point to release commit
28
- [ ] publish dist.ipfs.io
29
- [ ] publish next version to https://github.com/ipfs/npm-go-ipfs
30
- [ ] publish gx version with `gx release`, as per [gx release guidelines](https://github.com/whyrusleeping/gx#publishing-and-releasing)
31
32
## Post-Release
33
+- [ ] bump version string in `repo/config/version.go` to `vX.Y.Z-dev`
34
- Communication
35
- [ ] Create the release issue
36
- [ ] Announcements (both pre-release and post-release)
package.json
+1
-1
@@ -581,6 +581,6 @@
581
"language": "go",
582
"license": "MIT",
583
"name": "go-ipfs",
584
- "version": "0.4.14-dev"
584
+ "version": "0.4.14-rc1"
585
}
586
repo/config/version.go
+1
-1
@@ -4,6 +4,6 @@ package config
4
var CurrentCommit string
5
6
// CurrentVersionNumber is the current application's version literal
7
-const CurrentVersionNumber = "0.4.14-dev"
7
+const CurrentVersionNumber = "0.4.14-rc1"
8
9
const ApiVersion = "/go-ipfs/" + CurrentVersionNumber + "/"