# Proposal to Create componentize-py
This document is a proposal to create componentize-py as a formal (Hosted) Project under the auspices of the TSC of the Bytecode Alliance, as specified in the [TSC Charter](https://github.com/bytecodealliance/governance/blob/main/TSC/charter.md).
## Project Summary
`componentize-py` is a project to create components using the Python programming language, analogous to how `jco componentize` creates components using JavaScript. It currently resides at https://github.com/dicej/componentize-py/ and is published to PyPI at https://pypi.org/project/componentize-py/. In addition to supporting guest code written in pure Python, it supports native extensions written in C, C++, and other native languages via emulated `dlopen`/`dlsym` functions. We aim to make this tool the easiest, most efficient way to build components using Python.
This project has been developed with the advice and assistance of the members of the Python subgroup of the Guest Languages SIG, including @brettcannon, who currently maintains the CPython WASI port on which `componentize-py` is based.
## Governance Summary
This project will begin with @dicej (Joel Dice, Fermyon) as the primary maintainer, with informal assistance from the Guest Languages SIG Python subgroup. By making this a hosted Bytecode Alliance project, we hope to attract additional contributors going forward.
## Software Development Process
The project will meet the passing criteria for the [OpenSSF best practices badge](https://bestpractices.coreinfrastructure.org/en/criteria/0). Pull requests, issues, CI, and release management will be performed via GitHub.
## Alignment with Bytecode Alliance Mission and Goals
Bytecode Alliance projects represent the mission and goals of the Bytecode Alliance itself.
We understand that as a Bytecode Alliance project, our project must adhere to the [TSC Charter](https://github.com/bytecodealliance/governance/blob/main/TSC/charter.md) and other governing documents (such as the [Security Policies](https://bytecodealliance.org/security) and [IP Policy](https://bytecodealliance.org/assets/ip-policy.pdf)).
As a Bytecode Alliance project, our project's source code and other pieces of intellectual property will be assigned to the Bytecode Alliance.
We understand and agree that:
- All code for this project must be under the [Apache v2 License with the LLVM exception](https://github.com/PROJECT_LICENSE), unless an exception is required for compliance with existing licensing, and granted by the Bytecode Alliance's board of directors per [IP Policy](https://bytecodealliance.org/assets/ip-policy.pdf) ยง4. If our code is not already licensed accordingly, we will take the necessary steps to correct this prior to becoming a Bytecode Alliance Project.
- We will comply with the [Security Policies](https://bytecodealliance.org/security).
- Project name, trademarks, logos, wordmarks, and other intellectual property other than source code and documentation copyright is assigned to Bytecode Alliance per the [IP Policy](https://bytecodealliance.org/assets/ip-policy.pdf).
- Social media handles, GitHub repository access, and other relevant communication and coordination platforms will be overseen by Bytecode Alliance. Administrative/Owner permissions will be granted to the Bytecode Alliance for all such accounts.
- We will abide by the definition of a project as set forth in the [TSC Charter](https://github.com/bytecodealliance/governance/blob/main/TSC/charter.md).
- This project must remain under active development or maintenance, or it may be archived by the Bytecode Alliance.
- This project may be reviewed from time to time by the TSC, and project maintainers will assist with this review process.
- Project members will be able to participate in Bytecode Alliance governance, as specified in the [TSC Charter](https://github.com/bytecodealliance/governance/blob/main/TSC/charter.md) and other governing documents.
## Supporting Members
The following individuals support the creation of componentize-py:
- Joel Dice (Fermyon)
- Till Schneidereit (Fermyon)
- Kyle Brown (SingleStore)