BlueBrain / BlueBrain/hpc-coding-conventions

Provide project templates

Open
#32 3 comments 0 reactions 2 assignees Claimed by @ferdonline View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.