Releases: byllyfish/shellous
Releases · byllyfish/shellous
Release 0.37.0
- [API] Change the default for the
close_fds
option back to True. This aligns with the expected subprocess module behavior. - [LATERAL] Update development dependencies.
- [LATERAL] Work-around testing issues on Python 3.13b2 and later due to the asyncio REPL change.
Release 0.36.0
- [LATERAL] Update development dependencies and fix pylint issues.
Release 0.35.0
- [BUGFIX] Fix potential race condition in
DefaultChildWatcher
. (#582) - [LATERAL] Update development dependencies and fix pyright warnings.
- [LATERAL] Update to black 24.1.1 code formatter.
Release 0.34.0
- [FEATURE] Add
error_limit
option to customize the number of bytes ofstderr
that is buffered. - [BUGFIX] Catch
asyncio
deprecation warnings intended for Python 3.14. - [LATERAL] Update CI action that publishes shellous package to PyPI to use trusted publishing.
- [LATERAL] Improve reliability of tests under code coverage.
- [LATERAL] Replace deprecated
event_loop
fixture in asyncio tests.
Release 0.33.0
- [FEATURE] Add the
Pipeline.prompt()
method so thePrompt
API works in pipelines. - [FEATURE] Add the
Prompt.read_pending()
method to read and clear all data in the pending buffer. - [API] When
Prompt.expect()
doesn't match anything and we reach EOF, raise EOFError. The previous version returned amatch
of None. - [API] When
Prompt.command()
doesn't match, it will now raise EOFError. However, you can set theallow_eof
argument to True to match EOF. - [API] The Prompt
chunk_size
argument is now private. - [API] Add
SHELLOUS_TRACE
environment variable for debug logging and tracing. This replaces the SHELLOUS_DEBUG and SHELLOUS_PROMPT environment variables. - [API] The
Prompt.result
property no longer returns an Optional. It raises a RuntimeError if the co-process is still running. - [API] The
Prompt.expect()
method no longer accepts an Ellipsis to match EOF. Use thePrompt.read_all()
method to read until EOF. - [API] In the
cooked
,cbreak
,raw
utility methods, using the Ellipsis to inherit the terminal size is no longer supported.
Release 0.32.0
- [FEATURE] Add the
Command.prompt()
method to facilitate using thePrompt
API. - [FEATURE] Refactor the
Prompt
helper class to support regular expression matching. - [FEATURE] The
Prompt.expect()
method can match on a regular expression in the output stream. - [API] The
Prompt.send()
method no longer returns a response. If you want to send a string to a process and wait for the response, use thePrompt.command()
method instead. - [API] The
receive()
method has been removed. Useexpect()
instead. - [BUGFIX] Fix a potential deadlock issue in
Prompt.send()
by continuing to read pending input from the subprocess concurrently.
Release 0.31.1
- [LATERAL] Fix issue with CI action that publishes the shellous package to PyPI.
Release 0.31.0
- [API] Several API changes to the experimental
Prompt
class. - [API] The
Result
class now has anexit_signal
property that converts theexit_code
value into aSignals
enum. - [LATERAL] Update CI settings for Python 3.12 release. Add pip --require-hashes to Github actions.
- [LATERAL] Apply security best practices to Github actions.
Release 0.30.0
- [LATERAL] Improve documentation and add security policy to the GitHub repository.
- [LATERAL] Fix two more log messages so they only appear when the SHELLOUS_DEBUG environment variable is set.
- [LATERAL] Improve reliability of CI testing on Windows.
Release 0.29.0
- [BUGFIX] Report standard error when a pipeline sub-command fails. (#459)
- [LATERAL] Reduce debug logging so it only occurs when SHELLOUS_DEBUG environment variable is set.
- [LATERAL] Fix Windows CI tests for Python 3.11.5.