I think one important aspect here is to separate out the concerns of
vendoring code in-tree vs where that code is developed. It sounds like
Gecko has lots of technical requirements about why and how code lives
in-tree, but the more important bit here is how it changes over time.

What Yehuda was saying about how forking or syncing having downsides I
think is quite important for Rust code in Gecko, as this may run the
risk of splitting the ecosystem on various boundaries (e.g. the "gecko
rust-url" and the "upstream rust-url" or something like that). Along
those lines I think it's very important to drill down into exactly
what concerns there are about having these components developed in the
Servo-style as they are today.

It sounds like there's some hesitation about this today, but Yehuda I
think is making a good case that tooling can make the process quite
easy. There's quite a lot to benefit from with having only "one source
of truth" for all this code!


On Mon, Dec 21, 2015 at 2:45 PM, Yehuda Katz <wyc...@gmail.com> wrote:
> Yehuda Katz
> (ph) 718.877.1325
>
> On Mon, Dec 21, 2015 at 2:28 PM, Josh Matthews <j...@joshmatthews.net>
> wrote:
>
>> On 2015-12-21 5:21 PM, Yehuda Katz wrote:
>>
>>> On Mon, Dec 21, 2015 at 2:14 PM, Bobby Holley <bobbyhol...@gmail.com>
>>> wrote:
>>>
>>> I don't think this is going to fly in Gecko, unfortunately.
>>>>
>>>> Gecko is a monolithic repo, and everything needs to be vendored in-tree
>>>> (a
>>>> non-negotiable requirement from the build peers). This means that we'll
>>>> already need an automated process for pulling in updates to the shared
>>>> code, committing them, and running them through CI.
>>>>
>>>>
>>> Can you say a bit more about what the requirements are here? Is the reason
>>> for including the code in-tree that you need to be 100% confident that
>>> everyone is talking about the same code? Or is it more than that?
>>>
>>>
>> The "non-negotiable requirement from the build peers" is that the machines
>> that build Firefox do not have internet access.
>
>
> That's a totally reasonable requirement and one that I am very comfortable
> saying that Cargo should support.
>
> To support this requirement, we plan to add a new command that packages up
> an application into a single tarball (or equivalent), complete with all
> dependencies, and another command that can build such a package without
> network connectivity.
>
> Bundler has equivalent facilities (bundle package and bundle install
> --deployment) that I consider indispensable for deployment scenarios, and
> which I championed early on in the bundler process. (Heroku uses `bundle
> install --deployment` in their buildpacks).
>
> -- Yehuda
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to