-
|
Servo’s Technical Steering Committee is looking for feedback regarding our policy for contributions made with generative AI. The current policy, adopted in June 2024, is documented in the Servo book (permalink). Earlier this year, a member of the TSC requested permission to experiment with GitHub Copilot. We granted them permission to do that for a single feature as an experiment, so we can better understand and document their process, and potentially re-evaluate our AI policy. After the experiment, we started discussing what to do about our AI policy, namely, should we keep our current policy or allow specific exceptions? A poll within the TSC showed that we were quite divided about what to do next, with similar votes in favour of each option. Discussion in the TSC continued in an attempt to reach consensus, and we’re now proposing the following changes to our AI policy:
While a majority of TSC members were in favour of these proposals, a significant minority were opposed, so we'd like to hear from our community, including (but not limited to) in this GitHub discussion and in this Zulip thread. These changes will go into effect no earlier than June 2025, subject to a review of your feedback. We know AI is a controversial topic, so we'd like to remind everyone to keep this discussion as constructive and non-confrontational as possible, observing our code of conduct. |
Beta Was this translation helpful? Give feedback.
Replies: 54 comments 84 replies
-
|
Just to clarify, does "usage of some AI tools to make the project more inclusive and accessible" include documentation? ( one could argue translating documentation to other languages, or documenting some obscure parts of code counts as making Servo more accessible ) |
Beta Was this translation helpful? Give feedback.
-
|
Hi, regarding non-code contributions, specifically documentation, I feel like AI tools are not appropriate for the job because of the way they tend to add plausible-sounding but wrong information into text they generate. I would argue that it's much more important for documentation to be precise and correct than for it to be written in perfectly grammatically correct language. Of course I imagine this is to be weighed against a reduction of workload for people writing the documentation, however I generally find it more productive to not find an answer to a question immediately than to get a wrong answer. My personal experience with AI-generated answers from search engines has been that they often confidently present completely wrong answers, and it's less work to ignore them and look for answers from authoritative sources (i.e. documentation) from the start, than trusting the AI-generated answer and finding out it's wrong later. In summary, I believe it's a bad idea to allow AI-generated text for use in documentation because it could result in making the one place that should have authoritative and reliable information lack those qualities. |
Beta Was this translation helpful? Give feedback.
-
|
Another concern:
Considering that it only lowers, but not eliminates the risk of copyright violations, is Servo equipped (financially, etc.) to handle a situation where a copyright violation occurs? Who covers the eventual cost of litigation if someone decides to sue - Servo, Igalia, or the contributor who added the copyrighted code to Servo? |
Beta Was this translation helpful? Give feedback.
-
|
👎👎 this will only make the project less trustworthy, less robust, and less open. It will also make Servo far less sustainable in both technical/documentation and environmental impact. You will lose a lot of contributors and supporters, replacing them with dubious contributions. |
Beta Was this translation helpful? Give feedback.
-
|
The Servo contribution policy currently requires the commit author to sign off commits with the Developer Certificate of Origin (#32496), which includes: However, as far as I can tell, there's no way to ensure the snippet generated by Copilot was sourced from open-source repositories with licenses that are permissive enough to use without a copyright notice - does the TSC plan to change the policy to remove the DCO sign-off requirement? |
Beta Was this translation helpful? Give feedback.
-
|
I am not a contributor myself but I'd like to chime in to note that Copilot can frequently be tricky in complex code, in ways that aren't clear, even in "small snippets and refactoring" - recently, in making a small implementation of Hindley-Milner, a relatively common algorithm which should have good enough coverage to be simple for an LLM to generate, it frequently output incorrect code, in ways I didn't necessarily understand. For a project with subtle correctness to worry about, I would highly recommend dissuading contributors from using Copilot. It's not necessarily possible to prevent all Copilot use - LLM output is here with us forever now - but I think the current AI policy seems reasonable for Servo. |
Beta Was this translation helpful? Give feedback.
-
|
I've been trying to contribute small fixes to Servo as I can, and bringing up Servo on systems and architectures that are "less popular" to ensure it is portable and can serve the widest number of people. Specifically, my interests are in platforms like Power, Arm, and MIPS. I have a number of concerns about this policy:
Note that when you allow LLM contributions, you invite a number of people who want to use it to have something on their CV ("I contributed to Servo"). Others may be well-meaning but do not understand programming and therefore cannot reason about whether or not the change makes any sense. This can do a lot of harm to the project in many ways, and the current policy already makes these cases very clearly and concisely. For that reason I would support keeping the current policy instead of widening it. |
Beta Was this translation helpful? Give feedback.
-
|
"ignore all criticisms; breach trust thermocline" Technical reasons aside, I urge you to consider the implications (and there is no escaping it) of this policy update. A good chunk of people (many of which may have considered contributing, and some of which may be active contributors) are going to see this and consider Servo tainted. Merely entertaining AI these days is a statement, and that statement is "we don't care about quality, we don't care about contributors, all hail the slop machine". It's bad optics. |
Beta Was this translation helpful? Give feedback.
-
|
As a coauthor of the current policy, these proposals are a mistake, and I have consistently said they are a mistake. I can elaborate on this in longer form if people want, but I’m honestly really tired of this whole situation, and I hope I can spend that time contributing to Servo in other ways. |
Beta Was this translation helpful? Give feedback.
-
|
An outsider here. I have some comments regarding using LLMs for code. Be warned. They are very radical! I don't have experience with a Rust codebase of this size. But I have great concerns regarding AI/ML. Not because I see it as a hype. But because most good models are only in the hand of specific big techs. And they have full control over it. Relying and getting used to these models could make people lazy. And when they aren't available anymore, it could interfere in development. If I was in your shoes and I had the resources, I would've deployed and used a model on my own infrastructure. If I had more resources and data, I might also have considered training a model specific only to the programming languages servo uses. This also might have other benefits. Such as feeding the entire codebase to the LLM. And then using it as an encyclopedia about the it. For a big codebase, it could be very useful for new contributors. Edit: In my own projects, I've found DuckDuckGo's Llamma useful for code review for Typescript and Rust. You give it the code and ask it to find the mistakes. Then it finds like 10 mistakes. And usually 2-3 of them are valid. And you can see that yourself. As your mind is filled. You can also look back at your code after a while or ask someone else to review it. But human time is valuable. With LLM, you pay computation time and buy valuable human time and energy. |
Beta Was this translation helpful? Give feedback.
-
|
Responding personally: If Servo begins allowing contributions for Copilot or other random code generators¹ I will halt my monetary contributions to Servo and also halt my code contributions to Servo. I am not a major Servo contributor, but I would like to help Servo if I can. However, I will not contribute code on a project where you don't know if code you are interacting with or potentially having to fix was written by a human, or randomly generated. I will expend effort to create things, but I refuse to expend effort to clean up after a random-text-generator robot creating nonsense code. Meanwhile, I will not intentionally support an organization that considers AI morally acceptable. I believe that "AI" is a cancer on human society and a poison to the human mind. I believe that its use will only make everything it touches worse. Moreover I believe that, due to inherent irrationality in capitalism— Capitalism will always seek to minimize labor costs, no matter what it has to sacrifice to do it, even if it means overall costs increase— I believe "AI" in all things is inevitable, unless every human who can see what is happening engages in total moral rejection of not just "AI" but any service or organization that even incidentally uses "AI". In some cases I'm not able to act out this moral view— software like Github, Firefox, or Google now integrate "AI", but I use them anyway, because they are a monopoly, or because their competitors also use "AI". I can't easily cut Github or Firefox out of my life. But my reasons for participating in Servo are primarily ideological. I really like Servo, but I don't need Servo; it would be very easy for me to stop paying attention to it altogether, because there is such a wealth of existing alternatives which are currently in a more complete state. Significant work is needed to get Servo to the point where it can replace the existing engines, and given those other engines do exist, nothing really is going to get you there except some kind of ideology. This makes a clear ideological basis more important for Servo than it is for other projects. You need to think about why you're doing what you're doing. There is another thing. As I mentioned above Firefox has recently embraced "AI" in their feature set (they are trying to move everyone to a new tab layout which has an always-present "AI chatbot" widget in the bottom left corner); I and many other people are now looking for a Firefox alternative as a result. I frequently have people ask me what browser they should switch to if they don't want to support "AI". Since I can't really recommend a Firefox fork (no Firefox fork so far is planning to remove the AI-bot pane, they just disable it— and it's not even clear if Floorp and Waterfox will disable it), I usually recommend Servo as the current "no AI" candidate. I don't know if it's worked, but I've encouraged people that if they want an alternative to the existing browsers they should consider financially supporting Servo. (No, I didn't get confirmation from your project avoiding "AI" is your actual intent. I just hoped.) There is a market segment that wants "AI"-free tech and in a crowded market, rejection of "AI" could be a significant differentiator. However, I will obviously not be able to pitch Servo as the "no AI" alternative if Servo is partially developed using that same AI. Even if I wanted to try, it simply wouldn't be believable. If you take this step, you potentially give the "no AI" market segment up. My statements above are about code. I believe code is a uniquely dangerous deployment site for "AI", because in programming, the most dangerous thing is code which is almost correct. The human brain has a significant tendency toward seeing what it expects to see and a person can sometimes look directly at something that's mostly correct but wrong without noticing it. However, creating this almost correct code is exactly what "AI" is best at. The purpose of the content generators people now call "AI" is to create something which can plausibly fool a human into believing they are looking at a real picture, real paragraph of text, or real computer program code. So Copilot might as well be designed to generate bugs a human cannot catch. Moreover, computer programs are chaotic systems where bad code in one place might break an invariant and cause bad behavior for the entire program. This means use of "AI" for code is much worse than other uses. But as far as those other uses go:
¹ I will not say "Artificial Intelligence", because it isn't |
Beta Was this translation helpful? Give feedback.
-
|
First of all, I appreciate that you decided to have an open and public discussion about this, I hope people's reactions won't make you regret taking that step. I think the reasons for why this is a bad idea are already being discussed aplenty; I wanted to note something different: I think you should investigate and reflect upon the apparent stark difference in reception to this idea between the TSC members and the respondents in this post. Were TSC members:
|
Beta Was this translation helpful? Give feedback.
-
|
Hi: I'd like to object against this policy because there's no actual benefit that is mentioned here. Writing code is not the struggle of maintaining an application, and typing documentation is not the struggle of documenting things. For the former, the struggle is actually understanding how to solve a problem and come up with solutions for it, along with fixing subtle errors and logic issues - writing code is the easiest part. For the latter, accuracy is key and inaccurate documentation is substantially worse then no documentation. And, I hate to say it: but I do agree this hurts the reputation of servo and willingness of people to contribute. As someone who has worked in FOSS for years frankly getting told I need to deal with AI generated code is still more then enough to make me take my time and effort somewhere else. I mention this because frankly, a lot of people here are going to get angry and give you the same point with far less respect - and I can certainly understand that. Not only do we want to stop this in projects like servo, people working in FOSS like myself want to make sure that AI absolutely does not become a norm in FOSS as it will make maintainer's lives everywhere so much more miserable. Also: on the topic of funding, come on guys. If you want to get AI funding fine, I know how capitalism is. But there are more clever ways of doing this and waving the shiny AI keys in front of investors to get them to give money then actually honestly using the tools. Show some demo of using ChatGPT on the browser or something, be more creative then just going "yeah well who cares about maintaining a project anyway". |
Beta Was this translation helpful? Give feedback.
-
|
My opinion on AI has always been that it should only be used as a means to assist, not to replace. For example, it could be given some documentation and suggest improvements (such as making something more concise), or perhaps it might be given a code problem and asked "Would there be any tools in As a practical example, some friends and I recently used ChatGPT to help us with our storytelling. In particular, we had a city in our roleplay which was recently attacked - and we wanted to get ideas on how that might affect the city's future. We used ChatGPT for this, giving it a stripped-down version of the situation to work off of - but we were careful not to just take its ideas and suggestions wholesale. Instead, we took them as points of consideration, and invented our own answers. Whether the Servo project allows or disallows AI, I don't care. What I do care about is, if it allows AI usage, it ensures that those contributing aren't simply copying an AI's output wholesale - and that any parts still contributed by an AI (which I believe should be minimal anyways) are marked appropriately for review. After all, AI models can be useful for many tasks, but they are not the end-all-be-all tool that some people wish they were. |
Beta Was this translation helpful? Give feedback.
-
|
I'm strongly against. My 2 cents:
This is unenforceable, and in the long term will lead to either all PRs getting "closer attention when reviewing" (sic), or none at all. In one case this means increased work for maintainers for basically no gain, in the other case it means potentially buggy, not thought-through code getting through the review much more easily. In both cases, the code quality will suffer.
you either violate the copyright or you don't. With the presently available LLMs trained on public data, this isn't a risk. This is a fact. The risk you're speaking of is getting found out doing so.
Just like one of the previous points, this is unenforceable. "Small snippets and refactors" is so vague and up to interpretation that I don't even know what you exactly mean. I also echo everyone else's concerns about using LLMs for documentation; If this leads to whole documents being autogenerated, you might as well not provide any docs IMHO. |
Beta Was this translation helpful? Give feedback.
-
|
My earlier comment here was (in retrospect quite rightly) marked as off-topic. I referred to e14n and said nothing else, so I was only contributing heat, not light. Let me try again: We live in a world where there are a tiny number of browser engines, and one of those is owned by a megacorp that has not only dropped its old "Don't Be Evil" motto but seems to be actively plunging into the dark side with all possible haste. The only other browser engine of current significance is Mozilla's — and they are setting fire to their reputation in every possible way (ludicrous CEO compensation, sprint towards AI everywhere, pivoting towards advertising, generally not at all behaving as we would hope or expect from a non-profit.) In that context, servo is desperately needed — but its whole value proposition is to be different from the current rapidly enshittifying browser engines. That's why the present proposal is so desperately disappointing. All the technical problems with the move towards AI have been outlined above, and do not need to be reiterated. What concerns me here is what it tells us about the project culturally. It has the distinct whiff of "all the cool kids are doing it, so we should, too". But all the cool kids are doing a ton of other things that are the exact opposite of cool. If servo does this, who will feel confident that they won't then start doing all the other things, too? Be different. That's the value proposition. |
Beta Was this translation helpful? Give feedback.
-
|
Hello, I'm a contributor and TSC member here. I tried to formulate my thoughts in the past few days, but it contained some discussion might be off-topic so I published to my blog instead: Why I voted for Servo's AI policy change despite I don't use those tools I don't use any AI tools nowadays to commit code, but my main concern is potential of losing contributors. It's difficult to contribute and land the feature we wish to push already. I believe we will need to re-negotiate the policy change, but I hope we could discuss how to encourage the contribution and help the contributors in the long run. |
Beta Was this translation helpful? Give feedback.
-
|
In addition to my earlier comment, I want to highlight another thing regarding the 'funding' point; funding is never without strings, and the type of strings matters. If the hope is to gain funding from "AI"(-aligned) companies, then the string is going to be that you are expected to have first-class support for "AI" tools in Servo itself; just like what happened with the widespread funding of FOSS projects by cryptocurrency projects, where down the line those projects were suddenly expected to add cryptowallets and whatnot to retain their funding. Seeking funding from such companies would most likely not just mean tolerating "AI"; it would result in Servo becoming an "AI browser". |
Beta Was this translation helpful? Give feedback.
-
|
btw the current formulation of the policy excludes anyone who relies on voice coding:
Voice coders, even those who are not using LLMs, are using speech recognition engines that are (of course) probabilistic tools |
Beta Was this translation helpful? Give feedback.
-
|
some thoughts that are too long for a comment: https://www.azabani.com/2025/04/11/generative-ai-in-servo.html there i cover (imo) how it happened, your feedback, what we should do next, and how the policy could be improved. thank you for your feedback everyone, it was very insightful and i hope it makes a difference. |
Beta Was this translation helpful? Give feedback.
-
|
I'm voting against this - from my experience, Copilot tends to produce pretty heuristic code; it works for now, but it's a bodge more than anything and it's incredibly painful to grow from. It's useful for menial tasks, sure, but I can't really figure out a way to say "Please only use LLM-generated code for repetitive tasks" and prove that you're not having crucial parts of the engine be LLM-written without enforcing a complete ban, unfortunately >_> |
Beta Was this translation helpful? Give feedback.
-
|
There are few generative AI tools that are ethically trained, and even those which are not have limited reliability and a high human cost. The idea of "reducing" copyright infringement - because we all know it will it is just a matter of how well it can be obfuscated - is wild to me. |
Beta Was this translation helpful? Give feedback.
-
|
Non-Contributor, but long-time observer here. I've been asked to work on a paper before, in a volunteer capacity, and I spent several days picking through the project, documenting all the little shortcomings, pieces that were subtly wrong. Later I found that the vast majority of the paper was directly copy-pasted out of an interaction with ChatGPT. My issue then boils down to: "Why should I, as hypothetical developer reviewing PRs, put effort into understanding and correcting something that the contributor didn't even write?" From a logistics point of view, having the person with the acquired skills and domain knowledge have to spend time on hallucinated code is a bad exchange. They are volunteering their time as programmers, not as editors to someone else's computer-assisted wish fulfillment. So yeah, usage of plagiarism engines is a leak in the collective knowledge/effort pool. |
Beta Was this translation helpful? Give feedback.
-
|
I've become interested in the project recently, specifically in response to Firefox's degradation into an AI/ad engine. I am really quite despondent seeing Servo consider this change. AI, in its current form, appears to have no helpful application. We can see its effects everywhere in the coding ecosystem even now: nonsense code appearing in supposedly curated code, help fora corrupted by nonsense babble, etc. It isn't helpful or safe to use even in documentation, but in coding it's particularly dangerous. There is no amount of human "triple checking"-style assurance that will hold. The point of using AI/LLM is not to learn, or grow, but to emit things that look like functional solutions and "save time" by using them in place of curated work. These things are poison. The current policy may be to some extent unenforceable, but the same could be said of OS licenses, and yet we still pursue them because they are technically and ideologically correct. I would be saddened to see Servo succumb to this particular fad, and would likely not be interested in seeking out ways to contribute moving forward. |
Beta Was this translation helpful? Give feedback.
-
|
As a maintainer of a large open source project not on GitHub (Lix), we've had substantial infrastructure incidents caused by LLM companies recklessly scraping our gerrit instance in spite of the robots.txt forbidding it. The people developing LLMs do not care one iota about consent, which is why they are shoving LLMs down everyone's throats against their will. This seems against the mission of Servo in an environment dominated by the exact corporate players building said LLMs and abusing their users' consent. Also, LLM tools generate, chiefly, code which its purported authors very frequently don't understand in my personal experience, and which contains subtle bugs accordingly, or which often mismatch project conventions. The most limited resource in an open source project is very often maintainer bandwidth; it certainly is in our case, and permitting tools that make writing more code easy at the cost of bugs is a poor trade in open source where it's hard to always expect a contributor sticks around for stabilization. There's even more reason to want to get it right the first time in open source than closed source. Getting it right generally means less code and more assurance it's right, both the opposite of the output of LLMs |
Beta Was this translation helpful? Give feedback.
-
|
I’ll stop my monthly donation if that goes on. genAI is a disgrace |
Beta Was this translation helpful? Give feedback.
-
|
I'm not going to be able to add to the reasons folks have against this move, but I'm with them. From both a practical and moral viewpoint I stand against the use/inclusion of AI. |
Beta Was this translation helpful? Give feedback.
-
|
All I can say is that if you ever do this, I believe your project and your TSC deserves to be forked-out into oblivion. Because the sole reason the Servo project makes sense to exist is to make things objectively better to the existing numerous alternatives. Code excellence per se due to superb tooling and review practices, and also freedom from the "AI" being shoved into our throats by literally everybody else, would be two such reasons for me at least. With this, you will lose both. |
Beta Was this translation helpful? Give feedback.
-
|
I have a recurring donation that I will cancel if Servo accepts AI slop into its code or documentation. I also will no longer promote Servo. If you can't hold the line against AI grift, we can't expect you to resist the next grifter fad like NFTs or whatever. It's a fatal sign for your judgement and governance. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks everyone for your feedback here and in other places. Servo TSC would like to share that we have decided to not go forward with this proposal and we'll keep the AI policy as is. In the future, if we want to do any change to this policy the discussions will happen in public channels to get early feedback about them. Thanks again. |
Beta Was this translation helpful? Give feedback.

Thanks everyone for your feedback here and in other places.
Servo TSC would like to share that we have decided to not go forward with this proposal and we'll keep the AI policy as is.
In the future, if we want to do any change to this policy the discussions will happen in public channels to get early feedback about them.
Thanks again.