(I'd call it a first draft, but it's not even that complete :)) |
No edit summary |
||
Line 12: | Line 12: | ||
<!-- A or sentence summarizing what this feature is and what it will do. This information is used for the overall feature summary page for each release. --> | <!-- A or sentence summarizing what this feature is and what it will do. This information is used for the overall feature summary page for each release. --> | ||
Re-test Perl/CPAN | Re-test Perl packages (primarily [[http://www.cpan.org|CPAN]]) by automatically providing the test suites of each distribution as their own "perl-Foo-tests" subpackage, and providing a framework to test. | ||
== Owner == | == Owner == | ||
Line 42: | Line 42: | ||
e.g. Let's say someone is using Catalyst (perl-Catalyst-Runtime) to run a website, and is in particular using Catalyst::Authentication::Store::DBIx::Class (perl-Catalyst-Plugin-Authentication-Store-DBIx-Class). A new release of DBIx::Class (perl-DBIx-Class) was just built and released, which introduced a subtle bug causing errors in Catalyst::Authentication::Store::DBIx::Class. While this is a contrived example, the value of being able to easily pull and execute the Catalyst::Authentication::Store::DBIx::Class test suite to "re-check" against the new environment (that is, the newer DBIx::Class than was available at build time) | e.g. Let's say someone is using Catalyst (perl-Catalyst-Runtime) to run a website, and is in particular using Catalyst::Authentication::Store::DBIx::Class (perl-Catalyst-Plugin-Authentication-Store-DBIx-Class). A new release of DBIx::Class (perl-DBIx-Class) was just built and released, which introduced a subtle bug causing errors in Catalyst::Authentication::Store::DBIx::Class. While this is a contrived example, the value of being able to easily pull and execute the Catalyst::Authentication::Store::DBIx::Class test suite to "re-check" against the new environment (that is, the newer DBIx::Class than was available at build time) | ||
The net benefit to Fedora is to create an environment where end users (support, programmers, etc) will be able to execute the test suites of the 900+ CPAN dists Fedora packages | The net benefit to Fedora is to create an environment where end users (support, programmers, etc) will be able to execute the test suites of the 900+ CPAN dists Fedora packages natively, to track down bugs, test functionality the buildsystem was unable to provide, or just validate their environment. | ||
== Scope == | == Scope == |
Revision as of 21:37, 5 October 2008
Feature Name
Fully Testable Perl.
Summary
Re-test Perl packages (primarily [[1]]) by automatically providing the test suites of each distribution as their own "perl-Foo-tests" subpackage, and providing a framework to test.
Owner
- Name: Chris Weyl
Current status
- Targeted release: Fedora 42
- Last updated: (DATE)
- Percentage of completion: XX%
Detailed Description
Perl has a long history and culture of testing, which has resulted in a very high percentage of the packages on the CPAN (Comprehensive Perl Archive Network) containing significant test suites. While these test suites are executed at build time, a large number of modern Perl distributions (e.g. Moose, DBIx::Class, Catalyst, etc) depend on a significant number of other dists, which may be owned by a different maintainer and updated independently.
That is, the tests results as executed at build are only valid so long as its environment (the other Perl dists the particular package may depend on) is not changed from the environment this package is built with. Additionally, there are often tests which are available but disabled during %make check as they may cause a circular build dep or require resources not available under the buildsystem (network or $DISPLAY access, or test databases, etc).
This feature proposes to automatically bundle the dists test suites into a -tests subpackage without requiring additional maintainer work (a la debuginfo), which can then be installed to provide the capability to retest functionality post installation.
Benefit to Fedora
Being able to execute the tests of a Perl dist post-build will leverage existing code (the test suites) to allow the end user to perform sanity checks and rule out problems with the underlying code when tracking down bugs.
e.g. Let's say someone is using Catalyst (perl-Catalyst-Runtime) to run a website, and is in particular using Catalyst::Authentication::Store::DBIx::Class (perl-Catalyst-Plugin-Authentication-Store-DBIx-Class). A new release of DBIx::Class (perl-DBIx-Class) was just built and released, which introduced a subtle bug causing errors in Catalyst::Authentication::Store::DBIx::Class. While this is a contrived example, the value of being able to easily pull and execute the Catalyst::Authentication::Store::DBIx::Class test suite to "re-check" against the new environment (that is, the newer DBIx::Class than was available at build time)
The net benefit to Fedora is to create an environment where end users (support, programmers, etc) will be able to execute the test suites of the 900+ CPAN dists Fedora packages natively, to track down bugs, test functionality the buildsystem was unable to provide, or just validate their environment.
Scope
- work with the perl-qa mailing list for input on how to retain these tests, and potentially other issues which could be made "standard"
- rpm-build macros: code up a macro akin to %debug_package to automatically create -tests subpackages for Perl dists.
- Create a test-framework: e.g. to test perl-Moose and all its deps, an end user could execute "perl-tests Moose" and step back.
Test Plan
User Experience
Dependencies
Contingency Plan
Documentation
Release Notes
Comments and Discussion