diff --git a/.travis.yml b/.travis.yml
index 2a709288..9f3d7d18 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -28,13 +28,15 @@ matrix:
env: TOXENV=manifest
- python: "2.7"
env: TOXENV=docs
+ - python: "3.5"
+ env: TOXENV=readme
install:
- pip install tox
script:
- - tox --hashseed 0
+ - tox
before_install:
- pip install codecov
diff --git a/AUTHORS.rst b/AUTHORS.rst
new file mode 100644
index 00000000..bb3c7283
--- /dev/null
+++ b/AUTHORS.rst
@@ -0,0 +1,11 @@
+Credits
+=======
+
+``attrs`` is written and maintained by `Hynek Schlawack `_.
+
+The development is kindly supported by `Variomedia AG `_.
+
+A full list of contributors can be found in `GitHub's overview `_.
+
+It’s the spiritual successor of `characteristic `_ and aspires to fix some of it clunkiness and unfortunate decisions.
+Both were inspired by Twisted’s `FancyEqMixin `_ but both are implemented using class decorators because `sub-classing is bad for you `_, m’kay?
diff --git a/README.rst b/README.rst
index b79b1fd9..fc2af666 100644
--- a/README.rst
+++ b/README.rst
@@ -2,6 +2,10 @@
attrs: Attributes without boilerplate.
======================================
+.. image:: https://readthedocs.org/projects/attrs/badge/?version=stable
+ :target: http://attrs.readthedocs.org/en/stable/?badge=stable
+ :alt: Documentation Status
+
.. image:: https://travis-ci.org/hynek/attrs.svg
:target: https://travis-ci.org/hynek/attrs
:alt: CI status
@@ -51,9 +55,5 @@ This gives you the power to use actual classes with actual types in your code in
So put down that type-less data structures and welcome some class into your life!
-.. note::
- I wrote an `explanation `_ on why I forked my own ``characteristic``.
- It's not dead but ``attrs`` will have more new features.
-
``attrs``\ ’s documentation lives at `Read the Docs `_, the code on `GitHub `_.
It’s rigorously tested on Python 2.6, 2.7, 3.3+, and PyPy.
diff --git a/dev-requirements.txt b/dev-requirements.txt
new file mode 100644
index 00000000..9a647015
--- /dev/null
+++ b/dev-requirements.txt
@@ -0,0 +1,3 @@
+coverage
+pytest
+zope.interface
diff --git a/docs/contributing.rst b/docs/contributing.rst
index 46281822..1d519c38 100644
--- a/docs/contributing.rst
+++ b/docs/contributing.rst
@@ -1,3 +1,5 @@
.. _contributing:
.. include:: ../CONTRIBUTING.rst
+
+.. include:: ../CODE_OF_CONDUCT.rst
diff --git a/docs/license.rst b/docs/license.rst
index 01d00038..e74ac47f 100644
--- a/docs/license.rst
+++ b/docs/license.rst
@@ -1,18 +1,8 @@
-License and Hall of Fame
-========================
+===================
+License and Credits
+===================
``attrs`` is licensed under the `MIT `_ license.
The full license text can be also found in the `source code repository `_.
-
-Authors
--------
-
-``attrs`` is written and maintained by `Hynek Schlawack `_.
-
-The development is kindly supported by `Variomedia AG `_.
-
-A full list of contributors can be found in `GitHub's overview `_.
-
-It’s the spiritual successor of `characteristic `_ and aspires to fix some of it clunkiness and unfortunate decisions.
-Both were inspired by Twisted’s `FancyEqMixin `_ but both are implemented using class decorators because `sub-classing is bad for you `_, m’kay?
+.. include:: ../AUTHORS.rst
diff --git a/setup.py b/setup.py
index 4298a1f8..30af1fae 100644
--- a/setup.py
+++ b/setup.py
@@ -73,7 +73,11 @@ if __name__ == "__main__":
maintainer=find_meta("author"),
maintainer_email=find_meta("email"),
keywords=KEYWORDS,
- long_description=read("README.rst") + "\n\n" + read("CHANGELOG.rst"),
+ long_description=(
+ read("README.rst") + "\n\n" +
+ read("AUTHORS.rst") + "\n\n" +
+ read("CHANGELOG.rst")
+ ),
packages=PACKAGES,
package_dir={"": "src"},
zip_safe=False,
diff --git a/tox.ini b/tox.ini
index bb2b217a..0c4b013e 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,13 +1,10 @@
[tox]
-envlist = coverage-clean,py26,py27,py33,py34,py35,pypy,flake8,manifest,docs,coverage-report
+envlist = coverage-clean,py26,py27,py33,py34,py35,pypy,flake8,manifest,docs,readme,coverage-report
[testenv]
passenv = TERM # ensure colors
-deps =
- coverage
- pytest
- zope.interface
+deps = -rdev-requirements.txt
commands = coverage run --parallel -m pytest {posargs}
@@ -23,7 +20,7 @@ setenv =
PYTHONHASHSEED = 0
deps =
sphinx
- zope.interface
+ zope.interface # for doctests
commands =
sphinx-build -W -b html -d {envtmpdir}/doctrees docs docs/_build/html
sphinx-build -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html
@@ -36,6 +33,12 @@ skip_install = true
commands = check-manifest
+[testenv:readme]
+deps = readme
+skip_install = true
+commands = python setup.py check -r -s
+
+
[testenv:coverage-clean]
deps = coverage
skip_install = true