]> arthur.barton.de Git - bup.git/commitdiff
Update README, HACKING, and release notes for 0.33
authorRob Browning <rlb@defaultvalue.org>
Sun, 16 Oct 2022 17:17:17 +0000 (12:17 -0500)
committerRob Browning <rlb@defaultvalue.org>
Sun, 16 Oct 2022 20:49:13 +0000 (15:49 -0500)
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
HACKING
README.md
note/0.33-from-0.32.md [new file with mode: 0644]

diff --git a/HACKING b/HACKING
index 372bc732a5188e164e0b33f2d7a8a390e7d3d6d7..0c8c719cf685a2bb34e64419cdc821de6050f1f0 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -19,10 +19,21 @@ via email.
 Current Trajectory
 ==================
 
-Now that we've finished the 0.32 release, we're working on 0.33, and
+Now that we've finished the 0.33 release, we're working on 0.34, and
 although we're not certain which new features will be included, we're
 considering:
 
+  - Migrating hashsplitting to C.
+
+  - Automatically splitting trees to avoid having to save large tree
+    objects for large directories even if only a few files have
+    changed or been added (e.g. maildirs).
+
+  - Moving all of the compoents of the index to sqlite.  Right now the
+    main index is an mmapped file, and the hard link and metadata
+    databases are pickled.  As a result the index isn't transactional
+    and suffers from bugs caused by "skew" across the components.
+
   - Better VFS performance for large repositories (i.e. fuse, ls,
     web...).
 
@@ -38,8 +49,6 @@ considering:
 
   - Support for alternate remote storage APIs.
 
-  - Discontinuing Python 2 work, excepting perhaps some bugfixes.
-
 If you have the time and inclination, please help review patches
 posted to the list, or post your own.  (See "ways to help" below.)
 
index 807dce7885a5ced175c329685e57aabcbe1baa80..2d46819d3f4a0c16063b0caee2b4bd092ee1b5c9 100644 (file)
--- a/README.md
+++ b/README.md
@@ -80,16 +80,13 @@ Reasons you might want to avoid bup
    Solaris, or Windows (with Cygwin, and WSL).  Patches to support
    other platforms are welcome.
 
- - Until resolved, a [glibc bug](https://sourceware.org/bugzilla/show_bug.cgi?id=26034)
-   might cause bup to crash on startup for some (unusual) command line
-   argument values, when bup is configured to use Python 3.
-
  - Any items in "Things that are stupid" below.
 
 
 Notable changes introduced by a release
 =======================================
 
+ - <a href="note/0.33-from-0.32.md">Changes in 0.33 as compared to 0.32</a>
  - <a href="note/0.32-from-0.31.md">Changes in 0.32 as compared to 0.31</a>
  - <a href="note/0.31-from-0.30.1.md">Changes in 0.31 as compared to 0.30.1</a>
  - <a href="note/0.30.1-from-0.30.md">Changes in 0.30.1 as compared to 0.30</a>
@@ -106,9 +103,9 @@ Notable changes introduced by a release
 Test status
 ===========
 
-| master | 0.30.x | 0.29.x |
-|--------|--------|--------|
-| [![master branch test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=master)](https://cirrus-ci.com/github/bup/bup) | [![0.30 branch test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=0.30.x)](https://cirrus-ci.com/github/bup/bup) | [![0.29 branch test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=0.29.x)](https://cirrus-ci.com/github/bup/bup) |
+| master |
+|--------|
+| [![master branch test status](https://api.cirrus-ci.com/github/bup/bup.svg?branch=master)](https://cirrus-ci.com/github/bup/bup) |
 
 Getting started
 ===============
@@ -127,11 +124,11 @@ From source
    bup, please check out the latest stable release like this:
 
     ```sh
-    git checkout 0.32
+    git checkout 0.33
     ```
 
    You can see the latest stable release here:
-   https://github.com/bup/bup/releases.
+   https://github.com/bup/bup/tags
 
  - Install the required python libraries (including the development
    libraries).
@@ -151,7 +148,7 @@ From source
    Otherwise try this:
 
     ```sh
-    apt-get install python3.7-dev python3-fuse
+    apt-get install python3-dev python3-fuse
     apt-get install python3-pyxattr python3-pytest
     apt-get install python3-distutils
     apt-get install pkg-config linux-libc-dev libacl1-dev
@@ -268,9 +265,9 @@ Using bup
     ...
     ```
 
- - Initialize the default BUP_DIR (~/.bup -- you can choose another by
-   either specifying `bup -d DIR ...` or setting the `BUP_DIR`
-   environment variable for a command):
+ - Initialize the default bup repository (~/.bup -- you can choose
+   another by either specifying `bup -d DIR ...` or setting the
+   `BUP_DIR` environment variable for a command):
 
     ```sh
     bup init
@@ -427,10 +424,8 @@ That's all there is to it!
 Notes on FreeBSD
 ----------------
 
-- FreeBSD's default 'make' command doesn't like bup's Makefile. In order to
-  compile the code, run tests and install bup, you need to install GNU Make
-  from the port named 'gmake' and use its executable instead in the commands
-  seen above. (i.e. 'gmake test' runs bup's test suite)
+- In order to compile the code, run tests and install bup, you need to
+  install GNU Make from the `gmake` port.
 
 - Python's development headers are automatically installed with the 'python'
   port so there's no need to install them separately.
@@ -600,18 +595,6 @@ mailing list (see below) if you'd like to help.
     give the continuous-backup process a really low CPU and I/O priority so
     you wouldn't even know it was running.
 
- - bup only has experimental support for pruning old backups.
-
-   While you should now be able to drop old saves and branches with
-   `bup rm`, and reclaim the space occupied by data that's no longer
-   needed by other backups with `bup gc`, these commands are
-   experimental, and should be handled with great care.  See the
-   man pages for more information.
-
-   Unless you want to help test the new commands, one possible
-   workaround is to just start a new BUP_DIR occasionally,
-   i.e. bup-2013, bup-2014...
-
  - bup has never been tested on anything but Linux, FreeBSD, NetBSD,
    OS X, and Windows+Cygwin.
  
diff --git a/note/0.33-from-0.32.md b/note/0.33-from-0.32.md
new file mode 100644 (file)
index 0000000..72970cf
--- /dev/null
@@ -0,0 +1,102 @@
+
+Notable changes in 0.33 since 0.32
+==================================
+
+* Python 3 is now required, in particular 3.7 or newer.
+
+* The version of Python is no longer determined by the value of
+  `PYTHON` during `./configure`.  It is now determined by the version
+  of `python-config` selected during configuration.  The
+  `BUP_PYTHON_CONFIG` environment variable can be set during
+  configuration to select a particular executable
+  (e.g. `BUP_PYTHON_CONFIG=python3.9-config ./configure`).  See the
+  `README` for further details.
+
+* The `bup` executable is now a binary rather than a Python script.
+  Practically speaking, this means that the Python version is
+  determined by the `libpython` that the executable is linked against
+  (selected via `python-config`), and it means that bup will show up
+  as "bup" in process listings rather than a python invocation.
+
+* The output of `bup ls` for multiple paths includes each path before
+  its contents, more closely matching the system `ls`.
+
+* The `bup ftp` `ls` command should now respect the working directory
+  (set by `cd`), and that directory has been added to the prompt.
+
+* Some minor changes have been made to `bup web`'s interface.
+
+* The `index-cache` is no longer included in the `bup midx` `--dir`
+  default.
+
+* Performance may have improved after the relocation of a number of
+  operations from Python to C, and a number of improvements to the
+  VFS.
+
+* The `#bup` IRC channel has moved to https://libera.chat/.
+
+Bugs
+----
+
+* Bup should now respect the current umask, directory sgid bit,
+  etc. when creating new files (e.g. new packfiles).  Previously, it
+  would create them via mkstemp, which would cause them to be readable
+  only by the current user.
+
+* Bup should now be able to handle repositories containing signed
+  commits.
+
+* `bup tag` has been changed to rely on `git update-ref` instead of
+  writing the (loose) refs directly so that it can handle packed refs
+  correctly.
+
+* `bup save` should be more careful about noting an error and skipping
+  paths whose type (link, regular file, ...) has changed since
+  indexing.
+
+* There should no longer be a narrow window where `save` could store
+  conflicting symlink targets or conflicting sizes (in the metadata
+  record and the packfile symlink blob) for a path if the filesystem
+  changed at just the wrong time during a save.
+
+* `bup fuse` should no longer become unusable after an unfinished read
+  of commits associated with tags.  The underlying VFS issue may have
+  affected other commands too.
+
+* Bup's packfile names should now match git's.  Previously bup
+  computed the SHA1 from just the sorted object list
+  (cf. `git-index-pack(1)`), but git appears to include the entire
+  pack file in the hash.
+
+* Passing idx files to `bup midx` along with `--dir` should now work
+  correctly.
+
+* The `bup index --print --long ...` mode fields should now be
+  formatted correctly with Python 3 (it changed the `oct()` format).
+
+* Resource usage (e.g. memory) may have improved, given a number of
+  changes intended to make bup release resources more carefully and
+  sooner.
+
+Build and install
+-----------------
+
+* As mentioned above, `PYTHON`'s role during configuration has been
+  replaced by `BUP_PYTHON_CONFIG`.
+
+* `./configure` now supports `--with-pylint=[yes|no|maybe]`.
+
+* Any `CC`, `CPPFLAGS`, `CFLAGS`, or `LDFLAGS` set during
+  `./configure` should now be preserved across future make
+  invocations.
+
+* The build process should now work on systems where `make` isn't GNU
+  Make (the `Makefile` automatically redirects to `GNUmakefile`).
+
+* The `PANDOC` path can contain spaces.
+
+Thanks to (at least)
+====================
+
+Abdel Said, Arthur Ward, Bas Stottelaar, Brian Minton, Greg Troxel,
+Johannes Berg, Mark Hewitt, Muh Muhten, and Rob Browning