-
Notifications
You must be signed in to change notification settings - Fork 155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
deprecate polyfill #1446
Comments
I assume this entails moving it to a different repo and publish under some other name? |
That's up to whoever wants to maintain it. The important part is that it be a distinct package name that has no direct relationship to tc39 (besides, of course, that its maintainers may also be delegates). I certainly plan to author my own polyfill, as I'm sure do a number of others, and it's important to let the community vote with their feet without a "blessing" from the standards body. |
Maybe the polyfill's development could be moved to a different repository outside of the tc39 organization, but I see no reason to change the name on npm (which does not contain the string "tc39", is not in any particular TC39-related organization, etc). Let's just explain clearly that the polyfill is maintained by the champion group, not TC39 (as it has been all along; Stage 3 does not change that) but I haven't seen any evidence that JS developers are confused in this area currently. Overall, comments from @ljharb on the polyfill throughout its development have been quite hostile towards its developers, and I would like to see this pattern come to an end. I expect that the polyfill which is currently hosted in this repository will continue to be developed somewhere or other. I don't see why it should be considered deprecated. It is not appropriate of @ljharb to assert otherwise; that is up to the authors of the code. |
We explicitly discussed this in plenary.
The polyfill was developed in this org, its authors do not own it, TC39/Ecma does, and thus it is not, in fact, up to its authors at all - it's up to the committee. If the authors wanted ownership of it, it would have been developed outside of this org in the first place. The code is of course licensed such that anyone, including the authors, can take the code and publish it separately, but the license doesn't govern the specific package name. In addition, the entire point of TC39 not blessing an implementation would be violated if the name is kept - all current usage/popularity of that package name was under tc39 auspices, and a polyfill should have to start fresh (the current package should not point to any polyfill implementation, in other words).
|
Right, we all agree that this repository does not contain an official polyfill. However, its copyright has not been attributed to anyone else; it is just licensed freely like any other open source project. This polyfill is still under development by its authors. I agree that any continued development after Stage 4 will have to take place outside of this repository. That does not add up to depreciation in my mind. The committee did not adopt your proposal to prohibit the development of polyfills in proposal repositories. |
Stage 3, not 4, was the point at which we discussed development ceasing in this repo. The committee did not adopt my proposal but they did agree that tc39 should not have blessed polyfills. |
Yes, ending development after Stage 3 was discussed, but not adopted as a conclusion in the notes. My understanding of TC39's process remains that delegates can make use of their repository as is useful for development, as long as no one claims anything is an "official" TC39 polyfill, just the work of the champion group. I think it would be best from here if the champions were allowed to land the changes that we agreed on for Stage 3, and then work on productionizing the polyfill can take place in another repo. I don't see what that has to do with deprecating, and I think it is harmful to inclusion in TC39 for you to act as police enforcing policies that we have not adopted. Filing an issue asking for a codebase to be deprecated is an insult to those who worked hard on that code. |
That was the telegraphed intention by @pipobscure and the reason I assented to stage 3. What I think is harmful is destroying any delegate's trust in proposal champions by deviating from clearly telegraphed intentions after stage advancement. You are using very charged language here, attacking my character, and I don't find it appropriate. Please stop. |
These are the next steps I'm proposing. Don't these match up with what Philipp previously said? |
What happens in another repo is totally fine, and I'm not making any requests about it. The code can be extracted to that other repo at any time, even if it's deleted from this one, since it's in the git history. Whether a few additional Stage 3-related changes land in it in the near future (including publishing those changes) is immaterial to me; i'm not insisting that the instant stage 3 got consensus is some kind of instant "deadline" or anything. Once the final stage 3 changes are landed, though (and presumably published), which I assume would happen soon, then i'd also assume the following steps to closely follow:
… all of which are what has been discussed and telegraphed as the intention of the proposal champions since this question first arose. |
My understanding is that the plan of record is this:
Anyway, that's my understanding of the current plan. Champions, please correct where I got it wrong! @ljharb, it sounds like you are also looking for the following:
Is that right? If not please correct! Also, I don't have a lot of context outside this thread but from reading above I'd like to make sure there's clarity about the goals of 7-10, in case we can find easier/better ways to achieve the same goals. Here's my understanding:
Is this an accurate statement of the goals? Did I miss any? Are the "because" explanations correct? In case it's helpful, here's my understanding of the champions' goals:
There are strong opinions on this thread, so I'd urge everyone to be flexible and see if we can come up with a good-enough solution. 🙏 |
@justingrant not quite. Here are the things that need to happen in order:
All if this should happen soon. Whether we still do the fixes for stage 3 in this repo and then move it is up for debate, but the polyfill needs to now leave this repo soon. The rationale is that the polyfill here cannot be endorsed or appear to be endorsed by TC39. It would be an unfair advantage that is unjustified. Especially since there are other groups of polyfills out there. |
That all sounds exactly right to me. The reason I think the current npm name should not be used moving forward is exactly what @pipobscure has stated - that it would be an unfair and unjustified advantage in what is otherwise a free-ish market. |
If there's going to be multiple polyfills then making them all easily and equally discoverable seems like a good thing! A few follow-up questions:
@ljharb, do you mean you agree with my summary above AND @pipobscure's, or only Philipp's? If the latter, would it be possible to also get your response to #1446 (comment) so we are sure that we understand your POV? Thx!
@ljharb other than the polyfill, do you have a strong opinion that other things should be removed too? Conversely, are there things that you have a strong opinion should NOT be moved out? Here's a list of what's currently in the repo now.
Finally, if any of the "requires an implementation" items above should be retained in this repo, then does anyone object if the champions just do the easiest thing which is to add a dependency to the current polyfill in its new repo and update that dependency once there's a production polyfill available?
I assumed that it was desired to help developers find implementations of a proposal. Like these finished proposals do:
I assume that this convention should be retained in the Temporal repo too, which means that we'd link to the existing polyfill and add more links as more polyfills and native implementations come online. If you disagree, why? |
@justingrant the playground seems fine to keep (altho presumably the extracted polyfill would want its own); when there’s more polyfills available, it could always be expanded to support multiple ones. The docs of course i assume would stay (but that is entirely up to y’all), along with the cookbook and test262 stuff. It doesn’t make sense to me to keep polyfill-related issues after the polyfill code is gone, is there a reason to keep it? Proposals definitely often link to polyfills - any spec-compliant ones, no preference shown. That would include one based on the code extracted from this repo. There’s a huge difference between linking to an unaffiliated repo and hosting the code from an affiliated one :-) |
OK, cool, glad you're flexible on this. Champions will discuss and come up with a plan quickly. The plan could be anything from "only move the polyfill" to "move everything except spec and readme", depending on what's the best way to minimize throwaway work from the repro split (esp. given that the plan is the move the docs to MDN relatively soon) while not interfering with getting feedback from early adopters.
Great. We'll do this. We'll also plan to link to other polyfills (also with no preference shown) in the warning messages for the current polyfill to help users navigate the name change. When new polyfills arrive, we'll happily update the warning messages. Keep in mind there's no particular affection among the champions for our own polyfill-- we want users to easily be able to find an implementation, but none of us particularly care which implementation(s) are used as long as they're easy to discover. Until yesterday I had no idea that polyfill competition was a thing! ;-)
None that I know of. |
Seems like there hasn't been any movement on this for a couple months. Is this polfyfill still the go-to polyfill for Temporal? (Google seems to think so.) |
Indeed; the polyfill remains undeprecated, despite March being the time to do it - and I also haven't seen any production-ready polyfills available yet. (I suspect that deprecating this one would accelerate the timeline of the ecosystem creating them - i know that i won't start making one until then) |
@MaximSagan I'm not sure what your expectation of "go-to" is; this polyfill is not intended for production use, as the note in the README says. We have just a few days ago finished incorporating some changes to the proposal from last week's TC39 meeting. We intend to make one last release of the package on NPM so that people who do use it are not using a nonconformant version of Temporal (as far as we know) while they wait for other polyfills, and then deprecate the NPM package. We're working on writing the messaging around this process. |
Following up: the original temporal polyfill is now deprecated. Specifically:
I'm going to close this issue now, but feel free to follow up with any questions or concerns. |
Thanks! I know this was a large effort, and it’s appreciated. |
Now that the proposal is at stage 3, per previous agreement/intention, the polyfill should be deprecated on npm, and likely the code removed from the repo, so that there's no confusion that TC39 is providing an official polyfill (something we don't do).
The text was updated successfully, but these errors were encountered: