Skip to content

docs: restructure into four tiers and de-duplicate the reference - #1994

Closed
adrianbobis-blip wants to merge 7 commits into
developmentfrom
docs-restructure
Closed

adrianbobis-blip wants to merge 7 commits into
developmentfrom
docs-restructure

Conversation

@adrianbobis-blip

Copy link
Copy Markdown

Closes #1993

Restructures the documentation into Introduction → Get started → Guides → Reference, the same
four tiers proposed for all three sites.

16 pages → 45. Nothing is deleted; every existing page has a destination.

What moves

Was Becomes
commands.md, 11,201 lines, every class for all four languages 11 reference pages
advanced-usage.md, ten unrelated topics under one heading 10 guides
get-started.md 4 sequenced pages ending in next-steps

The reference is de-duplicated

196 of 212 parameter tables were the same table repeated once per language. They are merged.

Names and types are kept per language, because they genuinely differ — Python and Robot
rename parameters (by → locator_strategy, value → locator) and change types
(AltVector2 → list/tuple/dict). Only what is actually shared — Required and Description — is
stated once:

   * - ``by``
       *Python, Robot:* ``locator_strategy``
     - `By <#by-selector>`_
     - Yes
     - Set what criteria to use in order to find the object.

Where descriptions genuinely differ, the tabs are left untouched — 44 of 55 groups merged, 11
kept. The reference drops from 36,797 to 23,721 words with no content lost, and a description no
longer has to be edited four times to change it once.

What is new

Writing reliable tests, Choosing a selector, Errors (28 driver exception types, none
documented today), How it works, Requirements, Next steps.

Also included

The two fixes the tree needs in order to build, previously #1992:

  • _templates/layout.html used the pre-Sphinx-4 CSS API and aborted the build with zero pages.
  • The three iOS literalinclude targets never existed, leaving the iOS tab blank.
  • ServerLogManager → AltTesterLogManager, which Closed-Source renamed on 2026-07-24.

Setup

  • Windows 11, Python 3.14.6
  • Sphinx 9.1.0, recommonmark 0.7.1, sphinx-rtd-theme 3.1.0, sphinx-tabs 3.5.0

Checks

  • ☑️ Builds: 49 pages, 57 warnings — all pre-existing duplicate-label and highlighting noise
  • ☑️ Zero warnings introduced
  • ☑️ Table integrity: 212 → 80 tables, 0 ragged rows before or after
  • ☑️ Branch verified against the local tree by blob SHA — 0 missing, 0 mismatched, 0 leftovers
  • ☑️ Before this PR the unmodified docs build 0 pages on Sphinx 9

Before merging

Every URL changes; Sphinx generates no redirects, so that needs deciding first.

The docs are authored in the Closed-Source repo and synced here. This PR is against the repo that
builds and publishes; the same restructure will need to reach the authored copy, or the next sync
will revert it.

🤖 Generated with Claude Code

adrianbobis-blip and others added 7 commits September 21, 2026 09:30
Introduction -> Get started -> Guides -> Reference, matching the structure
proposed for all three sites so that learning one teaches the others.

commands.md was 11,201 lines holding every class for all four languages, and
becomes eleven reference pages. advanced-usage.md held ten unrelated topics
under one heading and becomes ten guides. get-started.md becomes four
sequenced pages ending in Next steps.

The parameter tables are de-duplicated. 196 of 212 were the same table
repeated once per language; names and types genuinely differ between C#/Java
and Python/Robot, so those are merged per language inside one row and the
descriptions are stated once. That removes about a third of the reference
without losing content, and means a description no longer has to be edited
four times.

New pages with no current equivalent: Writing reliable tests, Choosing a
selector, Errors (28 driver exception types, none documented before), How it
works, Requirements and Next steps.

Also includes the two fixes needed for the tree to build: _templates/layout.html
used the pre-Sphinx-4 CSS API and aborted the build, and the three iOS
literalinclude targets never existed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Links that still named the old single pages (commands.html,
advanced-usage.html, get-started.html, contributing.html) now go straight
to the page that holds the section, instead of relying on a redirect.
Also renders two FAQ summaries' inline code as <code>, since backticks
inside raw HTML are not converted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every old latest/ URL would otherwise 404, and several can no longer be
edited: the PyPI README of every released driver, the URL compiled into
shipped Unreal plugins, and the comment the Desktop recorder writes into
users' tests.

The build now writes a small page at each old path. The #anchor never
reaches the server, so the page resolves it in the browser:
commands.html#click lands on the Click section of input-actions.html.
legacy-redirects.json maps all 16 old pages and every anchor they had in
any published version (493). Pages that were split with no anchor show a
list of where their content went, rather than guessing one.

Only the build that contains the map writes pages, so the versioned
builds are unchanged. The build warns if a target section is renamed
later, or if an old path becomes a real page again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Desktop docs link was built as "desktop/v." + this SDK's newest tag,
so every version linked desktop/v.2.3.2/, which does not exist (Desktop's
folder is 2.3.2) and returns 404. Every published version is rebuilt with
the current conf.py on each deploy, so this fixes the link in all of them
at once.

The sidebar's Home Page and Desktop entries were hardcoded to sdk/2.3.2/
and desktop/v.2.2.4/. The deploy rewrites them to latest/ for the latest
build only, so the next release tag would have shipped the stale ones.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both files are the document "home", so Sphinx builds only one. The Sphinx
4.5 pinned in CI picks home.rst, whose table of contents lists the pages
the restructure removed, so every sidebar on the deployed site would show
none of the new pages. Its one paragraph is already in home.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
40 in-page links such as [By](#by-selector) stayed behind when the reference
and Advanced Usage were split, so they landed at the top of their own page;
they now name the page that holds the section. Two of them, on Reverse port
forwarding, pointed at headings renamed before the restructure.

Dead external links: the Linux batchmode download had a ® inside its URL;
the macOS and Windows v2.2.4 packages are no longer hosted, so they go to the
downloads page; the Appium XCUITest capabilities, allure-csharp examples,
AltId.cs, BrowserStack BaseTest.cs and 1.7.0 changelog moved; the BitBar free
trial page now lives on the BitBar product page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#1731 removed it from conf.py while removing the Unreal pages. Every version
is built with the current conf.py, so the 1.8.0 upgrade guide (all versions)
and the 2.1.0-2.2.0 front pages show the raw text
:alttestersdkdownload:`our website <>` instead of a link. It now points at
the downloads page; the per-version package it used to link is gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@adrianbobis-blip

Copy link
Copy Markdown
Author

Moved to alttester/AltTester-Unity-SDK-Closed-Source#319. The Unity SDK docs are maintained in the closed-source repo and synced here, so a change made only in this repo would be undone by the next sync.

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.

Update the Unity SDK documentation

1 participant