1.17 - 2022-04-28
- Add 'dark-bg' color scheme and use that by default
- Use natural sort order when sorting by file name
- Improve compatibility with C89 environments
- Fix wrong assumption about errno not being set by realloc()
2.7.1
[Bug] 1924: (also 2007) Overhaul behavior and testing re: merging together different sources for the key_filename parameter in Connection.connect_kwargs. This fixes a number of type-related errors (string objects have no extend attribute, cannot add lists to strings, etc).
v1.14.2 - 2022-07-11
Terminal background luma determination now works on all tested unixes,
including MacOS - Fix#575
Allow :focus based verbs to take a pattern - Fix#389
2.7.0 2022-03-25
[Feature]: Forward local terminal resizes to the remote end, when applicable. (For the technical: this means we now turn SIGWINCH into SSH window-change messages.)
[Feature]: Add shell, a belated port of the v1 open_shell() feature.
This wasn’t needed initially, as the modern implementation of run is as good or better for full interaction than open_shell() was, provided you’re happy supplying a specific shell to execute.
shell serves the corner case where you aren’t happy doing that, eg when you’re speaking to network appliances or other targets which are not typical Unix server environments.
Like open_shell(), this new method is primarily for interactive use, and has a slightly less useful return value. See its API docs for more details.
[Bug] 2142: Update Connection temporarily so that it doesn’t incidentally apply replace_env=True to local shell commands, only remote ones. On Windows under Python 3.7+, this was causing local commands to fail due to lack of some environment variables. Future updates will cleanly separate the config tree for remote vs local methods.
Thanks to Bartosz Lachowicz for the report and David JM Emmett for the patch.
[Support]: Overhaul administrative metadata and migrate to Circle-CI from Travis-CI.
More: https://www.fabfile.org/changelog.html
Invoke is a Python library for managing shell-oriented subprocesses and
organizing executable Python code into CLI-invokable tasks. It draws
inspiration from various sources (make/rake, Fabric 1.x, etc) to arrive at a
powerful & clean feature set.
v2.13.1
=======
Minor Changes
-------------
- Add an 'action_plugin' field for modules in runtime.yml plugin_routing.
This fixes module_defaults by supporting modules-as-redirected-actions
without redirecting module_defaults entries to the common action.
.. code: yaml
plugin_routing:
action:
facts:
redirect: ns.coll.eos
command:
redirect: ns.coll.eos
modules:
facts:
redirect: ns.coll.eos_facts
command:
redirect: ns.coll.eos_command
With the runtime.yml above for ns.coll, a task such as
.. code: yaml
- hosts: all
module_defaults:
ns.coll.eos_facts: {'valid_for_eos_facts': 'value'}
ns.coll.eos_command: {'not_valid_for_eos_facts': 'value'}
tasks:
- ns.coll.facts:
will end up with defaults for eos_facts and eos_command
since both modules redirect to the same action.
To select an action plugin for a module without merging
module_defaults, define an action_plugin field for the resolved
module in the runtime.yml.
.. code: yaml
plugin_routing:
modules:
facts:
redirect: ns.coll.eos_facts
action_plugin: ns.coll.eos
command:
redirect: ns.coll.eos_command
action_plugin: ns.coll.eos
The action_plugin field can be a redirected action plugin, as
it is resolved normally.
Using the modified runtime.yml, the example task will only use
the ns.coll.eos_facts defaults.
- ansible-galaxy - Support resolvelib versions 0.6.x, 0.7.x, and 0.8.x. The full range of supported versions is now >= 0.5.3, < 0.9.0.
- ansible-test - Add RHEL 9.0 remote support.
- ansible-test - Add support for Ubuntu VMs using the ``--remote`` option.
- ansible-test - Add support for exporting inventory with ``ansible-test shell --export {path}``.
- ansible-test - Add support for multi-arch remotes.
- ansible-test - Add support for running non-interactive commands with ``ansible-test shell``.
- ansible-test - Avoid using the ``mock_use_standalone_module`` setting for unit tests running on Python 3.8 or later.
- ansible-test - Blocking mode is now enforced for stdin, stdout and stderr. If any of these are non-blocking then ansible-test will exit during startup with an error.
- ansible-test - Improve consistency of output messages by using stdout or stderr for most output, but not both.
- ansible-test - The ``shell`` command can be used outside a collection if no controller delegation is required.
Bugfixes
--------
- Add PyYAML >= 5.1 as a dependency of ansible-core to be compatible with Python 3.8+.
- ansible-config dump - Only display plugin type headers when plugin options are changed if --only-changed is specified.
- ansible-galaxy - handle unsupported versions of resolvelib gracefully.
- ansible-test - Fix internal validation of remote completion configuration.
- ansible-test - Prevent ``--target-`` prefixed options for the ``shell`` command from being combined with legacy environment options.
- ansible-test - Sanity test output with the ``--lint`` option is no longer mixed in with bootstrapping output.
- ansible-test - Subprocesses are now isolated from the stdin, stdout and stderr of ansible-test. This avoids issues with subprocesses tampering with the file descriptors, such as SSH making them non-blocking. As a result of this change, subprocess output from unit and integration tests on stderr now go to stdout.
- ansible-test - Subprocesses no longer have access to the TTY ansible-test is connected to, if any. This maintains consistent behavior between local testing and CI systems, which typically do not provide a TTY. Tests which require a TTY should use pexpect or another mechanism to create a PTY.
- apt module now correctly handles virtual packages.
- lookup plugin - catch KeyError when lookup returns dictionary (https://github.com/ansible/ansible/pull/77789).
- pip - fix cases where resolution of pip Python module fails when importlib.util has not already been imported
- plugin loader - Sort results when fuzzy matching plugin names (https://github.com/ansible/ansible/issues/77966).
- plugin loader will now load config data for plugin by name instead of by file to avoid issues with the same file being loaded under different names (fqcn + short name).
- psrp connection now handles default to inventory_hostname correctly.
- winrm connection now handles default to inventory_hostname correctly.
Based on the work by Dan Cîrnaț in pkgsrc-wip.
v0.39
=====
- !33 - Remove PulseAudio backend
- !34 - Remove support to CELT codec
- !42 - Drop capabilities from usb-acl-helper binary
- !45 - #123 - Install ACL helper in libexec directory
- !48 - Add support to Wayland mouse in server mode
- !49 - #126 - Read all SASL buffer
- !54 - Add Copy & Paste support over Webdav
- !58 - Improve input and display on HiDPI displays
- !64 - Add support for Physical size display
- !69 - Fix leak on Display's surface
- !74 - Fix read overflow on (not seamless) migration code
- !75 - Fix usb redirect on connect, see [rhbz#1874740]
- !77 - Fixes buffer overflow in QUIC [CVE-2020-14355]
- Require polkit >= 0.101
- Require meson >= 0.53
- Require glib-2.0 >= 2.52
[rhbz#1874740]: https://bugzilla.redhat.com/show_bug.cgi?id=1874740
[CVE-2020-14355]: https://bugzilla.redhat.com/show_bug.cgi?id=1885566
v0.38
=====
- #108 - Add CD/DVD redirection, to allow mounting ISO images from client.
- #99 - Fix display scaling with EGL and HiDPI monitors
- #19 - Fix display corruption on HiDPI
- #82 - Various clipboard fixes & improvements, related to host/guest races &
cltipboard managers
- [rhbz#1720532] - Fix buffer overflow on sending data with shared-folders
- [rhbz#1695618] - Fix hang over failed migration
- API: add spice_display_channel_change_preferred_video_codec_types()
- Several usbredir related fixes and code improvements
- Several video stream related fixes and code improvements
- Several shared-folder related fixes and code improvements
- file-xfer: fix stuck transfer while transfering multiple big files at once
- file-xfer: fix possible crash on Windows
- Migration: Fix metadata swap of channels
- build-sys: remove autotools (transition to meson completed)
- Require spice-protocol >= 0.14.1
- Require libusb >= 1.0.21
- Translations:
- Update Italian
- Add Russian
[rhbz#1720532]: https://bugzilla.redhat.com/show_bug.cgi?id=1720532
[rhbz#1695618]: https://bugzilla.redhat.com/show_bug.cgi?id=1695618
Previously the u-boot-beagleboneblack package used the default U-Boot
version, which was 2018.11. However, that version failed to boot with
the NetBSD UEFI bootloader, efiboot. Updating to U-Boot version
2022.04 enables UEFI booting.
5.9.1
=====
**Enhancements**
- 1053_: dropped support for Python 2.6. (patches by Matthieu Darbois and Hugo van Kemenade)
- 2050_, [Linux]: increase ``read(2)`` buffer size from 1k to 32k when reading
``/proc`` pseudo files line by line. This should help having more consistent
results.
- 2057_, [OpenBSD]: add support for `cpu_freq()`_.
- 2107_ [Linux]: `Process.memory_full_info()`_ (reporting process USS/PSS/Swap
memory) now reads ``/proc/pid/smaps_rollup`` instead of ``/proc/pids/smaps``,
which makes it 5 times faster.
**Bug fixes**
- 2048_: ``AttributeError`` is raised if ``psutil.Error`` class is raised
manually and passed through ``str``.
- 2049_, [Linux]: `cpu_freq()`_ erroneously returns ``curr`` value in GHz while
``min`` and ``max`` are in MHz.
- 2050_, [Linux]: `virtual_memory()`_ may raise ``ValueError`` if running in a
LCX container.
v1.14.0 - 2022-07-05
Major Feature: imports
-A configuration file can now import one or several other ones. An import can
have a condition on the terminal's background color, which makes it possible
to import either a dark or a light theme depending on the current terminal
settings. You're also encouraged to split your configuration in several files,
as is now done for the default configuration.
Minor changes
-fix --cmd not working (it was accidentaly renamed in --commands, -c was still
working) - Fix#570
2.17.8 (2022-07-05)
Bug Fixes
remove chrono from the dependency tree. This assures there is no possibility
for undefined behaviour to to localtime support used by some of the
trash-crate code otherwise.
pkgsrc changes: drop egg.mk from xentools415 (it's not suitable for this
package and causes duplicate targets); and instead mark as incompatible
with python2.7 and TOOL_DEPEND on py-setuptool.
See http://mail-index.netbsd.org/tech-pkg/2022/07/04/msg026500.html
and followups for details
Upstream changes are mostly bugfixes
Version 1.2.1 (2022-06-06)
--------------------------
Upgrade notes:
Some things can be recommended for the upgrade process from borg 1.1.x
(please also read the important compatibility notes below):
- do you already want to upgrade? 1.1.x also will get fixes for a while.
- be careful, first upgrade your less critical / smaller repos.
- first upgrade to a recent 1.1.x release - especially if you run some older
1.1.* or even 1.0.* borg release.
- using that, run at least one `borg create` (your normal backup), `prune`
and especially a `check` to see everything is in a good state.
- check the output of `borg check` - if there is anything special, consider
a `borg check --repair` followed by another `borg check`.
- if everything is fine so far (borg check reports no issues), you can consider
upgrading to 1.2.x. if not, please first fix any already existing issue.
- if you want to play safer, first **create a backup of your borg repository**.
- upgrade to latest borg 1.2.x release (you could use the fat binary from
github releases page)
- run `borg compact --cleanup-commits` to clean up a ton of 17 bytes long files
in your repo caused by a borg 1.1 bug
- run `borg check` again (now with borg 1.2.x) and check if there is anything
special.
- run `borg info` (with borg 1.2.x) to build the local pre12-meta cache (can
take significant time, but after that it will be fast) - for more details
see below.
- check the compatibility notes (see below) and adapt your scripts, if needed.
- if you run into any issues, please check the github issue tracker before
posting new issues there or elsewhere.
If you follow this procedure, you can help avoiding that we get a lot of
"borg 1.2" issue reports that are not really 1.2 issues, but existed before
and maybe just were not noticed.
Compatibility notes:
- matching of path patterns has been aligned with borg storing relative paths.
Borg archives file paths without leading slashes. Previously, include/exclude
patterns could contain leading slashes. You should check your patterns and
remove leading slashes.
- dropped support / testing for older Pythons, minimum requirement is 3.8.
In case your OS does not provide Python >= 3.8, consider using our binary,
which does not need an external Python interpreter. Or continue using
borg 1.1.x, which is still supported.
- freeing repository space only happens when "borg compact" is invoked.
- mount: the default for --numeric-ids is False now (same as borg extract)
- borg create --noatime is deprecated. Not storing atime is the default behaviour
now (use --atime if you want to store the atime).
- list: corrected mix-up of "isomtime" and "mtime" formats.
Previously, "isomtime" was the default but produced a verbose human format,
while "mtime" produced a ISO-8601-like format.
The behaviours have been swapped (so "mtime" is human, "isomtime" is ISO-like),
and the default is now "mtime".
"isomtime" is now a real ISO-8601 format ("T" between date and time, not a space).
- create/recreate --list: file status for all files used to get announced *AFTER*
the file (with borg < 1.2). Now, file status is announced *BEFORE* the file
contents are processed. If the file status changes later (e.g. due to an error
or a content change), the updated/final file status will be printed again.
- removed deprecated-since-long stuff (deprecated since):
- command "borg change-passphrase" (2017-02), use "borg key ..."
- option "--keep-tag-files" (2017-01), use "--keep-exclude-tags"
- option "--list-format" (2017-10), use "--format"
- option "--ignore-inode" (2017-09), use "--files-cache" w/o "inode"
- option "--no-files-cache" (2017-09), use "--files-cache=disabled"
- removed BORG_HOSTNAME_IS_UNIQUE env var.
to use borg you must implement one of these 2 scenarios:
- 1) the combination of FQDN and result of uuid.getnode() must be unique
and stable (this should be the case for almost everybody, except when
having duplicate FQDN *and* MAC address or all-zero MAC address)
- 2) if you are aware that 1) is not the case for you, you must set
BORG_HOST_ID env var to something unique.
- exit with 128 + signal number, #5161.
if you have scripts expecting rc == 2 for a signal exit, you need to update
them to check for >= 128.
Fixes:
- create: skip with warning if opening the parent dir of recursion root fails, #6374
- create: fix crash. metadata stream can produce all-zero chunks, #6587
- fix crash when computing stats, escape % chars in archive name, #6500
- fix transaction rollback: use files cache filename as found in txn.active/, #6353
- import-tar: kill filter process in case of borg exceptions, #6401#6681
- import-tar: fix mtime type bug
- ensure_dir: respect umask for created directory modes, #6400
- SaveFile: respect umask for final file mode, #6400
- check archive: improve error handling for corrupt archive metadata block, make
robust_iterator more robust, #4777
- pre12-meta cache: do not use the cache if want_unique is True, #6612
- fix scp-style repo url parsing for ip v6 address, #6526
- mount -o versions: give clear error msg instead of crashing.
it does not make sense to request versions view if you only look at 1 archive,
but the code shall not crash in that case as it did, but give a clear error msg.
- show_progress: add finished=true/false to archive_progress json, #6570
- delete/prune: fix --iec mode output (decimal vs. binary units), #6606
- info: fix authenticated mode repo to show "Encrypted: No", #6462
- diff: support presence change for blkdev, chrdev and fifo items, #6615
New features:
- delete: add repository id and location to prompt, #6453
- borg debug dump-repo-objs --ghost: new --segment=S --offset=O options
Other changes:
- support python 3.11
- allow msgpack 1.0.4, #6716
- load_key: no key is same as empty key, #6441
- give a more helpful error msg for unsupported key formats, #6561
- better error msg for defect or unsupported repo configs, #6566
- docs:
- document borg 1.2 pattern matching behavior change, #6407
Make clear that absolute paths always go into the matcher as if they are
relative (without leading slash). Adapt all examples accordingly.
- authentication primitives: improved security and performance infos
- mention BORG_FILES_CACHE_SUFFIX as alternative to BORG_FILES_CACHE_TTL, #5602
- FAQ: add a hint about --debug-topic=files_cache
- improve borg check --max-duration description
- fix values of TAG bytes, #6515
- borg compact --cleanup-commits also runs a normal compaction, #6324
- virtualization speed tips
- recommend umask for passphrase file perms
- borg 1.2 is security supported
- update link to ubuntu packages, #6485
- use --numeric-ids in pull mode docs
- remove blake2 docs, blake2 code not bundled any more, #6371
- clarify on-disk order and size of segment file log entry fields, #6357
- docs building: do not transform --/--- to unicode dashes
- tests:
- check that borg does not require pytest for normal usage, fixes#6563
- fix OpenBSD symlink mode test failure, #2055
- vagrant:
- darwin64: remove fakeroot, #6314
- update development.lock.txt
- use pyinstaller 4.10 and python 3.9.13 for binary build
- upgrade VMCPUS and xdistn from 4 to 16, maybe this speeds up the tests
- crypto:
- use hmac.compare_digest instead of ==, #6470
- hmac_sha256: replace own cython wrapper code by hmac.digest python stdlib (since py38)
- hmac and blake2b minor optimizations and cleanups
- removed some unused crypto related code, #6472
- avoid losing the key (potential use-after-free). this never could happen in
1.2 due to the way we use the code. The issue was discovered in master after
other changes, so we also "fixed" it here before it bites us.
- setup / build:
- add pyproject.toml, fix sys.path, #6466
- setuptools_scm: also require it via pyproject.toml
- allow extra compiler flags for every extension build
- fix misc. C / Cython compiler warnings, deprecation warnings
- fix zstd.h include for bundled zstd, #6369
- source using python 3.8 features: ``pyupgrade --py38-plus ./**/*.py``
Changed
Fzf: show preview window below results.
Fixed
Bash/Fish/Posix/Zsh: paths on Cygwin.
Fish: completions not working on certain systems.
Bash: completions not escaping spaces correctly.
0.4.0
-Add M1 builds to release.
-Support installing from Nix flake.
-Add -E/--exclude PATTERN option to exclude paths from results.
-Add -e/--color WHEN option to control colors in output.
-The short flag for --version is renamed from -v to -V.
-Provide completion scripts for various shells in scripts/completion.
-Add -p/--portable option, which enables portable paths when generating editor
aliases. Without this flag, editor alias only works in the same working
directory in which tre was last invoked.
-Files untracked by git is now included in output by default.
-Output order is now deterministic.