Adding new dependencies#

POLARIS has a number of dependencies, and while we prefer not to add any more, sometimes it is unavoidable. We strongly prefer free open-source projects (some open-source projects are not legally compatible with POLARIS; see below).

Build Requirements#

While we package a built version of the dependencies for internal developers, it is important to be able to easily rebuild these dependencies whenever necessary. Dependencies need to be buildable and compatible with the following on Argonne machines:

  • Windows 10/11 using Visual Studio 2019/2022

  • Ubuntu 20-22 with GCC (WSL or native Ubuntu installation)

If you have a built a project and want to add it as a POLARIS dependency, it needs to have automated builds for windows and linux in the polaris-dependencies repo. If you need help with this reach out to Jamie or Griffin.

License Requirements#

POLARIS uses open-source projects as dependencies, but is not itself open-source; this is a licensed commercial project. Not every open-source project is licensed to for use with commercial projects.

Copyleft and GNU General Public License (GPL)#

Avoid GPL and other copyleft licenses.

Copyleft (and its most common software implementation, the GNU General Public License) requires that any derivative works retain the same freedoms as the original. In other words, if we were to use any free open-source project with a Copyleft license, POLARIS would have to become a free open-source project!

Permissive Licenses#

“Permissive” here is not a legal term. These are the ideal kind of license for us. These are licenses with with minimal restrictions for our use. Some require copies of licenses be included, but may only require that be included with source code and not a distributed executable. Some allow changes to be made, but may require a list of changes be documented alongside the license.

The following licenses are permissive:

  • Boost Software License

  • GoogleTest License

  • BSD License

  • Apache License 2.0