I'm not sure this is entirely true, and I have channels running on
both Chiara and SimpleChannelServer. There's plenty of channels
running the Chiara_PEAR_Server, and while it could use improvements I
have no plans of dropping it any time soon.
I mis-worded myself. I have been using the Chiara server for a while
myself and it is working great. What I meant to say is from what I
remember it does not lend itself very easily to swapping out the storage
backend or putting a Dojo front-end on it for example.
The channel server can be used for a lot more than just distributing PEAR
packages. Maybe we can abstract it and provide a framework to build a
package distribution systems. This is going to fit well with a project I am
working on and I could lead this effort.
There are a few different components that I think people bundle
together, but in reality are separate animals. Understanding these
components can help focus which pieces people are interested in
helping with.
1. The installer - a tool that understands dependencies, installation
and upgrading procedures, how to download packages, etc.
2. A channel server - a service which provides installable packages in
a format the installer understands.
3. A public web site for the channel - listing the available packages
and releases.
4. An administrative website for administering the channel, allowing
maintainers to upload releases to the channel, possible bug tracker
integration, user management.
Chiara_PEAR_Server and friends aims to handle parts 2, 3, and 4.
SimpleChannelServer is focused only on part 2.
I think part 1 is best left up to PEAR/Pyrus and the PEAR Group. It
seems pretty specialized. I would consider writing a wrapper for it for
ZF though so we can use PEAR/Pyrus inline from ZF apps.
Part 3 and 4 don't really fit into ZF I don't think as they are more
complete end-user apps. They can be built *with* ZF however.
Part 2 (the actual channel server) is a great candidate for ZF I think.
When implementing this I would abstract it right away into a generic
server that allows distribution of bundles or packages with attached
meta data via "channels". We can take advantage of different ZF features
to upload packages to the server, query the package meta data and
server, provide different storage backends like File, DB, AmazonS3 and
incorporate caching.
The server could be used to:
- Make packages available to the PEAR Installer / Pyrus
- Host software downloads of any kind
- Manage a bunch of videos
Basically anything that is packaged into a bundle to be
transmitted/hosted/managed with attached meta data that is used to query
and organize the bundles.
With all the heavy-lifting hidden behind a clean API it would be trivial
to build front-ends for it.
There's a lot of interesting things going on with Pyrus (the next
version of the PEAR installer) and Helgi and I will be coordinating a
Pyrus hacking session at |Tek. We'd be happy to answer any questions
in person, and welcome anyone interested in participating.
Unfortunately I will not be able to make it to the conference. Maybe we
can address a few questions now:
- What is the planned transition timeline from the existing PEAR
installer to Pyrus?
- I am assuming Pyrus is PHP 5.3 + only?
- Is there a feature list for Pyrus somewhere?
- Would anyone be interested in a ZF wrapper for PEAR/Pyrus?
- Would anyone be interested in a ZF distribution server as described
above?
Thanks!
Christoph