Repository navigation
Design client library #1135
Description
Activity
- addedclientRelated to the client (updater) implementationRelated to the client (updater) implementation
on Sep 10, 2020 - addeddiscussionDiscussions related to the design, implementation and operation of the projectDiscussions related to the design, implementation and operation of the project
on Sep 10, 2020 Things to consider, based on learnings from a PoC integration with pip (cc @jku):
download progress reporting Updater: No download progress hooks #1057handled with the abstractFetcherinterface Abstract out the network IO #1250allowing a package manager to plug-in their own network/download stackresolved with the abstractFetcherinterface Abstract out the network IO #1250- minimal footprint (minimal dependencies and being able to be installed independently of the repository library and tools)
- supporting metadata and targets on separate hosts, and different targets on different hosts client/updater design: mirror config redesign #1143
- ability to check for existence of local configuration for a given repository Updater: Add ability to check for existence of (local) repository #1063
TAPs to be aware of when designing:
- TAP 3: Multi-role delegations – accepted, but not in the specification because it is not implemented for the reference implementation
- TAP 4: Multiple repository consensus on entrusted targets – accepted, but not yet in the specification. Implemented in the current reference implementation
- allowing a package manager to plug-in their own network/download stack
Filed #1142 for this
Reacted by Joshua Lock- supporting metadata and targets on separate hosts, and different targets on different hosts
and #1143 for this
Reacted by Joshua LockSee #1158 for "client/updater: Parallel Downloads"
Reacted by Lukas Pühringer- addeddecision recordOutcome of this discussion should be tracked in a decision recordOutcome of this discussion should be tracked in a decision record
on Oct 14, 2020 We're seeing multiple areas where the current Updater interface/API is brittle or confusing (#1143, #1174, possibly others).
I had originally expected that we would try to maintain the current updater API, but we should review that and even if we do stay close to the current API plan to fix the confusing/outdated/inflexible aspects.
I had originally expected that we would try to maintain the current updater API, but we should review that and even if we do stay close to the current API plan to fix the confusing/outdated/inflexible aspects.
Same same.
Now that we've kicked out mirrors (so are not directly compatible anyway) and now that I've had time to think about it, I think we should improve the API as much as we can. It'll still be quite close to the old one (so not hard to port) but hopefully an improvement.
Latest ideas in #1317 (comment)
- addedbacklogIssues to address with priority for current development goalsIssues to address with priority for current development goals
on May 26, 2021 - removedbacklogIssues to address with priority for current development goalsIssues to address with priority for current development goals
on Jul 28, 2021 I think that in a way this issue and issue #1317 are covering the same stuff.
Do we need that one?
If we don't, I think the only two proposals left that are not addressed areTAPs to be aware of when designing:
- TAP 3: Multi-role delegations – accepted, but not in the specification because it is not implemented for the reference implementation
- TAP 4: Multiple repository consensus on entrusted targets – accepted, but not yet in the specification. Implemented in the current reference implementation
which we can move in #1317 as TODO items.
IMO the final missing piece(s) here might be documented in #1580.
I'm sure there are features that are still wanted by someone, but I think the client design is now done and implemented: anything still missing is a new feature, closing this one
Identify what functionality from existing updater/download modules should exist in a TUF client on top of a metadata model as sketched in #1112.
Start with API functionality.
Coordinate with #1134.