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