[#5737] returning strings from methods/instance_methods — TRANS <transfire@...>

I was just wondering why with #methods and #instance_methods, it was

11 messages 2005/09/08

[#5796] proposed attr writer patch — Daniel Berger <Daniel.Berger@...>

Hi all,

18 messages 2005/09/16

[#5798] Makefile error in OpenSLL extension (on Windows) — noreply@...

Bugs item #2472, was opened at 2005-09-16 18:56

11 messages 2005/09/17
[#5800] Re: [ ruby-Bugs-2472 ] Makefile error in OpenSLL extension (on Windows) — nobu.nokada@... 2005/09/17

Hi,

[#5851] Re: RubyGems in Ruby HEAD — Paul van Tilburg <paul@...>

Hi all,

34 messages 2005/09/21
[#5867] Re: RubyGems in Ruby HEAD — mathew <meta@...> 2005/09/21

Paul van Tilburg wrote:

[#5870] Re: RubyGems in Ruby HEAD — Marc Dequènes (Duck) <Duck@...> 2005/09/21

[#5920] Re: RubyGems in Ruby HEAD — mathew <meta@...> 2005/09/22

Marc Dequ竪nes (Duck) wrote:

[#5926] Re: RubyGems in Ruby HEAD — Pascal Terjan <pterjan@...> 2005/09/23

On 9/22/05, mathew <meta@pobox.com> wrote:

[#5931] Re: RubyGems in Ruby HEAD — Austin Ziegler <halostatue@...> 2005/09/23

On 9/23/05, Pascal Terjan <pterjan@gmail.com> wrote:

[#5898] Delegate and Forwardable Documentation — James Edward Gray II <james@...>

I've tried to send these files through a couple of times now with

17 messages 2005/09/22
[#5911] Re: Delegate and Forwardable Documentation — James Edward Gray II <james@...> 2005/09/22

On Sep 22, 2005, at 9:02 AM, James Edward Gray II wrote:

[#5924] Re: Delegate and Forwardable Documentation — James Edward Gray II <james@...> 2005/09/23

On Sep 22, 2005, at 11:53 AM, James Edward Gray II wrote:

[#5941] Re: Delegate and Forwardable Documentation — Yukihiro Matsumoto <matz@...> 2005/09/23

Hi,

[#5942] Re: Delegate and Forwardable Documentation — James Edward Gray II <james@...> 2005/09/23

On Sep 23, 2005, at 10:54 AM, Yukihiro Matsumoto wrote:

[#5947] Re: Delegate and Forwardable Documentation — Yukihiro Matsumoto <matz@...> 2005/09/23

Hi,

[#5921] Mutually dependent libs double loading. — TRANS <transfire@...>

I'm on Ruby 1.8.2.

14 messages 2005/09/23
[#5923] Re: Mutually dependent libs double loading. — Florian Gro<florgro@...> 2005/09/23

TRANS wrote:

[#5985] Finally an answer to my RubyGems question and some small suggestions — TRANS <transfire@...>

I appreciate those that attempted to offer me some info on this issue.

9 messages 2005/09/26

[#6001] Require Namepaces and RubyGems' effect on LoadPath problem — TRANS <transfire@...>

I've added namespaces to require. Works like this:

94 messages 2005/09/26
[#6002] Re: Require Namepaces and RubyGems' effect on LoadPath problem — Austin Ziegler <halostatue@...> 2005/09/26

On 9/26/05, TRANS <transfire@gmail.com> wrote:

[#6003] Re: Require Namepaces and RubyGems' effect on LoadPath problem — TRANS <transfire@...> 2005/09/26

On 9/26/05, Austin Ziegler <halostatue@gmail.com> wrote:

[#6005] Re: Require Namepaces and RubyGems' effect on LoadPath problem — Austin Ziegler <halostatue@...> 2005/09/26

On 9/26/05, TRANS <transfire@gmail.com> wrote:

[#6007] gems is a language change, not a pkging system (Re: Require Namepaces and RubyGems' effect on LoadPath problem) — Sam Roberts <sroberts@...> 2005/09/26

Quoting halostatue@gmail.com, on Tue, Sep 27, 2005 at 06:02:07AM +0900:

[#6013] Re: gems is a language change, not a pkging system (Re: Require Namepaces and RubyGems' effect on LoadPath problem) — Austin Ziegler <halostatue@...> 2005/09/27

On 9/26/05, Sam Roberts <sroberts@uniserve.com> wrote:

[#6014] Re: gems is a language change, not a pkging system — Sam Roberts <sroberts@...> 2005/09/27

Quoting halostatue@gmail.com, on Tue, Sep 27, 2005 at 10:29:17AM +0900:

[#6015] Re: gems is a language change, not a pkging system — James Edward Gray II <james@...> 2005/09/27

On Sep 26, 2005, at 8:54 PM, Sam Roberts wrote:

[#6016] Re: gems is a language change, not a pkging system — Sam Roberts <sroberts@...> 2005/09/27

Quoting james@grayproductions.net, on Tue, Sep 27, 2005 at 11:06:01AM +0900:

[#6018] Re: gems is a language change, not a pkging system — Austin Ziegler <halostatue@...> 2005/09/27

On 9/26/05, Sam Roberts <sroberts@uniserve.com> wrote:

[#6019] Re: gems is a language change, not a pkging system — Sam Roberts <sroberts@...> 2005/09/27

Quoting halostatue@gmail.com, on Tue, Sep 27, 2005 at 11:49:14AM +0900:

[#6024] Re: gems is a language change, not a pkging system — Austin Ziegler <halostatue@...> 2005/09/27

On 9/27/05, Sam Roberts <sroberts@uniserve.com> wrote:

[#6025] Re: gems is a language change, not a pkging system — Ralph Amissah <ralph.amissah@...> 2005/09/27

> Right now, they're watching people who have pretty much sat on the side

[#6026] Re: gems is a language change, not a pkging system — Austin Ziegler <halostatue@...> 2005/09/27

On 9/27/05, Ralph Amissah <ralph.amissah@gmail.com> wrote:

[#6043] Re: gems is a language change, not a pkging system — Ralph Amissah <ralph.amissah@...> 2005/09/28

I'll greatly weaken my post, and give everyone the opportunity to head me

[#6044] Re: gems is a language change, not a pkging system — Hugh Sasse <hgs@...> 2005/09/28

On Wed, 28 Sep 2005, Ralph Amissah wrote:

[#6073] Re: gems is a language change, not a pkging system — Mauricio Fern疣dez <mfp@...> 2005/09/28

Hello,

[#6074] Re: gems is a language change, not a pkging system — Jim Weirich <jim@...> 2005/09/29

On Wednesday 28 September 2005 07:35 pm, Mauricio Fern疣dez wrote:

[#6017] Re: gems is a language change, not a pkging system — Austin Ziegler <halostatue@...> 2005/09/27

On 9/26/05, Sam Roberts <sroberts@uniserve.com> wrote:

[#6046] Re: gems is a language change, not a pkging system — "Sean E. Russell" <ser@...> 2005/09/28

On Monday 26 September 2005 22:41, Austin Ziegler wrote:

[#6050] Re: gems is a language change, not a pkging system — Hugh Sasse <hgs@...> 2005/09/28

On Wed, 28 Sep 2005, Sean E. Russell wrote:

[#6207] Re: gems is a language change, not a pkging system — "Sean E. Russell" <ser@...> 2005/10/10

On Wednesday 28 September 2005 08:54, Hugh Sasse wrote:

[#6045] Re: gems is a language change, not a pkging system (Re: Require Namepaces and RubyGems' effect on LoadPath problem) — "Sean E. Russell" <ser@...> 2005/09/28

On Monday 26 September 2005 21:29, Austin Ziegler wrote:

[#6048] Re: gems is a language change, not a pkging system (Re: Require Namepaces and RubyGems' effect on LoadPath problem) — Austin Ziegler <halostatue@...> 2005/09/28

On 9/28/05, Sean E. Russell <ser@germane-software.com> wrote:

[#6059] Re: gems is a language change, not a pkging system (Re: Require Namepaces and RubyGems' effect on LoadPath problem) — Dominique Brezinski <dominique.brezinski@...> 2005/09/28

On 9/28/05, Austin Ziegler <halostatue@gmail.com> wrote:

[#6061] Re: gems is a language change, not a pkging system (Re: Require Namepaces and RubyGems' effect on LoadPath problem) — Austin Ziegler <halostatue@...> 2005/09/28

On 9/28/05, Dominique Brezinski <dominique.brezinski@gmail.com> wrote:

[#6062] Re: gems is a language change, not a pkging system (Re: Require Namepaces and RubyGems' effect on LoadPath problem) — Dominique Brezinski <dominique.brezinski@...> 2005/09/28

For what it is worth, I live life behind an authenticated proxy, so I

[#6099] Re: gems is a language change, not a pkging system (Re: Require Namepaces and RubyGems' effect on LoadPath problem) — "Sean E. Russell" <ser@...> 2005/09/30

On Wednesday 28 September 2005 08:43, Austin Ziegler wrote:

[#6009] Re: ruby 1.8.3 (2005-09-21) [i486-linux] sisu segfault — Ralph Amissah <ralph.amissah@...>

(i) correction, segfault is with official ruby 1.8.3 (2005-09-21), not

21 messages 2005/09/27
[#6010] Fwd: ruby 1.8.3 (2005-09-21) [i486-linux] sisu segfault — Ralph Amissah <ralph.amissah@...> 2005/09/27

[sorry for duplicate post]

[#6079] Re: Fwd: ruby 1.8.3 (2005-09-21) [i486-linux] sisu segfault — ts <decoux@...> 2005/09/29

>>>>> "R" == Ralph Amissah <ralph.amissah@gmail.com> writes:

[#6081] Re: Fwd: ruby 1.8.3 (2005-09-21) [i486-linux] sisu segfault — ts <decoux@...> 2005/09/29

>>>>> "t" == ts <decoux@moulon.inra.fr> writes:

[#6082] Re: Fwd: ruby 1.8.3 (2005-09-21) [i486-linux] sisu segfault — Tanaka Akira <akr@...17n.org> 2005/09/29

In article <200509291419.j8TEJYid015419@moulon.inra.fr>,

Re: RubyGems TODO

From: Brian Mitchell <binary42@...>
Date: 2005-09-22 19:39:18 UTC
List: ruby-core #5917
On 9/22/05, ES <ruby-ml@magical-cat.org> wrote:
> Jim Weirich wrote:
> >>>On 21-Sep-05, at 7:17 PM, why the lucky stiff wrote:
> >
> >
> >>>>So, what needs to happen with RubyGems to neutralize everybody?
> >
> > [... items 1..4 elided ...]
> >
> > Chad Fowler said:
> >
> >
> >>>Thanks, Why.  I'd like to add (at least, for now):
> >
> > [... items 5..7 elided ...]
> >
> > This is how I would sort the Why/Chad todo list:
> >
> > * Things that are Urgent and need done immediately:
> >
> > (5) Incremental Source Index downloads.
> >
> >     I understand that RubyForge is currently having issues with the
> >     large monolithic index file, which makes this a high priority
> >     item.  I meant to deal with this earlier, but got sidetracked with
> >     life.
>
> I had, at some point or another, envisioned a transparent distributed
> system where a given server not only delegates out downloads but the
> very indexing itself to any other servers it knows about. I can not
> recall if I wrote any code for this but it is quite doubtable as I
> usually would do no such thing :)
>
> > * Things that should be done for a 1.8.4 merge:
> >
> > (1) Data dir support.
> >
> >     This is really more of an issue with the Ruby environment rather
> >     than with RubyGems itself.  The reason it tends to come up in
> >     RubyGems context is that it is gems that people want to package.
> >
> >     I have some vague suggestions in this area, but the discussion
> >     should probably move to a different thread.  I'll post more when I
> >     organize some thoughts.
> >
> > (3) Semantics of require and needing to require rubygems.
> >
> >     In the absence of explicit require_gem commands, RubyGems only
> >     interfers with the require process when a file cannot be found by
> >     the normal require process.  In order to do this, it currently
> >     aliases Kernel.require and traps load errors.
> >
> >     I would like to see two things happen as RubyGems becomes part of
> >     the core.  (1) a general hook for require LoadError handlers be
> >     implemented, and (2) RubyGems become a default handler in that
> >     hook.  This keeps the impact of RubyGems at an absolute minimum
> >     until the moment it is needed, but users can get to gems without
> >     doing explicit require 'rubygems', -rubygems or RUBYOPT hacks.
> >
> > (7) Deprecate require_gem and start using use_gem (or an appropriate
> >     alias).
> >
> > * Good things that are necessarily needed for 1.8.4 merging.
> >
> > (6) Local / Remote installer unification.
> >
> >     This is a major area of functionality that really needs to be
> >     addressed.  Fixing this will fix a number of inconsistancies with
> >     the way local gems are handled.
> >
> >     Chad would like to see this before 1.8.4, and I agree; but this
> >     change is big enough that it will probably need some extensive
> >     burn in time, so I am hesitant to insist that it be prior to
> >     1.8.4.
> >
> > (2) gem setup / gem lint
> >
> >     Excellent ideas.
> >
> > * Vague items that need more definition
> >
> > (4) Distro compatibility.
> >
> >     I think the DATADIR issue will go a long way to resolving some of
> >     these issues.  But I would like to hear specifics in this area.
> >     Although RubyGems is primarily a *Ruby* packaging system (and so
> >     our priorities are set accordingly), we certainly don't want to
> >     make it any harder for repackagers and specific suggestions are
> >     always welcome.
> >
>


This might be a good time to expand on my thoughts. I think it is a
large change but fortunately I think it still leverages the current
technology:

I mentioned that I would like to see three main things in my last
post: smart aliases, user scripts, and most importantly a modular gem
database/setup (I can't think of a good name for this yet).

#1

Smart aliases would allow the one to have special names applied to a
specific gem. In an example you might see some gem xyz with available
versions 1, 2, and 3 (possibly from specific sources too). You could
alias xyz-1 to the gem that corresponds to that specific version. You
might also want to link to a specific minor version. This is not that
powerful by itself but it does allow a few nice things. One is the
fact that someone who is picky about naming conventions can now
specifically fix this problem. Another would be the ability to fix bad
code that was written around a case insensitive file system. And last
but not least there would be a way to swap out libraries that
implement a standard API (like loggers) by using the generic name in
code rather than having config files to edit (it doesn't change the
fact that is still has to be configured but, IMHO, i think it is more
elegant -- especially in combination with the other proposals).

Someone mentioned namespace collisions above. This would be a problem
if we were both reckless and did nothing to support handling of
collisions. This is still a problem even without aliasing. Meta-gems
would have the same possible clashes as could normal gems even
(multiple sources). Solving this issue would benefit gems regardless
of whether or not any of my ideas are incorporated. I think this could
be fixed one way by giving priority to an alias over a gem and having
each database be restricted to one source (more on that) along with
the ability to have a combination of databases available which could
be ordered for search priority also. Just a thought.

#2

User scripts are a more exotic tool. They allow a range of
customization that I think would make quite a few people happy. User
scripts would be ruby scripts attached to a gem database that would
hook into specific events (pre-, post-, and wrap- styles). These would
allow packagers a little more control over the gem. If designed
properly it could control things like when, where, and how a gem is
compiled, linked, installed, tested, and documented. They would also
allow for testing the environment. The database concept, which I will
hit on soon, could use these when deployed in specific environments.
For example, if a certain database needs a specific gem installed on
mswin32 platforms only then it could check the environment and include
or exclude that specific gem upon analysis. Other users would not be
stuck with an extra gem or even having to put up with a failure when
installing platform specific gems on unsupported platforms. User
scripts would offer enough open-ended-ness that I am sure there are
plenty of more useful applications of this feature. This is not
particularly dependent on the other two feature but it does alleviate
some of the short comings.

#3

Gem databases. I don't know what to name this really because it
wouldn't actually hold the final gems (I guess there could be an
option to bundle gems with it internally). What it would hold is
information on what gems are installed, what versions, what aliases,
what user scripts, what source to look for non local gems (ones that
aren't bundled)... any meta-info needed to reconstruct the specific
gem environment as accurately as possible. When running rubygems could
check the simple configuration available. This configuration would
tell it which databases to check and in which order. It could
optionally give placement to a database relative to the standard ruby
lib, platform, and site directories. It might be nice if the gem tool
could help generate or change these files from the CLI. These gem
databases would be really cool if they could be packaged back into a
gem. :) gem install rpa

Now the applications of this are really cool... here are a few example
scenarios:

I have an application that works under setup option A and B. I want to
ensure that my application works consistently across both. Good
testing is the quick answer to this but how do I quickly switch
between the setups? Normally this would be non-trivial without
hardcoding versions all over the place in the tests. However if I
could just tell rubygems, via some environment var, what databases to
use then I could construct these once and be done.

Even better, the database files could be version controlled along with
the rest of the application! Now you might be able to really roll back
to an old version immediately rather than rolling code then spending
time trying to replicate your old environment.

Now add to that. One of your users is having trouble and you suspect
that it is related to their environment. You could just ask for his
"database_description_file". bam. You've now got all the information
you need. Are his user scripts messing it up? Is it another gem
interfering? A specific combination of library versions? Well you at
least have a place to start answering those types of questions from.

Another capability of a database system would be to allow things like
RPA to provide a very specific set of libraries with specific
versions. User scripts could also weed out dangerous combinations to
help spot stability issues.

I think that wraps up my thought right now. I am sure I forgot
something but this should give you a taste of what angle I am coming
from. A few notes to finish up that I thought of but didn't want to
clutter my original idea with..

Database description files could contain more database description
files. The final atomic file could be what we currently call a gem.
The rubygems configuration file could also be a database description
itself. the ruby standard library and other directories provided as
_special_ types of databases that may be included. This might be nice
for systems that don't want to stick with the standard ruby layout
(again user scripts would make this option much more potent).

Also, before you reply to me, I use the terms database and database
description loosely right now. I have not really come up with a name.
Perhaps I should just call them gems still if we include my last
thoughts.

Brian.


In This Thread