[ANN] rpa-base 0.2.2

  • Thread starter Mauricio Fernández
  • Start date

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
 
Ad

Advertisements

D

David Ross

Happy new Update!!

Nice work on the update batsman(Mauricio). I tried it out on one of my
many BSD machines and a SuSE machine. Works great, install went
smoothly, and good luck on future development.

Now if you can add in the rest of the features talked on the website and
on irc. (which the rpa-base channel can be found on

(#[email protected])

Joy to the software world!

It worked fine on the NetBSD, FreeBSD(4.x and 5.x), OpenBSD,
DragonFlyBSD, and Linux servers. Thanks.

--dross

[whatis: RPA -> for those who don't know what rpa-base]
A great and fantastic Ruby package manager!

Website: http://rpa-base.rubyforge.org
[end whatis]

[from DragonFlyBSD machine]

dfbsd0# rpa update
Getting port info from http://rpa-base.rubyforge.org/ports/ports.info.
100% [========================================] 81482 bytes

Ports updated since the last update (in the last 14 days):
rpa-base 0.2.1-10 -> 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/rpaadmin.
Fixed shebang in rpa/tmp/bin/rpa-buildrepos.rb.
Fixed shebang in rpa/tmp/bin/rpa-buildport.
Fixed shebang in rpa/tmp/bin/rpa.
Calculating MD5 digests.
Building package in rpa-base_0.2.2-1_i386-unknown-dragonfly1.0A.rpa.
Installing rpa-base
Reusing cached package
/usr/local/lib/ruby/rpa0.0/packages/rpa-base_0.2.2-1_i386

-unknown-dragonfly1.0A.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-10 with
/usr/local/lib/ruby/rpa0.0/packages/
rpa-base_0.2.2-1_i386-unknown-dragonfly1.0A.rpa
Package
/usr/local/lib/ruby/rpa0.0/packages/rpa-base_0.2.2-1_i386-unknown-dragon

fly1.0A.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

[end DragonFlyBSD snippet]

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.


--dross
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top