mirror of https://github.com/perkeep/perkeep.git
264 lines
11 KiB
HTML
264 lines
11 KiB
HTML
<h1>Release 0.9 ("Astrakhan")</h1>
|
|
|
|
<p><b>2015-12-30</b></p>
|
|
|
|
<p>Hello, long time no see. It's been over a year since our release,
|
|
but we have fun stuff to share in our ninth release, named after the
|
|
Russian city of <a
|
|
href="https://en.wikipedia.org/wiki/Astrakhan">Astrakhan</a>.</p>
|
|
|
|
<p> For this release we have mainly focused on ease of use and ease of
|
|
installation for new users. Recognizing that most users don't have
|
|
their own servers, we've been working on making it easier to run
|
|
Camlistore on cloud providers. Initially we've targeted the <a
|
|
href="https://cloud.google.com/">Google Cloud Platform</a> and <a
|
|
href="https://www.scaleway.com/">Scaleway</a>, making sure Camlistore
|
|
is well-adapted to those environments. For users wishing to use Google
|
|
Cloud Platform, we now provide a web-based launcher for users to
|
|
create their own Camlistore instances:</p>
|
|
|
|
<center>
|
|
<div style='font-size:18pt;font-weight:bold;'>
|
|
<a href="https://camlistore.org/launch/">camlistore.org/launch</a>
|
|
</div>
|
|
</center>
|
|
|
|
<p>For users wishing to use Scaleway, see our early <a
|
|
href="https://github.com/scaleway-community/scaleway-camlistore">scaleway-camlistore
|
|
image</a>. Our Scaleway image does not yet use Scaleway's Object Storage service, however,
|
|
and puts all Camlistore data on the same volume as the Camlistore code itself, potentially complicating
|
|
upgrades. It should be considered an early preview.</p>
|
|
|
|
<p>Making Camlistore run well on cloud providers required two other
|
|
major features: the <code>blobpacked</code> storage backend (for
|
|
latency and cost reasons) and <a
|
|
href="https://http2.github.io/">HTTP/2</a> (for latency reasons).</p>
|
|
|
|
<p>The <code>blobpacked</code> storage backend allows faster reading &
|
|
serving of files because it stores related blobs contiguously within
|
|
larger container blobs (which are also valid zip files) instead of
|
|
many small randomly dispersed blobs. See the <a
|
|
href="https://camlistore.org/pkg/blobserver/blobpacked">blobpacked
|
|
package</a> documentation.</p>
|
|
|
|
<p>The Go <a href="https://http2.github.io/">HTTP/2</a> implementation
|
|
was developed for both Camlistore and the Go standard library and will
|
|
be included in Go 1.6. Camlistore 0.9 only requires Go 1.5 but
|
|
includes a vendored copy of <a
|
|
href="https://godoc.org/golang.org/x/net/http2"><code>golang.org/x/net/http2</code></a>. See
|
|
<a href="https://http2.golang.org/">https://http2.golang.org/</a> for
|
|
a demo.</p>
|
|
|
|
<p>
|
|
Source release:
|
|
</p>
|
|
|
|
<center>
|
|
<div style='font-size:18pt;font-weight:bold;'>
|
|
<a href="https://github.com/camlistore/camlistore/archive/0.9.zip">camlistore0.9-src.zip</a>
|
|
</div>
|
|
<div style='margin-top:0.5em;'>
|
|
Github: <a href="https://github.com/camlistore/camlistore/tree/0.9">github.com/camlistore/camlistore/tree/0.9</a></div>
|
|
</center>
|
|
|
|
<p>
|
|
Binary release, new in this release:
|
|
</p>
|
|
|
|
<center>
|
|
<div style='font-size:18pt;font-weight:bold;'>
|
|
<a href="/dl/0.9/camlistore0.9-linux.tar.gz">Linux</a>,
|
|
<a href="/dl/0.9/camlistore0.9-darwin.tar.gz">OS X</a>,
|
|
<a href="/dl/0.9/camlistore0.9-windows.zip">Windows</a>
|
|
</div>
|
|
</center>
|
|
|
|
<p>Please note that <a href="https://golang.org/dl/">Go 1.5 or newer</a> is now required for this release.</p>
|
|
|
|
<h2>Release stats</h2>
|
|
|
|
<p>
|
|
33 total committers over 942 commits since <a
|
|
href="/doc/release/0.8">Camlistore 0.8</a>, including Aaron Bieber,
|
|
Aaron Boodman, Andrew Gerrand, Antonin Amand, Bill Thiede, Brad
|
|
Fitzpatrick, David Jack, Emil Hessman, Eric Drechsel, Fabian Reinartz,
|
|
Fabian Wickborn, Felix Geller, Gina White, Govert Versluis, Jingguo
|
|
Yao, Lindsey Simon, Mario Russo, Mathieu Lonjaret, Matthieu
|
|
Rakotojaona, Patrick Mezard, Robert Kroeger, Salman Aljammaz, Salmān
|
|
Aljammāz, Steven L. Speek, Tamás Gulácsi, Will Norris.
|
|
</p>
|
|
|
|
<p>Thank you!</p>
|
|
|
|
<h2>Changes in 0.9</h2>
|
|
|
|
<h3>Android</h3>
|
|
<ul>
|
|
<li>Restrict upload by WiFI SSID.</li>
|
|
</ul>
|
|
|
|
<h3>Camget</h3>
|
|
<ul>
|
|
<li>Do not fetch file if already exists on local disk.</li>
|
|
</ul>
|
|
|
|
<h3>Camput</h3>
|
|
<ul>
|
|
<li>New option for the <code>share</code> command: <code>-search</code>.</li>
|
|
<li>Detect and warn when using the wrong GPG key.</li>
|
|
<li>New option for the <code>file</code> command: <code>-contents_only</code>.</li>
|
|
<li>The <code>init</code> command can now initialize the client configuration automatically from the server (using the server's <code>/help/</code> handler).</li>
|
|
</ul>
|
|
|
|
<h3>Camtool</h3>
|
|
<ul>
|
|
<li>New <code>makestatic</code> command.</li>
|
|
<li>New <code>packblobs</code> command.</li>
|
|
<li>New option for <code>search</code> command: </code>-rawquery</code>.</li>
|
|
</ul>
|
|
|
|
<h3>Cammount</h3>
|
|
<ul>
|
|
<li>Use VolumeName on OS X.</li>
|
|
</ul>
|
|
|
|
<h3>Devcam</h3>
|
|
<ul>
|
|
<li>Detect and warn when outdated.</li>
|
|
<li>New <code>hook</code> command to install and run git hooks. The only currently available hook is <code>pre-commit</code>, which runs gofmt and checks for trailing whitespace.</li>
|
|
<li>New option for <code>server</code> command: <code>-wipecache</code>.</li>
|
|
<li>New option for <code>server</code> command: <code>-memindex</code>.</li>
|
|
</ul>
|
|
|
|
<h3>Deploy</h3>
|
|
<ul>
|
|
<li>Launcher to help deploy Camlistore on Google Cloud Platform.</li>
|
|
</ul>
|
|
|
|
<h3>Docker</h3>
|
|
<ul>
|
|
<li><code>misc/docker/dock.go</code>: new program to generate a docker image for camlistored, as well as binaries in isolation.</li>
|
|
</ul>
|
|
|
|
<h3>Genfileembed</h3>
|
|
<ul>
|
|
<li>New flag to generate build tags.</li>
|
|
</ul>
|
|
|
|
<h3>Images</h3>
|
|
<ul>
|
|
<li>Optional faster resizing with djpeg (if available).</li>
|
|
<li>Support for tiff decoding.</li>
|
|
<li>Use <a href="https://godoc.org/golang.org/x/image/draw">golang.org/x/image/draw</a> for YCbCr resizing.</li>
|
|
</ul>
|
|
|
|
<h3>Importers</h3>
|
|
<ul>
|
|
<li>New importer: pinboard.</li>
|
|
</ul>
|
|
|
|
<h3>Indexer</h3>
|
|
<ul>
|
|
<li>Improved MySQL connection handling (switch to <code>go-mysql-driver</code>).</li>
|
|
<li>New sorted implementation: <a href="https://github.com/syndtr/goleveldb">LevelDB</a>. It is now the default index storage in the server configuration that is generated when no configuration file exists.</li>
|
|
<li>Out of order reindexing finished/fixed.</li>
|
|
<li>When indexing from images: always try a small prefix buffer first, then read full file if needed.</li>
|
|
<li>Defined a (large) limit on key and value size for all sorted implementations.</li>
|
|
<li>The wholeRef of a file is always indexed, for faster file stats everywhere.</li>
|
|
<li>RDBMS-specific placeholder replacements (and table name replacements) are now cached.</li>
|
|
</ul>
|
|
|
|
<h3>Misc performance changes, bug fixes, clean-ups, etc.</h3>
|
|
<ul>
|
|
<li><code>HTTP/2</code></li>
|
|
<li>make.go: improvements, refactoring, and cleanup.</li>
|
|
<li>Migration to new third_parties: <code>golang.org/x/oauth2</code>, <code>google.golang.org/cloud</code>, etc.</li>
|
|
<li>goexif: features and fixes, then contributed upstream.</li>
|
|
<li>Server system status is constantly refreshed over websocket.</li>
|
|
<li>Most of the JSON maps (e.g. for server responses) should be gone in favor of annotated structs.</li>
|
|
<li>More robust localhost detection.</li>
|
|
<li>The setup wizard was removed.</li>
|
|
</ul>
|
|
|
|
<h3>Ports</h3>
|
|
<ul>
|
|
<li>Solaris: Camlistore should at least build.</li>
|
|
<li>Darwin/386: deprecated, and user is warned about it when trying to build.</li>
|
|
</ul>
|
|
|
|
<h3>Schema</h3>
|
|
<ul>
|
|
<li>Cache last blob read when reading files -> major performance optimization.</li>
|
|
<li>File/chunks related changes, often optimizations with blobpacked in mind.</li>
|
|
</ul>
|
|
|
|
<h3>Search</h3>
|
|
<ul>
|
|
<li>New "Around" parameter for queries. Introduced to help web UI features.</li>
|
|
<li>New "filename" search predicate.</li>
|
|
</ul>
|
|
|
|
<h3>Storage</h3>
|
|
<ul>
|
|
<li>New <code>blobpacked</code> blobserver: keeps related blobs physically contiguous within zip files.</li>
|
|
<li>Many Google Cloud Storage improvements, including using the official <a href="https://godoc.org/google.golang.org/cloud/storage"><code>google.golang.org/cloud/storage</code></a> package almost everywhere.</li>
|
|
<li>New SubFetcher interface.</li>
|
|
<li>New BlobStreamer interface.</li>
|
|
<li>New WholeRefFetcher interface.</li>
|
|
<li>New memory blobserver.</li>
|
|
</ul>
|
|
|
|
<h3>Vendoring</h3>
|
|
<ul>
|
|
<li>With the arrival of the <a href="https://golang.org/s/go15vendor">new vendoring mechanism in Go 1.5</a> (on by default in Go 1.6), we started moving our vendored libraries from the <code>third_party</code> directory to the <code>vendor</code> directory (as is the convention for the new mechanism). This means we do not have to modify the import path of the third party packages we use anymore.</li>
|
|
<li>In addition, we also started moving a fair number of the Camlistore packages out of the <a href="https://camlistore.org">camlistore.org</a> namespace, to independent packages under the <a href="https://go4.org">go4.org</a> namespace. The goal is to make those packages more visible and usable as they can be useful to a larger audience.</li>
|
|
</ul>
|
|
|
|
<h3>Travis</h3>
|
|
<ul>
|
|
<li>We are now using <a href="https://travis-ci.org/camlistore/camlistore">Travis CI</a>, until we can rewrite our build bot based on the Go buildlet and trybots.</li>
|
|
</ul>
|
|
|
|
<h3>Website</h3>
|
|
<ul>
|
|
<li>New launcher to deploy Camlistore on Google Cloud: <a href="https://camlistore.org/launch">https://camlistore.org/launch</a>.</li>
|
|
<li>CONTRIBUTORS are generated from git log.</li>
|
|
<li>Issue tracker has moved to github.</li>
|
|
<li>The <code>camweb</code> binary which runs the camlistore.org website has been updated to run easily on Google Compute Engine and auto-refresh from the Camlistore source tree. This means our website should be more easily updated going forward.</li>
|
|
<li>Markdown is now supported, and some of the static <code>html</code> content has been converted to it.</li>
|
|
</ul>
|
|
|
|
<h3>Web UI</h3>
|
|
<ul>
|
|
<li>New style: top search bar, pudgy navigation menu, vertical contextual actions sidebar.</li>
|
|
<li>Simpler URL blobRef format: <code>/ui/<blobref></code>.</li>
|
|
<li>Some new features:</li>
|
|
<ul>
|
|
<li>Improved uploading: context aware (add to an existing set), duplicate detection/prevention, better drop area, show bytes transferred.</li>
|
|
<li>Aspects: generic attributes editor for permanode aspect. New directory aspect.</li>
|
|
<li>Sidebar: mass tagging/deleting.</li>
|
|
<li>Selections state is saved across navigation.</li>
|
|
<li>Download: view original (non-resized) item.</li>
|
|
<li>Videos rendering.</li>
|
|
</ul>
|
|
<li>Pages changes:</li>
|
|
<ul>
|
|
<li>Improved status page, with lots more info, and restart camlistored "button".</li>
|
|
<li>New help page: client tools configuration, and download links.</li>
|
|
<li>New mobile auto-configuration page with QR code.</li>
|
|
<li>New /debug/config page.</li>
|
|
</ul>
|
|
<li>misc:</li>
|
|
<ul>
|
|
<li>Piggy menu shows server errors.</li>
|
|
<li>Left/right navigation restored.</li>
|
|
<li>Better layout on mobile.</li>
|
|
<li>Cleaned out most of the non-React, legacy code.</li>
|
|
</ul>
|
|
</ul>
|
|
|
|
<h3>Wkfs</h3>
|
|
<ul>
|
|
<li>New package that provides a filesystem abstraction layer.</li>
|
|
</ul>
|