blob: 20f4742513c8459e8fbab6f95186a102925d3c02 [file] [log] [blame]
==========
Developing
==========
-------------
Python Module
-------------
The python module is located in the ``burr/`` directory. Tests are located in the
``tests/`` directory. To run the tests, use the following command:
.. code-block:: bash
python -m pytest tests/
---------------
Tracking server
---------------
The tracking server is located inside the python package. To run the server, you can use the utility cli:
.. code-block:: bash
BURR_SERVE_STATIC=false burr-admin-server --no-open --dev-mode
This will start the server on port 7241. Note that this is just a python wrapper -- this also captures stdout.
We will be fixing this, but if you want to run it directly (which is best for debugging), you'll want to
run it with uvicorn:
.. code-block:: bash
BURR_SERVE_STATIC=false uvicorn burr.tracking.server.run:app --port 7241 --reload
We disable serving static files as we want to be able to develop simultaneously with the UI and
npm's reloading capabilities do not work with the static python server.
-----------
Tracking UI
-----------
The tracking UI lives within ``telemetry/ui`` To run the tracking UI, you will need to have npm installed.
Then, you can run the following commands:
.. code-block:: bash
$ cd telemetry/ui
$ npm install
$ npm run start
This will start the UI on port 3000. You can then navigate to ``http://localhost:3000`` to see the UI.
It currently assumes that the tracking server is running on port 7241. The proxy is set up in the
``package.json`` file.
Note that if you want to just develop off the server you'll first have to build the UI and symlink the
``tracking/server/build`` directory to the ``telemetry/ui/build`` directory. We have this structure to
enable easy inclusion of package data in ``pyproject.toml``.
You can do this with the following command:
.. code-block:: bash
$ burr-admin-build-ui
-------------
Documentation
-------------
The documentation is located in the ``docs/`` directory. To build and serve the documentation,
you can use the following sphinx command:
.. code-block:: bash
$ sphinx-autobuild -b dirhtml -W -E -T --watch docs/ -a docs /tmp/mydocs
This will start the server on port 8000. You can then navigate to ``http://localhost:8000`` to see the documentation.
Heed any warnings and fix them!