diff --git a/CHANGELOG.md b/CHANGELOG.md index 05d780ffed1496663c08fcbe69b4ba892fdc074c..0544d70bfabff5a53bdd693d5acf21f738e26341 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added ### +* New setup extra `test` which installs the dependencies for testing. + ### Changed ### ### Deprecated ### diff --git a/README_SETUP.md b/README_SETUP.md index 8a32fbfacb8fd5733c65998b35e52e1c7bbceab1..8fc93474f31697112fcc237ca890e0c0c4603ffa 100644 --- a/README_SETUP.md +++ b/README_SETUP.md @@ -2,20 +2,40 @@ ## Installation ## -### Requirements ### +### How to install ### -PyCaosDB needs at least Python 3.8. Additionally, the following packages are required (they will -typically be installed automatically): +First ensure that python with at least version 3.8 is installed. Should this not be +the case, you can use the [Installing python](#installing-python-) guide for your OS. -- `lxml` -- `PyYaml` -- `PySocks` +#### Generic installation #### -Optional packages: -- `keyring` -- `jsonschema` +To install this LinkAhead python client locally, use `pip`/`pip3`: -### How to install ### +```sh +pip install linkahead +``` + +#### Additional dependencies #### + +To test using tox, you also need to install tox: +`pip install tox` + +To install dependencies used by optional functionality, the following pip extras +keywords are defined: +- `test` for testing with pytest +- `mypy` for mypy and types +- `jsonschema` +- `keyring` + +These extras can be installed using: +```sh +pip install .[KEYWORD] +``` +A current list of the dependencies installed with this program as well as those installed with +the keywords can be found in `setup.py`s `setup_package()` method, in the `metadata` dictionary +entries `install_requires` and `extras_require`. + +### Installing python ### #### Linux #### @@ -51,34 +71,7 @@ cd /Applications/Python\ 3.9/ sudo ./Install\ Certificates.command ``` -After these steps, you may continue with the [Generic -installation](#generic-installation). - -#### Generic installation #### - -To install PyCaosDB locally, use `pip3` (also called `pip` on some systems): - -```sh -pip3 install --user caosdb -``` - ---- - -Alternatively, obtain the sources from GitLab and install from there (`git` must be installed for -this option): - -```sh -git clone https://gitlab.com/caosdb/caosdb-pylib -cd caosdb-pylib -pip3 install --user . -``` - -For installation of optional packages, install with an additional option, e.g. for -validating with the caosdb json schema: - -```sh -pip3 install --user .[jsonschema] -``` +After these steps, you may continue with the [Generic installation](#generic-installation) section. ## Configuration ## @@ -87,7 +80,7 @@ is described in detail in the [configuration section of the documentation](https ## Try it out ## -Start Python and check whether the you can access the database. (You will be asked for the +Start Python and check whether you can access the database. (You will be asked for the password): ```python @@ -107,6 +100,7 @@ Now would be a good time to continue with the [tutorials](tutorials/index). - Run all tests: `tox` or `make unittest` - Run a specific test file: e.g. `tox -- unittests/test_schema.py` - Run a specific test function: e.g. `tox -- unittests/test_schema.py::test_config_files` +- To run using pytest: `pytest .` ## Documentation ## We use sphinx to create the documentation. Docstrings in the code should comply @@ -114,13 +108,6 @@ with the Googly style (see link below). Build documentation in `build/` with `make doc`. -### Requirements ### - -- `sphinx` -- `sphinx-autoapi` -- `recommonmark` -- `sphinx_rtd_theme` - ### How to contribute ### - [Google Style Python Docstrings](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html) @@ -128,7 +115,7 @@ Build documentation in `build/` with `make doc`. - [References to other documentation](https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#role-external) ### Troubleshooting ### -If the client is to be executed directly from the `/src` folder, an initial `.\setup.py install --user` must be called. +If the client is to be executed directly from the `/src` folder, an initial `.\setup.py install` must be called. ## Migration ## TODO