Skip to content

Commit 18c9d33

Browse files
committed
Add: initial new tutorial and images
1 parent 68d1803 commit 18c9d33

8 files changed

+449
-42
lines changed

Diff for: images/tutorials/environment-package-install.png

62.5 KB
Loading

Diff for: images/tutorials/package-components.png

300 KB
Loading

Diff for: images/tutorials/packaging-101-outline.png

295 KB
Loading

Diff for: images/tutorials/packaging-lifecycle.png

306 KB
Loading

Diff for: images/tutorials/publish-package-pypi-conda.png

164 KB
Loading

Diff for: images/tutorials/toolbox.png

1.66 MB
Loading

Diff for: index.md

+91-42
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,93 @@
1-
# pyOpenSci Python Open Source Package Development Guide
1+
# pyOpenSci Python Package Guide
2+
3+
Demystifying the Python packaging ecosystem with recommendations for
4+
scientists to follow.
5+
6+
7+
::::{grid} 2
8+
:reverse:
9+
10+
:::{grid-item}
11+
:columns: 4
12+
:class: sd-m-auto
13+
14+
:::
15+
16+
:::{grid-item}
17+
:columns: 8
18+
:class: sd-fs-3
19+
20+
```{button-link} https://www.pyopensci.org/about-peer-review/
21+
:color: primary
22+
:class: sd-rounded-pill float-left
23+
Learn about our open peer review process
24+
```
25+
26+
```{only} html
27+
![GitHub release (latest by date)](https://img.shields.io/github/v/release/pyopensci/python-package-guide?color=purple&display_name=tag&style=plastic)
28+
[![](https://img.shields.io/github/stars/pyopensci/python-package-guide?style=social)](https://github.com/pyopensci/contributing-guide)
29+
[![DOI](https://zenodo.org/badge/556814582.svg)](https://zenodo.org/badge/latestdoi/556814582)
30+
```
31+
32+
:::
33+
::::
34+
35+
<!-- I think this is the end of the header - below begins the next grid-->
36+
37+
::::{grid} 1 1 2 2
38+
:class-container: text-center
39+
:gutter: 3
40+
41+
:::{grid-item-card}
42+
:link: tutorials/intro
43+
:link-type: doc
44+
45+
✨ Just getting started? ✨
46+
^^^
47+
48+
If you are new to packaging or just want an opinionated, end-to-end
49+
way to create a package, check out our tutorials
50+
:::
51+
52+
:::{grid-item-card}
53+
:link: package-structure-code/intro
54+
:link-type: doc
55+
56+
✨ Want to better understand the ecosystem? ✨
57+
^^^
58+
If you are looking to better understand the tools and options in the
59+
diverse Python packaging ecosystem, then this section is for you. Here
60+
you will learn about the most commonly used tools in the ecosystem and
61+
also tools and processes that our community recommends.
62+
:::
63+
64+
:::{grid-item-card}
65+
:link: CONTRIBUTING
66+
:link-type: doc
67+
68+
✨ Want to contribute? ✨
69+
^^^
70+
We welcome contributions to this guide. Learn more about how you can
71+
contribute.
72+
:::
73+
::::
74+
75+
## About
76+
77+
This guide is designed to guide you through your Python packaging experience.
78+
79+
It does several things:
80+
81+
1. it provides an overview of the various elements of a python package
82+
2. it provides and overview of tools to create python packages and recommends best practices
83+
3. it provides end-to-end tutorials to get you on your way creating a package
84+
85+
```{toctree}
86+
:hidden:
87+
:caption: Tutorials
88+
89+
Tutorials <tutorials/intro>
90+
```
291

392
```{toctree}
493
:hidden:
@@ -23,22 +112,14 @@ Packaging <package-structure-code/intro>
23112
CI & Tests <ci-and-testing/intro>
24113
```
25114

26-
<!-- Github community standards
27-
https://github.com/pyOpenSci/python-package-guide/community -->
28-
29-
## Welcome, Python open source enthusiast!
30-
31-
Here you will find guidelines for what we look for in your scientific
32-
Python package when reviewing. You will also find best practice recommendations and curated lists of community resources surrounding packaging and package documentation.
33-
34115
### pyOpenSci's packaging goals
35116

36117
Our goal is to help the
37118
community make decisions around how to create scientific Python packages. We are working towards a shared vision of packaging that helps users better understand where to start.
38119

39120
### How this guide is created
40121

41-
This guide is created by pyOpenSci through an extensive review process. Each page in the guide has been reviewed by experts in the broader Python packaging landscape including people from :
122+
This guide is created by pyOpenSci through an extensive review process. Each page in the guide has been reviewed by experts in the broader Python packaging landscape including people from:
42123

43124
- conda & conda-forge
44125
- the python packaging authority
@@ -152,35 +233,3 @@ Good meets the requirements. Going beyond the minimum can make package maintenan
152233

153234
This guide is now a work in progress. If you have ideas of things you'd like
154235
to see here, [we invite you to open an issue on GitHub that details any changes or additions that you'd like to see.](https://github.com/pyOpenSci/python-package-guide/issues).
155-
156-
<!--
157-
COMMENTED OUT TEXT TO BE MOVED
158-
159-
160-
# TODO LINK TO CI BUILDS FOR Documentation>
161-
Maybe we can curate a list of CI builds that people can use??? or is that moving too close to a cookie cutter situation
162-
163-
The text below is being moved to the packaging infrastructure section which
164-
doesn't exist YET... but will soon .
165-
pyOpenSci packages must:
166-
167-
- Contain full documentation for any user-facing functions.
168-
- Have a test suite that covers the major functionality of the package.
169-
- Use continuous integration.
170-
- Use an OSI approved software license.
171-
172-
173-
## Other recommendations
174-
### Python version support
175-
You should always be explicit about which versions of Python your package supports.
176-
Keeping compatibility with old Python versions can be difficult as functionality changes.
177-
A good rule of thumb is that the package should support, at least,
178-
the latest three Python versions (e.g., 3.8, 3.7, 3.6).
179-
180-
### Code Style
181-
pyOpenSci encourages authors to consult [PEP 8](https://www.python.org/dev/peps/pep-0008/) for information on how to style your code.
182-
183-
### Linting
184-
An automatic linter (e.g. flake8) can help ensure your code is clean and free of syntax errors. These can be integrated with your CI.
185-
186-
-->

0 commit comments

Comments
 (0)