podlove-ui
podlove-ui copied to clipboard
Monorepo for all UI related projects like Web Player and Subscribe Button
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 installto 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: Vite
- View Renderer: Vue
- Statemanagement: Redux
- Helpers: Ramda
- Styling: Tailwind
- Testing: Vitest 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/subscribe-button
Embedded Subscribe Button with client detection:
- Podcatcher Services
- Podcatcher Clients
- Install and RSS Feed Endcard
Packages
@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/playerapps/web-playerapps/subscribe-buttonapps/componentspackages/player-actionspackages/player-sagaspackages/player-statepackages/player-utilspackages/clientsdocs/web-player
Steps:
linttestbuildintegrationrelease
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
masterorsupportbranch - 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