Forum: Ruby Project Directory Layouts

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
TRANS (Guest)
on 2006-06-06 18:54
(Received via mailing list)
I'm wondering about good practices with regard to the layout of
project developement directories. I know there are generally two kinds
"Standard" and "SVN" where the SVN type normally has three top level
folders: tags, branches, and trunk.

But I wonder where in these two layouts (if anywhere) should one keep
things like a scratch pad directory (what I'm labeling 'forge' these
days), one's website files for a project, and previously released
packages (I tend to keep some copies just in case). And what about
Rakefiles and the like. Should the Rakefile be distributed in a
release if it is only useful to developement?

For awhile I entertained the notion that my "trunk" should be a
one-to-one image of what I was going to distribute as an offical
release. That's proven harder to do than I expected, and since I've
been using Darcs rather than Subversion, if that's not really
feasible, I wonder if a two tier SVN-like directory layout is really
advantegous to me. But I have been using the extra tier to store these
kinds of extra files (eg website, forge) and actually I wonder why SVN
users never seem to use that tier for anything else too.

Any and all insights into this topic, I'm interested in hearing about.

Thanks,
T.
Jim W. (Guest)
on 2006-06-06 19:44
TRANS wrote:
> I'm wondering about good practices with regard to the layout of
> project developement directories. I know there are generally two kinds
> "Standard" and "SVN" where the SVN type normally has three top level
> folders: tags, branches, and trunk.

The subversion tags/brachnes/trunk stuff is for subversion only.  Your
real project layout occurs under the trunk branch.  Tags and branches
are used to store, well, tagged and branched versions of trunk.  This is
convention only, I don't know of anything in subversion that enforces
this.

So, in the normal course of work when you are working on the latest
version of a project, only the trunk branch is checked out into a
developers working area.

> But I wonder where in these two layouts (if anywhere) should one keep
> things like a scratch pad directory (what I'm labeling 'forge' these
> days), one's website files for a project, and previously released
> packages (I tend to keep some copies just in case). And what about
> Rakefiles and the like. Should the Rakefile be distributed in a
> release if it is only useful to developement?

Yes, otherwise repackagers will have difficulty creating all the RPMs,
PKGs, and whatnot that you don't want to produce yourself.  Whether you
create a tarball or a gem (or something else), please include everything
you need rebuild.  Normally this is just a few files.  If you want
really want to release a run-only version, make sure you also release a
full version for repackagers.

> For awhile I entertained the notion that my "trunk" should be a
> one-to-one image of what I was going to distribute as an offical
> release. That's proven harder to do than I expected, and since I've
> been using Darcs rather than Subversion, if that's not really
> feasible, I wonder if a two tier SVN-like directory layout is really
> advantegous to me. But I have been using the extra tier to store these
> kinds of extra files (eg website, forge) and actually I wonder why SVN
> users never seem to use that tier for anything else too.

Because that tier only exists in the repository, never in the
developer's workspace (unless they forget and check out that tier by
accident.

- Jim W.
unknown (Guest)
on 2006-06-06 21:06
(Received via mailing list)
Nice. Thanks Jim. That was a big help.

T.
This topic is locked and can not be replied to.