Contribute
General remarks
PyCorrFit has no funding and a vanishingly small developer community. My personal objective is to keep PyCorrFit operational on Linux and Windows which is currently limited by the free time I have available.
An active community is very important for an open source project such as PyCorrFit. You can help this community grow (and thus help improve PyCorrFit) in numerous ways:
Tell your colleagues and peers about PyCorrFit. One of them might be able to contribute to the project.
If you need a new feature in PyCorrFit, publicly announce a bounty for its implementation.
If your research heavily relies on FCS, please consider diverting some of your resources to the development of PyCorrFit.
You don’t have to be a Python programmer to contribute. If you are familiar with reStrucuredText or LaTeX, you might be able to help out with the online documentation.
Please cite: Müller et al. Bioinformatics 30(17): 2532–2533, 2014, DOI:10.1093/bioinformatics/btu328
If you are planning to contribute to PyCorrFit, please contact me via the PyCorrFit issue page on GitHub such that we may coordinate a pull request.
For documentation writers
To build this documentation, fork PyCorrFit, navigate to the docs (not doc) directory and run.
pip install -r requirements.txtfollowed bysphinx-build . _build.
This will create the html documentation on your computer. Syntax warnings and errors will be displayed during the build (there should be none). After making your changes to your forked branch, create a pull request on GitHub.
If you only found a typo or wish to make text-only changes, you can also use the GitHub interface to edit the files (without testing the build step on your computer).
For developers
Running from source
It is recommended to work with virtual environments.
Windows
The easiest way to run PyCorrFit from source on Windows is Anaconda.
conda install matplotlib numpy pip scipy wxpythonpip install cython wheel simplejson sympy lmfitpip install -e . # in the root directory of the repository
Ubuntu Linux
PyCorrFit requires wxPython >= 4.0.1 which is not available as a binary wheel on PyPI. However, the wxPython people have wheels specific to certain Ubuntu versions (https://www.wxpython.org/pages/downloads/):
sudo apt-get install -qq build-essential python3.10-devpip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04 wxPythonpip install -e .[GUI] # in the root directory of the repository
Testing
PyCorrFit is tested using pytest. If you have the time, please write test
methods for your code and put them in the tests directory. You may
run all tests by issuing:
pip install -r tests/requirements
pytest tests
Pull request guidelines
Please fork PyCorrFit and create a pull request (PR) introducing your changes.
A new PR should always be made into the main branch.
If a PR introduces a new functionality or fixes a bug, it should provide a test case, i.e. a new file or function in the tests directory (see here for examples). Note that currently there is no recipe for testing the graphical user interface code.
New code should follow the style guide for Python. Please use
flake8 --exclude _version.py .(http://flake8.pycqa.org/en/latest/index.html#quickstart) to check the files you changed or created.New code should be documented well.
Make sure to update the changelog.