Skip to content

Commit febe6c3

Browse files
authored
Merge pull request #1732 from jku/release-0.20.0
Release 0.20.0
2 parents 0285bf9 + 97d5395 commit febe6c3

File tree

5 files changed

+56
-27
lines changed

5 files changed

+56
-27
lines changed

README.md

+17-25
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
----------------------------
1010
*__IMPORTANT NOTICE:__ A stable 1.0.0 release of the modern implementation only
1111
is scheduled for January 2022. Please see the [*1.0.0
12-
announcement*](1.0.0-ANNOUNCEMENT.md) page for more details about the release
12+
announcement*](docs/1.0.0-ANNOUNCEMENT.md) page for more details about the release
1313
and the deprecation of the legacy implementation, including migration
1414
instructions.*
1515

@@ -19,31 +19,22 @@ This repository is the **reference implementation** of
1919
It is written in Python and intended to conform to version 1.0 of the
2020
[TUF specification](https://theupdateframework.github.io/specification/latest/).
2121

22-
The repository currently includes two implementations:
23-
1) A *legacy implementation*, with
24-
[`tuf/client/updater.py`](tuf/client/updater.py) implementing the detailed
25-
client workflow and [`tuf/repository_tool.py`](tuf/repository_tool.py)
26-
providing a high-level interface for repository operations.
27-
The legacy implementation is in use in production systems, but is [no longer
28-
being actively worked on](docs/adr/0002-pre-1-0-deprecation-strategy.md).
29-
2) A *modern implementation*. We are in the process of rewriting the reference
30-
implementation in [modern Python](docs/adr/0001-python-version-3-6-plus.md)
31-
to both: a) address scalability and integration issues identified in
32-
supporting integration into the Python Package Index (PyPI), and other
33-
large-scale repositories, and b) to ensure maintainability of the project.
34-
This implementation consists of:
35-
* a "low-level" metadata API, designed to provide easy and safe access to
36-
TUF metadata and handle (de)serialization from/to files, provided in the
37-
[`tuf/api/metadata.py`](tuf/api/metadata.py) module.
38-
* an implementation of the detailed client workflow built on top of the
39-
metadata API, provided in the
40-
[`tuf/ngclient/updater.py`](tuf/ngclient/updater.py) module.
41-
The modern implementation is not considered production ready and does not yet
42-
provide any high-level support for implementing
43-
[repository operations](https://theupdateframework.github.io/specification/latest/#repository-operations),
44-
though the addition of API to support them is planned.
22+
Python-TUF provides two APIs:
23+
* [`tuf.api.metadata`](https://theupdateframework.readthedocs.io/en/latest/api/tuf.api.html),
24+
a "low-level" API, designed to provide easy and safe access to TUF
25+
metadata and to handle (de)serialization from/to files.
26+
* [`tuf.ngclient`](https://theupdateframework.readthedocs.io/en/latest/api/tuf.ngclient.html),
27+
a client implementation built on top of the metadata API.
4528

29+
High-level support for implementing
30+
[repository operations](https://theupdateframework.github.io/specification/latest/#repository-operations)
31+
is planned but not yet provided: see [1.0.0 plans](docs/1.0.0-ANNOUNCEMENT.md).
4632

33+
In addition to these APIs the project also provides a *legacy
34+
implementation* with `tuf.client` implementing the client workflow and
35+
`tuf.repository_tool` providing a high-level interface for repository
36+
operations. The legacy implementation is going to be
37+
[deprecated](docs/1.0.0-ANNOUNCEMENT.md) in the near future.
4738

4839
The reference implementation strives to be a readable guide and demonstration
4940
for those working on implementing TUF in their own languages, environments, or
@@ -75,7 +66,8 @@ Documentation
7566
-------------
7667
* [Introduction to TUF's Design](docs/OVERVIEW.rst)
7768
* [The TUF Specification](https://theupdateframework.github.io/specification/latest/)
78-
* [Getting Started with the TUF Reference Implementation](docs/GETTING_STARTED.rst)
69+
* Examples: [client](examples/client_example) and [repository](examples/repo_example)
70+
* [API Reference](https://theupdateframework.readthedocs.io/)
7971
* [Governance](docs/GOVERNANCE.md) and [Maintainers](docs/MAINTAINERS.txt)
8072
for the reference implementation
8173
* [Miscellaneous Docs](docs/)
File renamed without changes.

docs/CHANGELOG.md

+37
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,42 @@
11
# Changelog
22

3+
4+
## v0.20.0
5+
6+
*__NOTE:__ This will be the final release of python-tuf that includes the
7+
legacy implementation code. Please see the [*1.0.0
8+
announcement*](1.0.0-ANNOUNCEMENT.md) page for more details about the next
9+
release and the deprecation of the legacy implementation, including migration
10+
instructions.*
11+
12+
### Added
13+
* metadata API: misc input validation (#1630, #1688, #1668, #1672, #1690)
14+
* doc: repository library design document and ADR (#1693)
15+
* doc: 1.0.0 announcement (#1706)
16+
* doc: misc docstrings in metadata API (#1620)
17+
* doc: repository and client examples (#1675, #1685, #1700)
18+
* test: ngclient key rotation (#1635, #1649, #1691)
19+
* test: ngclient top-level role update (#1636)
20+
* test: ngclient non-consistent snapshot (#1666, #1705)
21+
* test: more lint/type checks and auto-formatting (#1658, #1664, #1659, #1674,
22+
#1677, #1687, #1699, #1701, #1708, #1710, #1720, #1726)
23+
* build: Python 3.10 support (#1628)
24+
25+
### Changed
26+
* ngclient: misc API changes (#1604, #1731)
27+
* ngclient: avoid re-loading verified targets metadata (#1593)
28+
* ngclient: implicitly call refresh() (#1654)
29+
* ngclient: return loaded metadata (#1680)
30+
* ngclient: skip visited nodes on delegation tree traversal (#1683)
31+
* ngclient: remove URL normalisation (#1686)
32+
* build: modernise packaging configuration (#1626)
33+
* build: bump dependencies (#1609, #1611, #1616, #1621)
34+
* build: limit GitHub Action token visibility and permissions (#1652, #1663)
35+
* test: misc test changes (#1715, #1670, #1671, #1631, #1695, #1702)
36+
37+
### Removed
38+
* doc: obsolete roadmap (#1698)
39+
340
## v0.19.0
441

542
For users of legacy client (tuf.client module) this is purely a security fix

setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[metadata]
22
name = tuf
3-
version = 0.19.0
3+
version = 0.20.0
44
author = https://www.updateframework.com
55
author_email = [email protected]
66
description = A secure updater framework for Python

tuf/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# setup.cfg has it hard-coded separately.
33
# Currently, when the version is changed, it must be set in both locations.
44
# TODO: Single-source the version number.
5-
__version__ = "0.19.0"
5+
__version__ = "0.20.0"
66

77
# This reference implementation produces metadata intended to conform to
88
# version 1.0.0 of the TUF specification, and is expected to consume metadata

0 commit comments

Comments
 (0)