mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-07 21:15:19 +03:00
;doc: BACKLOG: updates; all cli items added
This commit is contained in:
parent
342ccdfae1
commit
dff61ccbd9
327
BACKLOG.org
327
BACKLOG.org
@ -1,21 +1,27 @@
|
||||
* BACKLOG.org
|
||||
|
||||
A public store of tasks/changes that we're fairly sure would be good
|
||||
to have, and their design notes. Here they compost nicely in the sun,
|
||||
uncommitted and unscheduled. Some items might appear best when viewed
|
||||
with org mode in Emacs.
|
||||
An efficient public store of tasks/changes/design notes, mostly from
|
||||
SM's private backlog; things that I/we feel would be nice to have, or
|
||||
investigate further.
|
||||
Here, they all compost nicely in the sun.
|
||||
Some items are out of date and just need to be re-tested and discarded.
|
||||
All help is welcome.
|
||||
|
||||
Related:
|
||||
- SM's private backlog, gradually moving here
|
||||
- http://regressions.hledger.org, http://bugs.hledger.org, http://wishes.hledger.org
|
||||
See also:
|
||||
- http://wishes.hledger.org and http://bugs.hledger.org
|
||||
- https://hledger.org/mockups.html
|
||||
- https://hledger.org/ROADMAP.html
|
||||
|
||||
** cli: help: clarify/improve the various kinds of command line help
|
||||
*** survey/describe
|
||||
Some items may render best when viewed in Emacs org mode.
|
||||
|
||||
** wip
|
||||
*** BACKLOG: move items here from SM's private backlog
|
||||
** cli
|
||||
*** cli: help: clarify/improve the various kinds of command line help
|
||||
**** survey/describe
|
||||
Most of these are long, and best viewed with a pager, eg: hledger -h | less
|
||||
|
||||
**** Quick command line help:
|
||||
***** Quick command line help:
|
||||
#+begin_example
|
||||
hledger -h|--help
|
||||
hledger-ui -h|--help
|
||||
@ -30,7 +36,7 @@ hledger COMMAND -h|--help
|
||||
|
||||
#+end_example
|
||||
|
||||
**** User manuals:
|
||||
***** User manuals:
|
||||
|
||||
#+begin_example
|
||||
hledger help [-i|-m|-p] [TOPIC]
|
||||
@ -65,15 +71,15 @@ https://hledger.org/hledger-web.html
|
||||
|
||||
#+end_example
|
||||
|
||||
** cli: help improvements
|
||||
*** auto pager
|
||||
*** colour
|
||||
*** show commands to get more detailed help
|
||||
*** list output formats
|
||||
*** list input formats
|
||||
*** list runtime-detected input formats
|
||||
*** more intro/manual in the main --help
|
||||
*** commands list updates
|
||||
*** cli: help improvements
|
||||
**** auto pager
|
||||
**** colour
|
||||
**** show commands to get more detailed help
|
||||
**** list output formats
|
||||
**** list input formats
|
||||
**** list runtime-detected input formats
|
||||
**** more intro/manual in the main --help
|
||||
**** commands list updates
|
||||
Financial reports:
|
||||
aregister (areg) show an account's transactions and running balance
|
||||
register (reg) show postings in all/matched accounts and their total
|
||||
@ -83,52 +89,271 @@ Financial reports:
|
||||
incomestatement (is) show revenues and expenses
|
||||
balance (bal) show custom balance reports, budgets, gains..
|
||||
roi show a return on investment report
|
||||
*** --pivot: list possible arguments in help
|
||||
** cli: --version: include latest commit date
|
||||
** cli: --version: include git branch name if not master ?
|
||||
** compat: support reading with beancount2ledger when in PATH
|
||||
** compat: support reading with ledger2beancount & beancount2ledger when in PATH
|
||||
** doc: quickstart: update download instructions, make maintainable
|
||||
** entry command
|
||||
*** a convenient non-interactive version of hledger add; and an extension point for data entry validations/automations
|
||||
**** --pivot: list possible arguments in help
|
||||
*** cli: --version: include latest commit date
|
||||
*** cli: --version: include git branch name if not master ?
|
||||
*** cli: disable colors when writing to .txt file ?
|
||||
*** cli: trailing colon makes alias ineffective
|
||||
`--alias expenses:personal:=expenses:`
|
||||
*** cli: unclear error if a trailing slash is written after file name
|
||||
shell completion might wrongly add a trailing slash, eg as with this symlink,
|
||||
resulting in this unclear error:
|
||||
~/notes$ stats -f current.journal/
|
||||
hledger: SourcePos {sourceName = "/Users/simon/.sm/notes/current.journal/", sourceLine = Pos 9, sourceColumn = Pos 1} reading /Users/simon/.sm/notes/current.journal/2018.prices:
|
||||
/Users/simon/current.journal/2018.prices: openFile: inappropriate type (Not a directory)
|
||||
*** cli: -h/--help should work even with unrecognised flags/missing args
|
||||
**** hledger --help ui --watch
|
||||
**** hledger ui --watch --help
|
||||
**** hledger --nosuchflag --help
|
||||
**** hledger nosuchcommand --help
|
||||
***** not expected to work; hledger --help nosuchcommand does work
|
||||
***** unify hledger --help & hledger COMMAND --help more ?
|
||||
*** cli: @ does not expand file names, eg @~/somefile
|
||||
*** cli: bad --width parse error
|
||||
$ hledger -f examples/sample.journal reg -w 80,-1
|
||||
hledger: could not parse width option: ParseErrorBundle {bundleErrors = TrivialError 3 (Just (Tokens ('-' :| ""))) (fromList [Label ('d' :| "igit")]) :| [], bundlePosState = PosState {pstateInput = "80,-1", pstateOffset = 0, pstateSourcePos = SourcePos {sourceName = "(unknown)", sourceLine = Pos 1, sourceColumn = Pos 1}, pstateTabWidth = Pos 8, pstateLinePrefix = ""}} (use -h to see usage)
|
||||
*** cli: balance assertion error shows ugly transaction
|
||||
hledger: balance assertion error in "/Users/simon/notes/2018.journal" (line 4949, column 54):
|
||||
in transaction:
|
||||
Transaction {tindex = 976, tsourcepos = JournalSourcePos "/Users/simon/notes/2018.journal" (4948,4950), tdate = 2018-09-01, tdate2 = Nothing, tstatus = *, tcode = "5VN72122C99690620", tdescription = "add funds to paypal", tcomment = "for:, time:06:53:51, type:Bank Deposit to PP Account , status:Pending, balance:6.99, gross:6.99, fee:0.00\n", ttags = [("for",""),("time","06:53:51"),("type","Bank Deposit to PP Account"),("status","Pending"),("balance","6.99"),("gross","6.99"),("fee","0.00")], tpostings = [PostingPP {pdate="Nothing", pdate2="Nothing", pstatus="", paccount="assets:personal:online:paypal", pamount=Mixed [Amount {acommodity = "$", aquantity = 6.99, aprice = NoPrice, astyle = AmountStylePP "L False 2 Just '.' Nothing..", amultiplier = False}], pcomment="", ptype=RegularPosting, ptags=[], pbalanceassertion=Just (Amount {acommodity = "$", aquantity = 6.99, aprice = NoPrice, astyle = AmountStylePP "L False 2 Just '.' Nothing..", amultiplier = False},GenericSourcePos "/Users/simon/notes/2018.journal" 4949 54), ptransaction=Just "<txn>", porigin=Nothing},PostingPP {pdate="Nothing", pdate2="Nothing", pstatus="", paccount="assets:personal:bank:wf:checking", pamount=Mixed [Amount {acommodity = "$", aquantity = -6.99, aprice = NoPrice, astyle = AmountStylePP "L False 2 Just '.' Nothing..", amultiplier = False}], pcomment="", ptype=RegularPosting, ptags=[], pbalanceassertion=Nothing, ptransaction=Just "<txn>", porigin=Nothing}], tpreceding_comment_lines = ""}
|
||||
after posting:
|
||||
assets:personal:online:paypal $6.99
|
||||
balance assertion details:
|
||||
date: 2018/09/01
|
||||
account: assets:personal:online:paypal
|
||||
commodity: $
|
||||
calculated: $-93.01
|
||||
asserted: $6.99 (difference: +$100.00)
|
||||
*** cli: color support like stack's (still a few things remaining)
|
||||
**** http://no-color.org/ color should not be added by default if the `NO_COLOR` environment variable is present.
|
||||
**** Existing global option `--color=WHEN` is now also available as a
|
||||
non-project-specific yaml configuration parameter `color:`.
|
||||
**** Adopt the standard proposed at http://no-color.org/, that color should
|
||||
not be
|
||||
added by default if the `NO_COLOR` environment variable is present.
|
||||
**** New command `stack ls stack-colors` lists the styles and the associated
|
||||
'ANSI'
|
||||
control character sequences that stack uses to color some of its output.
|
||||
See
|
||||
`stack ls stack-colors --help` for more information.
|
||||
**** New global option `--stack-colors=STYLES`, also available as a
|
||||
non-project-specific yaml configuration parameter, allows a stack user to
|
||||
redefine the default styles that stack uses to color some of its output.
|
||||
See
|
||||
`stack --help` for more information.
|
||||
**** British English spelling of 'color' (colour) accepted as an alias for
|
||||
`--color`, `--stack-colors`, `stack ls stack-colors` at the command line
|
||||
and
|
||||
for `color:` and `stack-colors:` in yaml configuration files.
|
||||
*** cli: generate commands list more dynamically from command docs
|
||||
**** names, aliases, descriptions
|
||||
|
||||
*** cli: inconsistent repeated options behaviour: -b 1/1 -b 2/1 should use the last date & be documented
|
||||
*** cli: pass -- -h/--help through to tasty
|
||||
*** cli: underquoted $ gives "empty list" error
|
||||
$ bal --budget ^sm:exp date:jan -M cur:\$ --tree
|
||||
Budget performance in 2019/01:
|
||||
|
||||
hledger: Prelude.maximum: empty list
|
||||
*** cli: 1275 drop/depth error message followup
|
||||
Two commands:
|
||||
|
||||
$ hledger bal --drop '-999999999999999'
|
||||
$ hledger bal --drop='-999999999999999'
|
||||
|
||||
Current output:
|
||||
hledger: could not parse drop number: --depth=999999999999999 (use -h to see usage)
|
||||
hledger: argument to drop must lie in the range 0 to 9223372036854775807, but is -999999999999999 (use -h to see usage)
|
||||
|
||||
My proposal would look like:
|
||||
hledger: drop's argument '--depth=999999999999999' must be a positive integer less than 9223372036854775807
|
||||
hledger: drop's argument '-999999999999999' must be a positive integer less than 9223372036854775807
|
||||
|
||||
Variations:
|
||||
hledger: drop's argument '-999999999999999' must be a positive integer less than 2^63
|
||||
hledger: drop's argument '-999999999999999' must between 0 and 2^63
|
||||
hledger: drop's argument '-999999999999999' should be 0 <= N < 2^63
|
||||
**
|
||||
*** cli: do recompile stack script addon if source is newer
|
||||
ie, change:
|
||||
$ hledger check-tag-files # compiles if there's no compiled version
|
||||
*** cli: drop abbreviation uniqueness requirement ?
|
||||
*** cli: get actions from https://medium.com/@jdxcode/12-factor-cli-apps-dd3c227a0e46
|
||||
*** cli: group common options as in CliOptions.reportflags
|
||||
*** cli: hledger: "date:monday-" gave a date parse error ()
|
||||
*** cli: http://neilmitchell.blogspot.com/2020/07/automatic-uis-for-command-lines-with.html
|
||||
*** cli: improve error message:
|
||||
hledger: balance assignments cannot be used with accounts which are
|
||||
posted to by transaction modifier rules (auto postings).
|
||||
Please write the posting amount explicitly, or remove the rule.
|
||||
*** cli: red color is bad on powershell navy background
|
||||
```
|
||||
Guest72
|
||||
Hi, does anybody know how to change the negative value color in powershell. It's drakred and almost not readable on the dark blue background
|
||||
f-a
|
||||
not sure, but meanwhile using --color=never could help
|
||||
Guest72
|
||||
better than dark red ;)
|
||||
```
|
||||
*** cli: show an extra newline after txt reports, for better display when showing one after another
|
||||
*** cli: show name of reader responsible for a parse error
|
||||
*** cli: ugly --alias parse error
|
||||
$ bal --alias a
|
||||
hledger: parse error at ParseErrorBundle {bundleErrors = TrivialError 1 (Just EndOfInput) (fromList [Tokens ('=' :| "")]) :| [], bundlePosState = PosState {pstateInput = "a", pstateOffset = 0, pstateSourcePos = SourcePos {sourceName = "--alias a", sourceLine = Pos 1, sourceColumn = Pos 1}, pstateTabWidth = Pos 8, pstateLinePrefix = ""}}
|
||||
*** cli: ugly parse error from malformed --width argument
|
||||
ghci> :main areg sm.*foo -w 350,50,50
|
||||
Transactions in sm:assets:foo and subaccounts:
|
||||
2020-01-01 *** Exception: could not parse width option: ParseErrorBundle {bundleErrors = TrivialError 6 (Just (Tokens (',' :| ""))) (fromList [Label ('d' :| "igit"),EndOfInput]) :| [], bundlePosState = PosState {pstateInput = "350,50,50", pstateOffset = 0, pstateSourcePos = SourcePos {sourceName = "(unknown)", sourceLine = Pos 1, sourceColumn = Pos 1}, pstateTabWidth = Pos 8, pstateLinePrefix = ""}} (use -h to see usage)
|
||||
*** non-empty standard input activates -f- if there is no explicit -f ?
|
||||
*** --invert should be supported by all commands
|
||||
*** --positive flips signs of normally negative accounts (liabilities, revenues, equity)
|
||||
so eg both revenues and expenses sections of income statement are positive
|
||||
*** --pivot should work with all hledger tools (ui, web, api..)
|
||||
*** warn about missing command rather than "unknown flag"
|
||||
~$ hledger-0.27.1 -f src/hledger/data/sample.journal -D date:2008/01
|
||||
hledger-0.27.1: Unknown flag: -D
|
||||
*** balance assertion error improvements
|
||||
**** show assertions in transaction
|
||||
2016/04/01 * refill negative budget envelopes (personal)
|
||||
[assets:personal:bank:wf:checking:month:gifts] $69.56 = 0
|
||||
[assets:personal:bank:wf:checking:month:food] $97.58 = 0
|
||||
[assets:personal:bank:wf:checking:month:personal care] $80.00 = $1
|
||||
[assets:personal:bank:wf:checking:available] $-247.14
|
||||
**** show line/column number of assertion
|
||||
**** show indication inline
|
||||
2016/04/01 * refill negative budget envelopes (personal)
|
||||
[assets:personal:bank:wf:checking:month:gifts] $69.56 = 0
|
||||
[assets:personal:bank:wf:checking:month:food] $97.58 = 0 <- failed, calculated: $7.12 (difference: +$7.12)
|
||||
[assets:personal:bank:wf:checking:month:personal care] $80.00 = $1
|
||||
[assets:personal:bank:wf:checking:available] $-247.14
|
||||
*** consistent/more headings for options
|
||||
*** don't immediately convert auto-balancing amounts to the price's commodity
|
||||
**** discuss on #ledger
|
||||
**** example
|
||||
1/1
|
||||
a E4 @ $1
|
||||
b ; <- should fill in -E4 @ $1 instead of -$4
|
||||
*** ignore inapplicable common flags when harmless, eg --width
|
||||
*** --help, --info after +RTS and/or -- should be passed through
|
||||
*** --unreal opposite of --real
|
||||
*** --pivot cleanups
|
||||
https://github.com/simonmichael/hledger/pull/323#issuecomment-185631456
|
||||
**** add --pivot to add-on option lists
|
||||
**** move pivot example to its own section
|
||||
*** reports should indicate whether each item has hidden subitems (and possibly include them in the report)
|
||||
*** show abnormal-sign balances in red (rather than negative numbers)
|
||||
*** split up output formats by command
|
||||
*** html reports
|
||||
**** add html output to other reports
|
||||
***** register
|
||||
***** postings
|
||||
**** add --view to open browser ?
|
||||
**** add detailed mode or report generating register for each cell
|
||||
** compat
|
||||
*** compat: support reading with beancount2ledger when in PATH
|
||||
*** compat: support reading with ledger2beancount & beancount2ledger when in PATH
|
||||
** doc
|
||||
*** doc: quickstart: update download instructions, make maintainable
|
||||
*** CONTRIBUTING: a github API script to generate the open issues table with issue counts
|
||||
*** automate CREDITS updating
|
||||
**** ./Shake credits
|
||||
**** github commit links
|
||||
**** github issue links
|
||||
**** github images
|
||||
*** a nice HISTORY page (higher level view of commits)
|
||||
**** automate
|
||||
***** ./Shake history
|
||||
*** doc: house mortgage
|
||||
Chris Leyon, Ledger list 2021:
|
||||
|
||||
The entry for my house purchase looks like this:
|
||||
|
||||
2014-12-18 Buy house
|
||||
Assets:Fixed:House $445,000.00 ; Selling price of house
|
||||
Assets:Current:XYZ Bank:Checking $455.76
|
||||
Expenses:Interest:Mortgage Interest $390.60
|
||||
Expenses:Taxes:Property Tax $282.49 ; Current qtr taxes
|
||||
Expenses:Taxes:Property Tax $2,154.00 ; Next qtr taxes
|
||||
Expenses:Utilities:Sewer $18.45 ; Current qtr sewer
|
||||
Expenses:Utilities:Sewer $141.48 ; Next qtr sewer
|
||||
Expenses:House:Warranty $32.10
|
||||
Liabilities:Loans:Mortgage Principal $-427,750.00 ; PV of mortgage at t=0
|
||||
Assets:Current:XYZ Bank:Savings $-20,500.00 ; Down payment
|
||||
Assets:Current:AnAssetAccount $-5,001.37 ; More money down
|
||||
Assets:Current:Escrow $960.49
|
||||
Expenses:House:Settlement $440.00 ; Origination charges
|
||||
Expenses:House:Settlement $325.00 ; Appraisal fee
|
||||
Expenses:House:Settlement $75.00 ; Tax service
|
||||
Expenses:House:Settlement $50.00 ; Appraisal management
|
||||
Expenses:House:Settlement $2,301.00 ; Title services and lender's title insurance
|
||||
Expenses:House:Settlement $105.00 ; Owner's title insurance
|
||||
Expenses:House:Settlement $220.00 ; Government recording charge
|
||||
Expenses:House:Settlement $300.00 ; Survey
|
||||
|
||||
This establishes the "Liabilities:Loans:Mortgage Principal" account which tracks the loan balance. "Assets:Fixed:House" can be used to calculate your equity (as in home equity, not an equity account type). Various charges need to be paid at closing time: title fees, current and next quarter taxes, utility services, etc. It also categorizes "Expenses:Interest:Mortgage Interest" as a separate category from other types of interest, for tax purposes. Finally, it also seeds the "Assets:Current:Escrow" account which is the source account for paying all sorts of property tax and insurance expenses.
|
||||
|
||||
A monthly mortgage payment might look like this:
|
||||
|
||||
2015-03-23=2015-04-01 (1000) Loan Servicing Company
|
||||
Liabilities:Loans:Mortgage Principal $585.63
|
||||
Liabilities:Loans:Mortgage Principal $100.00 ; Pay a little extra principal every month
|
||||
Expenses:Interest:Mortgage Interest $909.08
|
||||
Assets:Current:Escrow $1,024.48
|
||||
Assets:Current:XYZ Bank:Checking $-2,619.19
|
||||
|
||||
This set up has tracked my mortgage payments and balances for several years, down to the penny.
|
||||
|
||||
*** hledger manual: toc: why are OUTPUT, PIVOTING not clickable ?
|
||||
** entry
|
||||
*** entry command
|
||||
**** a convenient non-interactive version of hledger add; and an extension point for data entry validations/automations
|
||||
hledger entry [ONELINEENTRY]
|
||||
*** ONELINEENTRY is a single argument, in quotes: a journal entry using double-space instead of newlines
|
||||
**** ONELINEENTRY is a single argument, in quotes: a journal entry using double-space instead of newlines
|
||||
hledger entry '2021-01-01 * (123) farmers market expenses:food $10 assets:checking ; date:1/3'
|
||||
*** or with no argument, each line from standard input generates a journal entry
|
||||
*** with -a|--add, appends to the journal, like add/import
|
||||
*** if entry does not begin with a date, uses today's date
|
||||
**** or with no argument, each line from standard input generates a journal entry
|
||||
**** with -a|--add, appends to the journal, like add/import
|
||||
**** if entry does not begin with a date, uses today's date
|
||||
hledger entry 'farmers market expenses:food $10 assets:cash'
|
||||
*** if any other required parts are omitted, they are filled from similar past transactions, like add
|
||||
**** if any other required parts are omitted, they are filled from similar past transactions, like add
|
||||
These will match the txn above, and make the postings shown:
|
||||
hledger entry 'farmers' # expenses:food $10, assets:cash -$10
|
||||
hledger entry 'farmers expenses:food $11' # expenses:food $11, assets:cash -$11
|
||||
hledger entry 'farmers $11' # same
|
||||
hledger entry 'farmers 11' # same
|
||||
hledger entry 'farmers expenses:food 6 expenses:snacks 5' # expenses:food $6, expenses:snacks $5, assets:cash -$11
|
||||
*** leaf names of known accounts will be expanded
|
||||
**** leaf names of known accounts will be expanded
|
||||
hledger entry 'farmers food 6 snacks 5' # same
|
||||
*** missing commodity symbol could also be inferred from source account's balance
|
||||
*** or with a flag, missing required parts will give an error
|
||||
**** --complete, --only, --standalone, --no-infer, --no-past, --no-journal
|
||||
*** entry can run validation checks, including fancy ones like "asset accounts may not go negative"
|
||||
** reports: allow -c '0.%' to set style of -%
|
||||
** reports: relax the "whole subperiods" rule
|
||||
*** when there's only one ?
|
||||
**** missing commodity symbol could also be inferred from source account's balance
|
||||
**** or with a flag, missing required parts will give an error
|
||||
***** --complete, --only, --standalone, --no-infer, --no-past, --no-journal
|
||||
**** entry can run validation checks, including fancy ones like "asset accounts may not go negative"
|
||||
** ops
|
||||
*** new hledger.org vps
|
||||
** process
|
||||
*** refine RELEASING doc/process
|
||||
*** automate changelog finalisation
|
||||
*** automate release note generation
|
||||
***
|
||||
** reports
|
||||
*** reports: allow -c '0.%' to set style of -%
|
||||
*** reports: relax the "whole subperiods" rule
|
||||
**** when there's only one ?
|
||||
bal -YH -e tomorrow would be titled with tomorrow's date instead of 12-31
|
||||
*** when there's multiple, but no transactions before the begin date or after the end date ?
|
||||
** timeclock: improve error message
|
||||
**** when there's multiple, but no transactions before the begin date or after the end date ?
|
||||
** timeclock
|
||||
*** timeclock: improve error message
|
||||
hledger: clock-out time less than clock-in time in:
|
||||
2021-09-17 * 12:00-06:00
|
||||
(no-electronics) -6.00h
|
||||
|
||||
** timeclock: ugly parse error
|
||||
*** timeclock: ugly parse error
|
||||
hledger: line 6: expected timeclock code o but got i
|
||||
CallStack (from HasCallStack):
|
||||
error, called at ./Hledger/Data/Timeclock.hs:85:32 in hledger-lib-1.22.99-HCWXy7WanhBI3o1AfvBpXy:Hledger.Data.Timeclock
|
||||
** timedot: more flexible parsing
|
||||
*** ignore all preamble lines (before first date line)
|
||||
*** ignore all amountless lines
|
||||
*** ignore org list bullets/checkboxes
|
||||
*** check timedotstrict: disables ignoring preamble/amountless lines
|
||||
** timedot: --alias doesn't work with timeclock, timedot ?
|
||||
|
||||
** timedot
|
||||
*** timedot: more flexible parsing
|
||||
**** ignore all preamble lines (before first date line)
|
||||
**** ignore all amountless lines
|
||||
**** ignore org list bullets/checkboxes
|
||||
**** check timedotstrict: disables ignoring preamble/amountless lines
|
||||
*** timedot: --alias doesn't work with timeclock, timedot ?
|
||||
|
Loading…
Reference in New Issue
Block a user