World: r3wp
[!REBOL3 Source Control] How to manage build process
older newer | first last |
Carl 28-Oct-2010 [9] | So, do we have a good place to put this? Google code? |
Andreas 28-Oct-2010 [10] | I wouldn't worry about that for now. |
Carl 28-Oct-2010 [11] | (which?) |
Andreas 28-Oct-2010 [12x2] | Where to put this. |
Unless you want to adopt a new version control system for your sources alltogether. | |
Carl 28-Oct-2010 [14] | So, how do we want to go about doing this? |
Andreas 28-Oct-2010 [15] | The important part is that you use _some_ version control system internally. |
Carl 28-Oct-2010 [16] | Same one for ten years. |
Andreas 28-Oct-2010 [17] | Ok, second step is to use a single repository for all your builds. |
Carl 28-Oct-2010 [18] | BTW, I don't type a dot without version control. |
Andreas 28-Oct-2010 [19] | I.e. a 'Linux" repository and a "Win32" repository where you manually do merges (or copy/paste) in between will only lead to trouble. |
Carl 28-Oct-2010 [20] | Back in a while. Go ahead and post your notes, then I'll reply. Thanks! |
Andreas 28-Oct-2010 [21x12] | Quick Q: what version control system do you use atm? |
Third step is to write a post-commit hook which exports from internal to external. | |
And then the automation kicks in. | |
The same post-commit hook then: - moves the export to someplace public (i.e. another public VCS like Github or Google Code; or simply uploading them to rebol.net/rebol.com), - and somehow notifies anyone interested of the new upload. | |
You'll get the notification for free on Github (I don't know about Google Code). But this could also be updating a simple .txt on a webserver somewhere which lists all available exports. Heck, it even the directory listing features of a webserver would suffice (as long as the exports are named consistently). | |
And from there on, we can have build bots which pick up any new export and build it for their platform. Build results are reported back somewhere (email, static website on the bots which gets aggregated elsewhere, a simple CGI, R3 chat, ...). | |
The details of those latter parts are not particularly exciting, as they are easy to do in a variety of ways. | |
For example, even the makefiles are not really important at this point. | |
But what's important is how to keep those "external" builds consistent with your "internal" builds. | |
Which is why it's also important to realise that those build bots need not necessarily be public. They could well be Carl's own machines standing at home which put the final binary in a central place for Carl to use. | |
If that's not immediate, you can obviously still use your own build stuff (Visual Studio projects, whatever), and as long as you regularly keep the sources up to date by committing, the builders will notify you anyway if the external build mechnisms got out of sync. | |
The most important thing to realize, is that not every commit, even if externally visible, needs to be perfect. It's perfectly fine if the external builders break, that's what they are there for: telling you when something went amiss. | |
Carl 28-Oct-2010 [33x2] | A few comments... |
I was expecting that all these various implementation parts were already available. That is, we're not reinventing the wheel. | |
Andreas 28-Oct-2010 [35] | They are. |
Carl 28-Oct-2010 [36] | Next, is there any conern about flooding. On a good day, I make about 10-20 commits. |
Andreas 28-Oct-2010 [37] | Nope. |
Carl 28-Oct-2010 [38x2] | BTW, there are no merges between Linux and Win32 files. These are all in the same repository. |
So, all of the above seems pretty standard. | |
Andreas 28-Oct-2010 [40x2] | It is. |
It just needs to be done for R3. | |
Carl 28-Oct-2010 [42] | That's why I asked earlier about where we want to put it.... because that seems to be a bigger question. |
Andreas 28-Oct-2010 [43x2] | http://www.rebol.net/builds/rebol3/alpha/ |
Call the exports r3-<datestamp>-<revision>.zip. | |
Carl 28-Oct-2010 [45] | dinner. bbl |
Andreas 28-Oct-2010 [46] | Or export into Git and put it on your server or on Github. Or export into Subversion and put it on Github, or Google Code, or .... |
Maxim 28-Oct-2010 [47x2] | I think using Git is the way to god for a new project. every big project I see that is changing VCS is goint Git. it seems to be the most powerfull VCS right now. do you agree Andreas? |
god... hahaha obviously I meant "go" | |
Andreas 28-Oct-2010 [49x3] | Absolutely. |
And I personally would suggest Git, put that'll take time and effort to get started with. | |
So it's probably quicker to get things going by using whatever Carl is familiar with. | |
Maxim 28-Oct-2010 [52] | are there free Git servers? |
Andreas 28-Oct-2010 [53] | (Let's switch this to "Source control".) |
Maxim 28-Oct-2010 [54] | good idea. |
Carl 28-Oct-2010 [55x4] | Any one of them is fine with me. |
So, A110 will be released soon. | |
(Meaning in a day or so.) | |
For this release, i'll be making fixes to the posix files, and most of what Steve Solie posted on CureCode. | |
older newer | first last |