[ANN] rpa-base 0.2.1pre1

  • Thread starter Mauricio Fernández
  • Start date
M

Mauricio Fernández

rpa-base 0.2.1pre1 is now available at http://rpa-base.rubyforge.org .
Many of the most popular libraries/applications as per Rubyforge
statistics (rails, rake, redcloth, activerecord, sqlite, log4r, copland,
ruvi, to name a few) have been packaged for use with rpa-base 0.2.1pre1.

You can find a list of the 100+ packages at
http://rpa-base.rubyforge.org/wiki/wiki.cgi?Packaged_Software

Screenshots and animations can be found at
http://rpa-base.rubyforge.org/wiki/wiki.cgi?Rpa_Base_In_Action

rpa-base 0.2.1pre1 fixes some issues in the bootstrapping phase, which
couldn't hence be solved through the normal self-upgrade mechanism.
In addition to several other bugfixes, 0.2.1pre1 features better proxy
support, isolation of unit tests run automatically when installing a
lib/app, and improvements in the command-line tool.

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.

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.1pre1:

* 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; builds
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 back to 0.3.0:
* full support for binary platform-specific packages
* signed packages/ports
* system-wide configuration system
* better user interface

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.

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 2 1/2 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


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.
 
J

James Britt

Mauricio said:
rpa-base 0.2.1pre1 is now available at http://rpa-base.rubyforge.org .
Many of the most popular libraries/applications as per Rubyforge
statistics (rails, rake, redcloth, activerecord, sqlite, log4r, copland,
ruvi, to name a few) have been packaged for use with rpa-base 0.2.1pre1.

You can find a list of the 100+ packages at
http://rpa-base.rubyforge.org/wiki/wiki.cgi?Packaged_Software

Screenshots and animations can be found at
http://rpa-base.rubyforge.org/wiki/wiki.cgi?Rpa_Base_In_Action

rpa-base 0.2.1pre1 fixes some issues in the bootstrapping phase, which
couldn't hence be solved through the normal self-upgrade mechanism.
In addition to several other bugfixes, 0.2.1pre1 features better proxy
support, isolation of unit tests run automatically when installing a
lib/app, and improvements in the command-line tool.


I just tried this on Win2k. First, as I have no faith in humanity, I
ignored your earlier suggestion to just use the default installation
path. It installed OK, but there were issues in loading rpa-specific
files. However, this gave me the chance to see that rpa only installs
into rpa-specific directories, so I felt better about trying again with
the default directory prefix.

On the next installation, all went well. I poked around a bit with rpa
install, and was happy to see that rpa will not install a library if I
already have it.


Querying the repository is easy, too. Am I correct that

rpa query .

returns a list of all available ports?

Is there a way to use globs or regexen? If I run

rpa query web

I get back more than just ports with 'web' in their name.

Anyway, looks good.

Thanks,

James
 
D

David Ross

Great work batsman.

--- Mauricio Fernández said:
rpa-base 0.2.1pre1 is now available at
http://rpa-base.rubyforge.org .
Many of the most popular libraries/applications as
per Rubyforge
statistics (rails, rake, redcloth, activerecord,
sqlite, log4r, copland,
ruvi, to name a few) have been packaged for use with
rpa-base 0.2.1pre1.

You can find a list of the 100+ packages at

http://rpa-base.rubyforge.org/wiki/wiki.cgi?Packaged_Software

Screenshots and animations can be found at

http://rpa-base.rubyforge.org/wiki/wiki.cgi?Rpa_Base_In_Action

rpa-base 0.2.1pre1 fixes some issues in the
bootstrapping phase, which
couldn't hence be solved through the normal
self-upgrade mechanism.
In addition to several other bugfixes, 0.2.1pre1
features better proxy
support, isolation of unit tests run automatically
when installing a
lib/app, and improvements in the command-line tool.

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.

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.1pre1:

* 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; builds
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 back to 0.3.0:
* full support for binary platform-specific
packages
* signed packages/ports
* system-wide configuration system
* better user interface

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.

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 2 1/2 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


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.

----------------------------------------
-- Name: David Ross
-- Phone: 865.539.3798
-- Email: drossruby [at] yahoo [dot] com
----------------------------------------



_______________________________
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush
 
M

Mauricio Fernández

On the next installation, all went well. I poked around a bit with rpa
install, and was happy to see that rpa will not install a library if I
already have it.

Yup, the file conflict detection system should handle it OK.
Querying the repository is easy, too. Am I correct that

rpa query .

returns a list of all available ports?

Either that or just
rpa query
Is there a way to use globs or regexen? If I run

rpa query web

I get back more than just ports with 'web' in their name.

It searches both the name and the description.
If you do rpa query -x web you'll get quite a long output showing that
the matches often happen in the description.
The argument to query is interpreted as a regexp; if you try
rpa query -x e..mpl
you'll see it matches 'example', 'The implementation',
'sythesize implicit', etc, in the names/descriptions.

There are a few pending usability issues in the command-line tool, but
so far I've focused on the basics (transactions & stuff). Improving the
user interface is on my TODO, and I will address this issue at least
partially when I get to write rpaconf (a system-wide configuration
system, inspired in debconf).
Anyway, looks good.

Thanks a lot for trying it out. Plz tell me if you find any other bug,
I hope I'll be able to fix it too :)
Bug reports concerning the packages are welcome too; however, I cannot
guarantee I'll be able to correct them as quickly as the problems which
affect rpa-base because maintaining the whole archive represents quite
a bit of work...

PS: I have to warn you preemptively about extensions and win32 :p
it is currently impossible to install them unless you have a working
C toolchain, which is not very common in win32... I'm planning to add
full support for binary repositories for 0.3.0 (it's already in the
code but I haven't exposed it yet cause I have yet to implement
port/package signatures).
 

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

Members online

Forum statistics

Threads
473,792
Messages
2,569,639
Members
45,353
Latest member
RogerDoger

Latest Threads

Top