docs(a2ui): Update documentation to align with v0.9 specification#622
docs(a2ui): Update documentation to align with v0.9 specification#622gspencergoog wants to merge 6 commits intogoogle:mainfrom
Conversation
409483c to
519a672
Compare
zeroasterisk
left a comment
There was a problem hiding this comment.
The content updates look accurate, but I think we need version-specific documentation tabs before merging this.
⚠️ Blocking concernUsers on 0.8 renderers visiting the docs will see 0.9 examples that don't work for them. We should add a version switcher (like React/Vue docs have) so users can select their renderer version and see matching examples.
Options:
- Add version tabs to the docs site (preferred) — see React docs or Vue docs
- Maintain separate
/v0.8/and/v0.9/doc paths - At minimum, add prominent "Version: 0.9" badges and link to archived 0.8 docs
Happy to help spec this out if useful. What do you think?
Yeah, I wondered about this too. As for what form this should take, the examples you gave basically just have a banner or a link to the previous versions. And they start off on the "current" version by default. That's sort of what I was going for here anyhow: the 0.8 spec docs are still there, but they're pared down. What if we just do what React does and just keep previous versions as separate sites? I mean, for now, we can just have them at a different URL with the version in it, so we don't need separate host names, but does that sound good? And the bigger question is: do we start people on the 0.9 docs or the 0.8 docs when they go to a21ui.org? |
|
I assume we don't want to go as far as Python does: https://docs.python.org/3/ It has a pulldown to select the version to view. I think only A2UI renderer implementers will be interested in that level of detail, and they can still browse the docs if they are at a separate URL like https://a2ui.org/0.8/quickstart/ So, I'm going to proceed like this: I'll convert this PR so that everything except for the Intro and FAQ tabs are under a version number, and the landing page will explain the different versions and their current state. The stuff under 0.8 will be the original content from 0.8 and the 0.9 content will be this content. The Intro and FAQ tabs will be 0.9 specific in the places where an example is given, and I'll a FAQ about the versions. Sound good @zeroasterisk ? |
|
Okay, I think this reflects what you were asking for.
PTAL @zeroasterisk |
- Replaced legacy v0.8 terminology (e.g., `beginRendering` -> `createSurface`, `usageHint` -> `variant`). - Updated schema examples for components and messages throughout the documentation. - Migrated legacy documentation to `docs/v0_8/` archive. - Updated guides and concepts to reflect v0.9 changes. - Add 'fit' and 'variant' properties to Image component documentation. - Clarify 'updateDataModel' value optionality (omission implies deletion). - Add new 'Client-Side Functions' reference page and link it. - Mention client-side formatting in best practices.
- Move v0.8 documentation to `docs/specification/`. - Add wrapper files for v0.8, v0.9, v0.10 specifications, evolution guides, and extension specs. - Update mkdocs.yaml to reflect new structure and include all relevant documents. - Update prepare_docs.py to handle file copying, JSON flattening, and comprehensive link rewriting for all versions. - Fix internal links in markdown files to point to correct relative paths. - Remove deprecated `docs/v0_8` directory.
docs: add mkdocs-redirects to requirements Fixes CI build error by adding missing dependency `mkdocs-redirects`, which is used in `mkdocs.yaml` for URL redirection.
d5f3dc1 to
2a4b454
Compare
There was a problem hiding this comment.
Do we need any docs for v0.10 at this stage? I think it would be nicer to not maintain them if necessary at this point.
I propose rm -r docs/v0.10
Though I guess the script just copied these, so maybe it's more work to not have them copied. If you feel the minimum maintenance option is to just check these in, I'm fine with that!
| Prepares the raw A2UI specification files for use in the MkDocs build. | ||
|
|
||
| This script performs the following tasks: | ||
| 1. **Copies Source Files**: Copies the raw specification files from the root `specification/` directory (e.g., `specification/v0_9`) into the versioned documentation structure (e.g., `docs/v0.9/specification`). |
There was a problem hiding this comment.
Would it make sense to .gitignore the copied files and have this be part of the build process, rather than checking in the copied files? That would keep the repo smaller and avoid confusion about what needs to be maintained etc.
Or is there some way to at least mark the copied files very clearly, e.g. by placing them in generated/ or script_output/ or something? I guess maybe that breaks all the links and/or makes the URLs weird?
There was a problem hiding this comment.
No, we should just .gitignore them and not check them in. They're just copies, and we should only have one checked in.
There was a problem hiding this comment.
I now doubt everything I said before :)
We need docs and specs in sync per version, but I think this is feeling kinda unwieldy to maintain.
- Can we reduce scope some?
- Can we reduce what needs multiple version of concurrent docs?
I appreciate you getting it to here, just feels like a lot
There was a problem hiding this comment.
this just doesn't make sense... v0.9 community page?
There was a problem hiding this comment.
Yeah, good point. We should move that up a level.
| - FAQ: introduction/faq.md | ||
| - v0.9 (Current): | ||
| - Quickstart: v0.9/quickstart.md | ||
| - A2UI Composer ⭐: v0.9/composer.md |
There was a problem hiding this comment.
I think these items have to move out of versioned docs ^
| - Catalogs: v0.9/catalogs.md | ||
| - Renderers (Clients): v0.9/renderers.md | ||
| - Transports (Message Passing): v0.9/transports.md | ||
| - Agents (Server-side): v0.9/agents.md |
There was a problem hiding this comment.
I agree all of the above are versioned docs ^
| - Transports (Message Passing): v0.9/transports.md | ||
| - Agents (Server-side): v0.9/agents.md | ||
| - Community: v0.9/community.md | ||
| - Roadmap: v0.9/roadmap.md |
| - Renderers (Clients): v0.9/renderers.md | ||
| - Transports (Message Passing): v0.9/transports.md | ||
| - Agents (Server-side): v0.9/agents.md | ||
| - Community: v0.9/community.md |
| - Reference: | ||
| - Component Reference: v0.9/reference/components.md | ||
| - Message Reference: v0.9/reference/messages.md | ||
| - Client-Side Functions: v0.9/reference/functions.md |
| - Component Reference: reference/components.md | ||
| - Message Reference: reference/messages.md | ||
| - FAQ: introduction/faq.md | ||
| - v0.9 (Current): |
There was a problem hiding this comment.
not "current" until we have renderers ready
LOL! I do this on the daily.
It is a lot. :-) I'm happy to keep iterating on this until we have something good, but would it be a good idea to hand this (or maybe the result of what we arrive at?) to someone with DevRel credentials? Want me to keep iterating, or should I pause until we figure out some of the questions? |



Description
This updates the docs folder to describe the 0.9 specification instead of 0.8. I added disclaimers that the renderers are not yet up to spec, but I think it's still a little odd to have docs for 0.9 and no examples yet.
Better that the docs represent the current spec, though.