= freebsd-rustdate changelog


== 1.0.0  (2024-09-19)

* Bump to full production release.

* Progress bars now include a rough ETA estimate.


== 0.7.4  (2024-09-18)

* No user-visible changes; this release just includes internal dev
  improvements.

* Internal: Clippy config has been added and lints dealt with.  No
  functional change.

* Internal: A script to automate generating release tarballs is added.


== 0.7.3  (2024-09-17)

* Support for non-standard subcomponents is now enabled.  This will fix
  operation with some custom builds that have things that don't exist in
  the official servers.  If this affected you, you'd know because
  operations like fetch would have blown up early on with an error like
      Bad subcomponent: Matching variant not found

* `-d` is now accepted as an alias for the global `-w` / `--workdir`
  option, for compatibility with freebsd-update.sh.

* Internal: uses of derivative have been replaced with educe.  No visible
  change at the user level.


== 0.7.2  (2024-09-15)

* Make version figuring more robust.  When no kernel is installed (as may
  be common in a subdir or jail), `freebsd-version -ku` would throw an
  error instead of giving us useful versions, which would have caused us
  to fail.  But we only need both versions so we're sure to get the
  higher patchlevel, so we can just quietly handle that.

* `install`ing an `upgrade` will remind you to update your bootblocks.


== 0.7.1  (2024-09-12)

* `extract` now has a `--no-sync` arg like `install`, to disable calling
  `fsync()` on each file as it's installed.


== 0.7.0  (2024-09-12)

* The `install` and `extract` commands now take a `-j` argument to enable
  multi-thread parallel installation.  Note that this is a bool; the
  global `-j` argument sets the number of threads, this just enables
  using them for the installs.  This is potentially dangerous since it
  can cause a lot more damage if something goes wrong (e.g., it won't
  stop on the first error like a non-parallel install), but it can also
  be faster.  This should be considered experimental (even by
  freebsd-rustdate standards).

* Internal: the custom threadpool used for parallelizing various actions
  has been replaced by direct usage of rayon.  This shouldn't cause any
  user-visible effects, but simplifies the code and probably has trivial
  resource usage improvements.

* Internal: various code cleanups and rearrangement.


== 0.6.3  (2024-09-01)

* Added 'complete' command to generate shell completions for various
  shells.


== 0.6.2  (2024-08-29)

* Permissions on existing directories are now more consistently set if
  necessary.  This is most visible on `extract` and on upgrades with
  KeepModifiedMetadata disabled.

* Various code cleanup and rearrangement.


== 0.6.1  (2024-08-22)

* Further code cleanups and reorganization.

* Improve some output cosmetics.


== 0.6.0  (2024-08-21)

* Add `check-fetch` command to quickly check whether we seem to be on the
  latest patchlevel.

* Improve command and option help.

* Various code and comment rearrangement and cleanup.


== 0.5.0  (2024-08-20)

* Add `cron` command to run with a variable sleep from cron, and email
  the config'd MailTo when there's something to do.


== 0.4.0  (2024-08-18)

* Add `extract` command to extract exact upstream values of given paths.
  This is intended to be used for manual spot cleanups of differences
  identified by `check-sys` that you don't want to actually differ.  It
  has few guardrails and is intended to do exactly what you say, so use
  it with caution.

* When ignoring hash difference, `check-sys` will no longer compute the
  hashes of the files, which saves a lot of time.


== 0.3.1  (2024-08-15)

* The `check-sys` command has gained `--path` and `--exclude` arguments
  to limit the paths checked, and the output format is cosmetically
  adjusted.

* KeepModifiedMetadata now properly ignores uid/gid when running as
  non-root.  This is necessary because otherwise you'd miss out on a file
  mode changing across versions.

* Doing an upgrade from a non-latest-patchlevel is a bit more robust now.


== 0.3.0  (2024-08-14)

* Add `check-sys` command, which checks the state of your system against
  the expected status from upstream.  Fills a similar role to
  freebsd-update.sh's IDS command.


== 0.2.0 (2024-08-13)

First actual release.  Basic functionality available. fetch, upgrade,
install all working in practice.
