Skip to content

States of releases files

monken edited this page Oct 10, 2011 · 5 revisions

A release and each file of that release have several "state" properties which allow to filter them depending on the use case. This document explains the exact meaning of each state. Each state is a binary property (i.e. is either true or false or null).

This is a draft and hasn't been implemented yet

installable (better name? anyone?)

On a release entity this means that the release includes modules that are listed in the 02packages.details.txt file.

On a file entity, this means that the file includes an installable module. This property can also be found in the module subproperty of the file document.

{
"installable":true,
"path":"lib/Moose.pm",
"module":[{
  "name":"Moose",
  "installable":true,
  ...
}],
...
}

installable and latest don't have the same value in some cases. For example, if a module was removed from a more recent release, the older version of that release/file will still have the installable bit set, but lost the latest bit.

This property changes over time

developer

True if the release/file is a dev release, false otherwise. Developer releases are never installable.

latest

This is the most recently uploaded version of this release/file.

Releases/files might be installable but not latest.

This property changes over time

cpan

true means, the release / file is available on cpan mirrors. False means, that it is only available from the BackPAN. BackPAN releases are never installable.

indexed (applies only to files)

Derived from the no_index property of the META file. Generally you will only search for indexed files. Non-indexed files usually contain modules and documentation from the test suite or examples.

authorized

The 06perms.txt lists module names and authors, who are allowed to upload a new version of that module. If a release/file contains a module that has been uploaded by an unauthorized author, this bit will bet set to true. False otherwise.

Developer releases have this bit set to null because no the state is unknown.

Search

A good filter for the default MetaCPAN search could be:

cpan && (installable || developer && latest)