Statistics
| Branch: | Revision:

iof-tools / networkxMiCe / networkx-master / RELEASE.rst @ 5cef0f13

History | View | Annotate | Download (2.83 KB)

1
How to make a new release of ``networkx``
2
=========================================
3

    
4
- Update the release notes:
5

    
6
  1. Review and cleanup ``doc/release/release_dev.rst``,
7

    
8
  2. Fix code in documentation by running
9
     ``cd doc && make doctest``.
10

    
11
  3. Make a list of merges and contributors by running
12
     ``doc/release/contribs.py <tag of previous release>``.
13

    
14
  4. Paste this list at the end of the ``release_dev.rst``. Scan the PR titles
15
     for highlights, deprecations, and API changes, and mention these in the
16
     relevant sections of the notes.
17

    
18
  5. Rename to ``doc/release/release_<major>.<minor>.rst``.
19

    
20
  6. Copy ``doc/release/release_template.rst`` to
21
     ``doc/release/release_dev.rst`` for the next release.
22

    
23
  7. Update ``doc/news.rst``.
24

    
25
- Toggle ``dev = True`` to ``dev = False`` in ``networkx/release.py``.
26

    
27
- Commit changes.
28

    
29
- Add the version number as a tag in git::
30

    
31
   git tag -s [-u <key-id>] networkx-<major>.<minor>
32

    
33
  (If you do not have a gpg key, use -m instead; it is important for
34
  Debian packaging that the tags are annotated)
35

    
36
- Push the new meta-data to github::
37

    
38
   git push --tags upstream master
39

    
40
  (where ``upstream`` is the name of the
41
   ``github.com:networkx/networkx`` repository.)
42

    
43
- Review the github release page::
44

    
45
  https://github.com/networkx/networkx/releases
46

    
47
- Publish on PyPi::
48

    
49
   git clean -fxd
50
   python setup.py sdist --formats=zip
51
   twine upload -s dist/networkx*.zip
52

    
53
- Update documentation on the web:
54
  The documentation is kept in a separate repo: networkx/documentation
55

    
56
  - Wait for the NetworkX Travis Bot to deploy to GitHub Pages
57
  - Sync your branch with the remote repo: ``git pull``.
58
  - Copy the documentation built by Travis.
59
    Assuming you are at the top-level of the ``documentation`` repo::
60

    
61
      cp -a latest networkx-<major>.<minor> 
62
      git add networkx-<major>.<minor>
63
      ln -sfn networkx-<major>.<minor> stable
64
      git commit -m "Add <major>.<minor> docs"
65
      # maybe squash all the Deploy GitHub Pages commits
66
      # git rebase -i HEAD~XX where XX is the number of commits back
67
      # check you didn't break anything
68
      # diff -r latest networkx-<major>.<minor>
69
      # you will then need to force the push so be careful!
70
      git push
71

    
72
 - Increase the version number
73

    
74
  - Toggle ``dev = False`` to ``dev = True`` in ``networkx/release.py``.
75
  - Update ``major`` and ``minor`` in ``networkx/release.py``.
76

    
77
- Update the web frontpage:
78
  The webpage is kept in a separate repo: networkx/website
79

    
80
  - Sync your branch with the remote repo: ``git pull``.
81
    If you try to ``make github`` when your branch is out of sync, it
82
    creates headaches.
83
  - Update ``_templates/sidebar_versions.html``.
84
  - Edit ``_static/docversions.js`` and commit
85
  - Push your changes to the repo.
86
  - Deploy using ``make github``.
87

    
88
- Post release notes on mailing list.
89

    
90
  - networkx-discuss@googlegroups.com