๐ค Contribute to sc-videos#
This guide covers the development workflow for contributors.
๐ง Development setup#
Prerequisites#
Python 3.12+
Node.js 20+
pnpm 10+
Docker and Docker Compose (for the backend stack)
makeavailable on your system
Clone and install#
git clone git@github.com:simplesconsultoria/sc-videos.git
cd sc-videos
make install
This installs both the backend and frontend dependencies.
Start the development servers#
make start
This starts:
The Plone backend on
http://localhost:8080The Volto frontend on
http://localhost:3000
๐งช Testing#
Run all tests#
make test
Backend tests only#
cd backend
make test
The backend uses pytest.
Tests live under backend/tests/.
Frontend tests only#
cd frontend
make test
The frontend uses vitest.
Tests live alongside the source code as *.test.ts files.
Linting#
make lint
This runs:
Backend:
ruff(linting + formatting check)Frontend:
eslint,prettier,stylelint
Formatting#
make format
Applies automatic fixes for both backend and frontend.
๐ Storybook#
Run the Storybook development server:
cd frontend
make storybook-start
Opens on http://localhost:6006.
Build a static Storybook:
cd frontend
make storybook-build
๐ Changelog#
sc-videos uses towncrier for changelog management.
Both backend and frontend have their own news/ directories.
When you make a change, create a news fragment:
# For changes tracked by a GitHub issue:
echo "Added support for Dailymotion videos." > backend/news/42.feature
# For changes without an issue:
echo "Fixed metadata preview alignment." > frontend/packages/volto-videos/news/+1.bugfix
Fragment types: feature, bugfix, breaking, internal, documentation, tests.
Note
Unnumbered fragments must be prefixed with + (for example, +1.feature, not 1.feature).
๐ฟ Branch naming#
Feature branches that address a GitHub issue must start with issue-:
issue-42
issue-42-add-dailymotion-support
๐ค Pull requests#
Create your branch from
main.Make your changes, add tests, add a news fragment.
Run
make testandmake lintto verify.Push and open a pull request against
main.
See also
๐๏ธ Architecture overview. Repository structure and component overview.
๐ Add a new video provider. Example of a substantial contribution.