You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Added some additional info about packaging and dep management options
* A note about containers
* Updated changelog
* Fix typo
* Added python 3.12 to github checks
* Tagged version 2.0.0 in change log and added python 3.12 to github workflow check
Copy file name to clipboardexpand all lines: CHANGELOG.md
+5-1
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
7
7
You should also add project tags for each release in Github, see [Managing releases in a repository](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository).
8
8
9
-
## [Unreleased]
9
+
## [2.0.0] - 2024-05-29
10
10
### Added
11
11
- Added example auto-built Sphinx documentation in the `docs` folder
12
12
- Github workflow for running ruff linter
13
+
- A note about conda dependencies to README
14
+
- A note about using docker containers to README
15
+
- Ruff as a linter for development
13
16
### Changed
14
17
- All build and packaging switched to use only pyproject.toml
Copy file name to clipboardexpand all lines: README.md
+9-4
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ This template draws a lot of inspiration from [Cookiecutter Data Science](https:
9
9
# Getting Started
10
10
## Installing Dependencies and Packages
11
11
Use these steps for setting up a development environment to install and work with code in this template:
12
-
1) Set up a Python 3 virtual environment using [Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html#) or [Virtualenv](https://virtualenv.pypa.io/en/latest/index.html). Read [Python Virtual Environments: A Primer](https://realpython.com/python-virtual-environments-a-primer/#the-virtualenv-project) for details on how to get started with virtual environments and why you need them.
12
+
1) Set up a Python 3 virtual environment using [Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html#) or [Virtualenv](https://virtualenv.pypa.io/en/latest/index.html). Read [Python Virtual Environments: A Primer](https://realpython.com/python-virtual-environments-a-primer/#the-virtualenv-project) for details on how to get started with virtual environments and why you need them. For a _really detailed_ explanation, see [An unbiased evaluation of environment management and packaging tools](https://alpopkes.com/posts/python/packaging_tools/).
13
13
2) Activate your virtual environment.
14
14
15
15
3) Install the package.
@@ -51,11 +51,17 @@ Collecting numpy
51
51
52
52
## Specifying Requirements
53
53
In order for users to install your package and all the libraries it depends on by running `pip install`, you need to provide a `pyproject.toml` file. This has two important sections:
54
-
-`project`: List project metadata and version information and all library requirements/dependencies, including for testing or development environments. This is the main file you will work with and add requirements to.
55
-
-`build-system`: Define the build tool that is used to package and distribute your code. For this project, we use [SetupTools](https://setuptools.pypa.io/en/latest/userguide/quickstart.html), but we also recommend [Poetry](https://python-poetry.org/docs/).
54
+
-`project`: List project metadata and version information and all library requirements/dependencies, including for testing or development environments. This is the main file you will work with and add requirements to. Some dependencies
55
+
-`build-system`: Define the build tool that is used to package and distribute your code. For this project, we use [SetupTools](https://setuptools.pypa.io/en/latest/userguide/quickstart.html).
56
56
57
57
If you'd like to learn more about python packaging, refer to [the Python Packaging User Guide](https://packaging.python.org/en/latest/) or [PEP 517](https://peps.python.org/pep-0517/#build-requirements).
58
58
59
+
### Requirements via conda environment files
60
+
[Anaconda](https://www.anaconda.com/download/) and its bare bones counterpart, [Miniconda](https://docs.anaconda.com/free/miniconda/index.html), are especially useful if your project depends on libraries that are difficult to install in the standard pythonic way, such as [GPU libraries](https://docs.anaconda.com/free/working-with-conda/packages/gpu-packages/). If this is the case, you should also share a [Conda environment file](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-file-manually) with your code. The conda virtual environment will need to be created and activated before any `pip install` steps. Installations with conda dependencies are usually a little more complicated, so make sure you include step-by-step instructions in documentation.
61
+
62
+
### Containerized applications
63
+
In cases when its important that your software work exactly the same on every operating system or you want to abstract away difficult installation steps for end user, you can consider creating a [Docker container](https://www.docker.com/resources/what-container/). This is often appropriate deploying services in the cloud or providing an application for a tech-savvy person to use on their own. However, it's not necessary for most of our projects.
64
+
59
65
60
66
## Directory Structure
61
67
So what does each file in this repository do?
@@ -111,7 +117,6 @@ The README, CHANGELOG and docstrings are just as important.
111
117
Read [Real Python's Documenting Python Code: A Complete Guide](https://realpython.com/documenting-python-code/) for more ideas about effectively documenting code. The `.md` files are written using [Markdown](https://www.markdownguide.org/), a handy formatting language that is automatically rendered in Github.
112
118
113
119
# Tests
114
-
115
120
Although it's [impossible to generally prove that your code is bug-free](https://en.wikipedia.org/wiki/Undecidable_problem), automated testing is a valuable tool. It provides:
116
121
- Proof that your code works as intended in most common examples and important edge cases
117
122
- Instant feedback on whether changes to the code broke its functionality
0 commit comments