Intent to require `mach try` for submitting to Try

Showing 1-39 of 39 messages
Intent to require `mach try` for submitting to Try Gregory Szorc 15/09/17 15:31
The Try Service ("Try") is a mechanism that allows developers to schedule
tasks in automation. The main API for that service is "Try Syntax" (e.g.
"try: -b o -p linux -u xpcshell"). And the transport channel for making
that API call is a Mercurial changeset's commit message plus a version
control "push" to the "try" repository on hg.mozilla.org.

As the recent "Reminder on Try usage and infrastructure resources" thread
details, scaling Firefox automation - and Try in particular - is
challenging. In addition, the number of workflows and variations that
automation needs to support is ever increasing and continuously evolving.

It shouldn't come as a surprise when I say that we've outgrown many of the
implementation details of the Try Service. Try Syntax itself is over 7
years old and has survived a complete rewrite of automation scheduling, for
example. Aspects of Try are adversely impacting the ability for developers
to use Try efficiently and therefore undermining our collective ability to
get important work done quickly.

In order to put ourselves in a position to more easily change
implementation details of the Try Service so we may deliver a better
experience for all, we'd like to require the use of `mach try` for Try
submissions. This will ensure there is a single, well-defined, and
easily-controlled mechanism for submitting to Try. This will allow greater
flexibility and adaptability. It will provide better opportunities for user
messaging. It will ensure that any new features are seen by everyone
sooner. It will eventually lead to faster results on Try for everyone.

Bug 1400330 ("require-mach-try") is on file to track requiring `mach try`
to submit to Try.

The mechanism for submitting to Try has remaining relatively stable for
years. `mach try` is relatively new - and I suspect unused by a sizeable
population. This is a potentially highly disruptive transition. That's why
we're not making it immediately and why we're sending this email today.

You can mitigate the disruption by using `mach try` before the forced
transition is made and reporting bugs as necessary. Have them block
"require-mach-try" if you need them addressed before the transition or
"mach-try" otherwise. We don't really have a good component for `mach try`
bugs, so put them in TaskCluster :: Task Configuration for now and chain
them to a tracking bug for visibility.

FAQ

Q: When will the transition be made?
A: When we feel `mach try` is usable for important workflows (as judged by
blockers on "require-mach-try"). Also, probably not before Firefox 57 ships
because we don't want to interfere with that release.

Q: What about old changesets?
A: You will still be able to submit to Try using the current/legacy
mechanism for old changesets. There will be a "flag day" of sorts on
mozilla-central after which all Try submissions will require `mach try` or
nothing will get scheduled.

Q: Will Try Syntax continue to work?
A: For the foreseeable future, yes. There is a long-term goal to replace
Try Syntax with something more automatic and less effort - at least for
most use cases. But there are no definite plans or a timetable to remove
Try Syntax.

Q: Are there any other major changes planned?
A: Several. People are hacking on path-based selection, `mach try fuzzy`
improvements, moz.build-based annotations influencing what gets scheduled,
not using a traditional Mercurial repository for backing Try, and more.
Some of these may not be available to legacy Try submission workflows,
giving you additional reasons to adopt `mach try` sooner.

Q: Should I be worried about this transition negatively impacting my
workflow?
A: As long as you file bugs blocking "require-mach-try" to make it known
why `mach try` doesn't work for you, your voice will be heard and hopefully
acted on. So as long as you file bugs, you shouldn't need to worry.
Re: Intent to require `mach try` for submitting to Try Botond Ballo 15/09/17 15:40
Will submitting to try from MozReview (or Phabricator once that
replaces MozReview) still work? I think there is important value in
being able to submit to try without a local checkout.

Cheers,
Botond
Re: Intent to require `mach try` for submitting to Try Gregory Szorc 15/09/17 15:47
Yes. And I agree there is value in scheduling automation without a checkout.

This is tracked in bug 1400333.
Re: Intent to require `mach try` for submitting to Try Nick Fitzgerald 15/09/17 16:48
Does `mach try` still require `git cinnabar` when using a `git` checkout of
m-c, or does it work with `moz-git-tools` now too?

Thanks,

Nick
Re: Intent to require `mach try` for submitting to Try Nicholas Nethercote 15/09/17 16:52
Are there docs on how to use `./mach try`? `./mach help try` doesn't give
much detail.

Also, will https://mozilla-releng.net/trychooser/ still work? I'm generally
more of a command line person than a GUI person, but this is one case where
I find the GUI approach far more usable.

Nick
Re: Intent to require `mach try` for submitting to Try Bobby Holley 15/09/17 16:54
FWIW, I've found |./mach try fuzzy| to be very intuitive and kind of the
best of both worlds for command-line vs GUI. I don't know what the
non-fuzzy version does, but perhaps fuzzy should be the default.
> _______________________________________________
> dev-platform mailing list
> dev-pl...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
Re: Intent to require `mach try` for submitting to Try Kris Maglione 15/09/17 16:57
`mach try` is basically just a wrapper around try syntax, with
the added ability to specify paths to directories you want to
add tests for. It suffers the same lack of documentation that
try syntax in general does.

Trychooser now generates `mach try` command lines in addition to
commit message syntax, so given that try syntax is supposed to
continue to work with `mach try`, I don't see why trychooser
wouldn't.
--
Kris Maglione
Senior Firefox Add-ons Engineer
Mozilla Corporation

He hoped and prayed that there wasn't an afterlife.  Then he realized
there was a contradiction involved here and merely hoped that there
wasn't an afterlife.
        --Douglas Adams

Re: Intent to require `mach try` for submitting to Try Nicholas Nethercote 15/09/17 18:06
I should have been clearer: I'm not so worried about the syntax, so long as
https://mozilla-releng.net/trychooser/ still exists. What's unclear to me
is the revision management/selection side of things.

Nick

On Sat, Sep 16, 2017 at 9:57 AM, Kris Maglione <kmag...@mozilla.com>
wrote:
Re: Intent to require `mach try` for submitting to Try Gregory Szorc 15/09/17 18:40
On Fri, Sep 15, 2017 at 4:48 PM, Nick Fitzgerald <nfitz...@mozilla.com>
wrote:

> Does `mach try` still require `git cinnabar` when using a `git` checkout
> of m-c, or does it work with `moz-git-tools` now too?
>

It currently requires git-cinnabar. TBH, I forgot about this. Supporting
non-cinnabar will be a bit annoying. Not impossible, but annoying.

A non-cinnabar user should file a blocking bug detailing their workflow so
we can figure out a path forward. It is quite possible the outcome is "only
support git-cinnabar." So whoever files the bug should reply here with the
link so non-cinnabar Git users can pile on and let your numbers be known.
But please do it in the bug and not on this list.
Re: Intent to require `mach try` for submitting to Try Gregory Szorc 15/09/17 18:49
On Fri, Sep 15, 2017 at 4:51 PM, Nicholas Nethercote <n.net...@gmail.com
> wrote:

> Are there docs on how to use `./mach try`? `./mach help try` doesn't give
> much detail.
>

`mach try` has sub-commands. Run `mach help try syntax` and `mach help try
fuzzy` for more useful docs. The former is actually a pretty reasonable
documentation of Try Syntax. There is some light magic where `mach try
<args>` is essentially treated as `mach try syntax`. This could be
documented better in `mach help try`.


>
> Also, will https://mozilla-releng.net/trychooser/ still work? I'm
> generally more of a command line person than a GUI person, but this is one
> case where I find the GUI approach far more usable.
>

I reckon it will. Although with the velocity that Try Syntax changes, it is
arguably better to have this all in-tree. Also, it is kind of silly that
you have to open a web site and copy something from that into your
terminal. IMO this should all be turnkey.  e.g. `mach try chooser` would
start a local HTTP server, point your web browser at it, and an HTML form
submission would stop the local HTTP server and submit to Try. That feels a
bit more pleasant (for those who can run a browser in their development
environment anyway).

But I digress: that site should continue to run.
Re: Intent to require `mach try` for submitting to Try Boris Zbarsky 15/09/17 18:58
On 9/15/17 6:30 PM, Gregory Szorc wrote:
> we'd like to require the use of `mach try` for Try
> submissions.

So just to be clear, instead of being able to "hg push -f try" will one
now need to do "./mach try syntax ....." and put in the actual syntax
string on every single try push?

The reason I ask is that a very common use case for me is having a
single try syntax that I want to apply to multiple changesets (e.g.
bisecting things on try, or doing A/B comparisons on some tests
with/without some patches, etc).  Having a trysyntax changeset or ten in
my mq works pretty well for this.  I can give them names that indicate
what sort of try push they do, so if I want to do a "linux64, tests, no
talos" changeset I don't have to go around digging for the try syntax
for it: I already have something that has a name indicating that, and
qpushing it is pretty easy with the name-substring matching qpush does.

There are obviously ways mach try could support this, e.g. by being able
to easily define aliases for particular ways of pushing to try or
whatnot.  But it doesn't have an obvious way of doing that right now.

One could also use shell aliases for this, but in practice the lack of
substring matching on shell aliases would get annoying, because there
are a bunch of kinda-similar variants involved in my experience.

-Boris
Re: Intent to require `mach try` for submitting to Try Steve Fink 15/09/17 19:08
On 9/15/17 6:58 PM, Boris Zbarsky wrote:
> On 9/15/17 6:30 PM, Gregory Szorc wrote:
>> we'd like to require the use of `mach try` for Try
>> submissions.
>
> So just to be clear, instead of being able to "hg push -f try" will
> one now need to do "./mach try syntax ....." and put in the actual
> syntax string on every single try push?
>
> The reason I ask is that a very common use case for me is having a
> single try syntax that I want to apply to multiple changesets (e.g.
> bisecting things on try, or doing A/B comparisons on some tests
> with/without some patches, etc).  Having a trysyntax changeset or ten
> in my mq works pretty well for this.  I can give them names that
> indicate what sort of try push they do, so if I want to do a "linux64,
> tests, no talos" changeset I don't have to go around digging for the
> try syntax for it: I already have something that has a name indicating
> that, and qpushing it is pretty easy with the name-substring matching
> qpush does.
>
> There are obviously ways mach try could support this, e.g. by being
> able to easily define aliases for particular ways of pushing to try or
> whatnot.  But it doesn't have an obvious way of doing that right now.

I've never used it, but it already has pretty much exactly this. Look at
--save, --preset, and --list-presets under ./mach help try syntax

Re: Intent to require `mach try` for submitting to Try Gregory Szorc 15/09/17 19:11
`mach try fuzzy` supports presets via `mach try fuzzy --preset PRESET`. See
`mach help try fuzzy`.

I encourage you to file bugs on making the usability fit your needs. I
would even consider an "auto bisect" mechanism (where it submits N
changesets using the same configuration) a reasonable feature request.
Since Try scheduling is all in-tree now, we could do that in a single push
- possibly even with a single changeset. That will almost certainly be
faster than the workflow you are currently practicing.
Re: Intent to require `mach try` for submitting to Try Boris Zbarsky 15/09/17 19:18
On 9/15/17 10:08 PM, Steve Fink wrote:
> I've never used it, but it already has pretty much exactly this. Look at
> --save, --preset, and --list-presets under ./mach help try syntax

Ah, I see.  Alright, I'll give this a shot.

-Boris

Re: Intent to require `mach try` for submitting to Try Eric Rescorla 15/09/17 19:45
What happens if you are using git?

-Ekr
Re: Intent to require `mach try` for submitting to Try Andrew Halberstadt 15/09/17 20:29
Yes, we'd like to make it the default eventually. I've been holding off for
now, but expect it will be switched to the default at some point in Q4 or
Q1. If you don't want to wait and are tired of typing 'fuzzy' each time,
you can create a ~/.mozbuild/machrc file and add:
[try]
default = fuzzy

On Fri, Sep 15, 2017 at 7:54 PM Bobby Holley <bobby...@gmail.com> wrote:

> FWIW, I've found |./mach try fuzzy| to be very intuitive and kind of the
> best of both worlds for command-line vs GUI. I don't know what the
> non-fuzzy version does, but perhaps fuzzy should be the default.
>
> On Fri, Sep 15, 2017 at 4:51 PM, Nicholas Nethercote <
> n.net...@gmail.com
> > wrote:
>
> > Are there docs on how to use `./mach try`? `./mach help try` doesn't give
> > much detail.
> >
> > Also, will https://mozilla-releng.net/trychooser/ still work? I'm
> > generally
> > more of a command line person than a GUI person, but this is one case
> where
> > I find the GUI approach far more usable.
> >
> > Nick
Re: Intent to require `mach try` for submitting to Try Gregory Szorc 15/09/17 20:34
On Fri, Sep 15, 2017 at 7:44 PM, Eric Rescorla <e...@rtfm.com> wrote:

> What happens if you are using git?
>

git-cinnabar is already supported.

Vanilla git is TBD. I see bug 1400470 was just filed for that.
Re: Intent to require `mach try` for submitting to Try Eric Rescorla 15/09/17 20:38
On Fri, Sep 15, 2017 at 8:33 PM, Gregory Szorc <g...@mozilla.com> wrote:

> On Fri, Sep 15, 2017 at 7:44 PM, Eric Rescorla <e...@rtfm.com> wrote:
>
>> What happens if you are using git?
>>
>
> git-cinnabar is already supported.
>

Supported how? Do I have to have special remote names? Special refs? Or
does it mess with my git config?



> Vanilla git is TBD. I see bug 1400470 was just filed for that.
>

Having this fixed seems like a blocker.

-Ekr
Re: Intent to require `mach try` for submitting to Try Gregory Szorc 15/09/17 21:26
On Fri, Sep 15, 2017 at 8:37 PM, Eric Rescorla <e...@rtfm.com> wrote:

>
>
> On Fri, Sep 15, 2017 at 8:33 PM, Gregory Szorc <g...@mozilla.com> wrote:
>
>> On Fri, Sep 15, 2017 at 7:44 PM, Eric Rescorla <e...@rtfm.com> wrote:
>>
>>> What happens if you are using git?
>>>
>>
>> git-cinnabar is already supported.
>>
>
> Supported how? Do I have to have special remote names? Special refs? Or
> does it mess with my git config?
>

It "just works." Git doesn't require remotes or tracking refs to do pushes
and the git-cinnabar `mach try` integration doesn't make meaningful (read:
outside of reflog) persisted changes to your repo state as part of doing
its job.


>
>
>
>> Vanilla git is TBD. I see bug 1400470 was just filed for that.
>>
>
> Having this fixed seems like a blocker.
>

Maybe. The policy is to support Git as a VCS tool for Firefox development.
Previously, git-cinnabar - but not vanilla Git - has counted. e.g.
git-mozreview and artifact builds require cinnabar. I would strongly prefer
to maintain the "support Git == git-cinnabar" interpretation because
otherwise we're looking at supporting N+1 tools (where the +1 for vanilla
Git is *substantially* more effort than the existing Mercurial +
git-cinnabar).

I'd prefer to take a data-driven approach to answering the question of "do
we need to support vanilla Git." I wish I had local developer metrics or
results from a recent developer survey to feed into a decision. In lieu of
that data, I'd encourage users of vanilla Git to make noise on bug 1400470
if you feel you need `mach try` support.
Re: Intent to require `mach try` for submitting to Try ISHIKAWA,chiaki 15/09/17 22:22
Does "mozilla/mach try" will work for try-comm-central?

(Well, I know there has been a general talk of moving thunderbird to
somewhere else, but it is not going to happen overnight.)

TIA


Re: Intent to require `mach try` for submitting to Try Marco Bonardo 16/09/17 01:31
I have a problem with try fuzzy, not sure if it's just my system, so
didn't file a bug yet. On Windows it always hangs after it tries to
cleanup its own stuff at the end, I must terminate it and manually
uncommit and purge the config file.
Does anyone have the same problem?
Re: Intent to require `mach try` for submitting to Try Eric Rescorla 16/09/17 06:44
On Fri, Sep 15, 2017 at 9:25 PM, Gregory Szorc <g...@mozilla.com> wrote:

> On Fri, Sep 15, 2017 at 8:37 PM, Eric Rescorla <e...@rtfm.com> wrote:
>
>>
>>
>> On Fri, Sep 15, 2017 at 8:33 PM, Gregory Szorc <g...@mozilla.com> wrote:
>>
>>> On Fri, Sep 15, 2017 at 7:44 PM, Eric Rescorla <e...@rtfm.com> wrote:
>>>
>>>> What happens if you are using git?
>>>>
>>>
>>> git-cinnabar is already supported.
>>>
>>
>> Supported how? Do I have to have special remote names? Special refs? Or
>> does it mess with my git config?
>>
>
> It "just works." Git doesn't require remotes or tracking refs to do pushes
> and the git-cinnabar `mach try` integration doesn't make meaningful (read:
> outside of reflog) persisted changes to your repo state as part of doing
> its job.
>
>
>>
>>
>>
>>> Vanilla git is TBD. I see bug 1400470 was just filed for that.
>>>
>>
>> Having this fixed seems like a blocker.
>>
>
> Maybe. The policy is to support Git as a VCS tool for Firefox development.
> Previously, git-cinnabar - but not vanilla Git - has counted. e.g.
> git-mozreview and artifact builds require cinnabar. I would strongly prefer
> to maintain the "support Git == git-cinnabar" interpretation because
> otherwise we're looking at supporting N+1 tools (where the +1 for vanilla
> Git is *substantially* more effort than the existing Mercurial +
> git-cinnabar).
>

But the cost of that is imposing cinnabar on everyone who wants to use git.
This is bad for several reasons:

1. Custom tools are bad (incidentally, this is also an argument against the
machization of everything, but that's perhaps for another day)
2. There are a lot more people writing code for Firefox than developing the
internal tools, so in general, costs on those people should be avoided.

Moreover, the trend here is to support native *git*: Phabricator doesn't
require hg (at least it shouldn't; it certainly doesn't when we use it for
NSS) and as we move away form having people do direct pushes to the repo,
then they won't need cinnabar to land code either. So, having try be about
the only place where where you need cinnabar is bad.



> I'd prefer to take a data-driven approach to answering the question of "do
> we need to support vanilla Git." I wish I had local developer metrics or
> results from a recent developer survey to feed into a decision. In lieu of
> that data, I'd encourage users of vanilla Git to make noise on bug 1400470
> if you feel you need `mach try` support.
>

This is not a good decision making procedure. First, requiring people to
volunteer their objections inherently underweights those objections because
it's work to do so. Second, the current situation has incentivized people
to use cinnabar, so the number of vanilla git users is less than it
otherwise would be. But this is bad, for the reasons I listed above. The
right question is: what future do we want to live in, and that's a policy
question, not one decided by taking a (highly biased) poll of what people
currently do.

-Ekr
Re: Intent to require `mach try` for submitting to Try Andrew Halberstadt 16/09/17 21:05
Interesting, please file a bug either way and CC me. It worked
for me back when it first landed, though I haven't tried it since.
I'll see if I can reproduce sometime this week.
Re: Intent to require `mach try` for submitting to Try Marco Bonardo 17/09/17 01:58
On Sun, Sep 17, 2017 at 6:05 AM, Andrew Halberstadt
<ahalbe...@mozilla.com> wrote:
> Interesting, please file a bug either way and CC me. It worked
> for me back when it first landed, though I haven't tried it since.
> I'll see if I can reproduce sometime this week.

Done: https://bugzilla.mozilla.org/show_bug.cgi?id=1400652
Re: Intent to require `mach try` for submitting to Try Steve Fink 17/09/17 12:09
On 9/16/17 6:43 AM, Eric Rescorla wrote:
> On Fri, Sep 15, 2017 at 9:25 PM, Gregory Szorc <g...@mozilla.com> wrote:
>
>
>> I'd prefer to take a data-driven approach to answering the question of "do
>> we need to support vanilla Git." I wish I had local developer metrics or
>> results from a recent developer survey to feed into a decision. In lieu of
>> that data, I'd encourage users of vanilla Git to make noise on bug 1400470
>> if you feel you need `mach try` support.
>>
> This is not a good decision making procedure. First, requiring people to
> volunteer their objections inherently underweights those objections because
> it's work to do so. Second, the current situation has incentivized people
> to use cinnabar, so the number of vanilla git users is less than it
> otherwise would be. But this is bad, for the reasons I listed above. The
> right question is: what future do we want to live in, and that's a policy
> question, not one decided by taking a (highly biased) poll of what people
> currently do.

Supporting more tool variants (eg adding bare git to the current two)
requires more resources. In a perfect world, that resource decision
would be based on the actual costs and benefits to the overall
organization. My observation is that so far, we have kept a tight limit
on the number of resources dedicated to this sort of tooling,
independent of an objective cost/benefit analysis. (Which is even
somewhat justifiable; tooling, like many other areas, can easily grow to
absorb whatever resources you give it, so it's hard to judge "enough".)

This means that I have a lot of sympathy for the tooling people who
would be forced to maintain the wider variation, with no reason to
believe that the necessary resources will be made available. It will
just starve out resources for other tooling, limiting us closer to a
common denominator set of functionality.

But that's just a general observation; if you look at this specific
case, it might not be much effort to support native git for
richer/future try pushing. But that's very different from requiring all
the tools to support native git on an equal basis. And it seems
reasonable to evaluate the utility of this specific support via a poll,
even one known to be biased.

Also, the assumption that you submit try jobs via standard revision
control operations is an artifact of our current implementation. It's
true that many other systems are doing the same thing, but many other
systems don't have anything akin to try syntax. And as history has
proven, selecting an appropriate set of tasks to run is not a trivial
thing, so it kind of makes sense to have *some* sort of special-case
tooling around it.

I agree that the larger policy question is the right one to ask, though.
What future do we want to live in? The git/github juggernaut is hard to
ignore. (Confession: I'm a happy hg user, so the current setup works
fine for me and I don't know enough about the alternatives to understand
the tradeoffs in using cinnabar vs raw git. Heck, over half of my github
checkouts are through hg-git; I don't understand why anyone would use
git in the first place if they didn't have to. Obviously, opinions vary!)

Re: Intent to require `mach try` for submitting to Try Eric Rescorla 17/09/17 20:06
On Sun, Sep 17, 2017 at 12:09 PM, Steve Fink <sf...@mozilla.com> wrote:

> On 9/16/17 6:43 AM, Eric Rescorla wrote:
>
>> On Fri, Sep 15, 2017 at 9:25 PM, Gregory Szorc <g...@mozilla.com> wrote:
>>
>>
>> I'd prefer to take a data-driven approach to answering the question of "do
>>> we need to support vanilla Git." I wish I had local developer metrics or
>>> results from a recent developer survey to feed into a decision. In lieu
>>> of
>>> that data, I'd encourage users of vanilla Git to make noise on bug
>>> 1400470
>>> if you feel you need `mach try` support.
>>>
>>> This is not a good decision making procedure. First, requiring people to
>> volunteer their objections inherently underweights those objections
>> because
>> it's work to do so. Second, the current situation has incentivized people
>> to use cinnabar, so the number of vanilla git users is less than it
>> otherwise would be. But this is bad, for the reasons I listed above. The
>> right question is: what future do we want to live in, and that's a policy
>> question, not one decided by taking a (highly biased) poll of what people
>> currently do.
>>
>
> Supporting more tool variants (eg adding bare git to the current two)
> requires more resources.


Well, if we simply supported vanilla git properly, we wouldn't need
cinnabar support, so it's not strictly greater.



> In a perfect world, that resource decision would be based on the actual
> costs and benefits to the overall organization. My observation is that so
> far, we have kept a tight limit on the number of resources dedicated to
> this sort of tooling, independent of an objective cost/benefit analysis.
> (Which is even somewhat justifiable; tooling, like many other areas, can
> easily grow to absorb whatever resources you give it, so it's hard to judge
> "enough".)
>
> This means that I have a lot of sympathy for the tooling people who would
> be forced to maintain the wider variation, with no reason to believe that
> the necessary resources will be made available. It will just starve out
> resources for other tooling, limiting us closer to a common denominator set
> of functionality.
>

You say "common denominator" like it's a bad thing. But using commodity
tooling is *good*, not bad, as the recent example of doing something
largely custom with mozreview rather than just taking Pharicator
more-or-less off the shelf demonstrates. The reason to write new tooling is
when you can't get away with commodity tooling.


> But that's just a general observation; if you look at this specific case,
> it might not be much effort to support native git for richer/future try
> pushing. But that's very different from requiring all the tools to support
> native git on an equal basis. And it seems reasonable to evaluate the
> utility of this specific support via a poll, even one known to be biased.
>

I don't think that's true, for the reasons I indicated above. Rather,
there's a policy decision about whether we are going to have Git as a
first-class thing or whether we are going to continue force everyone who
uses Git to fight with inadequate workflows. We know there are plenty of
people who use Git.

-Ekr
Re: Intent to require `mach try` for submitting to Try Henri Sivonen 18/09/17 01:11
On Mon, Sep 18, 2017 at 6:05 AM, Eric Rescorla <e...@rtfm.com> wrote:>
I don't think that's true, for the reasons I indicated above. Rather,
> there's a policy decision about whether we are going to have Git as a
> first-class thing or whether we are going to continue force everyone who
> uses Git to fight with inadequate workflows. We know there are plenty of
> people who use Git.

Besides occasionally having to convert between hg and cinnabar
changeset ids, what's inadequate about cinnabar workflow(s)?

--
Henri Sivonen
hsiv...@hsivonen.fi
https://hsivonen.fi/
Re: Intent to require `mach try` for submitting to Try Samael Wang 18/09/17 01:27
In a rare case that we need to send a "CLOSED TREE" try job,
will we be able to do that with ./mach try?
Last time I didn't use mach try to submit try job was because of that.
Re: Intent to require `mach try` for submitting to Try James Graham 18/09/17 02:27
That doesn't work right now, but it should be easy to add a
--closed-tree flag or similar. File a bug please?
Re: Intent to require `mach try` for submitting to Try James Graham 18/09/17 02:57
On 18/09/17 04:05, Eric Rescorla wrote:

>> But that's just a general observation; if you look at this specific case,
>> it might not be much effort to support native git for richer/future try
>> pushing. But that's very different from requiring all the tools to support
>> native git on an equal basis. And it seems reasonable to evaluate the
>> utility of this specific support via a poll, even one known to be biased.
>>
>
> I don't think that's true, for the reasons I indicated above. Rather,
> there's a policy decision about whether we are going to have Git as a
> first-class thing or whether we are going to continue force everyone who
> uses Git to fight with inadequate workflows. We know there are plenty of
> people who use Git.

I don't entirely understand what concrete thing is being proposed here.
As far as I can tell the git-hg parameter space contains the following
points:

  1. Use hg on the server and require all end users to use it
  2. Use git on the server and require all end users to use it
  3. Use hg on the server side and use client-side tooling to allow git
users to interact with the repository
  4. Use git on the server side and use client-side tooling to allow hg
users to interact with the repository
  5. Provide some server side magic to present both git and hg to
clients (with git, hg, or something else, as the on-disk format)

These all seem to have issues relative to the goal of "vanilla git with
no custom code":

  1. Doesn't allow git to be used at all.
  2. Requires a multi-year transition away from hg. Probably not popular
with hg fans.
  3. The status quo. Requires using a library for converting between hg
and git (i.e. cinnabar) or some mozilla-specific custom scripts (the old
moz-git-tools)
  4. Like 3. but with an additional multi-year transition and different
custom tooling.
  5. Allows vanilla git and hg on the client side, but requires
something complex, custom, and scary on the server side to allow pushing
to either repo. Could be possible if we eliminate ~all manual pushes
(i.e. everything goes via autoland), but cinnabar or similar is still
there in the background.

Given none of those options seem to fit, the only other possibility I
can think of is to skip the general problem of how to interact with the
VCS for try specifically by making submitting to try not look like a VCS
push, but like some other way of sending a blob of code to a remote
machine (e.g. using some process that generates a patch file). But
unless there's some extant way to achieve that it seems like it would be
replacing known-working code (cinnabar) with new custom code.

So my best guess is that you mean that all pushes should go via autoland
and we should provide read-only hg/git repositories, and try pushes
should also go via something other than a vcs push. But I'm probably
missing something.
Re: Intent to require `mach try` for submitting to Try Eric Rescorla 18/09/17 05:08
On Mon, Sep 18, 2017 at 1:10 AM, Henri Sivonen <hsiv...@hsivonen.fi> wrote:

> On Mon, Sep 18, 2017 at 6:05 AM, Eric Rescorla <e...@rtfm.com> wrote:>
> I don't think that's true, for the reasons I indicated above. Rather,
> > there's a policy decision about whether we are going to have Git as a
> > first-class thing or whether we are going to continue force everyone who
> > uses Git to fight with inadequate workflows. We know there are plenty of
> > people who use Git.
>
> Besides occasionally having to convert between hg and cinnabar
> changeset ids, what's inadequate about cinnabar workflow(s)?
>

That's a big part of it. I've also had it fail randomly and for unobvious
reasons (especially if you have some kind of unconventional hg install) and
then had to figure out why. And of course it means you need to install and
maintain hg and cinnabar, not just git. It's just another piece of wacky
custom machinery that we make devs suffer through.

-Ekr


>
> --
> Henri Sivonen
> hsiv...@hsivonen.fi
> https://hsivonen.fi/
> _______________________________________________
> dev-platform mailing list
> dev-pl...@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
Re: Intent to require `mach try` for submitting to Try Eric Rescorla 18/09/17 05:16
On Mon, Sep 18, 2017 at 2:56 AM, James Graham <ja...@hoppipolla.co.uk>
wrote:

> On 18/09/17 04:05, Eric Rescorla wrote:
>
> But that's just a general observation; if you look at this specific case,
>>> it might not be much effort to support native git for richer/future try
>>> pushing. But that's very different from requiring all the tools to
>>> support
>>> native git on an equal basis. And it seems reasonable to evaluate the
>>> utility of this specific support via a poll, even one known to be biased.
>>>
>>>
>> I don't think that's true, for the reasons I indicated above. Rather,
>> there's a policy decision about whether we are going to have Git as a
>> first-class thing or whether we are going to continue force everyone who
>> uses Git to fight with inadequate workflows. We know there are plenty of
>> people who use Git.
>>
>
This is what I meant. And having something complex and scary on the server
side is (at least to me) obviously better than having something complex and
 scary (and did I mention constantly out of date) on the client side,
because it's all in one place and externally just looks like the thing the
client is expecting. Note that we already have half of this because we have
one-way synching to gecko-dev on the server side. Perhaps one could also
rip off some of the servo-gecko synching stuff here, but I don't know much
about how that's architected.


Given none of those options seem to fit, the only other possibility I can
> think of is to skip the general problem of how to interact with the VCS for
> try specifically by making submitting to try not look like a VCS push, but
> like some other way of sending a blob of code to a remote machine (e.g.
> using some process that generates a patch file). But unless there's some
> extant way to achieve that it seems like it would be replacing
> known-working code (cinnabar) with new custom code.
>

> So my best guess is that you mean that all pushes should go via autoland
> and we should provide read-only hg/git repositories, and try pushes should
> also go via something other than a vcs push. But I'm probably missing
> something.


Well, I do think this is the direction we should be moving towards, as it
seems to have a pile of advantages. Indeed, if we're *already* going to be
forcing people to submit to try via mach rather than via vcs push, why
wouldn't we do that for this piece of it now?

-Ekr
Re: Intent to require `mach try` for submitting to Try Gregory Szorc 18/09/17 07:49
On Fri, Sep 15, 2017 at 10:21 PM, ISHIKAWA,chiaki <ishi...@yk.rim.or.jp>
wrote:

> Does "mozilla/mach try" will work for try-comm-central?
>
> (Well, I know there has been a general talk of moving thunderbird to
> somewhere else, but it is not going to happen overnight.)
>

I'm not sure. There's no good reason why it should or shouldn't. Also, we
may not impose this Try push restriction on try-comm-central. It depends
how tightly linked they are. Realistically, we likely go with whatever is
the least effort way forward for Firefox because we're not supposed to be
spending time hacking on Thunderbird's infra and tooling.
Re: Intent to require `mach try` for submitting to Try Myk Melez 18/09/17 07:50
> James Graham <mailto:ja...@hoppipolla.co.uk>
> 2017 September 18 at 02:56
> 5. Allows vanilla git and hg on the client side, but requires
> something complex, custom, and scary on the server side to allow
> pushing to either repo. Could be possible if we eliminate ~all manual
> pushes (i.e. everything goes via autoland), but cinnabar or similar is
> still there in the background.
If the Gecko repository that developers clone is synced with cinnabar
(which is how I sync mozilla/gecko, and which folks've discussed doing
with mozilla/gecko-dev for years), then the scary server-side thing
could be a Git repository synced with cinnabar that forwards pushes to
the current tryserver.

That's essentially the same amount of scariness as is currently the case
(i.e. cinnabar), except, as ekr noted, it is only maintained on the
server rather than on each individual developer's machine.

-myk

Re: Intent to require `mach try` for submitting to Try Eric Rescorla 19/09/17 08:50
On Tue, Sep 19, 2017 at 8:40 AM, Aki Sasaki <asa...@mozilla.com> wrote:

> On 9/16/17 6:43 AM, Eric Rescorla wrote:
>
>> 2. There are a lot more people writing code for Firefox than developing
>> the
>> internal tools, so in general, costs on those people should be avoided.
>
>
>
> On Mon, Sep 18, 2017 at 5:16 AM, Eric Rescorla <e...@rtfm.com> wrote:
>
>> And having something complex and scary on the server
>> side is (at least to me) obviously better than having something complex
>> and
>>  scary (and did I mention constantly out of date) on the client side,
>> because it's all in one place and externally just looks like the thing the
>> client is expecting. Note that we already have half of this because we
>> have
>> one-way synching to gecko-dev on the server side. Perhaps one could also
>> rip off some of the servo-gecko synching stuff here, but I don't know much
>> about how that's architected.
>>
>
> I might be reading the first statement wrong: I see that as an argument to
> avoid putting more costs on the people who develop and maintain internal
> tools, because it's a smaller group. If this is an accurate reading, then
> the second paragraph appears to be contradictory: moving the pain and
> complexity around git from all Firefox developers onto this smaller group
> will increase costs for that smaller group. From my perspective, gecko-dev
> conversions have largely been as smooth as can be expected for the past
> number of years, but we're seeing more timeouts, and it may only be a
> matter of time before we either need to sink significant internal tools
> development time into the conversion script, or we hit an issue that causes
> significant downtime.
>

Sorry I wasn't clear, because I meant the opposite: the purpose of tooling
is to make the experience for the majority of developers as smooth as
possible, because there are a lot more people doing development of Firefox
than writing tools. Accordingly, things which move load from the people
developing tooling to everyone else should generally be avoided unless the
cost on everyone else is trivial and the cost of the tooling is very high.
That may or may not mean that the tools group needs to be bigger, but
that's part of the cost/benefit calculation. Certainly, we shouldn't take
the size of the tools group as fixed for purposes of that assessment.


If I'm reading wrong, and you're saying we need to avoid putting costs on
> the larger Firefox development group, then the two statements are
> non-contradictory. I do think expecting supporting 2 VCSes as seamlessly as
> one is a large ask of the smaller team; do many other software projects
> support multiple official VCSes and workflows?
>

Generally no, but this is an unfortunate consequence of Mozilla's decision
a while ago to pick a VCS which has not turned out to be the dominant
choice (not placing blame here, but I think it's clear that's how it's
turned out). The result is that a lot of people want to use git and that
means git needs to have a first class experience.

-Ekr


> Originals to end.
>> >  5. Allows vanilla git and hg on the client side, but requires something
>> > complex, custom, and scary on the server side to allow pushing to either
>> > repo. Could be possible if we eliminate ~all manual pushes (i.e.
>> everything
>> > goes via autoland), but cinnabar or similar is still there in the
>> > background.
>> >
>>
Re: Intent to require `mach try` for submitting to Try Andrew McCreight 19/09/17 09:20
On Tue, Sep 19, 2017 at 8:49 AM, Eric Rescorla <e...@rtfm.com> wrote:

> Generally no, but this is an unfortunate consequence of Mozilla's decision
> a while ago to pick a VCS which has not turned out to be the dominant
> choice (not placing blame here, but I think it's clear that's how it's
> turned out). The result is that a lot of people want to use git and that
> means git needs to have a first class experience.
>

I've been using git for years now to develop Firefox, and I feel like it is
a first class experience. There's a one time cost to setting up cinnabar,
but after that, everything just works, including |mach try| and |mach
mozreview|. It is still probably less setup than Mercurial users have to go
through to install enough extensions to make hg usable. ;) Sure, there's a
bit of "wacky custom machinery", but developers using hg also have to deal
with some of that, so that's more of a Firefox developer problem than a git
Firefox developer problem.

Andrew
Re: Intent to require `mach try` for submitting to Try Bobby Holley 19/09/17 10:01
On Tue, Sep 19, 2017 at 9:20 AM, Andrew McCreight <amccr...@mozilla.com>
wrote:

> On Tue, Sep 19, 2017 at 8:49 AM, Eric Rescorla <e...@rtfm.com> wrote:
>
> > Generally no, but this is an unfortunate consequence of Mozilla's
> decision
> > a while ago to pick a VCS which has not turned out to be the dominant
> > choice (not placing blame here, but I think it's clear that's how it's
> > turned out). The result is that a lot of people want to use git and that
> > means git needs to have a first class experience.
> >
>
> I've been using git for years now to develop Firefox, and I feel like it is
> a first class experience. There's a one time cost to setting up cinnabar,
> but after that, everything just works, including |mach try| and |mach
> mozreview|. It is still probably less setup than Mercurial users have to go
> through to install enough extensions to make hg usable. ;) Sure, there's a
> bit of "wacky custom machinery", but developers using hg also have to deal
> with some of that, so that's more of a Firefox developer problem than a git
> Firefox developer problem.
>

This matches my experience, FWIW, at least on mac and linux. I haven't
tried on windows.
Re: Intent to require `mach try` for submitting to Try Jean-Yves Avenard 19/09/17 23:12
On Tue, Sep 19, 2017 at 7:21 PM, Eric Rescorla <e...@rtfm.com> wrote:

> I've also had cinnabar fail badly at various times, and then it's been
> pretty unclear what
> the service level guarantees for that were.
>
>
time to try again maybe?

I use git with cinnabar on windows, linux and mac, and I haven't had any
issues with cinnabar in a long while.

I do copy my .git/config file whenever I'm switching machine because I can
never be bothered to learn the various URLs.

Whenever I ran into a (very rare) issue, :glandium was there to help....

Thanks Mike!
Re: Intent to require `mach try` for submitting to Try Aki Sasaki 25/09/17 08:49
On 9/16/17 6:43 AM, Eric Rescorla wrote:

> 2. There are a lot more people writing code for Firefox than developing the
> internal tools, so in general, costs on those people should be avoided.



On Mon, Sep 18, 2017 at 5:16 AM, Eric Rescorla <e...@rtfm.com> wrote:

> And having something complex and scary on the server
> side is (at least to me) obviously better than having something complex and
>  scary (and did I mention constantly out of date) on the client side,
> because it's all in one place and externally just looks like the thing the
> client is expecting. Note that we already have half of this because we have
> one-way synching to gecko-dev on the server side. Perhaps one could also
> rip off some of the servo-gecko synching stuff here, but I don't know much
> about how that's architected.
>

I might be reading the first statement wrong: I see that as an argument to
avoid putting more costs on the people who develop and maintain internal
tools, because it's a smaller group. If this is an accurate reading, then
the second paragraph appears to be contradictory: moving the pain and
complexity around git from all Firefox developers onto this smaller group
will increase costs for that smaller group. From my perspective, gecko-dev
conversions have largely been as smooth as can be expected for the past
number of years, but we're seeing more timeouts, and it may only be a
matter of time before we either need to sink significant internal tools
development time into the conversion script, or we hit an issue that causes
significant downtime.

If I'm reading wrong, and you're saying we need to avoid putting costs on
the larger Firefox development group, then the two statements are
non-contradictory. I do think expecting supporting 2 VCSes as seamlessly as
one is a large ask of the smaller team; do many other software projects
support multiple official VCSes and workflows?

More topics »