Dist::Zilla on Travis CI

Dist::Zilla on Travis CI

With Dist::Zilla (dzil), testing Perl projects on Travis CI can be a bit tricky. Here’s my approach.

Specifying the type of your CPAN dependencies

Specifying the type of your CPAN dependencies

In this article, we’ll cover the different types of dependencies and how you combine these with the phases (described in the previous article) to specify the dependencies (or prereqs) for your CPAN distribution.

Other posts in this series:

  1. An introduction to CPAN distribution metadata
  2. Dependency phases in CPAN distribution metadata
  3. Specifying the type of your CPAN dependencies

Version numbers should be boring

Version numbers should be boring

Unfortunately, version numbers in Perl aren’t boring and easy. Instead, they are complicated and confusing. Every Perl programmer needs to understand at least some of this complexity. Otherwise, you can make life difficult for yourself or others without realizing it.

The meaning of version 0.x versus 1.x

The meaning of version 0.x versus 1.x

If the first release of your CPAN module has version 0.01, then when should you release version 1.00, and what does that signify? For a good while now I’ve kinda of read 0.x as “I’m still kicking things around”, and you go to 1.x when things have settled down.

Dependency phases in CPAN distribution metadata

Dependency phases in CPAN distribution metadata

In this article I’ll drill into more detail at one critical component of a distribution’s metadata: dependencies, also known as prerequisites (usually shortened to “prereqs”). This is how you specify other CPAN modules that your distribution depends on.

Other posts in this series:

  1. An introduction to CPAN distribution metadata
  2. Dependency phases in CPAN distribution metadata
  3. Specifying the type of your CPAN dependencies

Better SQL tracing with DBIx::Class

Better SQL tracing with DBIx::Class

I’ve been trying to track down some SQL issues with Tau Station and to be honest, I’ve never been terribly happy with the output from the DBIx::Class DBIC_TRACE or the DBI DBI_TRACE. So I have something better.

An introduction to CPAN distribution metadata

An introduction to CPAN distribution metadata

All CPAN releases (these days) include a metadata file which has information about the distribution. It can be used by tools like CPAN clients (when installing modules), but it’s also helpful for other tool writers, and people analysing the structure of CPAN. The metadata file will be called META.yml or META.json, and recent releases often contain both.

Other posts in this series:

  1. An introduction to CPAN distribution metadata
  2. Dependency phases in CPAN distribution metadata
  3. Specifying the type of your CPAN dependencies

Using the Perl debugger with DBIx::Class

Using the Perl debugger with DBIx::Class

Today’s debugger hack will make using the debugger with DBIx::Class much easier.

Wrapping a C shared library with Perl and XS

Wrapping a C shared library with Perl and XS

This tutorial shows how to wrap a C shared library using XS and Perl (including creating a trivial test shared library).

Also posted to PerlMonks where the discussion references InlineX::C2XS.

Continuous Integration. CircleCI vs Travis CI vs Jenkins

Continuous Integration. CircleCI vs Travis CI vs Jenkins

The main goal of continuous integration is to identify the problems that may occur during the development process earlier and more easily. If you integrate regularly — there is much less to check while looking for errors. That results in less time spent for debugging and more time for adding features. There is also an option to set up inspection of the code style, cyclomatic complexity (low complexity makes the testing process more simple) and other checks. That helps to minimize the efforts of the person responsible for the code review, saves time, and improves the quality of the code.

Direct link