This sequence exemplifies a class of our repositories at GitHub: we created the repository to produce a port of the upstream project, which then was incorporated into an official release: cocos2d-1.0.1-x-0.11.0. All official Cocos2d-X releases since then, including the latest, cocos2d-2.0-rc0a-x-2.0, support our platform. Removing our code and pointing upstream removes confusions (and saves us time).
Cocos2d-X is the first instance where we have removed the code, but upstreaming is a principle we are following in many other cases. In some cases we contribute directly to the upstream community, in others we go through an intermediate public repository.
Some examples of direct contributions include:
- LibCurl – In this case Joe added a new authentication callback to libcurl and Daniel has indicated it will be included in the release after 7.26.0
- Webkit – We contribute upstream continuously. See for example the BlackBerry® ChangeLog, or do a search on blackberry on trac, or read about them at Surfin’ Safari
- Other notable examples include Apache Cordova, jQuery and Qt
Some examples of staged contributions include:
- jQuery-Mobile Cookbook – In this case we contribute first to our jQuery-Mobile-Samples repo and then the code is incorporated into jQuery Mobile Cookbook
- OpenGL ES Samples – This is a similar situation: we ported the samples from the OpenGL ES 2.0 Programming Guide into our OpenGLES-Samples repo, and then they were incorporated the Google Code upstream project