1
+ # README for MS Windows Users
1
2
3
+ ## Preparing for Your First Release
2
4
3
- install Docker
5
+ Install Docker
4
6
5
- ensure the following repositories are forked to your GitHub account
7
+ Ensure the following repositories are forked to your GitHub account
6
8
- https://github.com/pandas-dev/pandas-website
7
9
- https://github.com/conda-forge/pandas-feedstock
8
10
- https://github.com/MacPython/pandas-wheels
9
11
- https://github.com/pandas-dev/pandas
10
12
11
-
12
13
Open an Anaconda Prompt
14
+ <!--
13
15
TODO: resolve git bash Docker volume issues so that make can be used on host
16
+ -->
14
17
18
+ Build a Docker image with the conda base environment configured and repositories initialized.
15
19
16
- build a Docker image with the conda base environment configured and repositories initialized.
17
-
18
- change GH_USERNAME to your Github username
20
+ ** change GH_USERNAME to your Github username**
19
21
20
22
```
21
23
docker build -t pandas-release --build-arg GH_USERNAME=simonjayhawkins -f docker-files/windows/Dockerfile .
22
24
```
23
25
24
- next we will prepare a Docker container for interactive use during the release process and copy the repositories
26
+ ## Preparing the Release Environment for a New Release
27
+
28
+ Next we will prepare a Docker container for interactive use during the release process and copy the repositories
25
29
from the Docker image into a Docker volume for building the distribution and testing.
26
30
27
- to start with a clean volume (after a previous release)
31
+ To start with a clean volume. (after a previous release)
28
32
29
33
```
30
34
docker volume rm pandas-release
31
35
```
32
36
33
- change TAG to the release version
34
-
37
+ ** change TAG to the release version**
35
38
```
36
39
docker run -it --env TAG=v1.0.5 --name=pandas-release -v pandas-release:/pandas-release pandas-release /bin/bash
37
40
```
38
41
39
- the Docker release container should be now be running
42
+ The Docker release container should be now be running.
40
43
41
- make sure the repos are up-to-date
44
+ Make sure the repos are up-to-date
45
+ <!--
42
46
TODO: also make sure conda environment is up-to-date and pandas-release repo is up-to-date if
43
47
re-using an older Docker image
44
-
48
+ -->
45
49
```
46
50
make update-repos
47
51
```
48
52
49
- Tag the release (This doesn't push the tag)
53
+ Tag the release. (This doesn't push the tag)
50
54
51
55
```
52
56
make tag
53
57
```
54
58
55
- stop the container
59
+ Stop the container.
56
60
```
57
61
exit
58
62
```
59
63
60
- create the Docker image for the sdist build, pip test and conda test containers
61
- TODO: maybe update the image with apt-get for cached build
64
+ ## Preparing the Build and Test Environment
65
+
62
66
67
+ Create the Docker image for the sdist build, pip test and conda test containers
68
+ <!--
69
+ TODO: maybe update the image with apt-get for cached build
70
+ -->
63
71
```
64
72
docker build -t pandas-build .
65
73
```
66
74
67
- build the sdist
68
-
75
+ ## Build the sdist
76
+ <!--
69
77
TODO: some of the next steps are repetative. set WORKDIR and symlink to /pandas in pandas-build Docker image instead
70
78
TODO: add container name (as in Makefile) and do not destroy container on exit
71
-
79
+ -->
72
80
```
73
81
docker run -it --rm -v pandas-release:/pandas-release pandas-build /bin/bash
74
82
@@ -81,10 +89,13 @@ cd pandas-release/
81
89
exit
82
90
```
83
91
84
- pip tests
85
-
92
+ ## Pip Tests
93
+ <!--
86
94
TODO: avoid need to pass explicit filename below
87
95
TODO: add container name (as in Makefile) and do not destroy container on exit
96
+ -->
97
+
98
+ ** change filename to the release version**
88
99
89
100
```
90
101
docker run -it --rm -v pandas-release:/pandas-release pandas-build /bin/bash
@@ -99,10 +110,12 @@ exit
99
110
100
111
```
101
112
102
- conda tests
103
-
113
+ ## Conda Tests
114
+ <!--
104
115
TODO: add container name (as in Makefile) and do not destroy container on exit
105
116
TODO: avoid need to re-type version below
117
+ -->
118
+ ** change PANDAS_VERSION to the release version**
106
119
107
120
```
108
121
docker run -it --rm --env PANDAS_VERSION=1.0.5 -v pandas-release:/pandas-release pandas-build /bin/bash
@@ -117,35 +130,47 @@ exit
117
130
118
131
```
119
132
120
- copy the sdist file from the Docker volume to the local host
133
+ ## Copy the sdist File from the Docker Volume to the Local Host.
134
+ <!--
121
135
TODO: avoid need to enter specific filename below (maybe just copy contents of dist directory instead)
136
+ -->
137
+ ** change filename to the release version**
122
138
123
139
```
124
140
docker run -t --rm -v %cd%:/local -v pandas-release:/pandas-release pandas-release /bin/bash -c "cp /pandas-release/pandas/dist/pandas-1.0.5.tar.gz /local/"
125
141
```
126
142
127
- Push the tag. No going back now.
143
+ ## Push the Tag.
128
144
129
- restart the release container
145
+ ** No going back now. **
130
146
147
+ Restart the release container.
148
+ <!--
149
+ TODO: does this need to be in interactive mode
150
+ -->
131
151
```
132
152
docker start pandas-release -i
133
153
134
- ...
154
+ make push-tag
155
+ ```
156
+
157
+ ## Create New Branch
158
+ (not needed for Patch release)
135
159
136
160
On pandas you should also now create and tag a new branch, so
137
161
138
162
...
139
- ```
163
+
164
+ ## Create a Release
140
165
141
166
Now manually create a release https://github.com/pandas-dev/pandas/releases
142
167
143
168
Make sure to upload the sdist as the "binary". Conda-forge uses it.
144
169
145
170
146
- Start the binary builds .
171
+ ## Start the Binary Builds .
147
172
148
- restart the release container
173
+ Restart the release container.
149
174
150
175
```
151
176
docker start pandas-release -i
@@ -162,17 +187,11 @@ Open PRs for each of those.
162
187
Note that ` make wheels ` actually pushes a job to MacPython to produce wheels which we will download later.
163
188
164
189
165
- Docs. You can cheat and re-tag / rebuild these if needed.
166
-
167
- <!-- doc:
168
- docker run -it \
169
- --name=pandas-docs \
170
- -v ${CURDIR}/pandas:/pandas \
171
- -v ${CURDIR}/scripts/build-docs.sh:/build-docs.sh \
172
- pandas-docs \
173
- /build-docs.sh -->
174
-
190
+ ## Build the Docs.
191
+ You can cheat and re-tag / rebuild these if needed.
192
+ <!--
175
193
TODO build an intermediate doc image (and why pandas conda env not in Docker image?)
194
+ -->
176
195
```
177
196
docker run -it --name=pandas-docs -v pandas-release:/pandas-release pandas-docs /bin/bash
178
197
@@ -192,7 +211,7 @@ conda env create --file=/pandas/environment.yml --name=pandas
192
211
exit
193
212
```
194
213
195
- copy the built doc files to host and manually inspect html and pdf docs.
214
+ Copy the built doc files to host and manually inspect html and pdf docs.
196
215
197
216
```
198
217
docker run -it --rm -v %cd%:/local -v pandas-release:/pandas-release pandas-release /bin/bash -c "cp -r /pandas-release/pandas/doc/build/ /local/pandas-docs"
0 commit comments