Skip to content

Latest commit

 

History

History
158 lines (85 loc) · 9.63 KB

tsc-2024-07-29.md

File metadata and controls

158 lines (85 loc) · 9.63 KB

Servo Technical Steering Committee Meeting

Servo TSC Meeting July 2024

Agenda

  • Status update
  • Stylo release
  • Taffy
  • Plans for Flexbox/Grid support
  • Crowdfunding
  • CI runners proposal
  • Outreach
  • AOB

Notes

Attending:

  • TSC members: Loirooriol, mrego, mrobinson, nicoburns, wusyong
  • Other: jschwe, matlu, ststimac, vlindhol

Status update

Rego: there has been a lot of things ongoing this month. Quite a lot of improvements in fonts and canvas, and a few properties here and there, aspect ration, table layout, progress in flexbox implementation, and taffy with servo to render flexbox and grid

Rego: Progress from outreachy internship with devtools

Rego: we are passing more and more wpt tests, thank you for all this work!

Stylo release

Nico: we all want to do a release at some point, and we had some queries on zulip. Trying to work out what the remaining blocking issues are. We can do versions bumps and crate releases. A few mentions of "we're up to date" but there seems to be a small diff between us and upstream. What is the status of that? Interested in whether I should start submitting patches. A broader high-level discussion, how do we want to do versions and releases? How often? What are we prepared to commit to?

Nico: for versioning suggest 0.1, 0.2 etc, release every time we do a sync (monthly) and we maintain a changelog, especially of breaking changes.

Martin: We've been trying to reduce the diff between upstream and servo version of stylo. Things like version bumps or anything added to downstream, we should think about adding to upstream as well. Seeing how we can adapt upstream to our requirements.

Martin: any kind of tricks to reduce the diff is the goal. Everything carried downstream is a burden.

Nico: Diff - most things there could go upstream. Some things have path dependencies.

Martin: Maybe they could be upstream?

Oriol: Stylo can be compiled for servo or gecko and if we start publishing this...?....will other projects be okay with compiling stylo as servo. An option enable all properties? Should we consider something along those lines?

Nico: Reluctant to introduce another option. Ideal world is where there is a general build that Servo uses. A servo version should be able to get to a point that's generally usable. We've enabled most of the styles, enabled behind preferences that users could change themselves. Longer term, if we could expose the code generation as a public API, so people could choose custom css properties etc. Short term, probably good to make available what we have

Nico: I think we are overthinking it a bit. We could publish the version we've got, we need to upstream a few things and not worry too much about breaking changes.

Rego: There's agreement on publishing this. An open question about release schedules. How often should we be releasing stylo?

Rego: does anyone have thoughts on this?

Rego: publish every quarter maybe so we don't put pressure on ourselves.

Nico: the crate is easy to publish, maintaining the breaking changes list will be a bit time consuming

Oriol: about listing breaking changes, I think if some API changes that Servo is using, but some other project is, we may just import from upstream gecko, we may not realize there's a change. We would need to take a closer look at what every change is doing. We can list changes that we notice, but we shouldn't promise to cover everything?

Nico: maybe other people can tell us about things we've missed

Martin: We do a lot of work to do the upgrades and then all the other things, making changelogs is extra stuff that is not immediately useful. Would people in the community be willing to help with those tasks?

Nico: I probably have time to work on these types of things. My scope of work involves maintaining ownership of servo crates. Down to timing it with other things.

Martin: New goal is to make changes directly upstream and then sync

Taffy

Rego: Nico can you summarize the status of things?

Nico: it's integrated it runs, wpt tests work, done some analysis on what's not passing, a lot of things are failing because of writing mode direction rtl, browsed real world websites and things generally look good, I think if we implemented columns in servo, that would make a huge difference, and there are some perf issues that need to be solved, same a columns in current implementation. CSS Grid implementation works as well. What is the TSC's opinion for flexbox and css grid.

Nico: In the very short term, it's better than what we've got. If we had columns, it would be much better. Long term, it's good to have things separated out so people don't have to compile servo. Seems good to have an abstraction. Open the floor for other opinions.

Rego: Let's focus on Taffy for now.

Martin: Igalia has been working on flexbox, our thought is we don't see any harm in having more than one implementation of flexbox, determined by preference. Having a version of Grid that works better with Taffy is better than none. Proposal is to land Taffy implementation but not replace the old one.

Rego: Taffy is providing flexbox and grid support, but what happens with tables and other layout? Or we are only enabling Taffy for particular layouts?

Nico: It's only for flexbox and grid and not planning to do anything else. It does support block layout and we support that in blitz.

Martin: Question about Taffy, does it support parallelism?

Nico: no it doesn't, no reason it couldn't. The API would have to change slightly. Do we have evidence that parallelism speeding things up in Servo:

Martin: In the early days yes. Were you test web content or lightweight applications?

Nico: Main one is a 10,000 node tree. Didn't make any difference at all.

Martin: if the processing is very low you might not notice a difference.

Nico: there was no text layout in there, so might affect things, just flexbox and grid. The text layout is where parallelism would really be a benefit.

Rego: If it's only for flexbox and grid, you mentioned it would be simpler for people to contribute. I'm not sure how all this will interact or where we'll need to work on things. We can see how things will evolve. If people prefer to work on Servo code or the separate library. The layout engine is a big part of a web rendering engine. Whether to put in a separate repo or not, not sure yet.

Nico: In terms of WPT tests, having a meeting to discuss if we could make the layout tests statically analyzable. Would be able to run tests quicker.

Plans for Flexbox/Grid support

Rego: We thought Nico would be working on Flexbox, but we have taken over that as Nico is working on Taffy. We'll be working on benchmarking and compare Taffy with the other one for Flexbox. CSS Grid, we haven't started work on it. Easiest way right now to get support would be through Taffy. Another point about intrinsic sizing?

Nico: intrinsic sizing keywords, applies to all of the layouts, block table flex and grid, min-content, max-content to override the sizing behavior. Wanted to note it. There are a number of tests failing. Wanted to raise in case we wanted to prioritize that.

Rego: I don't think there are current plans to work on it. Igalia's plans are flexbox then grid but probably not this year.

Nico: Would people be open to me laying groundwork for feature flags. If the Taffy PR lands it will come with Grid implementation

Martin: That seems fine. Go ahead and land. For grid, fine to use Taffy, and we'll want to keep a note about implementation.

Crowdfunding

Rego: A few updates, Linux Foundation money has finally been transferred to Open Collective. LFX platform is still open and we've been asking to close it. Hopefully it will close and all money will be in Open Collective. We have around $12k.

Rego: We've added servo to thanks.dev platform; which has already bring some money to the Open Collective

Rego: https://opencollective.com/servo/contributions/779000

Rego: Next point is how to spend money?

CI runners proposal

Rego: Delan was working on proposal with Nico?

Rego: Spend 100 euros/month to improve build times and then see how that goes. Just needs details of how it will work. We talked about this in the past and there was agreement.

Rego: As everyone is fine we can consider this approved. We'll give it a try and see how things evolve.

Outreach

Rego: Not a lot happening this past month. I gave a talk earlier in the month. I will post a link as its been posted to YouTube. The next event with be OSS EU in Vienna in September. Igalia will have a booth and we'll be showcasing Servo. Then LF Europe Member Summit the day after, where Servo will have a booth.

Rego: https://www.youtube.com/watch?v=SamA5Oz-G5w

AOB

Remembering Alan Jeffrey

Rego: https://mastodon.scot/@asaj/112734953536918050

Martin: Shares about Alan Jeffrey and his impact on Servo. Moment of silence.

Performance tracking

Jonathan: For discussion, I was wondering if we could have basic integrations to show us overtime where changes happen. To track performance/metrics for servo.

Martin: We have WPT dashboard, it would be nice to integrate something into the same dashboard to see changes with nightlies.

Rego: binary size is simplest one. We can look into setting something up. Igalia has experience with other projects. We could at least run some performance tests. Not sure if Servo used to do this on Mozilla's servers.

Rego: Probably better for servers to be hosted by Servo.

Nico: Not aware of solutions for this but very interested in what Servo comes up with.