From Fedora Project Wiki

Fedora Devshell is a developers toolbox for creating packages and developing software for Fedora. It aims to simplify the process of creating and maintaining packages in the Fedora repositories, and simplify the workflow between other Fedora components. It provides the following features

Code is written through Python libraries which can be accessed either inside other tools or from a command line wrapper. It provides IDE like functionality through the command line, but can also be embedded in another IDE. It's your choice how to do it. The basic principle though, is equal access to everything, no matter which angle you are coming from.

Metadata for packages and other components are stored on the filesystem as a simple configuration file. Component modules pick up the metadata and expose a wide variety of functions based on some key parts. For example, support is possible to get updated information from mailing lists and bugzilla about outstanding issues.

Various stages of the build process are isolated into short modules. These are combined with mediators called Ports, which are analogous to ports in source based distributions. Ports, though, combine the ability to script together support for various kinds of packages, as well as other functionality.

Modules to integrate packages with rpmbuild, mock, and in the future, the Fedora CVS repository. There are also modules to aid generating patches against clean source tarballs for inclusion in spec files. Ports can also integrate internal knowledge about the build system used inside the package to aid generation of good spec files compliant with the Packaging Guidelines.

Documentation

The following documents are available for your displeasure.

Sources

Upstream sources