[tahoe-lafs-trac-stream] [tahoe-lafs] #2049: Decide where "packaging tests" should live.
tahoe-lafs
trac at tahoe-lafs.org
Wed Aug 7 19:37:34 UTC 2013
#2049: Decide where "packaging tests" should live.
-------------------------------------------------+-------------------------
Reporter: nejucomo | Owner: daira
Type: task | Status: new
Priority: normal | Milestone:
Component: unknown | undecided
Keywords: packaging dev-infrastructure | Version: 1.10.0
buildbot pypi | Launchpad Bug:
-------------------------------------------------+-------------------------
'''Task:''' Define a policy about where packaging tests live, where
buildbot configuration lives, then specify that policy on the wiki.
'''Details:'''
We'd benefit from "packaging tests" which are different from unittests.
The latter target a prepared installation or repository checkout, whereas
packaging tests have these distinctions:
'''Inputs:''' Packaging tests may target as input:
* ''build tests'' - a fresh repository checkout in order to test creation
of distribution formats -- ''e.g.'' `sdist`, `linux distro packages`, sumo
tarballs, etc...
* ''installation tests'' - a locally prepared distribution format --
''e.g.'' `sdist`, `.deb`, etc...
* ''distribution tests'' - the network -- ''e.g.'' a PyPI package name
and `http(s)` connections to python packaging mirrors; a debian package
name and connections to debian repositories; etc...
'''Staging or Production''': We might like to run the same tests against
unreleased versions and distinctly against "the live internet".
* ''Staging tests'' might rely on a local PyPI mirror to ensure that ''if
we were'' to distribute sdists to the real PyPI, ''then'' users will
probably successfully be able to install them.
* ''Production tests'' rely on the actual distribution that live users
use. Failures of these tests let us know when our released packages are
unavailable to users, and can help identify why.
'''Brittleness''': sensitivity to transient conditions:
* Packaging tests start from either a repository clone or an sdist and
should behave fairly deterministically without networking.
* Installation tests start from local packaging files, and should behave
deterministically, barring system state issues.
* Distributions tests necessarily use the internet and will give false
positives for transient errors. (''Note:'' Errors due to transient
outages are important information! Suppose `tahoe-lafs` install relies on
`some.third-party.package.host.example.com` and that site goes down. We
want to know that people are now unable to install `tahoe-lafs` through
specific channels.)
We may want different packaging tests to live in different places
depending on these axes. Some of these tests may not require buildbot,
and/or may not be developed or maintained by us at all! For example,
tests which verify live PyPI packages may be run by PyPI itself. We
should still account for this in an "official policy".
We probably want test infrastructure operators to have some flexibility to
only run some categories of tests. For example, a debian test box would
not want to run windows installation tests, or some operators may prefer
to limit networking and only run non-distribution tests.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2049>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list