Skip to content

Commit c3bd8c3

Browse files
committed
Release v3.0 🎉
1 parent 00cefb0 commit c3bd8c3

File tree

4 files changed

+43
-8
lines changed

4 files changed

+43
-8
lines changed

CHANGELOG.md

+40-6
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,58 @@
1-
# v3.0.beta4
1+
# v3.0
22

33
Welcome to pyinfra v3! This version is the biggest overhaul of pyinfra since it was created back in 2015. Most v2 deployment code should be automatically compatible, but as always be aware. Major changes:
44

5-
## Runtime operation execution
5+
### Runtime operation execution
66

77
pyinfra now executes operations at runtime, rather than pre-generating commands. Although the change isn't noticeable this fixes an entire class of bugs and confusion. See the [limitations](https://docs.pyinfra.com/en/2.x/deploy-process.html#limitations) section in the v2 docs. All of those issues are now a thing of the past.
88

99
This represents a huge overhaul of pyinfra's internals and should be a huge improvement for users.
1010

1111
Care has been taken to reduce the overhead of this change which still supports the same diffs and change proposal mechanism.
1212

13-
## CLI flow & prompts
13+
### CLI flow & prompts
1414

15-
The pyinfra CLI will now prompt (instead of ignore, or immediately exit) when problems are encountered, allowing the user to choose to continue. Additionally an approval step is added before executing changes (skip with `-y`).
15+
The pyinfra CLI will now prompt (instead of ignore, or immediately exit) when problems are encountered, allowing the user to choose to continue. Additionally an approval step is added before executing changes (this can be skipped with `-y` or setting the `PYINFRA_YES` environment variable).
1616

17-
## Extendable connectors API, typing overhaul
17+
### Extendable connectors API, typing overhaul
1818

1919
v3 of pyinfra includes for the first time a (mostly) typed internal API with proper support for IDE linting. There's a whole new connectors API that provides a framework for building new connectors.
2020

21-
More TBC...
21+
### Breaking changes
22+
23+
- Rename `_use_sudo_password` argument to `_sudo_password`
24+
- Remove `winrm` connector and `windows*` operations/facts, moving to [`pyinfra-windows`](https://github.com/pyinfra-dev/pyinfra-windows)
25+
- The deploy decorator must now be called, ie used as `@deploy()`, and is now typed
26+
- Remove broken Ansible inventory connector
27+
28+
### Operations & Facts
29+
30+
- Add `docker.container`, `docker.image`, `docker.volume`, `docker.network` & `docker.prune` operations (@apecnascimento)
31+
- Add `runit.service` operation and `RunitStatus` fact (@lemmi)
32+
- Add `TmpDir` fact
33+
- Add `services` argument to systemd facts for filtering
34+
- Add type hints for all the operations (@stone-w4tch3r)
35+
- Lowercase pip packages properly (PEP-0426)
36+
- Rename `postgresql` -> `postgres` operations & facts (old ones still work)
37+
- Improve IP/MAC parsing in `NetworkDevices` fact (@sudoBash418)
38+
- Enable getting `Home` fact for other users (@matthijskooijman)
39+
- Use users correct home directory in `server.user_authorized_keys` operation (@matthijskooijman)
40+
- Fix `destination`/`not_destination` arguments in `iptables.rule` operation
41+
- Fix remote dirs when executing from Windows in `files.sync` operation (@Renerick)
42+
- Fix quoting of systemd unit names (@martenlienen)
43+
44+
### Other Changes
45+
46+
- Add new `_if` global argument to control operation execution at runtime
47+
- Add `--debug-all` flag to set debug logging for all packages
48+
- Retry SSH connections on failure (configurable, see [SSH connector](https://docs.pyinfra.com/en/3.x/connectors/ssh.html#available-data)) (@fwiesel)
49+
- Documentation typo fixes (@szepeviktor, @sudoBash418)
50+
- Fix handling of binary files in Docker connector (@matthijskooijman)
51+
- Add `will_change` attribute and `did_change` context manager to `OperationMeta`
52+
- Replace use of `pkg_resources` with `importlib.metadata` (@diazona)
53+
- Fix identifying Python inventory files as modules (@martenlienen)
54+
- Fix typed arguments order (@cdleonard)
55+
- Check that fact commands don't take global arguments (@martenlienen)
2256

2357
# v2.x
2458

docs/getting-started.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This guide should help describe the basics of deploying stuff with pyinfra. Star
55

66
.. code:: bash
77
8-
pip install pyinfra --pre
8+
pip install pyinfra
99
1010
To do something with pyinfra you need two things:
1111

docs/install.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
It is recommended to install pyinfra using `pip`:
66

77
```sh
8-
pip install pyinfra --pre
8+
pip install pyinfra
99
```
1010

1111
## Windows

scripts/release.sh

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ pytest
1212

1313
echo "# Git tag & push..."
1414
git tag -a "v$VERSION" -m "v$VERSION"
15+
git push
1516
git push --tags
1617

1718
echo "Clear existing build/dist..."

0 commit comments

Comments
 (0)