Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
05d0c9b
Podcast: new wp-admin module for Simple and Atomic sites
arcangelini May 4, 2026
a311232
Podcast: don't skip register_setting when legacy code is active
arcangelini May 4, 2026
0b498fb
Podcast: replace Calypso redirect with in-admin SPA in wpcom-admin-menu
arcangelini May 4, 2026
c50d6b0
Podcast: scaffold CHANGELOG.md, .phan config, restore changelog/.gitkeep
arcangelini May 4, 2026
1514e32
Podcast: integrate as a hard dep of jetpack-mu-wpcom; drop fallback r…
arcangelini May 4, 2026
bd18b0e
Podcast: restore mirror config; fix changelog format and plugin entry…
arcangelini May 4, 2026
196e254
Podcast: add changelog entries for wpcomsh and mu-wpcom-plugin lock u…
arcangelini May 4, 2026
391ea91
Podcast: scaffold PHPUnit bootstrap + smoke tests; suppress phan on j…
arcangelini May 4, 2026
bc02800
Podcast: avoid terser-folded ternary in __() calls
arcangelini May 4, 2026
005f33c
Podcast: use @wordpress/media-utils MediaUpload for cover picker
arcangelini May 5, 2026
941a42f
Podcast: inline 2000ms copy-feedback timeout
arcangelini May 5, 2026
1050112
Podcast: use useCopyToClipboard for feed copy buttons
arcangelini May 5, 2026
a00eed4
Podcast: store podcatcher URLs in podcasting_show_urls setting
arcangelini May 5, 2026
21d0424
Podcast: split distribution apps into self-contained registry
arcangelini May 5, 2026
0d47450
Podcast: inline AppRow into the directory list
arcangelini May 5, 2026
d8220a1
Merge remote-tracking branch 'origin/trunk' into add/podcast-module
arcangelini May 5, 2026
d9ca0bf
Podcast: detect first podcatcher feed fetch into podcasting_show_states
arcangelini May 5, 2026
3f0f146
Podcast: client-side URL validation + saved/Replace UX
arcangelini May 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 118 additions & 2 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: changed

Jetpack > Podcast: replace the Calypso redirect with the in-admin Podcast SPA when the Jetpack Podcast package is loaded.
1 change: 1 addition & 0 deletions projects/packages/jetpack-mu-wpcom/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"automattic/jetpack-google-analytics": "@dev",
"automattic/jetpack-masterbar": "@dev",
"automattic/jetpack-newsletter": "@dev",
"automattic/jetpack-podcast": "@dev",
"automattic/jetpack-redirect": "@dev",
"automattic/jetpack-rtc": "@dev",
"automattic/jetpack-stats-admin": "@dev",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -401,15 +401,8 @@ function () {
$subscribers_dashboard->add_wp_admin_submenu();
}

// Jetpack > Podcasting
add_submenu_page(
'jetpack',
__( 'Podcasting', 'jetpack-mu-wpcom' ),
__( 'Podcasting', 'jetpack-mu-wpcom' ),
'manage_options',
'https://wordpress.com/settings/podcasting/' . $domain,
null // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
);
// Jetpack > Podcast
\Automattic\Jetpack\Podcast\Settings::add_wp_admin_submenu();

if ( $is_simple_site ) {
// Jetpack > Newsletter.
Expand Down Expand Up @@ -459,6 +452,7 @@ function () {
'search',
'subscribers',
'newsletter',
'jetpack-podcast',
'podcasting',
'traffic',
'jetpack#/settings',
Expand Down
21 changes: 21 additions & 0 deletions projects/packages/podcast/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Files not needed to be distributed in the package.
.gitattributes export-ignore
.github/ export-ignore
package.json export-ignore

# Files to include in the mirror repo, but excluded via gitignore
# Remember to end all directories with `/**` to properly tag every file.
/build/** production-include

# Files to exclude from the mirror repo, but included in the monorepo.
# Remember to end all directories with `/**` to properly tag every file.
.gitignore production-exclude
changelog/** production-exclude
.phpcs.dir.xml production-exclude
tests/** production-exclude
.phpcsignore production-exclude
tsconfig.json production-exclude
global.d.ts production-exclude
src/**/*.scss production-exclude
src/**/*.tsx production-exclude
src/**/*.ts production-exclude
5 changes: 5 additions & 0 deletions projects/packages/podcast/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
vendor/
node_modules/
.cache/
build/
composer.lock
17 changes: 17 additions & 0 deletions projects/packages/podcast/.phan/baseline.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php
/**
* This is an automatically generated baseline for Phan issues.
* When Phan is invoked with --load-baseline=path/to/baseline.php,
* The pre-existing issues listed in this file won't be emitted.
*
* This file can be updated by invoking Phan with --save-baseline=path/to/baseline.php
* (can be combined with --load-baseline)
*/
return [
// This baseline has no suppressions
// Currently, file_suppressions and directory_suppressions are the only supported suppressions
'file_suppressions' => [
],
// 'directory_suppressions' => ['src/directory_name' => ['PhanIssueName1', 'PhanIssueName2']] can be manually added if needed.
// (directory_suppressions will currently be ignored by subsequent calls to --save-baseline, but may be preserved in future Phan releases)
];
13 changes: 13 additions & 0 deletions projects/packages/podcast/.phan/config.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php
/**
* This configuration will be read and overlaid on top of the
* default configuration. Command-line arguments will be applied
* after this file is read.
*
* @package automattic/jetpack-podcast
*/

// Require base config.
require __DIR__ . '/../../../../.phan/config.base.php';

return make_phan_config( dirname( __DIR__ ) );
24 changes: 24 additions & 0 deletions projects/packages/podcast/.phpcs.dir.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0"?>
<ruleset>

<rule ref="WordPress.WP.I18n">
<properties>
<property name="text_domain" type="array">
<element value="jetpack-podcast" />
</property>
</properties>
</rule>
<rule ref="Jetpack.Functions.I18n">
<properties>
<property name="text_domain" value="jetpack-podcast" />
</properties>
</rule>

<rule ref="WordPress.Utils.I18nTextDomainFixer">
<properties>
<property name="old_text_domain" type="array" />
<property name="new_text_domain" value="jetpack-podcast" />
</properties>
</rule>

</ruleset>
6 changes: 6 additions & 0 deletions projects/packages/podcast/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
10 changes: 10 additions & 0 deletions projects/packages/podcast/babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const config = {
presets: [
[
'@automattic/jetpack-webpack-config/babel/preset',
{ pluginReplaceTextdomain: { textdomain: 'jetpack-podcast' } },
],
],
};

export default config;
Empty file.
4 changes: 4 additions & 0 deletions projects/packages/podcast/changelog/add-podcast-package
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: added

Initial release of the Jetpack Podcast package: wp-admin SPA, RSS feed customization, and site-settings REST integration. Available on Simple and Atomic sites only.
63 changes: 63 additions & 0 deletions projects/packages/podcast/composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"name": "automattic/jetpack-podcast",
"description": "Jetpack Podcast functionality (Simple and Atomic only).",
"type": "jetpack-library",
"license": "GPL-2.0-or-later",
"require": {
"php": ">=7.2",
"automattic/jetpack-admin-ui": "@dev",
"automattic/jetpack-assets": "@dev",
"automattic/jetpack-status": "@dev"
},
"require-dev": {
"yoast/phpunit-polyfills": "^4.0.0",
"automattic/jetpack-test-environment": "@dev",
"automattic/phpunit-select-config": "@dev"
},
"autoload": {
"classmap": [
"src/"
]
},
"scripts": {
"build-development": "pnpm run build",
"build-production": "pnpm run build-production",
"watch": [
"Composer\\Config::disableProcessTimeout",
"pnpm run watch"
],
"phpunit": [
"phpunit-select-config phpunit.#.xml.dist --colors=always"
],
"test-php": [
"@composer phpunit"
],
"typecheck": "pnpm run typecheck"
},
"repositories": [
{
"type": "path",
"url": "../../packages/*",
"options": {
"monorepo": true
}
}
],
"minimum-stability": "dev",
"prefer-stable": true,
"extra": {
"autorelease": true,
"autotagger": true,
"mirror-repo": "Automattic/jetpack-podcast",
"branch-alias": {
"dev-trunk": "0.1.x-dev"
},
"textdomain": "jetpack-podcast",
"version-constants": {
"::PACKAGE_VERSION": "src/class-podcast.php"
},
"changelogger": {
"link-template": "https://github.com/Automattic/jetpack-podcast/compare/v${old}...v${new}"
}
}
}
Loading
Loading