Social Coding/Hosting a Project at GitHub
Eclipse Foundation-managed GitHub Organizations
The Eclipse Foundation manages several organizations on GitHub; one for each of the forges.
When you move your project to Eclipse, all existing related GitHub repositories must be moved into the corresponding GitHub organization. As part of the intellectual property (IP) due diligence process, each repository's history must be collapsed into a single commit that will be used as the project's initial contribution. The complete history will remain in the repository, but it will be obscured to a separate namespace.
- Tag your "initial contribution" commit as eclipse_initial
- Complete the New Project Provisioning Request (NPPR) form
- You will be sent a link when your project's creation review is complete
- Be sure to select "GitHub" in the "Code Repository" section
- Assign ownership of all project-related repositories to eclipsewebmaster
- Wait for the Eclipse Webmaster to take ownership and prepare your repositories
- Extract the collapsed history commit (now referenced by the eclipse_initial tag) from each repository as a ZIP file and submit them collectively as your initial contribution
The timing of the move is important. Once you start this process, you and your existing team will not be able to commit to the repository. As your project committers complete their paperwork, they will be given necessary permissions to work with the repository.
Moving Existing Repositories
Note that the committers listed in your project proposal are permitted to continue working and creating new commits after this process has started. They must follow the Eclipse Foundation's intellectual property due diligence rules from the moment we start the move process.
The first step is to assign ownership of the repository to the Eclipse Foundation's Webmaster.
Use the GitHub web interface to transfer ownership of each project repository to eclipsewebmaster.
For each repository, first locate and click the "Settings"; scroll down to the "Danger Zone".
Click "Transfer" in the "Transfer Ownership" block.
As instructed, type the name of the repository, and enter eclipsewebmaster as the new owner.
As part of the process of preparing your repository, the Eclipse Webmaster will collapse the history of the project into a single commit. The starting point is the commit identified by the eclipse_initial tag. The state of the repository represented by that commit is collapsed into a single commit that is then given the eclipse_initial tag.
That single commit will then be the starting point for all development by the project team following the move to Eclipse. This means that exactly one branch will "survive" the move; be sure to either merge other branches before the move, or get used to the thought of not having them.
The existing commits will remain in the repository, but they will not be easily reachable. For more information, please see Migrating a GitHub Repository.
After the project is created, the Eclipse Webmaster will start the provisioning process.
After provisioning is complete, the history of the repository--including all existing commits, branches, and tags--will persist in the repository, but will not be easily accessible (i.e. an average user who clones the repository will not pull in these commits). All of the history will be replaced by a single commit.
The Eclipse Webmaster will tell you via email when provisioning is complete. At that point in time, extract the initial contribution commit (tagged eclipse_initial as a ZIP file for use as the project's initial contribution.
Project committers can continue to create new commits. From this point forward, committers are expected to follow the Eclipse IP Due Diligence Rules. As committers complete their paperwork and their accounts are provisioned, they will gain the ability to push/merge those commits into the GitHub-based repository. Committers can work in the repository as normal (e.g. they can create branches).
The Eclipse IP Team will review your initial contribution. At some point, the IP team will inform you that the project code has been approved for "Parallel IP Check-in". This is a cue for the Webmaster to start maintaining a mirror of the project repositories on Eclipse Foundation servers. This approval has no direct impact on project developers.
As the IP team works through the due diligence process they may uncover issues that need to be addressed. Be prepared to work with the Eclipse Webmaster to mitigate these issues. In some cases, mitigation may require some "surgery" on the Git repository (e.g. if GPL-licensed code is discovered, it must be completely removed from the accessible history of the repository).
Some time later, the IP Team will grant full approval. This is a notification to you and the community that initial contribution has completed the due diligence process. Congratulations!