WANTED: need a real web API for rubyforge.org

Yeah, this is a good discussion to have, and thanks to Greg for giving me a heads up on it.

I go back and forth on this - I'd love to have RubyForge written in Rails with a nice ActiveRecord model and a RESTful API and all that... but, for one thing:

$ pwd
/var/www/gforge-3.0
$ find . -name "*.php" | xargs wc -l | sum | cut -f 1 -d " "
62284

For another, in my opinion, GForge isn't too bad; it's not the best, but it's not terrible. And I don't know, when I think about rewriting it, I start thinking that I should just read my PHP books and make any changes that need to be made in the current language.

Porting everything to Redmine is an idea, but the thought of migrating the current data gives me a headache, and I'd hate to lose any features. On the other hand, like someone said many features aren't used.

Another thing I think about that's tricky is the cutover. Maybe if there was a way to switch things over little by little... but again, is the implementation language really the problem? And are there better places where that copious spare time can be spent? I dunno.

Well, anyhow, those are some noodlings on the matter,

Yours,

Tom

P.S. I might be overstating the difficulty of a rewrite. If the DB schema was fixed (which would require lots of set_primary_key and has_many :through, :foreign_key => blah), at least for the time when it was being ported, it might not be too painful.

···

On Jan 7, 2009, at 12:33 PM, Gregory Brown wrote:

On Wed, Jan 7, 2009 at 11:38 AM, Tiago Nogueira <tjnogueira@oomaster.com > > wrote:

Greg , i'm really talking serious. I really want to contribuite with our
community and i have time every night to dedicate
and to do it.

I've pinged Tom. He should either join in here, or send you an email directly.

It's great that you want to contribute to the community, but unless
this is a need that is really, really, important to you, there are
lots of other worthy projects that aren't at the level of 'would be
nice', but instead at the level of 'really, really important'. I
won't be one to judge which are which generally, but my point is there
is software out there that needs to exist for Ruby that hasn't even
been started. There is also a lot of code out there that needs to be
ported to 1.9 if we plan to move forward as a community.

I do think there is significant merit in making our central project
repository top notch, but github has really filled in the gap (at
least temporarily). There are other bigger, wider holes to be filled.

It would be far better IMO to build a new RubyForge from the ground
up, and when it's reasonably feature-complete and the community
agrees, migrate over and shut the GForge instance down.

I would be interested to hear what percentage of GForge features see any kind of widespread use. I know some use them all, but I suspect quite a few do not. I feel GForge has a pretty clumsy interface that detracts a lot from what it provides and probably encourages users to avoid some hassle. I admit that I'm guessing though.

which means everything that's on RubyForge now needs to be migrated.

Has the RAA been migrated anywhere?

I'm not trying to disagree with you. I just don't see these issues as being so critical as you do. Projects are migrating to Github in pretty big numbers now. Obviously some are OK with the feature differences and aren't too worried about migrating content.

James Edward Gray II

···

On Jan 7, 2009, at 6:59 PM, Ben Bleything wrote:

Daniel Berger escreveu:

···

On Jan 7, 2:10 pm, Trans <transf...@gmail.com> wrote:

<snip>

To me GForge seems very dated. I think GitHub is much better example
of the future. It has most of the features developers need.
    
I don't see a way to submit bugs.
I don't see forums.
I don't see mailing lists.
I don't see a way to broadcast announcements.
I don't see download stats.
I don't see a way to monitor what new Ruby projects have been created.
I don't see a way to logically group different, but related, libraries
together.
I don't see a way to attach external documents.
I don't see a way to track all of the bugs and feature requests I've
submitted on other projects.
I don't see a place to paste code snippets.

Github, an example of the future? The future isn't all it's cracked up
to be apparently.

Dan

In this case ,i agree with you, dan.
- tiago

Ben Bleything wrote:

The best approach, in my opinion, is to:

1) Register http://www.rubyforge2.org using Redmine.
2) Encourage people to register their projects there instead of the
current system.
3) After about 6 months, if all goes well, ban new project creation on
the current Rubyforge (though leaving everything else intact).
4) Strongly encourage people to migrate their projects over to the new
system.
5) After 3 (4, 5?) years, shut down the old RubyForge, making
rubyforge2.org an alias for rubyforge.org.

I think this is a *terrible* idea. The last thing we need is further
division in the community about where projects live. Don't get me
wrong, I think the spirit is right, but doing it *in this manner*
makes me uncomfortable.

I'm not sure how division in the community over where projects live matters in any practical sense, except for Rubygems and your GEM_PATH setting. Even then, Tom could make it so that you wouldn't need to change anything, as he could script where the gems actually live.

It would be far better IMO to build a new RubyForge from the ground
up, and when it's reasonably feature-complete and the community
agrees, migrate over and shut the GForge instance down.

Oh, yeah? Who's gonna build it? And even _if_ someone undertook the project, no one is going to agree on how it should look, feel and act anyway, so it will _still_ result in division no matter how you slice it.

Regards,

Dan

···

On Wed, Jan 7, 2009 at 11:12 AM, Daniel Berger <djberg96@gmail.com> wrote:

Tom Copeland escreveu:

Greg , i'm really talking serious. I really want to contribuite with our
community and i have time every night to dedicate
and to do it.

I've pinged Tom. He should either join in here, or send you an email directly.

It's great that you want to contribute to the community, but unless
this is a need that is really, really, important to you, there are
lots of other worthy projects that aren't at the level of 'would be
nice', but instead at the level of 'really, really important'. I
won't be one to judge which are which generally, but my point is there
is software out there that needs to exist for Ruby that hasn't even
been started. There is also a lot of code out there that needs to be
ported to 1.9 if we plan to move forward as a community.

I do think there is significant merit in making our central project
repository top notch, but github has really filled in the gap (at
least temporarily). There are other bigger, wider holes to be filled.

Yeah, this is a good discussion to have, and thanks to Greg for giving me a heads up on it.

I go back and forth on this - I'd love to have RubyForge written in Rails with a nice ActiveRecord model and a RESTful API and all that... but, for one thing:

$ pwd
/var/www/gforge-3.0
$ find . -name "*.php" | xargs wc -l | sum | cut -f 1 -d " "
62284

For another, in my opinion, GForge isn't too bad; it's not the best, but it's not terrible. And I don't know, when I think about rewriting it, I start thinking that I should just read my PHP books and make any changes that need to be made in the current language.

Porting everything to Redmine is an idea, but the thought of migrating the current data gives me a headache, and I'd hate to lose any features. On the other hand, like someone said many features aren't used.

Another thing I think about that's tricky is the cutover. Maybe if there was a way to switch things over little by little... but again, is the implementation language really the problem? And are there better places where that copious spare time can be spent? I dunno.

Well, anyhow, those are some noodlings on the matter,

Yours,

Tom

P.S. I might be overstating the difficulty of a rewrite. If the DB schema was fixed (which would require lots of set_primary_key and has_many :through, :foreign_key => blah), at least for the time when it was being ported, it might not be too painful.

Well Tom, your arguments are valid and I agree completly. I think this subject is causing a good discussion and i propose a votation here.I think that the hard job to rewrite will not be a problem if we make a "union of forces" :slight_smile:

-tiago

···

On Jan 7, 2009, at 12:33 PM, Gregory Brown wrote:

On Wed, Jan 7, 2009 at 11:38 AM, Tiago Nogueira >> <tjnogueira@oomaster.com> wrote:

Just out of curiosity, rather than rewriting the GForge app or
modifying the PHP, why not just build a separate app that provides
only the API? That could be done in any flavor of web framework and
would be independent of the GForge code.

Sincerely,
Anthony Eden

···

On Wed, Jan 7, 2009 at 8:57 PM, Tom Copeland <tom@infoether.com> wrote:

On Jan 7, 2009, at 12:33 PM, Gregory Brown wrote:

On Wed, Jan 7, 2009 at 11:38 AM, Tiago Nogueira <tjnogueira@oomaster.com> >> wrote:

Greg , i'm really talking serious. I really want to contribuite with our
community and i have time every night to dedicate
and to do it.

I've pinged Tom. He should either join in here, or send you an email
directly.

It's great that you want to contribute to the community, but unless
this is a need that is really, really, important to you, there are
lots of other worthy projects that aren't at the level of 'would be
nice', but instead at the level of 'really, really important'. I
won't be one to judge which are which generally, but my point is there
is software out there that needs to exist for Ruby that hasn't even
been started. There is also a lot of code out there that needs to be
ported to 1.9 if we plan to move forward as a community.

I do think there is significant merit in making our central project
repository top notch, but github has really filled in the gap (at
least temporarily). There are other bigger, wider holes to be filled.

Yeah, this is a good discussion to have, and thanks to Greg for giving me a
heads up on it.

I go back and forth on this - I'd love to have RubyForge written in Rails
with a nice ActiveRecord model and a RESTful API and all that... but, for
one thing:

$ pwd
/var/www/gforge-3.0
$ find . -name "*.php" | xargs wc -l | sum | cut -f 1 -d " "
62284

For another, in my opinion, GForge isn't too bad; it's not the best, but
it's not terrible. And I don't know, when I think about rewriting it, I
start thinking that I should just read my PHP books and make any changes
that need to be made in the current language.

Porting everything to Redmine is an idea, but the thought of migrating the
current data gives me a headache, and I'd hate to lose any features. On the
other hand, like someone said many features aren't used.

Another thing I think about that's tricky is the cutover. Maybe if there
was a way to switch things over little by little... but again, is the
implementation language really the problem? And are there better places
where that copious spare time can be spent? I dunno.

Well, anyhow, those are some noodlings on the matter,

Yours,

Tom

P.S. I might be overstating the difficulty of a rewrite. If the DB schema
was fixed (which would require lots of set_primary_key and has_many
:through, :foreign_key => blah), at least for the time when it was being
ported, it might not be too painful.

--
GMU/IT d- s: a32 C++(++++)$ UL@ P--- L+(++) !E W+++$ !N o? K? w--- !O
M++ V PS+ PE Y PGP t+ !5 X- R tv b++ DI+ D++ G- e++ h---- r+++ y++++**

http://anthony.mp

I know very little about this but I have always wondered if it would
be possible to write another skin for the rubyforge data. Fix the DB,
then implement features incrementally (as needed/desired) in the ruby-
based skin while keeping alive the existing program.

Any more insights, Tom?

Dan, I think you over value some of these features -- download stats
on Rubyforge aren't very accurate, announcements would be better
handled by a dedicated mailing list, and why attach external documents
when we can just add them to our repos? Also, GitHub does have code
snippets.

Yes, some additional features would be nice. But I see no reason why
they eventually can't be added -- I'm sure the GitHub folks have plans
for the future too.

In any case, I don't think it's a good idea to think in terms of
shutting the original Rubyforge down and starting Rubyforge2 up,
rather I think it would be better to make a smooth transition. Let
people move over at their leisure. The first adopters can be the ones
who are okay with the more limited feature set.

T.

···

On Jan 7, 8:16 pm, Tiago Nogueira <tjnogue...@oomaster.com> wrote:

Daniel Berger escreveu:

> On Jan 7, 2:10 pm, Trans <transf...@gmail.com> wrote:

> <snip>

>> To me GForge seems very dated. I think GitHub is much better example
>> of the future. It has most of the features developers need.

> I don't see a way to submit bugs.
> I don't see forums.
> I don't see mailing lists.
> I don't see a way to broadcast announcements.
> I don't see download stats.
> I don't see a way to monitor what new Ruby projects have been created.
> I don't see a way to logically group different, but related, libraries
> together.
> I don't see a way to attach external documents.
> I don't see a way to track all of the bugs and feature requests I've
> submitted on other projects.
> I don't see a place to paste code snippets.

> Github, an example of the future? The future isn't all it's cracked up
> to be apparently.

which is exactly what I was asking for before trans hijacked yet another thread with his tangental mentarbations. I want to do the simplest thing that works to improve the current situation. We're talking a couple hundred lines of code, max.

···

On Jan 8, 2009, at 03:21 , Anthony Eden wrote:

Just out of curiosity, rather than rewriting the GForge app or
modifying the PHP, why not just build a separate app that provides
only the API? That could be done in any flavor of web framework and
would be independent of the GForge code.

which means everything that's on RubyForge now needs to be migrated.

Has the RAA been migrated anywhere?

Nope, but I feel pretty strongly that we'd all be better off if it had been.

I'm not trying to disagree with you. I just don't see these issues as being
so critical as you do. Projects are migrating to Github in pretty big
numbers now. Obviously some are OK with the feature differences and aren't
too worried about migrating content.

Sure, some are... but if we're really talking about replacing
RubyForge, what about all the people who use it who aren't happy with
the feature differences? That's really the point I'm trying to make.

Ben

···

On Wed, Jan 7, 2009 at 5:10 PM, James Gray <james@grayproductions.net> wrote:

I'm not sure how division in the community over where projects live matters
in any practical sense, except for Rubygems and your GEM_PATH setting. Even
then, Tom could make it so that you wouldn't need to change anything, as he
could script where the gems actually live.

Those are good points. I guess it's a matter of whether or not this
theoretical RubyForge replacement would actually take over
rubyforge.org or not. If it would, then what is done with all of the
projects on RubyForge now that can't or don't want to transition?

I'm also not excited about having to go to four or five different
sites to find the library that I'm looking for. There's already
enough problem with trying to find the "canonical" gem when you've got
GitHub's source enabled... imagine if there was even one more gem
source in common usage.

Oh, yeah? Who's gonna build it? And even _if_ someone undertook the project,
no one is going to agree on how it should look, feel and act anyway, so it
will _still_ result in division no matter how you slice it.

Maybe... the division I'm concerned about is having a lot of sites
crop up that are trying to do what RubyForge does. If the idea is to
replace RubyForge with something better, my opinion is that RubyForge
as it is today should be shut down at the end of the process. No
division, just new infrastructure serving the same purpose.

Ben

···

On Wed, Jan 7, 2009 at 5:26 PM, Daniel Berger <djberg96@gmail.com> wrote:

Yeah, that's a good thought. When I think about doing that, the tricky thing in my mind is maintaining all the permissions and privileges and such for the Ruby side so that no one can add a file to someone else's project or whatever. But yeah, if that could be sorted out, that sounds like a good idea.

Yours,

Tom

···

On Jan 9, 2009, at 9:52 AM, Simon Chiang wrote:

I know very little about this but I have always wondered if it would
be possible to write another skin for the rubyforge data. Fix the DB,
then implement features incrementally (as needed/desired) in the ruby-
based skin while keeping alive the existing program.

Any more insights, Tom?

> Daniel Berger escreveu:

> > <snip>

> >> To me GForge seems very dated. I think GitHub is much better example
> >> of the future. It has most of the features developers need.

> > I don't see a way to submit bugs.
> > I don't see forums.
> > I don't see mailing lists.
> > I don't see a way to broadcast announcements.
> > I don't see download stats.
> > I don't see a way to monitor what new Ruby projects have been created.
> > I don't see a way to logically group different, but related, libraries
> > together.
> > I don't see a way to attach external documents.
> > I don't see a way to track all of the bugs and feature requests I've
> > submitted on other projects.
> > I don't see a place to paste code snippets.

> > Github, an example of the future? The future isn't all it's cracked up
> > to be apparently.

Dan, I think you over value some of these features -- download stats
on Rubyforge aren't very accurate

Except for a few projects that have either inadvertently or
intentionally pumped their own download stats, they're fairly
accurate. I track the download stats, so I can trend out the projects.

announcements would be better handled by a dedicated mailing list

An RSS feed is even better. You can already do this for news on
individual projects. I've asked Tom about a site-wide RSS feed for
news announcements.

and why attach external documents
when we can just add them to our repos?

Because I don't necessarily want to download them. I may just want to
view them.

Also, GitHub does have code
snippets.

Ok, cool.

Yes, some additional features would be nice. But I see no reason why
they eventually can't be added -- I'm sure the GitHub folks have plans
for the future too.

But if RF already has the features, why switch to github? And Redmine
has an even richer feature set.

In any case, I don't think it's a good idea to think in terms of
shutting the original Rubyforge down and starting Rubyforge2 up,
rather I think it would be better to make a smooth transition. Let
people move over at their leisure. The first adopters can be the ones
who are okay with the more limited feature set.

In terms of rubyforge -> rubyforge2, I think a 3-5 year transition
would be fairly smooth. If you're referring to github, people will
transition, or not, at their leisure.

Regards,

Dan

···

On Jan 8, 6:23 am, Trans <transf...@gmail.com> wrote:

On Jan 7, 8:16 pm, Tiago Nogueira <tjnogue...@oomaster.com> wrote:
> > On Jan 7, 2:10 pm, Trans <transf...@gmail.com> wrote:

And I did not hijack the thread. I just ask a related question.

Why didn't you answer the questions I asked directly related to what
you suggest? I'm begging you Ryan, please put your personal feelings
about me aside and have a civil conversation about this.

T.

···

On Jan 8, 2:28 pm, Ryan Davis <ryand-r...@zenspider.com> wrote:

On Jan 8, 2009, at 03:21 , Anthony Eden wrote:

> Just out of curiosity, rather than rewriting the GForge app or
> modifying the PHP, why not just build a separate app that provides
> only the API? That could be done in any flavor of web framework and
> would be independent of the GForge code.

which is exactly what I was asking for before trans hijacked yet
another thread with his tangental mentarbations. I want to do the
simplest thing that works to improve the current situation. We're
talking a couple hundred lines of code, max.

Hm, this is pretty interesting. I wonder if we could do api.rubyforge.org, in Rails, with Group/Package/Release/ReleaseFile as resources. Ryan, is there anything else that hoe would need? Maybe User?

Maybe we should shift this discussion to the RubyForge support project; I just fired up a new forum for it here:

http://rubyforge.org/forum/forum.php?forum_id=29548

Yours,

Tom

···

On Jan 8, 2009, at 2:28 PM, Ryan Davis wrote:

I want to do the simplest thing that works to improve the current situation. We're talking a couple hundred lines of code, max.

I'm not sure how division in the community over where projects live matters
in any practical sense, except for Rubygems and your GEM_PATH setting. Even
then, Tom could make it so that you wouldn't need to change anything, as he
could script where the gems actually live.

Those are good points. I guess it's a matter of whether or not this
theoretical RubyForge replacement would actually take over
rubyforge.org or not. If it would, then what is done with all of the
projects on RubyForge now that can't or don't want to transition?

old.rubyforge.org ?

:slight_smile:

I'm also not excited about having to go to four or five different
sites to find the library that I'm looking for. There's already
enough problem with trying to find the "canonical" gem when you've got
GitHub's source enabled... imagine if there was even one more gem
source in common usage.

Yes, I agree here.

Oh, yeah? Who's gonna build it? And even _if_ someone undertook the project,
no one is going to agree on how it should look, feel and act anyway, so it
will _still_ result in division no matter how you slice it.

Maybe... the division I'm concerned about is having a lot of sites
crop up that are trying to do what RubyForge does. If the idea is to
replace RubyForge with something better, my opinion is that RubyForge
as it is today should be shut down at the end of the process. No
division, just new infrastructure serving the same purpose.

But if you close support for creating new projects and make RubyForge
for archival / legacy projects only, what's the problem with that?

-greg

···

On Thu, Jan 8, 2009 at 11:55 PM, Ben Bleything <ben@bleything.net> wrote:

On Wed, Jan 7, 2009 at 5:26 PM, Daniel Berger <djberg96@gmail.com> wrote:

--
Technical Blaag at: http://blog.majesticseacreature.com
Non-tech stuff at: http://metametta.blogspot.com
"Ruby Best Practices" Book now in O'Reilly Roughcuts:
http://rubybestpractices.com

Tom, could you possibly prepare a database dump that strips out the
accounts and non-public data. (If I'm creating a lot of work for you,
just let me know :slight_smile:

But having a sandbox RubyForge db might help people w. this task.

-greg

···

On Fri, Jan 9, 2009 at 11:28 AM, Tom Copeland <tom@infoether.com> wrote:

On Jan 9, 2009, at 9:52 AM, Simon Chiang wrote:

I know very little about this but I have always wondered if it would
be possible to write another skin for the rubyforge data. Fix the DB,
then implement features incrementally (as needed/desired) in the ruby-
based skin while keeping alive the existing program.

Any more insights, Tom?

Yeah, that's a good thought. When I think about doing that, the tricky
thing in my mind is maintaining all the permissions and privileges and such
for the Ruby side so that no one can add a file to someone else's project or
whatever. But yeah, if that could be sorted out, that sounds like a good
idea.

--
Technical Blaag at: http://blog.majesticseacreature.com
Non-tech stuff at: http://metametta.blogspot.com
"Ruby Best Practices" Book now in O'Reilly Roughcuts:
http://rubybestpractices.com

That's a great idea. Let me spend some time figuring out which fields can be safely sanitized and I'll post back here,

Yours,

tom

···

On Jan 9, 2009, at 11:34 AM, Gregory Brown wrote:

Tom, could you possibly prepare a database dump that strips out the
accounts and non-public data. (If I'm creating a lot of work for you,
just let me know :slight_smile:

But having a sandbox RubyForge db might help people w. this task.