AiFi Open-Source Policy
Overview
The AiFi Open-Source Policy defines how AiFi employees should behave when using and contributing to open-source projects.
Audience
This documentation is published both internally and externally. The intended audience are both AiFi employees, for whom it is mandatory to obey the rules outlined in this document, as well as all third parties that wish to understand AiFi’s approach to using and contributing to open-source projects.
Using
At AiFi, using any open-source library requires verifying its license. All libraries used in AiFi products should have a permissive license that allows commercial use. The developers must follow the requirements of all licenses.
In general, AiFi strongly discourages the usage of copyleft licenses, unless the developer can ensure that AiFi does not violate the license and has gotten the approval from their manager and the legal team.
AiFi developers are responsible for ensuring that all third-party libraries, including the open-source ones, comply with our strong security requirements. AiFi performs periodic static and dynamic security testing, and the developers are required to promptly perform security updates for all used libraries.
Contributing
AiFi encourages our developers to contribute to the open-source projects. If a developer finds that an open-source library used in an AiFi product is missing a feature or requires a fix, they are strongly encouraged to consider contributing to the project directly, as opposed to making a hard-fork.
When contributing to the open-source projects:
- regardless of the size of the contribution, developers should always evaluate the potential implications for AiFi. When in doubt, the developer should consult their manager or the legal team.
- for small contributions, the developer is free to contribute them under their personal account
- for large features, the developers should take special caution to evaluate whether contributed features are not specific to AiFi products and whether they could be instead implemented within AiFi software. In case the developer would still prefer to open source them, they should consult their manager and the legal team.
- as a general rule, every developer should remember to follow the best practices of open-source contributions. Every AiFi developer is expected to be nice, empathetic, and understanding when interacting with different projects communities. See for example Github’s Open Source Guides and other resources.
Releasing
While AiFi community is built on many brilliant developers who believe in open source, including prominent open-source project maintainers and contributors, all our developers understand that the emerging autonomous checkout software market is extremely competitive, and our source code is the biggest intellectual property that sets us ahead of competition.
AiFi generally does not publish our code in the open-source form and prohibits the developers from taking such actions on their own. Every instance of open sourcing code that is owned by AiFi requires the developers to get an approval from their manager and the legal team. It is prohibited to release or share on your own any piece of AiFi software or documentation without ensuring that an NDA was signed with the third party.