summaryrefslogtreecommitdiff
path: root/RELEASE.md
blob: fc29a18a981f2d7cd5599bb966a4957c2dcdf0ed (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
## Release instructions

When releasing a new version, the following steps should be taken:

1. Make sure the package metadata in `pyproject.toml` is up-to-date.

    ```
    poetry check
    ```

2. Make sure all automated tests pass:

    ```
    poetry run pytest
    ```

3. Bump the version of the package

    ```
    poetry version -- X.Y.Z
    ```

4. Update the [CHANGELOG.md]

    ```
    git add CHANGELOG.md
    ```

5. Commit and sign the changes:

    ```
    git add -u
    git commit -v -s -m "Release version X.Y.Z"
    ```

6. Create a signed release [tag]:

    ```
    git tag -a -s vX.Y.Z -m "Version X.Y.Z"
    ```

7. Push the changes and the release to Github:

   ```
   git push --follow-tags
   ```

8. Publish the release on 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*
   ```

9. Send an email to the pysaml2 list announcing this 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