Revision history for Doit.

0.028_56 2026-04-13
	- features
	  - new command info_run
	  - move command and file_atomic_write: new option show_diff
	  - file_atomic_write: calling close() in callback is now
            harmless
	  - ln_nsf: warning if an overwrite would happen
	  - Doit::Brew with new command without_brew
	  - Doit::Deb
	    - new command deb_upgradeable_packages
	    - new command deb_add_repository
	    - adapt deb_install_key with modern Debian
	  - on Windows, prefer STDERR over CON:
	- fixes
	   - some improvements for sudo communication socket
	   - do_ssh_connect does not fail anymore in perl oneliners
	   - add random component in sudo socket path
	- documentation
	  - explain how file_atomic_write works in dry-run mode
	- tests
	  - github actions: replace actions/checkout by taiki-e/checkout-action
	  - various CI fixes/improvements

0.028_55 2025-05-04
	- fixes
	  - sudo: terminal needs to be reset after start of sudo worker
	    and other improvements
	  - Doit::Locale: there's no support for adding locales on Mac OS X
	- documentation
	  - add_component with version check
	- tests
	  - github actions: test bleadperl
	  - github actions: updated many configurations

0.028_54 2024-07-21
	- fixes
	  - Doit::Brew: architecture heuristics
	  - Doit::Fork: reap processes
	  - Doit::Locale: fix diagnostics + change check order
	  - Doit::Lwp: cease warnings in test script
	- documentation
	  - Doit::Git: add clone_opts example
	- tests
	  - github freebsd testing now done regularly
	  - github actions: test perl 5.40.0
	  - github actions:
	    test alpine:latest, fedora:40, centos:7 and rockylinux:9
	  - appveyor:
	    switch to different image with preinstalled StrawberryPerl

0.028_53 2024-05-21
	- features
	  - new command brew_get_cellar
	  - additional diagnostics in git_repo_update
	  - git_config: support for multiple values
	- fixes
	  - Doit::Brew handles systems with /opt/homebrew/Cellar
	- build
	  - new action test_package_in_docker
	  - Build.PL: option handling for some actions
	  - build before test
	  - build_libs+manifypods: remove stray files from blib
	- tests
	  - github actions: test macos-13 + macos-14, drop macos-11
	  - github freebsd testing moved to ubuntu/qemu
	  - new test script trace.t

0.028_52 2024-04-27
	- features
	  - alternative experimental ln_nsf implementation
	    (currently switchable using an environment variable)
	- tests
	  - move symlink tests into own file t/symlink.t
	  - move some common test functionality into TestUtil.pm
	  - ignore file.t failures on certain perl+Digest combinations

0.028_51 2024-04-26
	- features
	  - Doit::Pip: new command pip_is_functional
	- tests
	  - do not fail if an existing pip is not functional

0.028_50 2024-04-26
	- features
	  - Doit::File: new command file_digest_matches
	  - Doit::Lwp: lwp_mirror is quiet by default
	  - Doit::Lwp: new refresh type "digest"
	  - in_directory sets now $PWD environment variable
	  - tracing with DOIT_TRACE environment variable
	- fixes
	  - better /etc/os-release handling
	  - fix chained runner invocations (ssh -> sudo)
	- documentation
	  - document an in_directory trap
	  - document in_directory with undefined $directory
	  - get_sudo_cmd documentation clarification
	  - mention non-atomic mirror method
	  - documentation section for environment variables
	- build
	  - --config works now
	  - --jobs option handling
	  - --pureperl-only option handling
	  - PERL_MB_OPT happens now at Build.PL time
	  - helper _basic_debian_version in Build.PL
	  - test with Test::Harness, not with prove
	- tests
	  - github freebsd testing now done on mac/hyve
	  - github actions: switch to checkout@v4
	  - lwp-http-tiny.t -> lwp-httpbin.t and now usable
	    for both HTTP::Tiny and LWP
	  - test add_components
	  - docker.t tests done in alpine now (somewhat faster)
	  - test in ubuntu:24.04 (noble)

0.028    2023-11-03
	- stable release, no changes since 0.027_51

0.027_51 2023-11-02
	- build
	  - generate MYMETA.* files
	  - do not put .github files into dist
	  - better Dockerfile support for (old) perl-based images
	- tests
	  - validate also META.yml
	  - coredump testing only in controlled environments
	  - skip some git.t tests in some situations

0.027_50 2023-10-31
	- installation fix: don't install manpages
          if no man directories are configured
	- tests
	  - shorter connection timeout in ssh-invalid.t

0.027    2023-10-31
	- stable release, containing all changes since 0.026_50
	- tests
	  - shorter connection timeout in ssh-local.t

0.026_53 2023-10-30
	- tests
	  - disable atime tests by default

0.026_52 2023-10-30
	- build
	  - more support for rpm-based systems in test_in_docker
	- tests
	  - various fixes, mainly OS related

0.026_51 2023-10-30
	- features
	  - Doit::Util: new function get_os_release
	  - Doit::Ini can handle shell config files better
	- build improvements
	  - test_standard: show report about test results
	  - use which command instead of system() call in Build.Pl
	  - more hacks for older debian versions
	- tests
	  - git.t: use "master" as test branch everywhere
	  - github: use another action for freebsd testing
	  - freebsd testing: another test run after installing optional deps

0.026_50 2023-10-05
	- features
	  - new module Doit::Fork
	  - Doit::Ini: add ini_info_as_HoH
	  - add github action: install-doit-from-github
	- fixes
	  - don't log "dry-run" for info_* commands in dry-run mode
	- documentation
	  - hint about $SIG{INT}
	  - small fixes
	- build
	  - new action ci_precheck
	  - fix centos:6, debian:jessie and debian:stretch docker builds+tests
	  - dist_install_and_test: use sudo if needed
	- tests
	  - test case for info_system
	  - test case for leftover tmpfiles
	  - locale.t: additional test case
	  - lwp-http-tiny.t: skip also on unexpected 502 + 504
	  - lwp-http-tiny.t: more diagnostics
	  - lwp-http-tiny.t: switch to httpbingo.org
	  - man.t: workaround broken file command on some Debian+Ubuntu systems
	  - qx.t: maximum runtime on Windows
	  - brew.t: use "hello" instead of "perl" as test package
	  - github: test macos-11 and -12
	  - github: test freebsd
	  - github: add perl 5.38.0
	  - github: enable more tests (check GITHUB_ACTIONS env var)
	  - add debian:bookworm in tests (docker, github)
	  - remove travis-related files
	  - test_in_docker: more optional modules and Dockerfile optimization

0.026	 2022-09-01
	- stable release, no changes since 0.025_59

0.025_59 2022-08-31
	- tests
	  - fix diff-related tests on windows

0.025_58 2022-08-30
	- internal
	  - _diff_files may fallback to "fc" instead of "diff" on Windows

0.025_57 2022-08-29
	- features
	  - new informational command which
	  - can_openssl available as informational command from the ssl component
	- fixes and improvements
	  - minor changes in new ini component (ini_change return value, use binmode)
	- documentation
	  - add documentation for Doit::Ini
	  - add documentation for Doit::Util
	  - examples for do_ssh_connect with master_opts
	- build
	  - make docker-testing ubuntu:precise possible
	- tests
	  - github: test windows
	  - github: more tests with optional dependencies
	  - add some test helpers mimic some solaris specialities
	  - ini.t: test for line endings
	  - ini.t: fix for Windows
	  - man.t: fix for Solaris
	- internal
	  - new _open2 and _open3 functions usable within Doit
	  - new _diff_files function usable within Doit
	  - move Doit::Extcmd::is_in_path implementation to Doit::Util

0.025_56 2022-08-23
	- features
	  - new components
	    - Doit::Ini
	    - Doit::Pip
	  - Doit::Deb: deb_install_key may use also wget
	  - Doit::Git: new function git_get_default_branch
	- fixes
	  - Doit::File works now better in dry-run mode
	  - git_repo_update: handle some edge cases
	- build improvements
	  - test_in_docker works for alpine
	  - test_standard: more configurations
	  - docker builds: configure safe git directories
	- tests
	  - github: new tests using special perl containers
	  - github: test ubuntu-20.04 and 22.04
	  - travis-ci: new configuration using arm64
	  - new test file t/deb.t for Doit::Deb
	  - various test improvements

0.025_55 2020-01-26
	- features
	  - ability to bootstrap perl
	  - new function rpm_enable_repo
	  - git_get_commit_hash with new optional parameter 'commit'
	  - no log coloring for dumb/empty TERM
	  - regain debian:wheezy support
	- fixes
	  - use correct locations for vendor/site packlists
	  - another Doit::Git corner case regarding checkout branches
	  - debian_package_with_docker may run on docker-machine systems
	  - fix handling if old-fashioned Build.PL options
	  - rework cover handling
	- tests
	  - new test file for Doit's own version
	  - do not hardcode man3 extension
	  - lwp-http-tiny.t: skip on fatal backend errors
	  - implement ci testing on github
	  - travis-ci: adapt for the travis-ci switch to xenial
	  - test_standard: more distributions to test
	  - test_standard: two passes now, one with "more testing"

0.025_54 2019-04-28
	- features
	  - do_ssh_connect can take a Net::OpenSSH object (GH #3)
	  - new umask option for do_ssh_connect
	  - git_get_changed_files: new option ignore_untracked
	  - new quiet option for chmod and chown commands (used in Doit::File)
	  - Doit::File: new option check_change
	- fixes
	  - Doit::Git: handle more edge cases wrt detached branches
	  - open3: fill errref before analyzing $?
	- tests
	  - new TestUtil helper signal_kill_num
	  - skip some problematic tests on haiku (atime, root user)
	  - new build action test_standard
	  - ci improvements (for appveyor)

0.025_53 2018-03-02
	- use _pipe_open in all places in Doit::Git
	- try harder to find "prove"
	- typo fix in Doit::Git doc

0.025_52 2018-02-24
	- ssh: explicitely disconnect in DESTROY
	- workaround: localize $? in ssh DESTROY
	- new experimental Doit::XTermRPC module
	- new command info_system
	- git_repo_update: new option branch
	- Doit::Lwp: more information in case of 599
	- Build.PL: new manifypods action
	- use warnings everywhere
	- convert "use vars" to our
	- minimum perl version is now 5.006

0.025_51 2017-12-31
	- use ExtUtils::Install::install's dry_run mode
	- skip another test on cygwin

0.025_50 2017-12-23
	- experimental: do_ssh_connect works from Unix to Windows systems
	  (using new Doit::WinRPC module and named pipes)
	- deb_install_key: trusted keys may be in a .d directory (seen
	  on stretch)
	- workaround for pure perl getcwd returning "", not undef
	  (see also perl RT #132648)
	- check harder if Linux Abstract Namespace Sockes may be used
	- tests: run with Test::Harness instead with prove
	- skip some tests on cygwin

0.025	 2017-12-16
	- stable release, no changes since 0.024_51

0.024_51 2017-12-15
	- as_user: check for failure when setting $< et al
	- add_component may take a full module name
	- new experimental component Doit::Docker
	- a sample component DoitX::Example
	- build: support for PERL_MB_OPT and --install_base
	  So now the module should be correctly installable
	  in local::lib setups.
	- tests
	  - improved testing for as_user
	  - file_atomic_write tests: use XDG_RUNTIME_DIR if available

0.024_50 2017-12-10
	- Doit::Git functions may throw exceptions now (BACKWARD INCOMPATIBILITY)
	  The functions git_root, git_short_status and git_get_commit_hash
	  fail now instead of returning undef if not within a git directory.
	- git_config has now sensible return values in
	  set/unset cases
	- documentation for the following components
	  - Doit::Rpm
	  - Doit::Git
	  - Doit::Fbsdpkg
	- build: more checks for dist action
	- tests
	  - new tests for the rpm and fbsdpkg components
 	  - improved tests for the git component
	  - test case for in_directory with undefined directory
	- fix prereq version for File::Path
	- internal changes in Doit and Doit::Runner packages

0.024    2017-12-08
	- constant IS_WIN
	- test changes: use bigger epoch times

0.023_50 2017-12-07
	- test fixes
	  - atime does not work on some netbsd systems (GH #1)
	  - rmdir on current directory forbidden on some systems
	  - different errno on failed rmdir calls
	  - groupadd is more portable than addgroup

0.023	 2017-12-06
	- Doit::User: fix: call endgrent
	- Doit::Git: new option refresh
	- workaround for list pipe open on Win32 and older perls
	- debian_package_with_docker: propagate some env vars

0.022_50 2017-12-05
	- Doit::Locale: implementation for RedHat/CentOS
	- write_binary: better message on missing diff
	- META.*: specify missing requirements
	- Doit package with $VERSION is now on top of file
	- test fixes
	  - don't run sudo by default
	    (DOIT_TEST_WITH_SUDO=1 has now to be set)
	  - fix timing problem in write_binary.t
	  - better diagnostics on too old Term::ANSIColor
	  - fix log.t test with older Carp,pm
	  - skip ssh tests completely on Windows
	  - fix possible Win32 short pathname problems
	- more tests
	  - scope cleanups and exceptions
	- test more in docker with XXX_MORE_TESTING

0.022	 2017-12-04
	- new Build action "look"
	- really add repository to META

0.021_53 2017-12-03
	- Doit::Lwp: support for HTTP::Tiny ua
	- Doit::Deb: automatically use sudo if needed
	- documentation for Doit::Deb and Doit::Lwp
	- installation fix: don't ignore Pod files
	- build improvements
	  - new action test_pod
	- more tests

0.021_52 2017-12-02
	- remove Doit::Log::note (BACKWARD INCOMPATIBILITY)
	- documentation for Doit::Log
	- build improvements
	  - new action dist_install_with_cpanm
	  - debian_package may deal with devel versions
	  - add repository to META
	  - skip .gitignore when building dist
	  - dist_install_and_test works on Windows
	  - test_in_docker works for centos
	- test fixes on netbsd (hostname without -f)
	- ci testing improvements
	  - run dist_install_and_test on appveyor

0.021_51 2017-12-01
	- test fixes for git 1.7.x and perl 5.8.x

0.021_50 2017-12-01
	- first devel release
 
0.02	 2017-11-23
	- still awaiting first release

