~tristan957/harvest-almanac

ref: 712f6530d46b1eb6e15e8acc62bbdbf8790a8d95 harvest-almanac/CONTRIBUTING.md -rw-r--r-- 1.8 KiB
712f6530Tristan Partin meson: fixed test and added include guard to generated enums file 1 year, 10 months ago

#Contributing

Harvest Almanac is composed of two components:

  • libharvest-glib
  • harvest-almanac

#libharvest-glib

libharvest-glib is an API wrapper around the Harvest API V2. It makes use of the GObject type system around its entities.

#harvest-almanac

harvest-almanac is the GUI application written in GTK to interact with Harvest. It uses libharvest-glib to do this.

#Development

#Setup

This project has only been tested with gcc. The build system for the project is Meson. Make sure that is installed on your system.

CC=gcc meson build

#Dependencies

This project has been configured to use Meson's WrapDB if development libraries are not found on the host system. If you want to use WrapDB-provided dependencies, simply run the command

meson configure -Dwrap_mode=forcefallback build

#Building

This project includes support for flatpak and snap in addition to a regular application.

Unfortunately the version of GTK in the core18 snap is incompatible with libhandy. A workaround could be using the GTK wrap supplied in this repo. It would take time to figure out if versions of packages in core18 work with GTK 3.24. This is doable if someone commits to it.

#Host
ninja -C build
#flatpak
flatpak-builder --verbose --sandbox --force-clean --repo=.flatpak-repo --ccache --user --install-deps-from=flathub --install .flatpak  dist/flatpak/io.partin.tristan.HarvestAlmanac.json

#Running

#Host
./build/src/harvest-almanac
#flatpak
flatpak run io.partin.tristan.HarvestAlmanac

#Testing

Make sure the following environment variables are set:

  • HARVEST_API_ACCESS_TOKEN
  • HARVEST_API_CONTACT_EMAIL
  • HARVEST_API_ACCOUNT_ID
  • HARVEST_SOUP_MAX_CONNECTIONS
  • HARVEST_SOUP_LOG_LEVEL

Then run

ninja test -C build