Skip to content

Podcast: Warn about site visibility before directory submission - #54663

Open
robertbpugh wants to merge 5 commits into
trunkfrom
fix/pods-213-warn-in-the-distribution-readiness-check
Open

robertbpugh wants to merge 5 commits into
trunkfrom
fix/pods-213-warn-in-the-distribution-readiness-check

Conversation

@robertbpugh

@robertbpugh robertbpugh commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Review: needs an approval before merge.

Podcast Distribution now warns when your site is unlaunched, private, or hidden from search engines, with a link to site visibility settings.

Fixes PODS-213

Proposed changes

  • Add a visibility warning above the directory list, with an “Edit site visibility” link to Settings → Reading.
  • Keep the warning advisory: visibility alone does not disable Set up buttons, including saved directory URLs, or increase the remaining setup-step count.

Known limitations: Existing metadata and episode checks can still disable manual Set up buttons, including saved URLs. The warning checks visibility flags, not directory access to the feed; custom robots.txt rules and other crawler restrictions are outside its scope. Reload the dashboard after changing visibility.

Risk: Incorrect visibility detection could show or omit the advisory warning.

How to revert: Revert this change.

Related product discussion/links

None.

Does this pull request change what data or activity we track or use?

No new tracking or stored data; the dashboard reads existing visibility settings.

Testing instructions

Tested: No live-site or browser verification.

Added a regression test for site visibility detection in Admin_Page_Test.php.

  1. On a connected Jurassic Ninja site with Podcast access and its module active, open Podcast → Settings. Save a category, title, summary, host, owner email, topic, and PNG/JPEG cover at least 1400×1400. Publish an episode in that category. With the site public and indexable, Distribution should show no visibility warning and enable manual Set up buttons.
  2. Enable “Discourage search engines from indexing this site” in Settings → Reading, save, and fully reload Distribution. Expect the visibility warning; Set up buttons should remain enabled without an extra setup step.
  3. Follow “Edit site visibility” to Settings → Reading. Return to Distribution, save a valid Apple show URL through Set up, and reload. Confirm the modal still opens to view or replace the URL.
  4. Check Copy link, Pocket Casts submission, and warning/link readability in the dashboard. Disable search discouragement, save, and reload; the warning should disappear. Remove the summary or cover, or unpublish the episode; existing readiness warnings and manual-button blocking should return.
  5. On disposable WordPress.com sites with Podcast access, repeat for default unlaunched/Coming Soon, private, and launched/public states, reloading each time. Expect the warning only in hidden states. Repeat with legacy private/Coming Soon settings on Atomic. These checks remain unrun.

Acceptance (fresh agent, head 8f0084d)

Step Result Evidence
Setup: PR build, access, module PASS Build ends g8f0084df; Complete license attached; Podcast module activated; has_product_access true. Growth license failed to issue.
1. Public site, ready podcast PASS No warning, all buttons enabled. Episode published through REST, no audio. step1-public-no-warning.png, step1-dom.json
2. Discourage search engines, reload PASS Warning shown, no extra setup step, all buttons enabled. step2-discouraged-warning.png, step2-dom.json
3a. Edit site visibility link PASS Landed on options-reading.php with the visibility field visible. step3-settings-reading.png
3b. Apple URL saved, reloaded PASS Modal reopens showing saved URL; Replace opens an editable field. step3-apple-modal-saved-url.png
4a. Copy link PASS Label changed to Copied!; clipboard matched the feed URL.
4b. Pocket Casts submission BLOCKED Submit enabled, not pressed: it sends the feed to an outside service through WordPress.com, outside the test site.
4c. Warning and link readability PASS Text contrast 15.64:1, underlined link 5.25:1, no overflow. step4-warning-crop.png
4d. Discouragement off, reload PASS Warning gone, buttons enabled. step4-warning-gone.png, step4-public-dom.json
4e. Remove summary, cover, episode PASS Each returned its readiness warning and disabled manual buttons; restoring cleared them. step4-no-*-blocked.png, step4-readiness-dom.json
5a. WordPress.com unlaunched, private, launched BLOCKED Needs disposable WordPress.com sites on a person's account with a paid plan. Not run.
5b. Atomic legacy private, Coming Soon BLOCKED Same reason. Not run on Atomic; only simulated on Jurassic Ninja in edge E2.
E1. Private, blog_public -1 PASS Warning shown, manual buttons enabled. edge-private-warning.png, edge-states.json
E2. Simulated launch and legacy states PASS Option or stub set by helper plugin. Unlaunched, Coming Soon, legacy states warned; launched did not. edge-states.json
E3. 360px wide window PASS Notice inside viewport, no sideways scroll, link readable. edge-narrow-360-warning.png
E4. Empty and 3000-character Apple URL PASS Empty: Save disabled. Long: "URL is too long" error. edge-long-url-rejected.png
E5. Hidden site plus missing summary PASS Both notices show; manual buttons disabled by the readiness rule only. edge-both-warnings-360.png
Before and after PASS Trunk gb4bb810c shows no notice; PR shows it, same hidden state. before.png, after.png
Head SHA re-read PASS Still 8f0084d at the end of the run.

VERDICT: PASS

Before After
Before After

Opened by the bug pipeline for PODS-213.

@robertbpugh robertbpugh self-assigned this Nov 7, 2026
@github-actions

github-actions Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Are you an Automattician? Please test your changes on all WordPress.com environments to help mitigate accidental explosions.

  • To test on WoA, go to the Plugins menu on a WoA dev site. Click on the "Upload" button and follow the upgrade flow to be able to upload, install, and activate the Jetpack Beta plugin. Once the plugin is active, go to Jetpack > Jetpack Beta, select your plugin (Jetpack or WordPress.com Site Helper), and enable the fix/pods-213-warn-in-the-distribution-readiness-check branch.
  • To test on Simple, run the following command on your sandbox:
bin/jetpack-downloader test jetpack fix/pods-213-warn-in-the-distribution-readiness-check
bin/jetpack-downloader test jetpack-mu-wpcom-plugin fix/pods-213-warn-in-the-distribution-readiness-check

Interested in more tips and information?

  • In your local development environment, use the jetpack rsync command to sync your changes to a WoA dev blog.
  • Read more about our development workflow here: PCYsg-eg0-p2
  • Figure out when your changes will be shipped to customers here: PCYsg-eg5-p2

@github-actions github-actions Bot added [Package] Podcast [Plugin] Jetpack Issues about the Jetpack plugin. https://wordpress.org/plugins/jetpack/ [Status] In Progress [Tests] Includes Tests labels Nov 7, 2026
@github-actions

github-actions Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Thank you for your PR!

When contributing to Jetpack, we have a few suggestions that can help us test and review your patch:

  • ✅ Include a description of your PR changes.
  • ✅ Add a "[Status]" label (In Progress, Needs Review, ...).
  • ✅ Add testing instructions.
  • ✅ Specify whether this PR includes any changes to data or privacy.
  • ✅ Add changelog entries to affected projects

This comment will be updated as you work on your PR and make changes. If you think that some of those checks are not needed for your PR, please explain why you think so. Thanks for cooperation 🤖


Follow this PR Review Process:

  1. Ensure all required checks appearing at the bottom of this PR are passing.
  2. Make sure to test your changes on all platforms that it applies to. You're responsible for the quality of the code you ship.
  3. You can use GitHub's Reviewers functionality to request a review.
  4. When it's reviewed and merged, you will be pinged in Slack to deploy the changes to WordPress.com simple once the build is done.

If you have questions about anything, reach out in #jetpack-developers for guidance!


Jetpack plugin:

The Jetpack plugin has different release cadences depending on the platform:

  • WordPress.com Simple releases happen as soon as you deploy your changes after merging this PR (PCYsg-Jjm-p2).
  • WoA releases happen weekly.
  • Releases to self-hosted sites happen monthly:
    • Scheduled release: December 8, 2026
    • Code freeze: December 7, 2026

If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack.

@github-actions github-actions Bot added the [Status] Needs Author Reply We need more details from you. This label will be auto-added until the PR meets all requirements. label Nov 7, 2026
@jp-launch-control

Copy link
Copy Markdown

Code Coverage Summary

Coverage changed in 1 file.

File Coverage Δ% Δ Uncovered
projects/packages/podcast/src/class-admin-page.php 103/145 (71.03%) 1.69% 0 💚

Full summary · PHP report · JS report

@robertbpugh
robertbpugh marked this pull request as ready for review November 7, 2026 02:09
@robertbpugh
robertbpugh requested a review from a team as a code owner November 7, 2026 02:09
Copilot AI balanced review requested due to automatic review settings November 7, 2026 02:09
@robertbpugh robertbpugh added [Status] Needs Review This PR is ready for review. and removed [Status] In Progress labels Nov 7, 2026
@robertbpugh
robertbpugh requested a review from a team November 7, 2026 02:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The visibility checks incorrectly retain a warning on public Atomic sites with stale blog_public = '-1'; both checks need host-aware normalization and regression coverage.

1 open issue
What changed in this PR

This PR adds an advisory site-visibility warning to Podcast Distribution, helping users check visibility before submitting their feed to directories.

Changes:

  • Detect visibility settings server-side and expose the result to the dashboard.
  • Show a warning linking to Settings → Reading without changing setup-button availability or remaining-step counts.
  • Add visibility regression cases and package/plugin changelog entries.
File Description
projects/​plugins/​jetpack/​changelog/​fix-pods-213-site-visibility Document the warning for Jetpack users.
projects/​packages/​podcast/​tests/​php/​Admin_Page_Test.php Add visibility-state regression cases.
projects/​packages/​podcast/​src/​dashboard/​distribution/​index.tsx Display the advisory warning and settings link.
projects/​packages/​podcast/​src/​dashboard/​declarations.d.ts Declare the dashboard visibility flag.
projects/​packages/​podcast/​src/​class-admin-page.php Compute and inject site visibility.
projects/​packages/​podcast/​changelog/​fix-pods-213-site-visibility Record the Distribution change in the package changelog.

Review effort: Balanced

Comment on lines +216 to +218
$is_site_public = 1 === (int) get_option( 'blog_public', 1 )
&& 'unlaunched' !== get_option( 'launch-status' )
&& ! $status->is_private_site()

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Package] Podcast [Plugin] Jetpack Issues about the Jetpack plugin. https://wordpress.org/plugins/jetpack/ [Status] In Progress [Status] Needs Author Reply We need more details from you. This label will be auto-added until the PR meets all requirements. [Status] Needs Review This PR is ready for review. [Tests] Includes Tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants