Skip to content
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

Initial process upgrades for Multiformats registry group and org #65

Merged

Conversation

bumblefudge
Copy link
Contributor

@bumblefudge bumblefudge commented Jul 14, 2023

Step 1: Process described better here

  • Link to well-known registry styles in RFC8126
  • Enumerate types of issues better
  • Add github templates for process steps listed (here)
  • more overtly align registry language with terms in RFC8126
  • test github issues on GH in personal fork
  • final editorial pass

(Forgive the unverified commits, those were me signing commits before updating my GPG/github setup)

In multibase#109:

  • corresponding changes to spec language
  • Update multibase entries to reflect new options ("Experimental", "Deprecated", "Reserved") - bump both base256emoji and proquest to experimental, since the former didn't have a well-documented use-case or adoption documented in threads, and the latter is still lacking test vectors.

In CCG repos where IETF RFC Drafts get compiled in XML

Possible gameplan for post-merge:

  • Move multicodecs spec and "mega-table" into multiformats repo, and add it to Multiformats draft RFC?
    • translate current registrations to the new IANA terms (permanent --> final, some draft --> experimental, etc)
  • Perhaps other aspects of this org-wide clean-up a user requested that would also help auditors poking in for the first time as part of the IETF process?
  • Iterate Multihash RFC to match above changes once final?

@bumblefudge bumblefudge changed the title initial process upgrade for multiformats repo Initial process upgrades for Multiformats registry group and org Jul 14, 2023
@bumblefudge bumblefudge marked this pull request as ready for review July 17, 2023 20:40
@bumblefudge
Copy link
Contributor Author

(Please squash before merging, the repo does not need my 10 ugly commits in here for posterity)

@BigLep
Copy link

BigLep commented Jul 19, 2023

Thanks for raising @bumblefudge . The lack of response here is more just timing related than lack of interest in seeing this move forward. I have this on my list to look at, but please don't block on me if I don't get to it.
@rvagg is likely out for a couple of weeks (his return to full engagement date is TBD).
I believe @vmx is back the week of 2023-07-24.

@bumblefudge
Copy link
Contributor Author

Thanks for saying that! As a European I'm entirely accustomed to my July PRs getting discussed in September, so perhaps I'm to blame for not having a new internet-draft in time for IETF 117 😅 . I'll prepare one anyways and host it personally, for discussion purposes if anyone wants to see progress at IETF, but I am thinking it would not be fair to Rod and Volker to deploy it in IETF's version tracker on behalf of PL for lack of definitive consensus.

README.md Outdated

- [multiaddr](https://github.com/multiformats/multiaddr): network addresses
- [multibase](https://github.com/multiformats/multibase): base encodings
- [multicodec](https://github.com/multiformats/multicodec): serialization codes
- [multigram](https://github.com/multiformats/multigram): protocol negotiation and multiplexing over datagrams
- [multigram](https://github.com/multiformats/multigram): protocol negotiation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💭 this is the first time I hear about this 😅

the linked repository is archived and ipfs/specs#123 (comment) suggests we should not include it here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'd be +1 to removing this if no one speaks up soon. note that the IETF WG proposal does NOT include any mention of it, and it has an explicit clause that "no new multiformats" can be added at least until re-chartering...
https://datatracker.ietf.org/wg/multi/about/

README.md Outdated
Several of the multiformats are stable, and we're working on the others. We are trying to prioritize their usage as soon as possible. What they offer -- protocol interoperability and future-proofing -- would have real-world consequences.

Towards that end, we are encouraging implementations of these protocols; if you know of any, please link them here (or add them to the organization!).
- [multistream-select](https://github.com/multiformats/multistream-select):
Copy link
Member

@lidel lidel Jul 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we include this as a "standard" here, since there is wip to supersede it?
libp2p/specs#349

cc @mxinden / @marten-seemann for thoughts:

  • if we should include "multistream-select" on this "multiformats" list at all? my intuition is it is libp2p-specific and just happens to have "multi" in name.
    • if it is generic enough to include here, should we also include "protocol-select" also/instead, since it aims to supersede the former?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that "multistream" and "multistream-select" are NOT named in the charter and could NOT be added later without a re-charter if the current WG charter draft is ratified next month as currently written:
https://datatracker.ietf.org/wg/multi/about/

I hope someone speaks up if multistream should be put back in scope, or if any other multi- project that I don't know about needs to be in-scope for the WG to protect its range of values in the mega-table. If there is no protocol spec BUT there are multistream-select entries in multicodec, we gotta put our heads together and figure out how to keep them there with a minimally-viable spec or placeholder for one!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might be missing some context. I don't think multistream-select should get standardized through the IETF. I don't think it is worth the effort, both given that it is very libp2p specific and given that its design is dated and worth a complete redesign.

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
contributing.md Outdated Show resolved Hide resolved
contributing.md Outdated Show resolved Hide resolved
bumblefudge and others added 3 commits July 21, 2023 22:52
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Copy link
Member

@vmx vmx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've also a general note. I saw that the text was reformatted from one line paragraphs to wrapping them. I personally prefer having one paragraph per line as it makes diffing easier. I find it's also easier to contribute as you don't need to pay attention at which magical number the lines need to be wrapped. It's likely that people get it wrong, so you either end up with inconsistencies or you annoy people by such details.

.github/ISSUE_TEMPLATE/BUG-REPORT.yml Outdated Show resolved Hide resolved
README.md Outdated
## Current Registries

Currently, we have the following formats, each of which corresponds to a
specification and a registry. More formats are being discussed and worked on.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The table below is badly outdated, it even refers to things that were renamed a long time ago. Also "captain" was used in early Protocol Labs days. I think only multiaddr, multibase and mutlihash should be listed here. multicodec these days it just the "multicodec table".

This might be out of scope for this PR, but I thought I mention it though :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: would it make sense to just MOVE the multicodec table into this repo and call it the multiformats table or call it the Registry Group table, since that's the IETF term for that kind of meta-registry? I'm not sure there should even be a "multicodec" repo or spec if the multiformats WG manages all the repos/registries and the multiforamts spec is the meta-registry spec...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might also be good as part of this clean-up to enumerate the values available for the tag column, if the process for new registries moves into an IANA-friendly spec here... I'm having trouble understanding what is what there

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: would it make sense to just MOVE the multicodec table into this repo and call it the multiformats table or call it the Registry Group table, since that's the IETF term for that kind of meta-registry?

Removing the "multicodec table" would be a huge change. Many people would need to be asked if they think it's a good idea. In case we do that, we would need a new name for the concept the multicodec table represents. Would it then be "Multiformats identifier"?

I'd say such a change is outside of this PE (as this is more of a cleanup) and should be discussed in a separate issue/PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might also be good as part of this clean-up to enumerate the values available for the tag column, if the process for new registries moves into an IANA-friendly spec here... I'm having trouble understanding what is what there

Yes it's totally unclear. The tags grew organically, some things even have the wrong tag/some tags don't even make sense.

contributing.md Outdated Show resolved Hide resolved
contributing.md Outdated Show resolved Hide resolved
contributing.md Outdated Show resolved Hide resolved
bumblefudge and others added 3 commits July 24, 2023 13:24
Co-authored-by: Volker Mische <volker.mische@gmail.com>
Co-authored-by: Volker Mische <volker.mische@gmail.com>
@bumblefudge
Copy link
Contributor Author

I've also a general note. I saw that the text was reformatted from one line paragraphs to wrapping them. I personally prefer having one paragraph per line as it makes diffing easier. I find it's also easier to contribute as you don't need to pay attention at which magical number the lines need to be wrapped. It's likely that people get it wrong, so you either end up with inconsistencies or you annoy people by such details.

Can fix this going forward, to facilitate easier diffing here. I may have misunderstood hard line breaks to be a requirement of, rather than an artefact of, IETF spec editorial process...

@vmx
Copy link
Member

vmx commented Jul 24, 2023

I may have misunderstood hard line breaks to be a requirement of, rather than an artefact of, IETF spec editorial process...

I've no idea about the IETF spec editorial process. So it could well be a requirement. Though even then it could then perhaps be made as a last step? :)

@bumblefudge
Copy link
Contributor Author

I may have misunderstood hard line breaks to be a requirement of, rather than an artefact of, IETF spec editorial process...

I've no idea about the IETF spec editorial process. So it could well be a requirement. Though even then it could then perhaps be made as a last step? :)

done now apologies for the inconvenience!

@bumblefudge
Copy link
Contributor Author

bumblefudge commented Aug 31, 2023

I followed the pattern put forward in Multibase of moving noisier convos to Discussions (in a separate PR). This is ready to merge now!

@vmx vmx requested a review from rvagg September 5, 2023 09:06
Copy link
Member

@vmx vmx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Finally I took the time for a proper review.

.github/ISSUE_TEMPLATE/IMPLEMENTATION-REGISTRATION.yml Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
- [multihash](https://github.com/multiformats/multihash): cryptographic hashes
- [multikey](https://github.com/ipfs/specs/issues/58): cryptographic keys and artifacts
- [multistream](https://github.com/multiformats/multistream): stream wire protocols
- [multistream-select](https://github.com/multiformats/multistream-select): Friendly protocol multiplexing.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

multistream-select might still be a thing, so it might make sense to keep it here. @marten-seemann or @mxinden might know more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the ping. I suggest not standardizing multistream-select. I think it is very libp2p specific. If one would want to standardize a protocol negotiation protocol, I suggest starting from scratch similar to libp2p/specs#349.

README.md Outdated Show resolved Hide resolved
Multiformats is the name for the organization, but it can also be used to refer to protocols; for instance, in the sentence "Use one of the multiformats". Formats is interchangeable with protocols, here. We try to capitalize Multiformats when it refers to the organization, on GitHub.
`Multiformats` is the name for the community (and the "organization" in GitHub's access control model), but `multiformats` can also be used to refer to protocols; for instance, in the sentence "Use one of the multiformats".
Formats is interchangeable with protocols, here, as each format is designed in tandem with one or more protocols which handle those self-describing values centrally.
We try to capitalize Multiformats when it refers to the organization.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI: I didn't know that. I usually capitalize Multiformats in any case as I treat it as a proper noun. But that might only be me. I'd just remove that sentence.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This note dates back to 2016 according to github "blame"/commit-tracing view. I don't mind either way if we remove it or keep it but I have noticed it was at least internally consistent in the other readmes in this org?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvagg any thoughts?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't care enough to have an opinion, I'm more triggered by using ` two sentences up around the words, but not enough to object either

README.md Show resolved Hide resolved
contributing.md Outdated Show resolved Hide resolved
contributing.md Outdated Show resolved Hide resolved
contributing.md Outdated Show resolved Hide resolved
Comment on lines +69 to +70
If you want to implement a multiformat in a new language or in a new architecture, open an issue in the main repository for the relevant multiformat: for instance, if you want to write `rust-multibase`, then [open an issue](https://github.com/multiformats/multibase/issues/new?assignees=&labels=implementation&projects=&template=IMPLEMENTATION-ANNOUNCEMENT.yml) in the `multiformats/multibase` repository.
This will allow others to know that you're working on it, and potentially join in the effort.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be opened on the corresponding repos, not this one.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we removed that proposed template; this should just recommend they open a pull request to add their implementation to the README of the project I think

README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
contributing.md Outdated Show resolved Hide resolved
@bumblefudge
Copy link
Contributor Author

ok @vmx finally ready for re-review. sorry for the confusion.

the only pending comment is about whether to cut the Multiformats<>multiformats nomenclature bit. I left it in but also happy to remove it later if you open an issue. It feels kind of harmless to me, as a recommended behavior :D

@bumblefudge bumblefudge requested a review from vmx October 24, 2023 14:40
contributing.md Outdated Show resolved Hide resolved
contributing.md Outdated Show resolved Hide resolved
Copy link
Member

@vmx vmx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good to me, but I'd also like to see an approval from @rvagg before it's merged.

Copy link
Member

@rvagg rvagg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚢

@rvagg rvagg merged commit d8e9d1b into multiformats:master Oct 25, 2023
@rvagg
Copy link
Member

rvagg commented Oct 25, 2023

sorry for losing so much of the history in the squash merge but there's a bit too much detail and churn in the commits to let them all go in as is; but this is done, well done @bumblefudge and thanks for persisting!

@bumblefudge
Copy link
Contributor Author

no it's better if posterity doesn't see how bad at git I am 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants