We welcome and appreciate contributions to fluxus!
There are many ways to contribute, including:
- Create issues for bugs or feature requests
- Participate in community discussions
- Address an open issue
- Create tutorials
- Improve documentation
All contributions must be reviewed and merged by a member of the core fluxus team.
For detailed guidance on how to contribute to fluxus, please see the Contributor Guide.
For major contributions, reach out to the fluxus team in advance ([email protected]).
The basic requirements for developing this library are:
- Python version 3.11.x or later
- git for cloning and contributing to the library
- pip or conda for installing and managing Python libraries
We recommend using an IDE such as VS Code or PyCharm.
Clone a local version of the library using HTTPS:
git clone https://github.com/BCG-X-Official/fluxus.git
or SSH:
git clone [email protected]:BCG-X-Official/fluxus.git
From the project root, create a dedicated environment for your project using, e.g.,
venv
:
python -m venv fluxus-env
and activate it with
source fluxus-env/bin/activate
on mac or .\fluxus\scripts\Activate
on Windows.
We recommend installing the project locally in developer mode to enable importing local fluxus modules in scripts or notebooks as if the library is installed, but with local changes immediately reflected.
To install fluxus in developer mode, run the following from your project root:
pip install -e ".[dev]"
This makes sure that dependencies for testing are installed along with the fluxus
package. As an alternative approach, you can add the folder fluxus/src
to your
PYTHONPATH
, and this will enable importing local fluxus modules into scripts or
notebooks.
The following installations are required for full functionality.
GraphViz is required for generating pipeline flow diagrams. Install the library and ensure it is in your system's PATH variable:
- For MacOS and Linux users, simple instructions provided on GraphViz Downloads should automatically add GraphViz to your path
- Windows users may need to manually add GraphViz to your PATH (see Simplified Windows installation procedure)
- Run
dot -V
in Terminal or Command Prompt to verify installation
Pandoc is required to render Jupyter Notebooks for building the sphinx documentation.
- MacOS users can install Pandoc with
brew install pandoc
- Windows and Linux users should follow the Pandoc installation instructions for their system
This project uses pre-commit hooks to automatically enforce uniform coding standards in commits:
pre-commit install
To execute the pre-commit hooks on demand, use pre-commit run
from the command line.
This project uses pytest to support functional testing. To run the test suite:
pytest
To maintain high standard for test coverage, the testing pipeline is configured to
require at least 90% test coverage of the codebase, otherwise pytest
will exit with a
failure status.
Visit the Contributor Guide for detailed standards, best practices, and processes for contributors.