-
Notifications
You must be signed in to change notification settings - Fork 100
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
Re-Structure preview #519
base: master
Are you sure you want to change the base?
Re-Structure preview #519
Conversation
Thanks for thinking about overall "structure" of the spec text! Improving readability and comprehensibility for new implementors is quite important! And a fresh, new look as you can bring to the table plus actual concrete proposals for improvements (as in this PR) is highly welcome! As far as I see, this PR is really "only" restructuring existing contents - neither removing or adding any contents. Highly welcome, I appreciate, and to me, it looks like an improvement (and my problem in judging is likely anyways that I cannot have an independent fresh look anymore .. obviously) So let's see what others say;) |
@oberstet Unfortunately, I'm not a native English speaker and writing content in English looks very unprofessional. We have also discussed some details before, such as adding additional algorithms to the CRA chapter. I also tried to write it, but finally gave up. Therefore, the work I can do is probably correct errors, make minor adjustments to the content and structure, and come up with some new ideas. |
don't worry, I am pretty sure we can collaborate, I could improve english text / language to some point (not a native speaker also), and there are a few native english speakers in the WAMP implementors community which might chime in as well .. just saying .. pls don't hesitate to come up with text if you feel sth is missing or what .. |
In my work, I have already used the WAMP protocol in production projects, across WEB(PWA), App(navite) and Backend, and the router and client were all implemented from scratch. I have used Python, JavaScript, and now I am using Rust language for implementation. As a private request, if you could add my name to the list of contributors, it would make it easier for me to promote this protocol among my social circles. |
from my perspective, sure! pls see #520 |
I had a quick look: well — why not. Maybe it will be clear. It is important not to loose any parts during movements. So @SunFulong If you'd like — please go ahead with restructuring and let's discuss the PR Ready version. |
Not sure whether it is accessible in China, but I seriously think ChatGPT could help here. 😊 Just try to ask it to translate your Chinese text into professional English RFC-ready text. |
The answer is NO, the ChatGPT blocks access from China, but Google Translate works. |
ok, I have reviewed the changes in a "skim-over" fashion (means, not "word by word"), and it seems to contain exclusively editorial changes - no contents is removed, no new contents added, right? rgd the re-orderings applied: this seems good to my eyes and an improvement. there is 1 exception, which IMO could be discussed or have had different views or perspectives about: "Basic vs Advanced Profile" this PR moves this into some sub-sub section, after "websocket" and other things. I would say: this is a "top-level topic", as it explains to a reader why there are actually two specs IMO this should be discussed .. I am not overly stuck on this aspect. the existing ordering, I'd be fine with reordering as well ... |
Almost, changed some accidentally markdown tag, e.g. *Caller*s to *Callers*. In fact, I want to make structural like this:
But, the level is too deep, so let the Don't you think if using |
++ for the "WAMP in a nutshell" :) |
would that work?
I'd also be fine with only keeping the one full version
A reader might just stop reading before part 3 AP ... |
I mean, not a final submit to IETF, but separated BP and AP is if we still plan to submit. |
@SunFulong if you're saying about the difference in headers levels — that can be fixed during the build process. |
IETF .. OASIS .. it would be nice! the latter could be easier, not sure. but hey, lots of talking and admin stuff just to get a RFC number? wtf, I have code to write;) also, from my PoV, an
cross-testing all implementations (both router and client) X all WAMP features would be much more important, useful and effective for users! an RFC is just another ASCII file ... |
See current push, I inserted HARD PART TITLE in full spec only |
Current build scripts won't fine for both separate and combined specs. Let's do a final confirm, do we really downgrade profile part content level? |
Tried over and over, my best idea is change first |
uuh, lots of thoughts, attempts .. bit of chaos;) first, let me preface: don't worry! this is pretty normal and expected. agreeing on anything between people, diverse as this group, coming from different backgrounds, having different focus and interests, is never easy and requires effort. naturally. the hassles are unavoidable. fwiw, what we experience here is nothing compared with what there was in WebSocket IETF WG ;) I tried to take a step back and focus on what we can agree on, and figure out a concrete proposal for that only. of course not coming up with a "full proposal" for "everything" is a risk (later on, adding the parts taken out of focus for now might have ramifications upon the already "done" initial part"). well, that's life;) take risks. anyways, what I think we agree on (pls correct me / add as you see fit):
based on these goals, and also trying to take into account the other things we discussed (terminology, "in a nutshell"), and also some changes that appear to be desirable for me (from taking a step back and with a new look), here is my proposal for structure of above document (only first couple of TOC levels - sub-sub-sections should then be sorted in): |
Okay. I played a bit with it. And got to this point:
The one question I still have in mind is the place for If this looks good — I can push this for review (probably in other PR) Here are screenshots of how it looks now. |
mmmh, for my eyes, tbh, I don't think this is an improvement over the current text:( E.g. "Abstract" for me is the same as "WAMP in a nutshell" and "BP vs AP" is an administrative frontmatter which should be outside the TOC. In general, IMO we should only concentrate on BP document, because I think we even disagree on that, not even about the number of documents. Do we want 1 document, 2 documents or 3 documents? Once we agree, depending on the outcome, can we then only discuss the contents of the one Basic Profile document and content ordering only up "Publish & Subscribe" and "Remote Procedure Calls"? What content do we want a newcomer to read, in which order? E.g. for me, it doesn't make sense to talk about "Protocol Overview" before "Building Blocks". And in fact, before talking about these things, IMO the most important guiding aspects should be introduced first:
as well as a "common language" defined
and only after that
described. At this point, PubSub + RPC are the big two chunks to be discussed which make up WAMP, and each should be introduced in three sections corresponding to the respective three main actions in each of PubSub and RPC. Anyways, just my opinion. However, as long as we don't agree I think it is a waste of time to work it into PRs. |
I would put most effort into the "Abstract" (this is where you get people excited enough to read more ... or lose them) and then "Introduction" (where you get a few more minutes / paragraphs to further hook anyone who didn't already leave). After that, it's about well-organized and easy-to-find information for anyone who is already interested or "in" to WAMP etc. A quick search didn't turn up where the words "1. Abstract" in the above screen-shots came from, but I can try editing etc if interested. |
I really like this kinda thinking! winning the reader's attention in the first place should be upfront, laying out the "core" of it ("WAMP in a nutshell"), convincing rgd the "why" it matters (what's the point anyways), and ultimately why the reader should continue and how the reader can get involved! once at that point, as you say, the rest of it should be clear and easy to dig through/into any desired / required amount of details
|
Yes, I would certainly highlight the security aspects in "abstract", including "end-2-end message encryption". Despite renewed emphasis on "security" this is still a pretty unique feature for any routed protocol, let along a real-time one like WAMP. |
yes, agreed! unfort., only portions of it currently have text in AP spec https://wamp-proto.org/wamp_ap_latest_ietf.html#name-advanced-security-features I started and have half-done/ready text .. but ... and the feature (e2e payload encr.) while having a working impl. in Crossbar.io/Autobahn lacks any other impls (as far as I know) currently. it has impls. in multiple AutobahnXXs .. on the other hand CB/AB impls also have prototype impls. of the final stage of WAMP .. which isn't e2e in itself, but decentralized management of the trust relations established between e2e encrypting WAMP clients/app endpoints (the apps that do PubSub and RPC and which want the payload in those events/calls to be protected even from the routing infra ..) |
I think there is somewhere e2ee description that I was working on (IIRC in your fork @oberstet ). Maybe we can push it to this repo and continue working... I hope I'll get some stamina to implement e2ee in some of the wamp implementations under my wing... |
that would be fantastic! both of it! collaborating on
and "testing interoperability" / "one of your implementations" .. any of or even all of the following would be perfect! [1]
[2]
and finally (this is yet another piece, but the real final one), if we then both would operate those different router implementations, running router nodes (and clients) of both implementations "cross-fashion" would allow pretty good verification of real interop and of course "does the spec make sense"! so what I mean: [3]
The end goal of WAMP. Nirvana;) Or something. But I would say, preeeetty coool!
|
one more comment, in general, "working on spec" and "testing interop", with different implementations and operators is in my eyes really the only way of hashing it out, nailing the spec, shaking out bugs, and all of it. without demonstrating different (independent) implementations and different operators working together, it's just words on paper. with that, words will be scrutinized and polished by necessity and proven by demonstration! rough consensus and working code=) |
@oberstet Let's discuss this version: No content text modify; And I tried move |
I don't support changing and moving around sections unless/until we do have reached sufficient consensus my own proposal is here: #519 (comment) I lost sight of other's proposals, consolidated ones. IOW: how do we discuss restructuring proposals so they are easy to track and compare? right now, it's a big mess .. in my eyes ... at least I don't have a clue what is actually proposed (on the table) .. I don't have time to wade through pages and pages of changes in a PR which is sprinkled with various other changes as well I would suggest to cut proposed changes into smaller and logically coherent PRs. eg 1 PR with all structural changes, but only those, and only after we agreed on the structure. I don't know how to best discuss TOC changes (the structure&titles) .. some kind of table like .. but how to allow multiple people to submit their proposed changes, and still have only 1 big table with alternatives which are easy to compare ... mmmh .. any ideas? |
Sure, I don't mind reopen much PRs with small change, and we can using one TOC only issue or discuss to trace structure change |
thank you!
yes, smaller PRs and self-contained PRs, as in "one topic / thing" at a time would be highly welcome! of course creating those will be more work on your side. BUT: you want to get those changes merged. and for that, we need consensus, and that is much easier with smaller self-contained change packets (PRs) if you think like: "minimize the collective work required", then I'd say "one big PR" is clearly at disadvantage compare to "many smaller self-contained" ones changing the overall TOC / structure has yet an additional challenge: it is not just substance matter, but the ordering depends a lot on "perspective & taste", and everyone has a fav opinion ;) plus the challenge of how to easily discuss structural/TOC changes |
Hello, this PR have no content modify, only re-structures.
IMO, some chapters in current basic profile should extract out to the protocol spec level, so I moved them out, and move old "Basic Profile" title before "Message Definitions".
This is just a preview to discuss, if accept, I will rename BP files from 01.