- update to 2.2.0
* [Feature]: Remove the somewhat inaccurate subclass requirement
around Config’s .clone(into=... constructor call. It was broken
for certain use cases ()such as trying to clone one subclass
into a sibling subclass, which would yield a TypeError) and is
irrelevant if one is using the new type annotations.
* [Support] #936: Make sure py.typed is in our packaging manifest
* [Bug] #944: After the release of 2.1, package-style task modules
started looking in the wrong place for project-level config files
(inside one’s eg tasks/ dir, instead of next to that dir) due to
a subtlety in the new import/discovery mechanism used.
This has been fixed
OBS-URL: https://build.opensuse.org/request/show/1118871
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=47
- [Bug] #910: Add more rigor around subprocess/runner shutdown
to avoid spurious exceptions & also fix downstream issues in
libraries like Fabric. Reported by Orlando Rodríguez.
- [Bug] #934: The importlib upgrade in 2.1 had a corner case
bug (regarding from . import <submodule> functionality within
package-like task trees) which in turn exposed a false-pass
in our test suite. Both have now been fixed. Thanks to Greg
Meyer and Robert J. Berger for the bug reports.
- [Bug] #910: Add more rigor around subprocess/runner shutdown
to avoid spurious exceptions & also fix downstream issues in
libraries like Fabric. Reported by Orlando Rodríguez.
- [Support] #901: (via #903) Tweak test suite setup methods to
be named setup_method so pytest stops whining about it. Patch
via Jesse P. Johnson.
- [Bug] #376: Resolve equality comparison bug for
non-collections. Patch via Jesse P. Johnson
- [Support] #901: (via #903) Tweak test suite setup methods to
be named setup_method so pytest stops whining about it. Patch
via Jesse P. Johnson.
- [Support] #906: Implement type hints and type checking
tests with mypy to reduce errors and impove code
documentation. Patches by Jesse P. Johnson and review by Sam
Bull.
- [Support] #675: Implement importlib and deprecate imp
module. Patches provided by Jesse P. Johnson
- [Support]: Task.argspec has changed its return value; it now
returns an inspect.Signature derived from that of the task’s
body callable.
- Warning
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=37
* Fix a non-fatal bug in our setup.py long_description generation causing
1.7.0-1.7.2 to have malformed description text on PyPI.
* Fix errors thrown when comparing Task objects to non-Task objects; such
comparisons are now always false.
* Refactor CLI parser instantiation such that the tasks.ignore_unknown_help
feature (added in 1.7) works when Invoke is run in --complete mode, i.e. in
tab-completion scripts.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=33
* 🐛`659` Improve behavior under ``nohup``, which causes stdin to become an
undetectably-unreadable (but otherwise legit) file descriptor. Previously
this led to `OSError` even if you weren't expecting anything on stdin; we now
trap this specific case and silently ignore it, allowing execution to
continue. Thanks to ``@kingkisskill`` for initial report and to Ryan Stoner
for followup and workshopping.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=31
- version update to 1.7.0
* [Feature] #845: Env vars explicitly supplied to sudo (via its env kwarg) are now
explicitly preserved via sudo’s --preserve-env argument. Patch courtesy of Benno Rice.
* [Feature] #793: Add a new tasks.ignore_unknown_help config option for users who hand
their tasks centrally-defined argument help dictionaries; it defaults to False but
such users may set it to True to avoid exceptions. Thanks to @Allu2 for the report.
* [Support]: Switch our continuous integration service from Travis-CI to Circle-CI,
plus related and necessary updates to various administrative config files, management
tasks and metadata. Including but not limited to:
* Enhanced PyPI-level metadata/links
* Split out tool config data from setup.cfg
* Enhance execution & coverage of unit vs integration tests under CI
* [Support] #803: Upgrade our vendored PyYAML from 3.11 to 5.4.1; this should both
supply a number of security fixes, and address problems loading project-level YAML
config files under Python 3.10. Fix via Andreas Rammhold.
* [Support]: Switch to using yaml.safe_load for loading config files. This avoids some
warnings under newer PyYAML versions and is also, in a shocking twist, more secure.
- do not require python-mock for build, testsuite is not run
- modified patches
% 0001-Make-test-fallback-to-system-modules-when-vendorized.patch (refreshed)
- deleted patches
- fix-yaml-loader.patch (upstreamed)
OBS-URL: https://build.opensuse.org/request/show/974913
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=29
- Update to version 1.6.0
* Version bump for next release
* Return to using print() and no newline in echo_format
* Blacken
* Changelog re #791
* s/output_format/echo_format/g
* Fix whitespace
* Contact methods update :(
* Adding support for a custom output format via run.echo
* Fix typo
* Tweak versionadded/changed bits for new param.
- from version 1.5.1
* Alphabetize run() kwarg param declarations in docstring
* Document dry kwarg for run() in docstring
* Treat whitespace-only docstrings as empty docstrings.
- from version 1.5.0
* Changelog, docstring and test tweak re #607, re #454
* Tweaks re #611
* Changelog re #409, re #398, re #611, re #580
* Tweak #197 changelog to link to modified API member
* Stop publishing bogus codecov reports from Travis
* Docs and changelog re #197, closes#197
* Realized OP's impl was overkill/caused bugs. Just set name.
* Use identity testing in collection task lookup asserts
* Refactor default task/collection collision & enhanced its tests
* Minor tweaks to update #197
* Upgrade codecov client, prev version cannot talk to their object store
* Fix small pile of minor doc reference errors
* Changelog re coverage tweaks
* Test Exit more thoroughly
OBS-URL: https://build.opensuse.org/request/show/912908
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=27
- Update to version 1.3.0
* Allow the configuration system to override which Executor
subclass to use when executing tasks.
* Add support for command timeouts, i.e. the ability to add an
upper bound on how long a call to run may take to execute.
* Add basic dry-run support, in the form of a new --dry CLI option.
* Add a new Runner method, close_proc_stdin, and call it when
standard input processing detects an EOF.
OBS-URL: https://build.opensuse.org/request/show/722668
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=21
* [Feature] #301: (via #414) Overhaul tab completion mechanisms so users can print a completion script which automatically matches the emitting binary’s configured names (compared to the previous hardcoded scripts, which only worked for inv/invoke by default). Thanks to Nicolas Höning for the foundational patchset.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=15
- Update to version 0.22.1:
* gh#pyinvoke/invoke#488: Account for additional I/O related
OSError error strings when attempting to capture only this
specific subtype of error.
* gh#pyinvoke/invoke#437: When merging configuration levels
together (which uses copy.copy by default), pass file objects
by reference so they don’t get closed.
* gh#pyinvoke/invoke#342: Accidentally hardcoded Collection
instead of cls in Collection.from_module (an alternate
constructor and therefore a classmethod.) This made it rather
hard to properly subclass Collection.
* gh#pyinvoke/invoke#469: Fix up the doc/example re: subclassing
Config.
* gh#pyinvoke/invoke#433: Add -dev and -nightly style Python
versions to our Travis builds.
- Changes from version 0.22.0:
* Iterable-type CLI args were actually still somewhat broken &
were ‘eating’ values after themselves in the parser stream
(thus e.g. preventing parsing of subsequent tasks or flags.)
* gh#pyinvoke/invoke#364: Drop Python 2.6 and Python 3.3
support, as these versions now account for only very low
percentages of the userbase and are unsupported (or about to
be unsupported) by the rest of the ecosystem, including pip.
- Update URL to upstream recommended.
OBS-URL: https://build.opensuse.org/request/show/602271
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=9
- Update to 0.21.0
* No changelog
- singlespec auto-conversion
- Declare use of bashisms
- Implement update-alternatives
- Update to 0.9.0 2014-08-26
* [Bug]: Fixed a sub-case of the already-mostly-fixed #149 so the error
message works usefully even with no explicit collection name given.
* [Support] #169: Overhaul the Sphinx docs into two trees, one for main
project info and one for versioned API docs.
* [Bug] #162: Adjust platform-sensitive imports so Windows users don’t
encounter import-time exceptions. Thanks to Paul Moore for the patch.
* [Feature] #136: Added the autoprint flag to invoke.tasks.Task/@task,
allowing users to set up tasks which act as both subroutines &
“print a result” CLI tasks. Thanks to Matthias Lehmann for the original
patch.
* [Bug] #119: (also #162, #113) Better handle platform-sensitive operations
such as pty size detection or use, either replacing with platform-specific
implementations or raising useful exceptions. Thanks to Gabi Davar and
(especially) Paul Moore, for feedback & original versions of the final
patchset.
* [Bug] #167: Running the same task multiple times in one CLI session was
horribly broken; it works now. Thanks to Erich Heine for the report.
* [Bug] #165: Running inv[oke] with no task names on a collection containing
a default task should (intuitively) have run that default task, but instead
did nothing. This has been fixed.
- Update to 0.8.2 2014-06-15
* [Bug] #142: The refactored Loader class failed to account for the behavior
of imp.find_module when run against packages (vs modules) and was exploding
at load time. This has been fixed. Thanks to David Baumgold for catch & patch.
* [Bug] #145: Ensure a useful message is displayed (instead of a confusing
exception) when listing empty task collections.
* [Bug] #149: Print a useful message to stderr when Invoke can’t find the
requested collection/tasks file, instead of displaying a traceback.
- Update to 0.8.1 2014-06-09
* [Bug] #140: Revert incorrect changes to our setup.py regarding detection of
sub-packages such as the vendor tree & the parser. Also add additional
scripting to our Travis-CI config to catch this class of error in future.
Thanks to Steven Loria and James Cox for the reports.
- Update to 0.8.0 2014-06-08
* [Feature] #125: Improve output of Failure exceptions when printed.
* [Feature] #124: Add a --debug flag to the core parser to enable easier
debugging (on top of existing INVOKE_DEBUG env var.)
* [Bug] #127: Fill in tasks’ exposed name attribute with body name if
explicit name not given.
* [Bug] #116: Ensure nested config overrides play nicely with default tasks
and pre-tasks.
* [Bug] #131: Make sure one’s local tasks module is always first in sys.path,
even if its parent directory was already somewhere else in sys.path. This
ensures that local tasks modules never become hidden by third-party ones.
Thanks to @crccheck for the early report and to Dorian Puła for assistance
fixing.
* [Support]: Refactor the invoke.runner.Runner module to differentiate what
it means to run a command in the abstract, from execution specifics. Top
level API is unaffected.
* [Feature] #87: (also #92) Rework the loader module such that recursive
filesystem searching is implemented, and is used instead of searching
sys.path.
This adds the behavior most users expect or are familiar with from Fabric 1
or similar tools; and it avoids nasty surprise collisions with other
installed packages containing files named tasks.py.
Thanks to Michael Hahn for the original report & PR, and to Matt Iversen
for providing the discovery algorithm used in the final version of this
change.
Warning
This is technically a backwards incompatible change (reminder: we’re not at
1.0 yet!). You’ll only notice if you were relying on adding your tasks
module to sys.path and then calling Invoke elsewhere on the filesystem.
* [Support] #117: Tidy up setup.py a bit, including axing the (broken)
distutils support. Thanks to Matt Iversen for the original PR & followup
discussion.
* [Feature] #110: Add task docstrings’ 1st lines to --list output. Thanks to
Hiroki Kiyohara for the original PR (with assists from Robert Read and
James Thigpen.)
* [Feature] #115: Make it easier to reuse Invoke’s primary CLI machinery in
other (non-Invoke-distributed) bin-scripts. Thanks to Noah Kantrowitz.
* [Support] #118: Update the bundled six plus other minor tweaks to support
files. Thanks to Matt Iversen.
* [Bug] #121: Add missing help output denoting inverse Boolean options (i.e.
--[no-]foo for a --foo flag whose value defaults to true.) Thanks to Andrew
Roberts for catch & patch.
* [Bug] #128: Positional arguments containing underscores were not exporting
to the parser correctly; this has been fixed. Thanks to J. Javier Maestro
for catch & patch.
* [Support] #25: Trim a bunch of time off the test suite by using mocking and
other tools instead of dogfooding a bunch of subprocess spawns.
* [Feature] #135: (also bugs #120, #123) Implement post-tasks to match
pre-tasks, and allow control over the arguments passed to both (via
invoke.tasks.call). For details, see Pre- and post-tasks.
Warning
Pre-tasks were overhauled a moderate amount to implement this feature; they
now require references to task objects instead of task names. This is a
backwards incompatible change.
- Update to 0.7.0 2014.01.28
* [Feature] #107: Update configuration merging behavior for more flexible
reuse of imported task modules, such as parameterizing multiple copies of a
module within a task tree.
* [Feature] #108: Update invoke.collection.Collection.from_module to accept
useful shorthand arguments for tweaking the invoke.collection.Collection
objects it creates (e.g. name, configuration.)
* [Feature] #109: Add a default kwarg to
invoke.collection.Collection.add_task allowing per-collection control over
default tasks.
- Initial version 0.6.1
OBS-URL: https://build.opensuse.org/request/show/535232
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-invoke?expand=0&rev=7