Skip to content

Commit

Permalink
Use zest.releaser, removing release.bash.
Browse files Browse the repository at this point in the history
  • Loading branch information
cjmay committed Jan 29, 2017
1 parent cdb49a6 commit 026b9f1
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 156 deletions.
98 changes: 65 additions & 33 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,108 +1,140 @@
4.12.7 (TBA)
4.12.7 (unreleased)
-------------------

* Add Python 3 support.
- Add Python 3 support.


4.12.6 (2017-01-28)
-------------------

* Refactor build, simplifying with tox.
* Turn on public Appveyor and GitHub builds.
* Remove hard numpy/scipy dependency in concrete.util.tokenization,
- Refactor build, simplifying with tox.

- Turn on public Appveyor and GitHub builds.

- Remove hard numpy/scipy dependency in concrete.util.tokenization,
adding (slower) fallback implementations.
* Add concrete.services.results to top-level package import.
* Expand Windows test coverage to (most) integration tests.
* Update package-level imports and use them in README.rst (as before).
* Rename

- Add concrete.services.results to top-level package import.

- Expand Windows test coverage to (most) integration tests.

- Update package-level imports and use them in README.rst (as before).

- Rename
annotate-communication-example.py to create-tokentagging-example.py.
* Add Redis hash backed Communication container implementation.

- Add Redis hash backed Communication container implementation.


4.12.5 (2017-01-26)
-------------------

- Add command-line Fetch client, server scripts.

- Add wrappers for all current Concrete (4.12) services.

* Add command-line Fetch client, server scripts.
* Add wrappers for all current Concrete (4.12) services.
* Add Communication container interface and implementations:
- Add Communication container interface and implementations:
- filesystem directory
- Fetch service
- file loaded into memory
- zip file
* Increase flake8 max-line-length from 79 to 99.
* Add note about accelerated protocol C++ dependency to README.rst.
* Fix syntax error in CONTRIBUTING.rst.
* Add CHANGELOG, AUTHORS.

- Increase flake8 max-line-length from 79 to 99.

- Add note about accelerated protocol C++ dependency to README.rst.

- Fix syntax error in CONTRIBUTING.rst.

- Add CHANGELOG, AUTHORS.


4.12.4 (2017-01-15)
-------------------

* Deprecate remaining scripts containing underscores (to be removed in
- Deprecate remaining scripts containing underscores (to be removed in
the future):
- concrete_inspect.py
- concrete_diff.py
- validate_communication.py
- inspect_dependency_parses.py
* Add new scripts using hyphens instead of underscores, for easy typing:

- Add new scripts using hyphens instead of underscores, for easy typing:
- concrete-inspect.py
- concrete-diff.py
- validate-communication.py
- inspect-dependency-parses.py
* Fix import errors in new AnnotateCommunicationService scripts:

- Fix import errors in new AnnotateCommunicationService scripts:
- examples/annotate-communication-service.py
- scripts/annotate-communication-client.py
* Add check for accelerated protocol. This can be used directly as

- Add check for accelerated protocol. This can be used directly as
concrete.util.thrift_factory.is_accelerated(); acceleration is also
now reported in the version string reported by scripts (when the
--version flag is passed).


4.12.3 (2017-01-15)
-------------------

* Select accelerated compact protocol in thrift_factory. The
- Select accelerated compact protocol in thrift_factory. The
accelerated protocol will now be used by default; if it is not
supported, Thrift will fall back to the unaccelerated protocol.
* Switch to reStructuredText in README and CONTRIBUTING to improve look

- Switch to reStructuredText in README and CONTRIBUTING to improve look
and feel on PyPI.


4.12.2 (2017-01-15)
-------------------

* Update to Thrift 0.10.0.
- Update to Thrift 0.10.0.
- __hash__ implementations are removed for mutable objects,
including all Concrete types. This is in response to the existing
__hash__ implementation breaking on lists and other mutable
container types.
* Remove accel branch from documentation and build. Thrift 0.10.0

- Remove accel branch from documentation and build. Thrift 0.10.0
includes the accelerated compact protocol, so the accelerated
protocol is now available on Concrete-Python master and installations
using pip.
- The accel branch is now defunct; 4.12.1 is the final release on
the accel branch.
* Add g++ to Docker image, needed to build accelerated protocols.
* Rename build.bash to generate.bash (affects maintainers only).

- Add g++ to Docker image, needed to build accelerated protocols.

- Rename build.bash to generate.bash (affects maintainers only).


4.12.1 (2017-01-15)
-------------------

* accel branch corresponding to 4.12.0.
- accel branch corresponding to 4.12.0.


4.12.0 (2017-01-15)
-------------------

- Update to concrete 4.12 schema.

* Update to concrete 4.12 schema.
* Remove wrappers and scripts interfacing with the Annotator service
- Remove wrappers and scripts interfacing with the Annotator service
removed in the 4.12 schema:
- concrete.util.annotator_wrapper.AnnotatorClientWrapper
- concrete.util.annotator_wrapper.AnnotatorServiceWrapper
- concrete.util.annotator_wrapper.SubprocessAnnotatorServiceWrapper
- examples/annotate_example.py
- examples/annotator_server.py
- scripts/annotator_client.py
* Add wrappers and scripts interfacing with the

- Add wrappers and scripts interfacing with the
AnnotateCommunicationService (replacing the Annotator service):
- concrete.util.annotate_wrapper.AnnotateCommunicationClientWrapper
- concrete.util.annotate_wrapper.AnnotateCommunicationServiceWrapper
- concrete.util.annotate_wrapper.SubprocessAnnotateCommunicationServiceWrapper
- examples/annotate-communication-example.py
- examples/annotate-communication-service.py
- scripts/annotate-communication-client.py
* Rename search_client.py to search-client.py.
* Remove deprecated compress-uuids, tweets2concrete scripts.

- Rename search_client.py to search-client.py.

- Remove deprecated compress-uuids, tweets2concrete scripts.
40 changes: 10 additions & 30 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,35 +53,14 @@ recommended way of maintaining this is to do all work in feature
branches that are kept up-to-date with master and pushed to GitLab,
waiting for CI to finish before merging.

All stable versions can be (and are) released to PyPI. In between
these, beta versions are used to denote significant changes to the code
that we wish to deploy to users tracking master.

The script ``release.bash`` can automate the release process. It
should be run after all changes are committed to master and CI has
passed, but before the version (in ``concrete/version.py``) has been
incremented to a stable version.

For example, if the version in ``concrete/version.py`` is 4.13.4b7, to
release 4.13.4, ``release.bash`` does the following:

* ``git reset --hard``
* ``git clean -f -d -x``
* Increase master version to 4.13.4 and commit
* ``python setup.py sdist``
* ``twine upload dist/*``
* ``git tag -am v4.13.4 v4.13.4``
* Increase master version to 4.13.5b0 and commit
* ``git push gitlab master v4.13.4``

In words, we clean the repository, update to a stable version number
and commit, build the release tarball, upload the release tarball to
PyPI, tag the release, update to the next beta version number and
commit (so that subsequent development on master is linked to the next
version), and push the release tag and the new development version of
master to GitLab.

Run ``bash release.bash -h`` for usage information.
We use zest.releaser_ to manage versions, the ``CHANGELOG``, and
releases. (Making a new release is a many-step process that requires
great care; doing so by hand is strongly discouraged.)
Using zest.releaser, stable versions are released to PyPI
and master is kept on a development version number (so that a stable
version number never represents more than one snapshot of the code).
To make a new release install zest.releaser
(``pip install zest.releaser``) and run ``fullrelease``.

Testing PyPI releases
---------------------
Expand Down Expand Up @@ -116,7 +95,7 @@ thrift (whose entries were removed from the schema).
``patches/``) document where it (thrift) falls short on the
previously-compiled schema. Additionally, if new packages
(namespaces) are added to the schema, they must be added to
``setup.py``, ``.flake8``, and ``concrete/__init__.py``.
``setup.py``, ``setup.cfg``, and ``concrete/__init__.py``.

If ``generate.bash`` throws an error, the
necessary changes should be performed manually and checked in to the
Expand All @@ -130,3 +109,4 @@ the unpatched code.

.. _GitHub: https://github.com/hltcoe/concrete-python
.. _Redis: http://redis.io
.. _zest.releaser: http://zestreleaser.readthedocs.io/en/latest/overview.html
2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ recursive-include tests *
exclude tests/testdata/create_simple_communications.py
recursive-include examples *
recursive-include integration-tests *
include .flake8
include setup.cfg
include AUTHORS
include CHANGELOG
include LICENSE
Expand Down
3 changes: 2 additions & 1 deletion concrete/version.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import unicode_literals
__version__ = '4.12.7b1'

__version__ = '4.12.7.dev2'


def concrete_library_version():
Expand Down
89 changes: 0 additions & 89 deletions release.bash

This file was deleted.

3 changes: 3 additions & 0 deletions .flake8 → setup.cfg
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[zest.releaser]
python-file-with-version = concrete/version.py

[flake8]
max_line_length = 99
exclude =
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

VERSION_FILE_PATH = 'concrete/version.py'
VERSION_RE = re.compile(
r'^__version__ = (?P<quote>[\'"])(?P<version>[0-9]+\.[0-9]+\.[0-9]+(?:b[0-9]+)?)(?P=quote)$'
r'^__version__ = (?P<quote>[\'"])(?P<version>[0-9]+\.[0-9]+\.[0-9]+(?:\.dev[0-9]+)?)(?P=quote)$'
)


Expand All @@ -15,7 +15,7 @@ def get_version():
m = VERSION_RE.match(line.rstrip())
if m is not None:
return m.group('version')
raise Exception('unable to determinte version from %s' % VERSION_FILE_PATH)
raise Exception('unable to determine version from %s' % VERSION_FILE_PATH)


if __name__ == '__main__':
Expand Down

0 comments on commit 026b9f1

Please sign in to comment.