Perl Post Install Tests

April 10, 2013

Upgrading dependencies w/o fear

1. You install a module named Bear 2. You install the module Human, which depends on the availability of Bear’s ride() method 3. You install an new version of Bear, which does NOT have the ride() method; it’s not safe to ride a bear! 4. Human’s attempt to ride() fails 5. Human gets eaten by Bear

Sources of upgrade fear

I

We should not assume that CPAN authors have a formal commitment to their APIs, they may change at any time

I

No trivial way of verifying the whole perl installation with distributions

I

CPAN/Perl community has usually been good at preserving backwards compatibility

I

Modules might get used in an unintended way from the authors perspective

How to detect breakage

You could do the following and hope that you detect the bug/ breakage: I

Run your code and see

I

Run tests for YOUR code

I

Check cpantesters.org

What we want

I

Run tests for all distributions loadable in @INC

I

Run tests for the distributions that depend on the newly upgraded distribution

I

Run tests in all environments (development, test/CI, staging and production)

Post Install Tests Requirements

I

The tests for the installed modules must be available(installed)

I

It must be possible to locate tests for a specific distribution and version

I

In order to run the tests for only the dependent distributions it must be possible to do determine this distribution’s reverse dependencies

I

Distribution dependencies are saved and installed

I

Writing a best practices guide for tests

Demo

I

Extension of Module::Build

I

Environment variable PERL_INSTALL_TESTS controls if tests should be installed when using ./Build install(Also possible to use ./Build installtests without the ENV)

I

Tests is installed under $install_base/auto/tests/$distname-$distversion/

I

Test files are written to the .packlist file

I

Action testinc uses the ExtUtils::Installed distribution to retrieve the modules that would be loaded and their test files

I

Action testrdeps is a fake action. The logic is hardcoded for demonstration purposes

Future Work / Considerations

I

Permissions - Test that writes to devices, sockets(ports < 1024), t/... and more

I

Currently no trivial way of finding reverse dependencies locally

I

Integration with packaging systems

I

Best practices doc

Perl Post Install Tests - GitHub

Apr 10, 2013 - CPAN/Perl community has usually been good at preserving backwards compatibility ... and installed. ▻ Writing a best practices guide for tests ...

82KB Sizes 3 Downloads 268 Views

Recommend Documents

Ethereum Install Party! - GitHub
Aug 20, 2014 - A distributed application platform. • A blockchain-based system (like Bitcoin) ... Connect to peer. • Enable mining (transactions cost Ether!)

SDL Manual: Writing Games in Perl - GitHub
my $flower = SDLx::Surface->new( width => 50, height => 100 );. 21. 22. # With a ...... in what domain (Model, View or Controller) does a module solve a problem for. ... Org are free and open source software, but even so each needs a license.

Ubuntu 9.10 post install guide. "Ubuntu 9.10 as it ... - Knightwise.com
Install a basic version of Ubuntu 9.10 using the livecd or the alternate installation method. ... sudo apt-get install ubuntu-restricted-extras community-themes ...

Perl and Undecidability: Perl Undecidable
that would generate a parser from any grammar describable in. BNF. No such tool is in ... —they assume something, and show that the assumption creates ..... It's available as a free download: http://www.lulu.com/content/933192. You can ...

CPIC CYP2C19_voriconazole guideline final_to post - GitHub
9University of Florida College of Medicine, Gainesville, FL, USA .... this definition of rapid metabolizer is appropriate for all CYP2C19 substrates is unclear and ...

Perl and Undecidability: Perl Undecidable
push @ancestry, $found->{'Parent'}->{'Name'}; www.theperlreview.com. Fall 2008 • 23 by Jeffrey Kegler [email protected]. Perl and Undecidability: Perl Undecidable. This is the last of three articles based on a formal proof of Perl's unparseabil

How to install / link Allegro 5 with Code::Blocks - GitHub
//(if you don't, the application will shut down immediately after you launch it) al_rest(5.0f);. //Deallocate the memory used for the display creation.

Mastering Algorithms with Perl
that have a separate row for each hour of the day, and ones that squeeze a year or two ...... AT&T Research, http://www. research. att. com/sw/tools/graphviz/.

OpenDaylight Performance Stress Tests Report v1.0 - GitHub
Jun 29, 2015 - For our evaluation we have used NSTAT [1], an open source en- vironment ... rameters), online performance and statistics monitoring, and.

How to Install/Uninstall/Upgrade a Dispage extension ... - GitHub
After accepted the Agreement above, the DEM extension is downloaded from the Dispage. Resource Center (DRC), then installed and validated (Figure 3).

PERL part- iI -
Sep 2, 2010 - Here's how you get at elements in an array: print $animals[0]; # prints "camel" print $animals[1]; # prints "llama". • The special variable $#array ...

Perl for Beginners
services company. ... for Web development – Web pages are HTML text files. .... application such as Word – files created via WP apps contain a lot of extra, ...

Barracuda WAF on Azure: Post Deployment Configuration ... - GitHub
Page 1 of 16 ... In the Network Interfaces blade, you can see the Private IP address of ... Service Name : Demo-Websites (Or your custom service name). Type : ...

Ansible Tower on Azure: Post Deployment Guide - GitHub
2. Click on Microsoft Azure at the top left corner of the screen, to view the Dashboard. ... http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html. 12.

Tests were preformed on a 1000x1000x100 chunk of data ... - GitHub
Testing Data: Tests were preformed on a 1000x1000x100 chunk of data. After Switching to Byte Kernel. Trial ... 1000.00. 1200.00. 1400.00. GPU vs CPU. Seco n.

Solid Type System Runtime Checks and Unit Tests - GitHub
insufficient type information! Return type should be something like ... type is. // ProteinFail \/ Future[List[FacebookLike]]. Unwrap? ... case \/(result) => s"Dude, eat proteins, or you won't do like me: $result" .... Thank you! goo.gl/U0WYAB · PDF.

PDF Learning Perl Full Books
It covers topics including: Perl variable types; Subroutines; File operations; ... Text processing; Strings and sorting; Process management; and, Using third party ...

tim install
You will need Linux user accounts created for DB2, ITIM, and TDS. ... At the Select the installation method the default should be to install DB2 as in the screen ...

Your Next Linux Notebook for Only $10 - How to Install ... - GitHub
Apr 13, 2017 - Your Next Linux Notebook for Only $10 ... You can have another Linux notebook for less than the cost of dinner! ... Mac OS 8.6 or 9. Mac OS 9.

Troubleshoot Install SIMAN.pdf
Laptop\PC dengan cara : 1. Buka Explorer. 2. Klik kanan pada “Computer” Pilih Properties maka akan muncul : Perhatikan yang diberi tanda merah : A. Jenis ...

OpenNMS Install Guide - OpenNMS Projects
Run the OpenNMS Installer Application . ... Login to the Web Application . ..... unstable: the latest officially released development version of OpenNMS. • testing: ...