mirror of
https://github.com/servo/servo
synced 2026-04-25 17:15:48 +02:00
Page:
Meeting 2014 04 07
Pages
Adding a new WebIDL binding
Alternative Logo Proposals and Related Swag
Asynchronous WebAssembly compilation project
Austin Oxidation
Autogeneration of style structs
Basic SVG support project
Beginner's guide to rebasing and squashing
Benchmarking
Benchmarks
Bots
Browser Engine Research
Build Errors FAQ
Buildbot administration
Building for Android
Building for Magic Leap
Building for UWP
Building on ARM desktop Linux
Building
CI Services we use
CSS parse error reporting
CSSOM student project
Canvas rendering project
Cargo upgrade service project
Code rust concurrency
Code Review
Code of Conduct
Coding standards
Compiler upgrade recipes
Compositor Layer Design
Contributing
Control Servo using WebDriver
Creating and viewing WARC web archives in Servo
Creating new OpenSSL Windows binary distributions
Cross compiling from linux to mac
Crowbot
Css selector matching meeting 2013 07 19
DOM Design
DOM documentation
DOM missing pieces
Debugging JS web compat issues
Debugging and editing tools
Debugging
Design
Developer tools student project
Devtools CSS errors
Devtools plans
Devtools
Diagnosing SpiderMonkey JIT issues
Eric Atkinson visit 2013 09 10
Events and sundry
Expand HTTP request response monitoring
Fetch improvement project
Firefox Reality release notes
FirefoxReality build
Firewall setup for servo master1
Focus student project
Form validation student project
GSoC project brainstorming
Garbage collected DOM
Getting started with layout
GitHub Labels
Github & Critic PR handling 101
Github workflow
Glossary
Governance
Graphics toolkit integration
HTML parser improvement project
HTMLElement binding conversion
HTTP archive support project
HTTP library requirements
Hawaii Rooting
High priority content for layout
Highfive
HoloLens 2 test plan
Home
How to generate GStreamer binaries for CI
Image load conformance student project
Image maps project
Implement HTML charset parsing project
Implement ImageBitmap project
Implement missing WebAudio automation student project
Implement support for missing XMLHttpRequest APIs
Implement worker modules
Implementing a web standard (RGSoC)
Improve specification conformance of unicode bidi library
Incremental flow tree construction
Infrastructure
Integrate xml5ever
Intern project brainstorming
Intern projects
JS objects, wrappers, and cross origin concerns 2013 08 07
Layout 2020
Layout Overview
Layout resources
Layout revamp ideas
Leo meyerovich visit 2013 07 22
Linux sandboxing
London Oxidation
London Security
Meeting 2014 10 27
Meeting 2014 12 08
Meeting 2012 02 08
Meeting 2012 02 16
Meeting 2012 07 20
Meeting 2013 04 01
Meeting 2013 04 15
Meeting 2013 04 22
Meeting 2013 04 29
Meeting 2013 05 06
Meeting 2013 05 13
Meeting 2013 05 20
Meeting 2013 06 03
Meeting 2013 06 10
Meeting 2013 06 14
Meeting 2013 06 17
Meeting 2013 06 24
Meeting 2013 07 01
Meeting 2013 07 15
Meeting 2013 07 22
Meeting 2013 07 29
Meeting 2013 08 05
Meeting 2013 08 12
Meeting 2013 08 19
Meeting 2013 09 09
Meeting 2013 09 16
Meeting 2013 09 23
Meeting 2013 09 30
Meeting 2013 10 14
Meeting 2013 10 21
Meeting 2013 10 28
Meeting 2013 11 04
Meeting 2013 11 18
Meeting 2013 11 25
Meeting 2013 12 02
Meeting 2013 12 09
Meeting 2013 12 16
Meeting 2014 01 06
Meeting 2014 01 13
Meeting 2014 01 21
Meeting 2014 01 27
Meeting 2014 02 03
Meeting 2014 02 10
Meeting 2014 02 24
Meeting 2014 03 10
Meeting 2014 03 17
Meeting 2014 03 24
Meeting 2014 03 31
Meeting 2014 04 07
Meeting 2014 04 14
Meeting 2014 04 21
Meeting 2014 04 28
Meeting 2014 05 05
Meeting 2014 05 13
Meeting 2014 05 19
Meeting 2014 06 09
Meeting 2014 06 17
Meeting 2014 06 23
Meeting 2014 06 30
Meeting 2014 07 07
Meeting 2014 07 14
Meeting 2014 07 21
Meeting 2014 07 29
Meeting 2014 08 04
Meeting 2014 08 11
Meeting 2014 08 12
Meeting 2014 08 18
Meeting 2014 08 25
Meeting 2014 09 08
Meeting 2014 09 15
Meeting 2014 09 22
Meeting 2014 09 29
Meeting 2014 10 06
Meeting 2014 10 13
Meeting 2014 10 20
Meeting 2014 11 10
Meeting 2014 11 17
Meeting 2014 11 24
Meeting 2014 12 15
Meeting 2015 01 05
Meeting 2015 01 12
Meeting 2015 01 26
Meeting 2015 02 09
Meeting 2015 02 23
Meeting 2015 03 02
Meeting 2015 03 16
Meeting 2015 03 30
Meeting 2015 04 06
Meeting 2015 04 13
Meeting 2015 04 27
Meeting 2015 05 04
Meeting 2015 05 11
Meeting 2015 05 18
Meeting 2015 06 01
Meeting 2015 06 08
Meeting 2015 06 15
Meeting 2015 07 06
Meeting 2015 07 13
Meeting 2015 07 27
Meeting 2015 08 10
Meeting 2015 08 17
Meeting 2015 08 24
Meeting 2015 08 31
Meeting 2015 09 14
Meeting 2015 09 21
Meeting 2015 09 28
Meeting 2015 10 05
Meeting 2015 10 12
Meeting 2015 10 19
Meeting 2015 10 26
Meeting 2015 11 02
Meeting 2015 11 09
Meeting 2015 11 16
Meeting 2015 11 30
Meeting 2016 01 04
Meeting 2016 01 11
Meeting 2016 01 25
Meeting 2016 02 01
Meeting 2016 02 08
Meeting 2016 02 22
Meeting 2016 03 07
Meeting 2016 03 21
Meeting Devtools Servo 2
Meetings
Microdata project
Minutes Hackathon 2012 03 27
Missing DOM features project
More ServiceWorker support project
More developer tools student project
Mozlandia Automation
Mozlandia B2S
Mozlandia JS
Mozlandia Rust In Gecko
Mozlandia WPT
Mozlandia gfx
Mozlando Devtools Servo
Mozlando Oxidation
Mozlando SM Servo
Mozlando Servo Bluetooth
Mozlando Servo MagicDOM
Mozlando Servo SMStrings
Mutation observer project
Mutation testing project
NCSU student projects
Network security project
Off main thread HTML parsing project
Offscreen canvas improvements project
Offscreen canvas project
Orlando Oxidation 2018
Oxidation 2015 11 05
Persistent sessions student project
Preparing ARM libraries for CI
Priority of CSS properties
Priority of DOM implementation
Priority of dom bindings
Private browsing student project
Profiling
Project proposal deadlines
Prototype JS form controls student project
Prototype ways of splitting the script crate
Publishing a new ANGLE NuGet version
Publishing a new app store release
Push vs Pull for caching
Random web content project
Refactor GLES2 student project
Refactor bluetooth support student project
Remaining work
Removing push notifications from IRC hooks
Replace C libraries student project
Report new contributors project
Representation of computed style
Research
Reviewer
Roadmap
Running Web Platform Tests on Servo
Rust HTML parser
Rust SpiderMonkey debugger API
Rust cssparser code walk 2013 08 02
SaltStack Administration
San Francisco Oxidation
Servo Benchmarking Report (December 2024)
Servo Benchmarking Report (November 2024)
Servo Benchmarking Report (October 2024)
Servo Layout Engines Report
Servo and SpiderMonkey Report
Servo for Gecko Developers
Specification Links
SpiderMonkey related tasks
SpiderMonkey infodump
SpiderMonkey upgrade details
Storage student project
Streaming webassembly student project
Strings
Student project brainstorm
Student projects
Styling overview
Stylo hacking guide
Summer of Code 2014: Implement XMLHttpRequest
Summer of Code 2016: Fetch API
Summer of Code 2016: File support
Summer of Code 2016: ServiceWorker infrastructure
Summer of Code projects
Summit meeting 2013 09 09
Support WebDriver based tests project
Syncing web platform tests (WPT)
TaskCluster
Testing
Tools
Tracking intermittent failures over time project
Transcription Notes from Servo Architecture talk in Suwon
Transcription notes from rust patterns talk in suwon
Transcription parallelism
Transcription rust concurrency
Transcription rust runtime
Transription layout and acid2
Trinity College Dublin student projects
UPenn student projects
Updating the Rust compiler used by Servo
Upgrading non taskcluster linux CI machines
Upgrading the UWP gstreamer binaries
Upgrading the windows LLVM binaries
Upgrading wptrunner
Using DOM types
Using Rust Spidermonkey Prototype
Using WebWorker Prototype
Version 0.1
Videos and presentations
WebAudio JS interfaces student project
WebAudio nodes student project
WebCompatBug
WebSocket student project
Webdriver student project
Webdriver tests student project
Webrender Overview
Whistler 2019 notes
Whistler Bugzilla
Whistler FFOS
Whistler GFX
Whistler Houdini1
Whistler Houdini2
Whistler Necko
Whistler Oxidation 2019
Work items for new contributors
Workweek COW DOM
Workweek alt js
Workweek android arm
Workweek boot 2 servo
Workweek compiler lints
Workweek displaylist
Workweek dogfooding
Workweek encoding
Workweek generated content
Workweek governance
Workweek graphics stack
Workweek graphics toolkit
Workweek incremental layout
Workweek js bindings status
Workweek layers
Workweek layers2
Workweek pixels
Workweek rasterization
Workweek reftests
Workweek roadmap
Workweek script crate
Workweek security
Workweek string interning
Workweek tables
Workweek writing modes
XML parser student project
infra triage notes
jQuery status
webxr.today support
Clone
1
Meeting 2014 04 07
Josh Matthews edited this page 2014-04-07 11:43:21 -07:00
Servo Meeting 2014-04-07
Agenda
- Official Mozilla module owner (jdm) http://www.mozilla.org/hacking/module-ownership.html
- Discussion of Q2 goals & plan (https://etherpad.mozilla.org/servo-planning and https://github.com/mozilla/servo/wiki/Roadmap )
- Rust upgrade (ms2ger)
- Should we use that status update tool? None of us really do anymore. Who reads it?
- Web Platform Tests - status and how should we integrate running them? (manishearth, ms2ger, jgraham)
- (Manishearth) I may turn up a bit late, a quiz of mine got rescheduled to an hour before the meeting.
- Build system options (mach vs. makefiles vs. cmake, etc.) (larsberg, jack) https://github.com/mozilla/servo/issues/2046
Attending
jack, mbrubeck, larsberg, simonsapin, jgraham, azita, jdm, ms2ger, kmc, abinader, Manishearth
Module ownership
- jdm: As I said in e-mail, creating an official module for Servo is a good thing to show that we have a governance structure and are tied in to Mozilla as a whole. I'm open to debate that.
- mbrubeck: I've done this before, and the goal was not to change what the team was doing, but just to document it.
- jack: Azita, did you have any concerns about this?
- azita: It seemed in the mails that you were nominating dherman, is that right?
- jack: I think originally it was myself and patrick. Then jdm thought maybe Dave...
- azita: dherman's out this week, and he should be here if so. But it's up to you guys. I don't think dherman cares.
- jdm: My impression is that dherman has some reponsibility for Servo? i.e., that he's the top in the chain for decision? But maybe jack or patrick?
- mbrubeck: Module owner is two things. 1: someone who can make decisions. 2: someone who can determine who the peers are and when to pass on module ownership. Sometimes those are different people, etc.
- azita: Is it usual to have more than two? Seems confusing. Or is that something that happens?
- jdm: For some of the larger modules, yes. Or when you have people who are sharing the role in different aspects.
- mbrubeck: Some parts of gecko (ipc & indexdb) have three.
- azita: Then, just have jack, pcwalton, and dherman?
- jack: Let's wait until dherman gets back. If he is, then we can propose it next week.
- azita: If it's not urgent, then let's just leave this off until next week.
- jack: I'm sure we'll get feedback from others if we're doing it wrong.
Q2 goals
- jack: Two documents. One is the roadmap and one is the servo planning etherpad. The Q2 goals on the roadmap are pretty much everything we'd already gone over. The planning etherpad has a basic overview of details and tentative owners. So, the first question is: does this list look correct for Q2? Beyond that, we can talk about what individual people want to work on.
- jack:
- jack: Not sure what's blocking an android buildbot. I think releng said they wouldn't spend any cycles on it, so it's up to us. What's the status of android builds?
- lars: Broken. Need to fix something in cross-target configuration; keep getting it working just in time for a new rust upgrade that breaks it.
Testing notes
- simonsapin: We don't need to separate the tests by w-p-t vs CSS, but instead script vs. CSS and tests that we want to contribute back. Also, bidi is not as important as the rest of writing modes, because it's fairly independent of the rest of layout code.
- jack: Isn't the problem with the CSS WG tests that they're not ref tests?
- simonsapin: In the CSS 2 suite, many of them are not automatic. So, yes, ideally we should eventually convert them to reftests. But, that will be a lot of work. Some are ref tests already. And the CSS level 3 specs may have better tests.
- jgraham: In CSS level 3, they only accept ref tests unless it is impossible to write them. It may be harder because they have their own infrastructure. Once we have compelling infrastructure in the w-p-t, we will try to import all of the CSS tests there as well. So, I'm hoping that it will eventually be a solved problem, but that might not occur on your timescale. Certainly, it will not likely happen in the next three months.
- jack: Is is worthwhile to have them make the tests pass even if they're not automatic? Or should converting them to reftests be OK?
- jgraham: Convering some will be trivial, but for some it is definitely not. If it's easy to convert to a ref test, it's worth doing. Because if we just get it to pass once, nobody will notice when it breaks again.
- simonsapin: We should probably start with the automatic ones.
- jack: The goal was to have easy first projects for the interns, so we would have to look and see why the tests don't pass.
- jgraham: Looking at a random selection of tests, they do not generally look like they are hard to convert to reftests.
- jack: Then I will make that part of the initial projects. We may have to filter out the ones that look like they may be hard to convert.
- jgraham: The other problem is that you need to know which basic features do work to build the reference part of the test...
Missing planning items
- jack: drmaeo; nightly builds. Also some new things: layers revamp, switching to SDL or EFL, and headless X testing support. Oh, and some misc. build system stuff, too. Does anyone have strong opinions on these things that aren't yet on the roadmap?
- jdm: Getting the CSS OM might be important to support basic web apps. but maybe we just need the style property?
- jack: Yeah, it didn't seem particularly hard, but it also seemed like we'd have to build some of the CSSOM infra to do it. Setting style does a bunch of stuff internally that requires the full CSSOM implementation. This came up in the longcat demo for the summit - changing the background color dynamically did not work. Maybe it'd be a good intern project?
- jdm: Or a superstar contributor?
- jack: Great, so should we keep the roadmap up to date with these names? Should we have people-names on the items in the list, file bugs and have owners?
- jdm: I like issues.
- jack: OK, lars and I will edit the roadmap wiki and we'll get some issues filed. Any other roadmap/planning issues?
- azita: Do we have metabugs, like one for Q2?
- jack: Probably just individual things, but linked from the roadmap wiki.
- simonsapin: I don't think BIDI affect the rest of layout the way writing modes does. It's mostly about text. So maybe not as urgent as writing modes? Maybe don't need for Q2?
- jack: OK, let's move it out.
Rust upgrade
- jack: How far forward are we going?
- jdm: Last Saturday.
- jack: Anything we need to talk about on it? Except that it's being done? I saw submodules landing.
- jdm: There's a problem with MutexArc's replacement having requirements we can't fulfill.
- jack: WIll that change?
- jdm: There's something filed. I think there was discussion over the weekend and eddyb mentioned a bug... (#13125)
- jack: Previously, we just copied the rust stdlib things and named them stuff like NewRc. So, we can just copy the old one over and deal with it in the next rust upgrade when that gets fixed. I seem to recall ms2ger didn't like that idea... maybe because the current MutexArc is unsafe.
- larsberg: Something about needing Share+Send and just being Send...
- jack: wasn't that the point of MutexArc?
- jdm: At minimum we should voice our problem in the issue; someone who understands the ramifications, preferably.
- jack: I think copying and pasting is a reasonable solution for now.
Status update
- jack: Should we use it? My response is "yes" and I try to read it.
- mbrubeck: the smedberg one? (http://benjamin.smedbergs.us/weekly-updates.fcgi/ )
- larsberg: I'd just brought it up because it'd become any every-other-thing deal
- azita: It's useful for me to understand what's going on.
- jack: Super-helpful for me to also see the history for someone over the last few months to remind me of what it looked like. I vote in favor of nagging for weekly entries. Maybe a wiki page for new contributors/employees/interns that tells them what the team uses. Certainly would be nice to have ms2ger and the rest using the tool so we know what they're hacking on :-)
- azita: Just not have it in multiple places. I find that one to be very useful.
- jack: The alternative is status more in meetings, which I'd like to avoid.
Web platform tests
- jack: So, where are we currently? I know jgraham did some work to get the runner working. Do we need to update?
- jgraham: General status is that in theory it now works with Servo. I tried it and it did work a few days ago. Also, the code now all lives in mozilla-central. A bit unfortunate, but it's also going to become a PyPy package so you can install via 'pip install'.
- simonsapin: What's the name of the package?
- jgraham: wpt-runner. It should now be possible to run them. But, integrating them into the build process or workflow is not entirely straightforward. We don't expect every test in the repository to pass. So, what the tool does is it allows you to create manifest files that tell you the expected result of the tests that don't pass. And so, every time you re-import the upstream tests, you need to regenerate those manifest files so they're correct for any changes that happened in the tests. There's a tool in there that pulls in upstream tests, but I think you have to decide where this is going to live in the Servo Universe. With gecko, it's in-tree, copies the tests over and commits them into mozilla-central. It then commits the manifest files. Basically, you then do a dry run with the new versions of the tests to get the new results. So, we need something equivalent in Servo.
- jack: MAybe have the wpt tests be a submodule? And then just have the manifest in the Servo repo?
- jgraham: The tests could, and then you could ignore the update infrastructure. It does have an autogeneration manifest tool...
- jack: Updating the manifest can just be part of updating the submodule pointer.
- jgraham: You'd have to update the expected baselines, anyway. Other practical problems are that there are a lot of them and they take a long time to run. In Gecko with one process, it takes an hour (serial). So it's not completely clear you want to make this happen when you type
make check. - jack: We can make this part of the make check targets and just have it run by the bots. So you can do it yourself if you want to, but only the bots always do. Our turnaround time on the bots is only 10 minutes, so this would be a big regression in serial. In parallel, probably only 10-15 minutes, which is fine.
- jgraham: It can run them in parallel, though I suspect they will be less stable. Initially, my approach would be to take a minimal set that you have a hope of passing and explicitly list what you want to run. There's no point in indexdb, DOMRange, etc. since we don't even support them. It would immediately cut down what we have to run by an order of magnitude.
- jack: Sounds fine. Manish, any questions?
- manish: No questions! Running the individual tests is better than running them all at once. I don't know about the submodules because it will require git to run properly. Also, having the tests inside the build directory, the update tool does not work correctly.
- jgraham: Yes, the tools assume the mozilla-central model if they're in a git repository, which is not what we want.
- jack: So we just don't run the update tool?
- jgraham: You just don't use it to do the sync. I think if you use a submodule, you don't need it.
- manish: Yes, just use the submodule and update it manually instead of via the normal wpt scripts. Otherwise, things will break.
- jack: OK, great. Anything else on wpt?
Build systems
- jdm: mach is not an either/or. mach is a level above makefiles, cmake, etc. It can create build backends. It's a meta-meta-build engine.
- jack: What are the common things you do with mach?
- jdm: It gives you a framework for building nice tools to aid developers. IT's a python package on pypi (don't have to borrow from firefox). Things that are useful in Firefox include integrating a build-system-configuration thing that sets up everything you need. Mach also determines when a clobber is required and will stop the build and tell you what to do. It also records warnings; shows resouce utliization. It's a broad python system for integrating lots of small modules that do things that you want. The resulting build files are just python scripts with very limited environments (lists of files, it automatically determines parallelism, etc.)
- jack: ms2ger says it's nicer to interact with than makefiles?
- jdm: Yes.
mach helpgives you info - jack: Other things use it than firefox?
- jdm: Nope.
- jgraham: You could be the first!
- jack: Some of them sound nice. ninja will list make targets (like how
rake -tworks). If we use CMake + ninja, that would give it to us. But CMake also generate Makefiles, which still have this problem... - jdm: Can have backends that generate files for ninja, tup, etc.
- larsberg: How much are we talking about in terms of having a "mach person" writing scripts and files and stuff?
- jdm: We don't have that many requirements, so it shouldn't be too challenging to create the moz.build files that mach uses... but they don't have git submodules
- mbrubeck: We could do what firefox did with mach, where it's just a wrapper that runs make commands. But then, you're also talking about using mozbuild, which is a second part of the firefox build system, and rewriting our Makefiles in to moz.build files... just using mach to wrap things is simple. The mozbuild is potentially more involved.
- jack: Yeah, I think we're not ready to rewrite to firefox's build system. We can look into mach then. jdm, you and mbrubeck and ms2ger have the most experience. Have you done any of this mach work before?
- jdm: Not recently, but I have in the past.
- jgraham: I've done non-build-related things with mach, which maybe doesn't count.
- jack: Do you like it?
- jdm: Yes. Very.
- mbrubeck: Yes.
- jack: Second part of this item is that the plan of record was to redo the build with cmake. Some of this was to get something that worked on Windows easily, because we'd previously been thinking about doing Windows soon. Not clear that Windows is such a high priority. So, do we want cmake? Are we happy with what we have now for Q2? Just looking for people's thoughts there.
- jdm: sounds like "meh"
- jack: Okay, is anybody having PROBLEMS with our build system?
- crickets
- jack: I know build systems are polarizing, but opinions are welcome...
- jdm: I have no issues with what we have, so let's stay with this for now.
- jack: One caveat is it would be nice if we could manage submodules better, particularly with the unintentional clobbers during Rust upgrades
ACID2
- simonsapin: I think there's a non pixel-perfect bug. We don't scroll to pixel perfect position w.r.t. jumping to #top because we have anti-aliasing issues.
- jgraham: So we can't reftest against the PNG
- jack: I feel comfortable with having passed layout correctly. Neither Safari nor nightly pass...
- mbrubeck: ACID2 does not work on HIDPI or zoomed. Nightly should pass on standard display and zoom level 100%. https://bugzilla.mozilla.org/show_bug.cgi?id=580920#c5
- jack: I'll draft a blog post without the scroll position bugfix.
- azita: We still have 24 bugs open for ACID2. Are we going to close these?
- jack: I think most can be closed. jdm and some others have been closing them, but we haven't made a concerted effort to go through that.
- azita: Yes, the list of bugs grows over time. With Rust, we had to have a separate weekly meeting just to triage them.
- SimonSapin: It's valuable to have ACID2 as a reftest and multiple occasions, it was the only one that would fail when there was a bug in layout. Admittedly, the weasyprint test suite is not that good, but it's a pretty good test.
- jack: Certainly. ACID1 has caught more than a few already, too.