BlueBrain / BlueBrain/hpc-coding-conventions
Provide project templates
- Dominant language
- Python
- Stars
- 10
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
# Requirements
The following [Basalt project](https://github.com/tristan0x/basalt/issues?q=is%3Aopen+is%3Aissue+project%3Atristan0x%2Fbasalt%2F2) should be completed first.
# Deliverables
2 project templates: one for pure Python projects and the other for C++/CMake
## Pure Python project
* Provide instructions to generate a Python project with pyscaffold.
* Provide guidelines to create cython functions if necessary.
### Use case
The main target is to create Python packages (source distribution or wheels)
### References
Interesting work made by NSE team to [build Python wheels](https://bbpteam.epfl.ch/project/spaces/pages/viewpage.action?pageId=36340234) (still work-in-progress)
## C++ project
Create a cookiecutter project inspired by basalt.
### Input parameters
| Parameter | Default Value |
| --------------------- | ------------------ |
| team name | HPC
| team_email | bbp-ou-hpc@groupes.epfl.ch
| project_slug | foo
| python_bindings | y
### Third parties
The 3rd parties libraries below should be ready to be used. single-header releases are bundled in the project, the other provided as git submodules:
* hpc-coding-guidelines
* From [Tooling](https://github.com/BlueBrain/hpc-coding-conventions/blob/master/cpp/Tooling.md#as-git-modules-or-directly-bundled):
* Catch2
* CLI11
* {fmt}
* Google benchmark
* spdlog
* nlohmann/json
* gsl-lite
### Python bindings
If *python_bindings* is enabled, then the generated project would be enriched with pyscaffold goodness (tox.ini, setup.py, ...) and pybind11.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.