[Haskell-cafe] ANN: darcsden-1.0
Simon Michael
simon at joyful.com
Sat Sep 15 16:36:30 CEST 2012
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 at 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, Alex and the Darcs team
More information about the Haskell-Cafe
mailing list