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