M
Mauricio Fernández
rpa-base 0.2.2 is now available at http://rpa-base.rubyforge.org . Many
of the most popular libraries/applications as per Rubyforge statistics
(rake, redcloth, activerecord, sqlite, log4r, ruvi, and some 120 more
libs/apps) have been packaged for use with rpa-base 0.2.2.
One of the major additions in 0.2.2 is the ability to upgrade itself
automatically and report information on updated/added packages/ports.
That functionality had been available as an update (0.2.1-9) but was
still formally unreleased. Scroll down to see an example of the
self-update in action.
Foreword
--------
The Ruby Production Archive (RPA) will provide packages of Ruby
libraries and programs in a form that allows production use, engineered
through a stringent process resembling FreeBSD's or Debian's.
rpa-base is a port/package manager designed to support RPA. Its scope and
purposes are different to those of other systems like RubyGems.
Status
------
Please keep in mind that RPA is at an embryonic stage; this means that
it is impossible to commit to all the long term goals stated in the
manifesto (http://rpa-base.rubyforge.org/wiki/wiki.cgi?RpaManifesto) at
the moment. This doesn't make rpa-base any less usable however.
rpa-base requires Ruby 1.8.[12] (certainly 1.8 at least, it might work
on 1.8.0); it has been tested on several Linux distributions (Debian,
Fedora, older RH, Gentoo, etc), FreeBSD, DragonFly BSD, Mac OSX, win32
(cygwin, 'pragmatic installer', WinXP and 2K).
rpa-base is fairly stable at this stage; it has been tested on several
platforms during the last 4 months. Since rpa-base can self-update,
eventual bugs discovered through the intensive testing associated with
a public release could be solved easily by upgrading rpa-base using
rpa-base itself.
We would appreciate any feedback on rpa-base.
A mailing list has been set up for that purpose:
http://rubyforge.org/mailman/listinfo/rpa-base-testers
Features
========
rpa-base is a port/package manager designed to support RPA's client-side
package management. You can think of it as RPA's apt-get + dpkg. It
features the following as of 0.2.2:
* strong dependency management: rpa-base installs dependencies as needed,
keeps track of reverse dependencies on uninstall, and will remove no
longer needed dependencies
* atomic (de)installs: operations on the local RPA installation are atomic
transactions; the system has been designed to survive ruby crashes (OS
crashes too on POSIX systems)
* parallel installs: you can install several ports in parallel; building
will be parallelized and the final phase will be serialized properly
* self-hosting: rpa-base installs and updates itself
* modular, extensible design: the 2-phase install is similar to FreeBSD and
Debian's package creation; rpa-base packages need not be restricted
to installing everything under a single directory ("1 package, 1 dir"
paradigm)
* rdoc integration: RDoc documentation for libraries is generated at install
time (currently disabled on win32)
* ri integration: ri data files are generated for all the libraries managed
by RPA; you can access this information with ri-rpa
* handling C extensions: if you have the required C toolchain, rpa-base can
compile extensions as needed
* unit testing: when a library is installed, its unit tests are run; the
installation is canceled if they don't pass
Several of the above features are illustrated in the screenshots and
animations available at
http://rpa-base.rubyforge.org/wiki/wiki.cgi?Rpa_Base_In_Action
Limitations:
============
A number of features have been pushed forward to 0.3.0:
* full support for binary platform-specific packages
* signed packages/ports
* system-wide configuration system
* better UI
In practice, the first one is the most limiting at the moment since it means
that win32 users in particular need a working C toolchain to install
extensions. This will soon be addressed.
RPA needs your help
===================
RPA is an ambitious project in need for developers. These are some of the
areas that need to be worked on:
* packaging (new software and package maintenance)
* setting up a permanent repository infrastructure
* cross-compilation and build automation
* website development (should provide package indexes, QA section,
bugtracking, etc)
Please contact me at <[email protected]> (adding RPA to the subject
will help get it past the spam filtering or via IRC, batsman @
#ruby-lang on freenode.net if you have any interest or for any additional
information on RPA/rpa-base and their goals.
APPENDIX: self-update
=====================
bash-2.05b$ su
Password:
bash-2.05b# rpa update
Getting port info from http://rpa-base.rubyforge.org/ports/ports .info.
100% [========================================] 81482 bytes
Ports added since the last update (in the last 14 days):
ansicolor 0.0.3-2 Library to color strings using ANSI escape sequences.
rubilicius 0.1.0-1 Delicious (http://del.icio.us/) bindings in pure Ruby.
Ports updated since the last update (in the last 14 days):
archive-tar-minitar 0.5.0-1 -> 0.5.1-1
bluecloth 0.0.3b-1 -> 1.0.0-1
cstemplate 0.5.1-1 -> 0.5.1-2
diff-lcs 1.1.0-1 -> 1.1.2-2
extensions 0.3.0-1 -> 0.4.0-1
raggle 0.3.1-1 -> 0.3.1-2
rpa-base 0.2.1-9 -> 0.2.2-1
** New version of rpa-base available, will install it. **
Installing ports
Getting port rpa-base from http://rpa-base.rubyforge.org/ports/rpa-base_0.2.2-1.rps.
100% [========================================] 59392 bytes
Defaults loaded...
Recovering defaults...
Building rpa-base (0.2.2-1).
Fixed shebang in rpa/tmp/bin/rpa.
Fixed shebang in rpa/tmp/bin/rpa-buildport.
Fixed shebang in rpa/tmp/bin/rpaadmin.
Fixed shebang in rpa/tmp/bin/rpa-buildrepos.rb.
Calculating MD5 digests.
Building package in rpa-base_0.2.2-1_i386-pc-linux-gnu.rpa.
Installing rpa-base
Reusing cached package /usr/lib/ruby/rpa0.0/packages/rpa-base_0.2.2-1_i386-pc-linux-gnu.rpa.
Starting lightweight (metadata only) transaction for rpa-base
Checking for file conflicts in rpa-base.
Starting transaction for rpa-base
Preparing to replace rpa-base 0.2.1-9 with /usr/lib/ruby/rpa0.0/packages/rpa-base_0.2.2-1_i386-pc-linux-gnu.rpa
Package /usr/lib/ruby/rpa0.0/packages/rpa-base_0.2.2-1_i386-pc-linux-gnu.rpa unpacked.
Finished transaction for rpa-base
Starting lightweight (metadata only) transaction for rpa-base
Finished lightweight (metadata only) transaction for rpa-base
Finished lightweight (metadata only) transaction for rpa-base
Committed changes
of the most popular libraries/applications as per Rubyforge statistics
(rake, redcloth, activerecord, sqlite, log4r, ruvi, and some 120 more
libs/apps) have been packaged for use with rpa-base 0.2.2.
One of the major additions in 0.2.2 is the ability to upgrade itself
automatically and report information on updated/added packages/ports.
That functionality had been available as an update (0.2.1-9) but was
still formally unreleased. Scroll down to see an example of the
self-update in action.
Foreword
--------
The Ruby Production Archive (RPA) will provide packages of Ruby
libraries and programs in a form that allows production use, engineered
through a stringent process resembling FreeBSD's or Debian's.
rpa-base is a port/package manager designed to support RPA. Its scope and
purposes are different to those of other systems like RubyGems.
Status
------
Please keep in mind that RPA is at an embryonic stage; this means that
it is impossible to commit to all the long term goals stated in the
manifesto (http://rpa-base.rubyforge.org/wiki/wiki.cgi?RpaManifesto) at
the moment. This doesn't make rpa-base any less usable however.
rpa-base requires Ruby 1.8.[12] (certainly 1.8 at least, it might work
on 1.8.0); it has been tested on several Linux distributions (Debian,
Fedora, older RH, Gentoo, etc), FreeBSD, DragonFly BSD, Mac OSX, win32
(cygwin, 'pragmatic installer', WinXP and 2K).
rpa-base is fairly stable at this stage; it has been tested on several
platforms during the last 4 months. Since rpa-base can self-update,
eventual bugs discovered through the intensive testing associated with
a public release could be solved easily by upgrading rpa-base using
rpa-base itself.
We would appreciate any feedback on rpa-base.
A mailing list has been set up for that purpose:
http://rubyforge.org/mailman/listinfo/rpa-base-testers
Features
========
rpa-base is a port/package manager designed to support RPA's client-side
package management. You can think of it as RPA's apt-get + dpkg. It
features the following as of 0.2.2:
* strong dependency management: rpa-base installs dependencies as needed,
keeps track of reverse dependencies on uninstall, and will remove no
longer needed dependencies
* atomic (de)installs: operations on the local RPA installation are atomic
transactions; the system has been designed to survive ruby crashes (OS
crashes too on POSIX systems)
* parallel installs: you can install several ports in parallel; building
will be parallelized and the final phase will be serialized properly
* self-hosting: rpa-base installs and updates itself
* modular, extensible design: the 2-phase install is similar to FreeBSD and
Debian's package creation; rpa-base packages need not be restricted
to installing everything under a single directory ("1 package, 1 dir"
paradigm)
* rdoc integration: RDoc documentation for libraries is generated at install
time (currently disabled on win32)
* ri integration: ri data files are generated for all the libraries managed
by RPA; you can access this information with ri-rpa
* handling C extensions: if you have the required C toolchain, rpa-base can
compile extensions as needed
* unit testing: when a library is installed, its unit tests are run; the
installation is canceled if they don't pass
Several of the above features are illustrated in the screenshots and
animations available at
http://rpa-base.rubyforge.org/wiki/wiki.cgi?Rpa_Base_In_Action
Limitations:
============
A number of features have been pushed forward to 0.3.0:
* full support for binary platform-specific packages
* signed packages/ports
* system-wide configuration system
* better UI
In practice, the first one is the most limiting at the moment since it means
that win32 users in particular need a working C toolchain to install
extensions. This will soon be addressed.
RPA needs your help
===================
RPA is an ambitious project in need for developers. These are some of the
areas that need to be worked on:
* packaging (new software and package maintenance)
* setting up a permanent repository infrastructure
* cross-compilation and build automation
* website development (should provide package indexes, QA section,
bugtracking, etc)
Please contact me at <[email protected]> (adding RPA to the subject
will help get it past the spam filtering or via IRC, batsman @
#ruby-lang on freenode.net if you have any interest or for any additional
information on RPA/rpa-base and their goals.
APPENDIX: self-update
=====================
bash-2.05b$ su
Password:
bash-2.05b# rpa update
Getting port info from http://rpa-base.rubyforge.org/ports/ports .info.
100% [========================================] 81482 bytes
Ports added since the last update (in the last 14 days):
ansicolor 0.0.3-2 Library to color strings using ANSI escape sequences.
rubilicius 0.1.0-1 Delicious (http://del.icio.us/) bindings in pure Ruby.
Ports updated since the last update (in the last 14 days):
archive-tar-minitar 0.5.0-1 -> 0.5.1-1
bluecloth 0.0.3b-1 -> 1.0.0-1
cstemplate 0.5.1-1 -> 0.5.1-2
diff-lcs 1.1.0-1 -> 1.1.2-2
extensions 0.3.0-1 -> 0.4.0-1
raggle 0.3.1-1 -> 0.3.1-2
rpa-base 0.2.1-9 -> 0.2.2-1
** New version of rpa-base available, will install it. **
Installing ports
Getting port rpa-base from http://rpa-base.rubyforge.org/ports/rpa-base_0.2.2-1.rps.
100% [========================================] 59392 bytes
Defaults loaded...
Recovering defaults...
Building rpa-base (0.2.2-1).
Fixed shebang in rpa/tmp/bin/rpa.
Fixed shebang in rpa/tmp/bin/rpa-buildport.
Fixed shebang in rpa/tmp/bin/rpaadmin.
Fixed shebang in rpa/tmp/bin/rpa-buildrepos.rb.
Calculating MD5 digests.
Building package in rpa-base_0.2.2-1_i386-pc-linux-gnu.rpa.
Installing rpa-base
Reusing cached package /usr/lib/ruby/rpa0.0/packages/rpa-base_0.2.2-1_i386-pc-linux-gnu.rpa.
Starting lightweight (metadata only) transaction for rpa-base
Checking for file conflicts in rpa-base.
Starting transaction for rpa-base
Preparing to replace rpa-base 0.2.1-9 with /usr/lib/ruby/rpa0.0/packages/rpa-base_0.2.2-1_i386-pc-linux-gnu.rpa
Package /usr/lib/ruby/rpa0.0/packages/rpa-base_0.2.2-1_i386-pc-linux-gnu.rpa unpacked.
Finished transaction for rpa-base
Starting lightweight (metadata only) transaction for rpa-base
Finished lightweight (metadata only) transaction for rpa-base
Finished lightweight (metadata only) transaction for rpa-base
Committed changes