Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TAP process (TAP 1) #121

Closed
joshuagl opened this issue Jul 8, 2020 · 7 comments
Closed

TAP process (TAP 1) #121

joshuagl opened this issue Jul 8, 2020 · 7 comments
Assignees

Comments

@joshuagl
Copy link
Member

joshuagl commented Jul 8, 2020

I think the TAP process could use some clarification/modernisation. The following is a list of questions that arose whilst reviewing TAP 1.

  • Per TAP 1 the Final state is when the features of a TAP are integrated/implemented within the reference implementation. There is no mention of integration into the specification. Should there be an additional state for "in the spec" vs "in the reference implementation"? Or should Final be "in the spec"?

  • Should TAP formats recommend line-wrapping? The existing TAPs mostly seem to line wrap at ~72-79 characters.

  • Is Post History, and the mailing-list centric nature of TAP 1, still relevant? It seems to me that it makes sense to discuss TAPS here, on GitHub, with posts to the mailing list to draw interested parties into the discussion? TAP 1 suggests that TAP submissions, reviews and ownership transfers should happen on the mailing list. I haven't seen that happen in practice.

  • TAP 1 suggests that

    If there are multiple authors, each should be on a separate line following RFC 2822 continuation line conventions.

    that doesn't appear to be true in any of the current TAPs. Should we update the TAPs or change the guidance in TAP 1?

  • A TAP is accepted as a Draft, but there's also an Accepted status. It's not clear to me from reading TAP 1 when we are talking about accepted as Draft and accepted as Accepted. The statuses and how a TAP moves through them should be cleared up.

@joshuagl
Copy link
Member Author

joshuagl commented Jul 8, 2020

  • Per TAP 1 the Final state is when the features of a TAP are integrated/implemented within the reference implementation. There is no mention of integration into the specification. Should there be an additional state for "in the spec" vs "in the reference implementation"? Or should Final be "in the spec"?

I absolutely agree with the rationale that the complexity of a TAP may not become clear until someone has tried to implement it, and therefore agree that no TAP should be accepted (Accepted?) until there's a reference implementation.

My impression has been that what makes a TAP Final is its inclusion in the specification, as that is the TUF artefact that more people are using and engaging with.

My current thought is that a TAP should not go from Draft->Accepted until there's an implementation, but that a TAP moves from Accepted->Final once it's integrated into the specification.

Merging into the reference implementation should follow swiftly, so long as we care about maintaining compatibility with the specification.

@trishankatdatadog
Copy link
Member

Thanks for raising these questions, Joshua! One concern of mine in particular is whether we should (or can we?) updated TAP 1 to include RFC 2119 language...

@joshuagl
Copy link
Member Author

joshuagl commented Jul 8, 2020

Thanks for raising these questions, Joshua! One concern of mine in particular is whether we should (or can we?) updated TAP 1 to include RFC 2119 language...

I think we SHOULD use RFC 2119 language. In part because using RFC 2119 definitions can make the intent clearer and in because we use that language in the specification and doing so in TAPs may make their integration into the specification easier.

@trishankatdatadog
Copy link
Member

Thanks for raising these questions, Joshua! One concern of mine in particular is whether we should (or can we?) updated TAP 1 to include RFC 2119 language...

I think we SHOULD use RFC 2119 language. In part because using RFC 2119 definitions can make the intent clearer and in because we use that language in the specification and doing so in TAPs may make their integration into the specification easier.

Yes, makes clear what is nonnegotiable or not

@joshuagl
Copy link
Member Author

Another question to consider, do we expect links to the augmented reference implementation to remain valid? i.e. tap4 links to a branch on GitHub which no longer exists, so anyone following the link gets a 404.

@JustinCappos
Copy link
Member

JustinCappos commented Jul 10, 2020 via email

@joshuagl joshuagl self-assigned this Jul 20, 2020
@joshuagl
Copy link
Member Author

I just merged #124 which overhauls the TAP 1 process document.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants