[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [buckminster-dev] Hudson plugin and provisioning
|
Hi Thomas,
please see answers inside:
Thomas Hallgren schrieb:
I'm uncertain what this means. What other installers can install
Buckminster? Can you please elaborate?
Hudson offers two generic installers:
1. Execute a shell script (pseudocode)
This can perfectly fine install buckminster.
wget director
extract director
director create buckminster product
buckminster install features
2.Download and extract an archive
An admin can prepare a prepackaged custom buckminster, deploy it on some
webserver and have the generic download installer extract that archive
on the build machine as needed.
7. If install automatically gets unchecked, the installer section
disappears and gets replaced with a textfield to enter the buckminster
home location (this is how it's done in the current buckminster plugin)
How do we cover the case where the admin wants to install a custom
feature from some other repository?
Currently 4 possibilities:
1. manually specify a path to a custom buckminster installation
2. use the generic script based installer
3. use the generic download installer
4. create a 'configure buckminster' build job that doesn't really build
anything, but executes 'install' commands
It would also be possible I guess to add additional features +
repositories in the configuration of the custom installer, but I wasn't
able to do that just yet with the jelly script.
8. In a job configuration the build manager can choose between all known
buckminster tool installations
How is a known tool installation identified? Is this the same as the
"versions" in #5 or can custom installations be created (and named)?
If you don't activate 'auto installation' you specify a home directory
of your tool and give the Tool Installation a name. Tool Installations
are always identified by name.
What happens when new versions of the features arrive in the appointed
repositories?
I was thinking about that too. There's two different scenarios:
1. The user activated the auto tool installation
In this case the tool installer would have a chance to perform an update
but that might be too expensive to do for every build run.
2. The tool installation has not been installed by the custom installer
which means the installer logic has no chance to run an update.
So I guess the update logic should be placed in the build step, and not
in the installer to make it work no matter how buckminster has been
installed.
Unfortunately I don't see a way to find out what's currently installed
and therefore I don't know which features need updating.
What about an 'update' command for buckminster? How hard would that be
to implement?
I think it would be great if we could use an alternative json file for
specific hudson instances. On build.eclipse.org for instance, all URL's
pointing to http://download.eclipse.org/ can be replaced with
file:/home/data/httpd/download.eclipse.org/, a change that removes a lot
of load from the web server. That applies both to the director download
and the actual install.
I'm afraid this is not so easy. This information needs to be available
as soon as the manage hudson site is requested. Waiting for a server
reply would cause the site to hang if the server is not available for
some reason. As far as I understand the mechanics so far, this is
avoided in hudson by downloading the update files up front, store them
locally and update them once a day, or so.
I don't see a way how it would be possible to have the user enter a
different URL and process that at runtime, because I don't think it's
possible to update the web form once it has been created.
That said, a workaround of some sort should be possible of course.
The installer could for example look for a custom.json at a specific
place in the hudson dir, or look for a system property, or something
like that. If present, it overrides the remote file.
2. Is it ok to use the direct download link from eclipse.org for the p2
director?
I don't think you need to. An external build can use this link:
http://www.eclipse.org/downloads/download.php?file=/tools/buckminster/products/director_latest.zip&r=1
Note the r=1 parameter at the end. It causes a bypass of the selection
page so the download is immediate. The closest geographical mirror is
chosen.
I tried that, but it doesn't work. Looks like the redirect is causing
problems for the download logic (which is provided by Hudson)
3. Is it ok to automatically download additional features from
cloudsmith or should I restrict to eclipse.org?
It must be OK. This is about tooling for our build environment and not
about what we publish at Eclipse.org.
true, thank you
4. Do I need to have the user accept some kind of licence agreement for
features (like subversive, or so)?
Quite frankly, I have no idea who agrees to what licenses on what tools
in our build environment. Who agreed to use Linux, Java, Hudson, Ant,
Maven, CVS, SVN, Git, the Buckminster plug-in, etc.? I guess this must
fall into the same category. It somehow feels that it's the admins
responsibility and that he implicitly accepts the licenses of the stuff
that is put to use. But as I said, I really have no idea.
What happens when you install a new Hudson plug-in? Do you have to
accept its license and all licenses that it depends on at that point?
I got a little curious when I noticed that the Hudson JDK Installer
requires the user to accept SUN's licence agreement. You are right, this
is most likely unnecessary, so I don't do anything like that.
5. I need some help writing the final JSON file with the version/feature
informations. What should be included in which version?
The latest on our headless-3.5 and headless-3.6 update sites + the
latest Subclipse at cloudsmith external-3.5 and external-3.6. We might
want to switch to Subversive at some point but at present they have some
bugzillas that need attending first.
I can't really list the site features at the moment.
buckminser listsite
http://download.eclipse.org/tools/buckminster/headless-3.6/
gives me this (latest buckminster 3.6 headless):
java.lang.IllegalArgumentException: Cannot find a public member 'id' in
a org.eclipse.equinox.internal.p2.metadata.expression.Everything
So every feature from eclipe.org und subclipse (no subversive) from
cloudsmith, right? What about the emma feature, or is that available
from the eclipse.org site?
Best regards,
Johannes