Ipfs v0.4.0 changelog
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
Jeromy committed
Apr 7, 2016 at 16:22 UTC
a164fc958f2fc8f9e3dd8f499c4dceeccf9af0a8
2 files changed
+137
-7
CHANGELOG.md
+129
-6
@@ -1,12 +1,135 @@
1
# go-ipfs changelog
2
3
-### 0.4.0 - 2016-01-31
4
-
5
-* Features
6
- * add optional path arguments to 'ipfs pin ls' (@chriscool)
7
-
3
+### 0.4.0 - 2016-04-05
4
+
5
+This is a major release with plenty of new features and bugfixes.
6
+It also includes breaking changes which make it incompatible with v0.3.x
7
+on the networking layer.
8
+
9
+* Major Changes
10
+ * Multistream
11
+ * The addition of multistream is a breaking change on the networking layer,
12
+ but gives IPFS implementations the ability to mix and match different
13
+ stream multiplexers, e.g. yamux, spdystream, or muxado.
14
+ This adds a ton of flexibility on one of the lower layers of the protocol,
15
+ and will help us avoid further breaking protocol changes in the future.
16
+ * Files API
17
+ * The new `files` command and API allow a program to interact with IPFS
18
+ using familiar filesystem operations, namely: creating directories,
19
+ reading, writing, and deleting files, listing out different directories,
20
+ and so on. This feature enables any other application that uses a
21
+ filesystem-like backend for storage, to use IPFS as its storage driver
22
+ without having change the application logic at all.
23
+ * Gx
24
+ * go-ipfs now uses [gx](https://github.com/whyrusleeping/gx) to manage its
25
+ dependencies. This means that under the hood, go-ipfs's dependencies are
26
+ backed by IPFS itself! It also means that go-ipfs is no longer installed
27
+ using `go get`. Use `make install` instead.
28
+* New Features
29
+ * Web UI
30
+ * Update to new version which is compatible with 0.4.0. (@dignifiedquire)
31
+ * Networking
32
+ * Implement uTP transport. (@whyrusleeping)
33
+ * Allow multiple addresses per configured bootstrap node. (@whyrusleeping)
34
+ * IPNS
35
+ * Improve IPNS resolution performance. (@whyrusleeping)
36
+ * Have dnslink prefer `TXT _dnslink.example.com`, allows usage of CNAME records. (@Kubuxu)
37
+ * Prevent `ipfs name publish` when `/ipns` is mounted. (@noffle)
38
+ * Repo
39
+ * Improve performance of `ipfs add`. (@whyrusleeping)
40
+ * Add `Datastore.NoSync` config option for flatfs. (@rht)
41
+ * Implement mark-and-sweep GC. (@whyrusleeping)
42
+ * Allow for GC during `ipfs add`. (@whyrusleeping)
43
+ * Add `ipfs repo stat` command. (@tmg, @diasdavid)
44
+ * General
45
+ * Add support for HTTP OPTIONS requests. (@lidel)
46
+ * Add `ipfs diag cmds` to view active API requests (@whyrusleeping)
47
+ * Add an `IPFS_LOW_MEM` environment veriable which relaxes Bitswap's memory usage. (@whyrusleeping)
48
+ * The Docker image now lives at `ipfs/go-ipfs` and has been completely reworked. (@lgierth)
49
+* Security fixes
50
+ * The gateway path prefix added in v0.3.10 was vulnerable to cross-site
51
+ scripting attacks. This release introduces a configurable list of allowed
52
+ path prefixes. It's called `Gateway.PathPrefixes` and takes a list of
53
+ strings, e.g. `["/blog", "/foo/bar"]`. The v0.3.x line will not receive any
54
+ further updates, so please update to v0.4.0 as soon as possible. (@lgierth)
55
* Incompatible Changes
9
- * the default for '--type' in 'ipfs pin ls' is now "all" (@chriscool)
56
+ * Install using `make install` instead of `go get` (@whyrusleeping)
57
+ * Rewrite pinning to store pins in IPFS objects. (@tv42)
58
+ * Bump fs-repo version to 3. (@whyrusleeping)
59
+ * Use multistream muxer (@whyrusleeping)
60
+ * The default for `--type` in `ipfs pin ls` is now `all`. (@chriscool)
61
+* Bug Fixes
62
+ * Remove msgio double wrap. (@jbenet)
63
+ * Buffer msgio. (@whyrusleeping)
64
+ * Perform various fixes to the FUSE code. (@tv42)
65
+ * Compute `ipfs add` size in background to not stall add operation. (@whyrusleeping)
66
+ * Add option to have `ipfs add` include top-level hidden files. (@noffle)
67
+ * Fix CORS checks on the API. (@rht)
68
+ * Fix `ipfs update` error message. (@tomgg)
69
+ * Resolve paths in `ipfs pin rm` without network lookup. (@noffle)
70
+ * Detect FUSE unmounts and track mount state. (@noffle)
71
+ * Fix go1.6rc2 panic caused by CloseNotify being called from wrong goroutine. (@rwcarlsen)
72
+ * Bump DHT kvalue from 10 to 20. (@whyrusleeping)
73
+ * Put public key and IPNS entry to DHT in parallel. (@whyrusleeping)
74
+ * Fix panic in CLI argument parsing. (@whyrusleeping)
75
+ * Fix range error by using larger-than-zero-length buffer. (@noffle)
76
+ * Fix yamux hanging issue by increasing AcceptBacklog. (@whyrusleeping)
77
+ * Fix double Transport-Encoding header bug. (@whyrusleeping)
78
+ * Fix uTP panic and file descriptor leak. (@whyrusleeping)
79
+* Tool Changes
80
+ * Add `--pin` option to `ipfs add`, which defaults to `true` and allows `--pin=false`. (@eminence)
81
+ * Add arguments to `ipfs pin ls`. (@chriscool)
82
+ * Add `dns` and `resolve` commands to read-only API. (@Kubuxu)
83
+ * Add option to display headers for `ipfs object links`. (@palkeo)
84
+* General Codebase Changes
85
+ * Check Golang version in Makefile. (@chriscool)
86
+ * Improve Makefile. (@tomgg)
87
+ * Remove dead Jenkins CI code. (@lgierth)
88
+ * Add locking interface to blockstore. (@whyrusleeping)
89
+ * Add Merkledag FetchGraph and EnumerateChildren. (@whyrusleeping)
90
+ * Rename Lock/RLock to GCLock/PinLock. (@jbenet)
91
+ * Implement pluggable datastore types. (@tv42)
92
+ * Record datastore metrics for non-default datastores. (@tv42)
93
+ * Allow multistream to have zero-rtt stream opening. (@whyrusleeping)
94
+ * Refactor `ipnsfs` into a more generic and well tested `mfs`. (@whyrusleeping)
95
+ * Grab more peers if bucket doesn't contain enough. (@whyrusleeping)
96
+ * Use CloseNotify in gateway. (@whyrusleeping)
97
+ * Flatten multipart file transfers. (@whyrusleeping)
98
+ * Send updated DHT record fixes to peers who sent outdated records. (@whyrusleeping)
99
+ * Replace go-psutil with go-sysinfo. (@whyrusleeping)
100
+ * Use ServeContent for index.html. (@AtnNn)
101
+ * Refactor `object patch` API to not store data in URL. (@whyrusleeping)
102
+ * Use mfs for `ipfs add`. (@whyrusleeping)
103
+ * Add `Server` header to API responses. (@Kubuxu)
104
+ * Wire context directly into HTTP requests. (@rht)
105
+ * Wire context directly into GetDAG operations within GC. (@rht)
106
+ * Vendor libp2p using gx. (@whyrusleeping)
107
+ * Use gx vendored packages instead of Godeps. (@whyrusleeping)
108
+ * Simplify merkledag package interface to ease IPLD inclusion. (@mildred)
109
+ * Add default option value support to commands lib. (@whyrusleeping)
110
+ * Refactor merkledag fetching methods. (@whyrusleeping)
111
+ * Use net/url to escape paths within Web UI. (@noffle)
112
+ * Deprecated key.Pretty(). (@MichealMure)
113
+* Documentation
114
+ * Fix and update help text for **every** `ipfs` command. (@RichardLitt)
115
+ * Change sample API origin settings from wildcard (`*`) to `example.com`. (@Kubuxu)
116
+ * Improve documentation of installation process in README. (@whyrusleeping)
117
+ * Improve windows.md. (@chriscool)
118
+ * Clarify instructions for installing from source. (@noffle)
119
+ * Make version checking more robust. (@jedahan)
120
+ * Assert the source code is located within GOPATH. (@whyrusleeping)
121
+ * Remove mentions of `/dns` from `ipfs dns` command docs. (@lgierth)
122
+* Testing
123
+ * Refactor iptb tests. (@chriscool)
124
+ * Improve t0240 sharness test. (@chriscool)
125
+ * Make bitswap tests less flaky. (@whyrusleeping)
126
+ * Use TCP port zero for ipfs daemon in sharness tests. (@whyrusleeping)
127
+ * Improve sharness tests on AppVeyor. (@chriscool)
128
+ * Add a pause to fix timing on t0065. (@whyrusleeping)
129
+ * Add support for arbitrary TCP ports to t0060-daemon.sh. (@noffle)
130
+ * Make t0060 sharness test use TCP port zero. (@whyrusleeping)
131
+ * Randomized ipfs stress testing via randor (@dignifiedquire)
132
+ * Stress test pinning and migrations (@whyrusleeping)
133
134
### 0.3.11 - 2016-01-12
135
releases.md
renamed
+8
-1
@@ -1,5 +1,12 @@
1
-# go-ipfs release checklist
1
+# go-ipfs releases
2
3
+## Release Schedule
4
+go-ipfs is on a six week release schedule. Following a release, there will be
5
+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
+## Pre-Release Checklist
10
- [ ] before release, tag 'release canidate' for users to test against
11
- if bugs are found/fixed, do another release canidate
12
- [ ] all tests pass (no exceptions)