Closed Bug 999524 Opened 10 years ago Closed 10 years ago

client.py should default to https urls

Categories

(MailNews Core :: Build Config, defect)

defect
Not set
normal

Tracking

(thunderbird29 fixed, thunderbird30 fixed)

RESOLVED FIXED
Thunderbird 31.0
Tracking Status
thunderbird29 --- fixed
thunderbird30 --- fixed

People

(Reporter: standard8, Assigned: standard8)

Details

Attachments

(1 file)

Attached patch The fixSplinter Review
From looking at the release building and what's client.py doing, I noticed that we're defaulting to http rather than https.

As a result, we've got a slightly different url to what Firefox is using for the repositories, i.e. we're using:

http://hg.mozilla.org/mozilla-central

rather than

https://hg.mozilla.org/mozilla-central

As the url is different the hgtool sees this as a bad url, and clobbers the shared repository directory that is used to save builders pulling the whole repo on each build.

There's probably a bug here that hgtool is incorrectly, however, as releng is generally using https for pulling, I think we should be doing the same, so I think this change is worth it anyway.

(I realise this may go away soon, but in the interim, it'll stop costing the builders extra time when they swap from m-c to c-c builds).
Attachment #8410367 - Flags: review?(Pidgeot18)
Attachment #8410367 - Flags: review?(Pidgeot18) → review+
Attachment #8410367 - Attachment is patch: true
I assume the builders are already pulling c-c over https to start with.

It would be nice to be able to use the c-c scheme (http, https or ssh) automatically, although I guess that would break if you started with a local clone of your c-c tree.
I notice that notwithstanding the fact that the patch in atachment 8410367 changed all 5 paths other than comm-central itself, and that it is applied in my comm-central clone, only the mozilla-central pull command gets a source URL (the others fall back to paths.default as define in the respective .hg/hgrc); and even for mozilla-central, the URL used actually comes from the hgrc: it changed from http to https when I changed it in the hgrc:

yesterday, with

[paths]
default = http://hg.mozilla.org/mozilla-central/

in comm-central/mozilla/.hg/hgrc

client.py checkout said (at the appropriate point)

Executing command: ['hg', 'pull', '-R', './mozilla', 'http://hg.mozilla.org/mozilla-central/']


Today, after I changed http to https in the hgrc, the last argument in that hg pull command also changed to an https URL



Is all this intentional?
(In reply to Tony Mechelynck [:tonymec] from comment #3)
> I notice that notwithstanding the fact that the patch in atachment 8410367
> changed all 5 paths other than comm-central itself, and that it is applied
> in my comm-central clone

Correct, your checkout location of comm-central is controlled by you and not client.py, e.g. you could do a local clone from one repo to another - client.py will just pull and update to the latest for you.

> only the mozilla-central pull command gets a
> source URL (the others fall back to paths.default as define in the
> respective .hg/hgrc);

I don't understand that. Only comm-central doesn't have a default defined, the rest do.

> and even for mozilla-central, the URL used actually
> comes from the hgrc: it changed from http to https when I changed it in the
> hgrc:

That's correct, client.py intentionally doesn't change existing .hg/hgrc files. This is because you may have set up local clones, or clones from special places.

If you want to pick up the changes then you need to either source clobber, or manually change the files as you have done.

Primarily this was making our builders pull https consistently which as side-effects improved build times. For developers, it is up to them to decide what they want to use locally (which is why client.py also takes arguments for repository urls for first-time cloning).

> Is all this intentional?

Yes.
(In reply to Mark Banner (:standard8) from comment #4)
> (In reply to Tony Mechelynck [:tonymec] from comment #3)
[...]
> > only the mozilla-central pull command gets a
> > source URL (the others fall back to paths.default as define in the
> > respective .hg/hgrc);
> 
> I don't understand that. Only comm-central doesn't have a default defined,
> the rest do.
[...]

Well, here are the pull command-lines in the output from my latest run of client.py checkout:

Executing command: ['hg', 'pull', '-R', './.']
Executing command: ['hg', 'pull', '-R', './mozilla', 'https://hg.mozilla.org/mozilla-central/']
Executing command: ['hg', 'pull', '-R', './mozilla/extensions/irc']
Executing command: ['hg', 'pull', '-R', './mozilla/extensions/inspector']
Executing command: ['hg', 'pull', '-R', './ldap/sdks']

What I meant was that the second one, for remote mozilla-central, local ./mozilla, has an additional URL argument at the end, which is present in none of the others. The default pull-location in the comm-central hgrc was created when _I_ cloned the repo, the other defaults were created by client.py itself when _it_ cloned the other repos on its first run, after seeing that they weren't there yet.
Oh, and Mark: Thanks for the detailed explanation. :-)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: