Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
fail-fast: true
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
python-version: ['3.10', '3.11', '3.12']
python-version: ['3.12', '3.13', '3.14']
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
fail-fast: true
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
python-version: ['3.10', '3.11', '3.12']
python-version: ['3.12', '3.13', '3.14']
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
Expand Down
12 changes: 9 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,19 @@

### Added

- Typing support. [#698](https://github.com/NLeSC/python-template/pull/698)
* Now explicitly following [SPEC 0](https://scientific-python.org/specs/spec-0000/), add Python 3.13 and 3.14 support [#703](https://github.com/NLeSC/python-template/pull/703)
* Typing support. [#698](https://github.com/NLeSC/python-template/pull/698)

### Changed

* Update CI actions to use Python 3.14 instead of 3.12 [#703](https://github.com/NLeSC/python-template/pull/703)
* Recommend `ruff format` instead of `yapf` for fixing code style readability [#695](https://github.com/NLeSC/python-template/pull/695)

### Removed

## 0.6.1
* Removed Python 3.10 and 3.11 support

## [0.6.1]

### Added

Expand Down Expand Up @@ -243,7 +247,9 @@ Released on July 12, 2018.
* Requirements.txt
* Setup configuration

[Unreleased]: https://github.com/NLeSC/python-template//compare/0.5.0...HEAD
[Unreleased]: https://github.com/NLeSC/python-template//compare/0.6.1...HEAD
[0.5.0]: https://github.com/NLeSC/python-template/releases/tag/0.6.1
[0.5.0]: https://github.com/NLeSC/python-template/releases/tag/0.6.0
[0.5.0]: https://github.com/NLeSC/python-template/releases/tag/0.5.0
[0.4.0]: https://github.com/NLeSC/python-template/releases/tag/0.4.0
[0.3.0]: https://github.com/NLeSC/python-template/releases/tag/0.3.0
Expand Down
36 changes: 22 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ This fully customizable profile enables you to selectively include or exclude fe

- Boilerplate unit tests and documentation,
- [Python static setup configuration](template/pyproject.toml.jinja),
- Supporting the 3 most recent Python version, following [SPEC 0]
- Open source software license,
- Continuous integration with [GitHub action workflows](template/.github/workflows) for building, testing, link checking and linting,
- Code style checking with [ruff](https://beta.ruff.rs/),
Expand All @@ -45,20 +46,20 @@ This fully customizable profile enables you to selectively include or exclude fe

## Badges

| fair-software.nl recommendations | |
| :-- | :-- |
| (1/5) code repository | [![github repo badge](https://img.shields.io/badge/github-repo-000.svg?logo=github&labelColor=gray&color=blue)](https://github.com/nlesc/python-template) |
| (2/5) license | [![github license badge](https://img.shields.io/github/license/nlesc/python-template)](https://github.com/nlesc/python-template) |
| (3/5) community registry | [![RSD](https://img.shields.io/badge/rsd-python--template-00a3e3.svg)](https://research-software.nl/software/nlesc-python-template) |
| (4/5) citation | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1310751.svg)](https://doi.org/10.5281/zenodo.1310751) |
| (5/5) checklist |   |
| overall | [![fair-software badge](https://img.shields.io/badge/fair--software.eu-%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8B-yellow)](https://fair-software.eu) |
| **Other best practices** |   |
|   |   |
| **GitHub Actions** |   |
| Citation metadata consistency | [![cffconvert](https://github.com/nlesc/python-template/actions/workflows/cffconvert.yml/badge.svg)](https://github.com/nlesc/python-template/actions/workflows/cffconvert.yml) |
| Link checker | [![link-check](https://github.com/nlesc/python-template/actions/workflows/link-check.yml/badge.svg)](https://github.com/nlesc/python-template/actions/workflows/link-check.yml) |
| Tests | [![tests](https://github.com/nlesc/python-template/actions/workflows/tests.yml/badge.svg)](https://github.com/nlesc/python-template/actions/workflows/tests.yml) |
| fair-software.nl recommendations | |
|:---------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| (1/5) code repository | [![github repo badge](https://img.shields.io/badge/github-repo-000.svg?logo=github&labelColor=gray&color=blue)](https://github.com/nlesc/python-template) |
| (2/5) license | [![github license badge](https://img.shields.io/github/license/nlesc/python-template)](https://github.com/nlesc/python-template) |
| (3/5) community registry | [![RSD](https://img.shields.io/badge/rsd-python--template-00a3e3.svg)](https://research-software.nl/software/nlesc-python-template) |
| (4/5) citation | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1310751.svg)](https://doi.org/10.5281/zenodo.1310751) |
| (5/5) checklist |   |
| overall | [![fair-software badge](https://img.shields.io/badge/fair--software.eu-%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8B-yellow)](https://fair-software.eu) |
| **Other best practices** |   |
| Dependency support | [![SPEC 0 — Minimum Supported Dependencies][badge-SPEC0]][SPEC 0] |
| **GitHub Actions** |   |
| Citation metadata consistency | [![cffconvert](https://github.com/nlesc/python-template/actions/workflows/cffconvert.yml/badge.svg)](https://github.com/nlesc/python-template/actions/workflows/cffconvert.yml) |
| Link checker | [![link-check](https://github.com/nlesc/python-template/actions/workflows/link-check.yml/badge.svg)](https://github.com/nlesc/python-template/actions/workflows/link-check.yml) |
| Tests | [![tests](https://github.com/nlesc/python-template/actions/workflows/tests.yml/badge.svg)](https://github.com/nlesc/python-template/actions/workflows/tests.yml) |

## How to use

Expand Down Expand Up @@ -164,3 +165,10 @@ list below:
## How to contribute

Suggestions/improvements/edits are most welcome. Please read the [contribution guidelines](CONTRIBUTING.md) before creating an issue or a pull request.


<!-- References -->

[badge-SPEC0]: https://img.shields.io/badge/SPEC-0-green?labelColor=%23004811&color=%235CA038

[SPEC 0]: https://scientific-python.org/specs/spec-0000/
6 changes: 3 additions & 3 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ classifiers =
License :: OSI Approved :: Apache Software License
Natural Language :: English
Programming Language :: Python :: 3
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12
Programming Language :: Python :: 3.13
Programming Language :: Python :: 3.14
description = Copier template to initialize Python projects in accordance with Netherlands eScience Center best practices
long_description = file: README.md
long_description_content_type = text/markdown
Expand All @@ -28,7 +28,7 @@ version = 0.6.1
[options]
zip_safe = False
include_package_data = True
python_requires = >=3.10
python_requires = >=3.12
packages =
install_requires =
copier==9.2.0
Expand Down
4 changes: 2 additions & 2 deletions template/project_setup.md.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ checklist](https://guide.esciencecenter.nl/#/best_practices?id=checklist).

This repository is set up with Python versions:

- 3.10
- 3.11
- 3.12
- 3.13
- 3.14

Add or remove Python versions based on project requirements. See [the
guide](https://guide.esciencecenter.nl/#/language_guides/python) for more information about Python
Expand Down
8 changes: 4 additions & 4 deletions template/pyproject.toml.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ classifiers = [
}[license] }}",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
dependencies = []
description = "{{ package_short_description|replace('\"', '\\\"') }}"
Expand All @@ -38,7 +38,7 @@ keywords = [
license = {file = "LICENSE"}
name = "{{ package_name }}"
readme = {file = "README.md", content-type = "text/markdown"}
requires-python = ">=3.10"
requires-python = ">=3.12"
version = "{{ version }}"

[project.optional-dependencies]
Expand Down Expand Up @@ -106,7 +106,7 @@ command_line = "-m pytest"
[tool.tox]
legacy_tox_ini = """
[tox]
envlist = py310,py311,py312
envlist = py312,py313,py314
skip_missing_interpreters = true
{% if AddLocalTests -%}
[testenv]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
fail-fast: true
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
python-version: ['3.10', '3.11', '3.12']
python-version: ['3.12', '3.13', '3.14']
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ '{{ ' -}} matrix.python-version }}
Expand Down Expand Up @@ -46,10 +46,10 @@ jobs:
fail-fast: false
steps:
- uses: actions/checkout@v6
- name: Set up Python 3.12
- name: Set up Python 3.14
uses: actions/setup-python@v6
with:
python-version: 3.12
python-version: 3.14
- name: Python info
shell: bash -e {0}
run: |
Expand All @@ -71,10 +71,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Python 3.12
- name: Set up Python 3.14
uses: actions/setup-python@v6
with:
python-version: 3.12
python-version: 3.14
- name: Upgrade pip and install dependencies
run: |
python -m pip install --upgrade pip setuptools
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ jobs:
fail-fast: false
steps:
- uses: actions/checkout@v6
- name: Set up Python 3.12
- name: Set up Python 3.14
uses: actions/setup-python@v6
with:
python-version: 3.12
python-version: 3.14
- name: Python info
shell: bash -e {0}
run: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:
- uses: actions/checkout@v6
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up Python
- name: Set up Python 3.14
uses: actions/setup-python@v6
with:
python-version: 3.12
python-version: 3.14
- name: Python info
shell: bash -e {0}
run: |
Expand Down
2 changes: 0 additions & 2 deletions tests/test_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,6 @@ def test_generate_api_docs(baked_with_development_dependencies, project_env_bin_
assert (project_dir / 'docs' / '_build' / 'html' / 'index.html').exists()


@pytest.mark.skipif(sys.version_info < (3, 9), reason=
"requires python 3.9 or higher, see https://github.com/NLeSC/python-template/pull/347#issuecomment-1710684574")
def test_coverage_api_docs(baked_with_development_dependencies, project_env_bin_dir):
project_dir = baked_with_development_dependencies
bin_dir = project_env_bin_dir
Expand Down