blob: 46a86c3ae73585b7afdc3a2d0747a2f722598222 [file]
..
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.
============
Contributing
============
Please read the `code of conduct <https://github.com/apache/burr?tab=coc-ov-file#readme>`_
prior to contributing. Then follow these guidelines:
#. Create a fork of the repository.
#. Ensure all tests pass
#. Make a PR to the main repository
#. Ping one of the maintainers to review your PR (best way to reach us is via the `slack community <https://join.slack.com/t/hamilton-opensource/shared_invite/zt-1bjs72asx-wcUTgH7q7QX1igiQ5bbdcg>`_)
-----------------------
Contribution guidelines
-----------------------
Please:
#. Keep your commits modular
#. Add descriptive commit messages
#. Attach a PR to an issue if applicable
#. Ensure all new features have tests
#. Add documentation for new features
-----------------------
Issue assignment policy
-----------------------
Assigning yourself to an issue signals that you are actively working on it.
This applies equally to maintainers, committers, and external contributors.
- **Only assign yourself** if you have a PR open or are about to start coding.
- **14 days without visible activity** (PR, commit, or comment): a triager will
comment asking for a status update.
- **21 days total without response**: the assignee is removed and ``help wanted``
is added so someone else can pick it up.
- **Re-assignment is welcome.** If you want to take over, comment on the issue.
- **Umbrella and tracking issues** marked with ``lifecycle/frozen`` are exempt.
This is enforced by a weekly automated check. If you need more time, just drop a
comment on the issue to reset the clock.
---------------
Developer notes
---------------
CLI
---
Apache Burr comes with a `cli` that is both user/developer facing.
**this is required in order to publish, do not do so otherwise**
This will be turned into a `Makefile`, but for now we have a set of commands in `pyproject.toml` that are used to
publish, etc...
To run the just the server for development:
.. code-block:: bash
$ burr --dev-mode --no-open # will run the server on port 7241
To publish -- this will build the FE + publish the BE to the ``pypi`` prod instance. Note you have to have ``pypi`` credentials to do this:
.. code-block:: bash
$ burr-admin-publish --prod
To generate the demo data (if you make a change to the schema, ideally forward-compatible):
.. code-block:: bash
$ burr-admin-generate-demo-data
Not part of the CLI (yet), but running just the UI is simple:
.. code-block:: bash
$ cd telemetry/ui
$ npm run start
Package data
------------
Several static assets are included in the python package so we can run the UI. Namely:
1. The `examples` directory is symlinked from ``burr/examples`` to allow for package-style imports
2. The `build/` directory is symlinked from ``burr/tracking/server`` to allow for static assets referred to by the server to be included in the package. Note that this does not get committed -- this requires use of the CLI above.