For Jifty:
* It should be possible for Jifty's developers to package bin/jifty as a
single platform-specifc "runnable" application, including lib/ share/ and all
non-core perl dependencies. (+ libraries?)
For any Jifty application:
* It should be possible for an end-user to package the source code of a Jifty
application as a single platform-specific "runnable" application.
* Ideally, it should be possible to turn a packaged application into
an unpacked copy of the application's source code and dependent libraries.
* It should be possible to install a Jifty application on a local disk
such that multiple instances of the application can run with only
a site_config.yml file. (or without it)
* It should be possible for an end user of one of these installed
applications to snapshot the application and all its assets, internal
libraries and dependencies to a private directory)
In all cases:
* --with-deps includes the installed versions of our dependencies.
* plugins are treated as CPAN dists for the purposes of dependency management
jifty package --file /tmp/myapp.exe --with-deps
* Takes multiple forms of targets
* Defaults to the zipped form
* --file is the path of the output file
jifty dist --with-deps
* make a source distribution of this application, suitable for handing to a developer
jifty isolate --with-deps
* needs a better name
* Pull in all dependencies, as well as jifty.
jifty install/uninstall
* some sort of management. will also work on plugins
# A dist blib builder
# A dist blib packager (->zip with a makefile.pl - it works as a par and as a dist)
# Package multiple dists as a single dist.
# Pony: an automatic deps-writer that will design a list of deps for
the systemwide currently installed modules.
# Must include shared libs (expat, svn, etc)
# Some way to deal with systemwide shared libs, like Pg
# an alien extractor that analyzes already-built XS libs (in either blib/ or sitelib)
with platform-specific tools (ldd, xtools, etc) and pull in shared libraries, similar
to how Alien::* currentl does it in a case-by-case basis.
# A dist blib upgrader
# A cpan workalike for jifty dists
# An installation scheme for
{$INSTALL_DIR,$APP_DIR}/share/jifty/deps/{`archname`,noarch}
# one blib/ directory for the tuple of
(dist, version, `arch` or "noarch" , perl version?)
# an @INC populator
pushes a glob for arch-independent (rename this: blib-noarch/*
pushes a glob for per-arch libs blib-`arch`/*