fbs icon indicating copy to clipboard operation
fbs copied to clipboard

Autobuild support via Travis CI

Open titusz opened this issue 5 years ago • 5 comments

Setting up environments and building your application for Linux/Mac/Windows is still a quite time consuming and error prone process. Now that there is support for all three platforms on Travis CI this could be made much more convenient. It would be possible to automatically build your application for all platforms on every commit to your master branch. fbs already has all the commands needed to create the various builds. Together with some documentation, I think it would go a long way if fbs starproject would add some boilerplate for Travis build configuration to get you started. What are your thoughts about this?

titusz avatar Dec 14 '18 20:12 titusz

It's a very interesting suggestion, thank you. I must admit I've never used Travis CI (or other hosted CI systems).

My first instinct is that fbs should not support Travis out of the box. The reason I feel this way is that it would add unnecessary clutter for those people who are not using Travis. You may say "but it's just a few extra config files". But if I follow a "just support it" approach for every conceivable integration, then fbs - and your fbs project directories - will soon become a large mess. Also, just because fbs doesn't support Travis out of the box doesn't mean that you couldn't (say) write a blog post with some easy configuration that people can copy/paste. Or create a separate library, say fbs-travis that adds the support.

Another reason why I'm skeptical about the importance of Travis is the following: When developing a cross-platform desktop app, you need to test on all OSs anyways. So most likely, you'll have a virtual machine running Windows, one running macOS, etc. If you already have those VMs, why not use them to build your app? I understand that for larger projects and organizations, you still want a CI pipeline. But again, that makes a Travis integration something that only few teams will use.

On the other hand, I see from the number of :+1:'s on this issue that many people feel it's a good idea. To people who reacted this way: Why is it important to you? Wouldn't a blog post or a separate library give you similar results without the downside(s) I described above?

Finally, please note that in discussing this issue I am only really interested in real-world uses. That is, I'd like to hear from people who are actually using fbs and would benefit from a Travis integration. As a maintainer of multiple open source libraries, I often get requests from people "feature XYZ would be so cool", but the people never actually use the library. They see the home page, think it's cool and want to "help" by making suggestions. If I spend my limited development time implementing all these requests - that end up not being used - then I have much less time to work on what's actually useful.

What do you think @Kitefr, @livinter, @sposth, @KiraLe, @alemenke, @thilohille? Are you using fbs for a real-world project and need a hosted CI solution?

mherrmann avatar Dec 17 '18 09:12 mherrmann

We have some basic CI setup with our PyQT prototype at https://github.com/coblo/gui-demo and we have been evaluating fbs for multiple upcoming open source PyQT applications. The cross-platform packaging features of fbs are very attractive. For us a battletested CI pipline would be nice to have. But it is true that this might not be of interest to others.

thilohille avatar Dec 17 '18 16:12 thilohille

Thank you for your input @thilohille.

Does anybody here have a budget out of which they can pay for a CI service?

mherrmann avatar Dec 17 '18 16:12 mherrmann

Travis is a free service for open source projects. Or do you mean a budget for adding integration support in fbs?

For developers that are only at home on one of the platforms it is often quite a challenge to setup and handle a build environment on a foreign platform. But I guess there is no easy way around it if the developer wants to test on all platforms himself.

Unnecessary clutter for those people who are not using Travis could be avoided by adding it as an option to the startproject command. But of course code maintenance burden would still remain.

@mherrmann - I forgot to mention - thank you for the great work you are doing with this project. Please don´t feel pressured by this feature request.

I will try to setup Travis CI with an fbs project and report back. If something useful comes out of it I may also write a blog post about it.

titusz avatar Dec 17 '18 18:12 titusz

Travis is a free service for open source projects. Or do you mean a budget for adding integration support in fbs?

The intention behind my question was that fbs could offer its own CI service, fully integrated and targeted at cross-platform desktop apps. If someone here has a budget for such things, we could work together to set this up for them.

thank you for the great work you are doing with this project.

My pleasure :-) I feel it's important that in 2019 we all don't waste months getting desktop apps to work.

mherrmann avatar Dec 17 '18 18:12 mherrmann