aeternity is a public good which was made possible due to the support from a world wide community that believes in the impact of Blockchain technology.
The purpose of the aeternity crypto foundation is to support the Open-source research and development of the aeternity ecosystem in a sustainable manner. Therefore, technical maintenance, research and development grants are provided on an ongoing basis. Anyone in the world can apply.
Even though the work of grant recipients will be Open-source and available to anybody at all times in an Open Access manner, it is still important to actively update the community via intemediary reports on the progress, goals and challenges during the research.
This is why the aeternity crypto foundations is issuing guidelines for active community participation and reporting towards the entire community by grantees.
The goals of each grantee's work on the aeternity ecosystem should be:
Every potential and active work item must be tracked in the product's project management system and described in sufficient detail to allow community members and other contributors to follow the progress and potentially engage in further discussions.
To facilitate community involvement each grantee is expected to publish frequent reports on the community forum which satisfy the following requirements to a reasonable degree. Details might vary due to the nature of the grant (technical, non-technical).
Grantee's are expected to adjust their reporting based on community feedback in terms of frequency, detail and coverage.
Every week there is an open public R&D community update call which is recorded and
shared via YouTube. Participation for one grantee per team is mandatory.
To unify reporting, design and documentation as well as technical implementation all tasks, bugs, requests and issues must be publicly tracked through product's project management system (mostly GitHub Issues) and source control system (mostly Git on Github).
If applicable, all functionality needs to be documented and include example usage. All documentation must be on GitHub and should be organised in a tool like read-the-docs or mkdocs. Example usage should be treated like tests (that can break) and that should be automatically run with every new version.
The proposal outlines the use of Github as the singular tool to handle technical projects related to aeternity.
Most technical projects require 3 tools:
The technical Open-source research projects under the umbrella of ACF grants use various combinations of tools for these tasks. The different tool per Open-source research project allows each team to use their preferred tool, but makes it hard to move between Open-source research projects let alone contribute to multiple Open-source research projects. This is true even for active aeternity developers.
In regards to project management Github is more a framework than a fixed set of processes. It provides the basic building blocks to implement project management processes using Issues, Labels, Milestones and Bots. As such using Github for project managements requires effort, both initially and ongoing. Therefore, it is best to share the PM processes between projects to be able to re-use Bots and labeling logic.
Any size of Open-source research project should use Issues, Milestones, Labels and PRs. Large Open-source research projects should also use Github Projects.
Issues serve as the means for users to provide feedback in the form of bug reports or feature requests. Moreover, team members should use issues to capture work items.
As a general rule of thumb no work should be done without an appropriate issue being present. This ensure that all work has a minimum amount of documentation and can be attributed later on. Also the result is that any PR must link to at least one issue.
Labels are the glue between issues and PRs as they can be applied to both. While being very generic, labels can be purposefully named to allow proper categorization of issues and PRs.
At a minimum the following categories should be used: