blob: 57172a002c76acf857f582d2f0be06189cd9631a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
## NOTICE
this is not accurate anymore and needs to be reworked.
## Release instructions
When releasing a new version, the following steps should be taken:
1. Make sure all automated tests pass.
2. Make sure the package metadata in `setup.py` is up-to-date. You can
verify the information by re-generating the egg info:
```
python setup.py egg_info
```
and inspecting `src/pysaml2.egg-info/PKG-INFO`. You should also make sure
that the long description renders as valid reStructuredText. You can
do this by using the `rst2html.py` utility from [docutils]:
```
python setup.py --long-description | rst2html > test.html
```
If this will produce warning or errors, PyPI will be unable to render
the long description nicely. It will treat it as plain text instead.
3. Update the version in the [VERSION] file and report the changes in
[CHANGELOG.md] and commit the changes.:
```
git add CHANGELOG.md
git add VERSION
git commit -v -s -m "Release version X.Y.Z"
```
4. Create a release [branch]:
```
git branch vX.Y.Z
```
5. Create a release [tag]:
```
git tag -a -s vX.Y.Z -m "Version X.Y.Z"
```
6. Push these changes to Github:
```
git push --follow-tags origin vX.Y.Z
git push --follow-tags origin vX.Y.Z:vX.Y.Z
```
7. Create a source and wheel distribution and upload it to PyPI:
generate a source and wheel distribution at once
```
python setup.py sdist bdist_wheel
```
generated files are under dist/
```
ls dist/
```
upload release on test.pypi.org
```
twine upload --repository-url https://test.pypi.org/legacy/ dist/pysaml2-X.Y.Z*
```
then, upload release on official pypi.org
```
twine upload dist/pysaml2-X.Y.Z*
```
8. Upload the documentation to PyPI. First you need to generate the html
version of the documentation:
```
cd docs/
make clean
make html
cd _build/html
zip -r pysaml2-docs.zip *
```
Submit the generated pysaml2-docs.zip file.
9. Send an email to the pysaml2 list announcing this release
**Important:** Once released to PyPI or any other public download location,
a released egg may *never* be removed, even if it has proven to be a faulty
release ("brown bag release"). In such a case it should simply be superseded
immediately by a new, improved release.
[VERSION]: https://github.com/IdentityPython/pysaml2/blob/master/VERSION
[CHANGELOG.md]: https://github.com/IdentityPython/pysaml2/blob/master/CHANGELOG.md
[docutils]: http://docutils.sourceforge.net/
[branch]: https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell
[tag]: https://git-scm.com/book/en/v2/Git-Basics-Tagging#_annotated_tags
|