hledger/CHANGES.md

377 lines
14 KiB
Markdown
Raw Normal View History

2021-07-04 00:14:06 +03:00
<!--
_ _
_ __ _ __ ___ (_) ___ ___| |_
| '_ \| '__/ _ \| |/ _ \/ __| __|
| |_) | | | (_) | | __/ (__| |_
| .__/|_| \___// |\___|\___|\__|
|_| |__/
2021-07-04 00:14:06 +03:00
-->
General changes in the hledger project (and notable all-package releases).
For package-specific changes and minor releases, see the hledger package changelogs.
2021-07-04 00:14:06 +03:00
# 1.22 2021-07-03
2021-07-03 05:10:56 +03:00
Software:
- We now provide static executables for GNU/Linux on x64 (amd64) and arm32v7
architectures. These are more portable and more likely to work on your linux
2021-07-04 04:54:45 +03:00
system than the dynamic Ubuntu executables we have been providing.
These will also be useful for Nextcloud.com users. (#1571) (Garret McGraw)
2021-07-03 05:10:56 +03:00
2021-07-04 00:14:06 +03:00
- GHC 9.0 is now officially supported, and GHC 8.0, 8.2, 8.4 are not;
building hledger now requires GHC 8.6 or greater.
Docs:
- The info manuals now have the proper metadata so you or your
packager can install them with `install-info` and they will appear
in info's Directory. We also provide a `dir` file making it easy
for developers to see the latest dev manuals in their info Directory.
(#1585) (Damien Cassou, Simon Michael)
Chat:
- The hledger IRC channels (in matrix syntax: #hledger:libera.chat,
2021-07-03 05:10:56 +03:00
#hledger-bots:libera.chat) moved to Libera.chat.
- The hledger Matrix room (#hledger:matrix.org), is now on at least
2021-07-03 05:10:56 +03:00
equal "official" footing with the IRC channel.
- I upgraded the matrix room to a newer version of the Matrix
protocol. This effectively splits it into an old (read only) room
and a new room. If you are joined to the old room, you might not
have noticed; in your matrix client, please follow the link to the
new room, ie #hledger:matrix.org.
2021-07-03 05:10:56 +03:00
- I briefly bridged the IRC and matrix rooms, because having two chats
(four if we consider #plaintextaccounting) is a pain. I hope to try
the experiment again at some point.
2021-03-10 22:08:22 +03:00
# 1.21 2021-03-10
2021-03-09 20:31:28 +03:00
- roi has a new cookbook doc, and example files have been updated.
(Dmitry Astapov)
2021-03-09 20:31:28 +03:00
- Example CSV rules for the Daedalus wallet have been added.
2021-03-09 20:31:28 +03:00
- The default stackage resolver/GHC version has been bumped to
lts-17.4/ghc-8.10.4.
2021-03-09 20:31:28 +03:00
- tools/generatejournal now includes more commodities and prices in
generated journals. (Stephen Morgan)
2021-03-09 20:31:28 +03:00
- Our functional tests now also run on BSD. (#1434, Felix Van der Jeugt)
2021-03-09 20:31:28 +03:00
- Addon scripts in bin/ have been updated for latest hledger API (Stephen Morgan).
2021-03-09 20:31:28 +03:00
- Addon scripts are now compiled as part of our CI tests, and always
with the same version of hledger source they were shipped with. We
now require script users to check out the hledger source tree and
run the scripts (or, `bin/compile.sh`) from there. This keeps users
and tests in sync, making things more reliable for everyone. (#1453)
2021-03-09 20:31:28 +03:00
- Last but not least, hledger's bash completions (provided in ./shell-completions/)
have been thoroughly updated (#1404, #1410, Vladimir Zhelezov).
2021-03-09 20:31:28 +03:00
"This was supposed to be just a fix for #1404 but upon visiting the source
several issues became apparent and that is why the commit grew a bit more than
expected. A complete list of changes below:
- Fix #1404.
No more orphaned temporary directories. Commands, options, etc. that used to be
stored in there are included at build-time as here documents in the source.
- Fix artifacts in /tmp after build.
Upon fixing the above I became aware that the build itself was leaving behind a
heap of artifacts in /tmp that were not taken care of with a make clean.
Fixed by using temporary files and directories in the build directory. Makefile
and build scripts adjusted.
- Produce command aliases.
Regular expressions in build scripts changed to produce all command aliases
except single letter ones (see below)
- Do not propose single letters completions.
It is simply not useful and adds a lot of noise. It makes completion slower as
well because you need to hit yes on the prompt:
Display all 200 possibilities? (y or n)
output-options.sh now excludes those.
- Query filters simplified.
Keep only the prefix of the filter with the colon in query-filters.txt. This
change has two reasons:
- Single letter completions are not useful (see above).
It allows for completion suggestions specific to each
Bonus reason: it's a completion engine, not a user manual.
Fix completion impacts on global environment
The completion script was making a couple of changes to the global environment
which had an impact for the rest of the shell session.
- set -o pipefail: the change is hidden from the user and could lead to subtle
errors throughout the shell session.
COMP_WORDBREAKS=" ": this affects subsequent completions for us and other
programs too. I exclude the colon : from its value and use
compopt -o filenames to handle escaping of special characters for us. I would
like to find a solution without messing with COMP_WORDBREAKS but it is not
straight forward.
- Fix hiding of legit subcommands.
Completion was hiding all possibilities if a subcommand happens to be the prefix
of another. On typing balance, one should be proposed balancesheet and
balancesheetequity as well.
- Return early.
Try to complete depending on the current context and return immediately if
successful. Keep completion list relevant and as short as possible.
- Context aware completion
Add handlers for option parameter completion, see _hledger_compreply_optarg()
Add handlers for query filters:, see _hledger_compreply_query()
Use --file and --rules-file arguments when proposing completions for the
above, see _hledger()
2021-03-09 20:31:28 +03:00
Propose only top level accounts at first. Again, keep it short and focused.
Custom compgen wrapper
compgen is fairly complicated. There is no way to feed it a word list with
literals. It will mangle your input in so many ways that we cannot trust it. To
work around this several wrappers are used: _hledger_compgen() works with
_hledger_quote_by_ref() to process and escape newline separated input which is
then fed to compgen and finally in COMPREPLY through _hledger_compreply()
and _hledger_compreply_append(). It sounds messy and I guess it is, I would like
to find a more straight forward way to do it. I think it is still a way better
and safer interface with readline than trying to grep our way through.
- Replace declare with local.
Again, this script is sourced by the shell -- keep variable scopes as narrow as
possible. Oops, they are actually synonymous when used in a function but
local declares our intentions explicitly.
- Use compopt -o nosort.
Often I resort to using it to keep different groups of completions together.
Whether this is more ergonomic or not is subjective. But our input lists are
already sorted at build-time so why not. Sort manually query-filters.txt when
editing it.
- Remove irrelevant comments.
And add some new ones :)
I think that is all. Give it a spin, try to abuse it, in and outside of quotes,
with some funky accounts, payees, tags, whatever, and tell me where it breaks or
2021-03-09 20:31:28 +03:00
behaves unexpectedly."
# 1.20.4 2021-01-29
2020-12-29 21:21:27 +03:00
# 1.20.3 2021-01-14
2020-12-29 21:21:27 +03:00
- The run/compile instructions for add-on scripts in bin/ have been
updated. The scripts now use `stack runghc` and are tested (manually
with `make functest` for now) with the corresponding hledger source,
not the hledger on stackage.
2020-12-06 04:32:56 +03:00
# 1.20 2020-12-05
2020-12-29 21:21:27 +03:00
2020-11-24 20:39:05 +03:00
- examples: clean up & add more budgeting examples
2020-11-17 21:51:57 +03:00
- examples: stripe csv
2020-11-04 07:08:47 +03:00
2020-11-17 21:51:57 +03:00
- The functional tests in tests/ have been moved into the respective
packages, eg hledger/test/ and hledger-ui/test/.
2020-11-04 07:08:47 +03:00
2020-11-17 21:51:57 +03:00
- Shake cabalfiles: now gives an error when it fails
2020-11-04 07:08:47 +03:00
2020-11-17 21:51:57 +03:00
- make bench: add some large tabular reports;
run just the slowest commands by default;
run after make (func)test
2020-11-03 21:18:14 +03:00
2020-11-17 21:51:57 +03:00
- a hie.yaml file has been added, so hledger source loads
easily in IDEs supporting haskell-language-server
2020-09-08 02:17:58 +03:00
# 2020-09-07
2020-09-07 22:30:24 +03:00
- Update shell completions (Jakob Schöttl)
2020-09-04 03:05:52 +03:00
2020-09-02 06:28:04 +03:00
# 1.19 2020-09-01
2020-07-05 19:24:16 +03:00
2020-09-02 06:23:30 +03:00
- example scripts:
2020-07-05 19:24:16 +03:00
2020-09-02 06:23:30 +03:00
- stack scripts now use stack's script command consistently
- stack scripts no longer have explicit --package lists, stack
infers them from the imports
- hledger-print-location: new script
2020-06-22 22:24:01 +03:00
2020-09-02 06:23:30 +03:00
- CI:
- always recompile all modules for robustness
- generate optimised binaries, which can be downloaded
- build a single different GHC version with each workflow, reducing
total building and carbon footprint a bit
- stop building with GHC 8.0
- the default stack file now uses lts 16.12 (ghc 8.8.4)
2020-06-22 22:24:01 +03:00
2020-06-21 17:25:51 +03:00
# 1.18.1 2020-06-21
2020-06-21 04:24:15 +03:00
- provide CI binaries for windows, mac & gnu/linux
2020-06-07 22:45:55 +03:00
# 1.18 2020-06-07
2020-04-20 00:45:07 +03:00
2020-06-07 02:53:41 +03:00
- new example scripts:
2020-04-20 00:45:07 +03:00
2020-06-07 02:53:41 +03:00
- hledger-combine-balances.hs, hledger-balance-as-budget.hs (Dmitry Astapov)
- hledger-check-tag-files.hs, hledger-check-tag-files2.hs
2020-04-07 04:38:38 +03:00
2020-06-07 02:53:41 +03:00
- more CSV rule examples: coinbase, waveapp
2020-06-06 01:18:23 +03:00
2020-06-07 02:53:41 +03:00
- new CI (continuous integration) system using Github Actions.
2020-03-19 02:17:13 +03:00
Thanks to Travis and Appveyor for their service to date.
Improvements:
- one CI service instead of several
- more closely integrated with code repo
- tests run on the three main platforms (linux, mac, windows)
- harmless commits are ignored automatically ([ci skip] no longer needed for doc commits)
2020-03-19 02:20:41 +03:00
- scheduled and on-demand testing (push to master, push to ci-* branches, pull request, weekly)
- now tested: all GHC versions, doctests, haddock building
2020-06-07 02:53:41 +03:00
- new shortcut url: http://ci.hledger.org
2020-03-19 02:17:13 +03:00
# 1.17 2020-03-01
2020-02-07 21:47:55 +03:00
2020-03-02 03:44:28 +03:00
- hledger-install: re-enable installation of hledger-iadd & hledger-interest.
2020-02-07 21:47:55 +03:00
2020-03-02 03:44:28 +03:00
- hledger-install: bump minimum stack version to 1.9.1
1.7.1 fails with deps using newer cabal file syntax I believe.
2020-02-07 21:47:55 +03:00
2020-03-02 03:44:28 +03:00
- hledger-install: always do stack update, to help ensure we get the latest packages.
https://github.com/commercialhaskell/stack/issues/5112
2020-01-14 21:08:50 +03:00
2020-03-02 03:44:28 +03:00
- examples: Add a basic example of rule parsing for the output of csb2format. (Evilham)
2020-01-14 21:08:50 +03:00
csb2format deals with the CSB43/AEB43 format, which all banks operating in
Spain must support.
Having these example rules enables easens bootstraping for users with a
Spanish bank account.
2020-03-02 03:44:28 +03:00
- doc: simpler, clearer structure in the manuals and hledger.org sidebar
2020-01-14 21:08:50 +03:00
2020-03-02 03:44:28 +03:00
- doc: a new [Quick Start](https://hledger.org/start.html) page
- doc: a new [Common Tasks](https://hledger.org/hledger.html#common-tasks) section in the hledger manual
2020-01-14 21:08:50 +03:00
2020-03-02 03:44:28 +03:00
- doc: a new invoicing how-to: https://hledger.org/invoicing.html
2020-01-14 21:08:50 +03:00
2020-03-02 03:44:28 +03:00
- doc: Fix dead pointer in contributing (Aleksandar Dimitrov)
2020-01-14 21:08:50 +03:00
2020-03-02 03:44:28 +03:00
- doc: Fix build badges for Travis and AppVeyor (Rui Chen)
2020-01-14 21:08:50 +03:00
2019-12-01 20:59:01 +03:00
# 1.16 2019-12-01
2019-12-01 20:59:01 +03:00
- add support for GHC 8.8, base-compat 0.11 (#1090)
2019-12-01 20:59:01 +03:00
- drop support for GHC 7.10
2019-09-13 18:31:54 +03:00
- add descriptions to most issue tracker labels
2019-12-01 20:59:01 +03:00
- matrix.hledger.org now redirects to a more readable/useful url
2019-09-01 18:41:33 +03:00
# 1.15 2019-09-01
2019-08-31 07:26:23 +03:00
2019-09-01 18:40:05 +03:00
- install: bump to lts-14.4, hledger 1.15, drop hledger-api
2019-08-31 07:26:23 +03:00
2019-09-01 18:40:05 +03:00
- bump versions to 1.15
2019-07-11 09:22:04 +03:00
2019-09-01 18:40:05 +03:00
- api: drop from Shake scripts
2019-08-19 14:03:54 +03:00
- new unified website: hledger.org now has its own git repo, has
absorbed the github wiki, and is generated with Sphinx.
2019-07-11 09:22:04 +03:00
2019-09-01 18:40:05 +03:00
- hledger-api's functionality is now included in hledger-web,
and the hledger-api package is mothballed.
2019-07-11 09:22:04 +03:00
2019-09-01 18:40:05 +03:00
- hledger-install.sh: updated, now also works on FreeBSD 12 (zieone)
2019-07-11 09:22:04 +03:00
2019-09-01 18:40:05 +03:00
- bin/ addon scripts: hledger-swap-dates added; hledger-check,
hledger-smooth updated. (#1072)
2019-07-11 09:22:04 +03:00
2019-09-01 18:40:05 +03:00
- shell-completion/ scripts: updated (Jakob Schöttl)
2019-07-11 09:22:04 +03:00
2019-09-01 18:40:05 +03:00
- github: FUNDING.yml / sponsor button configured
2019-07-25 10:45:56 +03:00
2019-09-01 18:40:05 +03:00
- site: Wine option added to download page
2019-07-11 09:22:04 +03:00
2019-09-01 18:40:05 +03:00
- tools: generatejournal updates: vary amount, make reports with fewer
zeroes, start from a fixed year to keep tests stable, also generate
P records. (#999)
2019-03-21 02:09:25 +03:00
2019-09-01 18:40:05 +03:00
- tools: make, shake, CI: misc. updates
2019-03-21 02:09:25 +03:00
2019-05-04 00:59:12 +03:00
- doc: add a README for the functional tests, linked from contrib guide
2019-03-21 02:09:25 +03:00
2019-09-01 18:40:05 +03:00
- hledger-makeitso has been renamed to hledger-flow (Andreas Pauley)
2019-03-21 02:09:25 +03:00
2019-09-01 18:40:05 +03:00
- The hledger docker image is now based on the "haskell" image (Dmitry Astapov)
2019-03-21 02:09:25 +03:00
2019-03-02 04:43:27 +03:00
# 1.14 2019-03-01
- hledger.org website: now uses https, home page updates,
download page improved package list with status badges.
Also the github wiki pages are now rendered as part of hledger.org,
like the main site pages (with pandoc markdown and tables of contents).
Building the site now requires that a copy of the wiki is checked out
under wiki/.
- bash completion support: removed duplicate options, added new
options, stopped listing -h as a command, added some completion for
external addon commands.
- release automation improvements
- makefile cleanups; make site-liverender helps with local site preview
2019-02-02 03:57:52 +03:00
# 1.13 (2019/01/02)
2019-01-28 21:45:25 +03:00
2019-02-02 03:57:52 +03:00
- packaging: A docker image providing the main hledger tools is now
linked on the download page. This is another way to get up-to-date
hledger tools without building them yourself (and, a way to run
hledger-ui on windows ?) (Dmitry Astapov, Simon Michael)
2019-02-01 02:43:08 +03:00
2019-02-02 03:57:52 +03:00
- hledger-install.sh: fix installation of stack when .local/bin is not
in PATH (Dmitry Astapov)
2019-02-01 02:43:08 +03:00
2019-02-02 03:57:52 +03:00
- doc: fixed pandoc typography conversion in web manuals. Eg `--` was
being rendered as en-dash. (#954).
2019-02-01 02:43:08 +03:00
2019-02-02 03:57:52 +03:00
Developers:
2019-02-01 02:43:08 +03:00
2019-02-02 03:57:52 +03:00
- developer docs have moved from the wiki into CONTRIBUTING.md (#920)
2019-02-02 03:57:52 +03:00
- new streamlined changelog update process. Shake targets:
./Shake changelogs
./Shake CHANGES.md
./Shake CHANGES.md-dry
./Shake PKG/CHANGES.md
./Shake PKG/CHANGES.md-dry
2019-01-26 22:30:54 +03:00
2019-02-02 03:57:52 +03:00
update the project-wide and/or package changelogs, inserting new
commits (touching the respective directory, since the tag version or
commit hash which is the first word in the changelog's previous top
heading) at the top, formatted as changelog entries.
2019-01-26 22:30:54 +03:00
2019-02-02 03:57:52 +03:00
- ./Shake PKG - builds a package plus its embedded docs.
./Shake build - builds all the packages and their embedded docs.
("stack build PKG" does not notice changes in embedded doc files.)
2019-01-26 22:30:54 +03:00
2019-02-02 03:57:52 +03:00
- make ghci-shake - loads Shake.hs in ghci
2019-01-26 22:30:54 +03:00
2019-02-02 03:57:52 +03:00
- make tags - includes doc source files, hpack/cabal files, Shake.hs
2019-01-26 22:30:54 +03:00
- make site-livereload - opens a reloading browser view on the website html
(requires `livereloadx`)
2019-02-02 03:57:52 +03:00
- added a Dockerfile and helper scripts (Dmitry Astapov)
- doc files and hpack/cabal files are included in TAGS again
2019-01-26 22:30:54 +03:00
# 1.12 (2018/12/02)