# All changes by release ## darcsden 1.1 (2013/07/20) * finalise docs some more * bump hsp dependency to the ghc 7.6 compatible version * speed up user list on front page * add missing web app files to cabal file * consistent heading * add missing web app files to cabal file * update contributing/credits in the readme * disable repo packing with darcs 2.8 to fix a build problem * depend on darcs 2.8.4+ or darcs 2.9+ * add missing modules to cabal file * bump version to 1.1 * finalise changelog * finalise announcement * add "built" in footer * auto2 target, workaround for running dev builds as right user * update 1.1 announcement * changelog update * small clarifications to register screen * note the -E required to preserve env vars with sudo * Remove charset parameter from mime if present * Add test for edit/add file * Put the codemirror object into window * Add ability to create files * Resolve ambiguty of edit button, by * Add instructions for running tests * Add tests for Github OAuth, and * Give more appropriate test failure messages * Add test for google sync * Add test for google login * Add test for creating account using google * When resetting state, remove userDir only if it exists * Reset state before running create user test * Add function to reset redis and couchdb states * Move couchdb datbase creation from WebServer to State Util * Basic test for darcsden, * Cabal entry for darcsden-test * Configuration instructions for OAuth, Forgot Password, and File Edit * Add xdgMimePath to Settings, * If xdg-mime fails somehow, default mime to text/plain * Remove carriage returns before saving the file in file edit * Edit link when browsing a file will direct to edit file * Add repoBase', which allows custom pagenav * Create a page for edit file feature * Import codemirror 3.14 for edit file feature * Add the javascript to load codemirror editor into the edit file page * Add css rules for proper alignment of the editor form * Create handlers for edit file * markdown line break, test through the web editing * depend on newer ssh which builds with latest libs * add CHANGES.md showing all changes by release * 1.1 announcement WIP * update author spellings to improve darcs show authors * tools: a place to configure OAuth env vars for dev build * display "DEV" not "DEBUG" for developer builds * set version back for a bit, 1.1 release delayed * Use updated session variables if redirecting to register * Give option to build packs in repository settings page, and * Add a handler for creating packs to a repository * Initialize rBuiltPacks to Nothing when creating a repository * Add a field to the Repository model indicating the last time packs was built * Show a current password field in user settings only if the user has a password * Insist on old password when changing passwords only if the account has a password * Change OAuth access functions to use http-conduit * Use the new OAuth paths in user handlers * Change OAuth paths to use http-conduit * Switch to http-conduit instead of http-streams * Remove ghc option threaded from executable darcsden * Resolve conflict between branches * Add buttons for OAuth functions to the pages * Add handlers for OAuth registration, login, and link * Add a variable for oauth reg to Session * Add OAuth utility functions, which: * Update darcs import to match the latest API of screened * Start OpenSSL when starting the webserver * Add names of the environment variables storing OAuth app authentication to * Add dependencies HSOpenSSL, network, http-streams for OAuth feature * Create HSPages for forgot password feature, and * Add handlers for Forgot password feature * Add mime-mail to darcsden's dependency list for sending mails * Add utility functions for forgot password: * Add settings sendEmail, and sendName. You should be able to * return the updated session with setUser * Add OAuth identities to User feild, and add utility functions * Change user handlers to the new password field * Change the password fields of the user, so that they are optional * Load repository page after logging in * bump version and tested-with * tools: fix http port option * fix blaze-html warning, clarify dependency * fix WebServer warning * tools: use current ghc for dev builds, add ghci rule, don't use dev darcs/ssh by default * support current blaze-* * support/require pandoc 1.10+ * document a couple of arguments to patches * stop Snap being verbose when running as a service * specify imports * conditionalise Windows service * document darcsden on Windows * document new options * renamed Win32-services-utils package * run as service * more debug utils * recognise OWNER/repo path in some case or other * add tested-with to cabal file * more updates for latest darcs * log accesses to ./access.log not console with a dev build * require newer ssh (#46) * we don't support pandoc 1.10 yet * tools: build all of darcsden, darcs and ssh in dev builds, for easier debugging * update for latest darcs * Rename repositories when forking, if neccessary * Support for Vagrant * getUsersWithRepos placeholder * old: disable hard-coded assignment & issue type fields, don't want to encourage enhancement issues right now * support/require blaze 0.5 * check security question answer case-insensitively * drop some debug helpers now in the lib * 29: disconnect after ssh/scp to a bad path * 28: when forking, handle an existing private repo with the same name properly * 28: make bootstrapRepository less likely to put fs and db out of sync * make most headings bold again, I guess it is better * plain text readmes (and literal blocks in change notes) no longer have the gray bg & border * hide branches button when there are no forks * add bootstrap responsive design (width-adapting) styles, commented * front page: widen users column to reduce overlap in narrow windows * reduce source code font size a notch * show a border below file list; drop unnecessary readme heading * reduce heading sizes back towards normal browser defaults * set body font-size to 100% not 16px to respect browser settings better (per donri) * more robust layout of front page content and markdown lists generally * roll back some accidentally committed hunks * branches: use the "name's repo" format like all repos * changes: prevent line breaks in author name too * consistent change layout on changes and branches pages * drop unnecessary changes page header * use consistent style for next/prev buttons * all repos: whitespace fix * all repos: link "forks" to the parent repo's branches page as a convenience * all repos: show page controls at top also; increase page size from 50 to 500 * don't show page controls if there is only one page * don't buttonize forks on branches page * another page layout: content at left, repo buttons at right, site buttons at top right (#16) * don't bother linking reporter name in issue list * use tables for more robust issue list layout with long issue names * allow prettier monospace font in markdown areas * let wide source code overflow to right as before * fix line numbers wrapping, enlarge & lighten source code * fix issue form bg color * don't gray out repo description * make issue page revise form layout a little more robust * lighten issues list * lighten branches list * fix branches page title * fluid page layout using bootstrap columns (#16) * lighten form styles * lighten headings * demote some more h1s I missed * begin using bootstrap's grid for page layout * adjust button icon alignment * make hyperlinks (other than main navigation links) blue * bump footer font size * where can I put this.. expose global layout more * drop the monospace font ! * consistent non-dotted borders * drop excess heading line height * use bootstrap's default font family & size * restore patch page subheader * demote patch section headings and branch names to h3 * more compact non-heading style for changes, issues, and patch file names * change secondary page headings to h2 * remove dead code * keep bootstrap's pagination styles out of our pagination controls, minor cleanups * enable bootstrap css/js along with the rest * add bootstrap css/js to project * bump version description in footer * switch to 8901 for default dev instance port * include highlight.css only when built with highlighter * move javascripts back to the top, order matters * drop media=screen for consistency, till there's a clear need * move js scripts to end of page * bump jquery to latest release ## darcsden 1.0-hub (2012/09/19) * sync with latest docs/cabal file from 1.0 * port the alternate highlightingkate/highlighter flags from 1.0 * switch highlighting theme from kate to pygments * remove disabled font size styles * hcar participants update * move repos below users on the front page for now as suggested * Give better errors on SSH command misuse * Give better error on missing SSH key * bring HCAR up to date * bring draft announcement up to date * fix numbered list style in markdown * doMarkdown variant that doesn't escape html * clarify fixEscapes * remove unnecessary import from Base * indent list items in markdown * add moz and opera transition styles as for webkit * remove obsolete browser prefixes on border-radius, box-shadow styles * disable 36 of 40 font size adjustments, simplifying styling * remove unused .error class * unnecessary inline style * settings cleanup The darcsden 1.0 and 1.0.1 releases diverged from this branch, here are their approximate change logs: > ## darcsden 1.0.1 (2012/09/20) > > * bump version > * readme/release note links for hackage > * point to 1.0 source repo > * restore missing highlightingkate/highlighter flags > * update HCAR > > ## darcsden 1.0 (2012/09/15) > > * final 1.0 docs > * latest draft of cabal file from hub branch > * latest draft of release docs from hub branch > * fix numbered list style in markdown > * replace "highlighting" flag with "highlightingkate" (default) and "highlighter", to select one or other > * indent list items in markdown > * add moz and opera transition styles as for webkit > * remove obsolete browser prefixes on border-radius, box-shadow styles > * fix Control.Monad.Trans warning > * available patches -> branches button > * shorten explore button name > * revert many UI style changes from darcsden-hub branch, restoring "square" style ## darcsden-hub/-1.0 fork * create a repo -> new repo button * render markdown files to html instead of highlighting them * extract isMarkdown * don't show non-viewable private branches in branches view * try a little whitespace separating repo "view" and "action" buttons * try "branches" instead of "available patches" button * list all related repos on the patches page, even with nothing to merge * make Fork showable for debugging * small refactor in repoPatches * getForkChanges formatting * allow repo members to merge patches * add owst to credits * simplify flags description * clarify draft status of release announcement * add build flags to makefile * fix compilation warnings * Abstract out forked-from string generation. Now use it on users' repo listings * Fix build against current screeened darcslib * Fix build error due to missing definition of frontPageContent * cabal file updates * readme, announce updates * move db hosts/ports to Settings.hs * drop --readme option * tweak default settings * update release notes * re-enable new issue form's assignment and type fields in default build * draft 1.0 announcement, in progress * add .authorspellings to clean up darcs show authors * streamline front page layout, compress user/repo lists a little * code cleanup * tweak patch timeout error msg * show an error message on the patch page if fetching the patch times out * show the patch page right away, and the patch data when it's ready * fix compilation issues * potential fix for #12 - private repos being darcs gettable * set up the db view for browsing issues by tag * don't bother logging the full request in error log even in DEBUG mode * fix compilation warnings * drop unnecessary curly braces in cabal file * fix cabal build failure when ssh is enabled * update error message humanisations * add compile-time flag to control auto-closing of issues * add a flag to enable the ssh server * add flag to enable highlighting * use DARCS28 flag for subsidiary executables too * darcs 2.8 build fixes * fix favicon * fix clipped file/folder icons in files list * fix reversed file order in patch summary * 10: fix patch view hunk reverse-order regression * 7: give a proper 404 when viewing a nonexistent patch id * disable h-k's blue .fu style that is mysterious in haskell source * increase readme font size * let long source lines overflow right if they want * reorganise styles a bit * switch to "kate" highlighting theme * increase source code font size * /delay/SECS route for testing timeouts, prints a message after the specified delay up to 300s * more user-friendly error messages * enable line anchors in highlighted source * "patches from others" -> "available patches", fix button alignment * takeUpTo cleanups * elide large patches; reduce max request time to 10s and max file/patch display size to 200K * import both highlighting libs, make it easy to switch between them for testing * sync with latest darcs-screened * Darcs.Util renamed to Darcs.Util in latest darcs (respects DARCS28) * move log files to a subdirectory * keep user files in a subdirectory * fix a warning * Fix missing whitespace on replace summary * Remove extra whitespace * fix markdown pre/code block colours, second attempt * fix h-k styles interfering with markdown code blocks * keep line numbers aligned with highlighted lines * add the remaining h-k styles, use tango * add some more highlighting-kate styles, use "pygments" for now * use same source code font size in changes * simplify highlighting error handling, let it render binary since it seems able * bump source code font size a bit * mention utf8-string dependency * begin switch from highlighter to highlighting-kate * Fix background overflow on code blocks * Fix merging upstream patches * Fix indenting on withParent * Make /patches link active on forked repos * Show upstream changes on /patches * latest developer makefile * make request timeout a setting * 6: show logged-in users their private repos * refactor error pages, use same layout for 404, intentional 500, and exceptions * move exception handler's error page to WebUtils with the rest * move db schemas to their own module * give a prettier error page (and log message) when exceptions happen. First cut. * adjust darcs-screened api options following chat with gh * build with latest darcs-screened, if the on-by-default "darcs28" cabal flag is turned off * fix issue tracker flag warning in SSHServer * hide repo settings issue tracker checkbox when when issue trackers are disabled globally * alphabetise users * make page heading more consistent when browsing files * explore -> all repos button * refactor issues button * reword the patches button and gray it out when there are no forks * add an "all issues" view, keep issue view buttons visible * rounded button corners * tweak my repos, settings button icons * set NOINDEX meta tag on patch and misc. form pages to discourage search indexing * \#3: show a message instead of an error when browsing a file that can't be highlighted (eg images) * switch to underlining links by default * clarify renderHtml's source, import debug helpers * switch order of private and issue tracker checkboxes in repo settings * underlink links in issues * switch fork and issues buttons, keeping views and actions grouped * make the issue comment form consistent * fix clipping of issue comment headings * remove hard-coded issue assignment, type fields for now * let issue trackers be enabled/disabled per-repo * issues need the by_repository_and_number view now, update the db designs accordingly * when issues trackers are disabled disable url handlers as well * add a "my repos" button when logged in * drop cabal build flags since you have to edit Settings in any case * add DEBUG to version string in footer for debug builds * clearer elided message when viewing a patch with many hunks * Fix DSA public key identifier. * partial workaround for errors viewing too-large patches * README updates * footer layout; underline links there and in a few other places * move type signatures to the end of settings, and log everything to console in debug mode * add a footer with version and contact info, and debug build options, to settings * more messing around with changes font sizes * fix excessive borders in lists in patch notes, keep patch list font size consistent * increase maxlength of input fields to 1000 * serve a /robots.txt, allowing all bots by default * build unthreaded by default, to avoid intermittent errors and eventual stylesheet loss due to non-threadsafe cwd setting by libdarcs * serve the public directory with an absolute path to be robust against thread cwd issues * move log file paths to Settings * don't hide fork/patches buttons in single-user builds * fix display of non-user patch authors with no real name part, showing email address up to @ * replace patch author email addresses with usernames more reliably, eg in changes * make user list bold, again * keep log in/out buttons on one line * underline hyperlinks in the front page intro text * de-bold website links in repo list * show create repo button only on the user's own repo list * smoother change borders * show repo website link with consistent style * underlined hyperlinks, begone * embolden user list, directories in files view * lighten explore page styles * add a files button to repo sidebar * miscellaneous old and new style tweaks.. site font, whitespace, emphasize repo & patch names * improve pagination controls layout, show at top as well * less whitespace and decoration for changes and markdown content * disable the bootstrap feature, it is too slow/fragile for now * make user page repo links absolute so they work when url has a trailing slash * show create repo button only when logged in * move explore repos button to the front page only * move create repo link to a sidebar button * don't hide the front page from logged-in users * fix setting TCP port on the command-line * three cabal build flags for personal use (multiuser, deletefiles, issuetrackers) * list users on front page * make breadcrumbs' site link and front page content configurable * make hostname, base path and base url configurable in Settings.hs * clean up cabal file a little, forget about ghc 6.12 * fix remaining warnings * fix redundant imports * fix more Snap.Types warnings * fix a snap types warning * make text fields bigger * fix redirect after merging * extract global Settings.hs * centralise userRoot setting and change it to /home/darcsden * provide debug helpers from DarcsDen.Util * allow latest snap (0.9) * require darcs > 2.8.1 (with prim v1 job patch) * bump version to "0.6 alpha" * support latest GHC, darcs, and snap, aggregating previous work * discourage spam registrations with a security question similar to darcs wiki * disable browser autofill on register form fields * fix emailFrom with blank author info ## darcsden 0.5 (2012/04/14) * version 0.5 * ignore LC_* env var set requests * add initial high-level darcslib wrapper * add favicon png * constrain snap version number * cabal file version updates * updates for latest darcs/blaze-html/snap * PostHook.hs takes into account the case where the repository is private * a less-scary error message when $DARCS_PATCHES_XML isn't set * use `get` for forking and bootstrapping rather than `init` and `pull` * added getOneOf for getting alternative attributes (i.e. if one was renamed); fixes changes made in an issue comment that changed something to an empty value * allow obliterate over ssh * allow scp -f without -- * footer cleanups; added a donate button * sort in alphabetical order at /explore * corrected user name displayed in issue body * oi. really corrected commenting. note to self: don't read other things while I'm typing. * corrected commenting * bump up font size for inline code in markdown * correct double-escaping * show issue number in page title * use issue number for its URL. closes #9. * viewing issues by tag; use ^ for "and" and ~ for "or". closes #1. * keep track of "from" values in comment changes * allow revising an issue's description. closes #3. * minor change, again to test post-hooks (use strip in authorFrom). closes #5 (not really). * corrected post-hook * tiny meaningless change so I can test the closing mechanism. closes #5. * corrected getIssueByNumber * add comments for closing issues. closes #5. * allow a few other phrases for post-hook * added initial post-hook for closing issues * list issues with newest up top * corrected double shadow in blob view * woops; save issue numbers * a few defaults for some state object fields * update the "updated" field when updating an issue * issue numbers + some cleanups * use getAttr for other state objects, added getAttrOr/getTime/getID/getRev * list issues in reverse-chronological order * corrected comment author name * slight tweak for add-tag form * spruced up the new-issue form, implemented adding arbitrary tags * corrected issue closing, added reopening * correct issue comment gravatar sizes * sort issues and their comments by their updated date * properly escape text before markdown'ing it * any logged-in user can update issues * css fixes * --install now sets up issues and comments databases * initial work on issue commenting/updating * added getAttr helper for reading a value from a JSON object * normalize line endings before using pandoc for markdown * rMember record field is now a list of usernames, not user IDs (any repositories with members must be updated to reflect this) * don't set uid/gid/ just start it as the user * password changing * ensure we're only bootstrapping http/https urls, corrected `Or' validation, and added isEmpty validator * init ssh command with a given repository description * cleanups * shrunk the favicon a bit * added favicon * correct $PATH for darcsden god config * corrected SSH authorization, and log login attempts * added god file * hspygments -> highlighter, cleaned up DarcsDen.Handler.Repository.Util * issues system updates * use hspygments and text for highlighting and bytestring <-> string conversion, respectively * progress on the issues system, plus some cleanups * orphan a repository's forks when deleting it * /forks -> /patches, removed console.logs, plus other fixes to make /patches usable * improved checkbox ticking in forks view * corrected repo links being shadowed by the canvas * updated boringfile * update to darcs 2.5.1+, mtl, and snap 0.3+, correcting forks view along the way (thanks Heffalump!) * cleaned up main.js * cleaned up findAllDeps/etc.; removed HiddenFrom * removed QuickCheck dependency ## darcsden 0.4 (2010/12/20) * updated synopsis * updated description * added Setup.hs, version bumped to 0.4, bumped cabal-version * corrected non-markdown READMES getting the white-on-black treatment * don't check DBs for --readme or --install, and just generate a README from --readme * added a note to the README about --readme * moved INSTALL file to a --readme flag * added --install, which sets up CouchDB for you * tweaked location for keypair * UI tweaks * use new rsaKeyPairFromFile function in ssh 0.2.5 rather than convoluted .keypair format * corrected login button background CSS * /browse -> /explore, added button for it, and changed the main links to the button-style * corrected repository grouping at /browse * corrected changes list when there's a `darcs replace` log * highlight patch hunks in parallel * big ol' code style update * reorganization & cabal file cleanups * need ssh 0.2.4+ * removed unused variable * corrected highlighting of source code containing utf8 * atomo pygments lexer updates * corrected pygments highlighter; kills runaway processes * added Atomo lexer for pygments * corrected fallback highlighting * use Pygments for highlighting * slight forks list correction * /browse corrections; show forks of forks on their own for now * teeny tiny tweak * bumped ssh dependency to 0.2.2, which uses transformers * moved repository control links over to the left * reorganized breadcrumb for file browsing * group repository forks together at /browse * split the darcsden ssh server into another executable, plus misc. cleanups * improved scp security * use SHA512 for passwords * specify /srv/darcs for http logs * don't allow any tomfoolery with the scp path * corrected response for unknown requests, bumped ssh dependency number * ignore LANG env requests * handle scp requests * allow debug commands * removed Crypto and uuid dependency * updated darcs dependency version * split SSH server into its own package: http://darcsden.com/alex/ssh * bumped up snap versions * output invalid requests * ensure that redis/couchdb are usable at startup * use 127.0.0.1 rather than localhost * corrected notifications added during same response that shows the page * Corrected empty repository logic and fixed whitespace. * Corrected Python import in INSTALL file. * More INSTALL file stuff. * Updated INSTALL file. * Only show the "remove members" field if there are members to remove. * Show 404 pages rather than warnings for invalid repository views. * Show different messages with the proper push URLs when vieweing an empty repository. * Fixed SSH stuff using getRepository rather than getOwnerRepository. * Fixed repository viewing logic. * Members of private repositories can now access the repository. * Ability to edit repository private status. * Tweaked icon positioning for private repositories in user repo list. * Added repository public/private classes to user repository listings. * Don't include private repositories in getRepositories. * Fixed .private-repo class showing edit icon, tweaked icon positioning. * Save rIsPrivate as is_private in JSON Repository instance. * Private repositories. * Take HTTP/SSH port numbers as arguments. * Fixed getRepositories. * Cleanups. * Removed bin directory. * Specify cookie path as /; fixes weird logged in/logged out state possibly changing while browsing around. * Cleaned up DarcsDen's SSH request handling and verification; added init command for quick repository creation. * Channel cleanups and helper functions. * Use Redis for storing sessions. * Removed ssOutSeq (no longer used), cleaned up a few minor warnings. * Preemptively check if the handle is closed to prevent "end of file" messages. * Might as well bump up the version number (twice; once for the Snap changeover, another for the new SSH server). * Swapped a few lingering putStrLns that were used for debugging. * Woops, added DarcsDen.Debug module. * Converted print debugging statements to calls to a new DarcsDen.Debug.dump function. * Tweaked saneRepo to catch more odd cases. * Added KeyPair to SessionConfig for the server's private/public key. * Removed redundant rprivN; it's always in the pubkey anyway. * Removed CTR TODOs. * Initial integration of the new SSH server into DarcsDen, removed old Python server. * Tweaked PublicKey authentication to just contain a username and PublicKey. * Generalized read functions into NetReader, added blobToKey, plus various cleanups. * Added ssh-dss (DSA) public/private key support. * Send random bytes as padding. * Handle other AES key sizes. * Proper channel handling and reorganization to accomodate it. * Made SSH more flexible; authentication and channel requests are now handled by a configuration. * Keep track of window size and send WINDOW_ADJUST when we need to so that gigantic data transfers work. * Improved process I/O redirecting, fixed sending EOF in response to EOF, plus misc. cleanups. * Print a message when we lose the connection. * Ensure packets are sent sequentially by having a single "sender" thread that reads from a channel. Also added initial exec channel request support. * Naming convention tweaks for Packet monad and packet handlers. * Fixed `unmpint` and `toBlocks` overflow. * A much-needed cleanup. * Cryptography overhaul; proper CBC stream decryption/encryption, and use Crypto package instead of AES. * Initial SSH server work; transport layer (RFC 4253) functional. * Added CouchDB to required packages list for darcs-ssh.py. * Removed "code" class wrapping markdown patch notes. * Markdown patch notes, removed patch notes from atom feed summaries. * CSS tweaks for repository READMEs. * Fixed settings page. * Added access/error logging. * Fixed user viewing, this time keeping repository actions working. * Rolled back previous record since it breaks repo viewing instead. * Fixed / and /(user) conflicting. * Updated SSH server CouchDB URL. * fixed CSS class for preference changes in summary * No more warnings. * Serve static files without grabbing the user's session. * Fixed repository browsing, raw file viewing, and darcs get over HTTP. * Minor fixes for Snap, bumped required Snap version to 0.1.3, and changed the CouchDB port to 5984. * Initial Snap conversion work. * Fixed duplicates in patch summaries. * Added initial structure for private repositories. Not enabled or complete yet. * Tweaked ID for code lines; #L123 looks nicer than #LC123 in urls. * Fixed doubled title at user index. * Fixed "again" text on registration form. * Fixed viewing un-parseable source, and added clickable line numbers. * Fixed source code leaving `highlight' unescaped if the parse fails. * Refactored getReadme and added an isTooLarge function for checking blob source. * Added a filesize check to blob viewing, and added raw file viewing. * Fixed darcsden :: darcsden as title for /. * Fixed a few warnings. * Fixed some spots where raw authors would be displayed for patches, and fixed repositories with no changes showing up at /forks. * Small fixes in the ssh server. * Changed ssh server to run on a higher port number. * Use python 2.x syntax for exception catching. * More SSH server fixes and tweaks. * Updated the SSH server a bit. * Fixed full name in website field on settings page. * More readJSON cleanups and tweaks. * Fixed merge checkbox names, changed to merge:(rid):(pid). * Added initial installation instructions. * Fixed main updated tag in changes atom feed, and changed PatchLogs to contain UTCTimes instead of Strings for pDate. * Added member stuff back in; stored per repository. Also cleaned up Repository.readJSON. * Added getUserByID. * Grab the latest session when notifying the user of something so they don't just replace each other if more than one is displayed on a page. * Redirect to / after deleting a repository, rather than the user's profile. * Don't grab the session when we don't need to (e.g. /public). Also removed unneeded arguments from notFound and errorPage. * Moved the user-grabbing parts of toLog into a separate function that goes over the log and checks users only if they haven't already been checked. (30 CouchDB requests per page in the changelog -> number of different users in the log) * Fixed getRepositoryByID and repository forking. * Added old-time to cabal file (boo!), added a startup message so I don't sit there like a fool waiting for it to say something before I realize it doesn't, plus some more minor cleanups. * Re-added bootstrapping. * Grab forked repos much more effectively and less-crashingly. Also fixed some more whitespace quirks. * Cleaned up handler function. * Fixed serveDirectory for /public. * Lots of page serving tweaks. * Re-added serveDirectory (without MIME stuff) for serving public/ and _darcs directories, and cleaned up Main.hs. * Fixed double escaping and removed old commented-out code. * Bumped the version number. * Initial code for the rest of the repo pages, plus some helper functions for user/repo URLs. * Cleaned up and cabalized. * Lots o' cleanups. * Removed some more old unix stuff. * Removed setRepoPermissions. * Added submit button to init page. * Initial repo init and browse pages. * Fixed stale session being passed to pages. * Fixed settings form and tweaked register form for internal consistency. * Fixed User.showJSON * Only update the session if it has notifications to wipe. * Read the inputs and cookies once, and then store them in an Env. Fixes blocking on a second attempted input read. * Expanded that debug info. * Added base page wrapper around user pages. * Fixed the nav showing the wrong stuff for logged in/logged out. * Initial move to HSP and WAI, plus tons of other vaguely related stuff. * Removed defunct Darcsden.State module. * Initial conversion to CouchDB. * Added initial SSH server. * Added some styling for code in READMEs. * Show token replaces on patch views. * show long comment on changes view * show long comment on patch view * Dependency indicators at the forks listing. * Removed some debugging code. * Added dependency information to id/classes in the fork log. * Fixed up fork merging. * Notices now return IO () instead of a new Session; the reason it was like that before no longer applies. * Removed `merge' from the global scope in DarcsDen.State.User; it's only used in hashPassword. * DarcsDen.Validate.when -> DarcsDen.Validate.iff * Added forks listing page, which lets repo admins bring in patches from forked repos. * Fixed forkRepository setting the wrong information, and fixed the console help dialogue being wrong with "exit". * refactor: gather instance declarations * preliminary devmode setting, change this to run without creating users/groups * refactor: gather settings in one place * Show repo members with 'get group'. * user -> owner * Shell cleanups. * Fixed a typo in the shell help dialogue. * Fixed up admin shell stuff, and added unset command. * Added user and repository editing to the admin shell. * Reorganized some State stuff, and added an initial admin shell. * Added MonadIO instance for Dirty. * Forked repositories now keep a reference to the original. Also updated the User and Repository records to remove rUsers and uPubkeys, which are not used. * Added pubkeys to the registration form, plus slight cleanups. * Fixed checking if there are any repositories to show; show a message when viewing a user with no repositories. * Ignore case when sorting repositories. * HLint changes. * Sort repositories at /browse by their name rather than their owner. * Added public repository browsing. * Kill the web server thread on shutdown. Helpful for debugging in GHCi. * Fixed getting members of a repository. * Fixed removeMember. * Cleaned up Dirty usage and running shell commands. * Compile with -threaded to avoid blocking system calls. * New repositories can now be bootstrapped from a URL. * Added a improved system of working with shell commands and error handling. * Fixed others not being able to read public directories. * Added a repository fixer. * Change repository permissions so that others can read them. * Removed DarcsDen.Data; no longer needed. * workaround for "no instance ToSElem ClockTime" with ghc 6.10 * feeds: various fixes to make the changes feed more valid * feeds: link to changes feed from repo and changes pages * add "extrahead" field to the base template * feeds: fix repo name * indentation * provide a .../changes/atom feed * restore the Makefile with tag/clean/ci rules for cleaning/tagging/auto-recompiling * fix "no instance ToSElem String" with 6.10 * Removed the silly shell scripting in removeMember; use System.Posix again. * Slight cleanups. * Fixed empty file listings being shown. * Ensure that darcsden is run as root. * Replaced as many System.Cmd.system calls as possible with System.Posix usage. * add missing ghc option in Data.hs * adapt ghc-options to 6.10 also * Added ghc-options to cabal file and removed Makefile. * Fixed patch summaries. * Initial cabalization. * Switched to HStringTemplate. * Use Data.List.Split in State.Repository. * Heeded HLint. * Hash group names. * Oodles of icons. * When forking and the target repository name is already in use by the user, ask for a different one. * Removed chgrp hack; use setgid. * Cleanups. * Fixed up repository editing and renaming. * Fixed getInputs breaking with empty fields. * Notices will now re-grab the session to make sure nothing gets lost (e.g. repeated notices in a loop overwriting each other). * Use wordsBy rather than splitOn. * Moved a couple more functions to DarcsDen.Handler.Repository.Changes. * Added exhaustive pattern-match for pageFor. * Fixed index match for splitOn behaviour. * Split up Darcs.Handler.Repository a bit. * Use split package. * Fixed footer being smashed up against forms and other floating elements. * Handler cleanups. * Tweaked repository verification to only check if a repository is valid if it exists. * Added a footer. * Make repository directories unreadable by others. * Adding and removing members to/from repositories. * Removed redundant repository description from blob view. * Delete a repository's group when destroying it. * Added per-repository user groups; this will be the backbone of adding committers to repositories. * notFound now serves the proper error code. * Tweaked serveDirectory to take absolute paths. * Repository forking. * Handler reorganization; added a general handleRepo which does the common validations and moved to Handler.Repository, and moved serveDirectory to HackUtils. * Added a default crumb to repo-base. * Added edit/delete links. * Shortened repository handler names and removed some redundant definitions. * Moved repo desc/nav to a repo-base for all repo pages to extend. * make clean now removes Main * Fixed up patch view; summary links work, removed links for removed files, added files link to the files in the repo, and patch diffs link to the file they modify. * Removed ./ part of filenames in patch view. * Added Makefile. * Cleaned up all warnings. * Added GPL3 license. * Tweaked the intro page. * Repository editing and deleting. * Added some content to the index page when not logged in. * Shorter patch view URLs. * Only show the summary section if there's stuff to show. * Show preference changes in patch summaries. * Removed lib directory (highlighting-kate now has its own repository) * Removed text-press from lib/ (has its own repository now) * Added pagination links. * Fixed build-depends for text-press. * Repository handler cleanups. * Repository changes pagination. * Removed dist directories from tree. * Ignore dist directories. * Added Go syntax highlighting. * Change ownership of new repositories to its owner. * Added a few warning displays to failed validation branches, and automatically log the user in after successful registration. * Proper name sanity checking and filtering. * Cleaned up HackUtils. * Serve darcs repositories with HTTP at the repo's URL. * Added a little message to empty repositories so the user knows what the push target is. * Bumped up source code size a notch. * If a user's pubkey does not exist, return "". * Added settings link. * Redirect to login if they try to create a repo while not logged in. * Added user settings page and pubkey updating. * Added a README. * User registration now creates the user on the system. * Removed Hack.Contrib.Press dependency for now. * Sanitize repository paths. * Redirect and show errors on repository viewing failure. * Added repoDir for getting the path for a directory with a given user/repo name, changed repo dir to /jail/home/(username)/(reponame), and removed no-longer-needed withDirectory. * log -> changes * Added some basic navigation. * Add entire session for page context, not just notifications. * Use relatize-dates instead of building up a wonky string from a CalendarTime. * No need for the log description to link to the page we're already on. * Added notification system, and updated most templates to reflect the new style (especially form stuff). * Spruced up the index and user viewing pages, added a base template, and thinned up the diff add/remove indicators. * Added modified text-press library pending cleanup and sending patches back to creator. * {{var}} escapes var for safe output. * Added {{{var}}} for unescaped output. * Fixed {% if foo.bar %} being parsed as {% if foo.bar.baz %} * Make sure requested paths to public/ are sane. * Cleanups. * Get a user by a log's author's email address and use it (if a user exists for it) for log pages, etc. Also misc. css tweaks. * Added handling for Binary changes. * Initial patch viewing. * Initial site design, repository browsing, and initial log viewing. * Split User stuff into its own handler. * Reorganization; moved some things from Handler to HackUtils. Also added repository viewing and browsing. * Ignore boring repos dir. * Redirect to index on repo init. * Added repository viewing, and flipped how repository keys are stored: (name, user) -> (user, name) * Redirect to / on succesful registration, and only show your repositories at the index if you have any. * Added sessions, logging in, and repository creation, and repository listing. * Added basic logging-in (not actually functioning yet; no sessions), and cleaned up some debugging junk. * Fixed If validation not collecting the validations from the predicate. * Added Show instances for OK, Valid, and Invalid. (show Valid is just explain since some things are not easily Showable) * Swapped arguments for IOPred / io to make using them a bit nicer. * Added cookie setting/getting HackUtils. * Split Invalid and OK into their own types, Result is now an Either on both. * Removed listToOctets use, refactored password hashing to intersperse the salt through the password. * No need to use `show' on a string when explaining it. * Refactored validation, simplfying code and adding IO capabilities. Added username existence validation. * Added passwords to users, with a migration from the old form (mostly for practice). * Added a slightly prettier and less confusing naming for If validation. * Ignore my TODO file. * Initial user registration. * Added initial input validation system. * Added HackUtils module, moved getInput(s) to it. * Ignore compiled Main. * Slight State tweaks. * Added highlighting-kate library for later. * State updates; added main State type that is a combination of everything. * Slight cleanup for Handler. * Added .boring file. * Initial state structure. * Cleaned up DarcsDen.Handler a little bit. * Initial record.