-
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
proposal: Add astx to makim proposal
- Loading branch information
Showing
2 changed files
with
206 additions
and
192 deletions.
There are no files selected for viewing
206 changes: 206 additions & 0 deletions
206
psf/in-progress/makim-astx/psf-proposal-makim-astx-2024.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,206 @@ | ||
# Proposal for Python Software Foundation: Support for Open Science Labs Incubated/Affiliated Projects: Makim and ASTx | ||
|
||
Open Science Labs (OSL) actively supports and incubates projects that contribute | ||
significantly to the open source ecosystem. Our community is dedicated to | ||
enhancing the visibility and development of these projects, notably through our | ||
Internship Program. This program not only offers mentoring but also aids in the | ||
career development of its participants. Additionally, selected projects have the | ||
opportunity to be featured in prestigious initiatives such as the Google Summer | ||
of Code. | ||
|
||
OSL also assists participants in securing funds to continue their contributions | ||
to projects while advancing their professional growth. | ||
|
||
This proposal seeks funding from the Python Software Foundation to accelerate | ||
the development of two projects under the OSL Umbrella: Makim and ASTx. Through | ||
this support, we aim to expand their impact and functionality, benefiting both | ||
the Python community and the broader open source landscape. | ||
|
||
## Makim | ||
|
||
Makim is a versatile Python-based automation tool that simplifies project | ||
management across various programming environments. It utilizes a YAML | ||
configuration for easy setup and a Typer-powered command-line interface, | ||
allowing users to manage interpreters, dependencies, and debugging tasks | ||
efficiently. Makim supports multiple backends for code execution, including | ||
Xonsh, which combines the best features of Bash and IPython to create a powerful | ||
scripting environment. This compatibility across major operating systems like | ||
Linux, macOS, and Windows (via WSL), alongside its ability to streamline DevOps | ||
tasks and software development processes, makes Makim a handy tool for enhancing | ||
productivity and simplifying complex workflows. For more information, please | ||
check out its official documentation: | ||
[Makim Documentation](https://osl-incubator.github.io/makim). | ||
|
||
## ASTx | ||
|
||
ASTx is a versatile framework designed to construct and represent Abstract | ||
Syntax Trees (ASTs) in a language-agnostic manner. It provides a flexible | ||
structure usable across various programming languages and parsing tools. | ||
Although not a lexer or parser, ASTx integrates with any Python-written parser | ||
to offer a high-level representation of ASTs. Within the ArxLang project, | ||
particularly in the IRx library, ASTx serves as the input that is converted to | ||
LLVM IR via llvmlite, and subsequently into binary code. The ArxLang team aims | ||
for ASTx to be a useful tool for any Python-based compiler, enabling | ||
straightforward representation of ASTs and seamless integration with IRx for | ||
automatic compilation into binary code. For more information, please check out | ||
its official documentation: [ASTx Documentation](https://astx.arxlang.org). | ||
|
||
## Form | ||
|
||
- Contact | ||
|
||
- Legal First Name\*: Ivan | ||
|
||
- Legal Last Name \*: Ogasawara | ||
|
||
- Nickname: xmnlab | ||
|
||
- Email \*: [email protected] | ||
|
||
- Address (selection) | ||
|
||
- City \*: | ||
|
||
- Country\*: | ||
|
||
- State/Province/Region: | ||
|
||
- Region Other: | ||
|
||
- Postal Code: | ||
|
||
- Postal Code Suffix: | ||
|
||
- Phone Number \*: | ||
|
||
- Organization | ||
|
||
- Organization Name: Open Science Labs | ||
|
||
- Organization Email: [email protected] | ||
|
||
- Twitter Handle: @opensciencelabs | ||
|
||
- Website: https://opensciencelabs.org | ||
|
||
- Grant Type \*: Development work | ||
|
||
- Grant Title \*: Support for Open Science Labs Incubated/Affiliated Projects: | ||
Makim and ASTx. | ||
|
||
- FAQ & Grants Program Info \*: I have read and understand these pages. | ||
|
||
- Date \*: 01/10/2024 | ||
|
||
- Event’s/project’s website \*: https://opensciencelabs.org | ||
|
||
- Requested Grant Amount (USD) \*: $5,126.00 | ||
|
||
- Grant Amount Breakdown \*: The money will be used for development work, | ||
maintenance, project management and review. | ||
|
||
- Budget \*: | ||
https://docs.google.com/spreadsheets/d/1k0DV6nWafk4YvD73u5hXIKcdBnvJfuZ38QGgQstGDmo/edit?usp=sharing | ||
|
||
- Objective \*: | ||
|
||
The primary objective of this grant proposal is to accelerate the development | ||
of the Makim and ASTx projects, enhancing their functionality, usability, and | ||
compatibility. This grant aims to streamline the development process for | ||
Python projects and programming languages' AST handling, reducing technical | ||
debt, expanding platform support, and facilitating efficient parsing and code | ||
generation. The specific goals to be achieved through this grant are outlined | ||
as follows: | ||
|
||
1. **Functional Enhancements and Platform Support for Makim**: | ||
|
||
- Enhance the clarity and comprehensiveness of the Makim project | ||
documentation, adding a complete guide for the Makim configuration file. | ||
- Introduce a matrix strategy for targets to facilitate efficient testing and | ||
deployment across multiple environments. | ||
- Implement support for interactive arguments, enabling more dynamic and | ||
user-friendly interaction with Makim projects. | ||
- Introduce support for scheduling jobs, enhancing automation capabilities and | ||
workflow management. | ||
|
||
2. **Development and Integration of ASTx**: | ||
|
||
- Enhance ASTx to support more programming constructs such as classes, enum, | ||
lambda, casting, etc. | ||
- Implement additional AST node types to cover error handling, memory | ||
management, and meta-programming constructs, broadening the scope and | ||
applicability of ASTx across different programming paradigms. | ||
|
||
- Beneficiaries \*: | ||
|
||
With the support of this grant, the project will provide opportunities for | ||
skill development and community engagement, particularly for individuals | ||
involved in the project's development and maintenance. The beneficiaries of | ||
this grant include: | ||
|
||
1. **Developers**: | ||
|
||
Abhijeet Saroha, based in India, has previously contributed to Makim and plans | ||
to extend his involvement by dedicating approximately 100-110 hours over the | ||
next 12 weeks. His contributions include implementing user-defined | ||
working-directory configurations by scope levels, introducing command | ||
suggestions through a fuzzy search mechanism for incorrect commands, and | ||
enhancing documentation. | ||
|
||
Similarly, Ana Paula Morais Krelling, based in the US, has actively | ||
contributed to the ASTx project and will continue her efforts, committing | ||
about 120 hours during the same 12-week period. Her key contribution includes | ||
developing an ASCII visual representation for ASTx, which significantly | ||
improves experience handling ASTx nodes in the console during a debugging | ||
process. | ||
|
||
2. **Project Manager**: | ||
|
||
A dedicated project manager will oversee the coordination, scheduling, and | ||
resource allocation for the development of both Makim and ASTx. This role is | ||
pivotal in ensuring smooth project execution and timely delivery of | ||
milestones. The project manager is expected to dedicate a total of 20 hours to | ||
the project. This position is currently open. | ||
|
||
3. **Social Media and Community Manager**: | ||
|
||
Mfonobong Uyah, as the Social Media Manager, will enhance Makim and ASTx's | ||
online presence and community engagement. He will develop and implement | ||
strategies to promote project updates, engage with followers, and build a | ||
vibrant online community. Mfonobong is set to dedicate approximately 16 hours | ||
in total to the project. His efforts will ensure consistent communication, | ||
highlight key milestones, and stimulate interest in Makim and ASTx across | ||
various social media platforms. | ||
|
||
4. **Mentorship, Guidance, and Review**: | ||
|
||
Ivan Ogasawara, a member of the Open Science Labs steering council, will | ||
provide mentorship, guidance, and code review for the Makim and ASTx projects. | ||
With extensive experience in community engagement and project management, Ivan | ||
has previously chaired the SciPy Latin America 2016 conference. As the founder | ||
of Open Science Labs, he has developed several open source Python libraries, | ||
including Makim and ASTx. His work emphasizes support for open source projects | ||
and creating opportunities for new contributors through initiatives like the | ||
Incubator Program and Internship Program. Ivan is committed to dedicating a | ||
total of 30 hours to both projects. | ||
|
||
5. **Fiscal Sponsor**: | ||
|
||
Makim is developed within the Open Science Labs Incubator Program, while ASTx | ||
is part of the ArxLang Project, which is affiliated with Open Science Labs. | ||
Funding for both projects is administratively managed through Open Science | ||
Labs' fiscal host, [Open Source Collective](https://opencollective.com/osl). | ||
|
||
- Regional Support | ||
|
||
The remain funding would be used to maintain the both ASTx and Makim | ||
updated. | ||
|
||
- Link to Code of Conduct \*: https://opensciencelabs.org/about/coc/ | ||
|
||
- Percentage of Python \*: 100% | ||
|
||
- Follow-up activities \*: | ||
|
||
As a follow up activity, we plan to promote Makim and ASTx in conferences | ||
and events. |
This file was deleted.
Oops, something went wrong.