Requiring people to create a source build is a lot of overhead for anyone who is not able to set up all the dependencies, which seriously limits adoption of this awesome project for other users/use cases.
Building from source is probably less of an issue on Linux, but on MacOS and Windows, it's kind of a pain to have to set up a QT environment just to be able to build the application.
My suggestion is for Skyscraper to have automated builds as part of a GitHub Actions pipeline, so every merge to Main will:
- use a Matrix to start a build/test process for each platform (macOS, Linux, Windows)
- build for the given platform in one job, upload the artifact
- in a new job, download the artifact (this is to ensure the environment that is being used to test the application doesn't have build dependencies, and that the build is clean and runnable in isolation)
- test a scrape (including an image transform) and assert that the skyscraper has the items cached, as well as that the output and image transform pipeline works (to ensure QT is working correctly)
- create a new release and upload it to the releases, only IF all 3 platforms successfully built
I'm planning to make a fork to implement these but I'd much rather upstream them to this repo than have to maintain a fork once I have these working. Is that something you're interested in? If so, are there any changes you'd want to make to the above process before you'd consider merging?
One item that needs to be decided on is where to source the release version information from. It will need to be in the repo somewhere if you want to control the release version, or we can just make it so that the release version is always incremented by 1 minor version every release.
Requiring people to create a source build is a lot of overhead for anyone who is not able to set up all the dependencies, which seriously limits adoption of this awesome project for other users/use cases.
Building from source is probably less of an issue on Linux, but on MacOS and Windows, it's kind of a pain to have to set up a QT environment just to be able to build the application.
My suggestion is for Skyscraper to have automated builds as part of a GitHub Actions pipeline, so every merge to Main will:
I'm planning to make a fork to implement these but I'd much rather upstream them to this repo than have to maintain a fork once I have these working. Is that something you're interested in? If so, are there any changes you'd want to make to the above process before you'd consider merging?
One item that needs to be decided on is where to source the release version information from. It will need to be in the repo somewhere if you want to control the release version, or we can just make it so that the release version is always incremented by 1 minor version every release.