On Wed, Aug 3, 2016 at 10:31 PM, Mitchell Baker <mitch...@mozilla.com> wrote:
> Ah yes, good point. For me personally, there's very little that's > contentious about adapting our policies to reflect changing engineering > practices. When I wrote a bunch of our original policies many years back, > they were a reflection of actual practice at the time with our > aspirations. So updating policy to reflect today's practices seems a marof > a well managed project. So probably there's a bunch to do here. > > On the scope side, does "firefox" capture it? If we mean the set of code > that ships as part of Firefox, then it clearly includes Gecko,etc, which we > would want. > I want to say yes. However, even defining "code that ships as part of Firefox" under the same policy could be difficult. We've always had 3rd party code like libbzip2 and more recently libraries like ICU and WebRTC vendored in mozilla-central. These were projects where Mozilla didn't really do much upstream work or at least weren't in the driver's seat: we just periodically dumped upstream changes into mozilla-central. With the Oxidation of Gecko, we're starting to vendor Rust components that are primarily developed by Mozilla but are done so outside the Firefox umbrella. There are even tentative plans to have Servo "mirrored" into Firefox repositories in real time, effectively bringing the Servo project into scope for Firefox's policies (in theory). With Firefox's Go Faster project, we are starting to ship code to users that never lands in an existing Firefox repository on hg.mozilla.org. It doesn't necessarily even go through the same code review workflow or tools. This includes the entirety of the Test Pilot "experiments," for example (see https://github.com/mozilla/testpilot). There are projects like Firefox for iOS that use the "Firefox" brand name but live outside the traditional Firefox code/tools umbrella. If you want to be cynical or paranoid, you could say these things are threats to the best practices and policies that have been established around Firefox [for Android/Desktop + Gecko]. They definitely test the boundaries of what a "Firefox Commit Access Policy" means. I can make the argument that there should be a governance module covering the rules for what gets shipped to Firefox [for Android/Desktop] users (not necessarily limited to the mozilla-central bits) and how that is reviewed, audited, etc. The commit access policy would be under purview of that module. FWIW, I've been put in a few positions over the years as a Firefox build system peer where I was asked to review code that introduced 3rd party source into Firefox. Oftentimes I was the one asking questions about install size bloat, license review, etc. I did this because they are important questions to ask, not because I was following some procedure (no well-defined or followed procedure exists AFAIK). (I've wondered what would have happened if they didn't land on my plate and nobody asked these questions.) I can also point to instances where large Firefox features were developed at Mozilla outside of Firefox's more stringent peer review workflows and then were effectively thrown over a wall and incorporated into Firefox. Firefox Sync was more or less done this way. There are things in the Firefox Sync code that would have never received review from a Firefox module peer. But by the time we wanted to "graduate" the "Weave" extension to a core feature of Firefox, it was either spend months to rewrite things or ship. We chose to ship and we're still living with the technical debt and performance issues as a result. I'm no fan of bureaucracy and excessive policy, but given the security, privacy, stability, performance, and long-term engineering productivity implications of shipping code to hundreds of millions of users and maintaining that code, I think I would feel better if there were more formal governance for incorporating/shipping code into/with Firefox not developed under the traditional Firefox module governance system. This would include decisions/policies on not only 3rd party code like WebRTC and ICU, but also Mozilla-influenced projects like Rust and Servo components and Test Pilot. As it stands, there is no central entity fulfilling that role (I think the closest we have is Release Management and they tend to not get involved until close to ship time). > I agree that acting as if this policy governs code it doesn't is not > helpful. And by being clear what it does cover, it also makes it clear > where we are making a different risk / convenience / reward balance. > > Mitchell > > > > > On 8/3/16 10:06 PM, Gregory Szorc wrote: > > On Wed, Aug 3, 2016 at 8:20 PM, Mitchell Baker <mitch...@mozilla.com> > wrote: > >> ideal followup is governance ... cross posting to reach those likely to >> be interested >> >> I'm currently the owner of the Commit Access Policy module. That's >> because I wrote the original policy and did what was necessary to get it >> implemented. (That's old history!) I was also engaged in the rewrite to >> the current policy but not at the same level. There's a separate module for >> implementation, owned by Marcia Knous. >> >> Someone closer to our code should own this policy going forward. I have >> a few ideas but there are many people who have become active whom I don't >> yet know. So if there's someone you think should own this policy please do >> let me know. It should be someone familiar with how things work, who has a >> sense for good, workable practices that protect are code and a good >> communicator. >> >> current policy is here: https://www.mozilla.org/en-US/ >> about/governance/policies/commit/access-policy/ >> > > I'm going to say something that might be a bit contentious: I think a > single commit access policy for all of Mozilla reflects the needs of > Mozilla from several years ago, not the needs of Mozilla today. The world > has changed. Mozilla has changed. The policy was written before distributed > version control was popular, before services like GitHub. > > The reality of today is that the "Mozilla Commit Access Policy" is > effectively the "Firefox Commit Access Policy." There are large Mozilla > projects to which the existing policy does not apply or is simply ignored. > On GitHub, each organization or project has the freedom to define its own > policy. This is both good and bad. Mostly good for the flexibility and > convenience. Bad in that it has historically been the wild west and there > are some gotchas in GitHub's permissions model that can lead to access > being granted where it shouldn't be. See https://wiki.mozilla.org/Github > for more on the policy that more or less governs the "mozilla" organization > on GitHub. Of course there are other Mozilla-affiliated organizations, like > Rust, Servo, Bugzilla, TaskCluster, ... > > I'm not sure how formal we want to be on a commit policy that attempts to > govern all of Mozilla and/or that governs less established projects or > projects outside the Firefox umbrella. > > I do believe that Firefox needs a formal policy. I consider security and > legal requirements as significant drivers of at least the Firefox commit > policy. So having someone with well-formed connections to those groups and > who knows the server maintainers would be ideal. I know Doug Turner has > expressed interest in the Firefox commit policy and his org runs the > Mozilla-hosted version control servers and Firefox automation. Ditto for > Lawrence Mandel and Jonathan Griffin. Hal Wine has done a lot of work on > establishing sanity to GitHub access, has familiarity with Firefox access > and security concerns, has access to the version control servers, and seems > to have connections throughout Mozilla. Those are the first names that jump > out to me. But I think choosing someone really depends on the scope of the > module/policy going forward... > > > _______________________________________________ governance mailing list governance@lists.mozilla.org https://lists.mozilla.org/listinfo/governance