summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Make xact hashes independent of posting orderJohn Wiegley2024-08-058-40/+50
| | | | | Also, support matching provided hashes against a prefixed of the generated hash.
* Add documentation for the --hashes optionJohn Wiegley2024-08-052-1/+21
|
* Add positive and negative tests for the --hashes optionJohn Wiegley2024-08-052-0/+51
|
* --hashes option requires an argument to specify the algorithmJohn Wiegley2024-08-052-6/+21
| | | | | At the moment only "sha512" or "SHA512" is accepted, but this could extend to more algorithms in the future.
* Add support for hash chaining to detect modifications in postingsJohn Wiegley2024-08-0515-28/+592
| | | | | | | | | | | | | | | | | | | The following details of a posting contribute to its hash: fullname of account string representation of amount Each posting hashes contributes to the transaction hash, which is compromised of: previous transaction’s hash (as encountered in parsing order) actual date optional auxiliary date optional code payee hashes of all postings Note that this means that changes in the “code” or any of the comments
* Fix denominator of roundto resultMax Nikulin2024-08-055-3/+145
| | | | | | | | | | | | | | | | | | Multiprecision rational created from a double value may have large power of 2 denominator since fractional decimal numbers can not be represented as binary floating point numbers. It leads to failed assertion when result is compared to a value converted directly from strings. Use integer multiprecision arithmetics to round numbers to ensure proper denominator. Inspired by python gmpy2 package <https://github.com/aleaxit/gmpy/blob/3e4564ae9d/src/gmpy2_mpq_misc.c#L315> The change makes `roundto` symmetric for positive/negative arguments. Halves are rounded to nearest even. Rounded away from zero are discussed in #1663 and it may be achieved with minimal modification. - See #2329 - Closes #1983
* Merge pull request #2367 from Chris927/masterAlexis Hildebrandt2024-07-241-1/+1
|\
| * Fix acprep scriptChris Oloff2024-07-241-1/+1
|/ | | | | | | | | The script has a syntax error, caused by commit 815305b9: in escape_string() function the first argument to re.sub() was probably changed unintentionally. This reverts this one line. To test, I used acprep to build the binary locally, which succeeded. More testing might be needed, I don't have enough context to do that.
* Use https scheme for links in CONTRIBUTING.mdAlexis Hildebrandt2024-07-101-12/+12
| | | | [ci skip]
* print: Align amounts even when account names are longGwyneth Morgan2024-07-102-30/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When the account name is longer than the --account-width (default 36), the amounts stop aligning: 2023/01/01 Transaction with long account names Assets:Very:Long:Account:Name:That:Will:Push:The:Amount -10 ABC Assets:Another:Long:Account:Name:That:Will:Push:The:Amount -10 ABC Expenses:Short 20 ABC One can set a larger --account-width, but that is not a great solution for cases where you have only a few accounts with problematically long names. Instead, keep the current account width wherever possible, but when an account name is longer than the account width, account for that and still align the values: 2023/01/01 Transaction with short account names Assets:Short -10 ABC Assets:Short -10 ABC Expenses:Short 20 ABC 2023/01/01 Transaction with long account names Assets:Very:Long:Account:Name:That:Will:Push:The:Amount -10 ABC Assets:Another:Long:Account:Name:That:Will:Push:The:Amount -10 ABC Expenses:Short 20 ABC This is similar to hledger's behavior.
* cmake: Clean up add_ledger_library_dependencies macroAlexis Hildebrandt2024-07-081-9/+7
|
* cmake: Fix BOOST_REGEX_UNICODE_RUNS check when USE_PYTHON=ONAlexis Hildebrandt2024-07-081-1/+1
|
* cmake: Add Python tests only when building with Python supportAlexis Hildebrandt2024-07-082-3/+6
| | | | Fixes #2324
* Fix conditional compilation of Python <3.12 codeAlexis Hildebrandt2024-07-081-4/+3
|
* Fix Python 3.12 deprecation warningAlexis Hildebrandt2024-07-081-3/+18
| | | | | | as "the global configuration variable Py_UnbufferedStdioFlag was deprecated in Python 3.12 and using PyConfig.buffered_stdio is recommended instead." — https://peps.python.org/pep-0741/
* Use Python raw strings for regex methods argumentAlexis Hildebrandt2024-07-0810-113/+113
|
* Add documentation for 'stats' and 'select'Monster05062024-07-081-2/+34
|
* fix documentation syntax (#3)Igbanam Ogbuluijah2024-07-081-4/+4
|
* update documentation (#2)Igbanam Ogbuluijah2024-07-081-1/+25
|
* Restore expr context after calc, #2330 #2343Tavis Ormandy2024-07-082-2/+17
| | | | | | | Part of the expr_t::compile() process is to store the current scope, but In post_t::add_to_value that scope is temporary and on the stack. Restore the original context after that process is complete.
* Fix Query Parser for Automated Transactions (#1)Igbanam Ogbuluijah2024-06-253-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add failing test for use case TBH I don't know what I'm doing here, but this seems to fail for the right reasons enough to reflect the parser bug here. * Append to the ident on a closing brace ')' When parsing the automated rule, a scanner reads the line left-to-right char-by-char. The default behaviour is to append the char under the cursor to some `ident` string. When the cursor is on a ')', it skips the default handling and switches into some special handling: it tries to test the string it's reading if it's one of the keywords it knows, to select which type of token just got scanned. If what was scanned is not a known token, it defaults to `token_t::TERM` and returns a new token with the currently accumulated `ident` as a `token_t::TERM`. Issue is, since it skipped the appending to do some custom handling, the `token_t::TERM` will always be without its closing brace. The scanner needs to append the character under the cursor if it's falling through to default processing. * fix test case - ensure proper spacing for the posting to have an amount - ensure the posting balances against an account - the meaning of the number after `->` is the exit code * undo wrong approach * consume_next if unbalanced_braces * how this can be extended
* Merge pull request #2345 from ↵Alexis Hildebrandt2024-05-151-1/+1
|\ | | | | | | | | ledger/dependabot/github_actions/cachix/install-nix-action-27 chore(deps): bump cachix/install-nix-action from 26 to 27
| * chore(deps): bump cachix/install-nix-action from 26 to 27dependabot[bot]2024-05-151-1/+1
|/ | | | | | | | | | | | | | Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 26 to 27. - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Commits](https://github.com/cachix/install-nix-action/compare/v26...V27) --- updated-dependencies: - dependency-name: cachix/install-nix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
* Merge pull request #2337 from cho-m/boost-1.85.0Alexis Hildebrandt2024-05-151-1/+0
|\ | | | | Fix build with Boost 1.85.0
| * Fix build with Boost 1.85.0Michael Cho2024-04-251-1/+0
|/ | | | Signed-off-by: Michael Cho <michael@michaelcho.dev>
* Merge pull request #2334 from ↵Alexis Hildebrandt2024-03-081-1/+1
|\ | | | | | | | | ledger/dependabot/github_actions/cachix/install-nix-action-26 chore(deps): bump cachix/install-nix-action from 25 to 26
| * chore(deps): bump cachix/install-nix-action from 25 to 26dependabot[bot]2024-03-081-1/+1
|/ | | | | | | | | | | | | | Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 25 to 26. - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Commits](https://github.com/cachix/install-nix-action/compare/v25...v26) --- updated-dependencies: - dependency-name: cachix/install-nix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
* Expand the size of an arbitrary safety limitJohn Wiegley2024-01-191-1/+1
|
* Change an assertion into an if testJohn Wiegley2024-01-191-1/+2
|
* Merge pull request #2323 from ↵Alexis Hildebrandt2024-01-151-1/+1
|\ | | | | | | | | ledger/dependabot/github_actions/cachix/install-nix-action-25 chore(deps): bump cachix/install-nix-action from 24 to 25
| * chore(deps): bump cachix/install-nix-action from 24 to 25dependabot[bot]2024-01-151-1/+1
|/ | | | | | | | | | | | | | Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 24 to 25. - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Commits](https://github.com/cachix/install-nix-action/compare/v24...v25) --- updated-dependencies: - dependency-name: cachix/install-nix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
* Merge pull request #2313 from afh/update-acprepAlexis Hildebrandt2024-01-051-27/+40
|\ | | | | Update acprep
| * acprep: Add support for nix develop on macOSAlexis Hildebrandt2023-12-061-0/+7
| |
| * acprep: Replace hardcoded paths with shutil.whichAlexis Hildebrandt2023-12-061-3/+3
| |
| * acprep: Minor clean-upAlexis Hildebrandt2023-12-061-3/+1
| |
| * acprep: Simplify detecting system via os.unameAlexis Hildebrandt2023-12-061-21/+2
| |
| * acprep: Add dependencies for Debian trixieAlexis Hildebrandt2023-12-061-0/+27
| |
* | Fix compiler warning about std::binary_functionAlexis Hildebrandt2023-12-123-2/+8
| | | | | | | | being deprecated as of C++11
* | Merge pull request #2315 from afh/update-utfcppAlexis Hildebrandt2023-12-1232-519/+1580
|\ \ | | | | | | utfcpp: Update to 4.0.4
| * | utfcpp: Update to 4.0.4Alexis Hildebrandt2023-12-1032-519/+1580
| | |
* | | Merge pull request #2316 from afh/improve-manual-testingAlexis Hildebrandt2023-12-121-0/+4
|\ \ \ | | | | | | | | test: Accept test names as arguments
| * | | test: Accept test names as argumentsAlexis Hildebrandt2023-12-091-0/+4
| | | |
* | | | cmake: Minor clean-up regarding ICU versionAlexis Hildebrandt2023-12-121-1/+2
|/ / /
* / / chore: Fix inline python format-stringsAlexis Hildebrandt2023-12-082-3/+3
|/ /
* | Merge pull request #2291 from jstamant/doc-updateAlexis Hildebrandt2023-12-071-7/+9
|\ \ | |/ |/| Minor documentation update - on posting comments and fixed some examples
| * applied suggestion from code reviewJustin St-Amant2023-12-071-1/+1
| | | | | | Co-authored-by: Alexis Hildebrandt <afh@surryhill.net>
| * Minor documentation update - on posting comments and fixed some examplesJustin St-Amant2023-09-201-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | Added to "Transactions and Comments" section 4.7.1 to indicate that posting comments *must* be preceded by at least two spaces. I also applied this rule consistently to the entire documentation, which only required changes in 4 locations. I don't think the `ledger` binary cares about spaces in front of posting comments. I never noticed this until I tried using `ledger-mode`'s `ledger-post-edit-amount`, which was causing issues with comments that don't have the proper spacing.
* | Merge pull request #2288 from burntraisin/unrecognized-versionAlexis Hildebrandt2023-12-061-2/+19
|\ \ | | | | | | Add support for Ubuntu 22.04 Jammy in ./acprep
| * | Add support for Ubuntu 22.04 Jammy in ./acprepburntraisin2023-09-041-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Running `./acprep dependencies` in Ubuntu 22.04 Jammy while building ledger from source returns: acprep: INFO: Invoking primary phase: dependencies acprep: INFO: Executing phase: dependencies acprep: INFO: Installing Ledger's build dependencies ... acprep: INFO: Looks like you are using APT on Ubuntu jammy acprep: INFO: I do not recognize your version of Ubuntu! This error was also present when installing on Ubuntu 20.04 Focal. The solution for Focal is the same for Jammy, which is to add `ubuntu-jammy` to `BoostInfo` and `jammy` as another `release`.
* | | Merge pull request #2311 from afh/modernize-test-scriptsAlexis Hildebrandt2023-12-069-196/+161
|\ \ \ | | | | | | | | tests: Modernize test scripts