darcsden 1.0 release branch
root / ANNOUNCE.md
ANN: darcsden 1.0
I'm pleased to announce the release of darcsden 1.0!
darcsden is a web application for browsing and managing darcs repositories (and issue trackers, and their owners), and an SSH server which lets users push changes to the app without needing a full system login. It can be used for browsing your local repositories, for publishing your repos on the web, or for running a public repo hosting site. It is available under the BSD license.
darcsden was created by Alex Suraci. The last release was 0.5, in 2010. I've been tinkering with it and using it to publish repos on my site for a while. In recent months, with help from the Darcs community I made a serious attempt to make it more robust and to run a reliable instance at http://hub.darcs.net , with promising results. Alex and I feel this is a good time to release an official darcsden 1.0, containing hub's reliability/functionality updates (but not the UI style tweaks).
Home: http://hackage.haskell.org/package/darcsden
Release notes:
Changes in this release fall into several themes:
Deployability/Hackability
dependencies have been updated; darcsden now uses the latest GHC, darcs and snap
cabal build flags have been added:
darcs28: build with released darcs 2.8.2+ instead of latest darcs-screened ? default: true
ssh, closing, highlighting: build the ssh server, issue-closing script, and highlighting features ? default: true (disable these for easier building on windows)
settings allowing easier custom deployment are available in src/DarcsDen/Settings.hs: base hostname, path and URL, home link, front page content, root directory, log files, maximum request time, maximum displayable patch/file size, database hosts/ports, etc.
the db setup required for issue trackers has been added
the register form has a security question to reduce junk signups
issue trackers can be enabled/disabled per-repo
a robots.txt file has been added (default: allow all bots)
non-content pages now have NOINDEX meta tag to discourage search indexing
user repos and log files have moved to subdirectories for easier management
a makefile has been added for developer convenience
Reliability
error messages are more user-friendly
intermittent browsing errors and eventual stylesheet loss due to non-thread-safe working directory in libdarcs have been fixed
viewing a patch or file with binary data no longer gives an error
patch content larger than 200K is elided, avoiding some timeouts
viewing a patch shows the page right away and fetches the patch data asynchronously, with a more friendly message if it times out
viewing a non-existent patch id shows a 404 instead of an exception
source code highlighting is faster (using highlighting-kate); viewing a complex file (like minified jquery.js) no longer times out
the error-prone repo bootstrap feature has been dropped
patch author names are now replaced with user links reliably (when the email address matches)
repo links now work when the current url ends in /
. (period) is supported in repo names
merge now redirects properly when it completes
the login button in the issue tracker now works
private repos are now listed for their owners
private repos are no longer darcs gettable by non-owners
patch author names now link to local users and hide email addresses reliably
input fields now accept at most 1000 characters
ssh access now supports DSA public keys
Usability
the site favicon now works in Chrome
the register form now disables browser autofill and is readable in Chrome
navigation buttons are clearer and more context-sensitive
the front page remains accessible after login
users are listed on the front page
repos are listed alphabetically
page headings are more consistent when browsing files
files view displays directory names in bold
when viewing file content, long lines now use all space to window edge
all markdown files are now rendered as markdown, not just README
the patches view has been renamed branches, and shows all related repos including upstream
merging patches can now also be done by repo members
pagination controls also appear at the top and have a stable layout for easy clicking
patch view lists files alphabetically
patch view now also displays added/removed file content
all issues, closed issues views have been added
code blocks on issue pages no longer overflow their background
list styles have been improved in markdown
button transition, border radius and box shadow styles have been updated for modern browsers
Credits:
Alex Suraci created darcsden. Simon Michael led this release, with help from Ganesh Sittampalam, Guillaume Hoffmann, Niklas Haas, Daniel Patterson, Owen Stephens and Scott Lawrence.
darcsden depends on Darcs, Snap, GHC, and the rest of the Haskell ecosystem.
Contributing:
I think darcsden fills a strategic niche in the Darcs ecosystem and deserves wider use and more active development. It has a small, clean codebase and is fun to hack on, not least because (if you contribute to hub's darcsden branch) useful changes will quickly be deployed at hub.darcs.net, providing a tight dogfooding/feedback loop. Here's how to contribute a patch there:
- register at hub.darcs.net, add your ssh key in settings
- fork http://hub.darcs.net/simon/darcsden
- darcs get http://hub.darcs.net/yourname/darcsden
- (edit, record)
- darcs push yourname@hub.darcs.net:darcsden
- your change appears at http://hub.darcs.net/simon/darcsden/patches ; ping me by IRC or email to merge it
Best,
-Simon and the Darcs team