Fwd: [PEAR-DEV] Non-PEAR, PHP package deployment through official PEAR channel?
| From: | till | Date: | Tue, 17 Aug 2010 20:38:33 +0000 |
| Subject: | Fwd: [PEAR-DEV] Non-PEAR, PHP package deployment through official PEAR channel? | ||
| References: | 1 2 3 4 5 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-53677@lists.php.net to get a copy of this message | ||
Forwarding Ryan's detailed email as it was intended to be send to the list. ;-)
---------- Forwarded message ----------
From: Ryan Parman <ryan.lists.warpshare@gmail.com>
Date: Tue, Aug 17, 2010 at 4:49 AM
Subject: Re: [PEAR-DEV] Non-PEAR, PHP package deployment through
official PEAR channel?
To: till@php.net
On Aug 16, 2010, at 10:41 AM, till wrote:
> On Mon, Aug 16, 2010 at 5:47 PM, Ryan Parman
> <ryan.lists.warpshare@gmail.com> wrote:
>> On Aug 16, 2010, at 1:44 AM, Daniel O'Connor wrote:
>>
>>>
>>> I'm keenly interested in avoiding the infrastructure requirements (however minor)
>>> of running my own PEAR channel
>>> I know you said the above; but in addition to Christian's answers...
>>>
>>> http://www.pirum-project.org/ = insanely easy to do if
>>> you've got a scrap of web space anywhere.
>>>
>>> http://saltybeagle.com/2008/12/using-simplechannelserver-to-manage-a-pear-channel-on-google-code/
>>> = pretty easy to do and ends up letting you host on google code
>>
>> After I posted, I also discovered Pirum. I'm taking a look at running it from GitHub
>> and/or S3.
>
> Maybe you can share your discoveries. I remember we wanted to look
> into running a channel from github for SCS as well.
It would seem that a PEAR channel is little more than *.xml, *.txt and
*.tgz files. You can host it pretty much anywhere.
Once I had all of my code together, I:
1. Used http://pear.php.net/package/PEAR_PackageFileManager_Cli/
to
generate a package.xml file.
2. Used
pear package to bundle up my code into the correct *.tgz file.
3. Used http://pirum-project.org to generate my PEAR channel
files.
You can create a GitHub homepage that lives at username.github.com;
this is done via the GitHub website. You then switch to your
gh_pages branch, replace everything there with the Pirum-created
PEAR channel files, and commit/push to GitHub.
Or for S3, you can just create a new bucket (buckets must be globally
unique), upload the channel files, give the bucket & files public-read
permissions, and you're set. The advantage of S3 is that you can
configure access logging for your PEAR channel. If you want faster
worldwide delivery, you can configure a CloudFront domain for your S3
bucket. Since these domain names are a random mix of letters, I would
recommend setting up a DNS CNAME record for it.
--
In short:
GitHub:
* Pros: Simple and fast
* Cons: No additional niceties
Amazon S3:
* Pros: Simple, fast, and allows access logging to track downloads
and user agents
* Cons: Has a small cost associated with storage & data transfer
Amazon S3 + CloudFront
* Pros: Pulls content from S3; has the advantages of S3; has better
delivery performance with edge servers around the world
* Cons: All the cons of S3; one-time configuration is a tad more
complex; minimum time that files stay cached on the edge servers is 1
hour (defaults to 24 hours); CNAME configuration is recommended
--
In the end:
* I'll be providing a direct *.zip/*.tar.gz download from S3/CloudFront.
* I'll be leveraging GitHub's Git & Subversion interfaces
<http://github.com/blog/626-announcing-svn-support>
* I'll be hosting my PEAR channel in S3. Since I'm not intimidated by
the initial configuration, DNS CNAME setup, or associated
storage/transfer costs, I'll leverage the CloudFront CDN network too.
Thanks for the direction, everyone. :)