BPCells has switched to a multi-language repository setup, meaning that R and Python packages are saved in the same repository. For the most part, single-language changes just go in their respective repositories, though adding C++ files requires a few updates (described below)
Helper scripts included for building docs and running tests. Within r
, python
, or cpp
run bash scripts/run_tests.sh
or bash scripts/build_docs.sh
. Run from the root directory
to run tests/docs for all languages in one command.
Warning: Docs setup may change as python and C++ docs get created
- Docs site is built into the root folder of the docs-html branch
- Run
git worktree add r/docs docs-html
to put a copy of the docs-html branch in the r/docs folder - In
r
folder, runpkgdown::build_site()
- In
r/docs
folder, run git commit
Dev requirements: install.packages(c("pkgdown", "devtools", "testthat"))
- Documentation uses
pkgdown
- Tests use
testthat
Installation: remotes::install_github("bnprks/BPCells/r")
Dev requirements: tox
- Documentation uses
Sphinx
with PyData theme - Tests use
pytest
- Includes a helper file with the overal project home page, linking to C++, R, and Python docs.
tox
handles virtualenv setup for tests + documentation
Installation: pip install "git+https://github.com/bnprks/BPCells#subdirectory=python"
Dev requirements: cmake, doxygen
- Documentation uses Doxygen with the Doxygen Awesome theme
- Tests use googletest + cmake + ctest
Adding files:
- If C++ tests are added: Update
cpp/CMakeLists.txt
- If a new
.cpp
file is added: Updater/src/Makevars.in
- Python: autoDocstring
- C++: Doxygen Documentation Generator
To avoid multiple copies of results for C++ files and searches, add to .vscode/settings.json
:
"search.exclude": {
"r/src/bpcells-cpp/**": true,
"python/src/bpcells-cpp/**": true,
"r/src/vendor/**": true,
"python/src/vendor/**": true
}