packages feed

hledger 1.50.3 → 1.50.4

raw patch · 12 files changed

+361/−336 lines, 12 filesdep ~hledger-libPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: hledger-lib

API changes (from Hackage documentation)

Files

CHANGES.md view
@@ -26,6 +26,30 @@ User-visible changes in the hledger command line tool and library.  +# 1.50.4 2025-12-04++Fixes++- An `include` directive with no argument now gives consistent error messages.++- journal format's `include` directive no longer excludes paths containing dotted directories/files.+  1.50-1.50.3 contained an overzealous workaround that sometimes wrongly excluded paths containing a dot dir or dot file.+  Now the pre-1.50 behaviour is restored+  (`*` and `**` generally avoid dot files and dot directories, except `**` will search non-top-level dot directories).+  [#2498]++- Symbolic links found by `include` directives are once again shown as-is, not dereferenced.+  (1.50-1.50.3 showed them dereferenced, eg in `hledger files` output.)++  There is some related new behaviour: each time an include directive is parsed,+  all the parent file paths and the new include file path(s) are re-canonicalised.+  Previous hledger versions did not do this; it's expected to be unnoticeable,+  but if you notice any slowdown caused by having many include directives and a slow filesystem,+  please report it.++[#2498]: https://github.com/simonmichael/hledger/issues/2498++ # 1.50.3 2025-11-18  Fixes
Hledger/Cli/CliOptions.hs view
@@ -306,7 +306,7 @@   ,flagNone ["anon"]                 (setboolopt "anon") "deprecated, renamed to --obfuscate"  -- #2133, handled by anonymiseByOpts   ,flagNone ["obfuscate"]            (setboolopt "obfuscate") "slightly obfuscate hledger's output. Warning, does not give privacy. Formerly --anon."  -- #2133, handled by maybeObfuscate   ,flagNone ["old-timeclock", "timeclock-old"] (setboolopt "oldtimeclock") "don't pair timeclock entries by account name"-  ,flagNone ["old-glob"]             (setboolopt "oldglob") "don't always exclude dot files/dirs to work around Glob bug"+  ,flagNone ["old-glob"]             (setboolopt "oldglob") "deprecated, no longer used as of 1.50.4"  -- #2498   ,flagReq  ["rules-file"]           (\s opts -> Right $ setopt "rules" s opts) "RULESFILE" "was renamed to --rules"   ] 
embeddedfiles/hledger-ui.1 view
@@ -1,5 +1,5 @@ -.TH "HLEDGER\-UI" "1" "November 2025" "hledger-ui-1.50.3 " "hledger User Manuals"+.TH "HLEDGER\-UI" "1" "December 2025" "hledger-ui-1.50.4 " "hledger User Manuals"   @@ -17,7 +17,7 @@ .PD \f[CR]hledger ui [OPTS] [QUERYARGS]\f[R] .SH DESCRIPTION-This manual is for hledger\[aq]s terminal interface, version 1.50.3.+This manual is for hledger\[aq]s terminal interface, version 1.50.4. See also the hledger manual for common concepts and file formats. .PP hledger is a robust, user\-friendly, cross\-platform set of programs for
embeddedfiles/hledger-ui.info view
@@ -18,7 +18,7 @@ or 'hledger ui [OPTS] [QUERYARGS]' -   This manual is for hledger's terminal interface, version 1.50.3.  See+   This manual is for hledger's terminal interface, version 1.50.4.  See also the hledger manual for common concepts and file formats.     hledger is a robust, user-friendly, cross-platform set of programs
embeddedfiles/hledger-ui.txt view
@@ -11,7 +11,7 @@        hledger ui [OPTS] [QUERYARGS]  DESCRIPTION-       This manual is for hledger's terminal interface, version  1.50.3.   See+       This manual is for hledger's terminal interface, version  1.50.4.   See        also the hledger manual for common concepts and file formats.         hledger  is a robust, user-friendly, cross-platform set of programs for@@ -460,4 +460,4 @@ SEE ALSO        hledger(1), hledger-ui(1), hledger-web(1), ledger(1) -hledger-ui-1.50.3                November 2025                   HLEDGER-UI(1)+hledger-ui-1.50.4                December 2025                   HLEDGER-UI(1)
embeddedfiles/hledger-web.1 view
@@ -1,5 +1,5 @@ -.TH "HLEDGER\-WEB" "1" "November 2025" "hledger-web-1.50.3 " "hledger User Manuals"+.TH "HLEDGER\-WEB" "1" "December 2025" "hledger-web-1.50.4 " "hledger User Manuals"   @@ -17,7 +17,7 @@ .PD \f[CR]hledger web [OPTS] [QUERY]\f[R] .SH DESCRIPTION-This manual is for hledger\[aq]s web interface, version 1.50.3.+This manual is for hledger\[aq]s web interface, version 1.50.4. See also the hledger manual for common concepts and file formats. .PP hledger is a robust, user\-friendly, cross\-platform set of programs for
embeddedfiles/hledger-web.info view
@@ -18,7 +18,7 @@ or 'hledger web [OPTS] [QUERY]' -   This manual is for hledger's web interface, version 1.50.3.  See also+   This manual is for hledger's web interface, version 1.50.4.  See also the hledger manual for common concepts and file formats.     hledger is a robust, user-friendly, cross-platform set of programs
embeddedfiles/hledger-web.txt view
@@ -11,7 +11,7 @@        hledger web [OPTS] [QUERY]  DESCRIPTION-       This manual is for hledger's web interface, version 1.50.3.   See  also+       This manual is for hledger's web interface, version 1.50.4.   See  also        the hledger manual for common concepts and file formats.         hledger  is a robust, user-friendly, cross-platform set of programs for@@ -480,4 +480,4 @@ SEE ALSO        hledger(1), hledger-ui(1), hledger-web(1), ledger(1) -hledger-web-1.50.3               November 2025                  HLEDGER-WEB(1)+hledger-web-1.50.4               December 2025                  HLEDGER-WEB(1)
embeddedfiles/hledger.1 view
@@ -1,6 +1,6 @@ .\"t -.TH "HLEDGER" "1" "November 2025" "hledger-1.50.3 " "hledger User Manuals"+.TH "HLEDGER" "1" "December 2025" "hledger-1.50.4 " "hledger User Manuals"   @@ -27,7 +27,7 @@ hledger is inspired by and largely compatible with ledger(1), and largely interconvertible with beancount(1). .PP-This manual is for hledger\[aq]s command line interface, version 1.50.3.+This manual is for hledger\[aq]s command line interface, version 1.50.4. It also describes the common options, file formats and concepts used by all hledger programs. It might accidentally teach you some bookkeeping/accounting as well!@@ -3341,23 +3341,23 @@ separator (like \f[CR]/\f[R]); \f[CR]**\f[R] to match zero or more subdirectories and/or zero or more characters at the start of a file name; etc.-Also, hledger\[aq]s globs always exclude the including file itself.+For convenience, \f[CR]include\f[R] always excludes the current file. So, you can do .IP \[bu] 2 \f[CR]include *.journal\f[R] to include all other journal files in the current directory (excluding dot files) .IP \[bu] 2 \f[CR]include **.journal\f[R] to include all other journal files in this-directory and below (excluding dot directories/files)+directory and below (excluding dot files and top\-level dot directories) .IP \[bu] 2 \f[CR]include timelogs/2???.timedot\f[R] to include all timedot files named like a year number. .PP-There is a limitation: hledger\[aq]s globs always exclude paths-involving dot files or dot directories.-This is a workaround for unavoidable dot directory traversal; you can-disable it and revert to older behaviour with the-\f[CR]\-\-old\-glob\f[R] flag, for now.+Note \f[CR]*\f[R] and \f[CR]**\f[R] usually won\[aq]t match dot files or+dot directories, with one exception: \f[CR]**\f[R] does search+non\-top\-level dot directories.+If this causes problems, make your glob pattern more specific (eg+\f[CR]**.journal\f[R] instead of \f[CR]**\f[R]). .PP If you are using many, or deeply nested, include files, and have an error that\[aq]s hard to pinpoint: a good troubleshooting command is
embeddedfiles/hledger.info view
@@ -24,7 +24,7 @@ and largely compatible with ledger(1), and largely interconvertible with beancount(1). -   This manual is for hledger's command line interface, version 1.50.3.+   This manual is for hledger's command line interface, version 1.50.4. It also describes the common options, file formats and concepts used by all hledger programs.  It might accidentally teach you some bookkeeping/accounting as well!  You don't need to know everything in@@ -3232,20 +3232,21 @@ '[a-z]' to match any character in a range; '*' to match zero or more characters that aren't a path separator (like '/'); '**' to match zero or more subdirectories and/or zero or more characters at the start of a-file name; etc.  Also, hledger's globs always exclude the including file-itself.  So, you can do+file name; etc.  For convenience, 'include' always excludes the current+file.  So, you can do     * 'include *.journal' to include all other journal files in the      current directory (excluding dot files)    * 'include **.journal' to include all other journal files in this-     directory and below (excluding dot directories/files)+     directory and below (excluding dot files and top-level dot+     directories)    * 'include timelogs/2???.timedot' to include all timedot files named      like a year number. -   There is a limitation: hledger's globs always exclude paths involving-dot files or dot directories.  This is a workaround for unavoidable dot-directory traversal; you can disable it and revert to older behaviour-with the '--old-glob' flag, for now.+   Note '*' and '**' usually won't match dot files or dot directories,+with one exception: '**' does search non-top-level dot directories.  If+this causes problems, make your glob pattern more specific (eg+'**.journal' instead of '**').     If you are using many, or deeply nested, include files, and have an error that's hard to pinpoint: a good troubleshooting command is@@ -13185,295 +13186,295 @@ Node: Commodity error checking121068 Node: decimal-mark directive121543 Node: include directive122122-Node: P directive124340-Node: payee directive125374-Node: tag directive125996-Node: Periodic transactions126608-Node: Periodic rule syntax128762-Node: Periodic rules and relative dates129585-Node: Two spaces between period expression and description!130362-Node: Auto postings131323-Node: Auto postings and multiple files134609-Node: Auto postings and dates135014-Node: Auto postings and transaction balancing / inferred amounts / balance assertions135455-Node: Auto posting tags136301-Node: Auto postings on forecast transactions only137196-Node: Other syntax137666-Node: Balance assignments138438-Node: Balance assignments and costs139966-Node: Balance assignments and multiple files140388-Node: Bracketed posting dates140811-Node: D directive141509-Node: apply account directive143282-Node: Y directive144149-Node: Secondary dates145137-Node: Star comments146622-Node: Valuation expressions147314-Node: Virtual postings147613-Node: Other Ledger directives149237-Node: Other cost/lot notations149999-Node: CSV152840-Node: CSV rules cheatsheet155006-Node: source157304-Node: Data cleaning / data generating commands158708-Node: archive160607-Node: encoding161535-Node: separator162578-Node: skip163231-Node: date-format163881-Node: timezone164826-Node: newest-first165952-Node: intra-day-reversed166665-Node: decimal-mark167267-Node: fields list167747-Node: Field assignment169555-Node: Field names170774-Node: date field172106-Node: date2 field172270-Node: status field172465-Node: code field172655-Node: description field172843-Node: comment field173060-Node: account field173617-Node: amount field174335-Node: currency field177174-Node: balance field177582-Node: if block178105-Node: Matchers179632-Node: Multiple matchers181622-Node: Match groups182430-Node: if table183323-Node: balance-type185386-Node: include186213-Node: Working with CSV186782-Node: Rapid feedback187334-Node: Valid CSV187917-Node: File Extension188793-Node: Reading CSV from standard input189528-Node: Reading multiple CSV files189914-Node: Reading files specified by rule190390-Node: Valid transactions191787-Node: Deduplicating importing192612-Node: Setting amounts193841-Node: Amount signs196368-Node: Setting currency/commodity197433-Node: Amount decimal places198809-Node: Referencing other fields200066-Node: How CSV rules are evaluated201174-Node: Well factored rules203891-Node: CSV rules examples204381-Node: Bank of Ireland204579-Node: Coinbase206176-Node: Amazon207359-Node: Paypal209201-Node: Timeclock216951-Node: Timedot221004-Node: Timedot examples224481-Node: PART 3 REPORTING CONCEPTS226758-Node: Time periods226922-Node: Report start & end date227195-Node: Smart dates228671-Node: Report intervals230794-Node: Date adjustments231368-Node: Start date adjustment231588-Node: End date adjustment232491-Node: Period headings233272-Node: Period expressions234205-Node: Period expressions with a report interval236110-Node: More complex report intervals236558-Node: Multiple weekday intervals238674-Node: Depth239685-Node: Combining depth options240671-Node: Queries241621-Node: Query types244293-Node: acct query244668-Node: amt query244979-Node: code query245676-Node: cur query245871-Node: desc query246477-Node: date query246660-Node: date2 query247056-Node: depth query247347-Node: note query247683-Node: payee query247949-Node: real query248230-Node: status query248435-Node: type query248675-Node: tag query249208-Node: Negative queries249837-Node: not query250019-Node: Space-separated queries250306-Node: Boolean queries250994-Node: expr query252312-Node: any query252992-Node: all query253445-Node: Queries and command options254027-Node: Queries and account aliases254475-Node: Queries and valuation254800-Node: Pivoting255162-Node: Generating data257438-Node: Forecasting259238-Node: --forecast259894-Node: Inspecting forecast transactions260995-Node: Forecast reports262328-Node: Forecast tags263437-Node: Forecast period in detail264057-Node: Forecast troubleshooting265145-Node: Budgeting266216-Node: Amount formatting266776-Node: Commodity display style267020-Node: Rounding268861-Node: Trailing decimal marks269466-Node: Amount parseability270399-Node: Cost reporting272008-Node: Recording costs272839-Node: Reporting at cost274566-Node: Equity conversion postings275331-Node: Inferring equity conversion postings277976-Node: Combining costs and equity conversion postings279118-Node: Requirements for detecting equity conversion postings280343-Node: Infer cost and equity by default ?281865-Node: Value reporting282302-Node: -X Value in specified commodity283260-Node: -V Value in default commoditys284120-Node: Valuation date284857-Node: Finding market price285689-Node: --infer-market-prices market prices from transactions287069-Node: Valuation commodity290113-Node: --value Flexible valuation291546-Node: Valuation examples293389-Node: Interaction of valuation and queries295533-Node: Effect of valuation on reports296250-Node: PART 4 COMMANDS304100-Node: Help commands306889-Node: commands307075-Node: demo307283-Node: help308376-Node: User interface commands310081-Node: repl310292-Node: Examples312556-Node: run313114-Node: Examples 2315529-Node: ui316553-Node: web316690-Node: Data entry commands316818-Node: add317079-Node: add and balance assertions319653-Node: add and balance assignments320227-Node: import320922-Node: Import dry run322001-Node: Overlap detection322949-Node: First import325835-Node: Importing balance assignments327030-Node: Import and commodity styles328085-Node: Import archiving328519-Node: Import special cases329344-Node: Deduplication329562-Node: Varying file name330053-Node: Multiple versions330437-Node: Basic report commands331544-Node: accounts331845-Node: codes334491-Node: commodities335513-Node: descriptions336270-Node: files336730-Node: notes337027-Node: payees337539-Node: prices338451-Node: stats339343-Node: tags341084-Node: Standard report commands342621-Node: print342926-Node: print amount explicitness345657-Node: print alignment346595-Node: print amount style346909-Node: print parseability348139-Node: print other features349416-Node: print output format350377-Node: aregister353662-Node: aregister and posting dates358236-Node: register359137-Node: Custom register output366377-Node: balancesheet367562-Node: balancesheetequity372527-Node: cashflow377862-Node: incomestatement382675-Node: Advanced report commands387524-Node: balance387732-Node: balance features393153-Node: Simple balance report395256-Node: Balance report line format397066-Node: Filtered balance report399426-Node: List or tree mode399945-Node: Depth limiting401458-Node: Dropping top-level accounts402225-Node: Showing declared accounts402735-Node: Sorting by amount403465-Node: Percentages404319-Node: Multi-period balance report405026-Node: Balance change end balance407778-Node: Balance report modes409415-Node: Calculation mode410094-Node: Accumulation mode410798-Node: Valuation mode411899-Node: Combining balance report modes413243-Node: Budget report415273-Node: Using the budget report417573-Node: Budget date surprises419849-Node: Selecting budget goals421213-Node: Budgeting vs forecasting422161-Node: Balance report layout423838-Node: Wide layout425043-Node: Tall layout427448-Node: Bare layout428754-Node: Tidy layout430818-Node: Balance report output432362-Node: Some useful balance reports433136-Node: roi434396-Node: Spaces and special characters in --inv and --pnl436643-Node: Semantics of --inv and --pnl437369-Node: IRR and TWR explained439456-Node: Chart commands442867-Node: activity443048-Node: Data generation commands443545-Node: close443751-Node: close --clopen446816-Node: close --close448712-Node: close --open449236-Node: close --assert449486-Node: close --assign449813-Node: close --retain450492-Node: close customisation451349-Node: close and balance assertions453027-Node: close examples454549-Node: Retain earnings454786-Node: Migrate balances to a new file455289-Node: More detailed close examples456651-Node: rewrite456873-Node: Re-write rules in a file459433-Node: Diff output format460734-Node: rewrite vs print --auto462004-Node: Maintenance commands462718-Node: check462937-Node: Basic checks464020-Node: Strict checks465086-Node: Other checks465959-Node: Custom checks467661-Node: diff468100-Node: setup469308-Node: test472175-Node: PART 5 COMMON TASKS473078-Node: Getting help473311-Node: Constructing command lines474220-Node: Starting a journal file475065-Node: Setting LEDGER_FILE476449-Node: Setting opening balances477707-Node: Recording transactions481029-Node: Reconciling481754-Node: Reporting484143-Node: Migrating to a new file488257-Node: BUGS488706-Node: Troubleshooting489536+Node: P directive124345+Node: payee directive125379+Node: tag directive126001+Node: Periodic transactions126613+Node: Periodic rule syntax128767+Node: Periodic rules and relative dates129590+Node: Two spaces between period expression and description!130367+Node: Auto postings131328+Node: Auto postings and multiple files134614+Node: Auto postings and dates135019+Node: Auto postings and transaction balancing / inferred amounts / balance assertions135460+Node: Auto posting tags136306+Node: Auto postings on forecast transactions only137201+Node: Other syntax137671+Node: Balance assignments138443+Node: Balance assignments and costs139971+Node: Balance assignments and multiple files140393+Node: Bracketed posting dates140816+Node: D directive141514+Node: apply account directive143287+Node: Y directive144154+Node: Secondary dates145142+Node: Star comments146627+Node: Valuation expressions147319+Node: Virtual postings147618+Node: Other Ledger directives149242+Node: Other cost/lot notations150004+Node: CSV152845+Node: CSV rules cheatsheet155011+Node: source157309+Node: Data cleaning / data generating commands158713+Node: archive160612+Node: encoding161540+Node: separator162583+Node: skip163236+Node: date-format163886+Node: timezone164831+Node: newest-first165957+Node: intra-day-reversed166670+Node: decimal-mark167272+Node: fields list167752+Node: Field assignment169560+Node: Field names170779+Node: date field172111+Node: date2 field172275+Node: status field172470+Node: code field172660+Node: description field172848+Node: comment field173065+Node: account field173622+Node: amount field174340+Node: currency field177179+Node: balance field177587+Node: if block178110+Node: Matchers179637+Node: Multiple matchers181627+Node: Match groups182435+Node: if table183328+Node: balance-type185391+Node: include186218+Node: Working with CSV186787+Node: Rapid feedback187339+Node: Valid CSV187922+Node: File Extension188798+Node: Reading CSV from standard input189533+Node: Reading multiple CSV files189919+Node: Reading files specified by rule190395+Node: Valid transactions191792+Node: Deduplicating importing192617+Node: Setting amounts193846+Node: Amount signs196373+Node: Setting currency/commodity197438+Node: Amount decimal places198814+Node: Referencing other fields200071+Node: How CSV rules are evaluated201179+Node: Well factored rules203896+Node: CSV rules examples204386+Node: Bank of Ireland204584+Node: Coinbase206181+Node: Amazon207364+Node: Paypal209206+Node: Timeclock216956+Node: Timedot221009+Node: Timedot examples224486+Node: PART 3 REPORTING CONCEPTS226763+Node: Time periods226927+Node: Report start & end date227200+Node: Smart dates228676+Node: Report intervals230799+Node: Date adjustments231373+Node: Start date adjustment231593+Node: End date adjustment232496+Node: Period headings233277+Node: Period expressions234210+Node: Period expressions with a report interval236115+Node: More complex report intervals236563+Node: Multiple weekday intervals238679+Node: Depth239690+Node: Combining depth options240676+Node: Queries241626+Node: Query types244298+Node: acct query244673+Node: amt query244984+Node: code query245681+Node: cur query245876+Node: desc query246482+Node: date query246665+Node: date2 query247061+Node: depth query247352+Node: note query247688+Node: payee query247954+Node: real query248235+Node: status query248440+Node: type query248680+Node: tag query249213+Node: Negative queries249842+Node: not query250024+Node: Space-separated queries250311+Node: Boolean queries250999+Node: expr query252317+Node: any query252997+Node: all query253450+Node: Queries and command options254032+Node: Queries and account aliases254480+Node: Queries and valuation254805+Node: Pivoting255167+Node: Generating data257443+Node: Forecasting259243+Node: --forecast259899+Node: Inspecting forecast transactions261000+Node: Forecast reports262333+Node: Forecast tags263442+Node: Forecast period in detail264062+Node: Forecast troubleshooting265150+Node: Budgeting266221+Node: Amount formatting266781+Node: Commodity display style267025+Node: Rounding268866+Node: Trailing decimal marks269471+Node: Amount parseability270404+Node: Cost reporting272013+Node: Recording costs272844+Node: Reporting at cost274571+Node: Equity conversion postings275336+Node: Inferring equity conversion postings277981+Node: Combining costs and equity conversion postings279123+Node: Requirements for detecting equity conversion postings280348+Node: Infer cost and equity by default ?281870+Node: Value reporting282307+Node: -X Value in specified commodity283265+Node: -V Value in default commoditys284125+Node: Valuation date284862+Node: Finding market price285694+Node: --infer-market-prices market prices from transactions287074+Node: Valuation commodity290118+Node: --value Flexible valuation291551+Node: Valuation examples293394+Node: Interaction of valuation and queries295538+Node: Effect of valuation on reports296255+Node: PART 4 COMMANDS304105+Node: Help commands306894+Node: commands307080+Node: demo307288+Node: help308381+Node: User interface commands310086+Node: repl310297+Node: Examples312561+Node: run313119+Node: Examples 2315534+Node: ui316558+Node: web316695+Node: Data entry commands316823+Node: add317084+Node: add and balance assertions319658+Node: add and balance assignments320232+Node: import320927+Node: Import dry run322006+Node: Overlap detection322954+Node: First import325840+Node: Importing balance assignments327035+Node: Import and commodity styles328090+Node: Import archiving328524+Node: Import special cases329349+Node: Deduplication329567+Node: Varying file name330058+Node: Multiple versions330442+Node: Basic report commands331549+Node: accounts331850+Node: codes334496+Node: commodities335518+Node: descriptions336275+Node: files336735+Node: notes337032+Node: payees337544+Node: prices338456+Node: stats339348+Node: tags341089+Node: Standard report commands342626+Node: print342931+Node: print amount explicitness345662+Node: print alignment346600+Node: print amount style346914+Node: print parseability348144+Node: print other features349421+Node: print output format350382+Node: aregister353667+Node: aregister and posting dates358241+Node: register359142+Node: Custom register output366382+Node: balancesheet367567+Node: balancesheetequity372532+Node: cashflow377867+Node: incomestatement382680+Node: Advanced report commands387529+Node: balance387737+Node: balance features393158+Node: Simple balance report395261+Node: Balance report line format397071+Node: Filtered balance report399431+Node: List or tree mode399950+Node: Depth limiting401463+Node: Dropping top-level accounts402230+Node: Showing declared accounts402740+Node: Sorting by amount403470+Node: Percentages404324+Node: Multi-period balance report405031+Node: Balance change end balance407783+Node: Balance report modes409420+Node: Calculation mode410099+Node: Accumulation mode410803+Node: Valuation mode411904+Node: Combining balance report modes413248+Node: Budget report415278+Node: Using the budget report417578+Node: Budget date surprises419854+Node: Selecting budget goals421218+Node: Budgeting vs forecasting422166+Node: Balance report layout423843+Node: Wide layout425048+Node: Tall layout427453+Node: Bare layout428759+Node: Tidy layout430823+Node: Balance report output432367+Node: Some useful balance reports433141+Node: roi434401+Node: Spaces and special characters in --inv and --pnl436648+Node: Semantics of --inv and --pnl437374+Node: IRR and TWR explained439461+Node: Chart commands442872+Node: activity443053+Node: Data generation commands443550+Node: close443756+Node: close --clopen446821+Node: close --close448717+Node: close --open449241+Node: close --assert449491+Node: close --assign449818+Node: close --retain450497+Node: close customisation451354+Node: close and balance assertions453032+Node: close examples454554+Node: Retain earnings454791+Node: Migrate balances to a new file455294+Node: More detailed close examples456656+Node: rewrite456878+Node: Re-write rules in a file459438+Node: Diff output format460739+Node: rewrite vs print --auto462009+Node: Maintenance commands462723+Node: check462942+Node: Basic checks464025+Node: Strict checks465091+Node: Other checks465964+Node: Custom checks467666+Node: diff468105+Node: setup469313+Node: test472180+Node: PART 5 COMMON TASKS473083+Node: Getting help473316+Node: Constructing command lines474225+Node: Starting a journal file475070+Node: Setting LEDGER_FILE476454+Node: Setting opening balances477712+Node: Recording transactions481034+Node: Reconciling481759+Node: Reporting484148+Node: Migrating to a new file488262+Node: BUGS488711+Node: Troubleshooting489541  End Tag Table 
embeddedfiles/hledger.txt view
@@ -16,7 +16,7 @@        and  largely  compatible  with  ledger(1), and largely interconvertible        with beancount(1). -       This manual is for hledger's command line  interface,  version  1.50.3.+       This manual is for hledger's command line  interface,  version  1.50.4.        It also describes the common options, file formats and concepts used by        all  hledger  programs.  It might accidentally teach you some bookkeep-        ing/accounting as well!  You don't need to know everything in  here  to@@ -2537,22 +2537,22 @@        any  character  in  a  range;  *  to match zero or more characters that        aren't a path separator (like /); ** to match zero or more  subdirecto-        ries  and/or  zero or more characters at the start of a file name; etc.-       Also, hledger's globs always exclude the including  file  itself.   So,-       you can do+       For convenience, include always excludes the current file.  So, you can+       do -       o include  *.journal  to include all other journal files in the current+       o include *.journal to include all other journal files in  the  current          directory (excluding dot files) -       o include **.journal to include all other journal files in this  direc--         tory and below (excluding dot directories/files)+       o include  **.journal to include all other journal files in this direc-+         tory and below (excluding dot files and top-level dot directories)         o include timelogs/2???.timedot to include all timedot files named like          a year number. -       There  is  a limitation: hledger's globs always exclude paths involving-       dot files or dot directories.  This is a workaround for unavoidable dot-       directory traversal; you can disable it and revert to  older  behaviour-       with the --old-glob flag, for now.+       Note * and ** usually won't match dot files or  dot  directories,  with+       one  exception:  ** does search non-top-level dot directories.  If this+       causes problems, make your glob pattern more  specific  (eg  **.journal+       instead of **).         If you are using many, or deeply nested, include files, and have an er-        ror  that's hard to pinpoint: a good troubleshooting command is hledger@@ -10733,4 +10733,4 @@ SEE ALSO        hledger(1), hledger-ui(1), hledger-web(1), ledger(1) -hledger-1.50.3                   November 2025                      HLEDGER(1)+hledger-1.50.4                   December 2025                      HLEDGER(1)
hledger.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           hledger-version:        1.50.3+version:        1.50.4 synopsis:       Command-line interface for the hledger accounting system description:    The command-line interface for the hledger accounting system.                 Its basic function is to read a plain text file describing@@ -149,7 +149,7 @@   autogen-modules:       Paths_hledger   ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures -Wno-orphans -Wno-type-defaults -Wno-unused-do-bind -optP-Wno-nonportable-include-path-  cpp-options: -DVERSION="1.50.3"+  cpp-options: -DVERSION="1.50.4"   build-depends:       Decimal >=0.5.1     , Diff >=0.2@@ -166,7 +166,7 @@     , githash >=0.1.6.2     , hashable >=1.2.4     , haskeline >=0.6-    , hledger-lib >=1.50.3 && <1.51+    , hledger-lib >=1.50.4 && <1.51     , http-client     , http-types     , lucid@@ -206,7 +206,7 @@   hs-source-dirs:       app   ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures -Wno-orphans -Wno-type-defaults -Wno-unused-do-bind -optP-Wno-nonportable-include-path -threaded -with-rtsopts=-T-  cpp-options: -DVERSION="1.50.3"+  cpp-options: -DVERSION="1.50.4"   build-depends:       Decimal >=0.5.1     , aeson >=1 && <2.3@@ -222,7 +222,7 @@     , githash >=0.1.6.2     , haskeline >=0.6     , hledger-    , hledger-lib >=1.50.3 && <1.51+    , hledger-lib >=1.50.4 && <1.51     , http-client     , http-types     , math-functions >=0.3.3.0@@ -257,7 +257,7 @@   hs-source-dirs:       test   ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures -Wno-orphans -Wno-type-defaults -Wno-unused-do-bind -optP-Wno-nonportable-include-path-  cpp-options: -DVERSION="1.50.3"+  cpp-options: -DVERSION="1.50.4"   build-depends:       Decimal >=0.5.1     , aeson >=1 && <2.3@@ -273,7 +273,7 @@     , githash >=0.1.6.2     , haskeline >=0.6     , hledger-    , hledger-lib >=1.50.3 && <1.51+    , hledger-lib >=1.50.4 && <1.51     , http-client     , http-types     , math-functions >=0.3.3.0@@ -324,7 +324,7 @@     , githash >=0.1.6.2     , haskeline >=0.6     , hledger-    , hledger-lib >=1.50.3 && <1.51+    , hledger-lib >=1.50.4 && <1.51     , html     , http-client     , http-types