Hi …
> On Apr 15, 2017, at 7:48 AM, [email protected] [extremeprogramming] <[email protected]> wrote:
>
> Thanks, that's very interesting. Was the ENVY server a separate server or did it run on the integration machine? And were the nightly tests triggered by something like a cron job, or did someone have to start them manually?
>
> I'm also curious about the mechanics of getting the code to the ENVY server and to the integration machine. I don't know much about Smalltalk but I understand it works with running images, complete with stacks and heap, not just with source code and certainly not in files. Did the versions in ENVY contain full images or just the source code?
We were all working on a single system: for a brief time, one might be working on a “branch” but the intention was to remain integrated "all the time".
Since everyone has their own Smalltalk image (this is not an option, it’s how Smalltalk works), you start with some image and load in all the source code you want, resulting in your image consisting of what you want and whatever’s left of what was in the image when you started.
So our mission was to start with the same image, and load all the same source code from ENVY “from head”, though that’s not the term we used as far as I recall. When we finished some bit, we pushed it to ENVY and when the tests ran, whatever was on top became the new “head”.
ENVY was Smalltalk code, like everything else. I don’t recall whether it has a server-like component or not. Either way, it’s just acting like a repository. I start my image, pull in head from ENVY, check for any conflicts and errors and resolve. There should be none, because all our code should always be at the head in ENVY so I am in essence loading everything, though ENVY figures out what needs loading and what doesn’t. Now I’m synched with head. I work. I test, push everything back. That gets designated head. Everyone loads it ASAP.
We learned that the best way was to pull from ENVY frequently, since that minimizes the chance of a conflict.
Just like a git repo in that regard.
I don’t remember whether the nightly test was started as an image with a cron kind of thing, or whether it was a running image checking its own timer. I suspect the former but one could do it either way.
Ron Jeffries
ronjeffries.com <http://ronjeffries.com/>
Speed is ppoor subsittute fo accurancy -- Fortune Cookie
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.