# Changelog
# 1.0.4 - 2026-09-29
# Changed
- Documentation only: the README's Documentation list links each page on the documentation site, so readers on GitHub and PyPI land there. The code is the same as 1.0.3.
# 1.0.3 - 2026-09-29
# Changed
- Documentation only. The README becomes a short entrance to the documentation site,
https://offerrall.github.io/pyeasydeploy/, and
docs/overview.mdholds the introduction: what each step of a deploy does, and what the server needs. - A new
docs/reference.mdlists every public name.get_python_instances,delete_venv,install_package_from_github,supervisor_start,supervisor_stop,has_sudo_password,require_sudo,check_supervisor_installedandcreate_supervisor_configwere documented nowhere; the guide's examples import what they use. RELEASING.mdmoves todocs/releasing.md. The "Changed in 0.1.5" note leaves the guide for its 0.1.5 entry here, and the changelog headings carry their release dates.pyproject.toml: the description matches the package docstring, and[project.urls]gainsDocumentation.
The code is the same as 1.0.2.
# 1.0.2 - 2026-09-29
# Added
- The
LICENSEfile with the MIT text thatpyproject.tomldeclares, shipped in the package. The code is the same as 1.0.1.
# 1.0.1 - 2026-09-29
# Changed
pytypehintis pinned to the exact version this release is tested with,==1.2.1, instead of>=1.2: a new pytypehint can no longer change what an installed pyeasydeploy does. The code is the same as 1.0.0.
# 1.0.0 - 2026-09-29
The models are rebuilt on pytypehint: deeply immutable, keyword-only, and validated from their types when built. What reaches the server (commands, files, their order) is the same as in 0.1.6.
# Changed (breaking)
- Python 3.11 or newer, and
pytypehintas a dependency. connect_to_host(host, user, password=..., key_filename=..., sudo_password=..., port=...)is nowconnect(Host(address=..., user=..., auth=..., sudo_password=..., port=...)), whereauthisPassword(value=...)orKey(path=...): exactly one, by type.VenvPython(venv_name, python_instance, venv_path)is nowVenv(python=..., path=...);create_venv(conn, python, path)takes those names.SupervisorService.extrais a tuple ofOption(key=..., value=...), written in that order, instead of a dict. A key given twice is rejected.- Models take keyword arguments only. Invalid values raise
SchemaTypeErrorandSchemaValueError(subclasses ofTypeErrorandValueError), naming the field.
# Fixed
- The README is
README.md, aspyproject.tomlsays: built on Linux, 0.1.6 had no long description. - The PyPI badge showed another package's version.
# Added
- Tests, and releases published to PyPI from GitHub releases.
- The documentation split into
docs/.
# 0.1.5 - 2026-08-04
# Changed
create_venvdeletes an existing environment and builds a new one. Passrecreate=Falseto reuse it.