Automated Build

Forum rules
Warning !
Avoid using binary softwares from untrusted users.
Prefer compiling it yourself and verify sources.
indolering
Posts: 796
Joined: Sun Aug 18, 2013 8:26 pm
os: mac

Automated Build

Post by indolering » Wed Dec 11, 2013 10:24 pm

I would really like to see a better build system for the various Namecoin projects (things are rarely compileed for linux, win32, and OS X at the same time, I've had even the 32-bit Linux binaries fail on me, etc). I'm willing to provide OS X, Linux, and Windows build machines/slaves if someone is willing to setup the build infrastructure...

Does anyone know of any services which can automated distributin to the major package managers (RPM/Fedora/CentOS, dpkg/Debian/Ubuntu, MacPorts/Homebrew/OS X, etc)?
DNS is much more than a key->value datastore.

moa
Posts: 255
Joined: Mon May 23, 2011 6:13 am

Re: Automated Build

Post by moa » Thu Dec 12, 2013 1:38 am

Good initiative.

First we would need autotools implemented and then there are various ways to build the different OS packages ...

pmc
Posts: 73
Joined: Thu Oct 03, 2013 8:50 pm
Location: Germany
Contact:

Re: Automated Build

Post by pmc » Thu Dec 12, 2013 3:10 pm

indolering wrote:Does anyone know of any services which can automated distributin to the major package managers (RPM/Fedora/CentOS, dpkg/Debian/Ubuntu, MacPorts/Homebrew/OS X, etc)?
Check the open build service (see my signature). It supports various linux distros. Mac&Windows will probably be more difficult.

indolering
Posts: 796
Joined: Sun Aug 18, 2013 8:26 pm
os: mac

Re: Automated Build

Post by indolering » Thu Dec 12, 2013 6:15 pm

pmc wrote:Check the open build service (see my signature). It supports various linux distros. Mac&Windows will probably be more difficult.
I was just looking into that and this is exactly what we need. Can you get the packages included in the Ubuntu, Fedora, and CentOS distros? It would make setting up Namecoin much, much easier!

Mac and Windows aren't as big of a deal. Having something in Macports would be a cherry but users on either platform are primarily going to want GUIs.
DNS is much more than a key->value datastore.

biolizard89
Posts: 1932
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Automated Build

Post by biolizard89 » Thu Dec 12, 2013 10:25 pm

Time for a stupid question, can something like Travis CI be used for releasing builds to the public, or are the builds in that system only usable for automated testing?
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

indolering
Posts: 796
Joined: Sun Aug 18, 2013 8:26 pm
os: mac

Re: Automated Build

Post by indolering » Thu Dec 12, 2013 10:47 pm

biolizard89 wrote:Time for a stupid question, can something like Travis CI be used for releasing builds to the public, or are the builds in that system only usable for automated testing?
I think the reason we don't have a better build system is because everyone was thinking these questions are stupid. From what I can tell, Travis CI seems to have everything needed to build namcoind including for OS X. We might also want to check out BuildHive which would give us a full-blown Jenkins install as well.
DNS is much more than a key->value datastore.

biolizard89
Posts: 1932
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Automated Build

Post by biolizard89 » Thu Dec 12, 2013 11:13 pm

indolering wrote:I think the reason we don't have a better build system is because everyone was thinking these questions are stupid. From what I can tell, Travis CI seems to have everything needed to build namcoind including for OS X. We might also want to check out BuildHive which would give us a full-blown Jenkins install as well.
This definitely isn't my area of expertise, but yeah, some kind of continuous integration would be really nice to have for the various Namecoin projects. That said, maybe it should become my area of expertise? (I'm sure such skills are a plus to have when job-hunting....)

Anyone have suggestions on which service would be best, and why?
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

indolering
Posts: 796
Joined: Sun Aug 18, 2013 8:26 pm
os: mac

Re: Automated Build

Post by indolering » Fri Dec 13, 2013 12:05 am

biolizard89 wrote: This definitely isn't my area of expertise, but yeah, some kind of continuous integration would be really nice to have for the various Namecoin projects. That said, maybe it should become my area of expertise? (I'm sure such skills are a plus to have when job-hunting....)
Well, I certainly agree with Joel Spolsky's essay on the topic,
Can you make a build in one step?
By this I mean: how many steps does it take to make a shipping build from the latest source snapshot? On good teams, there's a single script you can run that does a full checkout from scratch, rebuilds every line of code, makes the EXEs, in all their various versions, languages, and #ifdef combinations, creates the installation package, and creates the final media -- CDROM layout, download website, whatever.

If the process takes any more than one step, it is prone to errors. And when you get closer to shipping, you want to have a very fast cycle of fixing the "last" bug, making the final EXEs, etc. If it takes 20 steps to compile the code, run the installation builder, etc., you're going to go crazy and you're going to make silly mistakes.
From a related article.

I seriously think that the build step is the single most crucial component of proper software development. Then again, I'm a terrible programmer and I can't write much code without introducing random bugs : )
DNS is much more than a key->value datastore.

biolizard89
Posts: 1932
Joined: Tue Jun 05, 2012 6:25 am
os: linux

Re: Automated Build

Post by biolizard89 » Fri Dec 13, 2013 12:30 am

Those are good articles indolering, thanks for sharing.
Jeremy Rand, Lead Namecoin Application Engineer
NameID: id/jeremy
DyName: Dynamic DNS update client for .bit domains.

Donations: BTC 1EcUWRa9H6ZuWPkF3BDj6k4k1vCgv41ab8 ; NMC NFqbaS7ReiQ9MBmsowwcDSmp4iDznjmEh5

pmc
Posts: 73
Joined: Thu Oct 03, 2013 8:50 pm
Location: Germany
Contact:

Re: Automated Build

Post by pmc » Fri Dec 13, 2013 9:10 am

indolering wrote:
pmc wrote:Check the open build service (see my signature). It supports various linux distros. Mac&Windows will probably be more difficult.
Can you get the packages included in the Ubuntu, Fedora, and CentOS distros? It would make setting up Namecoin much, much easier!
Fedora and Ubuntu have been on my TODO list or a while... :-/
The problem with fedora is missing ECC support in openssl, and the ubuntu repo on OBS is missing some required libraries. I'll look into this.
I've never tried CentOS, but I suppose it'll be easily integrated once Fedora is working.

Post Reply