Project organization¶
Here we describe a broad overview of the Scikit-Beam project and its parts.
Scikt-beam Project Concept¶
The “Scikit-beam Project” is distinct from the scikit-beam
package. The scikit-beam Project is a process intended to facilitate
communication and interoperability of python packages/codes in xray,
neutron, and electron facilities. The project thus encompasses the
scikit-beam
core package (which provides a common framework), all
“affiliated packages” (described below in Affiliated Packages), and
a general community aimed at bringing resources together and not
duplicating efforts.
scikit-beam
Core Package¶
The scikit-beam
package (alternatively known as the “core”
package) contains various classes, utilities, and a packaging
framework intended to provide commonly-used tools. It is divided into
a variety of sub-packages, which are documented in the remainder of
this documentation (see Scientific Algorithms for documentation of these
components).
The core also provides this documentation, and a variety of utilities that simplify starting other python astronomy/astrophysics packages. As described in the following section, these simplify the process of creating affiliated packages.
Affiliated Packages¶
The Scikit-Beam project includes the concept of “affiliated packages.” An
affiliated package is a related python package that is not
part of the scikit-beam
core source code, but has requested to be included
in the general community effort of the Scikit-Beam project. Such a package
may be a candidate for eventual inclusion in the main scikit-beam
package
(although this is not required). Until then, however, it is a separate
package, and may not be in the scikit-beam
namespace.
If you are interested in starting an affiliated package, or have a
package you are interested in making more compatible with scikit-beam,
the scikit-beam
core package includes features that simplify and
homogenize package management. Scikit-Beam provides a package template
(TODO) that provides a common way to organize a package, to make your
life simpler. You can use this template either with a new package you
are starting or an existing package to give it most of the
organizational tools Scikit-Beam provides, including the
documentation, testing, and Cython-building tools. See the usage
instructions in the template (TODO) for further details.
To then get your package listed on the registry, take a look at the guidelines for becoming an affiliated package (TODO) and then post your intent on the (WE NEED A MAILING LIST). The Scikit-Beam coordination committee, in consultation with the community, will provide you feedback on the package, and will add it to the registry when it is approved.
Community¶
Aside from the actual code, Scikit-Beam is also a community of beam line/facility- associated users and developers that agree that sharing utilities is healthy for the community and the science it produces. This community is of course central to accomplishing anything with the code itself. We follow the Python Software Foundation Code of Conduct and welcome anyone who wishes to contribute to the project.