Only require explicit packages requested for installation by a plugin to be plugins, allow plugin dependencies to be non-plugins.
re-factor remote-list to always display with 80-char column width
add ability to temporarily set config values with pyrus -d doc_dir=blah install
add --offline as top-level option, pyrus -o install LocalPackage.tgz
add --nodeps option to install/upgrade command. This is mostly implemented, but needs to be done by skipping pre-download dep resolution
Add a -q quiet option (opposite of verbose) to hide all the extraneous info, make it easy to use `pyrus -q get php_dir`
Finish unit testing core, begin unit testing developer package creation
Add phpunit command that uses PHPUnit to run tests
We need to start thinking like the SVN people - no inherit need to make the installer support the older REST service forever people just have to upgrade their installers to use certain channels, it's not a biggy, works for svn so it can work for us.
Pre Install Script
Post Install Script
update channel info auto (security implications)
Channels
dep files should also be in json (or only json ?) - This will allow not just PHP to consume the channel information. Handy for github for example where ruby would be used to generate, or potentially could, better integration into their system.
support .htpasswd for logins to a channel (private channels)
A pyrus publish command, see if it can be done with static channels, would be a nice addition for people, needs extra work on channel side and work in client, both should probably be additions to the installer / channel server
Security
-
Sign metadata in repos
Expire metadata in repos
auto sign packages on release (default? Needs a PGP key tho if we go for that)
[Greg Note: phar uses OpenSSL for signing, PGP is not needed, and it would require clients to have the openssl ext installed]
check signature on install / upgrade
don't allow md5 and sha1 for hashes in package.xml but support md5 for older packages
On frontend, prompts and -y for automatic like pear is now, using pear install foo could auto imply -y (think yum)
uninstall should follow deps ala yum - uninstall the dep chain without compromising the whole tree
Perhaps look into using headers more to our advantage, that will tho somewhat defeat the purpose of a fully static no vhost / .htaccess channels concept (perhaps that's fine)
Proper mirror handling (has security implications that are in the section above)
See if we can improve the bundle concept, very popular amongst a lot of pear haters it seems :)
Keep memory footprint low, very low - CPU to minimum - the ususal performance thing but be more serious about it than in v1. E.g. no serialized objects inside another and another and so on. Makes PEAR hard to debug and makes it SLOW
Look into how we can extend pyrus to make it to the same thing as the MS web installer thing-o-matic, could we even go as far as writing something that understands their config file and install their packages with Pyrus (extension to pyrus tho, not built in ?)
<radagast> I suppose we don't have anything which determines which pear packages are [potentially] being used by an app? I don't suppose pfm does this? :D
<helgi> no
<helgi> till wrote something like that
<radagast> I'll check his blog so
<radagast> thanks for the pointer
<helgi> something that basically parsed all the includes or new Foo calls
<radagast> yeah...in theory it seems simple enough
<bbieber> PHP_Depend for PEAR packages.. hmm
<radagast> bbieber: auto create “wrapper packages”
* bbieber 's mind is blown away.
<bbieber> radagast: I'd like one for Pyrus that scans then builds the whole distributable registry.
<radagast> it'd be one way of luring people from distributing old versions of packages in their own projects
<bbieber> I like the way you think
<radagast> and then they wonder why things break and is bugg