Page 1 of 1

Endaytahn - Client compiler

Posted: Tue Feb 07, 2012 2:08 am
by Lyrositor
So far, I haven't see any easy way for a non tech-oriented user to try out the latest development release of Uru. Some binaries have been provided, but they probably take time to be compiled, packaged and uploaded. So instead, how about an automated building process?

Endaytahn (D'ni word for builder, according to this website; I don't actually speak D'ni :? ) is my suggestion. A tiny program that when launched downloads the latest release, and provides step-by-step instroductions on how to do things while doing everything it possibly can without user input. It should download all the required programs and start installations so that the user can just click through things again and again (he should only have to do it once, when he runs it the first time). Afterwars, the user would only to run it from time to time so that it updates his program.

From my point of view, as someone just starting to become interested in contributing to Myst Online (as well as a pretty entry-level programmer), this doesn't seem like too big a task, since it mostly automating procedues which can already be done mechanically by following this guide. It would be a command prompt (eventually GUI script) that would require text input from time to time, switch to the third-party programs when required, and so on. In my humble opinion, this could lead to bigger interest in testing the "next" version of MO:ULa, by making it more in reach of the average user. I would be glad to take this project on, since I need something to practise my C++ skills anyway.

Re: Endaytahn - Client compiler

Posted: Tue Feb 07, 2012 8:29 am
by Mac_Fife
Some, at least, of what you're describing is already handled by Jenkins our automated build engine. This can take the contents of a designated repository and build it according to a predefined set of instructions. It's used currently to build the client for our Minkata shard and rarified is in the process of creating another build project to take the H'uru development code and run it through Visual Studio 2003, since not many folks have access to that older compiler. I think it can also build for VS2010, but rarified is the best person to comment on that.

Re: Endaytahn - Client compiler

Posted: Tue Feb 07, 2012 12:18 pm
by Lyrositor
Could a program be made using its remote API to trigger a build and then provide a download link for the user? Since the project is already set on the Open Uru's server, the way I see it, it would have to request a new build, then download all the files produced, and then run the batch file that creates everything, before copying it over the user's existing MO:UL directory.

Re: Endaytahn - Client compiler

Posted: Tue Feb 07, 2012 1:02 pm
by Mac_Fife
I'll need to defer to rarified on this, but I think that's almost exactly what happens to produce the Minkata Install download: Once the build has completed, the launcher executable gets packaged up with a dll or two into a self extracting archive which can be then be downloaded. So I'd expect that scripting a different (bigger) package of files into a downloadable ought to be no particular problem.

Re: Endaytahn - Client compiler

Posted: Wed Feb 08, 2012 2:05 am
by rarified
Mac_Fife is correct. The Jenkins build system (described in this article) is a tool that monitors for various events, and executes tasks when those events happen. In our case one of those events is determining when new code is committed to a repository that is being monitored by Jenkins, and the tasks are performing the steps you refer to for building the CWE client.

So having an external agent trigger a build is unnecessary; the most recent build always reflects an attempt to build the current code in the repository.

You can explore the Jenkins system public information at http://foundry.openuru.org/hudson.

_R

Re: Endaytahn - Client compiler

Posted: Wed Feb 08, 2012 12:05 pm
by Lyrositor
But don't you need a developer account to initiate a build?

Re: Endaytahn - Client compiler

Posted: Wed Feb 08, 2012 12:46 pm
by Mac_Fife
Well, you don't really initiate a build; the occurence of some predetermined "event" (typically a repository being updated) causes the build to be triggered. I think I'm right in saying that the repository doesn't even need to be hosted the OpenUru Foundry, it just needs to be reachable by Jenkins over the internet. Once Jenkins "sees" that it contains new code it can fetch and build it, so you only need to be able to commit to the repository and the requirements for doing that may vary.

If the repo in question happens to be one that is hosted on the OU Foundry then you will need a Foundry account to be able to commit changes to it.