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
Copy file name to clipboardexpand all lines: skeleton.md
+15-15
Original file line number
Diff line number
Diff line change
@@ -2,9 +2,9 @@
2
2
3
3
This project is merged with [skeleton](https://github.com/jaraco/skeleton). What is skeleton? It's the scaffolding of a Python project jaraco [introduced in his blog](https://blog.jaraco.com/a-project-skeleton-for-python-projects/). It seeks to provide a means to re-use techniques and inherit advances when managing projects for distribution.
4
4
5
-
## An SCMManaged Approach
5
+
## An SCM-Managed Approach
6
6
7
-
While maintaining dozens of projects in PyPI, jaraco derives best practices for project distribution and publishes them in the [skeleton repo](https://github.com/jaraco/skeleton), a git repo capturing the evolution and culmination of these best practices.
7
+
While maintaining dozens of projects in PyPI, jaraco derives best practices for project distribution and publishes them in the [skeleton repo](https://github.com/jaraco/skeleton), a Git repo capturing the evolution and culmination of these best practices.
8
8
9
9
It's intended to be used by a new or existing project to adopt these practices and honed and proven techniques. Adopters are encouraged to use the project directly and maintain a small deviation from the technique, make their own fork for more substantial changes unique to their environment or preferences, or simply adopt the skeleton once and abandon it thereafter.
10
10
@@ -38,24 +38,24 @@ The `--allow-unrelated-histories` is necessary because the history from the skel
38
38
39
39
## Updating
40
40
41
-
Whenever a change is needed or desired for the general technique for packaging, it can be made in the skeleton project and then merged into each of the derived projects as needed, recommended before each release. As a result, features and best practices for packaging are centrally maintained and readily trickle into a whole suite of packages. This technique lowers the amount of tedious work necessary to create or maintain a project, and coupled with other techniques like continuous integration and deployment, lowers the cost of creating and maintaining refined Python projects to just a few, familiar git operations.
41
+
Whenever a change is needed or desired for the general technique for packaging, it can be made in the skeleton project and then merged into each of the derived projects as needed, recommended before each release. As a result, features and best practices for packaging are centrally maintained and readily trickle into a whole suite of packages. This technique lowers the amount of tedious work necessary to create or maintain a project, and coupled with other techniques like continuous integration and deployment, lowers the cost of creating and maintaining refined Python projects to just a few, familiar Git operations.
42
42
43
43
Thereafter, the target project can make whatever customizations it deems relevant to the scaffolding. The project may even at some point decide that the divergence is too great to merit renewed merging with the original skeleton. This approach applies maximal guidance while creating minimal constraints.
44
44
45
45
# Features
46
46
47
47
The features/techniques employed by the skeleton include:
48
48
49
-
- PEP 517/518based build relying on setuptools as the build tool
50
-
-setuptools declarative configuration using setup.cfg
49
+
- PEP 517/518-based build relying on Setuptools as the build tool
50
+
-Setuptools declarative configuration using setup.cfg
51
51
- tox for running tests
52
-
- A README.rst as reStructuredText with some popular badges, but with readthedocs and appveyor badges commented out
52
+
- A README.rst as reStructuredText with some popular badges, but with Read the Docs and AppVeyor badges commented out
53
53
- A CHANGES.rst file intended for publishing release notes about the project
54
-
- Use of [black](https://black.readthedocs.io/en/stable/) for code formatting (disabled on unsupported Python 3.5 and earlier)
54
+
- Use of [Black](https://black.readthedocs.io/en/stable/) for code formatting (disabled on unsupported Python 3.5 and earlier)
55
55
56
56
## Packaging Conventions
57
57
58
-
A pyproject.toml is included to enable PEP 517 and PEP 518 compatibility and declares the requirements necessary to build the project on setuptools (a minimum version compatible with setup.cfg declarative config).
58
+
A pyproject.toml is included to enable PEP 517 and PEP 518 compatibility and declares the requirements necessary to build the project on Setuptools (a minimum version compatible with setup.cfg declarative config).
59
59
60
60
The setup.cfg file implements the following features:
61
61
@@ -92,14 +92,14 @@ A pytest.ini is included to define common options around running tests. In parti
92
92
93
93
- rely on default test discovery in the current directory
94
94
- avoid recursing into common directories not containing tests
95
-
- run doctests on modules and invoke flake8 tests
96
-
- in doctests, allow unicode literals and regular literals to match, allowing for doctests to run on Python 2 and 3. Also enable ELLIPSES, a default that would be undone by supplying the prior option.
95
+
- run doctests on modules and invoke Flake8 tests
96
+
- in doctests, allow Unicode literals and regular literals to match, allowing for doctests to run on Python 2 and 3. Also enable ELLIPSES, a default that would be undone by supplying the prior option.
97
97
- filters out known warnings caused by libraries/functionality included by the skeleton
98
98
99
-
Relies a .flake8 file to correct some default behaviors:
99
+
Relies on a .flake8 file to correct some default behaviors:
100
100
101
101
- disable mutually incompatible rules W503 and W504
102
-
- support for black format
102
+
- support for Black format
103
103
104
104
## Continuous Integration
105
105
@@ -116,10 +116,10 @@ Features include:
116
116
117
117
### Travis CI
118
118
119
-
[Travis-CI](https://travis-ci.org) is configured through .travis.yml. Any new project must be enabled either through their web site or with the `travis enable` command.
119
+
[TravisCI](https://travis-ci.org) is configured through .travis.yml. Any new project must be enabled either through their web site or with the `travis enable` command.
120
120
121
121
Features include:
122
-
- test against 3
122
+
- test against Python 3
123
123
- run on Ubuntu Xenial
124
124
- correct for broken IPv6
125
125
@@ -148,7 +148,7 @@ For more details, see [this blog entry](https://blog.jaraco.com/configuring-azur
148
148
149
149
Documentation is automatically built by [Read the Docs](https://readthedocs.org) when the project is registered with it, by way of the .readthedocs.yml file. To test the docs build manually, a tox env may be invoked as `tox -e docs`. Both techniques rely on the dependencies declared in `setup.cfg/options.extras_require.docs`.
150
150
151
-
In addition to building the sphinx docs scaffolded in `docs/`, the docs build a `history.html` file that first injects release dates and hyperlinks into the CHANGES.rst before incorporating it as history in the docs.
151
+
In addition to building the Sphinx docs scaffolded in `docs/`, the docs build a `history.html` file that first injects release dates and hyperlinks into the CHANGES.rst before incorporating it as history in the docs.
0 commit comments