]> 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
 ==================
 
 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:
 
 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...).
 
   - Better VFS performance for large repositories (i.e. fuse, ls,
     web...).
 
@@ -38,8 +49,6 @@ considering:
 
   - Support for alternate remote storage APIs.
 
 
   - 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.)
 
 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.
 
    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
 =======================================
 
  - 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>
  - <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
 ===========
 
 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
 ===============
 
 Getting started
 ===============
@@ -127,11 +124,11 @@ From source
    bup, please check out the latest stable release like this:
 
     ```sh
    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:
     ```
 
    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).
 
  - Install the required python libraries (including the development
    libraries).
@@ -151,7 +148,7 @@ From source
    Otherwise try this:
 
     ```sh
    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
     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
 
     ```sh
     bup init
@@ -427,10 +424,8 @@ That's all there is to it!
 Notes on FreeBSD
 ----------------
 
 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.
 
 - 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.
 
     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.
  
  - 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