Skip to content

Commit 901496d

Browse files
authored
Merge pull request #1220 from sechkova/adr0003
ADR0003: where to develop TUF 1.0.0
2 parents 2302f0d + 3370005 commit 901496d

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Develop TUF 1.0.0 in a subdirectory of the current TUF implementation
2+
3+
* Status: accepted
4+
* Date: 2020-11-23
5+
6+
Technical Story: https://github.com/theupdateframework/tuf/issues/1126
7+
8+
## Context and Problem Statement
9+
10+
The plan is to implement a refactored TUF (1.0.0) alongside the current
11+
code base, in order to not disrupt existing usage and keep providing
12+
a Python 2.7 client.
13+
14+
We need to decide on the best place to do this development.
15+
16+
## Decision Drivers
17+
18+
* Developing the new code piecemeal
19+
* Continuing to make releases in the interim
20+
* Avoiding maintenance overhead
21+
22+
## Considered Options
23+
24+
Develop TUF 1.0.0:
25+
26+
* In its own repository
27+
* In a separate development branch of the current TUF implementation
28+
* In the default branch, archiving the current implementation
29+
* In a subdirectory of the current TUF implementation
30+
31+
## Decision Outcome
32+
33+
Chosen option: "Develop TUF 1.0.0 in a subdirectory of the current TUF
34+
implementation", because we want to add the new TUF code gradually
35+
while keep maintaining the current implementation given limited
36+
maintenance resources.
37+
38+
Once development of the new version is complete, we will transition
39+
from TUF 1.0.0 in a subdirectory to stand-alone TUF 1.0.0 by the following
40+
procedure:
41+
42+
* flesh out tuf/api/*
43+
* implement tuf/client/new-updater.py
44+
* implement tuf/repository/*
45+
* \<iterate\>
46+
* git mv tuf/client/new-updater.py tuf/client/updater.py
47+
* git rm tuf/\*.py
48+
* tag 1.0.0
49+
50+
## Pros and Cons of the Options
51+
52+
Developing TUF 1.0.0 in a subdirectory of the current TUF
53+
implementation seems to have the least maintenance overhead compared to
54+
option 1 and 2, while allowing us to continue making releases with the
55+
old code unlike option 3.
56+
57+
### Negative Consequences
58+
59+
* In progress development in the default branch causes messiness
60+
in plain sight.
61+
62+
## Links
63+
64+
* [Discussion of Python version support in TUF 1.0.0](https://github.com/theupdateframework/tuf/issues/1125)
65+
* [Discussion of deprecation policy for the pre-1.0, Python 2.7 supporting, code](https://github.com/theupdateframework/tuf/issues/1127)

docs/adr/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ This log lists the architectural decisions for tuf.
77
- [ADR-0000](0000-use-markdown-architectural-decision-records.md) - Use Markdown Architectural Decision Records
88
- [ADR-0001](0001-python-version-3-6-plus.md) - Default to Python 3.6 or newer for new development
99
- [ADR-0002](0002-pre-1-0-deprecation-strategy.md) - Deprecation strategy
10+
- [ADR-0003](0003-where-to-develop-TUF-1-0-0.md) - Develop TUF 1.0.0 in a subdirectory of the current TUF implementation
1011

1112
<!-- adrlogstop -->
1213

0 commit comments

Comments
 (0)