File: make_release.rst

package info (click to toggle)
transforms3d 0.4%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,080 kB
  • sloc: python: 5,694; makefile: 103; sh: 25
file content (113 lines) | stat: -rw-r--r-- 3,243 bytes parent folder | download
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
107
108
109
110
111
112
113
.. _release-guide:

**************************************
Guide to making a Transforms3d release
**************************************

A guide for developers who are doing a Transforms3d release

.. _release-checklist:

Release checklist
=================

* Review the open list of `transforms3d issues`_.  Check whether there are
  outstanding issues that can be closed, and whether there are any issues that
  should delay the release.  Label them !

* Review and update the release notes.  Review and update the :file:`Changelog`
  file.  Get a partial list of contributors with something like::

      git shortlog -ns 0.6.0..

  where ``0.6.0`` was the last release tag name.

  Then manually go over ``git shortlog 0.6.0..`` to make sure the release notes
  are as complete as possible and that every contributor was recognized.

* Use the opportunity to update the ``.mailmap`` file if there are any
  duplicate authors listed from ``git shortlog -ns``.

* Add any new authors to the ``AUTHORS`` file.  Add any new entries to the
  ``THANKS`` file.

* Check the copyright years in ``doc/conf.py`` and ``LICENSE``

* If you have travis-ci_ building set up you might want to push the code in its
  current state to a branch that will build, e.g::

    git branch -D pre-release-test # in case branch already exists
    git co -b pre-release-test

* Clean::

    git clean -fxd

* Make sure all tests pass on your local machine (from the Transforms3d root
  directory)::

    pytest --doctest-modules transforms3d

* Run the same tests after installing into a virtualenv, to test that
  installing works correctly::

    mkvirtualenv transforms3d-test
    pip install pytest wheel
    git clean -fxd
    python setup.py install
    mkdir for_test
    cd for_test
    pytest --doctest-modules transforms3d

* Check the documentation Doctests::

    cd doc
    make doctest
    cd ..

* The release should now be ready.

Doing the release
=================

You might want to make tag the release commit on your local machine, push to
pypi_, review, fix, rebase, until all is good.  Then and only then do you push
to upstream on github.

* Make a signed annotated tag for the release with tag of form ``0.6.0``::

    git tag -sm 'Fifth public release' 0.6.0

  Because we're using `versioneer`_ it is the tag which sets the package
  version.

* Once everything looks good, upload the source release to PyPi.  See
  `setuptools intro`_::

    python setup.py sdist
    twine upload -s dist/*

* Remember you'll need your ``~/.pypirc`` file set up right for this to work.
  See `setuptools intro`_.  If you have 2-factor authentication, the file may
  look something like this::

    [pypi]
    username = __token__

* Check how everything looks on Pypi - the description, the packages.  If
  necessary delete the release and try again if it doesn't look right.

* Push the tag with ``git push --tags``

* Upload the docs with::

    pip install -e .  # if you haven't done this already
    pip install -r doc-requirements.txt
    cd doc
    make github

* Announce to the mailing lists.  With fear and trembling.

.. _setuptools intro: http://packages.python.org/an_example_pypi_project/setuptools.html

.. include:: ../links_names.inc