Skip to content

fix(website): finish the monorepo website with publish-only deploys, demo playback and checked anchors - #3001

Merged
Danielku15 merged 5 commits into
developfrom
feature/website-finalization
Oct 31, 2026
Merged

Danielku15 merged 5 commits into
developfrom
feature/website-finalization

Conversation

@Danielku15

Copy link
Copy Markdown
Member

Note

AI-authored disclosure (alphatab-ai-authored-v1)

Portions of this content were authored by an AI agent. The agent has read
AGENTS.md and the human submitter accepts responsibility for
compliance with the rules in that document.

Issues

Follow-up to #2998 (website in the monorepo). No separate issue: maintainer-driven finalization of the website integration after the first deploy of next.alphatab.net.

Proposed changes

The first deploys from the monorepo worked. This PR removes what was only needed during the migration and fixes what the live site showed.

Deploy only through the publish workflows

  • Removes the standalone Website workflow (website.yml). It built against whatever the npm dist-tags served at that moment, so it could deploy a website whose packages were not published yet. Publish and Release already build and deploy the website after the web packages, dry runs included.
  • Removes the WEBSITE_DEPLOY_ENABLED repository variable gate, which only protected the first deploys. Whether a run deploys is now decided by the website / dry_run inputs and the website / website-stable environments. The variable can be deleted in the repository settings after merging.
  • The CI and website jobs install packages/ui and packages/react unconditionally, instead of first probing whether those packages exist. They are permanently part of the repository.

Demos without a way to play

  • 36 feature demos built on AlphaTabProvider had the player enabled but no control to start it, e.g. the live preview on Load alphaTex inline. The player was switched on everywhere as a temporary audio audit and stayed on, while the move to AlphaTabProvider removed the spacebar playback. Every such page downloaded the synthesizer and the SoundFont, with no way to play.
  • Demos about rendering, import, export and layout (32) no longer enable the player.
  • The alphaTex live preview and the range selection demo get a shared play/pause button (DemoPlayButton), the same style as the demos that already had one.
  • The audition and audio export demos keep the player: they use it without a button.

Broken anchors

  • The production build reported 122 broken anchors. 120 of them resolve in the browser but were written as plain HTML ids (<td id> for enum members, <a id> on the alphaTex syntax page), which Docusaurus does not collect. They now render through Link, which registers the id. The settings table categories also get anchors (#exporter, #core-javascript-specific …).
  • Two links pointed at anchors that don't exist: the exporter guide (settings#Exporter) and the 1.7 release notes (syntax#parameters--argument-lists).
  • onBrokenAnchors: "throw", so new broken anchors fail the build the way broken links already do.

Verification

  • Production build passes with onBrokenAnchors: "throw", with no broken anchors.
  • Headless Chromium against the build:
    • Load alphaTex inline and Range selection play (cursor moves, audio output, no console errors);
    • Zoom and scale starts only the render worker and loads no SoundFont.
  • The workflow changes take effect with the next Publish run.

Checklist

  • I consent that this change becomes part of alphaTab under its current or any future open source license
  • This PR is linked to an accepted issue (see above)
  • Changes are implemented
  • New tests were added
  • I have read AGENTS.md if an AI helped draft any part of this PR

AI authorship disclosure

  • No AI agent authored any part of this PR (description, code, tests, or commit messages)
  • An AI agent contributed to this PR. The AI-authored disclosure block
    (alphatab-ai-authored-v1) is present at the top of this body, and I have
    personally reviewed every change and can explain each one

Further details

  • This is a breaking change
  • Docs / release notes updated in website/

Enum members, settings categories and the alphaTex syntax terms were
anchored with plain HTML ids, which Docusaurus does not collect, so the
build reported over a hundred broken anchors that resolve in the
browser. They are now rendered through Link, which registers the id.
The exporter guide and the 1.7 release notes pointed at anchors that do
not exist. Broken anchors now fail the build like broken links.
Publish and Release already build and deploy the website after the web
packages, including dry runs. The standalone Website workflow built
against whatever the dist-tags served and could deploy a website whose
packages were not published yet.
The ui and react packages are part of the monorepo, so the CI and
website jobs no longer probe for them before installing and building.
The deploy is live; whether a run deploys is decided by the website and
dry run inputs of the publish workflows and by the website environments.
…lent

The feature demos built on AlphaTabProvider turned the player on but had
no control to start it, so pages loaded the synthesizer and SoundFont
without a way to play. Demos about rendering, import, export and layout
no longer enable the player; the alphaTex live preview and the range
selection demo get a shared play/pause button.
@Danielku15
Danielku15 enabled auto-merge (squash) October 31, 2026 19:18
@Danielku15
Danielku15 merged commit 54d916b into develop Oct 31, 2026
12 checks passed
@Danielku15
Danielku15 disabled auto-merge October 31, 2026 19:22
@Danielku15
Danielku15 deleted the feature/website-finalization branch October 31, 2026 19:22
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.

1 participant