-
Notifications
You must be signed in to change notification settings - Fork 80
Description
The capability names that are used for in-progress specifications should not be the same names that are used on the final, ratified versions of those specifications.
We should not use the same names on draft specs because people will write clients and/or servers to that draft spec, particularly as a part of #215's new process and the implementation requirements. If the spec is changed in major ways to fix problems found by implementers, we will run into issues where some clients and servers respond to that capability name with the old, in-development behaviour of that spec.
We can tell implementers not to put the code responding to those draft features into public releases, but I think so long as the same name is used for draft and final caps, this will happen and may cause us issues. Especially for long-standing draft issues, like if sts
sits as a draft for quite a while and we end up significantly changing it.
Here's an example of what I mean:
- Draft name:
draft/sts-1
- Draft name:
draft/sts-2
- Draft name:
draft/sts-3
- Final:
sts
We don't want to use the vendor tag to say the name of the implementer that put forth the feature, because it's being workshopped as an IRCv3 spec. We don't want to use the name of the IRCv3 org, because people may think it has our 'approval' due to that.
Under this sort of process, it would be submitted with the draft name, and any implementations for it would respond to the draft name. When it becomes ratified as part of an IRCv3 release it would be changed to the final name.
See also #215