Skip to content

Monorepo for all UI related projects like Web Player and Subscribe Button

License

Notifications You must be signed in to change notification settings

dnkbln/podlove-ui

 
 

Repository files navigation

Podlove UI

Mono Repo for all UI Related Podlove Projects

Build Status

Getting Started

For Contribution

  1. Make sure you have Node 10+ and lerna installed
  2. Fork this repository
  3. Run npm install to setup the workspace
  4. Run npm scripts for development (e.g. npm run dev:web-player)

For Usage

This mono repo creates a set of different packages within the @podlove NPM orgainzation. Once released you can use each package by simply installing it as a dependency.

Used Libraries and Frameworks

Note: These are recommended and well supported libraries. The usage within each application/package may vary.

Applications

Core Podlove Player State Bound Components. Building blocks with state bindings to create the web player

Embedded version of Podlove Player with the following features:

  • Sandbox
  • Persistance
  • Configuration Resolving
  • Share Endpoint
  • Templating

Embedded Subscribe Button with client detection:

  • Podcatcher Services
  • Podcatcher Clients
  • Install and RSS Feed Endcard

Packages

Webpack Tooling for all projects. Building blocks for bundling.

Button actions API, types and events that are used in state and subscribe-button.

Parser for subscribe-button configuration.

Subscribe Button reducers and selectors for creating and maintaining the subscribe-button state.

Library containing up to date podcatcher clients and uri schema.

Shared Representational Podlove Components. Stateless components that dispatch podlove events.

Player actions API, types and events that are used in state, sagas and player.

Parser for player configuration.

Player Side Effects Management, abstracting Player eventing and lifecycle.

Player reducers and selectors for creating and maintaining the player state.

Collection of helper utils for dealing with time, transforming chapters according to the Simple Chapters Specification or making requests.

Docs

Documentation for Podlove Web Player

Build Environment

Used CI: DroneCI with the following pipelines:

  • apps/player
  • apps/web-player
  • apps/subscribe-button
  • apps/components
  • packages/player-actions
  • packages/player-sagas
  • packages/player-state
  • packages/player-utils
  • packages/clients
  • docs/web-player

Steps:

  • lint
  • test
  • build
  • integration
  • release

Releasing

Podlove Web Player follows the git flow convention with support branches. Please read the documentation to follow this pattern if you want to contribute.

To create a release you have to:

  1. Create a release branch from the master or support branch
  2. Run the following lerna command in the release branch: lerna version --no-git-tag-version
  1. Create a PR against master/support branch and merge it if the release/review was successfull
  2. Tag the master/support commit with the release version (e.g. v5.0.2)
  3. Create an integration branch by branching from develop and merge master into the integration branch
  4. Create a PR with develop as the target branch and merge it if the release/review was successfull

Join the conversation

Become a part of the

If you're interested in discussing podcasting topics in general, please visit sendegate.de.

Podlove Docs

Report an issue

If you encounter a specific problem using the Podlove Web Player that you think is a bug, or you see a problem in the documentation, you can report the issue here:
github.com/podlove/ui/issues

Also, if you have ideas for new features for player, please submit them as a Github issue.

Have a look on the Github project to watch the status and progress of your issues:
github.com/podlove/ui/projects

Support

CDN sponsored by

KeyCDN

Cross Browser Testing powered by

Bowserstack Logo

About

Monorepo for all UI related projects like Web Player and Subscribe Button

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 65.1%
  • Vue 31.6%
  • HTML 2.6%
  • Other 0.7%