project-team-guide/doc/source/open-source.rst

65 lines
2.8 KiB
ReStructuredText

=============
Open Source
=============
One of the "Four Opens" which frame the basis for an OpenStack project is
Open Source. OpenStack projects do not produce "open core" software, they
instead produce purely open source software. In addition, the software is
produced with a community and contributor accepted license.
Fully Functional Open Source
============================
When we say "fully functional open source", what we mean is OpenStack projects
should not be producing something which requires an enterprise version or some
additional proprietary software or hardware to be used at its full potential.
Functionality should not be purposefully limited in any way. We strive to make
things scalable and efficient in a fully open source manner.
In a similar manner, projects may choose to enable pluggable functionality
which allows third party projects and vendors to integrate. This type of
architecture is a workable solution. An open source option, whether that is
a built in solution or a third party pluggable component, is required to
ensure the "fully functional open source" principle is satisfied.
Acceptable Licensing
====================
Licensing requirements are described in the following governance document:
https://governance.openstack.org/tc/reference/licensing.html
Generally speaking, OpenStack projects must utilize the `Apache License, 2.0`_
for the source code they produce. This is the license used by all existing
OpenStack software. New projects are required to utilize this license as well,
as it's specifically called out in the OpenStack Foundation bylaws. The
Apache License, 2.0, provides the following benefits:
* OSI approved
* GPLv3 compatible
* DFSG compatible
Dependencies and Optional Modules
=================================
When utilizing third party modules or libraries which are not Apache 2.0
licensed, contributors need to understand how the interaction between the
modules will work and the compatibility of the licenses involved. Please read
the `licensing requirements`_, and if there are any remaining doubts or
concerns, it is recommended to contact the Technical Committee (using the
openstack-discuss mailing-list with the [tc] prefix, or on the #openstack-tc
IRC channel) to discuss with the Technical Committee how to proceed. In
general, err on the side of caution here.
With regards to dependencies, any third-party libraries or modules need to be
vetted in the `global requirements`_. This ensures the added requirement of
including the third party module goes through review and will not conflict
with broad cross-project efforts, such as the Python 3 porting effort.
.. _Apache License, 2.0: http://www.apache.org/licenses/LICENSE-2.0
.. _licensing requirements: https://governance.openstack.org/tc/reference/licensing.html
.. _global requirements: https://git.openstack.org/cgit/openstack/requirements/plain/README.rst