Moving a PMC to the Attic
At some point a PMC may want to join the Attic. The following defines a process to move that PMC into the Attic and gently close it down.
- A PMC decides to move to the Attic.
- Conduct a discussion on the public developer list whether to dissolve the PMC. Do not conduct it on the private PMC list.
- Consider an appeal to the user list for interested users to provide their interest in helping out more.
- Consider whether any contributors might be candidates for promotion to committers or PMC members.
- Conduct a PMC vote on the public dev list.
- If the PMC votes to dissolve the PMC and move to the Attic, inform the board of the successful vote on board@ mailing list (linking or forwarding the ‘successful’ vote) and add a resolution to dissolve the PMC to the next board meeting agenda.
- If the PMC can’t get enough people to vote to dissolve the PMC (and there are not three -1 votes), then that is grounds for moving to the Attic. They should inform the board as above, noting that the vote failed to get enough votes.
- If the board approves the resolution, open an Attic JIRA item - ‘Move ${project} to the Attic’. The Attic PMC will step in and create a detailed issue description using retire.py, with other generated parts to move the project to the Attic. Generated issue content typically contains following steps (see “How to” below for a description of each step):
- # Confirm Board Resolution
- # Create project page on Attic site: https://attic.apache.org/projects/$project.html
- # Inform users of the move to the Attic
- # Update the project DOAP files (if any) or copy to projects-override
- # Get infra lock down project’s resources
- # Announce on announce at apache.org
The Attic PMC will then execute the steps: getting help from terminating project is welcome, particularly on informing users step or any other useful action at project’s level like modifying DOAP.
How to: General pointers
The following are useful Git/svn/https locations:
- site (https://attic.apache.org), with its source (https://github.com/apache/attic), built to asf-site
- jira (https://issues.apache.org/jira/browse/ATTIC)
- legacy svn site svn.apache.org/repos/asf/attic/site (github.com/apache/attic-site mirror): cwiki_retired is last content used for now
- permissions on svn /repos/asf and /repos/infra
- websites svnpubsub and infra-reports#sitesource
How to: 1. Confirm Board Resolution
Check previous Board minutes to confirm the “terminate” resolution passed. The minutes are available from the following sources:
- The private committers@a.o mailing list (requires login)
- Previously published Board meeting minutes
- Whimsy has a public list of Board Minutes by topic
However note that the most recent meeting minutes are not published until the following meeting at the earliest.
Check that Secretary removed the PMC from https://svn.apache.org/repos/private/committers/board/committee-info.txt (see also commits history).
This automatically removes VP entry on https://www.apache.org/foundation/leadership (src) and project from https://www.apache.org/#projects-list navigation (src): see www-site and its rendered HTML in asf-site branch.
How to: 2. Create project page on Attic site:
https://attic.apache.org/projects/${project}.html
The Attic Website uses Jekyll, which generates the Project Pages from project data files in YAML Format.
Adding a project to the website is done by adding a YAML file for the project to the _data/projects directory. This is currently a manual process, but we hope to automate it more in the future:
- clone the Git Attic Repository
- Create the project YAML file (see the Project Data page for help on crafting the YAML file)
- Commit the file to your clone and open a PR request
Once the PR is merged, Jekyll will automatically generate the project page.
Once the page is live:
- Check the project site carries the Attic Banner
- Check any CWIKI spaces carry the Attic Banner
- Use the project’s Template Page to help with:
- Creating the Attic JIRA
- Creating the Infra JIRA
- Templates for User & Announcement Emails
How to: 3. Inform users of the move to the Attic
Once the project page is live on the Attic website, you can use the project’s Template Page to get a project specific text for the User email.
The text will be based on the following template, replaced with project specific values.
A heads up for the ${project} user community that the ${project} PMC has
been 'moved to the Attic'. This means that the ${project} developers (more
formally its Project Management Committee) have voted to retire ${project}
and move the responsibility for its oversight over to the Attic project.
Loosely speaking this means that the projects resources will be moved to a
read-only state.
You can read more about the Apache Attic and the process of moving to the
Attic at https://attic.apache.org.
You can follow this process in JIRA:
https://issues.apache.org/jira/browse/ATTIC-${#}
Thanks,
${NAME}
on behalf of ${project} project and the Apache Attic.
Remember to subscribe to the user list: use Whimsy Mailing List Self-subscription to avoid moderation (if the project hasn’t been removed yet).
Also bear in mind that the user mailing list may already know and you can skip this stage, or you can get help from project having asked to move to the Attic. Make sure you read that thread if it does exist.
How to: 4. Update the project DOAP file (if any):
https://projects.apache.org/project.html?${project}
The files referenced are in [https://svn.apache.org/repos/asf/comdev/projects.apache.org/trunk] (https://svn.apache.org/repos/asf/comdev/projects.apache.org/trunk), which every Apache committer can update.
Identify whether the project has a DOAP file (see the
pmc change: <asfext:pmc rdf:resource="http://attic.apache.org" />
new category: <category rdf:resource="http://projects.apache.org/category/retired" />
You can use script/project2attic.py
to prepare the update that you’ll just need to review and commit
How to: 5. Get infra lock down project’s resources
Open an Infrastructure JIRA issue identifying the resources that need turning off/making read only.
Once the project page is live on the Attic website, you can use the project’s Template Page to get project specific content for the Infrastructure JIRA.
Typically, it contains steps like following, that need to be tweaked based on assets of the retired project:
- Make source control Git|Svn read-only
- Remove files from dist.apache.org/repos/dist/[release|dev]
- Closing down of dev@, commits@ and private@ etc. mailing lists
- Close down the user mailing list (unless still active - in which case propose a moderator to Infra)
- Make JIRA|Bugzilla read-only
- Make the wiki (if any) read-only
- Delete LDAP group(s)
- Turn off automated builds
How to: 6. Announce on announce@apache.org
Announce that the project is now retired.
Once the project page is live on the Attic website, you can use the project’s Template Page to get a project specific text for the Announcement email.
The text will be based on the following template, replaced with project specific values.
Sometimes, the user mailing list will not be shut down. If that is the case, it should be mentioned in the announce. e.g. add “The user mailing list remains open.” after “change in url.” below.
Announcing that the ${project} committers have voted to retire
the project due to inactivity. ${project} was {boilerplate}.
Retiring a project is not as simple as turning everything off, as
existing users need to both know that the project is retiring and
retain access to the necessary information for their own development
efforts.
You can read more about ${project}'s retirement at:
https://attic.apache.org/projects/${project}.html
The project's resources will continue to be available in a read-only state -
website, mailing lists, wikis, git, downloads and bug tracker with no
change in url.
Providing process and solutions to make it clear when an Apache
project has reached its end of life is the role of the Apache Attic,
and you can read more about that at:
https://attic.apache.org/
Thanks,
${NAME}
on behalf of the Apache Attic and the now retired ${project} project
It’s important to include the boilerplate from the project’s site so people know what we’re talking about.