Closed dicej closed 1 year ago
I reviewed componentize-py and found it to be in excellent alignment with the Bytecode Alliance Mission and principles. I only had a few notes:
CONTRIBUTING.md
is desirable. Some info like building from source is in the README. pyproject.toml
as 0.3.2Thanks for taking a look, @ricochet. I would also note that I'm planning to add doc and implementation comments to the code (which is sorely lacking in that respect), along with a high-level architecture overview. That will hopefully make the code more approachable to new contributors.
One other thing to mention: componentize-py
depends on component-init which used to be a subcrate of the project, but I split it out into its own repo at @guybedford's request so it could be reused by other projects more easily. It's sort of a "Wizer, but for components", but also designed to be runtime agnostic (i.e. explicitly avoiding a Wasmtime dependency) so it can be more readily reused in e.g. jco
. Should I create a separate proposal to make that a BA-hosted project as well?
The TSC has reviewed this proposal, and I am happy to say that it was approved.
The one thing we would like to see is a CONTRIBUTING.md
, as noted above. (This can happen before or immediately after transfering to the BA org, either way works). Note that we aren't asking for a ton of new content, just that the relevant bits from README.md
are split out to CONTRIBUTING.md
. More details can always be added in follow up PRs.
I will leave it to @tschneidereit to handle the transfer from here.
Oh and regarding component-init
, we can leave it where it is for the time being: I will separately review it and see whether I think it makes sense to fold into Wizer or whether we should encourage it to be its own project in the BA.
I've added a CONTRIBUTING.md
file, as requested. I also tried transferring it to the BA org, but got You don’t have the permission to create public repositories on bytecodealliance
from GitHub. @tschneidereit is going to do some research on what the correct process is.
We've sorted out the repository transfer, so this is all ready to go. Thank you again for all the effort you put into getting componentize-py to this point, and for donating it to the BA, @dicej!
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.
Project Summary
componentize-py
is a project to create components using the Python programming language, analogous to howjco 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 emulateddlopen
/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. 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 and other governing documents (such as the Security Policies and IP Policy). 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:
Supporting Members
The following individuals support the creation of componentize-py: