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

Creates project benefits #100

Closed

Conversation

annabellegoth2boss
Copy link
Contributor

Initial documentation of the OpenSSF Project Stages, responsibilities, and benefits of being an OpenSSF project intended for discussion. Does not have forms for projects; those are TBD based on confirmed requirements.

Initial documentation of the OpenSSF Project Stages, responsibilities, and benefits of being an OpenSSF project intended for discussion. Does not have forms for projects; those are TBD based on confirmed requirements.
project_stages.md Outdated Show resolved Hide resolved
#### Incubating Entry Requirements and Considerations

* Projects must have a minimum of three maintainers with a minimum of two different company affiliations.
* Projects must be aligned with the OpenSSF mission and be a novel approach for existing areas, address an unfulfilled need, or be initial code needed for OpenSSF WG work. It is preferred that extensions of existing OpenSSF projects collaborate with the existing project rather than seek a new project.
Copy link
Contributor

Choose a reason for hiding this comment

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

Pointing out the "address an unfulfilled need" phrase, as this is worth a TAC discussion.

Incentivizing collaboration is good, but as worded, it would seem to impose a requirement on projects that "there can only be one X, and the first one wins". Do we want that?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

+1 on the need for discussion. "Novel approach for existing areas" was an attempt to recognize that the first to apply isn't necessarily the only way (and disincentive rushed applications) , but there should be some mitigation to avoid duplicate functionality projects. I think given the OpenSSF's focus on improving existing project security, more resources for fewer projects is appropriate, rather than a market-driven approach.

Copy link
Contributor

Choose a reason for hiding this comment

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

Ah, this could also have been a parsing error on my end :)

If I re-read this, and express the logic in SQL terms, as such, "project must (be aligned with the mission) AND (be a novel approach OR address an unfulfilled need OR be initial code for a working group)" ... then my concern is addressed.

Is that how you intended it to be read?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Correct!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'll propose an edit

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Suggested change
* Projects must be aligned with the OpenSSF mission and be a novel approach for existing areas, address an unfulfilled need, or be initial code needed for OpenSSF WG work. It is preferred that extensions of existing OpenSSF projects collaborate with the existing project rather than seek a new project.
* Projects must be aligned with the OpenSSF mission _and_ either be a novel approach for existing areas, address an unfulfilled need, or be initial code needed for OpenSSF WG work. It is preferred that extensions of existing OpenSSF projects collaborate with the existing project rather than seek a new project.

Copy link
Contributor

Choose a reason for hiding this comment

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

LGTM!


* Projects must have a minimum of two maintainers with different company affiliations.
* Projects must be aligned with the OpenSSF mission and be a novel approach for existing areas, address an unfulfilled need, or be initial code needed for OpenSSF WG work. It is preferred that extensions of existing OpenSSF projects collaborate with the existing project rather than seek a new project.

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
* If contributing an existing Project to the OpenSSF, the contribution must undergo license and IP due diligence by the LF.

project_stages.md Outdated Show resolved Hide resolved
* Maintain a diversified contributor base (i.e. not a single-vendor project) with an active flow of contributions
* Follow security best practices (as recommended by the OpenSSF and others)
* Maintain a point of contact for vulnerability reports and follow coordinated vulnerability disclosure practices
* Implement, practice, and refine mature software development and release practices such a following a version schema
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
* Implement, practice, and refine mature software development and release practices such a following a version schema
* Implement, practice, and refine mature software development and release practices, such as adherence to semantic versioning, and having a declared policy for stable releases and backported fixes

Copy link
Contributor

Choose a reason for hiding this comment

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

Making this suggestion to start a conversation. I don't have a strong view on whether graduated projects must have a stable branch policy (though I think it is, in general, a good thing, and a mark of project maturity, there could also be projects to which this doesn't apply).


* Projects must have a minimum of three maintainers with a minimum of two different company affiliations.
* Projects must be aligned with the OpenSSF mission and be a novel approach for existing areas or address an unfulfilled need. Projects with duplicate, similar or competing fuctionality to an existing OpenSSF project may be denied Graduation status if the TAC does not see technical justification for overlapping projects.
* Projects must be able to show adoption by multiple parties and that adoption's value to the open source community and or end users.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
* Projects must be able to show adoption by multiple parties and that adoption's value to the open source community and or end users.
* Projects must be able to show production usage by more than three independent companies, and demonstrate the value that that adoption provides to the open source community and or end users.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Re "adoption" (vs production usage) and "multiple parties" (vs companies), one of the use cases I was thinking of was an open source project using an OpenSSF project in their build and release workflow.

Copy link
Contributor

Choose a reason for hiding this comment

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

That makes a lot of sense. Since this should be a measure of maturity, and I agree that adoption in certain open source projects would demonstrate that, how could this be worded to avoid gaming this metric by demonstrating adoption in very small / low impact projects?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That is a great question!

"critical adoption" by "multiple, significant parties"?

Copy link
Contributor

@AevaOnline AevaOnline May 9, 2022

Choose a reason for hiding this comment

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

seems ... too open-ended? I like it ... and at the same time, I think the context you so clearly articulated on the TAC call would be lost.

Perhaps a second clarifying sentence, or a parenthetical, could help? e.g.,

* Projects must be able to show adoption by multiple parties, which could be production deployments or substantial use by established external open source communities, and demonstrate the value of that adoption to either the end users or the open source community.


#### Graduated Project Entry Requirements and Considerations

* Projects must have a minimum of three maintainers with a minimum of two different company affiliations.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
* Projects must have a minimum of three maintainers with a minimum of two different company affiliations.
* Projects must have maintainers with a minimum of three different company affiliations.

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggesting this change for two reasons:

  • so that the bar for graduated is slightly higher than for the previous stage,
  • so that, should one company pull out of a project, or be acquired by another contributing company, the project doesn't fall below the baseline sandbox acceptance criteria with only one contributing entity.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

+1

Will leave this open for others to discuss

Co-authored-by: Aeva Black <806320+AevaOnline@users.noreply.github.com>
* May request OpenSSF budget for project improvements such as security audits or time-bound contracting needs
* May request OpenSSF for sustained maintainer stipends (details determined by OpenSSF and project leads)
* With additional TAC or WG approval, may fundraise for dedicated project funds, coordinated by the OpenSSF
* Projects may use the OpenSSF logo to promote their project (in accordance with the trademark guidelines). Projects may be referred to as an "OpenSSF Project" or "OpenSSF $ProjectName."
Copy link
Contributor

Choose a reason for hiding this comment

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

I didn't comment on the correlated sandbox/incubating lines, and will comment here.

This implies the creation of a Foundation-wide trademark enforcement program, at least for projects and related marketing materials. Pointing out that this should get discussed by the GB.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

+1 on GB discussion. Re TMs, the mark holder (LF) already has enforcement abilities, this is just a change to the usage guide of the mark. I don't think front-loaded approvals (ie "submit marketing materials for sign off") are the best use of resources, rather, having projects agree to abide by the usage guide as part of their acceptance, and the mark holder can become involved if there are notable patterns of misuse.

Copy link
Contributor

Choose a reason for hiding this comment

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

+1 on not front-loading / over-loading with needing approval for every TM use.

+1 on having clear guidelines and requiring project leads to agree to abide by them.

Co-authored-by: Aeva Black <806320+AevaOnline@users.noreply.github.com>
@annabellegoth2boss annabellegoth2boss changed the base branch from main to working_version_process May 9, 2022 17:49
Moves to match file structure of ossf#95
@inferno-chromium
Copy link
Contributor

inferno-chromium commented May 9, 2022

Since 31c8a99 is now landed, can you please rebase. Also i think they are using the working_process branch

@inferno-chromium
Copy link
Contributor

Also, @annabellegoth2boss , can you please find a place to plug this in (can go in new PR too) - #95 (comment). I think we need a period of notification here for every release going forward [notification by email or slack or something].
There are 2 usecases:

  • Project releases - minor, major
  • Just community blog posts, e.g. slsa.dev ones. Right now, process is 1) notify on WG Slack 2) GitHub PR to sit couple of days 3) GitHub PR requires community member review. Do we want a quick TAC slack notification on this or some other way ?

@AevaOnline
Copy link
Contributor

Adding ideas to @inferno-chromium 's suggestions for notifications

  • email to TAC, or email to another list (maybe a PR/comms/marketing list?) ?
  • common slack channel for any WG Lead to raise notices in, and include TAC, Staff, and some Committee members in there?
  • create an "internal-notices" email reflector for all these sorts of things?

@annabellegoth2boss
Copy link
Contributor Author

Since 31c8a99 is now landed, can you please rebase. Also i think they are using the working_process branch

Hmm, I rebased to working_version_process, but I'm not seeing it a diff against tac/process/project-lifecycle.md... (and of course I forgot it would lose @AevaOnline's as changes and turn them into comments...will have to re-commit those)

@lehors
Copy link
Contributor

lehors commented May 10, 2022

I'm afraid something went wrong with the series of commits and rebases for this PR. Instead of modifying the process/project-lifecycle.md file it is replacing it entirely. It results in every line being shown as new...

@annabellegoth2boss
Copy link
Contributor Author

Oh I know what silliness I did. This is my mistake. @lehors, because #95 was still in flight when I started, I didn't edit off your branch, I made a new file off the pre-95 repo.

There are proposed changes to the project stages (and I remember losing your diagrams, let's add them back!), but much of it should be familiar. Since this section in #95 was a work in progress, are you all okay reviewing as is without a diff? (And I'll be wiser about my workflow next time...)

@lehors
Copy link
Contributor

lehors commented May 10, 2022

You could get back on your feet by squashing all your commits and force pushing the result as a single commit against this PR.

@annabellegoth2boss
Copy link
Contributor Author

annabellegoth2boss commented May 10, 2022

Update: New PR for review in #103

I think between the rebases and commits to be cherrypicked, I'm in a merge conflict hole ;) It'll probably just be easier in the long run if I open a new PR (can also add @AevaOnline's copyedits at that time which didn't get in in the file move). I can try to get to that today.

annabellegoth2boss added a commit to annabellegoth2boss/tac that referenced this pull request May 13, 2022
Updates the project_lifecycle.md from the updated working_version_process branch. Integrates comments from AevaBlack on /ossf/pull/100
@@ -0,0 +1,176 @@
## Becoming an OpenSSF Project

The OpenSSF's mission is to inspire and enable the community to secure the open source software we all depend on. OpenSSF is focused on the security of existing open source project however, there are missing pieces in the tooling needed to improve project security. These pieces are the projects OpenSSF aims to steward and support.

Choose a reason for hiding this comment

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

Suggested change
The OpenSSF's mission is to inspire and enable the community to secure the open source software we all depend on. OpenSSF is focused on the security of existing open source project however, there are missing pieces in the tooling needed to improve project security. These pieces are the projects OpenSSF aims to steward and support.
The OpenSSF's mission is to inspire and enable the community to secure the open source software we all depend on. OpenSSF is focused on the security of existing open source projects however, there are missing pieces in the tooling needed to improve project security. These pieces are the projects OpenSSF aims to steward and support.


# Project Life Cycle

New projects to the OpenSSF, and progression through the project lifecycle, are approved by the Technical Advisory Committee (TAC). Projects oversight is provided by either the TAC (if project is independent from a WG) or a WG (if project is part of a specific WG and follows that WG's governance).

Choose a reason for hiding this comment

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

Suggested change
New projects to the OpenSSF, and progression through the project lifecycle, are approved by the Technical Advisory Committee (TAC). Projects oversight is provided by either the TAC (if project is independent from a WG) or a WG (if project is part of a specific WG and follows that WG's governance).
New projects to the OpenSSF, and progression through the project lifecycle, are approved by the Technical Advisory Committee (TAC). Project oversight is provided by either the TAC (if project is independent from a working group (WG)) or a WG (if project is part of a specific WG and follows that WG's governance).


New projects to the OpenSSF, and progression through the project lifecycle, are approved by the Technical Advisory Committee (TAC). Projects oversight is provided by either the TAC (if project is independent from a WG) or a WG (if project is part of a specific WG and follows that WG's governance).

Projects follow the Sandbox, Incubating, Graduated and Archival lifecycle stages defined below. Projects that seek widespread adoption and end user use are expected to progress through the stages.

Choose a reason for hiding this comment

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

Suggested change
Projects follow the Sandbox, Incubating, Graduated and Archival lifecycle stages defined below. Projects that seek widespread adoption and end user use are expected to progress through the stages.
Projects follow the Sandbox, Incubating, Graduated and Archival lifecycle stages defined below. Projects that seek widespread adoption and use are expected to progress through the stages.


The OpenSSF Sandbox is the entry point for early stage projects and has four goals:

* Encourage experimentation and open collaboration that can add value to the OpenSSF mission and build the ingredients of a successful Incubation level Project

Choose a reason for hiding this comment

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

Suggested change
* Encourage experimentation and open collaboration that can add value to the OpenSSF mission and build the ingredients of a successful Incubation level Project
* Encourage experimentation and open collaboration, adding value to OpenSSF's mission and building the ingredients of a successful Incubation level Project

The OpenSSF Sandbox is the entry point for early stage projects and has four goals:

* Encourage experimentation and open collaboration that can add value to the OpenSSF mission and build the ingredients of a successful Incubation level Project
* Facilitate alignment with existing Working Groups or Projects if this is desired

Choose a reason for hiding this comment

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

Why the "if this is desired"? I'd imagine alignment with WGs/projects should be a requirement for any project entering OpenSSF?

* Projects must be aligned with the OpenSSF mission and be a novel approach for existing areas or address an unfulfilled need. Projects with duplicate, similar or competing fuctionality to an existing OpenSSF project may be denied Graduation status if the TAC does not see technical justification for overlapping projects.
* Projects must be able to show adoption by multiple parties and that adoption's value to the open source community and or end users.
* Projects must be able to show a consistent release cadence.
* Projects must have documented project governance and be able to demonstrate that governance in action.

Choose a reason for hiding this comment

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

Suggested change
* Projects must have documented project governance and be able to demonstrate that governance in action.
* Projects must have publicly documented project governance and be able to demonstrate that governance in action.


* Projects must have a minimum of two maintainers with different company affiliations.
* Projects must be aligned with the OpenSSF mission and be a novel approach for existing areas, address an unfulfilled need, or be initial code needed for OpenSSF WG work. It is preferred that extensions of existing OpenSSF projects collaborate with the existing project rather than seek a new project.

Choose a reason for hiding this comment

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

How are these applications approved? Simple majority TAC vote…?


#### Project Graduation Process: Incubating to Graduation

Graduation requires undergoing due diligence as a part of the process to move from Incubation to Graduation. Due Diligence is driven by a TAC or parent WG sponsor. Once the diligence is complete and the proposal made, two weeks are allocated for public comment before a TAC vote is called.

Choose a reason for hiding this comment

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

Same vote question here as above. Simple majority of the TAC?


### Archiving

Open source projects have a lifecycle and there are times that projects become inactive due to a variety of reasons. There are also cases where a project may no longer want to be supported by the OpenSSF, or the OpenSSF TAC may no longer wish to recommend the use of a project. Archiving happens through a vote of the TAC, and can be requested by the corresponding project's lead(s) or a TAC member.

Choose a reason for hiding this comment

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

Simple majority vote by the TAC?

* A proposal must be put forth to the TAC or WG repo
* The TAC or parent WG will inform the project maintainers, OpenSSF end user community and wider community of all archiving proposals
* The proposal must remain open for at least 2 weeks of discussion after the maintainers are informed.
* A vote must be finalized with 2/3 approval from the TAC or parent WG.

Choose a reason for hiding this comment

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

Ah, this one does specify a vote amount (⅔). Is it the same for the others above, then?

@lehors
Copy link
Contributor

lehors commented May 17, 2022

I understand the plan was for this PR to be closed in favor of PR#103. Otherwise it's going to be hard to have one conversation with 2 parallel PRs. @annabellegoth2boss can you please close this one?

@inferno-chromium
Copy link
Contributor

I understand the plan was for this PR to be closed in favor of PR#103. Otherwise it's going to be hard to have one conversation with 2 parallel PRs. @annabellegoth2boss can you please close this one?

Closing in favor of #103

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

Successfully merging this pull request may close these issues.

None yet

6 participants