Awesome
Podlove UI
Mono Repo for all UI Related Podlove Projects
Getting Started
For Contribution
- Make sure you have Node 10+ and lerna installed
- Fork this repository
- Run
npm install
to setup the workspace - 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 organization. Once released you can use each package by simply installing it as a dependency.
Used Libraries and Frameworks
- Workspace Management: Lerna
- Bundling: Webpack
- View Renderer: Vue
- Statemanagement: Redux
- Helpers: Ramda
- Styling: Tailwind
- Testing: Jest and Cypress
Note: These are recommended and well supported libraries. The usage within each application/package may vary.
Applications
@podlove/player
Core Podlove Player State Bound Components. Building blocks with state bindings to create the web player
@podlove/web-player
Embedded version of Podlove Player with the following features:
- Sandbox
- Persistance
- Configuration Resolving
- Share Endpoint
- Templating
@podlove/subscribe-button
Embedded Subscribe Button with client detection:
- Podcatcher Services
- Podcatcher Clients
- Install and RSS Feed Endcard
Packages
@podlove/build [internal]
Webpack Tooling for all projects. Building blocks for bundling.
@podlove/button-actions
Button actions API, types and events that are used in state and subscribe-button.
@podlove/button-config
Parser for subscribe-button configuration.
@podlove/button-state
Subscribe Button reducers and selectors for creating and maintaining the subscribe-button state.
@podlove/clients
Library containing up to date podcatcher clients and uri schema.
@podlove/components
Shared Representational Podlove Components. Stateless components that dispatch podlove events.
@podlove/player-actions
Player actions API, types and events that are used in state, sagas and player.
@podlove/player-config
Parser for player configuration.
@podlove/player-sagas
Player Side Effects Management, abstracting Player eventing and lifecycle.
@podlove/player-state
Player reducers and selectors for creating and maintaining the player state.
@podlove/utils
Collection of helper utils for dealing with time, transforming chapters according to the Simple Chapters Specification or making requests.
Docs
web-player
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:
- Create a release branch from the
master
orsupport
branch - Run the following lerna command in the release branch:
lerna version --no-git-tag-version
- Select a major/minor/patch/custom version (please see semantic versioning documentation)
- Create a PR against master/support branch and merge it if the release/review was successfull
- Tag the master/support commit with the release version (e.g.
v5.0.2
) - Create an integration branch by branching from develop and merge master into the integration branch
- 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
- Podlove community community.podlove.org, or discuss your
- Web Player topics or questions on community.podlove.org/c/podlove-web-player.
If you're interested in discussing podcasting topics in general, please visit sendegate.de.
Podlove Docs
- Podlove Project: podlove.github.com
- Web Player: docs.podlove.org/podlove-web-player
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
<a href="https://keycdn.com"><img src="https://logos.keycdn.com/keycdn-logo-black.svg" alt="KeyCDN" width="200px"></a>
Cross Browser Testing powered by
<a href="https://www.browserstack.com/"><img src="https://d2ogrdw2mh0rsl.cloudfront.net/production/images/static/header/header-logo.svg" alt="Bowserstack Logo" width="300px"> </a>