diff --git a/NEWS.rst b/NEWS.markdown similarity index 54% rename from NEWS.rst rename to NEWS.markdown index 912e449a0..e5a4336b0 100644 --- a/NEWS.rst +++ b/NEWS.markdown @@ -1,190 +1,234 @@ --- title: hledger news --- -hledger news -============ -2010/07/17 hledger 0.11.1 -......................... +# hledger news + +## 2010/07/17 hledger 0.11.1 * fix --version output -2010/07/17 hledger 0.11 -........................ +## 2010/07/17 hledger 0.11 - * split --help, adding --help-options and --help-all/-H, and make it the default command - * use "journal" instead of "ledger file"; default suffix is .journal, default file is ~/.journal + * split --help, adding --help-options and --help-all/-H, and make + it the default command + * use "journal" instead of "ledger file"; default suffix is + .journal, default file is \~/.journal * auto-create missing journal files rather than giving an error - * new format-detecting file reader (mixed journal transactions and timelog entries are no longer supported) - * work around for first real-world rounding issue (test zero to 8 decimal places instead of 10) - * when reporting a balancing error, convert the error amount to cost - * parsing: support double-quoted commodity symbols, containing anything but a newline or double quote - * parsing: allow minus sign before commodity symbol as well as after (also fixes a convert bug) + * new format-detecting file reader (mixed journal transactions + and timelog entries are no longer supported) + * work around for first real-world rounding issue (test zero to 8 + decimal places instead of 10) + * when reporting a balancing error, convert the error amount to + cost + * parsing: support double-quoted commodity symbols, containing + anything but a newline or double quote + * parsing: allow minus sign before commodity symbol as well as + after (also fixes a convert bug) * parsing: fix wrong parse error locations within postings - * parsing: don't let trailing whitespace in a timelog description mess up account names + * parsing: don't let trailing whitespace in a timelog description + mess up account names * add: allow blank descriptions * balance: --flat provides a simple non-hierarchical format - * balance: --drop removes leading account name components from a --flat report - * print, register, balance: fix layout issues with mixed-commodity amounts + * balance: --drop removes leading account name components from a + --flat report + * print, register, balance: fix layout issues with + mixed-commodity amounts * print: display non-simple commodity names with double-quotes * stats: layout tweaks, add payee/description count * stats: don't break on an empty file - * stats: -p/--period support; a reporting interval generates multiple reports + * stats: -p/--period support; a reporting interval generates + multiple reports * test: drop verbose test runner and testpack dependency - * web: a new web ui based on yesod, requires ghc 6.12; old ghc 6.10-compatible version remains as -fweb610 + * web: a new web ui based on yesod, requires ghc 6.12; old ghc + 6.10-compatible version remains as -fweb610 * web: allow wiki-like journal editing - * web: warn and keep running if reloading the journal gives an error - * web: --port and --base-url options set the webserver's tcp port and base url - * web: slightly better browser opening on microsoft windows, should find a standard firefox install now - * web: in a web-enabled build on microsoft windows, run the web ui by default + * web: warn and keep running if reloading the journal gives an + error + * web: --port and --base-url options set the webserver's tcp port + and base url + * web: slightly better browser opening on microsoft windows, + should find a standard firefox install now + * web: in a web-enabled build on microsoft windows, run the web + ui by default - Stats: 55 days and 136 commits since last release. Now at 5552 lines of code with 132 tests and 54% unit test coverage. +Stats: 55 days and 136 commits since last release. Now at 5552 +lines of code with 132 tests and 54% unit test coverage. -2010/05/23 hledger 0.10 -........................ +## 2010/05/23 hledger 0.10 * fix too-loose testpack dependency, missing safe dependency * fix ghc 6.12 compatibility with -fweb * fix handling of non-ascii arguments with ghc 6.12 * fix "0.8" in --version output - * fix an occasional stack overflow error due to infinite recursion in Posting/Transaction equality tests - * the -fwebhappstack build flag is gone for now, to avoid a cabal problem - * parsing: if there is no description, don't require a space after the transaction date - * parsing: balance balanced-virtual postings separately, allow them to have an implicit amount - * parsing: timelog entries now generate balanced transactions, using virtual postings + * fix an occasional stack overflow error due to infinite + recursion in Posting/Transaction equality tests + * the -fwebhappstack build flag is gone for now, to avoid a cabal + problem + * parsing: if there is no description, don't require a space + after the transaction date + * parsing: balance balanced-virtual postings separately, allow + them to have an implicit amount + * parsing: timelog entries now generate balanced transactions, + using virtual postings * parsing: simpler high-level parse error message * parsing: clearer bad date errors * add: fix wrongful program exit on bad dates - * print: negative account patterns now exclude transactions containing any posting to a matched account + * print: negative account patterns now exclude transactions + containing any posting to a matched account * vty: rename the ui command to vty for consistency * vty: fix restricted account scope when backing up to top level * web: fix non-ascii handling with ghc 6.12 * web: fix a bug possibly affecting reload-on-change * consolidate module namespace under Hledger, api cleanups - Stats: - 44 days, 81 commits since last release. - Now at 4904 lines of code including tests, 144 tests, 53% coverage. +Stats: 44 days, 81 commits since last release. Now at 4904 lines of +code including tests, 144 tests, 53% coverage. -2010/04/10 hledger 0.9 -...................... +## 2010/04/10 hledger 0.9 * ghc 6.12 support * split off hledger-lib package, containing core types & utils - * parsing: ignore D, C, N, tag, end tag directives; we should now accept any ledger 2.6 file - * parsing: allow numbers in commodities if double-quoted, like ledger + * parsing: ignore D, C, N, tag, end tag directives; we should now + accept any ledger 2.6 file + * parsing: allow numbers in commodities if double-quoted, like + ledger * parsing: allow transactions with empty descriptions - * parsing: show a better error for illegal month/day numbers in dates - * parsing: don't ignore trailing junk in a smart date, eg in web add form + * parsing: show a better error for illegal month/day numbers in + dates + * parsing: don't ignore trailing junk in a smart date, eg in web + add form * parsing: don't ignore unparsed text following an amount * parsing: @ was being treated as a currency symbol - * add: fix precision handling in default amounts (#19) + * add: fix precision handling in default amounts (\#19) * add: elide last amount in added transactions - * convert: keep original description by default, allow backreferences in replace pattern - * convert: basic csv file checking, warn instead of dying when it looks wrong + * convert: keep original description by default, allow + backreferences in replace pattern + * convert: basic csv file checking, warn instead of dying when it + looks wrong * convert: allow blank/comment lines at end of rules file - * print: always show zero amounts as 0, hiding any commodity/decimal places/price, like ledger + * print: always show zero amounts as 0, hiding any + commodity/decimal places/price, like ledger * register: fix bad layout with years < 1000 - * register: fix a Prelude.head error with reporting interval, --empty, and --depth - * register: fix a regression, register should not show posting comments - * register: with --empty, intervals should continue to ends of the specified period + * register: fix a Prelude.head error with reporting interval, + --empty, and --depth + * register: fix a regression, register should not show posting + comments + * register: with --empty, intervals should continue to ends of + the specified period * stats: better output when last transaction is in the future - * stats: show commodity symbols, account tree depth, reorder slightly - * web: -fweb now builds with simpleserver; to get happstack, use -fwebhappstack instead + * stats: show commodity symbols, account tree depth, reorder + slightly + * web: -fweb now builds with simpleserver; to get happstack, use + -fwebhappstack instead * web: pre-fill the add form with today's date * web: help links, better search form wording - * web: show a proper error for a bad date in add form (#17) + * web: show a proper error for a bad date in add form (\#17) * web: fix for unicode search form values - * web: fix stack overflow caused by regexpr, and handle requests faster (#14) + * web: fix stack overflow caused by regexpr, and handle requests + faster (\#14) * web: look for more-generic browser executables - * web: more robust browser starting (#6) + * web: more robust browser starting (\#6) * error message cleanups * more tests, refactoring, docs - Stats: - 58 days, 2 contributors, 102 commits since last release. - Now at 3983 lines of non-test code, 139 tests, 53% coverage. +Stats: 58 days, 2 contributors, 102 commits since last release. Now +at 3983 lines of non-test code, 139 tests, 53% coverage. -2010/02/11 hledger 0.8 -...................... +## 2010/02/11 hledger 0.8 - * parsing: in date=date2, use first date's year as a default for the second + * parsing: in date=date2, use first date's year as a default for + the second * add: ctrl-d doesn't work on windows, suggest ctrl-c instead - * add: --no-new-accounts option disallows new accounts (Roman Cheplyaka) - * add: re-use the previous transaction's date as default (Roman Cheplyaka) - * add: a command-line argument now filters by account during history matching (Roman Cheplyaka) - * chart: new command, generates balances pie chart (requires -fchart flag, gtk2hs) (Roman Cheplyaka, Simon Michael) - * register: make reporting intervals honour a display expression (#18) + * add: --no-new-accounts option disallows new accounts (Roman + Cheplyaka) + * add: re-use the previous transaction's date as default (Roman + Cheplyaka) + * add: a command-line argument now filters by account during + history matching (Roman Cheplyaka) + * chart: new command, generates balances pie chart (requires + -fchart flag, gtk2hs) (Roman Cheplyaka, Simon Michael) + * register: make reporting intervals honour a display expression + (\#18) * web: fix help link * web: use today as default when adding with a blank date - * web: re-enable account/period fields, they seem to be fixed, along with file re-reading (#16) - * web: get static files from the cabal data dir, or the current dir when using make (#13) - * web: preserve encoding during add, assuming it's utf-8 (#15) - * fix some non-utf8-aware file handling (#15) - * filter ledger again for each command, not just once at program start + * web: re-enable account/period fields, they seem to be fixed, + along with file re-reading (\#16) + * web: get static files from the cabal data dir, or the current + dir when using make (\#13) + * web: preserve encoding during add, assuming it's utf-8 (\#15) + * fix some non-utf8-aware file handling (\#15) + * filter ledger again for each command, not just once at program + start * refactoring, clearer data types - Stats: - 62 days, 2 contributors, 76 commits since last release. - Now at 3464 lines of non-test code, 97 tests, 53% test coverage. +Stats: 62 days, 2 contributors, 76 commits since last release. Now +at 3464 lines of non-test code, 97 tests, 53% test coverage. -2009/12/11 hledger 0.7 -........................ +## 2009/12/11 hledger 0.7 - * price history support (first cut): - P directives now work, though differently from c++ ledger. Each - posting amount takes its fixed unit price from the price history (or - @) when available. This is simple and useful for things like foreign - currency expenses (but not investment tracking). Like ledger, balance - and register don't show amount prices any more, and don't separate - differently-priced amounts. Unlike ledger, print shows all amount - prices, and supports -B. - * --effective option, will use transactions' effective dates if any - * convert: new rules file format, find/create rules file automatically, - more robust parsing, more useful --debug output - * print: always sort by date, fix long account name truncation, align - amounts, show end of line comments, show all amounts for clarity - (don't elide the final balancing amount) - * ui: use vty 4, fixes non-ascii and gnome terminal problems (issues #3, #4) - * web: allow data entry, react to data file changes, better layout, help - links, remove histogram command and filter fields for now, fix bad - localhost redirect, filter form did not work in eg firefox (issue #7), - reset link did not work in all browsers - * parsing: require whitespace between date and status code, allow (and - ignore) a time in price records, better error messages, non-zero exit - code on parse failure - * display non-ascii error messages properly (issue #5) - * fix an arithmetic bug that occasionally rejected valid transactions + * price history support (first cut): P directives now work, + though differently from c++ ledger. Each posting amount takes its + fixed unit price from the price history (or + @) when available. This is simple and useful for things like + foreign currency expenses (but not investment tracking). Like + ledger, balance and register don't show amount prices any more, and + don't separate differently-priced amounts. Unlike ledger, print + shows all amount prices, and supports -B. + * --effective option, will use transactions' effective dates if + any + * convert: new rules file format, find/create rules file + automatically, more robust parsing, more useful --debug output + * print: always sort by date, fix long account name truncation, + align amounts, show end of line comments, show all amounts for + clarity (don't elide the final balancing amount) + * ui: use vty 4, fixes non-ascii and gnome terminal problems + (issues \#3, \#4) + * web: allow data entry, react to data file changes, better + layout, help links, remove histogram command and filter fields for + now, fix bad localhost redirect, filter form did not work in eg + firefox (issue \#7), reset link did not work in all browsers + * parsing: require whitespace between date and status code, allow + (and ignore) a time in price records, better error messages, + non-zero exit code on parse failure + * display non-ascii error messages properly (issue \#5) + * fix an arithmetic bug that occasionally rejected valid + transactions * fix a regex bug in showtree * don't break if HOME is undefined * --debug now implies --verbose - * add functional tests like ledger's, use test-framework for speedy - running, release shelltestrunner as a separate package + * add functional tests like ledger's, use test-framework for + speedy running, release shelltestrunner as a separate package * many hlint cleanups (Marko Kocić) * many site and documentation updates - Stats: - 60 days, 1 contributor, 50 commits since last release. - Now at 3377 lines of non-test code, 97 tests, 53% test coverage. +Stats: 60 days, 1 contributor, 50 commits since last release. Now +at 3377 lines of non-test code, 97 tests, 53% test coverage. -2009/06/22 hledger 0.6.1 -........................ +## 2009/06/22 hledger 0.6.1 - * avoid use of exitSuccess which was breaking ghc 6.8/base 3 compatibility (issue #2) + * avoid use of exitSuccess which was breaking ghc 6.8/base 3 + compatibility (issue \#2) -2009/06/13 hledger 0.6 -...................... +## 2009/06/13 hledger 0.6 - * now cabal-installable on unix, mac, and windows, with Haskell Platform + * now cabal-installable on unix, mac, and windows, with Haskell + Platform * provide experimental platform binaries - * parsing: fix a silly failure to open ledger file paths containing ~ - * parsing: show better errors for unbalanced transaction and missing default year - * parsing: allow parentheses and brackets inside account names, as ledger does - * parsing: fail on empty account name components, don't just ignore - * add: description passed as arguments now affects first transaction only + * parsing: fix a silly failure to open ledger file paths + containing \~ + * parsing: show better errors for unbalanced transaction and + missing default year + * parsing: allow parentheses and brackets inside account names, + as ledger does + * parsing: fail on empty account name components, don't just + ignore + * add: description passed as arguments now affects first + transaction only * add: better handling of virtual postings and default amounts * print, register: show virtual accounts bracketed/parenthesised - * web: improved web ui supporting full patterns & period expressions + * web: improved web ui supporting full patterns & period + expressions * new "stats" command reports some ledger statistics * many dev/doc/deployment infrastructure improvements * move website into darcs repo, update home page @@ -199,26 +243,34 @@ Release stats: * Tests: 82 * Test coverage: 53% expressions * Known errors: 3 (inconsistent eliding, vty-related failures) - * Performance: similar (http://hledger.org/profs/200906131120.bench) + * Performance: similar + (http://hledger.org/profs/200906131120.bench) -2009/05/23 hledger 0.5.1 -................................. +## 2009/05/23 hledger 0.5.1 - * two fixes: really disable vty flag by default, and include ConvertCommand in cabal file + * two fixes: really disable vty flag by default, and include + ConvertCommand in cabal file -2009/05/23 hledger 0.5 -............................... +## 2009/05/23 hledger 0.5 - * the vty flag is disabled by default again, to ease installation on windows - * use ledger 3 terminology: a ledger contains transactions which contain postings - * new "add" command prompts for transactions interactively and adds them to the ledger - * new "convert" command transforms bank CSV exports to ledger format, with rule-based cleanup - * new "histogram" command shows transaction counts per day or other reporting interval - * most commands now work properly with UTF8-encoded text (Sergey Astanin) - * invoking as "hours" is now less different: it just uses your timelog, not your ledger + * the vty flag is disabled by default again, to ease installation + on windows + * use ledger 3 terminology: a ledger contains transactions which + contain postings + * new "add" command prompts for transactions interactively and + adds them to the ledger + * new "convert" command transforms bank CSV exports to ledger + format, with rule-based cleanup + * new "histogram" command shows transaction counts per day or + other reporting interval + * most commands now work properly with UTF8-encoded text (Sergey + Astanin) + * invoking as "hours" is now less different: it just uses your + timelog, not your ledger * ..quarterly/-Q option summarises by quarter * ..uncleared/-U option looks only at uncleared transactions - * be more accurate about checking balanced amounts, don't rely on display precision + * be more accurate about checking balanced amounts, don't rely on + display precision * enforce balancing for bracketed virtual postings * fix bug in eliding of posting amounts * don't show trailing spaces on amountless postings @@ -240,113 +292,105 @@ Release stats: * Tests: 76 * Known errors: 0 -.. - * Performance: - || hledger-0.4 | hledger-0.5 | ledger - =========================++=============+=============+======= - -f sample.ledger balance || 0.01 | 0.01 | 0.06 - -f 1000.ledger balance || 1.33 | 1.46 | 0.53 - -f 10000.ledger balance || 15.28 | 16.35 | 4.67 +## 2009/04/03 hledger 0.4 - -2009/04/03 hledger 0.4 -............................... - - * new "web" command serves reports in a web browser (install with -f happs to build this) - * make the vty-based curses ui a cabal build option, which will be ignored on MS windows + * new "web" command serves reports in a web browser (install with + -f happs to build this) + * make the vty-based curses ui a cabal build option, which will + be ignored on MS windows * drop the ..options-anywhere flag, that is now the default - * patterns now use not: and desc: prefixes instead of ^ and ^^ + * patterns now use not: and desc: prefixes instead of \^ and \^\^ * patterns are now case-insensitive, like ledger - * !include directives are now relative to the including file (Tim Docker) - * "Y2009" default year directives are now supported, allowing m/d dates in ledger + * !include directives are now relative to the including file (Tim + Docker) + * "Y2009" default year directives are now supported, allowing m/d + dates in ledger * individual transactions now have a cleared status * unbalanced entries now cause a proper warning * balance report now passes all ledger compatibility tests * balance report now shows subtotals by default, like ledger 3 * balance report shows the final zero total when -E is used * balance report hides the final total when ..no-total is used - * ..depth affects print and register reports (aggregating with a reporting interval, filtering otherwise) + * ..depth affects print and register reports (aggregating with a + reporting interval, filtering otherwise) * register report sorts transactions by date * register report shows zero-amount transactions when -E is used - * provide more convenient timelog querying when invoked as "hours" + * provide more convenient timelog querying when invoked as + "hours" * multi-day timelog sessions are split at midnight - * unterminated timelog sessions are now counted. Accurate time reports at last! + * unterminated timelog sessions are now counted. Accurate time + reports at last! * the test command gives better ..verbose output - * ..version gives more detailed version numbers including patchlevel for dev builds - * new make targets include: ghci, haddocktest, doctest, unittest, view-api-docs - * a doctest-style framework for functional/shell tests has been added + * ..version gives more detailed version numbers including + patchlevel for dev builds + * new make targets include: ghci, haddocktest, doctest, unittest, + view-api-docs + * a doctest-style framework for functional/shell tests has been + added Release stats: - * Contributors: Simon Michael, Tim Docker; thanks to the HAppS, happstack and testpack developers + * Contributors: Simon Michael, Tim Docker; thanks to the HAppS, + happstack and testpack developers * Days since release: 76 * Commits: 144 * Lines of non-test code: 2367 * Tests: 56 * Known errors: 0 -.. - * Performance: - || hledger-0.3 | hledger-0.4 | ledger-0.3 - ==============================++=============+=============+=========== - -f sample.ledger balance || 0.02 | 0.01 | 0.07 - -f sample1000.ledger balance || 1.02 | 1.39 | 0.53 - -f sample10000.ledger balance || 12.72 | 14.97 | 4.63 +## 2009/01/17 hledger 0.3 - -2009/01/17 hledger 0.3 -............................... - - * count timelog sessions on the day they end, like ledger, for now + * count timelog sessions on the day they end, like ledger, for + now * when options are repeated, use the last instead of the first * builds with ghc 6.10 as well as 6.8 * a simple ui for interactive report browsing: hledger ui - * accept smart dates everywhere (YYYYMMDD, Y/M/D, Y, M/D, D, jan, today, last week etc.) - * ..period/-p flag accepting period expressions like "in 2008", "weekly from last month".. - * -W/-M/-Y convenience flags to summarise register weekly, monthly, yearly - * ..depth and -E flags also affect summarised register reports (including depth=0) - * ..display/-d flag supporting date predicates (like "d<[DATE]", "d>=[DATE]") + * accept smart dates everywhere (YYYYMMDD, Y/M/D, Y, M/D, D, jan, + today, last week etc.) + * ..period/-p flag accepting period expressions like "in 2008", + "weekly from last month".. + * -W/-M/-Y convenience flags to summarise register weekly, + monthly, yearly + * ..depth and -E flags also affect summarised register reports + (including depth=0) + * ..display/-d flag supporting date predicates (like "d<[DATE]", + "d\>=[DATE]") * !include directive to include additional ledger files * !account directive to set a default parent account * Added support for reading historical prices from files * timelog and ledger entries can be intermixed in one file - * modifier and periodic entries can appear anywhere (but are still ignored) + * modifier and periodic entries can appear anywhere (but are + still ignored) * help and readme improvements * runs much faster than 0.2 Release stats: - * Contributors: Simon Michael, Nick Ingolia, Tim Docker; thanks to Corey O'Connor & the vty team + * Contributors: Simon Michael, Nick Ingolia, Tim Docker; thanks + to Corey O'Connor & the vty team * Lines of non-test code: 2123 * Tests: 58 * Known errors: 1 -.. - * Performance: - $ bench hledger-0.2 hledger ledger - || hledger-0.2 | hledger | ledger - ==================================++=============+=========+======= - -f 2008.ledger -s balance || 2.59 | 0.26 | 0.11 - -f 10000entries.ledger -s balance || 566.68 | 2.72 | 0.96 - - -2008/11/23 hledger 0.2 -............................... +## 2008/11/23 hledger 0.2 * fix balance report totals when filtering by account - * fix balance report selection of accounts when filtering by account + * fix balance report selection of accounts when filtering by + account * fix a bug with account name eliding in balance report - * if we happen to be showing a not-yet-auto-balanced entry, hide the AUTO marker + * if we happen to be showing a not-yet-auto-balanced entry, hide + the AUTO marker * fix print command filtering by account * omit transactions with zero amount from register report * Fix bug in parsing of timelogs * rename ..showsubs to ..subtotal, like ledger * drop ..usage flag * don't require quickcheck - * priced amounts (eg "10h @ $50") and ..basis/..cost/-B flag to show them with cost basis + * priced amounts (eg "10h @ $50") and ..basis/..cost/-B flag to + show them with cost basis * easy ..depth option, equivalent to c++ ledger's -d 'l<=N' - * smarter y/m/d date parsing for -b and -e - (any number of digits, month and day default to 1, separator can be / - or .) + * smarter y/m/d date parsing for -b and -e (any number of digits, + month and day default to 1, separator can be / - or .) * -n flag for balance command * ..empty/-E flag * build a library, as well as the exe @@ -355,14 +399,19 @@ Release stats: * detect display preferences for each commodity like c++ ledger * support amounts with multiple currencies/commodities * support ..real/-R flag - * support -C/..cleared flag to filter by entry status (not transaction status) + * support -C/..cleared flag to filter by entry status (not + transaction status) * support virtual and balanced virtual transactions - * parse comment lines beginning with a space, as from M-; in emacs ledger-mode - * allow any non-whitespace in account names, perhaps avoiding misleading missing amounts errors + * parse comment lines beginning with a space, as from M-; in + emacs ledger-mode + * allow any non-whitespace in account names, perhaps avoiding + misleading missing amounts errors * clearer error message when we can't balance an entry - * when we fail because of more than one missing amount in an entry, show the full entry + * when we fail because of more than one missing amount in an + entry, show the full entry * document the built-in test runner in ..help - * add a ..verbose/-v flag, use it to show more test-running detail + * add a ..verbose/-v flag, use it to show more test-running + detail Release stats: @@ -371,9 +420,7 @@ Release stats: * Tests: 43 * Known errors: 0 - -2008/10/15 hledger 0.1 -............................... +## 2008/10/15 hledger 0.1 Release stats: diff --git a/site/hakyll.hs b/site/hakyll.hs index 4ba8fde3c..2d520e521 100644 --- a/site/hakyll.hs +++ b/site/hakyll.hs @@ -21,7 +21,7 @@ main = hakyllWithConfiguration cfg $ do ["README.rst" ,"DOWNLOAD.markdown" ,"DEVELOPMENT.rst" - ,"NEWS.rst" + ,"NEWS.markdown" ,"SCREENSHOTS.markdown" ,"MANUAL.markdown" ,"CONTRIBUTORS.rst"