@@ -2,7 +2,7 @@ A Simple Python Project Skeleton
2
2
================================
3
3
This repo attempts to standardize our python repositories using modern python
4
4
packaging and configuration techniques. Using this `blog post `_ as inspiration, this
5
- repository will serve as the base for all new python projects and will be adopted to all
5
+ repository will serve as the base for all new python projects and will be adopted to all
6
6
our existing ones as well.
7
7
8
8
.. _blog post : https://blog.jaraco.com/a-project-skeleton-for-python-projects/
@@ -33,7 +33,6 @@ Update an existing project
33
33
34
34
This is also the workflow to use when updating the skeleton files in any given repository.
35
35
36
-
37
36
Customizing
38
37
-----------
39
38
@@ -42,6 +41,72 @@ You typically want to perform these customizations:
42
41
- remove or update the src/README.rst and tests/README.rst files
43
42
- check the configure and configure.bat defaults
44
43
44
+ Initializing a project
45
+ ----------------------
46
+
47
+ All projects using the skeleton will be expected to pull all of it dependencies
48
+ from thirdparty.aboutcode.org/pypi or the local thirdparty directory, using
49
+ requirements.txt and/or requirements-dev.txt to determine what version of a
50
+ package to collect. By default, PyPI will not be used to find and collect
51
+ packages from.
52
+
53
+ In the case where we are starting a new project where we do not have
54
+ requirements.txt and requirements-dev.txt and whose dependencies are not yet on
55
+ thirdparty.aboutcode.org/pypi, we run the following command after adding and
56
+ customizing the skeleton files to your project:
57
+
58
+ .. code-block :: bash
59
+
60
+ ./configure --init
61
+
62
+ This will initialize the virtual environment for the project, pull in the
63
+ dependencies from PyPI and add them to the virtual environment.
64
+
65
+ Generating requirements.txt and requirements-dev.txt
66
+ ----------------------------------------------------
67
+
68
+ After the project has been initialized, we can generate the requirements.txt and
69
+ requirements-dev.txt files.
70
+
71
+ Ensure the virtual environment is enabled.
72
+
73
+ To generate requirements.txt:
74
+
75
+ .. code-block :: bash
76
+
77
+ python etc/scripts/gen_requirements.py -s tmp/lib/python< version> /site-packages/
78
+
79
+ Replace \< version\> with the version number of the Python being used.
80
+
81
+ To generate requirements-dev.txt after requirements.txt has been generated:
82
+
83
+ .. code-block :: bash
84
+ ./configure --dev
85
+ source tmp/bin/activate
86
+ python etc/scripts/gen_requirements_dev.py -s tmp/lib/python< version> /site-packages/
87
+
88
+ Collecting and generating ABOUT files for dependencies
89
+ ------------------------------------------------------
90
+
91
+ Once we have requirements.txt and requirements-dev.txt, we can fetch the project
92
+ dependencies as wheels and generate ABOUT files for them:
93
+
94
+ .. code-block :: bash
95
+
96
+ python etc/scripts/bootstrap.py -r requirements.txt -r requirements-dev.txt --with-deps
97
+
98
+ There may be issues with the generated ABOUT files, which will have to be
99
+ corrected. You can check to see if your corrections are valid by running:
100
+
101
+ .. code-block :: bash
102
+
103
+ python etc/scripts/check_thirdparty.py -d thirdparty
104
+
105
+ Once the wheels are collected and the ABOUT files are generated and correct,
106
+ upload them to thirdparty.aboutcode.org/pypi by placing the wheels and ABOUT
107
+ files from the thirdparty directory to the pypi directory at
108
+ https://github.com/nexB/thirdparty-packages
109
+
45
110
46
111
Release Notes
47
112
-------------
0 commit comments