|  | 
|  | 1 | +# Open Source Policy | 
|  | 2 | + | 
|  | 3 | +## 1. Introduction | 
|  | 4 | + | 
|  | 5 | +This Open Source Policy outlines the licensing, contribution, and compliance | 
|  | 6 | +requirements for all code released under the Elixir project. By adhering to | 
|  | 7 | +these guidelines, we ensure that our community, maintainers, and contributors | 
|  | 8 | +uphold both legal and ethical standards while fostering a collaborative, | 
|  | 9 | +transparent environment. | 
|  | 10 | + | 
|  | 11 | +This policy exists to support and protect the Elixir community. It aims to | 
|  | 12 | +balance openness, collaboration, and respect for all contributors’ rights, | 
|  | 13 | +ensuring that Elixir remains a trusted and innovative open source project. | 
|  | 14 | + | 
|  | 15 | +## 2. Scope | 
|  | 16 | + | 
|  | 17 | +This policy applies to the Elixir Programming language, located at | 
|  | 18 | +https://github.com/elixir-lang/elixir. It covers every file, and contribution | 
|  | 19 | +made, including documentation and any associated assets. | 
|  | 20 | + | 
|  | 21 | +## 3. Licensing | 
|  | 22 | + | 
|  | 23 | +All code released by the Elixir team is licensed under the | 
|  | 24 | +[Apache-2.0](./LICENSES/Apache-2.0.txt) license. Additionally, the following | 
|  | 25 | +licenses are recognized as permissible in this project: | 
|  | 26 | + | 
|  | 27 | +- The Unicode license, as documented at | 
|  | 28 | +  [LicenseRef-scancode-unicode](./LICENSES/LicenseRef-scancode-unicode.txt) | 
|  | 29 | +- The Elixir Trademark Policy, as documented at | 
|  | 30 | +  [LicenseRef-elixir-trademark-policy](./LICENSES/LicenseRef-elixir-trademark-policy.txt) | 
|  | 31 | + | 
|  | 32 | +These licenses are considered acceptable for any files or code that form part of | 
|  | 33 | +an Elixir repository. If a contribution requires a different license, it must | 
|  | 34 | +either be rejected or prompt an update to this policy. | 
|  | 35 | + | 
|  | 36 | +## 4. Contributing to Elixir Projects | 
|  | 37 | + | 
|  | 38 | +Any code contributed to Elixir repositories must fall under one of the accepted | 
|  | 39 | +licenses (Apache-2.0, Unicode, or Elixir Trademark). Contributions under any | 
|  | 40 | +other license will be rejected unless this policy is formally revised to include | 
|  | 41 | +that license. All files except those specifically exempted (e.g., certain test | 
|  | 42 | +fixture files) must contain SPDX license and copyright headers | 
|  | 43 | +(`SPDX-License-Identifier` and `SPDX-FileCopyrightText`). If a file qualifies | 
|  | 44 | +for an exception, this must be configured in the ORT (Open Source Review Toolkit) | 
|  | 45 | +configuration and undergo review. | 
|  | 46 | + | 
|  | 47 | +Contributions must not introduce executable binary files into the codebase. | 
|  | 48 | + | 
|  | 49 | +Every Elixir project within the organization will have an automated GitHub | 
|  | 50 | +Action to enforce these rules. This mechanism aids in detecting non-compliant | 
|  | 51 | +licenses or files early in the review process. | 
|  | 52 | + | 
|  | 53 | +## 5. Preservation of Copyright and License Information | 
|  | 54 | + | 
|  | 55 | +Any third-party code incorporated into Elixir projects must retain original | 
|  | 56 | +copyright and license headers. If no such headers exist in the source, they must | 
|  | 57 | +be added. This practice ensures that original authors receive proper credit and | 
|  | 58 | +that the licensing lineage is preserved. | 
|  | 59 | + | 
|  | 60 | +## 6. Objectives | 
|  | 61 | + | 
|  | 62 | +The Elixir project aims to promote a culture of responsible open source usage. | 
|  | 63 | +Specifically, our objectives include: | 
|  | 64 | + | 
|  | 65 | +### 6.1 Clearly Define and Communicate Licensing & Compliance Policies | 
|  | 66 | + | 
|  | 67 | +We will identify and document all third-party dependencies, ensure that license | 
|  | 68 | +information is communicated clearly, and maintain a project-wide license policy | 
|  | 69 | +or compliance handbook. | 
|  | 70 | + | 
|  | 71 | +### 6.2 Implement Clear Processes for Reviewing Contributions | 
|  | 72 | + | 
|  | 73 | +We will provide well-defined contribution guidelines. We utilize adopt a | 
|  | 74 | +Developer Certificate of Origin (DCO) for additional clarity regarding | 
|  | 75 | +contributor rights and obligations. | 
|  | 76 | + | 
|  | 77 | +### 6.3 Track and Audit Third-Party Code Usage | 
|  | 78 | + | 
|  | 79 | +All projects will implement a Software Bill of Materials (SBoM) strategy and | 
|  | 80 | +regularly verify license compliance for direct and transitive dependencies. | 
|  | 81 | + | 
|  | 82 | +### 6.4 Monitor and Continuously Improve Open Source Compliance | 
|  | 83 | + | 
|  | 84 | +We will conduct periodic internal audits, integrate compliance checks into | 
|  | 85 | +continuous integration (CI/CD) pipelines, and regularly review and refine these | 
|  | 86 | +objectives to align with best practices. | 
|  | 87 | + | 
|  | 88 | +## 7. Roles and Responsibilities | 
|  | 89 | + | 
|  | 90 | +### 7.1 Core Team Member | 
|  | 91 | + | 
|  | 92 | +Core Team Members are responsible for being familiar with this policy and | 
|  | 93 | +ensuring it is consistently enforced. They must demonstrate sufficient | 
|  | 94 | +competencies to understand the policy requirements and must reject or request | 
|  | 95 | +changes to any pull requests that violate these standards. | 
|  | 96 | + | 
|  | 97 | +### 7.2 Contributor | 
|  | 98 | + | 
|  | 99 | +Contributors are expected to follow this policy when submitting code. If a | 
|  | 100 | +contributor submits a pull request that does not comply with the policy | 
|  | 101 | +(e.g., introduces a disallowed license), Core Team Members have the authority to | 
|  | 102 | +reject it or request changes. No special competencies are required for | 
|  | 103 | +contributors beyond awareness and adherence to the policy. | 
|  | 104 | + | 
|  | 105 | +### 7.3 EEF CISO | 
|  | 106 | + | 
|  | 107 | +The CISO designated by the Erlang Ecosystem Foundation (EEF) provides oversight | 
|  | 108 | +on queries and guidance regarding open source compliance or legal matters for | 
|  | 109 | +Elixir. The CISO is responsible for checking ongoing compliance with the policy, | 
|  | 110 | +escalating potential violations to the Core Team, and involving legal counsel if | 
|  | 111 | +necessary. This role does not require legal expertise but does involve | 
|  | 112 | +initiating legal or community discussions when needed. | 
|  | 113 | + | 
|  | 114 | +## 8. Implications of Failing to Follow the Program Requirements | 
|  | 115 | +If a violation of this policy is identified, the Elixir Core Team will undertake | 
|  | 116 | +the following actions: | 
|  | 117 | + | 
|  | 118 | +## 8.1 Review the Codebase for Additional Violations | 
|  | 119 | +We will investigate the codebase thoroughly to detect any similar instances of | 
|  | 120 | +non-compliance. | 
|  | 121 | + | 
|  | 122 | +## 8.2 Review and Update the Process or Policy | 
|  | 123 | +In collaboration with the EEF CISO, the Elixir Core Team will assess the policy | 
|  | 124 | +and our internal workflows, making any necessary clarifications or amendments to | 
|  | 125 | +reduce the likelihood of recurrence. | 
|  | 126 | + | 
|  | 127 | +## 8.3 Notify and Train Core Team Members | 
|  | 128 | +We will ensure that all active Core Team Members are informed about any policy | 
|  | 129 | +changes and understand how to apply them in everyday development. | 
|  | 130 | + | 
|  | 131 | +## 8.4 Remove or Replace the Offending Code | 
|  | 132 | +If required, we will remove or replace the non-compliant code. | 
|  | 133 | + | 
|  | 134 | +## 9. Contact | 
|  | 135 | + | 
|  | 136 | +The project maintains a private mailing list at | 
|  | 137 | +[[email protected]](mailto:[email protected]) for handling licensing | 
|  | 138 | +and policy-related queries. Email is the preferred communication channel, and | 
|  | 139 | +the EEF CISO will be included on this list to provide assistance and ensure | 
|  | 140 | +timely responses. While solutions may take longer to implement, the project | 
|  | 141 | +commits to acknowledging all queries within five business days. | 
|  | 142 | + | 
|  | 143 | +## 10. External Contributions of Core Team Members | 
|  | 144 | + | 
|  | 145 | +When Core Team Members contribute to repositories outside Elixir, they do so in | 
|  | 146 | +a personal capacity or via their employer. They will not act as official | 
|  | 147 | +representatives of the Elixir team in those external contexts. | 
|  | 148 | + | 
|  | 149 | +## 11. Policy Review and Amendments | 
|  | 150 | + | 
|  | 151 | +This policy will be revisited annually to address new concerns, accommodate | 
|  | 152 | +changes in community standards, or adjust to emerging legal or technical | 
|  | 153 | +requirements. Proposed amendments must be reviewed by the Core Team and, if | 
|  | 154 | +necessary, by the EEF CISO. Any significant changes will be communicated to | 
|  | 155 | +contributors and made publicly available. | 
|  | 156 | + | 
|  | 157 | +*Effective Date: 2025-02-14*   | 
|  | 158 | +*Last Reviewed: 2025-02-14* | 
0 commit comments