- Status: accepted
- Date: 2020-11-23
Technical Story: #1126
The plan is to implement a refactored TUF (1.0.0) alongside the current code base, in order to not disrupt existing usage and keep providing a Python 2.7 client.
We need to decide on the best place to do this development.
- Developing the new code piecemeal
- Continuing to make releases in the interim
- Avoiding maintenance overhead
Develop TUF 1.0.0:
- In its own repository
- In a separate development branch of the current TUF implementation
- In the default branch, archiving the current implementation
- In a subdirectory of the current TUF implementation
Chosen option: "Develop TUF 1.0.0 in a subdirectory of the current TUF implementation", because we want to add the new TUF code gradually while keep maintaining the current implementation given limited maintenance resources.
Once development of the new version is complete, we will transition from TUF 1.0.0 in a subdirectory to stand-alone TUF 1.0.0 by the following procedure:
- flesh out tuf/api/*
- implement tuf/client/new-updater.py
- implement tuf/repository/*
- <iterate>
- git mv tuf/client/new-updater.py tuf/client/updater.py
- git rm tuf/*.py
- tag 1.0.0
Developing TUF 1.0.0 in a subdirectory of the current TUF implementation seems to have the least maintenance overhead compared to option 1 and 2, while allowing us to continue making releases with the old code unlike option 3.
- In progress development in the default branch causes messiness in plain sight.