fix: add output: 'blog' to publish workflow to fix /output/ URL leak#179
Merged
Conversation
publish-site.yml was missing the output parameter, so the pelican action defaulted to 'output' instead of 'blog'. This caused a mismatch with .asf.yaml (subdir: blog), requiring .htaccess rewrite rules that incorrectly exposed /output/ in redirects for blog posts with version numbers in their slug (e.g. datafusion-comet-0.15.0). Aligns publish-site.yml with stage-site.yml which already sets output: 'blog'.
This was referenced May 10, 2026
Contributor
|
thanks @kevinjqliu -- this looks better to me. I got really confused at some point when the pubishing flow got changed and I couldn't figure out how why the blog wasn't published anymore See some more backstory here: |
alamb
approved these changes
May 11, 2026
Contributor
alamb
left a comment
There was a problem hiding this comment.
Sounds good -- let's give it a try
Contributor
Thus I reverted that However, I can't revert this PR by myself -- @kevinjqliu can you please make a PR to do so (so I can approve and merge that one)? I am worried we now have two copies of the site (in output and in blog) -- I want a single output |
This was referenced May 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes are included in this PR?
Relates to #178
Adds
output: 'blog'topublish-site.yml, matchingstage-site.yml.The publish workflow was missing this parameter, so the pelican action defaulted to
output: 'output'. This caused content to land inoutput/onasf-siteinstead ofblog/. Since.asf.yamlusessubdir: blog, an.htaccesswith rewrite rules was added as a workaround (see INFRA-27512) to internally map requests intooutput/.Those rewrite rules have a regex bug: the file-extension check (
\.[^./]+$) matches.0at the end of version-number slugs, skipping the trailing-slash redirect. Apache'smod_dirthen adds the slash but exposes the internaloutput/path:/blog/2026/04/18/datafusion-comet-0.15.0→ 301 →/blog/output/...❌/blog/2026/04/02/datafusion-53.0.0→ 301 →/blog/output/...❌What this PR does
With
output: 'blog', the pelican action puts built content intoblog/onasf-site, matching what.asf.yaml(subdir: blog) expects. This is the same configurationstage-site.ymlalready uses for the staging site.Deployment safety
This PR is non-disruptive. After it deploys:
blog/is created with fresh content onasf-siteoutput/still exists with the old content.htaccesscontinues to rewrite requests tooutput/— the site keeps working exactly as beforeoutput/directory and simplify.htaccess#180) is mergedFollow-up
After this deploys, PR #180 (targeting
asf-site) should:.htaccess(keeping only the CSP directive)output/directoryAt that point,
.asf.yaml'ssubdir: blogserves content directly fromblog/— the same pattern the staging site uses successfully.