Skip to content

podlove/podlove-publisher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6,178 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Podlove Podcast Publisher

This is the podcast publishing plugin for WordPress.

FOSSA Status

Development Setup

PHP dependencies are managed via Composer. So you need to clone the repository and then fetch the dependencies via Composer. JavaScript packages are managed with yarn.

Clone the publisher in the wp-content/plugins directory.

git clone --recursive https://github.com/podlove/podlove-publisher.git
cd podlove-publisher
curl -sS https://getcomposer.org/installer | php
make install

If you have a docker environment handy you can simply run:

make docker-install

Development

Legacy JS Development

  1. Change your working direcetory to js/
  2. Run npm install
  3. Run npm run serve to start the development build
  4. Go to your local Wordpress environment and see your changes

Client Development

  1. Create an Wordpress application password
  2. Update the authorization tokens in= client/index.html
  3. Change your working directory to client/
  4. Run npm install
  5. For isolated development run WORDPRESS_URL=http://podlove.local npm run dev with your Wordpress environment
  6. For integrated development run npm run serve and go to your local Wordpress environment and see your changes

Testing

Integration tests use the official WordPress PHPUnit setup via wp-env, which starts a Docker-based WordPress test environment.

Prerequisites:

  • Docker is running
  • Node.js + npm
  • PHP + Composer

First-time setup:

composer install
composer bin php-scoper install
composer prefix-dependencies
npm install
npm run wp-env:start

Local Development with wp-env

You can use wp-env to run a local WordPress instance with the plugin mounted from this repo.

Start the environment:

npm install
npm run wp-env:start

Open:

Useful commands:

npm run wp-env:stop
npx wp-env destroy
npx wp-env run cli -- wp option get siteurl

Run integration tests:

npm run test

If wp-env run fails with a missing docker-compose file, the environment was not created yet or was cleaned up. Recreate it with:

npx wp-env destroy
npm run wp-env:start

Formatting Code

Use PHP-CS-Fixer to format code before committing.

You can do so manually via command line (make format) or configure your editor to format the file on save. For VS Code, use the "php cs fixer" extension by junstyle.

Releases

Both beta and stable releases are creates with GitHub Actions.

To release a new stable version:

  1. manually update the following fields in readme.txt:
  • Tested up to
  • Stable tag
  • check that changelog has an entry
  1. bash bin/release.sh, which does:
  • updates version in podlove.php
  • creates release commit
  • tags commit
  1. git push

The GitHub action detects the release via the tag, builds it and submits it to the wordpress.org plugin directory.

License

FOSSA Status