blob: efe856d3ef77fb9a2d91d0463d145d58048bf8c5 [file] [log] [blame]
..
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
=====
Setup
=====
These instructions will be assuming use of `pip <https://pip.pypa.io/en/stable/>`_ and `virtualenv <https://virtualenv.pypa.io/>`_.
Replace with your package manager of choice if you prefer.
----------
Clone/fork
----------
To get started, create a fork of Burr on the github UI, and clone it to your local machine.
.. code-block:: bash
git clone https://github.com/<your_space>/burr.git
----------
Installing
----------
Next you'll want to ``cd`` into the directory and install
``burr`` in developer mode:
.. code-block:: bash
cd burr
pip install -e ".[developer]"
You can also use dependency group:
.. code-block:: bash
pip install -e . --group dev
or, if you use ``uv``:
.. code-block:: bash
uv sync
The latter command will automatically create and install virtual env if one does not exist and will
automatically install the project in editable mode with all developer dependencies defined in dev
dependency group.
This will install all potential dependencies. Burr will work with ``python >=3.9``.
------------------
Linting/Pre-Commit
------------------
Burr has pre-commit hooks enabled. This comes with the ``developer`` extras.
You can always run the pre-commit hooks manually (on all files). Do this
if it somehow wasn't configured and its in a bad state.
.. code-block:: bash
pre-commit run --all
For the UI, we leverage husky and lint-staged to run the pre-commit hooks on the client side.
This actually runs pre-commits for the whole repository, so you can run through husky if you want.
You can also run the pre-commit hooks for the UI manually:
.. code-block:: bash
npm run lint:fix
npm run format:fix
from within the ``telemetry/ui`` directory.