Project-wide changes in the hledger project. See also the package change logs. # 1.1 (unreleased) (Changes in all packages - move to package changelogs before release:) ## misc - fix non-existent "oldtime" dependency in hledger package (#431) - update base lower bound to enforce GHC 7.10+ hledger-lib had a valid install plan with GHC 7.8, but currently requires GHC 7.10 to compile. Now we require base 4.8+ everywhere to ensure the right GHC version at the start. - Hledger.Read api cleanups - rename dbgIO to dbg0IO, consistent with dbg0, and document a bug in dbg*IO - make readJournalFiles [f] equivalent to readJournalFile f (#437) - more general parser types enabling reuse outside of IO (#439) ## cli - more predictable file format detection When we don't recognise a file's extension, instead of choosing a subset of readers to try based on content sniffing, now we just try them all. Also, this can be overridden by prepending the reader name and a colon to the file path (eg timedot:file.dat, csv:-). - don't show stack trace details in errors with GHC 8+ ## ui - mark hledger-ui as "stable" - allow brick 0.15, vty 5.14, text-zipper 0.9 - with --watch, the display updates automatically to show file or date changes hledger-ui --watch will reload data when the journal file (or any included file) changes. Also, when viewing a current standard period (ie this day/week/month/quarter/year), the period will move as needed to track the current system date. - the --change flag shows period changes at startup instead of historical ending balances - the A key runs the hledger-iadd tool, if installed - always reload when g is pressed Previously it would check the modification time and reload only if it looked newer than the last reload. ## web - add --host option (#429) This came up in the context of Docker, but it seems it wasn't possible for hledger-web to serve remote clients directly (without a proxy) because of 127.0.0.1 being hardcoded. That can now be changed with --host=IPADDR. Also, the default base url uses this address rather than a hard-coded "localhost". - rename --server to --serve The --server flag sounded too close in meaning to --host so I've renamed it to --serve. The old spelling is still accepted, but deprecated and will be removed in the next release. ## api - serves on 127.0.0.1 by default, --host option added (#432) Consistent with hledger-web: serves only local requests by default, use --host=IPADDR to change this. - fixed the version string in command-line help and swagger info ## csv format - create default rules file only if CSV reader succeeds ## journal format - balance assignments are now supported (#438, #129, #157, #288) This feature also brings a slight performance drop (~5%); optimisations welcome. - also recognise `*.hledger` files as hledger journal format ## ledger format - use ledger-parse from the ledger4 project as an alternate reader for C++ Ledger journals The idea is that some day we might get better compatibility with Ledger files this way. Right now this reader is not very useful and will be used only if you explicitly select it with a `ledger:` prefix. It parses transaction dates, descriptions, accounts and amounts, and ignores everything else. Amount parsing is delegated to hledger's journal parser, and malformed amounts might be silently ignored. This adds at least some of the following as new dependencies for hledger-lib: parsers, parsec, attoparsec, trifecta. # 1.0.1 (2016/10/27) - change log/release note fixes # 1.0 (2016/10/26) ## misc - added GHC 8 support, dropped GHC 7.6 and 7.8 support. GHC 7.8 support could be restored with small code changes and a maintainer. - a cabal.project file has been added (Moritz Kiefer) - use hpack for maintaining cabal files (#371). Instead of editing cabal files directly, we now edit the less verbose and less redundant package.yaml files and let stack (or hpack) update the cabal files. We commit both the .yaml and .cabal files. - clean up some old cabal flags - tools/simplebench has been spun off as the quickbench package. - add Appveyor CI builds, provide up-to-date binaries for Windows - extra: add a bunch of CSV rules examples ## docs - the website is simpler, clearer, and more mobile-friendly. Docs are now collected on a single page and organised by type: getting started, reference, more. - reference docs have been split into one manual for each executable and file format. This helps with maintenance and packaging and also should make it easier to see what's available and to read just what you need. - manuals are now provided in html, plain text, man and info formats generated from the same source by a new Shake-based docs build system. (#292) - versioned manuals are provided on the website, covering recent releases and the latest dev version (#385, #387) - manuals are built in to the hledger executables, allowing easy offline reading on all platforms. PROG -h shows PROG's command-line usage PROG --help shows PROG's manual (fixed width) PROG --man shows PROG's manual with man (formatted/paged) PROG --info shows PROG's manual with info (hypertext) hledger help [TOPIC] shows any manual hledger man [TOPIC] shows any manual with man hledger info [TOPIC] shows any manual with info - the general and reporting options are now listed in all executable manuals. We assume any of them which are unsupported are harmlessly ignored. - demo.hledger.org is using beancount's example journal. This is the somewhat realistic example journal from the beancount project, tweaked for hledger. - minor copyedits (jungle-boogie) ## cli - parsing multiple input files is now robust. When multiple -f options are provided, we now parse each file individually rather than just concatenating them, so they can have different formats (#320). Note this also means that directives (like \`Y\` or \`alias\`) no longer carry over from one file to the next. - -I has been added as the short flag for --ignore-assertions (this is different from Ledger's CLI, but useful for hledger-ui). - parsing an argument-less --debug option is more robust 0.27 (2015/10/31) - The site is now built with hakyll-std, a generic hakyll script. - The hledger cabal files are now generated from package.yaml files by hpack, in principle, removing a lot of error-prone duplication and boilerplate. (In practice, both files are being updated manually for the moment, until hpack supports flags and conditional blocks.) - Time/allocation and heap profiling is working again, and easier: - `make quickprof-CMD` generates a profile for CMD, which runs against one of the sample journals. (CMD must be one word, enclosing in double quotes isn't working here for some reason). - `make quickheap-CMD` generates a heap profile for CMD, in hledgerprof.ps, and tries to open it in a viewer (currently the mac-friendly "open" executable, so you may need to adjust this in the makefile). As with quickprof, CMD must be one word and runs against one of the sample journals. - `make hledgerprof` builds the hledgerprof executable used for time/allocation profiling. `make hledgercov` builds the hledgercov executable used for coverage reports. - Travis CI now tests the build on each github push and announces status changes by email and on #hledger. - hledger once again has a HCAR entry. - Each hledger package now includes one or more man pages, generated from markdown by the mighty pandoc. Currently there are six: one for each main executable and each input file format. Currently these somewhat duplicate the manual on the website; this will be resolved somehow.