Skip to content
clockworkgeek edited this page May 17, 2015 · 7 revisions
  • Make tag argument optional. If absent, read all tags and make any packages not present.
  • Make package name optional. If absent and tag files only contain one module, use that instead. What happens if there is more than one module? Or no module but other content like a theme or library?
  • Long description. Extension packager makes it a required field but is it essential? How to enter it conveniently? Ideally the script should be non-interactive so it can be automated by other tools.
  • Read previous packages for missing data like long description, author username, anything from composer.json that might be optional.
  • Parse PHP requirements. Package versions are complex. Both composer.json and package.xml can specify PHP extensions.
  • External dependencies. If a dependency is on Firegento and is also listed on Connect then it is safe and reasonable to include. Also can be copied from previous packages as mentioned above.
  • Run automatically. There is no client-side post-tag hook in git. Perhaps pre-deploy since that is the intention of making a permanent change.
  • Email package instead of leaving it buried in a directory tree.
  • Print all values to be copied to Connect. There is no way to auto-submit. If there were then a remote service could listen to github API and build & submit for you.
  • -q and -v options for quiet and verbose. getopts makes this easy but simultaneously makes other arguments hard to spot.
  • --git-dir option so current dir doesn't have to be in project root for script to work.
  • Handle multiple licenses from composer.json. Accept first recognised license code when an array is given.
  • Read extra.map from composer, see getMap().
Clone this wiki locally