WelcomePage RecentChanges SpwWiki

SourceForge

The SourceForge project page is at http://sourceforge.net/projects/cpw/ .


I am hoping to try and add the project to SourceForge after a name is settled upon. Hopefully I'd at least do part of this in the next couple of weeks. That way the code would still be accessible while the current server (my own laptop) travels with me as I go on vacation (I expect I'll be able to serve it from vacation, but there would be a few days downtime during travel, and every now and then during vacation). If possible, I expect to move the wiki site itself to SourceForge too, and then I wouldn't have to serve it off my (mobile) computer at all.

I'll post here what I was planning to put on the project application page so that we can discuss it and make a good application:

On the project application page, you have to provide:

All of these can be changed later except for "Private project description" and "Unix name", so those are the only ones I'm going to worry about.

As for "unix name", it depends on what name we settle on.

I think the "private project description" is what they read to decide if you get a project slot or not. I'm thinking (this uses the CPW name, because I wrote it before ReprogrammableWiki? was suggested to me):


Just as in a conventional wiki, the textual content on the wiki site is collaboratively written by the user community, in a Community Programmed Wiki the user community also edits the wiki's source code. It is hoped that taking the principals of wiki to their logical extreme in this way will distribute wiki administration workload, produce interesting new wiki features, and perhaps someday even grow into a new collaborative development paradigm.

Initially, CPW has been implemented as a fork of the Perl-language UseMod wiki software, although in the future perhaps other implementations will be created.

Currently, CPW is intended for a GNU/Linux environment but will probably run as long as there is Perl, the Safe module, and a few utilities such as "diff" and "patch". Whether CPW will continue to be relatively portable remains to be seen.

CPW is currently in its first beta release. It appears to work, and it takes only minutes for a user to submit a patch to the code from within the wiki itself.


What do you think?

I was thinking that initially, developer privileges to the SourceForge site would be granted to DavidWhitten (if you'd like, David) and myself. Of course, once the site is moved, users could also develop by submitting changes from within SPW.

-- BayleShanks

I think it sounds good (of course, since I'm DavidWhitten, I might be biased. Another way to avoid the immediacy of the decision to decide on the name is to use one of the projects I already have at sourceforge. Modifying the code base to work on sourceforge so a project can have a wiki is definitely one of my priorities. (We may have to do something ugly like create an interface to a MySQL? database, since sourceforge doesn't allow world writable files). I certainly think my oziac project would be reasonable to "sponsor" this code base if you would like, or if you want a more generic project, the foo project would also be reasonable. These projects are already setup, and I can add you as an admin just on your request. The problem of too many ideas, and not enough time is a real pain. -- DavidWhitten

Thanks for the offer. I think we may as well just pick a name and try to get this project its site on SourceForge. To do otherwise would be confusing and may be slightly inconvenient (to move things twice; although I bet that's pretty easy), and psychologically leaves something hanging. And picking the wrong name isn't THAT bad -- it's only the SourceForge unix name which can't be changed.

-- BayleShanks

OK, I submitted a request to SourceForge. I used the unix name "cpw". Here is the Registration Project Description (they asked for a few more things, and at least 200 chars, this time so I expanded the description; for some reason it ate the linefeeds and added a bunch of backslashes):

Just as in a conventional wiki, the textual content on the wiki site is collaboratively written by the user community, in a Community Programmed Wiki the user community also edits the wiki\\\\\\\'s source code. It is hoped that taking the principals of wiki to their logical extreme in this way will distribute wiki administration workload, produce interesting new wiki features, and perhaps someday even grow into a new collaborative development paradigm. Initially, CPW has been implemented as a fork of the Perl-language UseMod wiki software, although in the future perhaps other implementations will be created. The major feature of our software will be the ability of the user community to collectively edit the wiki source code. We are aware of only one other effort to produce a community programmed wiki (Zygo Blaxwell\\\\\\\'s SoftWiki). The \\\\\\\"features\\\\\\\" offered by CPW that SoftWiki does not are: * CPW is a fork of already-popular wiki software. * CPW is written in Tcl rather than Perl. Currently, CPW is intended for a GNU/Linux environment but will probably run as long as there is Perl, the Safe module, and a few utilities such as \\\\\\\"diff\\\\\\\" and \\\\\\\"patch\\\\\\\". Whether CPW will continue to be relatively portable remains to be seen. CPW is currently in its first beta release. It appears to work, and it takes only minutes for a user to submit a patch to the code from within the wiki itself. Future feature additions will be driven by the developer/user community. We expect to add a unit testing framework, support for common version control tools such as CVS, and probably some features to assist in literate programming. Possibly later on, a web-of-trust model for approval of submitted changes to the code base. We also expect to add a few more technical features such as a list of submitted code changes currently pending approval and some changes in the interface to the Safe module to enable better handling of subroutines. We do not expect major obstacles to appear in the immediate future; most of the features currently on the to-do list are straightforward and depend only on the developers having enough time to implement them.

Minor issue, I think you above say that CPW is written in TCL, but It isn't, to my knowledge. But looks good, and I think they will approve it. Oziac is always available if you want to use it as a test bed.... GRIN -- DavidWhitten

oops, so i did! thanks! -- BayleShanks

The project was approved! I don't have time to set it up yet though. I'll do that in the next couple of days. -- BayleShanks

OK, I uploaded the current spw.tar as release "0.3 alpha". I entered some Trove categories. I turned off pretty much all of the features for now so that people will hopefully enter bugs, etc on the wiki instead of into SourceForge's stuff. As detailed below, I tried to setup CPW on their web site, failed, and settled for just setting up the content of the wiki served by a normal UseMod script (so that there will still be documentation + a wiki available when my computer goes offline).

-- BayleShanks


Notes on how I setup CPW on the sourceforge web site

ssh shell.sourceforge.net 
bshanks@shell.sourceforge.net's password: 

*****************************************************************************
Welcome to the SourceForge.net Project Shell Server
<announcements> ...

bshanks@sc8-pr-shell1:~$ cd /home/groups/c/cp/cpw/
bshanks@sc8-pr-shell1:/home/groups/c/cp/cpw/htdocs$ rm -rf spw/
bshanks@sc8-pr-shell1:/home/groups/c/cp/cpw/htdocs$ rm -rf var/
bshanks@sc8-pr-shell1:/home/groups/c/cp/cpw/htdocs$ wget -O spw.tar 'http://purl.net/net/spw/spw.pl?action=download&path=\/spw\/spw.tar'
--22:49:31--  http://purl.net/net/spw/spw.pl?action=download&path=%5C/spw%5C/spw.tar
           => `spw.tar'
Resolving purl.net... done.
Connecting to purl.net[132.174.1.35]:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://bayle.stanford.edu/cgi-bin/cgiwrap/spw/spw.pl?action=download&path=%5C/spw%5C/spw.tar [following]
--22:49:32--  http://bayle.stanford.edu/cgi-bin/cgiwrap/spw/spw.pl?action=download&path=%5C/spw%5C/spw.tar
           => `spw.tar'
Resolving bayle.stanford.edu... done.
Connecting to bayle.stanford.edu[128.12.191.76]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]

    [              <=>                    ] 3,532,800    195.53K/s             

22:49:50 (195.53 KB/s) - `spw.tar' saved [3532800]

bshanks@sc8-pr-shell1:/home/groups/c/cp/cpw/htdocs$ tar -xof spw.tar
tar: Removing leading `/' from member names
#bshanks@sc8-pr-shell1:/home/groups/c/cp/cpw/htdocs$ cp /dev/tty spw/.htaccess
#Deny from all
#^D
bshanks@sc8-pr-shell1:/home/groups/c/cp/cpw/htdocs$ spw/qsetup.pl 
NOTE: if you are running SPW under chroot, then this script won't work for you and you'll have to do it manually (see comments at the top of this script). I'll assume you knew that, though, and go ahead anyhow.

Note that I gave world-writable permissions to everything under the spw directory. This is insecure if you are on a multi-user system (stop reading now if this is not an issue to you). There is no alternative, however, unless you are root (or somehow have chown power). In that case, re-unpack the .tar file (to reset the permissions), and re-run this script (as root if needed) with the option "-w www-data", where www-data is replaced by the user that CGI runs under, and then the next time I'll do  
    chown -R www-data spw
instead of 
    chmod -R a+rwx spw
(which is what I did this time). 

bshanks@sc8-pr-shell1:/home/groups/c/cp/cpw/htdocs$ mv var/www/* cgi-bin/
bshanks@sc8-pr-shell1:/home/groups/c/cp/cpw$ perl -pi -e 's/\/var\/www/\/cgi-bin/;' cgi-bin/spw.pl

Now if you run spw.pl by loading http://cpw.sourceforge.net/cgi-bin/spw.pl you get the following error message:

Software error:
Can't locate CGI/Util.pm in @INC (@INC contains: /usr/lib/perl5/5.005/i386-linux /usr/lib/perl5/5.005 /usr/local/lib/site_perl/i386-linux /usr/local/lib/site_perl /usr/lib/perl5 .) at /home/groups/c/cp/cpw/cgi-bin/UsemodUnsafeInit.pl line 36.

For help, please send mail to the webmaster (staff@sourceforge.net), giving this error message and the time and date of the error. 

This is similar to what I saw when I had mod_cgi enabled on my own computer. I tried "SetHandler? cgi-script", but it didn't help; maybe SourceForge has normal CGI disabled. So I guess we gotta figure out how to make CPW run with mod_cgi before it'll work there.

In the meantime, I copied a normal UseMod script to http://cpw.sourceforge.net/cgi-bin/usemod_static.pl . Unfortunately, I found out when I did this that CPW config files aren't compatible with UseMod config files, since the line

$DataDir     = "$::SPW_PUBLIC_PATH/wikidb";

screws up DataDir? if SPW_PUBLIC_PATH isn't set. So I manually commented out that line for now.

Anyhow, so for now http://cpw.sourceforge.net/cgi-bin/usemod_static.pl will run a normal UseMod wiki script with the CPW database/web content. I don't think I'll have time to debug C.P.W. with respect to mod_cgi before I move out on Monday.

I'm thinking, give out only the URL http://purl.net/net/cpw. This will go to the frontpage of C.P.W. when my computer is online (or whoever else ends up hosting it), and then I'll set it to go to http://cpw.sourceforge.net/cgi-bin/usemod_static.pl when my computer will be offline.

-- BayleShanks

Okay, I wrote a short scrip called copyCpw.pl which downloads and sets up the latest CPW onto the SourceForge server. Here's how you use it:

ssh shell.sourceforge.net 
bshanks@shell.sourceforge.net's password: 

*****************************************************************************
Welcome to the SourceForge.net Project Shell Server
<announcements> ...

bshanks@sc8-pr-shell1:~$ cd /home/groups/c/cp/cpw/
bshanks@sc8-pr-shell1:/home/groups/c/cp/cpw/htdocs$ ./copyCpw.pl 'http://purl.net/net/spw/spw.pl?action=download&path=\/spw\/spw.tar'

So, before C.P.W. goes offline monday, I will try to remember to do two things:

Did it. Also, I copied usemod_static.pl into /home/groups/c/cp/cpw/cgi-bin/spw.pl and /home/groups/c/cp/cpw/cgi-bin/cpw.pl.

So, the stable way to access the CPW homepage is still http://purl.net/net/cpw. To access a page inside, do something like http://purl.net/net/cpw/SourceForge. http://purl.net/net/spw and http://purl.net/net/spw/SourceForge work too.