These are some loose notes about packaging Papis meant to highlight the different components that are available and not to require a particular format.
The versioning scheme generally follows semantic versioning. That is, we
have three numbers, A.B.C, where:
Achanges on a rewrite or other major changes in the library or command-line.Bchanges when major configuration incompatibilities occur or major features are added.Cchanges with each release (bug fixes).
See pyproject.toml for a complete list of Python dependencies and minimum versions.
Some optional dependencies are required for various Papis plugins
Jinja2is required for thejinjaformatter, alternative to the defaultpythonformatter.Whooshis required for thewhooshcache database, alternative to the defaultpapisdatabase based onpickle.citeproc-pyis required for thecslexporter, which allows exporting through the popular CSL (Citation Style Language) to styles like APA or MLA.chardetis used bybeautifulsoup4when parsing webpages to improve character detection. This is recommended when making heavy use of Papis downloaders and importers.markdownifyis used by thezenodoimporter to clean up some of the project descriptions. By default, the raw HTML is kept as is and will appear in the document abstract or other such fields.
We also have some additional optional non-Python dependencies:
git: The Git executable is required for thepapis gitcommand and other Git integration in various commands.
Papis uses the standard pyproject.toml-based format and hatchling as a
build backend. Wheels can be generated using
python -m build --wheel --skip-dependency-check .
A source distribution (sdist) can be build together with the wheel using just
python -m build --skip-dependency-check .
Papis documentation uses Sphinx, which can also generate man pages. By default,
we create man pages for all the standard papis commands and some general
documentation for the configuration file. These can be generated using
make -C doc man
The resulting man pages can then be found in doc/build/man and should be installed
in appropriate locations.
Papis uses click for its command-line parsing. To generate completions, use
_PAPIS_COMPLETE=bash_source papis
_PAPIS_COMPLETE=fish_source papis
_PAPIS_COMPLETE=zsh_source papis
Note that the generated completion files are not static and can pick up any
custom Papis commands and plugins even after installation.
There is a desktop file in contrib/papis.desktop.