Django admin interface for Build and related models.


class readthedocs.builds.models.Build(id, project, version, type, state, date, success, setup, setup_error, output, error, exit_code, commit, length, builder)

Return if build has a finished state

class readthedocs.builds.models.BuildCommandResult(id, build, command, description, output, exit_code, start_time, end_time)

Total command runtime in seconds

class readthedocs.builds.models.BuildCommandResultMixin

Mixin for common command result methods/properties

Shared methods between the database model BuildCommandResult and non-model respresentations of build command results from the API


Did the command exit with a failing exit code

Helper for inverse of successful()


Did the command exit with a successful exit code

class readthedocs.builds.models.Version(id, project, type, identifier, verbose_name, slug, supported, active, built, uploaded, privacy_level, machine)

Clean build path for project version

Ensure build path is clean for project version. Used to ensure stale build checkouts for each project version are removed.


Return the branch name, the tag name or the revision identifier.

The result could be used as ref in a git repo, e.g. for linking to GitHub or Bitbucket.


Return version build path if path exists, otherwise None

identifier = None

The identifier is the ID for the revision this is version is for. This might be the revision number (e.g. in SVN), or the commit hash (e.g. in Git). If the this version is pointing to a branch, then identifier will contain the branch name.


Return display friendly identifier

save(*args, **kwargs)

Add permissions to the Version for all owners on save.

slug = None

The slug is the slugified version of verbose_name that can be used in the URL to identify this version in a project. It’s also used in the filesystem to determine how the paths for this version are called. It must not be used for any other identifying purposes.

verbose_name = None

This is the actual name that we got for the commit stored in identifier. This might be the tag or branch name like "v1.0.4". However this might also hold special version names like "latest" and "stable".

class readthedocs.builds.models.VersionAlias(id, project, from_slug, to_slug, largest)