Gour wrote:
"Max" == Max Battcher <[email protected]> writes:

Max> (As I get closer to getting my own hosting platform together I've
Max> been debating the viability of opening it up to paid private
Max> hosting.
Any news about Darcsforge?

I've got a bunch of good patches I'm sitting on in a local repository that I should probably publish sooner rather than later... I've been trying to get it to a deployable point where Repositories and Files mostly work, and possibly Tags.

Once I get it next deployed I'm debating asking around for interest in paid, private hosting with it to help me continue to work on it. My current thoughts are something like $15-$50 per month per project, with "unlimited" (mostly related) repositories per project (including "user" repositories) and big/healthy quota caps between levels (possibly with micro-payments over the quotas). Important features that I see being Day 1 features: SSL support (you buy the cert, we host it; you can have all visits of your private project site redirect to the SSL-encrypted site) and CNAME support (project.yourcompany.com rather than or in addition to yourcompanyproject.whatevermyhostingsitegetscalled.com).

I'm hopeful that once things get going the prices would probably drop or the quotas will continually rise. I certainly feel that I would need some time before I've figured out the economy of scale of the thing; I certainly don't have major site hosting experience and am not entirely thrilled to run such a beast by myself, but hopefully it will mostly run itself or I can spin it off/sell it down the road if it is a successful venture.

Some details on what I've been working on in what spare time I can spend on it for those that might be interested:

The big hangup is that I've been slow to finish my File state caching application. I'm basing it on the modern darcs pristine.hashed cache (which means that hashed/darcs-2 repositories will be required for file state information to be useful). Basically the idea is to (hopefully) quickly "snapshot" a pristine directory, generating interesting HTML cache files from it (that is, the associated file as highlighted source code, highlighted darcs annotate view, and if the file is of a useful markup format (such as reStructuredText) a transformed/marked-up version). The benefit of mirroring the pristine hashes in the file caches should be that just as darcs shares pristine files across multiple repositories so should these caches be usefully shared across a Darcsforge project.

Sticky issues I'm dealing with right now are how long to archive caches and how to usefully present to archives to a web visitor; I'm particularly not fond of the idea of directly using the pristine hashes in URLs. I'm also wondering about the (probably rare) likelihood of intra-project hash conflicts and worse (and probably less rare) likelihood of inter-project hash conflicts. Particularly because there doesn't seem an easy way to distinguish hash conflicts other than possibly differences in file size (you could try to use names, but darcs supports file moves and the pristine files themselves do not anymore encode filenames). Related to that I've been debating how best to define per-file overrides, because there is a many pristine objects to one "file" relationship it would be somewhat annoying to have to make changes for each and every pristine object cached for a file, but to some extent it will be the pristine objects that are "real" and the file's that a virtual collections of relations to pristine objects. (The big, probably most common example is the need to manually set file's mime-type/extension for correct/best source code highlighting.)

More interesting work: I've spent some time documenting what I need to support darcs send to an HTTP POST (and consequently, a decent portion of what is needed for darcs send to an email address), and I'm looking forward to writing some pretty cool patch bundle handling code. I've got some cool ideas for it, and I think its a pretty important key piece of my platform as I'm expecting darcs send to be the primary (and probably only) means to apply new patches to Darcsforge-based repositories. (I think that a simple HTTP POST address and/or email address crawler is a lot easier to maintain with regards to security and scalability than SSH jails and to be honest I'm not interested in setting up SSH jails.) It's also something that I think is hugely important as a key difference in the darcs "way of life" with comparison to other DVCSes. Look at the way darcs itself is developed with nearly every patch expected to be sent with darcs send to the appropriate mailing address and bounced back to the mailing list if it doesn't meet tests or is from an unauthenticated user. That's the basic workflow that I'm interested in emulating: darcs send a patch bundle to your Darcsforge-tracked repository; if you don't sign it or it fails tests it gets "published" to the bundle tracker on the website so that comments can be made on it or a replacement/follow-up can be sent with an appropriate --in-reply-to. It is the exact same tools and workflow for new developers on your project; no public versus private repository paths just public HTTP-only repositories and a darcs send POST address (and possibly/probably email address as well) for all.

Wow, that "brief" status report turned out longer than I thought... Hopefully there might be something of interest in my ruminations above.

--
--Max Battcher--
http://worldmaker.net
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to