Can you provide some context to this discussion for those of us who know
little to nothing about the work you're discussing? We're going to start
sharing a common style system between Servo and Gecko? When? :)

-Ryan

On Tue, Dec 22, 2015 at 4:23 PM, Bobby Holley <bobbyhol...@gmail.com> wrote:

> Thinking about this a bit more, it occurs to me that style system changes
> that would require simultaneous Gecko fixup in the same commit are likely
> to also require simultaneous Servo fixup.
>
> Given that, I think we probably want to vendor all of Servo, rather than
> just the crates we build in Gecko. This would facilitate making breaking
> API changes where we have consumers in both Gecko and Servo that need
> fixing up (fixing up multiple consumers alongside the API is one of the
> primary wins of mono-repos).
>
> This would increase the traffic of Servo->Gecko vendoring updates, but we
> would clearly tweak CI to no-op for those effectively-NPOTB changes.
> Long-term when we get partial checkouts, we could make the default checkout
> of m-c omit the Servo-only crates.
>
> On Tue, Dec 22, 2015 at 10:15 AM, Bobby Holley <bobbyhol...@gmail.com>
> wrote:
>
>> Here's a strawman proposal of what I'm imagining for the sharing of the
>> style system between Gecko and Servo. I'm sure there's lots wrong here and
>> stuff that can be tweaked, but I wanted to get a slightly more concrete
>> proposal out there for discussion.
>>
>> * In m-c, we have vendored directories for each Servo crate we use.
>> * For crates where we cannot come up with an identical peer list on the
>> Gecko and Servo side, the component is marked read-only except for upstream
>> updates (enforced with a push hook), and must be modified the slow way
>> (submitting patches upstream, and then pulling them in).
>> * For components with unified peers, we do the following:
>> ** Enforce the peer set with commit hooks on both the Gecko and Servo
>> side.
>> ** Gecko and Servo try pushes which touch the shared code include an
>> additional job to run a try push on the other CI, and report the results.
>> If the peers enforce judicious use of try, this should catch most of the
>> cross-project breakage.
>> ** Each time a push which touches shared code lands in either repository,
>> a corresponding push (with non-squashed changesets) is prepared and
>> automatically pushed to the other repository.
>> ** If that push bounces, the repositories are marked as out-of-sync, and
>> an email is sent to the committer and the set of peers indicating that
>> manual fixup is required.
>> ** If possible, when the repositories are known to be out of sync, a
>> commit hook would prevent additional changesets from landing on either side
>> without a magic word in the commit message.
>>
>> Thoughts?
>>
>
>
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to