mirror of
https://github.com/Hopiu/linkchecker.git
synced 2026-03-16 22:10:26 +00:00
79 lines
2.3 KiB
Markdown
79 lines
2.3 KiB
Markdown
Developing LinkChecker
|
|
======================
|
|
|
|
The following steps describe how to work with the LinkChecker source which can
|
|
be found on [GitHub](https://github.com/linkchecker/linkchecker/) where
|
|
development is managed.
|
|
|
|
This is a technical document, if you are looking for ways to
|
|
participate in the community, you should rather look into
|
|
[contributing](../CONTRIBUTING.rst).
|
|
|
|
Requirements
|
|
------------
|
|
|
|
hatchling and hatch-vcs are used to create the application metadata and build
|
|
distribution packages.
|
|
|
|
These requirements are in addition to the dependencies covered in the
|
|
[installation instructions](install.txt).
|
|
|
|
Developers may wish to install hatch or tox to manage running tests.
|
|
|
|
To run the copy of linkchecker in the local repository first create the
|
|
metadata in linkcheck/_release.py:
|
|
|
|
hatchling build -t sdist --hooks-only
|
|
|
|
Then linkchecker can be run with:
|
|
|
|
python -m linkcheck
|
|
|
|
Workflows using GitHub Actions are used to check every PR, each commit and
|
|
regularly the repository HEAD. Developers are able to perform these checks
|
|
locally, using `flake8` for code style, and run the test suite with `tox` or
|
|
`hatch -e test run tests` that are both configured to use pytest.
|
|
|
|
`hatchling build` creates distributions packages.
|
|
|
|
Source layout
|
|
-------------
|
|
|
|
Important files and directories for developers to be aware of:
|
|
|
|
.flake8
|
|
.gitignore
|
|
.yamllint
|
|
Dockerfile
|
|
pyproject.toml
|
|
pytest.ini
|
|
robots.txt - test file
|
|
tox.ini
|
|
.github/ - GitHub automation
|
|
cgi-bin/ - WSGI frontend
|
|
doc/ - documentation including source for web site and man pages
|
|
linkcheck/ - core code and CLI frontend
|
|
po/ - application translations
|
|
scripts/ - automated IANA schemes updater, analysis tools
|
|
tests/
|
|
tools/ - build scripts
|
|
|
|
Release process
|
|
---------------
|
|
|
|
1. check whether updated man pages and translations need committing
|
|
(`make locale; make -C doc locale; make -C doc man`)
|
|
if so create a pull request using the GitHub workflow:
|
|
"Create a branch with updated man pages and application translations"
|
|
|
|
2. run `scripts/update_iana_uri_schemes.sh` and commit any changes
|
|
|
|
3. edit `changelog.txt` and `upgrading.txt`
|
|
|
|
4. confirm tests have passed
|
|
|
|
5. submit a pull request
|
|
|
|
6. create release (vX.Y.Z) on GitHub
|
|
|
|
7. check release has been created on PyPI
|