Repository navigation
Conversation
68a7258 to
00932e6
Compare
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
hyperformula-docs | 14ff109 | Commit Preview URL Branch Preview URL |
Oct 15 2026, 07:56 AM |
|
Preview checks (
Content:
Through handsontable.com (handsontable/handsontable.com-v3#149 run locally with
🤖 Generated with Claude Code |
Performance comparison of head (14ff109) vs base (05c1a29) |
|
About the red
If you want this PR green, create 🤖 Generated with Claude Code |
|
The precondition is met (2026-10-14, 15:42 CEST). The rest of handsontable.com is unchanged (still v2), and so is hyperformula.handsontable.com. This PR can be merged to
I also checked every old HyperFormula link the live Handsontable docs carry (14 distinct ones, current and older doc versions). Each lands on the right page and anchor through the new address, so the Handsontable docs need no change. 🤖 Generated with Claude Code |
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
|
@budnix we should not merge pull requests into master. We usually merge into develop and during the release process it goes into master. If it needs to land on master urgently we would need to release it either as a quick release or as a hotfix |
sequba
left a comment
There was a problem hiding this comment.
All PRs should target develop
The HyperFormula pages move from hyperformula.handsontable.com to handsontable.com: the landing page to /hyperformula/ with the new website, the documentation to /docs/hyperformula/, next to the Handsontable docs under /docs/. The docs stay in this repository and keep deploying through the hyperformula-docs Worker; handsontable.com proxies the path to it unchanged, so the build has to know its new home. - build.config.js: base /docs/hyperformula/, the output directory under the same prefix, and https://handsontable.com for the sitemap, the .md companions and llms-full.txt. - _headers: the long cache follows the hashed assets to their new path. - worker/index.js: the former addresses (/docs and everything under /docs/ outside the new base) answer with a permanent redirect to the same path under https://handsontable.com/docs/hyperformula/. hyperformula. handsontable.com keeps sending /docs/* here, so every old link redirects the moment this build is live. Done in the Worker, not in _redirects: a /docs/* rule there would also match the new /docs/hyperformula/*. - Hard-coded addresses in the docs (logo link, support links, the coding agent snippets, one release-notes link) and in the README, DEV_DOCS, package.json homepage and GitHub templates point at the new home. - site.webmanifest: icon paths relative to the manifest; the absolute /favicon/ paths already 404ed under the docs base. - docs/.vuepress/public/robots.txt removed: under the docs base it was never at a site root, so no crawler read it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nine function descriptions in the catalogue link API pages by absolute URL on hyperformula.handsontable.com/docs/. They are library strings, also returned by getFunctionDetails, so they change with a release; on the generated built-in functions page they become relative links now, so the page points at the docs wherever they are served and opens them as in-site navigation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
00932e6 to
efba7bf
Compare
|
@sequba thanks, done. The PR now targets It needs to reach
The release needs nothing else from this PR:
Merging into 🤖 Generated with Claude Code |
|
Re-checked on the
🤖 Generated with Claude Code |
| - **[Building, testing, and linting](docs/guide/building.md)** — all `npm` commands and build outputs | ||
| - **[Test suite](test/README.md)** — smoke tests and how to attach the private test suite | ||
| - **[Public docs portal](https://hyperformula.handsontable.com/docs)** — main documentation | ||
| - **[Public docs portal](https://handsontable.com/docs/hyperformula/)** — main documentation |
There was a problem hiding this comment.
@budnix I see an inconsistence. Sometimes the changes url is https://handsontable.com/docs/hyperformula/ and sometimes it's https://handsontable.com/hyperformula/docs/. Please make sure that it's valid everywhere
@budnix I'll do a hotfix today, so it will be live |
|
@budnix check if this is a problem
Failure scenario: The hyperformula-website Worker still proxies all of Generated by Claude Code |
|
Failure scenario: Generated by Claude Code |
|
Failure scenario: A contributor follows step 5 after Generated by Claude Code |
|
Failure scenario: If someone changes Generated by Claude Code |
|
Failure scenario: A maintainer reading the comment assumes the companions are rebased to Generated by Claude Code |
|
Failure scenario: On https://handsontable.com/docs/hyperformula/guide/basic-usage.html the browser requests https://handsontable.com/favicon/site.webmanifest and Generated by Claude Code |
|
Failure scenario: Fetching Generated by Claude Code |
|
Failure scenario: A developer looks for Generated by Claude Code |
From the review of #1810: - worker/index.js reads the base and the host from docs/.vuepress/build.config.js instead of typing them again, and script/prepare-cf-assets.js stops a Cloudflare build whose base differs from that file (a DOCS_BASE override), whose output is not under it, or whose _headers or _redirects do not name it. A base changed in one place then fails the build instead of redirecting every docs page. - Every page carries <link rel="canonical"> to its address on handsontable.com (VuePress frontmatter.canonicalUrl, rendered by templates/ssr.html). A copy reachable under another host (a workers.dev preview, or hyperformula.handsontable.com/docs/hyperformula/* until the handsontable.com Worker answers that host) is not indexed in its place. - The built-in functions page computes its relative prefix from where the page is written, not a hard-coded '../'. - docs/README.md: the local dev URL, the docs:build output directory and the llms-full.txt path name the new base; the md-companions JSDoc too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@sequba please hold the hotfix for a short while. I've just pushed b58b4d6, which addresses your review: the Worker reads the base from For the hotfix, the commits to cherry-pick onto 🤖 Generated with Claude Code |
The coding-agent setup page still gave /docs/guide/basic-usage.md as the example of a page's Markdown address. Under the new base that path belongs to the Handsontable docs and answers 404; the example is /docs/hyperformula/guide/basic-usage.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… and real rules Follow-ups from a review of the previous commit: - The base in build.config.js must start and end with "/": worker/index.js uses it as written (config.js normalises it, so VuePress alone would not catch a missing slash). - A DOCS_HOSTNAME override that differs from build.config.js fails the build: the canonical links and the sitemap would name one host while the Worker redirects to another. - _headers and _redirects must name the base in a rule, not just in a comment, so a stale rule under an updated comment no longer passes. - The generator's comment names the suite that pins the library strings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This release may go live before the new handsontable.com, which replaces the current site on 2026-10-15. Two kinds of link pointed at pages only the new site has, and would have answered 404 in between: - The logo on the docs home page and in the README linked handsontable.com/hyperformula/. They link the HyperFormula landing page's own host instead: today it is the landing page itself, and once handsontable.com takes the host over, a 301 to /hyperformula/. - The "support options" links on the Contact and Quality pages linked handsontable.com/support/. Without the trailing slash, the current site answers it with its contact page and the new one with /support/. Switch them to the new addresses in a later release, once both sites have changed over. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
Re-verified on the final build@sequba thanks for the careful review. Everything is addressed in b58b4d6, 7195670, 87ef9f9 and cf44925, or answered below with evidence. For the hotfix, cherry-pick all six commits onto They apply cleanly; the only difference from this branch is Your comments
Also fixed: VerificationFour independent checks, plus a re-run of their scripts on the final code. The Cloudflare previews were cad133f1 and aa81f6de; cf44925 changes only four outbound links, checked on aa81f6de.
Follow-ups, not blockers:
🤖 Generated with Claude Code |
The corpus listed every page by its extensionless URL. The Worker treats a last path segment containing a dot as a file name and never looks up its .html file, so pages such as guide/migration-from-2.x-to-3.0 and the api/classes/cellcontent.* pages answered 404 at the listed URL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0137eVKg5r4aRcgL5MKhqKx7
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #1810 +/- ##
========================================
Coverage 97.28% 97.28%
========================================
Files 207 207
Lines 16218 16218
Branches 3588 3588
========================================
Hits 15777 15777
Misses 433 433
Partials 8 8 🚀 New features to boost your workflow:
|
#1821) ### Context This is the gitflow hotfix for #1810. The branch is based on `master` and carries the 7 commits from #1810, cherry-picked unchanged: | #1810 | This branch | Commit | | --- | --- | --- | | `0bf433d` | `53699fa` | docs: serve the documentation at handsontable.com/docs/hyperformula/ | | `efba7bf` | `3c68566` | docs: link the functions page's API references relatively | | `b58b4d6` | `f981ddc` | docs: one source for the docs base, canonical links, review fixes | | `7195670` | `121e5d3` | docs: the per-page Markdown example names the new base | | `87ef9f9` | `5c3d369` | docs: the Cloudflare build guard checks the base's form, the hostname and real rules | | `cf44925` | `b67ec89` | docs: links to the website that work before and after its relaunch | | `14ff109` | `888bea0` | docs: keep .html in the llms-full.txt page URLs | The description of #1810 explains what changes and how it was tested. After merging into `master`, merge `master` back into `develop`. #1810 can then be closed, because the same commits reach `develop` through that back-merge. ### How did you test your changes? - All 7 commits cherry-picked onto `master` without conflicts. - The diff `master..hotfix/move-docs-to-handsontable-com` has exactly the same added and removed lines as #1810's diff against `develop` (23 files, +184/−79). - The testing of the change itself is described in #1810. ### Types of changes - [ ] Breaking change (a fix or a feature because of which an existing functionality doesn't work as expected anymore) - [ ] New feature or improvement (a non-breaking change that adds functionality) - [ ] Bug fix (a non-breaking change that fixes an issue) - [ ] Additional language file, or a change to an existing language file (translations) - [x] Change to the documentation ### Related issues: 1. #1810 ### Checklist: - [x] I have reviewed the guidelines about [Contributing to HyperFormula](https://handsontable.com/docs/hyperformula/guide/contributing.html) and I confirm that my code follows the code style of this project. - [ ] I have signed the [Contributor License Agreement](https://goo.gl/forms/yuutGuN0RjsikVpM2). - [ ] My change is compliant with the [OpenDocument](https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html) standard. - [ ] My change is compatible with Microsoft Excel. - [ ] My change is compatible with Google Sheets. - [ ] I described my changes in the [CHANGELOG.md](https://github.com/handsontable/hyperformula/blob/master/CHANGELOG.md) file. - [ ] My changes require a documentation update. - [ ] My changes require a migration guide. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_0137eVKg5r4aRcgL5MKhqKx7 --- _Generated by [Claude Code](https://claude.ai/code/session_0137eVKg5r4aRcgL5MKhqKx7)_ --------- Co-authored-by: Krzysztof Budnik <571316+budnix@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
> ### Status (2026-10-15) > - **Code change: done.** One commit (`fa035e0`). > - **Also needed:** two manual steps in the repository settings, outside the code. See "To finish this PR" below. ### Context The documentation is served by the `hyperformula-docs` Cloudflare Worker at `https://handsontable.com/docs/hyperformula/`. Cloudflare Workers Builds deploys it from `master` (see `docs/README.md`, "Deployment"). The move to that address shipped in #1821 (`master`) and #1822 (`develop`). The old **Publish** workflow (`.github/workflows/publish.yml`, job `publish-docs`) still ran on every push to `master`: - it built the docs with `npm run docs:build`; - it pushed `docs/.vuepress/dist` to the `gh-pages` branch with `peaceiris/actions-gh-pages` and the CNAME `hyperformula.handsontable.com`. That copy is no longer used, so GitHub Pages is being dropped. The job last ran on `187dfa1` (the #1821 merge) and published the new `/docs/hyperformula/` layout to `gh-pages`. ### What changes - **`.github/workflows/publish.yml` removed.** It held only the `publish-docs` job. This also drops the workflow's `contents: write` and `pages: write` permissions and the `peaceiris/actions-gh-pages` action. - **`.github/workflows/build-docs.yml`:** the job id changes from `publish-docs` to `build-docs`, to match its `name:`. The job publishes nothing. The status check name comes from `name:`, so it stays `build-docs (22, ubuntu-latest)`, and branch protection rules that require it are unaffected. - **Release checklist** (`script/release/release.sh` and its copy in `script/release/release-README.md`): the manual step "Check that the docs workflow deployed the documentation to gh-pages" becomes a check that Workers Builds deployed the docs from `master` to `https://handsontable.com/docs/hyperformula/`. The `build-docs` workflow is unchanged. It still builds the docs on every PR and on `master`, `develop` and `release/**`. ### To finish this PR 1. **Review and merge into `develop`.** CI should be green; the change touches no library code. 2. **Turn off GitHub Pages:** in the repository settings, under **Settings > Pages**, set **Source** to none / unpublish the site. This needs repository admin rights. - Before you do it, check that nothing still needs the Pages site. - `hyperformula.handsontable.com/docs/*` is served by the `hyperformula-website` Worker and the docs Worker, not by GitHub Pages. - Confirm in **Settings > Pages** which custom domain, if any, Pages still has, and that DNS for it doesn't point at GitHub Pages. 3. **Delete the `gh-pages` branch** once Pages is off (`git push origin --delete gh-pages`). It is only build output, and keeping it invites confusion. 4. **When this reaches `master`** (the next release, or merged as part of a hotfix), the Publish workflow stops running there. Until then, every push to `master` still publishes to `gh-pages`. That is harmless once Pages is off. ### How did you test your changes? - `grep -rniE "gh-pages|actions-gh-pages|publish-docs|publish\.yml"` over the repository, excluding `node_modules`, finds nothing after the change. - `bash -n script/release/release.sh` passes. - Not run: the release script itself. The change only edits text in its final checklist heredoc. ### Types of changes - [ ] Breaking change (a fix or a feature because of which an existing functionality doesn't work as expected anymore) - [ ] New feature or improvement (a non-breaking change that adds functionality) - [ ] Bug fix (a non-breaking change that fixes an issue) - [ ] Additional language file, or a change to an existing language file (translations) - [x] Change to the documentation ### Related issues: 1. #1810: the docs move to handsontable.com, released through #1821 and #1822. It listed this workflow as a leftover. ### Checklist: - [x] I have reviewed the guidelines about [Contributing to HyperFormula](https://handsontable.com/docs/hyperformula/guide/contributing.html) and I confirm that my code follows the code style of this project. - [ ] I have signed the [Contributor License Agreement](https://goo.gl/forms/yuutGuN0RjsikVpM2). - [ ] My change is compliant with the [OpenDocument](https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html) standard. - [ ] My change is compatible with Microsoft Excel. - [ ] My change is compatible with Google Sheets. - [ ] I described my changes in the [CHANGELOG.md](https://github.com/handsontable/hyperformula/blob/master/CHANGELOG.md) file. (Not needed: CI and release tooling only.) - [ ] My changes require a documentation update. - [ ] My changes require a migration guide. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_0137eVKg5r4aRcgL5MKhqKx7 --- _Generated by [Claude Code](https://claude.ai/code/session_0137eVKg5r4aRcgL5MKhqKx7)_ Co-authored-by: Claude <noreply@anthropic.com>
Context
The HyperFormula pages move from
hyperformula.handsontable.comtohandsontable.com:handsontable.com/docs/hyperformula/, next to the Handsontable docs under/docs/;handsontable.com/hyperformula/with the new website (launch 2026-10-15).The docs stay in this repository and keep deploying exactly as today: Workers Builds builds
masterinto thehyperformula-docsWorker. Nothing moves out of the HF team's hands.handsontable.comproxies/docs/hyperformula/*to this Worker without changing the path, so visitors never see the workers.dev address. This is the same arrangementhandsontable.com/docs/uses for the Handsontable docs.What changes here:
build.config.js: base/docs/hyperformula/, the output under the same prefix, andhttps://handsontable.comas the hostname. VuePress writes the new address into every link, asset, favicon, search entry, sitemap entry,.mdcompanion andllms-full.txtURL._headers: the immutable cache follows the hashed assets to/docs/hyperformula/assets/*.worker/index.js: backward compatibility. Every former address (/docs, and anything under/docs/outside the new base) answers301to the same path underhttps://handsontable.com/docs/hyperformula/, with the query string kept._redirects: a/docs/*rule there would also match/docs/hyperformula/*, because_redirectsapplies even when an asset matches.handsontable.com/support/), the three coding-agent snippets, and one release-notes link (now relative);package.jsonhomepage (the landing page) and the GitHub templates.site.webmanifest: icon paths are relative now. The absolute/favicon/...paths had returned 404 since the docs moved under/docs/.docs/.vuepress/public/robots.txtremoved. Under the docs base it was never at a site root.handsontable.com/robots.txtlists this sitemap instead.How the old addresses keep working
hyperformula.handsontable.com/docs/…hyperformula-websiteproxies it here → this Worker 301s tohandsontable.com/docs/hyperformula/…(hyperformula-websitepasses redirects to other hosts through unchanged)…/guide/…,…/api/…,…/api-ref-readme.htmlhyperformula-website's_redirects→/docs/…→ the 301 above (two hops)/docs/hyperformula/hyperformula.handsontable.com/(landing page)handsontable.com/hyperformula/handsontable.com/docs/hyperformula/…(the new address)How did you test your changes?
1. "Merged now" traced end to end: 26 old addresses, 0 failures. The trace used:
hyperformula-website's shortcut rules;The list:
/docs,/docs/,/docs/api,/docs/api/, a guide page with a query, a guide page with an anchor, the demo,llms-full.txt, a.mdcompanion and the security certificate PDF;/api/,/guide/…and/api-ref-readme.htmlshortcuts.Every one ends on a 200, with every
#anchorpresent on the target page.2. The same 14 links in the launch setup. Run through handsontable.com's own host rule (from 2026-10-15): one 301 each, every target 200, every anchor found.
3. The whole preview build (
docs-move-to-handsontable-com-hyperformula-docs.handsoncode.workers.dev, commit 00932e6, the same change onmaster; re-run ondevelopbelow):/docs/hyperformula/, and none names the old host;../apion the basic-usage page, which gets the usual trailing-slash 301, as today;llms-full.txtlist 228 URLs, allhttps://handsontable.com/docs/hyperformula/…;max-age=31536000, immutable;/docs/hyperformula/, with no other/docs/path and no old host in any bundle.4. The Worker in Node against a stub asset store:
/docs/hyperformula→ 301 to the slash;5. The deploy. Workers Builds for
hyperformula-docs:master, buildnpm run docs:build:cf, deploynpx wrangler deploy. The active version was deployed frommasteron 2026-10-09;CI: now based on
develop. The two jobs that failed againstmaster(EDATE tests fromdevelop's test suite) run against the code that has the fix.Releasing (tomorrow, 2026-10-15)
develop. Thedeveloppreview, and so https://dev.handsontable.com/docs/hyperformula/, shows the docs at the new address right away. Nothing live changes yet.master, by one of these:develop. Today that also carries the EDATE fix (Fix EDATE returning 28 February instead of 29 February in leap years #1781), the only other changedevelophas overmaster;masterwithgit cherry-pick 0bf433df efba7bfd b58b4d61 7195670e 87ef9f97 cf44925c 14ff1098, merged tomasterand back todevelop.masterto thehyperformula-docsWorker in a few minutes. Then check:curl -sI https://hyperformula.handsontable.com/docs/guide/basic-usage.htmlgives a 301 tohttps://handsontable.com/docs/hyperformula/guide/basic-usage.html;developbefore this is released, unless it adopts the same base first (see below). Otherwise the next release ships docs built for/docs/again.Not in this PR (follow-ups)
base: '/docs/hyperformula'with the output undercf-dist/docs/hyperformula/, plus this PR's_headerspath and the Worker's former-address redirect.documentationUrland description links insrc/interpreter/functionMetadata/(≈380 library strings, returned bygetFunctionDetails) move with the next release, in Point the function catalogue's documentation links to handsontable.com/docs/hyperformula/ #1819. The redirects cover them until then.CHANGELOG.mdkeeps its historical links. They redirect..github/workflows/publish.ymlstill setscname: hyperformula.handsontable.comfor GitHub Pages. Harmless.Types of changes
Related issues:
developas requestedChecklist:
🤖 Generated with Claude Code
https://claude.ai/code/session_0137eVKg5r4aRcgL5MKhqKx7