[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2049: Decide where "packaging tests" should live.
Tahoe-LAFS
trac at tahoe-lafs.org
Thu Sep 25 18:13:45 UTC 2014
#2049: Decide where "packaging tests" should live.
-------------------------+-------------------------------------------------
Reporter: | Owner: nejucomo
nejucomo | Status: new
Type: task | Milestone: soon (release n/a)
Priority: normal | Version: 1.10.0
Component: dev- | Keywords: packaging dev-infrastructure
infrastructure | buildbot pypi openitp-packaging
Resolution: |
Launchpad Bug: |
-------------------------+-------------------------------------------------
Comment (by Zancas):
Replying to [ticket:2049 nejucomo]:
> '''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.
Here're some tweaks to the test type taxonomy outlined above.
1. I think the name "network distribution tests" is easier to understand,
perhaps because it's more specific, than "distribution tests". I believe
this because when I added the "network " before instances of "distribution
test" I found the text easier to understand.
2. If I Understand Correctly (IIUC) the word "Packaging" which is the
first word after the first bullet point in the "Brittleness" section is a
substitution error, and should be the word "Build".
3. It seems to me that "Brittleness" is a criteria, like "Inputs", by
which one can categorize test "packaging test" types, whereas "Staging or
Production" is a discriminator that applies more agnostically to all
tests. Therefore I propose that the description will have a more
intuitive flow if the order of the sections: "Brittleness" and "Staging
or Production" are swapped. Also it might be nice to provide some other
indicator that the "Staging or Production" section is not quite the same
kind of section as the other two, e.g. an interposed sentence, or making
both "Inputs" and "Brittleness" be subsections of a "Test Type" section.
4. I propose that we replace the term "Brittleness" with the word
"Robustness".
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2049#comment:21>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list