Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 496490 - Final steps to use "genie.releng" instead of "e4Build"
Summary: Final steps to use "genie.releng" instead of "e4Build"
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 4.7   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.6.1   Edit
Assignee: David Williams CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 496335 496867
Blocks:
  Show dependency tree
 
Reported: 2016-06-21 12:01 EDT by David Williams CLA
Modified: 2016-07-08 17:47 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2016-06-21 12:01:04 EDT
Now that bug Bug 496335  has been fixed, a few final steps are needed to fully migrate to "genie.releng" instead of "e4Build". 

The main one(s) are a few places where we 'clone' the repository, we explicitly configure it so that 

B_GIT_EMAIL=e4Build@eclipse.org
B_GIT_NAME="E4 Build"
COMMITTER_ID=e4Build

These should now be (I believe)

B_GIT_EMAIL=genie.releng@eclipse.org
B_GIT_NAME="Platform Releng HIPP"
COMMITTER_ID=genie.releng

= = = = = 

These are the most substantial cases. There is a who bunch of places it is used in comments, which should change too. 

= = = = = =

The only other place has to do with some "mailto" functions as the "FROM: " address. 
I think that should be changed too and have asked in bug 496335 what exactly its email address is to confirm. I am not sure if it has to "subscribe" to mailing lists, to be able to "send mail" to it, but suspect that it does.
Comment 1 David Williams CLA 2016-06-21 13:53:14 EDT
This is main fix, changing e4Build to genie.releng

http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?id=102f341a44c460d716c17478da14b54875ec20f0

Still need to change the "name" from "E4 Build" to "Releng HIPP". 
And, that name "Releng HIPP" is intentional, instead of "Platform Releng HIPP" since on the "page of HIPP servers" at 
https://hudson.eclipse.org/
is it called simple "Releng" not "Platform Releng". 

= = = = = =

But, I have noticed we do not seem to explicitly configure on clone, as I though we did. So, I will do a test build now (after deleting previous "N-build" gitCache, to see if it "ends up" with the right values. 

I noticed on "e4Build" id that we did have these global git configuration variables set: 

e4Build@build:~> git config --global --list
core.autocrlf=false
branch.autosetuprebase=always
user.email=e4Build@eclipse.org
user.name=e4Build
push.default=matching

My guess is we would be better off explicitly setting the values on clone. 

But, we'll see what we end up with. 

(Plus, I think core.autocrlf=input would be a better value that false. 
We have had cases in the past where someone checked in something with Windows CRLF (such as from OSGi) and then on the next "pull" we get an error that says "source has changed". This would be avoided by using "input" instead of "false". [Though, that might mess up our little "stashing heuristic"].
Comment 2 David Williams CLA 2016-06-21 13:54:48 EDT
From a test build, the repo definitely does not automatically get "genie.releng" as the committer. 

So, will need to add explicit "config on clone" values.
Comment 3 David Williams CLA 2016-06-21 18:23:26 EDT
(In reply to David Williams from comment #2)

 
> So, will need to add explicit "config on clone" values.

I have tried this on my local test build machine with confusing results. 

This may be hard to read, but the basic "clone" command is 

  STANDARD_CONFIG="--config core.autocrlf=input --config branch.autosetuprebase=always --config user.email=\"${B_GIT_EMAIL}\" --config user.name=\"${COMMITTER_ID}\" --config push.default=matching"
  # write command once, to make sure its echo, and the command itself are the same! (from experience :) 
  GIT_CLONE_CMD="git clone --recursive ${STANDARD_CONFIG} $BRANCH_CMD $URL $TARGET_DIR"
  # print out what we are going to do
  echo "${GIT_CLONE_CMD}"
  # then do it
  ${GIT_CLONE_CMD}

This *does* set those config values in eclipse.platform.releng.aggregator, but not for each submodule. And, the confusing part is, I do not know if it needs to, or if the submodules get (some of) their config values from their parent. And, so far have not seen this topic on the web anywhere. 

So, we may just have to "test it out". 

But there are other approaches that might be less error prone. 
The other approaches would basically call "git config" as a completely different step, perhaps using "git submodule foreach".

One (confusing) thing I have noticed is that using --config in the clone command *requires* that there by an "=" between the key and the value. 
But, using git submodule foreach git config key value 
requires that there *not* be an "=" between the key and the value. 

= = = = = =

I am beginning to think it would be easiest to simply set the "global configs". 

I can't imagine that "genie.releng" would be building repositories where other settings would be needed. 

In fact, these are the current git config values for that machine (global and system)

Git global config
user.name=hudson
user.email=hudsonbuild@hudson.eclipse.org
Git system config
fatal: unable to read config file '/usr/local/etc/gitconfig': No such file or directory

Seems there should be an empty gitconfig file for "system" instead of resulting in an error. 

Should also check ENV variables, just to be positive that the global config is not "shared" on "hipp8".
Comment 4 David Williams CLA 2016-06-21 18:30:01 EDT
(In reply to David Williams from comment #3)

> Should also check ENV variables, just to be positive that the global config
> is not "shared" on "hipp8".

Our ${HOME} is specific to "genie.releng", so we could have our own global config, without fear of us stepping on someone, or someone stepping on us. 

Git global config
user.name=hudson
user.email=hudsonbuild@hudson.eclipse.org

cat /home/hudson/genie.releng/.gitconfig
[user]
	name = hudson
	email = hudsonbuild@hudson.eclipse.org
Comment 5 David Williams CLA 2016-06-27 14:08:13 EDT
(In reply to David Williams from comment #4)
> (In reply to David Williams from comment #3)
> 
> > Should also check ENV variables, just to be positive that the global config
> > is not "shared" on "hipp8".
> 
> Our ${HOME} is specific to "genie.releng", so we could have our own global
> config, without fear of us stepping on someone, or someone stepping on us. 
> 
> Git global config
> user.name=hudson
> user.email=hudsonbuild@hudson.eclipse.org
> 
> cat /home/hudson/genie.releng/.gitconfig
> [user]
> 	name = hudson
> 	email = hudsonbuild@hudson.eclipse.org

I have changed these to to "genie.releng" but that is not working yet. See bug 496335.
Comment 6 David Williams CLA 2016-07-08 17:47:12 EDT
Mail now comes from "genie.releng" and the repositories are tagged by "genie.releng" so I think this bug can be marked fixed.