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

ENH: 01 #1

Merged
merged 9 commits into from
Oct 22, 2018
Merged

ENH: 01 #1

merged 9 commits into from
Oct 22, 2018

Conversation

SantiagoTorres
Copy link
Member

@in-toto/ite-editors

Here's the draft of the first ITE (In-toto Enhancement). It's heavily based off of the JEP format. Please everyone comment on it!

@lukpueh @reza-curtmola @trishankatdatadog @ofek

@SantiagoTorres SantiagoTorres added the enhancement New feature or request label Oct 5, 2018
Copy link
Member

@trishankatdatadog trishankatdatadog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great start, thanks @SantiagoTorres!

I have two major questions:

  1. I think we should emphasize and discuss backwards-incompatibility a bit more. It is very important than an ITE does not break backwards-incompatibility unless absolutely necessary, and there is no other better way.

  2. Should we have timelines for how long an ITE is allowed to spend at most in each state? This would guarantee some sort of an SLA for the whole process.

@ofek What do you think?

Thanks,
Trishank


Vetting an idea publicly before going as far as writing a ITE is meant
to save the potential sponsor time. Many ideas have been brought
forward for changing Jenkins that have been rejected for various
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jenkins?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SantiagoTorres: Before you change this in your fork, please take a look at mine and cherry pick instead (see lukpueh@91d48a6)

[[submission]]
==== Creating a ITE Submission

Following a discussion on [email protected],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jenkins?

Even after a ITE reaches "Final" status, it may need to be updated.

In general, Standards track ITEs are not modified after they have
reached the Final state. Once a Standards ITE has been completed, Jenkins developer
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jenkins?

being addressed.
. **Specification** - The technical specification should describe the
syntax and semantics of any new feature. The specification should be
sufficiently detailed to allow new or existing Jenkins developers to
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jenkins?

sufficiently detailed to allow new or existing Jenkins developers to
reasonably understand the scope/impact of an implementation.
. **Motivation** - A clear description of the motivation is critical for any ITE
that wants to change Jenkins or the Jenkins project.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jenkins?

sections will not be approved as ITE Drafts.

The final implementation must include test code and documentation
appropriate for either the Jenkins user or developer documentation.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jenkins?

A **Resolution** section will be added to ITEs when their status is set to
Accepted, Rejected or Withdrawn.
It will include a link to the relevant post in the
[email protected] mailing list archives.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jenkins?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wow, I'm not sure how I missed these. Apologies

This document is based on the jenkins enhancement proposal (JEP)
and did not replace all occurrences of jenkins that should be
in-toto.
This commit fixes this addressing @trishankatdatadog's review
comments:
in-toto#1 (review)
- Remove stray words.
- Add missing words.
- Fix some commas, periods, apostrophes.
Copy link
Member

@lukpueh lukpueh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! I fixed some minor issues in my fork (feel free to cherry-pick from lukpueh/ITE@jep-xxxx-lp) and made comments below.


ITE stands for in-toto Enhancement. An ITE is a design document that describes
a new feature or aspect of the in-toto framework, the in-toto supply chain, or
the process within in-toto project. An ITE provides a concise technical
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"the process within in-toto project"

What does does mean?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I.e., passing ITE's, or other governance issues that we may want to define.

changing their status). See <<editor-responsibilities, ITE Editor Responsibilities & Workflow>> for
details.

ITE editorship is by invitation of the current editors. All of the ITE workflow
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

editorship is [given, assigned, received, ... ?] by invitation

==== Reviewer

The ITE Reviewer is the contributor who will make the final decision whether to
accept a ITE. In all cases where this document refers to the `Reviewer`, it
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we care for uniform emphasis and capitalization for terminology, e.g.
Editor vs. "Sponsor" vs. Reviewer vs. contributor

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Above comment applies to other terminology as well, e.g. ITE type, status, links to headings, ...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it'd be good to have it be uniform

or offer feedback about that ITE. One contributor might do only one or any
combination of these of these things during any part of the life of a ITE.
While we invite contributions by companies or other organizations, contributors
listed in a ITE need to be specific people.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do I understand correctly that all roles are also contributors? Should we mention this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, added text to specify this

forums, and attempts to build community consensus around the idea. The ITE
Sponsor should first attempt to ascertain whether the idea is ITE-able.
Posting to the [email protected] mailing list or opening an issue in
the specification repository footnoteref:[repo] is
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the footnote should point to a link to https://github.com/in-toto/docs

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds fair, will update.


Active:: [[active]]
Some Informational and Process ITEs may have a status of "Active" instead of "Final"
These ITEs are ongoing and never meant to be completed per se. E.g. ITE 1 (this ITE).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[were?] never meant to be completed?
Also, not sure if "per se" is the right expression here. Did you mean "a priori"?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm? No, it means that an ITE can be ammended and such.

ITEs may also have a **Superseded-By** row indicating that a ITE has been
rendered obsolete by a later document; the value is the number of the ITE that
replaces the current document. The newer ITE must have a **Replaces** row
containing the number of the ITE that it rendered obsolete.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add an additional header rows subsection:
Replaces:: [[header-replaces]]
?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, only if it replaces anything no? Or would you rather have "none" or so in that row if it replaces anything?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant add in order to describe, like you are describing all the other available "Additional header rows" here, e.g something like

Replaces:: [[header-replaces]]
An ITE that replaces another ITE must have a **Replaces** row containing the number of the ITE that it rendered obsolete.

(Not add because this particular ITE replaces another ITE) :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, will add

send comments and changes directly to the ITE sponsor. For more mature, or
finished ITEs consider submitting corrections to the ITE repository
footnoteref:[repo] or the in-toto issue tracker
footnoteref:[issues, https://github.com/in-toto/ITE/issues]. If the ITE sponsor is an
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

footnoteref:[issues, https://github.com/in-toto/ITE/issues]
should probably be
footnoteref:[issues, https://github.com/in-toto/in-toto/issues]

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I'm not sure as to why this is? care to elaborate please?


== Motivation

in-toto has classically been driven by "you-had-to-be-there" development. With
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TIL :)

specific changes largely being driven by smaller independent groups of
developers (sometimes just one). Sometimes, decisions were made and not
properly documented, which resulted in additional overhead and mind-reading
efforts to dig long-established rationales.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"dig [out?]"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or up? :P

== Abstract

An in-toto Enhancement (ITE) is a design document that describes a new feature
or aspect of the in-toto framework, a setup of its supply chain or an,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove comma (,) after "an"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please consider taking a look at my proposed fixes (lukpueh/ITE@jep-xxxx...lukpueh:jep-xxxx-lp).

Above issue, for instance, is already fixed.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I wasn't aware of that. I only saw your comments directly on this page.
Is there a direct link from this page to all proposed fixes, such as yours? (otherwise, how can I see all proposed fixes?)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my review summary above, i.e. #1 (review)

described below. An ITE may also have any number of <<Contributor,
Contributors>> who help write, implement, discuss, or offer feedback about
the ITE. One contributor might do only one or any combination of these things
during any part of the life of a ITE.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Earlier in this paragraph, we used "An ITE" ("What is an ITE?"). You should change "a ITE" to "an ITE" throughout this document for consistency. I assume this can be done easily using search & replace functionality?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

. An **Informational** ITE describes an in-totodesign issue, or
provides general guidelines or information to the in-toto community,
but does not propose a new feature. Informational ITEs do not
necessarily represent a in-toto community consensus or

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change "a in-toto" to "an in-toto"?
Change this throughout this document for consistency.

for the in-toto specification. It may also describe an interoperability or
backwards-compatibility standard which will be supported for the feature in
current versions of in-toto, moving forward.
. An **Informational** ITE describes an in-totodesign issue, or

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in-totodesign => in-toto design

but does not propose a new feature. Informational ITEs do not
necessarily represent a in-toto community consensus or
recommendation, so users and implementers are free to ignore
Informational ITEs or follow their advice. An example of an informational ITE

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use "Informational ITE" or "informational ITE" throughout this document?

For example, one sponsor might write large portions of one ITE, while another
sponsor might leave the writing to other contributors.

Anyone may be Sponsor for a ITE, though it should be someone familiar enough

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add "a" before Sponsor

Before delving into the details of the ITE workflow, let's take a high-level
look at how ITE might go.

. **<<start, Initial Discussion>>** - Andrea has an idea for new feature and emails it [email protected].

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add "a" before "new feature"


. **<<review, Review>>** - Kelly reviews the ITE and any related discussions
and implementation. Kelly agrees with Andrea that consensus has been reached
regarding the ITE and that the implementation is far enough along to enusure

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

enusure => ensure


By marking an ITE as "Accepted" the Reviewer indicates they believe that the
ITE has clear scope, design completeness, community consensus, and (if
applicable) in-progress implementation. Without all of these a ITE cannot be

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the dash character is not necessary for "in-progress"

ITE/1/README.adoc Outdated Show resolved Hide resolved
original sponsor. A good reason to transfer sponsorship is because the
original sponsor no longer has the time or interest in updating it or
following through with the ITE process, or has fallen off the face of
the 'net (i.e. is unreachable or not responding to email). A bad

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

incomplete single quote (before "net")?

=== Benefits to future developers

By providing clear, understandable, and bite-sized design documents which would
explain various subsections of in-toto. ITEs also make it clearer how an

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change dot (.) to comma (,) before "ITEs"?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about this one. Care to elaborate about the rationale ? :)

Copy link

@reza-curtmola reza-curtmola Oct 11, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"By providing clear, understandable, and bite-sized design documents which would
explain various subsections of in-toto." sounds like an incomplete sentence. Something it's missing.

So I assumed, your intention was to link the above with the next sentence.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, let me clean this up


There are no new infrastructure requirements related to this proposal.
This ITE leverages existing infrastructure.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you need to include a "== Testing section", and say this ITE has no testing needs? (based on the earlier definitions)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that's implied that since this doesn't include code testing isn't included. Would you want me to rephrase the definition or add the header to reflect this?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Earlier in this document, under "ITE Guidelines", "Required Sections", you say that for Testing:
"If the ITE has no testing needs, the section must say that."

Similarly, for Backwards Compatibility, you say that:
"If there are no backwards compatibility concerns, the section must say that."

And for Security:
"If the ITE has no impact on security, the section must say that."

So, I see that for this ITE, you DID include sections for Security and Backwards Compatibility, which say that there is no impact, but you did not do that for Testing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right. Sorry I'll fix this

* Coordinating contributors' work
* Ensuring the ITE meets the style, format, and quality guidelines
* Maintaining the ITE after it is finalized
* Setting and communicating the schedule as needed

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not clear what this means, i.e. what "schedule" does it refer to.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As to when reviews are due. I tried to rephrase to make this clearer

NOTE: When choosing to go counter to SHOULD or SHOULD NOT guidance,
the reasons behind that choice SHOULD be documented.

=== ITE Workflow

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As part of an ITE workflow section, it seems that for an ITE to be approved, it must contain both design AND implementation for a new feature. If one just wants to propose a new feature by describing the design from a specification p.o.v, but doesn't provide an implementation, that cannot be done through the ITE process.
This is not a major concern, I'm just wondering if this is what we want. In fact, reading the rest of this document, it seems that not all ITEs must have an implementation, but the ITE workflow section suggests they must have one.


Deferred:: [[deferred]]
A ITE can also be assigned a status of "Deferred". The ITE sponsor or an
editor can assign the ITE this status when no progress is being made

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to define a timeframe for when this can happen? 6 months? 1 year?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I vote for 6 months, but I'd like to have the opinion of other stakeholders on this decision :)

@reza-curtmola
Copy link

Great job!
I left some comment throughout the document.

@SantiagoTorres SantiagoTorres changed the title ENH: 01: add initial draft ENH: 01 Oct 11, 2018
@SantiagoTorres
Copy link
Member Author

@reza-curtmola @JustinCappos @lukpueh @trishankatdatadog Thanks for your review! I updated the document and hopefully we are close to having something final? There's mostly two issues that I need discussion:

  1. What is the time window before an ITE is considered Deferred
  2. How can we better bring up the concern about backwards compatibility

Please do review the template too :)

@trishankatdatadog
Copy link
Member

Regarding the two issues:

  1. It's a good idea to have a time window before an ITE is considered Deferred, but, going back to the earlier issue of an SLA, we should have a time window for every state in the ITE process. This will force us to deliver on ITEs in a guaranteed time window. Could we please attach those?

  2. For backwards compatibility, I propose paraphrasing from TAP 1: "All ITEs that introduce backwards incompatibilities must include a section describing these incompatibilities, justifying their necessity, and their severity. The ITE must explain how the Sponsor proposes to deal with these incompatibilities. ITEs without a sufficient backwards compatibility treatise will be rejected outright."

@SantiagoTorres
Copy link
Member Author

SantiagoTorres commented Oct 11, 2018 via email

- Add optional replaces header
- Clarify sentence in motivation for this ITE
- Add the missing testing section
This adds an expected timeline section to specify what's the expected
time to spend on each section of the ITE admission process.
@trishankatdatadog
Copy link
Member

LGTM, man, great job! 👍

@SantiagoTorres
Copy link
Member Author

@JustinCappos @reza-curtmola @lukpueh any objections? :)

@JustinCappos
Copy link
Contributor

Looks good to me. Should I merge?

@SantiagoTorres
Copy link
Member Author

Sounds good to me 👍 please do

@JustinCappos JustinCappos merged commit f8e57db into in-toto:master Oct 22, 2018
@lukpueh
Copy link
Member

lukpueh commented Oct 23, 2018

Sorry for the late review. You did a great job, Santiago, and everything looks fine. I found a few really minor typos and wording issues and proposed fixes in #2.

trishankatdatadog added a commit to adityasaky/ITE that referenced this pull request Apr 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants