- All build systems look like make.
And on a related, $DAYJOB-aggravating note:
- Tools always exit with non-zero status on failure.
- Tools never exit with non-zero status on success.
Aaaaaargh. I feel your pain.
Though I'm mostly irritated by those tools rather than the build systems which get that "wrong"...
- A build always runs on a single computer.
- There's always a human available to interact with the build system.
• Build tools are used by writing scripts in one or more languages.
• Tools should not require users to write build scripts in a language of any kind.
I'm inclined to say that the less scripting your build manager has to do the better - though a tool that doesn't require scripting in any situation sounds like an impossibility (and a tool that doesn't allow scripting sounds like it would eventually become painful).
Edited at 2012-12-07 03:21 am (UTC)
- Build steps are idempotent
- It can be known in advance how many times a particular build step should be executed
- Build steps do not modify the repository
- It is possible to determine whether the build will succeed
- It is possible to determine whether the build will even halt
*smacks forehead* - all good ones.
2012-12-07 04:12 am (UTC)
What is the point of this?
2012-12-07 01:31 pm (UTC)
Sorry that wasn't clear - I've added an explanation to the top of the post.
2012-12-07 09:15 am (UTC)
lets agree on this first
* Users will only will only use one specific compiler, library and flags, so you can hardcode them in your build scripts.
* Users will always agree with the location you want to install stuff to.
At my current job (HPC system administator at Ghent University) we have been building a lot of software which had these assumptions.
So to automate all of them we created a framework EasyBuild (http://hpcugent.github.com/easybuild/) which is a layer on top off all these build systems that tries to correct their mistakes (be the human to answer questions during the installation, patching makefiles/code to work with different compilers, install under a prefix and generate module files...) and automate the process of building the software.
This is not usefull for programmers, but for end users who want to install the software.
Edited at 2012-12-07 10:36 am (UTC)
2012-12-10 03:06 am (UTC)
build systems are a symptom of software languages that are not designed to build software systems
I hate make(1). I only slightly dislike OMake
, which I'm sure would piss you off for a variety of reasons, but I bet it would piss you off less than make(1) too.
2013-09-11 04:40 am (UTC)
Greate post. Keep writing such kind of info on your blog.
Im really impressed by your blog.
Hello there, You have performed an incredible job. I'll certainly digg it and in my opinion recommend to
my friends. I am confident they will be benefited from this web site.
2013-10-15 11:38 am (UTC)
Thanks for sharing this great content, I really enjoyed the insign you bring to the topic, awesome stuff!
water systems (http://articlestwo.appspot.com/article/water-filtration-systems)
Javac is responsible for a lot of these. Why this may or may not be a Good Thing is a debate that could rage for years.
BTW, I'm working now with a horribly botched and broken build system that illustrates many of the listed bad assumptions, even though it's all C/C++ code. Surprisingly few of the problems are the fault of make itself.
One more thing: there is a special place in hell for designers of products that can only be built or configured through a GUI.
2013-10-27 12:38 pm (UTC)
Hmm it looks like your website ate my first comment (it was extremely long) so I guess I'll just sum it
up what I had written and say, I'm thoroughly enjoying your blog.
I too am an aspiring blog blogger but I'm still new to everything.
Do you have any recommendations for inexperienced blog
writers? I'd really appreciate it.
2013-11-11 02:39 pm (UTC)
Amazing blog! Is your theme custom made or did you download it from somewhere?
A design like yours with a few simple adjustements would really make my blog jump out.
Please let me know where you got your design. Thank you
2014-02-07 05:37 pm (UTC)
Good post. I learn something new aand challenging on blogs
I stumbleupon everyday. It will always be interesting to read through articles frokm other writers and practice a little something from other websites.
2014-02-14 06:26 pm (UTC)
The downside to the contributions is that it can take several years or more for you to accumulate sufficient
funds to purchase assets within the plan. In the business
world and investments, many people embrace this delicate piece of
metal due to the fact that gold done great performances.
The other option, going for a portion, can be guaranteed as well
but often it is perhaps not.
2014-03-16 03:53 am (UTC)
xbox 360 emulator roms download
2015-07-30 12:24 pm (UTC)
Falsehoods Programmers Believe