my-python-project
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: sverhoeven
- License: apache-2.0
- Language: Shell
- Default Branch: main
- Size: 40 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
- Releases: 0
Metadata Files
README.dev.md
my_python_package developer documentation
If you're looking for user documentation, go here.
Development install
```shell
Create a virtual environment, e.g. with
python3 -m venv env
activate virtual environment
source env/bin/activate
make sure to have a recent version of pip and setuptools
python3 -m pip install --upgrade pip setuptools
(from the project root directory)
install mypythonpackage as an editable package
python3 -m pip install --no-cache-dir --editable .
install development dependencies
python3 -m pip install --no-cache-dir --editable .[dev] ```
Afterwards check that the install directory is present in the PATH environment variable.
Running the tests
Running the tests requires an activated virtual environment with the development tools installed.
```shell
unit tests
pytest pytest tests/ ```
Running linters locally
For linting we will use prospector and to sort imports we will use isort. Running the linters requires an activated virtual environment with the development tools installed.
```shell
linter
prospector
recursively check import style for the mypythonpackage module only
isort --recursive --check-only mypythonpackage
recursively check import style for the mypythonpackage module only and show
any proposed changes as a diff
isort --recursive --check-only --diff mypythonpackage
recursively fix import style for the mypythonpackage module only
isort --recursive mypythonpackage ```
You can enable automatic linting with prospector and isort on commit by enabling the git hook from .githooks/pre-commit, like so:
shell
git config --local core.hooksPath .githooks
Generating the API docs
shell
cd docs
make html
The documentation will be in docs/_build/
Versioning
Bumping the version across all files is done with bumpversion, e.g.
shell
bumpversion major
bumpversion minor
bumpversion patch
Making a release
This section describes how to make a release in 3 parts:
- preparation
- making a release on PyPI
- making a release on GitHub
(1/3) Preparation
- Update the
CHANGELOG.md - Verify that the information in
CITATION.cffis correct, and that.zenodo.jsoncontains equivalent data - Make sure the version has been updated.
- Run the unit tests with
pytest tests/
(2/3) PyPI
In a new terminal, without an activated virtual environment or an env directory:
```shell
prepare a new directory
cd $(mktemp -d --tmpdir mypythonpackage.XXXXXX)
fresh git clone ensures the release has the state of origin/main branch
git clone https://github.com/sverhoeven/my-python-project .
prepare a clean virtual environment and activate it
python3 -m venv env source env/bin/activate
make sure to have a recent version of pip and setuptools
python3 -m pip install --upgrade pip setuptools
install runtime dependencies and publishing dependencies
python3 -m pip install --no-cache-dir . python3 -m pip install --no-cache-dir .[publishing]
clean up any previously generated artefacts
rm -rf mypythonpackage.egg-info rm -rf dist
create the source distribution and the wheel
python3 setup.py sdist bdist_wheel
upload to test pypi instance (requires credentials)
twine upload --repository-url https://test.pypi.org/legacy/ dist/* ```
Visit https://test.pypi.org/project/mypythonpackage and verify that your package was uploaded successfully. Keep the terminal open, we'll need it later.
In a new terminal, without an activated virtual environment or an env directory:
```shell cd $(mktemp -d --tmpdir mypythonpackage-test.XXXXXX)
prepare a clean virtual environment and activate it
python3 -m venv env source env/bin/activate
make sure to have a recent version of pip and setuptools
pip install --upgrade pip setuptools
install from test pypi instance:
python3 -m pip -v install --no-cache-dir \ --index-url https://test.pypi.org/simple/ \ --extra-index-url https://pypi.org/simple mypythonpackage ```
Check that the package works as it should when installed from pypitest.
Then upload to pypi.org with:
```shell
Back to the first terminal,
FINAL STEP: upload to PyPI (requires credentials)
twine upload dist/* ```
(3/3) GitHub
Don't forget to also make a release on GitHub. If your repository uses the GitHub-Zenodo integration this will also trigger Zenodo into making a snapshot of your repository and sticking a DOI on it.
Owner
- Name: Stefan Verhoeven
- Login: sverhoeven
- Kind: user
- Company: Netherlands eScience Center
- Repositories: 51
- Profile: https://github.com/sverhoeven
Citation (CITATION.cff)
# YAML 1.2
---
cff-version: "1.1.0"
title: "my-python-project"
authors:
-
family-names: Smith
given-names: John
orcid: "https://orcid.org/0000-0000-0000-0000"
version: "0.1.0"
repository-code: "https://github.com/sverhoeven/my-python-project"
keywords:
- keyword1
- keyword2
message: "If you use this software, please cite it using these metadata."
license: Apache-2.0
GitHub Events
Total
Last Year
Committers
Last synced: 10 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Stefan Verhoeven | s****n@e****l | 5 |
| NLeSC Python template | n****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 5
- Total pull requests: 0
- Average time to close issues: 16 minutes
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 0.4
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 5
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- github-actions[bot] (5)