Automated builds - should we use gitian like bitcoin?
As I am writing build documentation, I ran into a crossroads about how we should proceed. I read into what the gitian build system that bitcoin uses to ensure two or more people can build identical binaries. Do we feel the added configuration is worth the hastle? As we grow, I suspect it is, but want to ask everyone’s opinion. It would mean that we would use gitian to detail how we build the binaries, and anyone could download the source, and build an identical binary to ensure that the source posted and the compiled binary match. I can make the build server automatically build this way if we want. Just want to know if we want that, or just use standard build processes?
The Bitcoin-wallet uses Gitian and that is a priority to get a mobile wallet fork out compatible with 0.9.6. desktop wallet.
There may be an issue that the current mobile bitcoin-wallet is too advanced, so difficult or time consuming to backport to 0.9. i.e. we need to sync both projects and that might mean a move straight to 0.13.
In order to reduce “superflous work”, when development is already behind where it could be, it important not to reinvent the wheel … So, by necessity, use the build system for the project forked from. We usually spend most time getting special libraries like libxing for FTC qr codes to build.
So far Bushstar/Ghostlander 0.6, 0.8 and Lizhi have led forking for 0.9 and 0.11. If we do move to Lizhis 0.11 we need to rapidly move to head. This is where the auto build system will come into it’s own.
FTC is a fork of Bitcoin (originally via Litecoin) with it’s own parameters. Each update should come through automatically, unless it specifically conflicts with FTC parameters or member requirements.
This gitian build system is quite cool. I am really digging it. After looking around, we might as well use Travis-CI as our build service, because we are open source we get all their resources for free. Just following Bitcoin’s lead there. Much easier than having a community member responsible for housing a server. Which I am glad to do, but if we can avoid it, lets do that. We can use my resources in a different way. Making good progress, and hope to have something to show within a week or so… This is where I am working on it all so far… https://github.com/natedavis/Feathercoin/tree/migrate-debian-buildscripts
You are right, the server may not be necessary in the long run. I’d still like to have an official build of the various packaging systems, e.g. docker etc
Once (auto) build services are up (for the packaging technologies like snappy) it should be easier to get less technical members help maintain those and just report when problems occur.
I found Gitian interesting, but had to give up trying to convert the FTC mobile wallet to it after a number of weeks trying.
This means we need to build the Bitcoin Mobile wallet, pull in changes from Bitcoin, and that will be set up ready to apply our own patches to make that a FTC mobile wallet build.