Mono Repo for all UI Related Podlove Projects
- 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
)
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.
- 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.
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
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.
Documentation for Podlove Web Player
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
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
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 Project: podlove.github.com
- Web Player: docs.podlove.org/podlove-web-player
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