@cryptotaxi247 / kubo / commits / 12c22e38a

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 + "/"