Open
Description
Here are a few suggestions, doubling as a tracker for the implementation of said features.
Tracker
Code structure & content
-
src
versus flat layout, see Code: Create a small module that does something simple #2 - File format configuration (e.g.
.editorconfig
) - Dependencies management
- .gitignore
Documentation
- Badges
- "Written" documentation
- API reference
- Publishing
Code quality
- Formatter
- Linter(s), see CI: add builds to package for #1
- Type checker, see CI: add builds to package for #1
- Tests, see CI: add builds to package for #1
Collaboration
- Licensing
- CoC
- Contributing guide
Packaging
- Versionning
- Building
- Publishing
Automation
- Setting up CI for as many items as possible, see CI: add builds to package for #1
- Running everything locally
Implementations
Based on the pyOpenSci packaging guide, here are a few implementation suggestions
Code structure & content
src
versus flat layout: src- File format configuration (e.g.
.editorconfig
):
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
trim_trailing_whitespace = true
[*.py]
indent_style = space
indent_size = 4
[*.md]
trim_trailing_whitespace = false
- Dependencies management: PDM
- .gitignore: gitignore.io for Python
Documentation
- Badges
- "Written" documentation: Sphinx
- API reference: apidoc
- Publishing: GH pages
Code quality
- Formatter: Black
- Linter(s): Ruff 👼
- Type checker: mypy
- Tests: pytest, coverage.py
Collaboration
- Licensing: MIT, BSD3?
- CoC
- Contributing guide
Packaging
- Versionning
- Building: PDM
- Publishing: PyPI, conda-forge, both?
Automation
- Setting up CI: GH actions
- Running everything locally: tox, nox, PDM?
Feel free to comment / change items 🐈⬛
Metadata
Metadata
Assignees
Labels
No labels