Work on this repository from a clone. The scripts and tests need nothing
beyond Python 3 and ruff.
git clone https://github.com/PyDevices/.github.git dotgithub
cd dotgithub
python3 -m unittest discover -s tests -v # the publishing-script tests
python3 -m pip install ruff
ruff check scripts/ tests/ # lint, as CI runs itThose two commands are what the unittest and ruff jobs in
checks.yml run. The same file lints
every workflow with actionlint, parses each reusable workflow as YAML, checks
that the reusables' publishing-vN references agree, and builds the
main documentation project with warnings
as errors, so a pull request here sees all of them.
data/repos_db.json is the one source for the
repository map: each repository's tier, description, buttons and the place its
landing page is published. Edit it, never the pages it produces, then run the
generator:
python3 scripts/generate_sites.pyThe generator writes into sibling repositories (the portal, the per-repository
.site/ trees, the organization profile and the pydevices ecosystem page),
so clone the repositories it writes to (PyDevices.github.io, pydevices,
gallery and mip) side by side, and name this one dotgithub on disk, the
folder name the generator looks for:
git clone https://github.com/PyDevices/.github.git dotgithubA clean run produces no diff; checks.yml runs it against fresh clones and
fails on any change.