Ledger Rust collaboration
alensiljak opened this issue · 6 comments
Hi, Eric!
Would you be interested in collaborating in Ledger rewrite to Rust? After a poll on Reddit, it seems there's enough interest to initiate such a project. I'm wondering if you'd like to contribute your knowledge and experience using this project.
The meeting point is https://github.com/ledger-rs/
Currently in incubation phase.
Cheers!
Alen,
I would be up for collaborating. I have worked with Eric to advance rust_ledger and then also played around with https://gitlab.com/dantuck/bankroll to do it in a few different ways. Curious about your intended approach with ledger-rs
. Are you you going to create a new tokenizer to parse the files or use one already in development https://crates.io/crates/ledger-parser?
Hi, @dantuck ! You're most welcome to join in.
Look, the story is that I posted a question on Plain Text Accounting channel on Reddit about a Rust Ledger port and there was some enthusiastic response, including from John. I followed that up with a poll, to see how many people would be interested in pooling in. John had given some time estimates and it is a significant effort for a single person or even a small team.
The response on Reddit was way higher than expected. Hence, I decided to organize some infrastructure and lay some ground work in establishing collaboration. The purpose of the organization, linked above, is exactly to provide answers to the type of questions you just asked. :D
No, seriously. John was suggesting a full rewrite, module by module, and then moving forward from there. In the Incubator repository, the Discussions section is the focus. I'd like to see how big of a team we can get, what kind of knowledge and experience we have on disposal, figure out the existing needs, and establish some goals and directions. Otherwise, I don't see much point in going it alone. This does not seem like an effort for one person.
It seems that you already have significant background knowledge in this area. I have not worked on the Ledger source code nor have so far tried rewriting it. I was mostly making other small tools within the ecosystem (i.e. https://cashier.alensiljak.eu.org), hoping that someone would initiate a revival. Now I think I'm ready to plunge in because the time is running whether we do something in that regard or not. So I think better to chip away bit by bit. Together we can certainly do more!
I'm currently focusing (first on the infrastructure, as mentioned) on establishing some testing strategy/harness/plan to cover the original Ledger and any new application in Rust. I would like to have that sort of safety net before actually starting coding.
That's the general idea. The poll just finished on Monday and I created the repo this week.
Hi, @curbyac ! Happy to see that! Please have a look at https://github.com/ledger-rs.
Everyone is more than welcome. It is an early stage but do come in and contribute your views to the discussions, request to join the organization, star or watch a repo. Please feel free to participate in any area and at any level you feel comfortable with.
@alensiljak thanks so much for reaching out. This is an exciting idea! I don't have any bandwidth to contribute in a meaningful way at the moment, but I am very interested in contributing to the project in the future. I'll keep an eye on the project in the meantime.
I'll contribute this idea formally to the ledger-rs
repo, but one useful thing that this repo contains is https://github.com/ebcrowder/rust_ledger/blob/main/.github/workflows/release.yml, which, as it references at the top, was lifted from https://github.com/BurntSushi/ripgrep. It packages multi-platform binaries (linux, macOS, windows) whenever a release tag is pushed upstream. You might find it useful when evaluating ways to package binaries.
Thanks a lot for the feedback! I understand the issue with the bandwidth. It is probably the same for all of us involved. GitHub helps a lot, though, by providing the tools to keep in touch in regards to projects, fortunately. I've sent you an invite!
That's an interesting tip for the multi-platform build. I'm actually quite frequently using Ledger on the phone and building an aarch64-linux-android is a real PITA. :)