aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-05-09 19:05:30 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-05-09 19:05:30 -0400
commita58efdb69b0c018322bb773ce14dc33cb252b165 (patch)
treeb4331ae58fbab1b0dbc9665d41b75ded62e7fe43
parent0c4c8f7a9d09c497d95771c894a5cc3d4276609b (diff)
Update the release notes
-rw-r--r--doc/manual/release-notes.xml94
1 files changed, 82 insertions, 12 deletions
diff --git a/doc/manual/release-notes.xml b/doc/manual/release-notes.xml
index 7ef25401b..4c88a8ced 100644
--- a/doc/manual/release-notes.xml
+++ b/doc/manual/release-notes.xml
@@ -10,7 +10,8 @@
<section xml:id="ssec-relnotes-1.0"><title>Release 1.0 (TBA)</title>
-<para>This release has the following improvements:</para>
+<para>There have been numerous improvements and bug fixes since the
+previous release. Here are the most significant:</para>
<itemizedlist>
@@ -23,29 +24,98 @@
</listitem>
<listitem>
- <para>The option <option>--timeout</option> (corresponding to the
- configuration setting <literal>build-timeout</literal>) allows you
- to set an absolute timeout on builds — if a build runs for more than
- the given number of seconds, it is terminated. This is useful for
- recovering automatically from builds that are stuck in an infinite
- loop but keep producing output, and for which
- <literal>--max-silent-time</literal> is ineffective.</para>
+ <para>Nix now uses SQLite for its database. This is faster and
+ more flexible than the old <emphasis>ad hoc</emphasis> format.
+ SQLite is also used to cache the manifests in
+ <filename>/nix/var/nix/manifests</filename>, resulting in a
+ significant speedup.</para>
+ </listitem>
+
+ <listitem>
+ <para>Nix now has an search path for expressions. The search path
+ is set using the environment variable <envar>NIX_PATH</envar> and
+ the <option>-I</option> command line option. In Nix expressions,
+ paths between angle brackets are used to specify files that must
+ be looked up in the search path. For instance, the expression
+ <literal>&lt;nixpkgs/default.nix></literal> looks for a file
+ <filename>nixpkgs/default.nix</filename> relative to every element
+ in the search path.</para>
+ </listitem>
+
+ <listitem>
+ <para>The new command <command>nix-build --run-env</command>
+ builds all dependencies of a derivation, then starts a shell in an
+ environment containing all variables from the derivation. This is
+ useful for reproducing the environment of a derivation for
+ development.</para>
+ </listitem>
+
+ <listitem>
+ <para>The new command <command>nix-store --verify-path</command>
+ verifies that the contents of a store path have not
+ changed.</para>
</listitem>
<listitem>
- <para>TODO: “or” keyword.</para>
+ <para>The new command <command>nix-store --print-env</command>
+ prints out the environment of a derivation in a format that can be
+ evaluated by a shell.</para>
</listitem>
<listitem>
- <para>TODO: Nix expression search path (<literal>import &lt;foo/bar.nix></literal>).</para>
+ <para>Attribute names can now be arbitrary strings. For instance,
+ you can write <literal>{ "foo-1.2" = …; "bla bla" = …; }."bla
+ bla"</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Attribute selection can now provide a default value using
+ the <literal>or</literal> operator. For instance, the expression
+ <literal>x.y.z or e</literal> evaluates to the attribute
+ <literal>x.y.z</literal> if it exists, and <literal>e</literal>
+ otherwise.</para>
</listitem>
<listitem>
- <para>TODO: <command>nix-store --verify-path</command> command.</para>
+ <para>The right-hand side of the <literal>?</literal> operator can
+ now be an attribute path, e.g., <literal>attrs ?
+ a.b.c</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>On Linux, Nix will now make files in the Nix store immutable
+ on filesystems that support it. This prevents accidental
+ modification of files in the store by the root user.</para>
+ </listitem>
+
+ <listitem>
+ <para>Nix has preliminary support for derivations with multiple
+ outputs. This is useful because it allows parts of a package to
+ be deployed and garbage-collected separately. For instance,
+ development parts of a package such as header files or static
+ libraries would typically not be part of the closure of an
+ application, resulting in reduced disk usage and installation
+ time.</para>
+ </listitem>
+
+ <listitem>
+ <para>The Nix store garbage collector is faster and holds the
+ global lock for a shorter amount of time.</para>
+ </listitem>
+
+ <listitem>
+ <para>The option <option>--timeout</option> (corresponding to the
+ configuration setting <literal>build-timeout</literal>) allows you
+ to set an absolute timeout on builds — if a build runs for more than
+ the given number of seconds, it is terminated. This is useful for
+ recovering automatically from builds that are stuck in an infinite
+ loop but keep producing output, and for which
+ <literal>--max-silent-time</literal> is ineffective.</para>
</listitem>
<listitem>
- <para>TODO: <command>nix-store --print-env</command> command.</para>
+ <para>Nix development has moved to GitHub (<link
+ xlink:href="https://github.com/NixOS/nix" />).</para>
</listitem>
</itemizedlist>