blob: ec03ca69a3e3cc82952f1579a3561dc75c861bb9 [file] [log] [blame]
//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
//You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software
//distributed under the License is distributed on an "AS IS" BASIS,
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//See the License for the specific language governing permissions and
//limitations under the License.
= Incubator Clutch Status
Apache Incubator PMC
:jbake-type: simplepage
:jbake-status: published
:idprefix:
:imagesdir: /images/
[[current]]
Clutch is a tool which gathers details about the projects (podlings) currently in incubation and generates the table below. Clutch also generates an analysis page
for each podling, along with several data files. Its aim is to encourage and nurture podlings; and to provide an overview of the state of establishment of various resources,
and quick access to thems. See link:#definitions[definitions] and link:#notes[notes] below regarding purpose, interpretation, and how-to.
[[clutch]]
== Clutch
include::_includes/clutcht.ad[]
Current Board Report:
include::_includes/clutchmy.ad[]
=== Quick Notes
* The [.care]#orange# items indicate where the podling needs to take more care and attention.
* Anything [.issue]#vermilion# is an issue that the podling should address ASAP. Admittedly nothing can be done about elapsed time.
* The [.cool1]#bluish-green# items indicate success.
* The [.cool2]#yellow# items are okay.
* Click the column header link for link:#definitions[definitions].
* Click cells to go to available related resources.
* Click the podling name in the first column to go to the podling's clutch analysis page, which has deeper and more detailed information.
[cols="2*<,18*^",options="header"]
[%autowidth]
|===
|link:#h-project[Podling]
|link:#h-sponsor[Sponsor]
|link:#h-startdate[A,title=Start Date]
|link:#h-elapseddays[B,title=Elapsed Days]
|link:#h-reportingmonthly[C,title=Reporting Monthly?]
|link:#h-reportinggroup[D,title=Reporting Group]
|link:#h-hasstatusfile[E,title=Has status file]
|link:#h-statusupdatedate[F,title=Status updated]
|link:#h-statusage[G,title=Status Age]
|link:#h-statusupdatecounts[H,title=Status Update Counts]
|link:#h-numbercommitters[I,title=Number of Committers]
|link:#h-numbernewcommitters[J,title=Number of New Committers]
|link:#h-hasrepos[K,title=Has a Code Repository]
|link:#h-hastracker[L,title=Has Issue Tracker]
|link:#h-hasdevlist[M,title=Has dev@ List]
|link:#h-hascommitslist[N,title=Has commits@ list]
|link:#h-haswebsite[O,title=Has Website]
|link:#p_has_a_distribution_area[P,title=Has a Distribution Area]
|link:#h-hassigningkeys[Q,title=Has Release Signing Keys]
|link:#h-hasrelease[R,title=Has a Release in the Distribution Area]
include::_includes/clutchr.ad[]
|link:#h-project[Podling]
|link:#h-sponsor[Sponsor]
|link:#h-startdate[A,title=Start Date]
|link:#h-elapseddays[B,title=Elapsed Days]
|link:#h-reportingmonthly[C,title=Reporting Monthly?]
|link:#h-reportinggroup[D,title=Reporting Group]
|link:#h-hasstatusfile[E,title=Has status file]
|link:#h-statusupdatedate[F,title=Status updated]
|link:#h-statusage[G,title=Status Age]
|link:#h-statusupdatecounts[H,title=Status Update Counts]
|link:#h-numbercommitters[I,title=Number of Committers]
|link:#h-numbernewcommitters[J,title=Number of New Committers]
|link:#h-hasrepos[K,title=Has a Code Repository]
|link:#h-hastracker[L,title=Has Issue Tracker]
|link:#h-hasdevlist[M,title=Has dev@ List]
|link:#h-hascommitslist[N,title=Has commits@ list]
|link:#h-haswebsite[O,title=Has Website]
|link:#p_has_a_distribution_area[P,title=Has a Distribution Area]
|link:#h-hassigningkeys[Q,title=Has Release Signing Keys]
|link:#h-hasrelease[R,title=Has a Release in the Distribution Area]
|===
[[definitions]]
=== Definitions, Notes, and References
The [.care]#orange# and [.issue]#vermilion# items indicate where more care and attention is needed. The following
notes for each column provide definitions and attempt to link directly to the relevant process documentation:
[[h-project]]
==== Podling
The name of each podling is linked to a link:#podling_analysis_page[podling clutch analysis page].
If your podling is in incubation, but is missing from the Clutch table, then it still needs to be added to the [.code]#content/podlings.xml# file.
See the link:/guides/mentor.html#add_to_incubation_summary_file[mentor's guide]. Clutch also generates the link:/projects/[Projects page] from [.code]#content/podlings.xml#.
[[h-sponsor]]
==== Sponsor
Usually the Incubator sponsors podlings. Occasionally Apache Top Level Projects (TLPs) sponsor podlings. The sponsor is chosen on the link:/guides/proposal.html[proposal].
Set the value in the [.code]#content/podlings.xml# entry for the podling.
[[h-startdate]]
==== A: Start Date
This is the date the podling started. Usually this is the date the podling proposal vote passed on the Incubator mailing list.
Set this in the [.code]#content/podlings.xml# entry for the podling.
[[h-elapseddays]]
==== B: Elapsed Days
This is the number of days since the start date. This is color coded according to the normal timeline of a podling.
[.cool3]#<3#, [.cool2]#<12#, [.cool1]#<18#, [.cool3]#<24#, [.cool4]#>24# months. We may adjust these levels to better fit currently-observed cycles.
[[h-reportingmonthly]]
==== C: Reporting Monthly
For the first three months podlings report monthly. If the podling misses a report, it returns to the monthly-reporting requirement until it reports again.
[[h-reportinggroup]]
==== D: Reporting Group
Which months the podling reports: 1 = January, April, July, October; 2 = February, May, August, November; 3 = March, June, September, December.
Note that the report process for a month begins at the end of the prior month. The IPMC chair sends out the reporting schedule on a monthly basis, and reminders to each podling's dev list.
[h-hasstatusfile]]
==== E: Has Status File
Each podling maintains a status file in [.code]#content/projects/(podling).xml# which Clutch converts to a status page.
Your mentor sets up the file and then the podling maintains it. The key part to maintain is the "News" section, where you announce New Committers, PPMC Members, and Releases. For greater detail, please see:
* link:/guides/mentor.html#initialize_podling_status_page[Initializing Status]
* link:/policy/incubation.html#ongoing_activities[Ongoing Activities]
* link:/guides/website.html#maintaining_status_files[Status Maintenance]
* link:/guides/ppmc.html#project_status_page[Podling Status Page]
Click the link in the cell to view the current status page.
[[h-statusupdatedate]]
==== F: Status Update Date
The date the status page was last updated. Keep the Status Page up to date with frequent news about:
* New Committers
* New PPMC Members
* New Releases
* New Repositories
* New Resources
[[h-statusage]]
==== G: Status Age
Days since the status page was last updated. The text color indicates when a podling is not keeping its status up to date.
[.cool1]#<2#, [.cool2]#<4#, [.cool3]#<9#, [.cool4]#>9# months.
[[h-statusupdatecounts]]
==== H: Status Update Counts
Cumulative number of commits to the podling status file in the previous 2, 4, and 9 months
[[h-numbercommitters]]
==== I: Number of Committers
The number of committers who have been approved to date. Taken from Whimsy via
https://whimsy.apache.org/public/public_ldap_projects.json[public project ldap].
Maintained in Whimsy through https://whimsy.apache.org/roster/ppmc/[the roster pages].
Click the cell to view https://people.apache.org/phonebook.html[the public phone book].
[[h-numbernewcommitters]]
==== J: Number of New Committers
The number of committers added since establishment. This count comes from the Status page "News" section.
See guides on voting in link:/guides/ppmc.html#adding_new_committers[new committers] and link:/guides/ppmc.html#voting_in_a_new_ppmc_member[new ppmc members].
[[h-hasrepos]]
==== K: Has a Code Repository
Indicates whether the podling has created a Gitbox or Subversion code repository. Projects may have multiple Gitbox repositories.
Click the podling name in the first column to view all of the podling's repositories. A podling coming to the ASF may need to request a
link:/guides/mentor.html#git_migrations[migration] or a link:/guides/mentor.html#gitbox_requests[new repository].
The list of Gitbox repositories comes from https://gitbox.apache.org/repositories.json[Gitbox json].
[[h-hastracker]]
==== L: Has Issue Tracker
Indicates whether the podling has an Issue Tracker. If the status file has an issue tracker link and the link is valid, there
is a link to the tracker in the cell.
[[h-hasdevlist]]
==== M: Has a Dev Mailing List
Indicates whether the podling has established a dev email list and archives. This comes from the status page, and Clutch confirms that it matches the usual naming pattern.
If the list is available, the cell has a link to the http://mail-archives.apache.org/mod_mbox/[mailbox archive] podling dev list.
[[h-hascommitslist]]
==== N: Has a Commits Mailing List
Indicates whether the podling has established a commits email list and archives. This comes from the status page, and Clutch confirms that it matches the usual naming pattern.
If the list is available, the cell has a link to the http://mail-archives.apache.org/mod_mbox/[mailbox archive] podling commits list.
Sometimes a podling will start by directing code repository and issue tracker notification emails to their dev list. This will often obscur meaningful conversation.
[[h-haswebsite]]
==== O: Has a Web Site
Podlings should maintain a website so the user community can find out information about the podling and The Apache Software Foundation.
Here is the incubator's link:/guides/sites.html[website guide]. If the website is not provided in the status file, Clutch tries to find it using the usual naming patterns.
If the website exists, the cell provides a link to it. Whimsy provides a periodic scan of podling websites which you can view
https://whimsy.apache.org/pods/[here]. The clutch process uses https://whimsy.apache.org/public/pods-scan.json[json] data to add notes about website issues
to the podling's clutch analysis page under "Errata".
[[p_has_a_distribution_area]]
==== P: Has a Distribution Area
Indicates whether the podling has a directory in the incubator's https://dist.apache.org/repos/dist/release/incubator/[release distribution directory].
If this exists, the cell provides a link.
[[h-hassigningkeys]]
==== Q: Has Release Signing Keys
Indicates whether the podling has a PGP "[.code]#Signing KEYS#" file in its distribution area. If this is present, the cell provides a link.
[[h-hasrelease]]
==== R: Has a Release in the Distribution Area
Indicates whether the podling has a release in their distribution area. Podlings must comply with Apache release and release distribution policies as modified by the Incubator.
* link:/guides/releasemanagement.html[Incubator Release Management]
* http://www.apache.org/dev/#releases[Software Product Releases]
* http://www.apache.org/legal/release-policy.html[Apache Release Policy (legal)]
* https://www.apache.org/dev/release-distribution.html[Apache Release Distribution Policy (infra)]
If there is a podling release, the cell provides a link to the podling's clutch analysis page's release section.
[[h-graduate]]
==== Graduating
Once the Board has approved the podling's graduation resolution, update your podling metadata in the [.code]#content/podlings.xml#
file as you progress through graduation. Complete the tasks listed in the documentation, such as a final tidy of the status page.
See https://infra.apache.org/infra-contact#requesting-graduation[Infrastructure steps for graduation].
[[h-retire]]
==== Retirement
Once the Incubator PMC has agreed to a podling's retirement, update the podling metadata and tidy the status page. If the podling is continuing development
elsewhere, make sure to provide the new location. When this occurs chances are someone on the IPMC will handle these duties ad hoc.
include::_includes/clutcho1.ad[]
[[steps]]
== Assist with Incubation Steps
Clutch helps us all follow the process from the "Acceptance" phase onwards.
Any committer to a podling can help with these steps. Don't leave it all to your mentors, although there are some steps that only they can do.
[[mentors]]
== Mentors
This list comes from the link:/projects/[Projects in incubation] summary table.
The link:/incubation/Roles_and_Responsibilities.html#Mentor[Mentors] are ASF members or individuals recognized by the IPMC who have chosen to assist these projects.
The best way to find mentors for a new project is during your Discuss and Proposal phases on the general@ mail list.
include::_includes/clutchm.ad[]
[[notes]]
== Notes
Any Incubator committer can run 'clutch'. In the top-level of the SVN repos [.code]#incubator/public/trunk# SVN, do: '[.code]#./clutch2.sh#' to
re-generate the link:#data[data files] and Asciidoctor files for the clutch. This is all a part of the normal build in GIT: https://github.com/apache/incubator[Incubator Git].
See the Readme.
Clutch reads the source file for the link:/projects/[projects currently in incubation] table (i.e. [.code]#content/podlings.xml#),
ensures that each new project has an entry, and adds some more attributes. Clutch then gathers some data from each project's Status page and
validates that certain resources are established and steps have been achieved.
Clutch output includes link:#data[data files]
[[podling_analysis_page]]
=== Podling Clutch Analysis Page
The clutch analysis fills the data included on this page and creates an analysis for each podling that can be linked to from the podling name in the clutch table.
==== Description
* The podling description from [.code]#content/podlings.xml#
* The podling start date.
* The date of the last update of project/status.xml.
* The reporting cycle.
* The number of committers and ppmc members. Indication if these are equal.
* Mentor list including apache ids.
==== News
Copies the news from the podling status page
==== Resources
Listing of various podling resources
===== Project Website
Link to podling's public website
===== Mailing lists
* Developer mailing list archive
* Commits mailing list archive
===== Issue Tracker
Link to issue tracker
===== Wiki
Link to wiki
===== Repositories
* Detailed list of gitbox repos from infra's ground truth for the podling.
* Link to any subversion repository.
* For each gitbox repos:
** Gitbox link
** Github link
** Description
** Number of commits
** Date of last commit
==== Releases
Information about the podling's release, harvested from the distribution area's svn repository.
===== Current
Current releases:
* Link to the signing key, if it exists.
* Link to instructions on how to verify a release.
* Release list is suppressed if there are no signing keys
* For each release:
** Download link using [.code]#closer.lua#
** Signature link
** Hash link
** Size of the download file
** Date that the release was added to the distribution area.
** User who moved the release.
** Revision in the svn repository.
==== Errata
Issues which may require further work.
* Errata has a list of potential issues identified for the podling.
* Critical issues are in bold.
* Links to pages on how to resolve the issue.
* Link to the https://whimsy.apache.org/pods/project[whimsy podling site scan]/
[[data]]
== Data files
Data files are also generated so that other tools can easily re-use the metadata for the set of projects currently in incubation:
* link:/clutch/clutch.txt[[.code]#clutch.txt#] - list of projects, one per line. Comma-separated values (CSV).
* [.code]#clutch.pkl# - a Python "pickle" file with various attributes (it is in the top-level of SVN incubator/public/trunk).
* One text file for each Reporting group listing the dev mail address of the podlings due to report in that group.
(See link:/clutch/report_due_1.txt[[.code]#report_due_1.txt#], link:/clutch/report_due_2.txt[[.code]#report_due_2.txt#], and
link:/clutch/report_due_3.txt[[.code]#report_due_3.txt#])
These are used by the IPMC to send monthly report alert reminders.
* link:/clutch/podlings_graduated.txt[[.code]#podlings_graduated.txt#] - list of graduated podlings, one per line with start and end dates.
* link:/clutch/podlings_retired.txt[[.code]#podlings_retired.txt#] - list of retired podlings, one per line with start and end dates.
[[other]]
== Other Issues
Occasionally there are other issues, usually regarding podlings not cleaning up after their "graduation".
include::_includes/clutcho2.ad[]
[[notes-2]]
== Further Notes
The http://en.wikipedia.org/wiki/Clutch_(eggs)[clutch] is the set of eggs which have been laid. The mother hen (our Incubator PMC)
needs to continually gather them, to ensure that none have rolled from the nest or moved to the outside, being forgotten or becoming cold.
Clutch also means to grasp eagerly.
So please interpret this table and the detailed pages from the point-of-view of encouragement and nurture.
=== Origin
The nest was becoming full. Some podlings were forgotten, rolled into dark corners. We created a new tool, "clutch", to assist with oversight of all podlings
(gmane link is now missing). The clutch started 2008-10-19. (missing gmane link) There was prior list discussion. Also see
https://issues.apache.org/jira/browse/INCUBATOR-78[INCUBATOR-78]
=== Colour Scheme
The colours for the table were specifically chosen to take into account colour-blindness and general accessibility.
See the email discussion that led to this: http://thread.gmane.org/gmane.comp.apache.incubator.general/20788/focus=20810[Re: Clutch color coding].
2008-12-04 http://s.apache.org/clutch_colour?action=display[http://s.apache.org/clutch_colour] and see some testing
http://people.apache.org/~crossley/cud/test.html[notes] and demonstrations.
Thanks again to: "Color Universal Design (CUD) - How to make figures and presentations that are friendly to Colorblind people."
Masataka Okabe and Kei Ito. (http://jfly.iam.u-tokyo.ac.jp/color/[http://jfly.iam.u-tokyo.ac.jp/color/]