-
James Long authoredJames Long authored
Actual was just open-sourced so the contributing model isn't fully fleshed out yet.
Expectations
Personally, I would like to see an ecosystem of minor forks that make small changes to Actual and continually rebase on the latest version. Unlike what some people think, forks are a healthy sign of a community in my opinion.
We aren't going to take every single little change. Don't be offended if we close your PR. In order for the project to stay healthy, we need to guard our bandwidth and also only take changes that align with Actual.
Please ask first before making a large change; you might waste a lot of work if it doesn't align with how Actual should work.
Here are some initial guidelines for how contributions will be treated:
-
The mental health of the maintainers will be prioritized above all else. If this means some things get lost and PRs are unreviewed because maintainers are spending time with family or on themselves, we celebrate that.
-
Multiple maintainers are key to this being a healthy project. Currently, only I (@jlongster) have maintainer rights. I am actively looking for more people to come on as maintainers. If nobody steps up, expect less activity on this project.
-
An open PR does not automatically deserve time for a full review and acceptance. It's up to the PR author to convince the maintainers that the change is good and worth reviewing. This involves a clear description for why the the change is being made, detailing the tradeoffs, and ideally a link to a live demo where Actual is running with the changes. (Ideally, we would automatically generate a live demo)
-
We especially welcome improvements in automation: creating github actions to automatically generate builds, making the release process easier, etc.
Main contributors
- @jlongster
Project ideas
The code needs a lot of improvements. When it was just me (@jlongster) I would often find myself halfway through an improvement overall, but always had to put it aside to work on something else. This shows in the code; there's a lot of things that I wanted to improve but was never able to complete. These are list of projects on the top of my mind that I would love to see progress on.
A mobile web app
One of the most pressing needs is a mobile app based on the web app. This could mean making the web app responsive, or a separate app that does a few basic things.
We are deprecating the native iOS/Android apps because we don't have bandwidth to support development and distribution of them (it's complicating submitting them to the app stores, etc).
Ideally you'd be able to enter transactions on mobile.
Transitioning to TypeScript
This is something I should have done a long time ago. I'd love any help setting up infrastructure for TypeScript and starting to transitioning code to it, particularly the backend.
Rewriting the transaction table
The transaction table is a very complex component because of all the interactions. The original goal was to embrace inline editing fully and never pull the user out into something like a modal or a drawer. I like how this worked out for some workflows, but it made other workflows plain awkward.
For example, splitting a transaction. Currently, it all happens inline which means the user could be in the middle of splitting a transaction and navigate somewhere else. The transaction needs to support that middle state where the subtractions don't equal the parent transaction amount. Currently, we show a little "error" popup near the transacton when it's in this state.