Skip to content

Commit

Permalink
Merge pull request #22 from jarrodmillman/release-notes
Browse files Browse the repository at this point in the history
Release notes
  • Loading branch information
jarrodmillman committed Apr 2, 2018
2 parents 1813d40 + 14f0cf1 commit 485f0ab
Show file tree
Hide file tree
Showing 10 changed files with 248 additions and 2 deletions.
2 changes: 1 addition & 1 deletion INSTALL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Install the development version
-------------------------------

If you have `Git <https://git-scm.com/>`_ installed on your system, it is also
possible to install the development version of ``networkx``.
possible to install the development version of ``grave``.

Before installing the development version, you may need to uninstall the
standard version of ``grave`` using ``pip``::
Expand Down
10 changes: 10 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ NetworkX, and seaborn. Its goal is to provide a network drawing API that
covers the most use cases with sensible defaults and simple style
configuration. Currently, it supports drawing graphs from NetworkX.

- **Website (including documentation):** https://networkx.github.io/grave/
- **Mailing list:** https://groups.google.com/forum/#!forum/networkx-discuss
- **Source:** https://github.com/networkx/grave
- **Bug reports:** https://github.com/networkx/grave/issues

Example
-------

Expand Down Expand Up @@ -62,3 +67,8 @@ The result:
:width: 700
:align: center
:alt: Coloring the minimum weighted dominating set of a graph

License
-------

Released under the 3-Clause BSD license (see `LICENSE`).
4 changes: 3 additions & 1 deletion doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.ipynb_checkpoints']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.ipynb_checkpoints',
'release_template.rst']

# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
Expand Down Expand Up @@ -213,6 +214,7 @@
'networkx': ('https://networkx.github.io/', None),
}


# Add the 'copybutton' javascript, to hide/show the prompt in code examples
def setup(app):
app.add_javascript('copybutton.js')
1 change: 1 addition & 0 deletions doc/developer/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ Developer Guide

contribute
gitwash/index
release
notes
83 changes: 83 additions & 0 deletions doc/developer/release.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
Making a new release of ``grave``
=================================

- Update the release notes:

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

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

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

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

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

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

- Commit changes.

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

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

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

- Push the new meta-data to github::

git push --tags upstream master

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

- Review the github release page::

https://github.com/networkx/grave/releases

- Publish on PyPi::

git clean -fxd
python setup.py sdist --formats=zip
twine upload -s dist/grave*.zip

- Update documentation on the web:
The documentation is kept in a separate branch: gh-pages

- Wait for the Grave Travis Bot to deploy to GitHub Pages
- Sync your branch with the remote repo: ``git pull``.
- Copy the documentation built by Travis.
Assuming you are at the top-level of the ``gh-pages`` branch::

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

- Increase the version number

- Update the web frontpage:
The webpage is kept in a separate branch: website

- Sync your branch with the remote repo: ``git pull``.
If you try to ``git push`` when your branch is out of sync, it
creates headaches.
- Update ``_templates/sidebar_versions.html``.
- Edit ``_static/docversions.js`` and commit
- Push your changes to the repo.
- Deploy using ``git push``.

- Post release notes on mailing list.

- networkx-discuss@googlegroups.com
1 change: 1 addition & 0 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,5 @@ Contents
api
developer/index
license
release/index
gallery/index
52 changes: 52 additions & 0 deletions doc/release/contribs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/usr/bin/env python
# https://github.com/scikit-image/scikit-image/blob/master/doc/release/contribs.py
# https://github.com/networkx/networkx/blob/master/doc/release/contribs.py
import subprocess
import sys
import string
import shlex

if len(sys.argv) != 2:
print("Usage: ./contributors.py tag-of-previous-release")
sys.exit(-1)

tag = sys.argv[1]

def call(cmd):
return subprocess.check_output(shlex.split(cmd), universal_newlines=True).split('\n')

tag_date = call("git log -n1 --format='%%ci' %s" % tag)[0]
print("Release %s was on %s\n" % (tag, tag_date))

merges = call("git log --since='%s' --merges --format='>>>%%B' --reverse" % tag_date)
merges = [m for m in merges if m.strip()]
merges = '\n'.join(merges).split('>>>')
merges = [m.split('\n')[:2] for m in merges]
merges = [m for m in merges if len(m) == 2 and m[1].strip()]

num_commits = call("git rev-list %s..HEAD --count" % tag)[0]
print("A total of %s changes have been committed.\n" % num_commits)

print("It contained the following %d merges:\n" % len(merges))
for (merge, message) in merges:
if merge.startswith('Merge pull request #'):
PR = ' (%s)' % merge.split()[3]
else:
PR = ''

print('- ' + message + PR)

print("\nMade by the following committers [alphabetical by last name]:\n")

authors = call("git log --since='%s' --format=%%aN" % tag_date)
authors = [a.strip() for a in authors if a.strip()]

def key(author):
author = [v for v in author.split() if v[0] in string.ascii_letters]
if len(author) > 0:
return author[-1]

authors = sorted(set(authors), key=key)

for a in authors:
print('- ' + a)
7 changes: 7 additions & 0 deletions doc/release/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Release Notes
=============

.. toctree::
:maxdepth: 2

release_dev
45 changes: 45 additions & 0 deletions doc/release/release_dev.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Grave 0.1
=========

We're happy to announce the release of Grave 0.1!
Grave is a graph visualization package combining ideas from Matplotlib,
NetworkX, and seaborn.
Its goal is to provide a network drawing API that covers the most use cases
with sensible defaults and simple style configuration.
Currently, it supports drawing graphs from NetworkX.

For more information, please visit our `website <http://networkx.github.io/grave>`_
and our `gallery of examples
<https://networkx.github.io/grave/latest/gallery/index.html>`_.
Please send comments and questions to the `networkx-discuss mailing list
<http://groups.google.com/group/networkx-discuss>`_.

Highlights
----------

This release is the result of X of work with over X pull requests by
X contributors. Highlights include:


Improvements
------------


API Changes
-----------


Deprecations
------------


Contributors to this release
----------------------------

<output of contribs.py>


Pull requests merged in this release
------------------------------------

<output of contribs.py>
45 changes: 45 additions & 0 deletions doc/release/release_template.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Grave 0.X
=========

We're happy to announce the release of Grave 0.X!
Grave is a graph visualization package combining ideas from Matplotlib,
NetworkX, and seaborn.
Its goal is to provide a network drawing API that covers the most use cases
with sensible defaults and simple style configuration.
Currently, it supports drawing graphs from NetworkX.

For more information, please visit our `website <http://networkx.github.io/grave>`_
and our `gallery of examples
<https://networkx.github.io/grave/latest/gallery/index.html>`_.
Please send comments and questions to the `networkx-discuss mailing list
<http://groups.google.com/group/networkx-discuss>`_.

Highlights
----------

This release is the result of X of work with over X pull requests by
X contributors. Highlights include:


Improvements
------------


API Changes
-----------


Deprecations
------------


Contributors to this release
----------------------------

<output of contribs.py>


Pull requests merged in this release
------------------------------------

<output of contribs.py>

0 comments on commit 485f0ab

Please sign in to comment.