iot.keyple Restructuring Review
Restructuring rationale
Keyple - restructuring review - more permissive license for extension APIs & usage examples
PMI link: Project restructuring record
The project team is requesting a restructuring review to address the following issues:
For Keyple 'extension API' and 'usage example' elements, we are requesting the possibility of adopting a more permissive license.
The Keyple project currently includes 43 repositories on GitHub:
- 24 repositories contain the code for 24 active Keyple library components
- 7 repositories correspond to Keyple API components
- 2 repositories offering examples of best practice for implementing Keyple components
- 2 repositories to host the project website
- 6 repositories used for continuous integration
- 2 archives of the first trial of the project, which was then in the form of a single library (before being split into multiple libraries, and before the introduction of extension APIs)
Component | API | keyple-common-java-api / keyple-common-cpp-api / keyple-distributed-local-java-api / keyple-distributed-remote-java-api / keyple-plugin-java-api / keyple-plugin-cpp-api / keyple-plugin-storage-card-java-api |
Component | Library | keyple-card-calypso-crypto-legacysam-java-lib / keyple-card-calypso-crypto-pki-java-lib / keyple-card-calypso-java-lib / keyple-card-calypso-cpp-lib / keyple-card-generic-java-lib / keyple-card-generic-cpp-lib / keyple-distributed-local-java-lib / keyple-distributed-network-java-lib / keyple-distributed-remote-java-lib / keyple-plugin-android-nfc-java-lib / keyple-plugin-android-omapi-java-lib / keyple-plugin-cardresource-java-lib / keyple-plugin-pcsc-java-lib / keyple-plugin-pcsc-cpp-lib / keyple-plugin-stub-java-lib / keyple-plugin-stub-cpp-lib / keyple-service-java-lib / keyple-service-cpp-lib / keyple-service-resource-java-lib / keyple-service-resource-cpp-lib / keyple-util-java-lib / keyple-util-cpp-lib / keypleless-distributed-client-kmp-lib / keypleless-reader-nfcmobile-kmp-lib |
Support | examples of use & good practice | keyple-java-example / keyple-cpp-example |
Support | Continuous Integration | .eclipsefdn / .github / keyple-actions / keyple-cpp-meta / keyple-integration-java-test / keyple-ops |
Support | Website | keyple-website / keyple-api-docs |
Archived Component | Library | keyple-java / keyple-cpp |
All these repositories (except the otterdog setting repository) are currently published under the EPLv2 license. This is a choice that is perfectly suited to library-type components, for which it is important to offer behaviour guarantees for any integration, and for which any optimization or correction by a user needs to be shared with the community.
- The API components are intended to enable the development of extensions to the Keyple project: these extensions must be able to be realized without license conditions. → we therefore propose to switch the 7 Keyple APIs repositories to the MIT license.
- Similarly, the point of the good practice examples for implementing Keyple components is that they should be massively adopted by users so that Keyple is properly integrated. There is no need modifications' restitution for these elements; on the contrary, the adoption must be facilitated. → We therefore propose to switch the 2 usage example repositories to the MIT license.
Expected infrastructure changes
The following infrastructure changes are requested by the project team:
- Other(s)
- addition of the MIT license usage to the PMI page (https://projects.eclipse.org/projects/iot.keyple )
Restructuring To-Do list
In order to implement the proposed changes, we need to complete the following:
-
EMO (ED) approval -
PMC approval -
Project community informed using public channels (i.e. dev mailing list and/or forums) -
Releng team informed (add @fgurr) -
IT team informed (add @webmaster) -
Infrastructure changes implemented