Please describe your proposed solution.
Context
- Pallas, a growing library of modules, offers a native Rust implementation of essential Ouroboros/Cardano logic. While it doesn't offer specific applications, Pallas serves as a foundational layer to streamline the development of higher-level use-cases like explorers, wallets, and potentially even a full node in the distant future. Its purpose is to provide a solid base for building advanced functionalities atop the Cardano ecosystem.
- Txpipe has developed the core of the project and has taken the lead on the effort of providing an implementation of Ouroboros mini-protocols for multipurpose uses.
- The Pallas library, being utilized by 36 projects, underscores its significance in staying updated with protocol changes. Maintaining its compatibility ensures its relevance and continued support for the broader community.
Scope of the Proposal
- Recruit a new developer, either from TxPipe or from any interested party in the community, to become a paid open-source maintainer to the Pallas repository. Competency will be evaluated by TxPipe.
- Ensure participation of this new contributor throughout a period of 6 months; This maintainer will be responsible for tasks such as:
- Submitting code via pull requests.
- Reporting bugs or suggesting new features.
- Improving documentation.
- Helping with project infrastructure.
- Assisting in managing issues.
- Closely monitoring protocol changes and actively implementing the necessary code adjustments within the Pallas library.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
A new contributor addresses the challenge by providing the following benefits:
- New contributors often bring with them their own network of contacts, who may become interested in the project as a result.
- Each new contributor represents one more person who understands the project and can work on it; improving the long-term sustainability of the project.
- A fresh set of eyes can often spot redundancies, inefficiencies, and bugs that people who've been deeply involved in the project may overlook; improving the overall quality of the project.
- A new contributor might bring knowledge of libraries, tools, or techniques that are not present in the current set of senior maintainers and contributors.
- A steady influx of new contributors can signal a vibrant, active, and inclusive community, which can enhance the perceived reputability.
How do you intend to measure the success of your project?
Measuring the level of participation of an open-source contributor can be both quantitative and qualitative. Here are specific metrics that we’ll use to measure the impact of the contribution:
- Commit frequency: This is a basic metric that measures the number of commits a contributor has made to the project. This gives an idea of their overall activity level.
- Lines of code: The number of lines of code a contributor has added, modified, or deleted.
- Pull requests: The number of pull requests a contributor has created, as well as how many have been accepted.
- Issue involvement: how often the contributor has created new issues, commented on existing issues, or helped to resolve issues.
- Code quality: an assessment of the quality of the contributed code as evaluated by the senior members of the team.
- Review involvement: Participation in code reviews, both as a reviewer and as a reviewee.
- Community involvement: level of participation in issues and discussions within the context of the repository but also in different channels across the ecosystem (stackoverflow, twitter, etc).
Please describe your plans to share the outputs and results of your project?
We’ll provide a public report describing the activities of the contributor on a monthly basis. These reports will provide:
- Contribution Graphs: Tools like GitHub provide contribution graphs that can visually depict a contributor's activity over time. This can provide an easy-to-understand overview of their involvement.
- Acknowledgement in Release Notes: When new versions of the software are released, the release notes can include acknowledgments of those who contributed to that release. This gives visibility to contributors in a highly visible document.