Go to the latest version of this document.

# ``twisted`.`python`.`_release``

module documentation
(source)

Twisted's automated release system.

This module is only for use within Twisted's release system. If you are anyone else, do not use it. The interface and behaviour will change without notice.

Only Linux is supported by this code. It should not be used by any tools which must run on multiple platforms (eg the setup.py script).

Interface | `IVCSCommand` | An interface for VCS commands.
Class | `GitCommand` | Subset of Git commands to release Twisted from a Git repository.
Class | `Project` | A representation of a project that has a version.
Exception | `NoDocumentsFound` | Raised when no input documents are found.
Exception | `NotWorkingDirectory` | Raised when a directory does not appear to be a repository directory of a supported VCS.
Function | `filePathDelta` | Return a list of strings that represent `destination` as a path relative to `origin`.
Function | `findTwistedProjects` | Find all Twisted-style projects beneath a base directory.
Function | `getRepositoryCommand` | Detect the VCS used in the specified directory and return a `GitCommand` if the directory is a Git repository. If the directory is not git, it raises a `NotWorkingDirectory` exception.
Function | `replaceInFile` | I replace the text `oldstr' with `newstr' in `filename' using science.
Function | `runCommand` | Execute a vector of arguments.

def filePathDelta(origin, destination): (source)

Return a list of strings that represent `destination` as a path relative to `origin`.

It is assumed that both paths represent directories, not files. That is to say, the delta of `twisted.python.filepath.FilePath` /foo/bar to `twisted.python.filepath.FilePath` /foo/baz will be `../baz`, not `baz`.

Parameters
origin:`twisted.python.filepath.FilePath` | The origin of the relative path.
destination:`twisted.python.filepath.FilePath` | The destination of the relative path.

def findTwistedProjects(baseDirectory): (source)

Find all Twisted-style projects beneath a base directory.

Parameters
baseDirectory | A `twisted.python.filepath.FilePath` to look inside.

Returns
A list of `Project`.

def getRepositoryCommand(directory): (source)

Detect the VCS used in the specified directory and return a `GitCommand` if the directory is a Git repository. If the directory is not git, it raises a `NotWorkingDirectory` exception.

Parameters
directory:`FilePath` | The directory to detect the VCS used from.

Returns
`GitCommand` | Undocumented

Raises
`NotWorkingDirectory` | if no supported VCS can be found from the specified directory.

def replaceInFile(filename, oldToNew): (source)

I replace the text `oldstr' with `newstr' in `filename' using science.

def runCommand(args, **kwargs): (source)

Execute a vector of arguments.

This is a wrapper around `subprocess.check_output`, so it takes the same arguments as `subprocess.Popen` with one difference: all arguments after the vector must be keyword arguments.

Parameters
args | arguments passed to `subprocess.check_output`
**kwargs | keyword arguments passed to `subprocess.check_output`

Returns
`bytes` | command output