-
Notifications
You must be signed in to change notification settings - Fork 82
Description
This is something I've been meaning to do for a while, just making an issue so I remember to submit the changes. Once #327 is done and SASL is merged I'll do this.
Merge CAP 3.1, CAP 3.2 and(done)cap-notify(Merge CAP 3.1, CAP 3.2, and cap-notify specs #327).Remove version numbers from spec filenames and YAML title names.Where they exist, remove markdown headers that duplicate the YAML title headers on specs (some specs for instance have an## IRCv3 <blah> Extensionup the top in addition to the YAML header – rip that out.Reorganise the specs under a few separate folders.- Merge SASL 3.1 and SASL 3.2 (including @RyanSquared's PR extensions/sasl-3.1: Fix when to send 904 #408 ) and other points mentioned in the comments of this issue. (@grawity's changes here and comments here: grawity@317c2fa have been mostly-abandoned, prolly still worth looking through though)
- Make sure appropriate examples exist on all specs, so people implementing them have something to look at.
- We have a lot of encoding methods (cap values, tag values, isupport), and some of them are very similar (cap values and tag values). Split these out into a separate document if possible, so authors have to implement less code and can share them between uses.
This involves a lot of coordination between this repo and the website repo (renaming / combining specs data files, updating spec pages and etc), so need to be careful when merging PRs and subsequently pulling the updates into the website.
Since this repo's a submodule named /specs on the website, makes sense to have a few subfolders:
specs/client-tags: Client tag specifications.specs/batches: Batch type specifications.specs/sasl-mechs: SASL-mechanism-specific specs.specs/metadata-keys: Metadata key specs.specs/deprecated: Deprecated specs we want to keep around (such as the current SASL mech specs underspecs/documentation).specs/extensions: Everything not covered by the above.
Yep, under this arrangement everything currently in specs/core gets put into specs/extensions instead. It makes sure people know that things are optional (things like metadata aren't mandatory to implement to be IRCv3-compliant), and the main Specs page on the website is better positioned to make the necessary separation between, for example, cap, message-tags, and specs like extended-join anyway.