Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A PEAR Channel or inclusion in pecl.php.net #42

Closed
helgi opened this issue Aug 25, 2011 · 35 comments
Closed

A PEAR Channel or inclusion in pecl.php.net #42

helgi opened this issue Aug 25, 2011 · 35 comments

Comments

@helgi
Copy link

helgi commented Aug 25, 2011

It would be great if you could publishes releases via a pear channel so tools like the PEAR install (pecl install phpredis) and Pyrus (next gen of the PEAR installer, still in development) can install and manage the extension.

http://www.pirum-project.org/ could get you up and running real quick - pear.zero.mq is an example of pecl packages hosted externally. All the files generated are static so in theory you should be able to run the channel directly from github but I have never tried it... I know running it directly from SVN does work.

The other alternative which would also be nice it to get the package accepted into pecl.php.net :-)

@nicolasff
Copy link
Member

Hi,

I actually have an account, and I should do this. This was discussed with Pierre Joye on the PECL mailing-list, and I made the few changes that he suggested in order for the package to be accepted.

Thanks for reminding me, I'll take a look very soon.

@helgi
Copy link
Author

helgi commented Sep 23, 2011

Any news on this? :-)

@cofyc
Copy link

cofyc commented Nov 17, 2011

hi, when will phpredis be released via pecl channel?

@mwillbanks
Copy link

Yes - really looking for this to be added into pecl; any updates there? it would also be nice because then it can go through the php bug tracker and documentation could easily be added to the php.net website.

@mostlygeek
Copy link

Hi, also interested in this :) please let us know when it is available via Pecl.

@nfarring
Copy link

Also interested in having phpredis available for installation either in pecl.php.net or a custom pirum PEAR channel. This would make it easier to integrate into the Composer/Packagist system. I switched my PHP library from phpredis to predis because of this packaging/installation problem, but would love to use phpredis instead because of the better performance. :-)

@mwillbanks
Copy link

Any updates?

@marzizzle
Copy link

Hi, I'm also interested in this

@shockie
Copy link

shockie commented Jun 13, 2012

+1

@drewish
Copy link

drewish commented Aug 14, 2012

I'd love to be able to use pecl to install this. Oh and please ignore mwillbanks's suggestion to use the php bug tracker. I'd rather chew broken glass than deal with that again.

@drewish
Copy link

drewish commented Aug 16, 2012

Turns out I'd actually started a branch for putting this into a pecl package 2-years ago. I'm pretty sure I'd discussed it with Nicolas in the old owlient repo's issues but they seem to have been turned off.

So I started dusting it off to get a build-able copy and realized that I needed to drop the igbinary sub-extension and just add it as a dependency.

I think I'm going to package this up on my fork so we can use it internally and once it looks good I'll submit a pull request. I think it'll probably mean that the Debian and rpm stuff will also need work since they should probably be switched to use pecl.

@drewish
Copy link

drewish commented Aug 16, 2012

If people want to test this out it's in my fork: https://github.com/drewish/phpredis/tree/pecl

sudo pecl install https://github.com/downloads/drewish/phpredis/PhpRedis-2.2.1.tgz

@michael-grunder
Copy link
Member

Nice job. pecl install would be cool for sure. I'm sure we can figure out a way to merge this in somehow. Honestly I'm not very familiar with how that stuff works. :)

@drewish
Copy link

drewish commented Aug 16, 2012

I think the real thing to having longevity with this is getting the channel setup. I'm working on getting it going on my fork using these directions:
http://blog.shupp.org/2010/12/24/github-pages-pirum-easy-pear-channel/
http://blog.stuartherbert.com/php/2011/09/22/php-components-publishing-your-pear-channel-on-github/
So once I get it all going and can document the process of adding releases to the channel I'll do a pull request.

@drewish
Copy link

drewish commented Aug 16, 2012

The process I used to build: http://drewish.github.com/phpredis/

Install prium:

pear channel-discover pear.pirum-project.org
pear install pirum/Pirum

Create a pages repo. I did this as a separate checkout in a sibling directory:

git clone git@github.com:drewish/phpredis.git phpredis-channel
cd phpredis-channel
git checkout --orphan gh-pages
git rm -rf .

Configure the pirum.xml file then build the channel:

pirum build .

Add your channel to pear/pecl (this also validates it and warns you of any
problems before you push it up to github):

pecl channel-add channel.xml 

If that looks good then add all files and push it:

git add -A
git commit -m "Created the channel."
git push origin gh-pages

Hop up a directory (since I've got them as siblings):

cd ..

Package up a release:

pecl package phpredis/package.xml 

Switch into the pages repo:

cd phpredis-channel

Add the release in the parent directory to the channel:

pirum add . ../PhpRedis-2.2.1.tgz

If that doesn't have any errors then commit the changes and push them:

git add -A
git commit -m "Adding the PhpRedis-2.2.1 release."
git push origin gh-pages

@drewish
Copy link

drewish commented Aug 16, 2012

So if you want to try installing all you need to do is:

pear channel-discover drewish.github.com/phpredis
pecl install drewishPhpRedis/PhpRedis

I'm happy to do what ever to help the maintainers adopt this process.

@nicolasff
Copy link
Member

Thanks @drewish, this seems like a good solution.
I think something is missing though: igbinary should be optional as bundling it with phpredis can cause some conflicts with existing versions.
I had started to work on this a long time ago, on the “pecl” branch here on GitHub. Look for instance at Made igbinary optional. and [Added configure flag to disable sessions.](Added configure flag to disable sessions.) which should imo be included in pecl releases.

A maintainer from the Fedora Project contacted me today regarding packaging and the inclusion of igbinary, and I pointed him to this ticket; I asked him for comments on these commits as I don't know much about pecl.
Comments welcome!

@drewish
Copy link

drewish commented Aug 28, 2012

nicolasff... ah yeah i realized after the fact that it could be optional. i was confused by the inclusion of its source here. so in that case we just need to switch the dependency.

we ended up going in a different direction and not using the extension but i'll try to make a little time to update some of this. happy to help with the pecl specific parts but i'm afraid the config scripts are a mystery to me so i might need your help with that aspect.

@olafnorge
Copy link

It would be more than great if would get available through pecl! ;)

@0x20h
Copy link

0x20h commented Sep 12, 2012

+1

@remicollet
Copy link
Collaborator

I think working to have it included in official pecl channel is probably the best solution.

@jstanden
Copy link

+1

@salimane
Copy link

salimane commented Dec 4, 2012

any update on this ?

@drewish
Copy link

drewish commented Dec 4, 2012

I don't have any time to work on this so someone else will have to take it up. I think all the pieces are in place it just needs buy in from the maintainers.

@michael-grunder
Copy link
Member

Hey,

I'm happy to try and help with this as well, but I don't know much about PECL either. I think that the most complicated (and time consuming) part would be getting the documentation into the phpdoc format. I looked into it briefly a few weeks ago and it seems rather involved.

I think the code itself is nearly where it needs to be already as there aren't dependencies beyond php itself (as @nicolasff made igbinary optional a while back).

If anyone who uses phpredis knows about this stuff it could be a great help. :)

Cheers,
Mike

@drewish
Copy link

drewish commented Dec 4, 2012

Mike, I thought the instructions up in #42 (comment) made it clear you can use PEAR/PECL to distribute the code with a custom channel. I walked through how to set it up using github for file hosting. Basically all that needs to happen is the devs decide to add a few steps to their release process.

@remicollet
Copy link
Collaborator

Definitively, it will be far more greater to have redis in official pecl repository.
Please, not yet another stupid channel for a single package.

@drewish
Copy link

drewish commented Dec 4, 2012

I had such a frustrating time dealing with PEAR when I was trying to work
on the image color package that I would not devote an ounce of energy to
putting the code onto their infrastructure. And honestly I think that
frustration was what drove the updates to the client to allow additional
channels. It's probably also helping the adoption of Composer (
http://getcomposer.org/) as well.

I've laid our a straightforward process to self host the releases that
leverages the existing pecl framework but doesn't require jumping through
all the hoops of becoming an official project. It's really going to be up
to the maintainers of the package to decide how much more effort they want
to spend on this. They could have a custom channel setup in an hour or so,
or spend an unknown amount of time getting it updated and accepted.

@nicolasff
Copy link
Member

Hello all,

I received a follow-up email from Pierre Joye of the PHP project this morning who encouraged me to create a PECL package, so I did: http://pecl.php.net/package/redis - This is a follow-up to a previous application to PECL that I had gone through in April 2011, so that was a long time coming.

@drewish I agree with you on their infrastructure and I will avoid any changes to the way the code is maintained; it will stay on GitHub and PECL will be only a release channel. You are quite right in pointing out how long it took, but I guess that was mostly from a lack of interest in my part to move the code to anything that would give non-maintainers control over the code.

@michael-grunder I don't think we'd need to change the documentation format, it can stay as it is and I have added a link to the Markdown docs. I encourage you to apply for a PECL account as well (without SVN access) so that I can add you as a maintainer too. As I understand it, publishing a release is only a matter of uploading a single file to the PECL web interface; we have discussed some consolidation of the branches a few months ago, it might be time to look at this more closely for the next release, which could be tagged on git and pushed both to GitHub and PECL.

@remicollet I guess you can follow this ticket for progress; I will also contact the FreeBSD and Dotdeb maintainers to let them know about these changes.

Any suggestions to make this process easier are of course welcome from anyone.

Thanks.

@michael-grunder
Copy link
Member

@nicolasff Very cool getting it set up. For some reason I thought you had to bring the documentation into that format, and man, I was not looking forward to that. :) I applied for a PECL account so you can add me if I'm accepted.

@remicollet
Copy link
Collaborator

@nicolasff I'm reaaly happy to see this finally happen :)

Do you plan to make a pecl release available soon ? (at least the 2.2.2 or perhaps a new tagged one)

@Koc
Copy link

Koc commented Feb 20, 2013

@nicolasff any updates?

@nicolasff
Copy link
Member

@Koc the next tagged release will be pushed to pecl.php.net, but I'm not sure when it'll be at this time.

@Koc
Copy link

Koc commented Feb 20, 2013

ok, thank you

@nicolasff
Copy link
Member

And let's close this ticket, after two years. phpredis is now available on PECL: http://pecl.php.net/package/redis
Thanks everyone!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests