I hope there will be some discussion of RAA.succ (or is it RAA.next) at
the upcoming Ruby Conference, but I thought I’d kick-start the discussion
again here…
So what’s the latest thinking on RAA.succ?
I’d definately like to see
some central repository that could be mirrored instead of the current
model where modules actually live on the contributors server (whether at
home or on an ISP) - needless to say, this tends to lead to the
disappearance of packages.
I’d definately like to see
some central repository that could be mirrored instead of the current
model where modules actually live on the contributors server (whether at
home or on an ISP) - needless to say, this tends to lead to the
disappearance of packages.
Because you can get stuck in a very extended upgrade cycle as soon as
you start sucking on any one package! Even worse the cycle is not
gauranteed to land you with a mutually compatible set of module versions!
What really is needed is a “Batteries Included” ruby distribution that
will have all (reasonably) prime time RAA modules at the latest (mutually
compatible) version.
Advantages…
user probably doesn’t need to go to RAA for 99% of cases, he got it
all with his distro.
The versions are mutally compatible and have been unit / integration
tested together.
You can trivially “freshen” your distro from CVS.
···
On Mon, 21 Oct 2002, Phil Tomson wrote:
So what’s the latest thinking on RAA.succ?
–
John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@tait.co.nz
New Zealand
It’s about to take flight in the form of packages. The specification
for rubynet packages will allow for Ruby packages to be distributed as
skeleton files or as complete packages with all of the source files
included. Though the XML dtd doesn’t support it yet, rubynet packages
will also contain build information. Currently I have code that will
let you build a module based off of a small set of dot files as
outlined here:
I will also allow users to write their package information into a
single .rubynet file and, like rubydoc, it will allow you to include a
written .rubynet.xml file.
The advantage to rubynet over existing projects ideas for packaging is
that querying a package database is simply an XPath query on a set of
gzipped XML. Recently this has gotten the attention of some folk at
the W3C and they’re keeping tabs on the project’s use of XML and XSLT.
Writing out pages for various modules will be accomplished through
various XSL stylesheets. Things don’t get much more strait forward.
I’d definately like to see some central repository that could be
mirrored instead of the current model where modules actually live on
the contributors server (whether at home or on an ISP) - needless to
say, this tends to lead to the disappearance of packages.
Hrm, how about rsync, FTP, or HTTP mirroring? I’m actually really
keen on CVSup and would like to open up the rubynet CVS repository for
public access so that folks can signup for accounts. If there are
folks that are interested in this, I will gladly hand them keys to the
servers, the rubynet repo, and do whatever possible to help accommodate
getting this off the ground. If we do that, then we could distribute
rubynet modules via XML and have them compiled locally on mirroring
servers. CVSup is extremely efficient in terms of sending diff’s and
syncing CVS repo’s, more so than rsync. If you have questions, please
send email to devel@rubynet.org.
I’d definately like to see
some central repository that could be mirrored instead of the current
model where modules actually live on the contributors server (whether at
home or on an ISP) - needless to say, this tends to lead to the
disappearance of packages.
No doubt rpkg should be part of raa.succ, but it still doesn’t address the
need for a central, mirrorable repository for packages/modules/snippets.
Just this morning there was a message on the list about someone not being
able to find the FastCGI module - the link given on the RAA is now dead.
This is a major problem! Until we have a central repository that is
mirrored we have to face the fact that the RAA is just a list of pointers
to potentially non-existent locations. Key packages can (and do) just
disappear when someone’s webserver goes away or when someone moves to
another ISP.
It might be an interesting exercise to write a script that tries to get
to all the links on the RAA to see how many of them are still active.
In regards to rpkg: Is it going to be included in Ruby’s standard
libraries? I tend to think this needs to happen in order for it to become
widely used. Newbies may not know much about downloading and installing a
package. Others may not have root access on their machines. If it comes
with Ruby then it’s more likely to become widely used.
What really is needed is a “Batteries Included” ruby distribution that
will have all (reasonably) prime time RAA modules at the latest (mutually
compatible) version.
Because you can get stuck in a very extended upgrade cycle as soon as
you start sucking on any one package! Even worse the cycle is not
gauranteed to land you with a mutually compatible set of module versions!
I’ve never had that happen. Can you give an example?
What really is needed is a “Batteries Included” ruby distribution that
will have all (reasonably) prime time RAA modules at the latest (mutually
compatible) version.
Who defines the best?
···
–
The complex-type shall be a simple-type. ISO 10206:1991 (Extended Pascal)
It’s about to take flight in the form of packages. The specification
for rubynet packages will allow for Ruby packages to be distributed as
skeleton files or as complete packages with all of the source files
included. Though the XML dtd doesn’t support it yet, rubynet packages
will also contain build information. Currently I have code that will
let you build a module based off of a small set of dot files as
outlined here:
Sounds interesting, but again, I’m currently more worried about having all
the code in a central place with mirroring…
I will also allow users to write their package information into a
single .rubynet file and, like rubydoc, it will allow you to include a
written .rubynet.xml file.
The advantage to rubynet over existing projects ideas for packaging is
that querying a package database is simply an XPath query on a set of
gzipped XML. Recently this has gotten the attention of some folk at
the W3C and they’re keeping tabs on the project’s use of XML and XSLT.
Writing out pages for various modules will be accomplished through
various XSL stylesheets. Things don’t get much more strait forward.
Can sombody(s) do a quick compare and contrast of rpkg and rubynet?
Sounds like rubynet has more requirements (XML parser, etc.) which is a
bit worrisome since we would like whatever packaging system to work ‘out
of the box’ (though I think I’ve heard that REXML will be included in 1.8,
did I hear correctly?)
I’d definately like to see some central repository that could be
mirrored instead of the current model where modules actually live on
the contributors server (whether at home or on an ISP) - needless to
say, this tends to lead to the disappearance of packages.
Hrm, how about rsync, FTP, or HTTP mirroring?
I’m actually really
keen on CVSup
What’s CVSup?
and would like to open up the rubynet CVS repository for
public access so that folks can signup for accounts. If there are
folks that are interested in this, I will gladly hand them keys to the
servers, the rubynet repo, and do whatever possible to help accommodate
getting this off the ground. If we do that, then we could distribute
rubynet modules via XML and have them compiled locally on mirroring
servers. CVSup is extremely efficient in terms of sending diff’s and
syncing CVS repo’s, more so than rsync. If you have questions, please
send email to devel@rubynet.org.
We www-admin@ruby-lang.org rewrote current RAA which got
a little old and rickety. We will replace RAA in this
or next week.
Changes:
lightweight top page
iso8859-1 => UTF-8
added simple keyword search
show projects by the specified owner
Those are all great changes, but it still doesn’t address the fact that
the RAA is just a list of links to potentially non-existent locations.
Key packages could be lost after their creators loose interest.
The RAA needs a change in structure not just a change of interface. When
someone creates a module they
want to put on the RAA they should actually upload that module code
to the RAA server where it then resides. There should also be at least one
mirror of the RAA repository. This (as I recall) is the way CPAN works -
it guarantees that crucial modules will not just disappear when someone
changes ISPs or looses interest. You’ll always be able to get a
particular module from the RAA or it’s mirror(s).
There are packages now listed on the RAA that no longer exist - someone
wrote about not being able to find FastCGI this morning. I also tried to
get an extension for top that no longer is available. I’m sure there are
other dead links on the RAA and it’s only gonna get worse as time goes on.
Because you can get stuck in a very extended upgrade cycle as soon as
you start sucking on any one package! Even worse the cycle is not
gauranteed to land you with a mutually compatible set of module versions!
I’ve never had that happen. Can you give an example?
Can’t remember what I started sucking on, (some tcp/web stuff I think) but
wow did it take a long time to converge and even then it didn’t work.
Ended up with a broken perl suite. (In the end I downloaded a Bundle
instead)
What really is needed is a “Batteries Included” ruby distribution that
will have all (reasonably) prime time RAA modules at the latest (mutually
compatible) version.
Who defines the best?
Who said “best”? I didn’t. I said “all”.
Ok, so I said “reasonable prime time”, but I would advocate being generous
in that definition.
···
On Wed, 23 Oct 2002, Simon Cozens wrote:
–
John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@tait.co.nz
New Zealand
Yip. That’s pretty much what I mean. A good start. Build in an XP like
“all unit tests must passed before check-in” rule and you well on the way
to exactly what I mean.
Thereafter it is a matter of adding more and more of RAA to Sumo.
But to work it must be like a Sumo, fit, fat but stable. Well tested to
all hang together.
What really is needed is a “Batteries Included” ruby distribution that
will have all (reasonably) prime time RAA modules at the latest (mutually
compatible) version.
Because you can get stuck in a very extended upgrade cycle as
soon as you start sucking on any one package! Even worse the cycle
is not gauranteed to land you with a mutually compatible set of
module versions!
I’ve never had that happen. Can you give an example?
What really is needed is a “Batteries Included” ruby distribution
that will have all (reasonably) prime time RAA modules at the
latest (mutually compatible) version.
Who defines the best?
NOOO! Fight this urge!! Perl did this and it’s an unweildy
nightmare. So much so that FreeBSD cut it loose and is no longer
including it in the base install. Of course it’s available from a
port, but still… I’d love to see Ruby included as a base language
but this’ll never happen with the “let’s just bundle it with the
interpeter” kind of attitude that Perl has addopted. Blah. Who wants
to be like that??!!
Instead, I’m of the minimalist+dependencies mindset that it should be
possible to install a module and have that installation install the
required dependencies as needed. This is the aim of rubynet. Again,
help on the project is appreciated. Here are some sample CLI
invocations:
Please note that the ‘c:’ is a package namespace prefix that will have
rubynet install the C library libxml2. Yes, rubynet will support
wrapping around C modules and will actually be generic enough to fit
around most applications.
For those curious, the design criteria for rubynet comes from blending
CPAN and FreeBSD’s ports system. I’m scheming to have rubynet fill
all of FreeBSD’s ports requirements that way as the need for complex
ports grows, Ruby might be allowed to sneak in as a base langugage for
the OS. ::
The old rpkg can already handle user-side package bases, root
privileges are not needed. An rpkg-bootstrapper (issue ./rpkg-install
and have rpkg install download and install itself) is also on the
wishlist, though not at the top.
Massimiliano
···
On Wed, Oct 23, 2002 at 02:37:34AM +0900, Phil Tomson wrote:
In regards to rpkg: Is it going to be included in Ruby’s standard
libraries? I tend to think this needs to happen in order for it to become
widely used. Newbies may not know much about downloading and installing a
package. Others may not have root access on their machines.
I’d definately like to see some central repository that could be
mirrored instead of the current model where modules actually live on
the contributors server (whether at home or on an ISP) - needless to
say, this tends to lead to the disappearance of packages.
Hrm, how about rsync, FTP, or HTTP mirroring?
I’m actually really keen on CVSup
What’s CVSup?
CVSup is REALLY REALLY REALLY cool stuff in action. -sc
Here’s a quick comparison. I’m going to go over the requirements, advantages,
and struggles of each project quickly, as far as I can see from information
publicly available on the web. Hopefully the developers on each project can
help clarify.
Command-line tool for:
a. searching online repository for current modules
b. downloading, installing, and removing archives
.rpk files can be distributed offline
Few steps to build a package:
a. Create directories for binary files, docs, unit tests, library files.
b. Create an RPKG/control file:
Package: foo
Version: 0.0.1
Section: net
Priority: optional
Architecture: all
Depends:
Conflicts: foopkg-beta
Replaces: foopkg-beta
Maintainer: Mr. Maintainer <foo@bar.com>
Source:
Description: A foo package
Everything here is the long description.
Every line must be indented by one space.
.
Blank lines are not allowed, use a point as in the line above.
c. rpkg --build foopkgdir
rubynet
Inspired by CPAN and FreeBSD ports collection, but seems to be its own creature.
Command-line tool for:
a. searching online repository for current modules
b. downloading and installing archives
c. creating new archives
–create would take the XML file for the module and create the
actual module/package. The module should be a gzipped XML file
with the maximum compression (done via libxml). shared objects
or other binary pieces of data should be MIME64 encoded before
being included in the XML file (should be a simple call to
pack()).
rubynet_require ‘module_name’
Rubynet appears to mandate some sort of structure for peer review of packages and documentation,
though I don’t know where there are specifics as to how this works.
[http://rubynet.sf.net/]
“dot rubynet” files describe a package:
a. A package maintainer has all of these files, containing key-value pairs:
.rubynet_author(*)?
.rubynet_build
.rubynet_categories
.rubynet_dependency(*)?
.rubynet_files
.rubynet_libs
.rubynet_project
.rubynet_test
[http://rubynet.org/apps/rubynet/]
b. Which are compiled into XML.
“I haven’t documented really how this fits into the whole
build process, but suffice it to say that developers/users will edit
various dot files described in the below spec which will then be
compiled into the rubynet module file (a compressed XML file). The
only dot file that I’m not happy with or want to rework is the
.rubynet_files file. The .rubynet_files contains the packaging list
for an installed module and not the list of files that are to be
included in the rubynet package (the files section of the rubynet
module… think of it as the list of files that you’d want to tar up
if had to package up your module).”
[http://lists.rubynet.org/lists/pipermail/rubynet-devel/2002-October/000188.html]
Thoughts/Concerns
rpkg
This project is great because it’s simple. It could be mirrored and implemented
right now without tremendous pain.
Currently only distributes Linux binaries.
Could use man pages, more options in the CLI, better interfaces for access the repository
from Ruby.
The project doesn’t seem to have a clear plan for mirroring.
rubynet
This project is VERY precocious. And it’s also quite young. They are just beginning a long
process and are still in the planning stages. I would say a useable rubynet is two years out.
Not to mention that many of the developers are wrapped up in other time-consuming projects.
This project could be tremendous.
This project could be a mess.
My ultimate thought after looking at rubynet was: why aren’t they teaming up with rpkg/rapt?
rubynet is tackling the same issues as rpkg/rapt with very few advantages to their packaging
approach. Why don’t these two teams get together and have rapt/rpkg work on the packaging
system, while rubynet works on the infrastructure?
Rubynet on rpkg:
“Aren’t there other Ruby package management systems out there? Yes,
there is one other one that we know about called rpkg. However, we believe
Rubynet will be quite different then rpkg. Rubynet is a service
based system allowing clients to query Rubynet for a vast variety
of information aside from just packages. The Rubynet services
available will be published allowing new clients to be written
independent of the Rubynet project.”
[http://216.239.53.100/search?q=cache:E9ZNTmfltYwC:www.rubynet.org/+rubynet+rpkg&hl=en&ie=UTF-8]
Verdict: Rubynet could use rpkg’s simplicity. Rpkg could use some of rubynet’s complexity.
Can sombody(s) do a quick compare and contrast of rpkg and rubynet?
Sounds like rubynet has more requirements (XML parser, etc.) which is a
bit worrisome since we would like whatever packaging system to work ‘out
of the box’ (though I think I’ve heard that REXML will be included in 1.8,
did I hear correctly?)
We www-admin@ruby-lang.org rewrote current RAA which got
a little old and rickety. We will replace RAA in this
or next week.
Done within this morning. I’m sorry for your inconvenience
about a little long down-time.
Changes:
lightweight top page
iso8859-1 => UTF-8
added simple keyword search
show projects by the specified owner
…that’s all.
SOAP and XML-RPC interfaces will be updated, too.
Users of RAA SOAP and XML-RPC interfaces, please tell
me if the problem occurred. I changed wire format a
little. See below;
id and owner_id element are added to each entry.
Those two elements contain positive integer.
For SOAP interface users only: element url, download
and email are marked as xsd:anyURI type. Those
elements will be unmarshalled as a URI object at
client side, not a String object.
Users of pragdave’s XML/RDF feed interfaces should use
above for a while. Pragdave’s former interfaces are not
updated now because of replacing RAA DB. Bare in mind
some changes are made to these interfaces, too. See
below;
*.xml files are updated in each 15 minutes, not on the
fly.
Charset encoding scheme was changed from iso-8859-1 to
UTF-8.
XML instance format is changed for user’s convenience.
SOAP4R
=>
SOAP4R
Regards,
// NaHi, member of this RAA renewal project.
Those are all great changes, but it still doesn’t address the fact that
the RAA is just a list of links to potentially non-existent locations.
Key packages could be lost after their creators loose interest.
The RAA needs a change in structure not just a change of interface.
OK, OK. Let me clarify.
We really need a new RAA with better interface. This is what Nahi and
others are working on.
We also need something like CPAN for Ruby, aka RAA.succ. But it
requres much work and time. So we go step by step.
Hi,
I agreed with Phil that the code should be stored on RAA Servers.
I got some modules/classes that I would like to share, but I do not have
a web page.
-----Original Message-----
From: Phil Tomson [mailto:ptkwt@shell1.aracnet.com]
Sent: Tuesday, October 22, 2002 1:38 PM
To: ruby-talk ML
Subject: Re: RAA.succ?
We www-admin@ruby-lang.org rewrote current RAA which got
a little old and rickety. We will replace RAA in this
or next week.
Changes:
lightweight top page
iso8859-1 => UTF-8
added simple keyword search
show projects by the specified owner
Those are all great changes, but it still doesn’t address the fact that
the RAA is just a list of links to potentially non-existent locations.
Key packages could be lost after their creators loose interest.
The RAA needs a change in structure not just a change of interface.
When
someone creates a module they
want to put on the RAA they should actually upload that module code
to the RAA server where it then resides. There should also be at least
one
mirror of the RAA repository. This (as I recall) is the way CPAN works
it guarantees that crucial modules will not just disappear when someone
changes ISPs or looses interest. You’ll always be able to get a
particular module from the RAA or it’s mirror(s).
There are packages now listed on the RAA that no longer exist - someone
wrote about not being able to find FastCGI this morning. I also tried
to
get an extension for top that no longer is available. I’m sure there
are
other dead links on the RAA and it’s only gonna get worse as time goes
on.