github oss-apps/split-pro v1.6.0-alpha.0

latest release: v1.5.8
pre-release13 hours ago

Major changes ahead

⚠⚠⚠ Backup your database before updating and follow the steps below!!!
This release is not meant for daily use, stuff will break!

This release will include major database changes, so DB backup is absolutely vital! To make this process as seamless as possible, we have created a new ossapps/postgres image, which is just a regular postgres image with the pg_cron extension installed (source).

DB image update

  1. Determine your currently used major postgres version using docker exec -it splitpro-db psql --version
  2. Determine the version of Debian using docker exec -it splitpro-db cat /etc/os-release
  3. In your compose file, change the image name from postgres to ossapp/postgres and add the relevant tag from the ones we have built. The minor versions shouldn't matter as lons as you match the major version and debian version.
  4. If you encounter issues and require a specific version, ask us in the discussion to build it.
  5. Add a starting command to your postgres service, like in here

New features

  • currency conversions are here! Configure one of the providers in the README and start converting group balances and individual expense amount! More features (and docs) will be added during the alpha, such as balance views in preferred currency or user balance conversions
  • recurring transactions you can now select a recurrence cron rule on expenses! You will see a new icon in the add expense page with a pop up for setting up these rules (UI refresh is also expected) and manage them from a new tab accessible via the activity page.
  • bank transaction import connect a Plaid account to fetch your bank data and convert them into SplitPro expenses directly! Still a bit WIP, but kudos to @alexanderwassbjer !

Breaking changes

This alpha release is mainly focused on testing out not only the new features, but also the breaking changes they carry with them. Apart from the DB image transition:

  • moving from expense cuid to uuid. We needed a postgres native id solution to support recurrent transaction input via pg_cron. Make sure all your transactions are properly carried over. You can use pgAdmin or psql to query your expense+expense participant tables before and after the migration. Ideas on how to automate this check are welcome
  • migration to DB calculated balances. Maintaining a balance table proved to be very cumbersome and bug prone once advanced features started being implemented. Instead, we want to rely on the speed of DBMS and utilize a database View for that, treating expenses themselves as the source of truth rather than the surgically updated table. Many thanks to @FriesischScott for the work on this and the benchmarks proving the feasibility of this approach.

Testing

There is a substantial amount of new code and potential polishing required so any testing and feedback (both bugs and LGTM) is very helpful! For the balances, we currently still use the old tables, but on each call a comparison with the view is made and any mismatch is logged as an error by the server. It's not visible to the user, but I am asking you to run this version for a while and report any errors that may arise. Keep in mind that there are bugs in the current balances, so not every mismatch is a bug in views. In groups you can run recalculate balances to refresh.

Also keep in mind that recurring transactions are not and will not be supported by balance tables (only views).


Detailed changes

New Contributors

Last but not least, a huge shoutout to @FelixDz for supporting the project with a donation!

Full Changelog: v1.5.7...v1.6.0-alpha.0

Don't miss a new split-pro release

NewReleases is sending notifications on new releases.