Move /learn to pulumi/marketing-web; retire /tutorials and /templates - #21095
Move /learn to pulumi/marketing-web; retire /tutorials and /templates#21095jeffmerrick wants to merge 4 commits into
Conversation
Learn — tutorials, official templates, community examples, and a glossary — now ships from pulumi/marketing-web (apps/www) at /learn, with its own S3 + CloudFront (pulumi/marketing-web#82). www.pulumi.com is otherwise Hugo out of this repo, so this is the pulumi/docs half of the cutover. Routing. infrastructure/index.ts gains a /learn* behavior pointed at the Learn stack's cloudFrontDomain, the same shape as /registry and /guides. It uses the thirty-minute policy because that one keys on Accept: the Learn origin rewrites a page URL to its .md twin when the viewer asks for markdown, and the two representations must not collide in the apex cache. learnStack is optional, so dev stacks and PR previews are unchanged. Content. content/tutorials/ (48 pages + 13 glossary terms) and content/templates/ (23 pages) are deleted along with their layouts, partials, shortcodes, archetypes, scaffolding scripts, SCSS, data files, and the `collections` taxonomy. Slugs are 1:1 on the other side, so scripts/redirects/learn-redirects.txt is 99 301s: /tutorials/<path>/ → /learn/tutorials/<path>/, /templates/<path>/ → /learn/official-templates/<path>/, the glossary to /learn/glossary/, the six collection term pages to their browse facet landings, and the frontmatter aliases those pages carried. Every target was checked against a local build of apps/www. Links. Everything outside content/blog/ now points at /learn (blog rides the 301s, per AGENTS.md). The one exception is six architecture.png references in walkthrough-of-adopting-infrastructure-as-code: those are assets, not pages, and no redirect covers them, so the images moved into the post's bundle. Search still covers docs and the Registry only — /learn has its own search at /learn/browse and is not merged into the Algolia index. What goes is the dead scaffolding the deleted pages leave behind: the Tutorials and Templates section mappings in page.js, the /templates ranking rule, the Tutorials facet in the docs search box, and its icon. robots.txt gets a second Sitemap: directive for /learn/sitemap-index.xml — a separate directive rather than an entry in ours, since nesting one sitemap index inside another isn't defined by the spec — plus a pointer to /learn/llms.txt. Nav keeps its Templates slot (now /learn/official-templates/) and the Tutorials entry becomes Learn. Both files are synced downstream by marketing-web, so Learn's own chrome picks the change up. Still to land in pulumi/marketing-web: redirects for the old /learn/... alias URLs (/learn/pulumi-fundamentals/ and friends). Those are Hugo aliases today; once /learn* proxies away, this repo can't answer them. The provenance is already recorded there as `aliases` frontmatter on the ported pages. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The Azure and Kubernetes get-started pages linked /learn/pulumi-fundamentals, which was a Hugo alias of the old /tutorials page rather than a real URL. Now that /learn* proxies away, this repo can't answer it, so both point at the canonical /learn/tutorials/pulumi-fundamentals/. That leaves content/docs/ with no link that depends on an alias being ported downstream. run-pulumi.sh invalidates /registry/* and /guides/* after a deploy but had no /learn/*, which is now cached at the apex for thirty minutes like the other two. /tutorials/* stays, since the pre-cutover HTML still needs flushing. The Vale file filter in the three claude-* workflows still matched content/tutorials/. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Comments that restate the code they sit on, in the files this branch touched: the /learn origin and behavior block in infrastructure/index.ts (the same shape as /registry and /guides directly above it), the section headers in learn-redirects.txt, four in howto-entity.html, and the menu-tree list item. Two carried something real and are gone anyway, worth a look before merge: "/learn* has no trailing slash on purpose" and the cascade `path` note in config.yml (it matches the logical taxonomy path /industry/..., not the permalink /case-studies/industry/...). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
📦 Oversized PR — this diff (+295/−19935 across 100 files) exceeds the automated review budget, so the Claude review is skipped ( A diff this size is usually mostly generated output, which an automated line-review can't finish (and wouldn't add value to). What works better:
|
There was a problem hiding this comment.
✅ No issues found
About Unblocked
Unblocked has been set up to automatically review your team's pull requests to identify genuine bugs and issues.
📖 Documentation — Learn more in our docs.
💬 Ask questions — Mention @unblocked to request a review or summary, or ask follow-up questions.
👍 Give feedback — React to comments with 👍 or 👎 to help us improve.
⚙️ Customize — Adjust settings in your preferences.
…ite-migration # Conflicts: # content/tutorials/esc-managed-chatapp/index.md # content/tutorials/esc-setup-psp-creds/index.md # content/tutorials/esc-version-tagging/index.md
Warning
Don't merge until
/learnis live from pulumi/marketing-web.content/tutorials/andcontent/templates/are deleted here and their URLs 301 into/learn, which 404s until that ships.Proposed changes
Learn - tutorials, official templates, community examples, and a glossary - now ships from pulumi/marketing-web (
apps/www) at/learn, with its own S3 + CloudFront. This is the pulumi/docs half of that cutover.infrastructure/index.tsgains a/learn*behavior pointed at the Learn stack'scloudFrontDomain, the same shape as/registryand/guides. It uses the thirty-minute cache policy since that one keys onAccept, which the Learn origin needs - it rewrites a page URL to its.mdtwin when the viewer asks for markdown.learnStackis optional, so dev stacks and PR previews are unchanged.content/tutorials/(48 pages, 13 glossary terms) andcontent/templates/(23 pages) are deleted, along with thecollectionstaxonomy and the layouts, shortcodes, archetypes, scaffolding scripts, and SCSS that only served them.scripts/redirects/learn-redirects.txtis 99 301s. Slugs are 1:1 on the other side, so only the section prefix changes. Every target was checked against a local build ofapps/www.content/blog/now point at/learn; blog rides the 301s, perAGENTS.md. The exception is sixarchitecture.pngreferences inwalkthrough-of-adopting-infrastructure-as-code- those are assets rather than pages and no redirect covers them, so the images moved into the post's bundle./learnis not in the Algolia index and has no facet in the docs search box, since it has its own search at/learn/browse.robots.txtgets a secondSitemap:directive for/learn/sitemap-index.xml, since nesting one sitemap index inside another isn't defined by the spec.data/footer.ymlanddata/header_nav.yamlare read by marketing-web'sscripts/sync-content.mjs, so the nav change also lands on Learn's own chrome.run-pulumi.shadds/learn/*to the post-deploy CloudFront invalidation./tutorials/*stays, since the pre-cutover HTML still needs flushing.Still open
/learn/...alias URLs (/learn/pulumi-fundamentals/and friends) still need to land in pulumi/marketing-web. Hugo answers them today; once/learn*proxies away, this repo can't. They're recorded there asaliasesfrontmatter on the ported pages./docs/administration/access-identity/access-tokens/to/docs/administration/concepts/access-tokens/and updated four links to it inesc-managed-chatapp,esc-setup-psp-creds, andesc-version-tagging. Those three tutorials are deleted here, so the same four links need updating in marketing-web. The old path is aliased on the new page, so they redirect rather than 404 in the meantime.learnStackis set onwww-productiononly, so/learn404s on www.pulumi-test.io and the cutover can't be smoke-tested there. Pointing it somewhere needs a marketing-web testing stack - is there one?/learn*has no trailing slash, and that thecascadepathinconfig.ymlmatches the logical taxonomy path (/industry/...) rather than the permalink (/case-studies/industry/...). Neither is in the branch now, open for discussion.Related issues
pulumi/marketing-web#82