hpdeifel / hledger-iadd

A terminal UI as drop-in replacement for hledger add.
BSD 3-Clause "New" or "Revised" License
82 stars 8 forks source link

Consider making hledger-iadd an official hledger add-on #39

Open the-solipsist opened 5 years ago

the-solipsist commented 5 years ago

Hi, @hpdeifel and @simonmichael, would you consider making hledger-iadd an official add-on of hledger? Distros like Arch Linux package all the official add-ons, but don't have hledger-iadd. It's currently very difficult to have an up-to-date version of hledger with hledger-iadd without installing multiple gigabytes of Stack stuff (15GB on my laptop, making .stack the single largest folder on a 128GB drive!), and even the docker images for hledger have add-ons, but only the official ones.

Or perhaps one may even consider making into a built-in command like add?

simonmichael commented 5 years ago

Is that an explicit policy ? And couldn't someone add more packages ?

For reference, the "official" designation comes from http://hledger.org/manual.html#add-on-commands: "Official add-ons.. are maintained and released along with hledger." While "Third party add-ons.. are maintained separately, and usually updated shortly after a hledger release."

simonmichael commented 5 years ago

PS re the other problem, size of stack deps, I feel your pain. Normally we (eg the hledger-install script) try to reuse the same resolver for all packages. hledger and hledger-iadd resolver requirements might be out of step just now. Things should improve with a release soon.

hpdeifel commented 5 years ago

That question has come up a few times and the answer has always been "not yet", since I still wanted to have the the freedom of iterating on the design without being constrained by hledger's release schedule and stability requirements. The reality is that I don't have that much time currently and so hledger itself probably moves more quickly than hledger-iadd. Otoh, I still have some vague ideas for a UI redesign and I'd like to try that in the new year.

There is nothing stopping distros from packaging hledger-iadd right now, even without the "official" label. I guess there is just too little demand for it. Arch currently doesn't even have an AUR package, which would probably be the first step to getting it packaged in the official repos.

hpdeifel commented 5 years ago

btw, would it help if I provided statically linked binaries for Arch on the github release page?

the-solipsist commented 5 years ago

I would be delighted to have binaries for Arch/Debian! It would save me a lot of trouble, as I could just use that. I also noticed that none of the Docker images for hledger include hledger-iadd.

Here is the PKGBUILD for hledger on Arch's repositories.

Data entry is the main hurdle for people to get into plain text accounting, and hledger-iadd addresses that problem head-on. hledger-add was the main reason I chose hledger over ledger, and hledger-iadd has now become a must-have for me to use/recommend hledger. But installing all these tools is very difficult still. What would be most excellent is if hledger-web provided a data entry mode similar to/backed by hledger-iadd. That way, those who aren't comfortable with the command-line, but want a simple double-entry accounting system can use hledger.

simonmichael commented 5 years ago

What's missing from hledger-web's add form, for hledger-iadd users ?

the-solipsist commented 5 years ago

What's missing from hledger-web's add form, for hledger-iadd users ?

The auto-suggestions are the most important, imho.

  1. Auto-suggestions. 1.1. Dates don't get auto-suggested (hleger-iadd defaults to today / yesterday for the first few hours after 00:00) 1.2. Accounts don't get auto-suggested (this is done based on past transactions with the same description, and is usually done in the same order as the previous transactions) 1.3. Amounts don't get auto-suggest (this is done based on past transactions with the same description and based on each account)

  2. Typed suggestions / auto-complete. 2.1 In hledger-iadd, if I had a previous entry with the description "DB Ferry", that would show up as a drop-down suggestion even if I start typing "fer". In hledger-web, I need to type "db" for it to show up. This applies not just to the description field, but to all account fields as well. This is very helpful, since I don't need to type Assets:Cash, e.g., I can type start typing ca and press tab. 2.2 (non-essential) If I type 28 in the date field, then hledger-iadd auto-expands that to 2018/12/28 after I press tab, while hledger-web doesn't. This isn't essential (since hledger-web writes the full date in the journal), but expanding the date makes it easier to ensure that I haven't made a mistake in the month. 2.3 (non-essential) Any commodity amount without a specified commodity gets auto-completed (prepended) with the default commodity in hledger-iadd. And the commodity amounts are re-written with the default separators as well. While hledger-web does this as well, as with "date", it only does so in the journal, and this isn't visible on the screen. This is a nice-to-have feature.

  3. "Add" box 3.1. In hledger-web, I need to type a and then press tab twice to get it to focus on the "date" field. In hledger-iadd, it is automatically in "date". It's quite irritating to have to type tab twice to start entering the transactions. 3.2 There is no "add" mode. I need to click on "Add transaction" after each transaction, which makes adding a bunch of transactions a pain. (Also, a small problem: Ctrl - or Ctrl + zooms out/in in both Firefox and Chromium.) 3.3. It takes around 3-4 seconds for a transaction to be added in hledger-web while it is almost instantaneous in hledger-iadd.

simonmichael commented 5 years ago

That's an excellent write-up, thanks. I agree with all points. Some of them used to work better in hledger-web but have regressed for various reasons.

hpdeifel commented 5 years ago

@the-solipsist: In case you're still interested, there is now a binary AUR package.

This should make installation for Archlinux users a lot easier. Let's see how it goes.

the-solipsist commented 5 years ago

@the-solipsist: In case you're still interested, there is now a binary AUR package.

This should make installation for Archlinux users a lot easier. Let's see how it goes.

Thanks so much for this. I use Arch on my RPi 2, and only got around to installing it today. I used yay -S hledger-iadd-bin, but sadly after installing it, I get:

fish$ hledger-iadd
Failed to execute process '/usr/bin/hledger-iadd'. Reason:
exec: Exec format error
The file '/usr/bin/hledger-iadd' is marked as an executable but could not be run by the operating system.

In short, it is using the AMD64 binary (from your release page) instead of compiling the source code for ARMv7. Would it be difficult to do an ARM binary release as well?

hpdeifel commented 5 years ago

In short, it is using the AMD64 binary (from your release page) instead of compiling the source code for ARMv7. Would it be difficult to do an ARM binary release as well?

I don't have a dev setup for ARM compilation, but I suppose I could set that up if there's demand. I've created a new issue to track this: #43