commit
79c0515945
|
@ -6,6 +6,12 @@
|
||||||
avoid the pytest internal traceback which does not provide
|
avoid the pytest internal traceback which does not provide
|
||||||
information to the user.
|
information to the user.
|
||||||
|
|
||||||
|
- streamlined and documented release process. Also all versions
|
||||||
|
(in setup.py and documentation generation) are now read
|
||||||
|
from _pytest/__init__.py. Thanks Holger Krekel.
|
||||||
|
|
||||||
|
- fixed docs to remove the notion that yield-fixtures are experimental.
|
||||||
|
They are here to stay :) Thanks Bruno Oliveira.
|
||||||
|
|
||||||
2.7.0 (compared to 2.6.4)
|
2.7.0 (compared to 2.6.4)
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
|
@ -147,7 +147,9 @@ the issues there and submit your pull requests.
|
||||||
|
|
||||||
$ hg clone ssh://hg@bitbucket.org/YOUR_BITBUCKET_USERNAME/pytest
|
$ hg clone ssh://hg@bitbucket.org/YOUR_BITBUCKET_USERNAME/pytest
|
||||||
$ cd pytest
|
$ cd pytest
|
||||||
$ hg branch your-branch-name
|
$ hg up pytest-2.7 # if you want to fix a bug for the pytest-2.7 series
|
||||||
|
$ hg up default # if you want to add a feature bound for the next minor release
|
||||||
|
$ hg branch your-branch-name # your feature/bugfix branch
|
||||||
|
|
||||||
If you need some help with Mercurial, follow this quick start
|
If you need some help with Mercurial, follow this quick start
|
||||||
guide: http://mercurial.selenic.com/wiki/QuickStart
|
guide: http://mercurial.selenic.com/wiki/QuickStart
|
||||||
|
@ -197,7 +199,9 @@ the issues there and submit your pull requests.
|
||||||
branch: your-branch-name
|
branch: your-branch-name
|
||||||
|
|
||||||
target: pytest-dev/pytest
|
target: pytest-dev/pytest
|
||||||
branch: default
|
branch: default # if it's a feature
|
||||||
|
branch: pytest-VERSION # if it's a bugfix
|
||||||
|
|
||||||
|
|
||||||
.. _contribution-using-git:
|
.. _contribution-using-git:
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
#
|
#
|
||||||
__version__ = '2.7.1.dev'
|
__version__ = '2.7.1.dev1'
|
||||||
|
|
|
@ -15,46 +15,39 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||||
|
|
||||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
|
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
|
||||||
|
|
||||||
regen:
|
|
||||||
PYTHONDONTWRITEBYTECODE=1 COLUMNS=76 regendoc --update *.txt */*.txt
|
|
||||||
|
|
||||||
help:
|
help:
|
||||||
@echo "Please use \`make <target>' where <target> is one of"
|
@echo "Please use \`make <target>' where <target> is one of"
|
||||||
@echo " html to make standalone HTML files"
|
@echo " html to make standalone HTML files"
|
||||||
@echo " dirhtml to make HTML files named index.html in directories"
|
|
||||||
@echo " singlehtml to make a single large HTML file"
|
|
||||||
@echo " pickle to make pickle files"
|
|
||||||
@echo " json to make JSON files"
|
|
||||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
|
||||||
@echo " qthelp to make HTML files and a qthelp project"
|
|
||||||
@echo " devhelp to make HTML files and a Devhelp project"
|
|
||||||
@echo " epub to make an epub"
|
|
||||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
|
||||||
@echo " texinfo to make Texinfo files"
|
|
||||||
@echo " info to make Texinfo files and run them through makeinfo"
|
|
||||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||||
@echo " text to make text files"
|
@echo " showtarget to show the pytest.org target directory"
|
||||||
@echo " man to make manual pages"
|
@echo " install to install docs to pytest.org/SITETARGET"
|
||||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
@echo " install-ldf to install the doc pdf to pytest.org/SITETARGET"
|
||||||
|
@echo " regen to regenerate pytest examples using the installed pytest"
|
||||||
@echo " linkcheck to check all external links for integrity"
|
@echo " linkcheck to check all external links for integrity"
|
||||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm -rf $(BUILDDIR)/*
|
-rm -rf $(BUILDDIR)/*
|
||||||
|
|
||||||
SITETARGET=dev
|
SITETARGET=$(shell ./_getdoctarget.py)
|
||||||
|
|
||||||
|
showtarget:
|
||||||
|
@echo $(SITETARGET)
|
||||||
|
|
||||||
install: html
|
install: html
|
||||||
# for access talk to someone with login rights to
|
# for access talk to someone with login rights to
|
||||||
# pytest-dev@pytest.org to add your ssh key
|
# pytest-dev@pytest.org to add your ssh key
|
||||||
rsync -avz _build/html/ pytest-dev@pytest.org:/www/pytest.org/$(SITETARGET)
|
rsync -avz _build/html/ pytest-dev@pytest.org:pytest.org/$(SITETARGET)
|
||||||
|
|
||||||
installpdf: latexpdf
|
installpdf: latexpdf
|
||||||
@scp $(BUILDDIR)/latex/pytest.pdf pytest-dev@pytest.org:/www/pytest.org/$(SITETARGET)
|
@scp $(BUILDDIR)/latex/pytest.pdf pytest-dev@pytest.org:pytest.org/$(SITETARGET)
|
||||||
|
|
||||||
installall: clean install installpdf
|
installall: clean install installpdf
|
||||||
@echo "done"
|
@echo "done"
|
||||||
|
|
||||||
|
regen:
|
||||||
|
PYTHONDONTWRITEBYTECODE=1 COLUMNS=76 regendoc --update *.txt */*.txt
|
||||||
|
|
||||||
html:
|
html:
|
||||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||||
@echo
|
@echo
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import py
|
||||||
|
|
||||||
|
def get_version_string():
|
||||||
|
fn = py.path.local(__file__).join("..", "..", "..",
|
||||||
|
"_pytest", "__init__.py")
|
||||||
|
for line in fn.readlines():
|
||||||
|
if "version" in line:
|
||||||
|
return eval(line.split("=")[-1])
|
||||||
|
|
||||||
|
def get_minor_version_string():
|
||||||
|
return ".".join(get_version_string().split(".")[:2])
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print (get_minor_version_string())
|
|
@ -12,7 +12,7 @@
|
||||||
{% set link_color = '#000' %}
|
{% set link_color = '#000' %}
|
||||||
{% set link_hover_color = '#000' %}
|
{% set link_hover_color = '#000' %}
|
||||||
{% set base_font = 'sans-serif' %}
|
{% set base_font = 'sans-serif' %}
|
||||||
{% set header_font = 'sans-serif' %}
|
{% set header_font = 'serif' %}
|
||||||
|
|
||||||
@import url("basic.css");
|
@import url("basic.css");
|
||||||
|
|
||||||
|
@ -265,9 +265,10 @@ p.admonition-title:after {
|
||||||
content: ":";
|
content: ":";
|
||||||
}
|
}
|
||||||
|
|
||||||
pre, tt {
|
pre, tt, code {
|
||||||
font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
|
font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
|
background: #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
img.screenshot {
|
img.screenshot {
|
||||||
|
|
|
@ -17,10 +17,13 @@
|
||||||
#
|
#
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = "2.7"
|
|
||||||
release = "2.7.1.dev"
|
|
||||||
|
|
||||||
import sys, os
|
import os, sys
|
||||||
|
sys.path.insert(0, os.path.dirname(__file__))
|
||||||
|
import _getdoctarget
|
||||||
|
|
||||||
|
version = _getdoctarget.get_minor_version_string()
|
||||||
|
release = _getdoctarget.get_version_string()
|
||||||
|
|
||||||
# If extensions (or modules to document with autodoc) are in another directory,
|
# If extensions (or modules to document with autodoc) are in another directory,
|
||||||
# add these directories to sys.path here. If the directory is relative to the
|
# add these directories to sys.path here. If the directory is relative to the
|
||||||
|
@ -54,7 +57,7 @@ master_doc = 'contents'
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'pytest'
|
project = u'pytest'
|
||||||
copyright = u'2014, holger krekel'
|
copyright = u'2015, holger krekel and pytest-dev team'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
pytest release checklist
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
For doing a release of pytest (status April 2015) this rough checklist is used:
|
||||||
|
|
||||||
|
1. change version numbers in ``_pytest/__init__.py`` to the to-be-released version.
|
||||||
|
(the version number in ``setup.py`` reads from that init file as well)
|
||||||
|
|
||||||
|
2. finalize ``./CHANGELOG`` (don't forget the the header).
|
||||||
|
|
||||||
|
3. write ``doc/en/announce/release-VERSION.txt``
|
||||||
|
(usually copying from an earlier release version).
|
||||||
|
|
||||||
|
4. regenerate doc examples with ``tox -e regen`` and check with ``hg diff``
|
||||||
|
if the differences show regressions. It's a bit of a manual process because
|
||||||
|
there a large part of the diff is about pytest headers or differences in
|
||||||
|
speed ("tests took X.Y seconds"). (XXX automate doc/example diffing to ignore
|
||||||
|
such changes and integrate it into "tox -e regen").
|
||||||
|
|
||||||
|
5. ``devpi upload`` to `your developer devpi index <http://doc.devpi.net/latest/quickstart-releaseprocess.html>`_. You can create your own user and index on https://devpi.net,
|
||||||
|
an inofficial service from the devpi authors.
|
||||||
|
|
||||||
|
6. run ``devpi use INDEX`` and ``devpi test`` from linux and windows machines
|
||||||
|
and verify test results on the index. On linux typically all environments
|
||||||
|
pass (April 2015 there is a setup problem with a cx_freeze environment)
|
||||||
|
but on windows all involving ``pexpect`` fail because pexpect does not exist
|
||||||
|
on windows and tox does not allow to have platform-specific environments.
|
||||||
|
Also on windows ``py33-trial`` fails but should probably pass (March 2015).
|
||||||
|
In any case, py26,py27,py33,py34 are required to pass for all platforms.
|
||||||
|
|
||||||
|
7. You can fix tests/code and repeat number 6. until everything passes.
|
||||||
|
|
||||||
|
8. Once you have sufficiently passing tox tests you can do the actual release::
|
||||||
|
|
||||||
|
cd doc/en/
|
||||||
|
make install # will install to 2.7, 2.8, ... according to _pytest/__init__.py
|
||||||
|
make install-pdf # optional, requires latex packages installed
|
||||||
|
ssh pytest-dev@pytest.org # MANUAL: symlink "pytest.org/latest" to the just
|
||||||
|
# installed release docs
|
||||||
|
# browse to pytest.org to see
|
||||||
|
|
||||||
|
devpi push pytest-VERSION pypi:NAME
|
||||||
|
hg ci -m "... finalized pytest-VERSION"
|
||||||
|
hg tag VERSION
|
||||||
|
hg push
|
||||||
|
|
||||||
|
9. send out release announcement to pytest-dev@python.org,
|
||||||
|
testing-in-python@lists.idyll.org and python-announce-list@python.org .
|
||||||
|
|
||||||
|
10. **after the release** bump the version number in ``_pytest/__init__.py``,
|
||||||
|
to the next Minor release version (i.e. if you released ``pytest-2.8.0``,
|
||||||
|
set it to ``pytest-2.9.0.dev1``).
|
||||||
|
|
||||||
|
11. already done :)
|
11
setup.py
11
setup.py
|
@ -16,6 +16,15 @@ classifiers = ['Development Status :: 6 - Mature',
|
||||||
with open('README.rst') as fd:
|
with open('README.rst') as fd:
|
||||||
long_description = fd.read()
|
long_description = fd.read()
|
||||||
|
|
||||||
|
def get_version():
|
||||||
|
p = os.path.join(os.path.dirname(
|
||||||
|
os.path.abspath(__file__)), "_pytest", "__init__.py")
|
||||||
|
with open(p) as f:
|
||||||
|
for line in f.readlines():
|
||||||
|
if "__version__" in line:
|
||||||
|
return line.strip().split("=")[-1].strip(" '")
|
||||||
|
raise ValueError("could not read version")
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
install_requires = ['py>=1.4.25']
|
install_requires = ['py>=1.4.25']
|
||||||
|
@ -28,7 +37,7 @@ def main():
|
||||||
name='pytest',
|
name='pytest',
|
||||||
description='pytest: simple powerful testing with Python',
|
description='pytest: simple powerful testing with Python',
|
||||||
long_description=long_description,
|
long_description=long_description,
|
||||||
version='2.7.1.dev',
|
version=get_version(),
|
||||||
url='http://pytest.org',
|
url='http://pytest.org',
|
||||||
license='MIT license',
|
license='MIT license',
|
||||||
platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
|
platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
|
||||||
|
|
Loading…
Reference in New Issue