@@ -21,9 +21,9 @@ upstream https://github.com/pydata/xarray (push)
21
21
2. Confirm there are no commits on stable that are not yet merged
22
22
([ref](https://github.com/pydata/xarray/pull/4440)):
23
23
` ` ` sh
24
- git merge upstream stable
24
+ git merge upstream/ stable
25
25
` ` `
26
- 2 . Add a list of contributors with:
26
+ 3 . Add a list of contributors with:
27
27
` ` ` sh
28
28
git log " $( git tag --sort=" v:refname" | sed -n ' x;$p' ) .." --format=%aN | sort -u | perl -pe ' s/\n/$1, /'
29
29
` ` `
@@ -35,9 +35,9 @@ upstream https://github.com/pydata/xarray (push)
35
35
` ` ` sh
36
36
git log v{0.X.Y-1}.. --format=%aN | sort -u | wc -l
37
37
` ` `
38
- 3 . Write a release summary: ~ 50 words describing the high level features. This
38
+ 4 . Write a release summary: ~ 50 words describing the high level features. This
39
39
will be used in the release emails, tweets, GitHub release notes, etc.
40
- 4 . Look over whats-new.rst and the docs. Make sure " What's New" is complete
40
+ 5 . Look over whats-new.rst and the docs. Make sure " What's New" is complete
41
41
(check the date! ) and add the release summary at the top.
42
42
Things to watch out for:
43
43
- Important new features should be highlighted towards the top.
@@ -46,46 +46,48 @@ upstream https://github.com/pydata/xarray (push)
46
46
due to a bad merge. Check for these before a release by using git diff,
47
47
e.g., ` git diff v{0.X.Y-1} whats-new.rst` where {0.X.Y-1} is the previous
48
48
release.
49
- 5. If possible, open a PR with the release summary and whatsnew changes.
50
- 6. After merging, again ensure your master branch is synced to upstream:
49
+ 6. Open a PR with the release summary and whatsnew changes; in particular the
50
+ release headline should get feedback from the team on what' s important to include.
51
+ 7. After merging, again ensure your master branch is synced to upstream:
51
52
```sh
52
53
git pull upstream master
53
54
```
54
- 7 . If you have any doubts, run the full test suite one final time!
55
+ 8 . If you have any doubts, run the full test suite one final time!
55
56
```sh
56
57
pytest
57
58
```
58
- 8. Check that the ReadTheDocs build is passing.
59
- 9. On the master branch, commit the release in git:
60
- ` ` ` sh
61
- git commit -am ' Release v{0.X.Y}'
62
- ` ` `
59
+ 9. Check that the ReadTheDocs build is passing.
63
60
10. Tag the release:
64
61
```sh
65
62
git tag -a v{0.X.Y} -m ' v{0.X.Y}'
66
63
```
67
- 11. Build source and binary wheels for PyPI :
64
+ 11. Ensure the dependencies for building are installed :
68
65
```sh
69
- git clean -xdf # this deletes all uncommitted changes!
66
+ pip install setuptools-scm twine wheel
67
+ ```
68
+ 12. Build source and binary wheels for PyPI:
69
+ ```sh
70
+ git clean -xdf # This removes any untracked files!
71
+ git restore -SW . # This removes any tracked changes!
70
72
python setup.py bdist_wheel sdist
71
73
```
72
- 12 . Use twine to check the package build:
74
+ 13 . Use twine to check the package build:
73
75
```sh
74
76
twine check dist/xarray-{0.X.Y}*
75
77
```
76
- 13 . Use twine to register and upload the release on PyPI. Be careful, you can' t
78
+ 14 . Use twine to register and upload the release on PyPI. Be careful, you can' t
77
79
take this back!
78
80
` ` ` sh
79
81
twine upload dist/xarray-{0.X.Y}*
80
82
` ` `
81
83
You will need to be listed as a package owner at
82
84
< https://pypi.python.org/pypi/xarray> for this to work.
83
- 14 . Push your changes to master:
85
+ 15 . Push your changes to master:
84
86
` ` ` sh
85
87
git push upstream master
86
88
git push upstream --tags
87
89
` ` `
88
- 15 . Update the stable branch (used by ReadTheDocs) and switch back to master:
90
+ 16 . Update the stable branch (used by ReadTheDocs) and switch back to master:
89
91
` ` ` sh
90
92
git switch stable
91
93
git rebase master
@@ -95,18 +97,22 @@ upstream https://github.com/pydata/xarray (push)
95
97
It' s OK to force push to `stable` if necessary. (We also update the stable
96
98
branch with `git cherry-pick` for documentation only fixes that apply the
97
99
current released version.)
98
- 16 . Add a section for the next release {0.X.Y+1} to doc/whats-new.rst:
100
+ 17 . Add a section for the next release {0.X.Y+1} to doc/whats-new.rst:
99
101
```rst
100
102
.. _whats-new.{0.X.Y+1}:
101
103
102
104
v{0.X.Y+1} (unreleased)
103
105
---------------------
104
106
107
+ New Features
108
+ ~~~~~~~~~~~~
109
+
110
+
105
111
Breaking changes
106
112
~~~~~~~~~~~~~~~~
107
113
108
114
109
- New Features
115
+ Deprecations
110
116
~~~~~~~~~~~~
111
117
112
118
@@ -120,20 +126,21 @@ upstream https://github.com/pydata/xarray (push)
120
126
121
127
Internal Changes
122
128
~~~~~~~~~~~~~~~~
129
+
123
130
```
124
- 17 . Commit your changes and push to master again:
131
+ 18 . Commit your changes and push to master again:
125
132
```sh
126
133
git commit -am ' New whatsnew section'
127
134
git push upstream master
128
135
```
129
136
You' re done pushing to master!
130
- 18 . Issue the release on GitHub. Click on "Draft a new release" at
137
+ 19 . Issue the release on GitHub. Click on " Draft a new release" at
131
138
< https://github.com/pydata/xarray/releases> . Type in the version number
132
139
and paste the release summary in the notes.
133
- 19 . Update the docs. Login to <https://readthedocs.org/projects/xray/versions/>
140
+ 20 . Update the docs. Login to < https://readthedocs.org/projects/xray/versions/>
134
141
and switch your new release tag (at the bottom) from " Inactive" to " Active" .
135
142
It should now build automatically.
136
- 20 . Issue the release announcement to mailing lists & Twitter. For bug fix releases, I
143
+ 21 . Issue the release announcement to mailing lists & Twitter. For bug fix releases, I
137
144
usually only email
[email protected] . For major/feature releases, I will email a broader
138
145
list (no more than once every 3-6 months):
139
146
0 commit comments