Thought up in connection with DroidPackage ...
Repositories are implemented with git. Using an existing version control system allows usage of existing hosting options (typically free for open source projects) and lessens the implementation and maintenance burden on the community. Using a distributed solution provides for maximum flexibility.
Support for other version control systems may be added later. Maybe the system in use should be specified in the package file - this would allow metadata to simply be the package file, and help selecting the right version control system if using two systems in the same folder (is this ever a problem?). Multiple version control systems would increase dependencies though (to be able to download all packages), so maybe sticking to git is ok. You can always use another thing internally, and then only commit to git when releasing.
The public repository location should definitely be stated in the package file though.
The repositories may be duplicated by a fork/clone, so that multiple sources are available. This is the case for local repositories (on your own disk).
The metadata of a package is stored on one or more master servers, that keeps track of everything in the package.ogdl
file as well as the type of version control system.
On the language page, a wiki and a issue tracker could be associated with each project, in order to provide for common needs and centralizing documentation.