Ada User Awards
Authors: Fernando Oleo Blanco, Tucker Taft, Dirk Craeynest and Jeffrey R. Carter
Version: 1.0
Introduction and motivation
As the nature of the Ada User Society (AUS) is to support the continued development of the Ada Standard and the wider and further outreach of Ada and its ecosystem, it seems fitting for the AUS to financially support improvements of the Ada ecosystem. For this reason, we would like to propose the creation of a small fund within the AUS which will be dedicated to offering awards for accomplishing tasks that are deemed valuable for the wider Ada ecosystem. For this to be effective, only open-source software may be funded. This fund would be managed by the AUS and would be financed independently to the common revenue streams of the AUS. In the following paragraphs, the basis and organizational structure of such proposals are developed.
Another goal of this proposal is to incentivize both seasoned Ada programmers as well as newcomers, students and young people to contribute back into the community. Additionally, it will help spread the knowledge and reach of those people who participate in the activities while rewarding them with a small economical prize.
Fund management and transparency
The Ada Users Society shall create a separate account from their main account, where the received funds will be stored. This new account shall be reported in AUS’s yearly report.
Funds placed into the new account shall come from donations or specific transfers for the purpose of awarding activities covered in this paper. The only allowed extraction of funds from the account is to pay the award to the people who successfully completed the activities or to subsidize any additional cost of operations (transfer costs, management, etc.). The AUS may, at its discretion, add additional money to the fund for the purpose of financing activities.
The AUS shall disclose the amount of money that is to be paid for each task. Additionally, the AUS shall disclose when a payment has been done and for which task it was carried out. However, the full identity of the recipient should not be disclosed unless they have agreed for their full identity to be shared.
Funding
In order to provide funds to the account and the selected tasks, a form of income is needed. Revenue would come from donations from individuals, institutions or companies that would like to participate in this proposal. The donations will be carried out to the Ada User Society and will be received by the treasurer. It needs to be explicitly indicated in the transfer of funds that the money is meant for the funding of the Ada User Awards.
Termination clause
In case the AUS dissolves or the account needs to be terminated or liquidated, it shall be liquidated as with any other account under the control of the AUS. An alternative method of termination is to hand back the received funds to the people who provided them initially in an equitable and fair manner.
Eligible contributors
Any and all adult individuals (+18) are eligible to participate and receive funds as permitted by the Swiss law. No veto can be applied based on any characteristics or nature of the contributor. The contributor must, however, provide a banking address to which the award transfer can take place. The receiver of the award will be the sole responsible person to deal with the requirements and processing procedures of the tax law within their jurisdiction.
Collaboration among contributors for a specific task is allowed. However, in order to have a clear separation of scope and funding, the collaborating parties must agree, before or right after the project start, what the separation of work and awards will be. If a change in scope takes place during the work, the cooperating parties will need to reach a new consensus on the separation of work and awards in an amicable manner.
Ada User Awards Committee
In order to select projects eligible for an award and supervise the fund, an Ada User Awards Committee will be created. This Awards Committee will be composed of a minimum of three (3) people and a maximum of five (5) and they shall represent the general interests of the Ada Community as they perceive them. The members shall also be as impartial as possible when making decisions.
In order for a project to be selected for an award, the Committee will meet and discuss the different tasks proposed and the Committee will vote on them. An award will only be accepted for funding when more than 50% of all the votes are in favour. The meetings may be carried out through email or with an online or in-person meeting.
The Committee will also allocate a certain award on the task, which may or may not be the one that was recommended in the submission of the task.
If a proposed task is voted on and accepted, but has had no submissions or nobody has shown interest in the task for a year, the Committee may, at its discretion, take back the award for the accepted task and vote for a new task to be selected. An increase of the award for a task is also a possibility if the Committee votes on it.
The Awards Committee may welcome new members when an application for membership is received and the constitution of the Committee will be voted on by the Board of Directors of the Ada User Society.
The Committee, or independently, the Board of Directors of the Ada User Society, may modify the content of this document with a vote that is, at least, 75% in favour.
The initial composition of the Committee is: Fernando Oleo Blanco, Tucker Taft, Dirk Craeynest and Jeffrey R. Carter.
Types of projects, description, characteristics, requirements and contributions
The goal of the funds is to support the widest number of users possible and to have the largest impact in the Ada ecosystem. Therefore, any and all projects funded shall be publicly available to the community through the use of an open-source license as defined by the FSF [1].
- Acceptance criteria: for a project proposal to be accepted by the committee it shall represent a substantial value for the community, such as: improve the quality of life of developers, improve or complete existing tools in a project where the project would not do so by itself, or carry out tasks that the community itself does not put much effort into. The scope of the task needs to be clearly defined.
- License requirement:
- The contributor shall ensure that any work to be upstreamed complies with copyright requirements.
- The license of the contributed software shall be either the same license as the upstream project or a less restrictive and compatible license (such as contributing MIT-licensed code to a GPLv2 project).
- Code whose license can be chosen freely (either because it is a new project or the upstream code does not enforce a single license) shall be licensed under the MIT, BSD 2-Clause, or Apache-2.0 licenses.
- Documentation generated by an awarded task shall be licensed under the Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0) or equivalent license.
- Other requirements:
- The contributor shall ensure that the work to be carried out will most likely be accepted by the project maintainers (initial contact and discussion with maintainers is encouraged).
- The Ada standard to be used is 2012 or newer unless the project requires otherwise.
- Other desired properties
- Write portable Ada code where possible, by testing it also with non-GNAT compilers [2, 6].
- If it makes sense and it is reasonable, the upstream project shall be published in the Alire [3] index if it is not already there, or updated if it is.
- Note: the proposal may not necessarily require Ada. One example may be to improve an Ada code generation tool that is written in Python. Or improving Ada support within an editor.
Creation and selection of proposals, acceptance criteria and release of funds
Projects shall be proposed in either of the following manners:
- A proposal may be directly presented to the Awards Committee. An email must be sent to one or more members of the Committee. The receiving member(s) will bring forth the proposal in the Committee discussion for it to be considered by the whole Committee.
- A proposal may be described in an entry of the Ada-Lang Forums [4], within the “Project Ideas” category.
For a project proposal to be considered by the Committee, it must meet the following minimum criteria:
- A short descriptive title.
- A short description of the task that is to be carried out and the goals that need to be achieved. The goals need to be as close to the S.M.A.R.T [5] principle as possible (Specific, Measurable, Assignable, Realistic, and Time-bound).
- An acknowledgement that the requirements indicated in the Section “Types of projects, description, characteristics, requirements and contributions” can be fulfilled.
- The expected award that would serve as a fair incentive.
- However, the Committee will decide on the final award. This is due to the limited nature of the fund.
- If the submitter of the proposal is willing or wants to fully or partially finance the activity.
- Note: if this field does not appear in the proposal, it is understood that the submitter will not provide any funds.
It is recommended that the individual proposing the task also includes as many references, resources and potential solutions to the task as possible so as to help anybody attempting it.
Additionally, there are some aspects that need to be noted:
- The person proposing the task may also participate in it and be awarded for the results. However, if this is the case, it shall be communicated as part of the proposal.
- Any third party, not related to the person who submitted the proposal, can carry out the task and claim the award.
- A task that has already been finished within the year prior to its proposal, can also be eligible for an award.
- Note: the author(s) that carried out the work can present a proposal themselves, as indicated in the first bullet point. Additionally, third parties may also submit some piece of work for it to be considered for an award, but only the person who carried out the task will be awarded.
- The Committee may grant an award to a task or achievement if they analyze it to be worthy of such, even if there was no proposal from a person external to the Committee for it to be considered.
- A task that is carried out within the framework of a paying job is not eligible and cannot be awarded.
Selection criteria for projects
The Committee will vote via email or meeting (online or in-person) what projects they would like to name as eligible for an award and how much should the price be. The general criteria for the Committee to analyze and select proposals will be the following:
- The technical feasibility of the proposal. Unrealistic tasks will not be accepted.
- General impact of the proposal. Tasks that have the potential to help or be utilized by a larger number of users will be prioritized.
- Proposals that help promote the use of Ada will be prioritized.
- Proposals that help the tooling of Ada (compiler features, core libraries, important tools) will be prioritized.
- Proposals that help showcase Ada, its features and strengths, will be prioritized.
- Proposals that help advance the development of Ada (such as feature prototyping), its ecosystem, testing, etc, will be prioritized.
Requirements for awarding a task
The results of the tasks will be analyzed by the Committee on their impact and technical implementation. Only those that are deemed to be well-engineered may be awarded. The criteria followed are based on the following factors if applicable:
- A complete fulfillment of the task’s objectives.
- A technical explanation can be given if the complete fulfillment of the task cannot be carried out. If the Committee finds the explanation reasonable, a partial or total award can be given as decided by the Committee.
- A well-engineered solution.
- This requires clean, readable and maintainable code (or other result) which follows Ada standards and meets the main project’s quality requirements.
- The code must be publicly available.
- If the task was part of an already existing solution, it shall have been upstreamed.
- Possibility of future improvements or extension of features.
- The results of a task shall not make future changes and improvements a burden.
- Maintainability of the generated solution.
- The Committee must have been notified of the completion of a task.
Announcements and communication of eligible tasks for an award and awarded works
The tasks or works which have been deemed eligible for an award will be published in the Ada-Lang’s “Projects to work on” section and in the relevant Ada-Forum [4] threads in order to let the public know what the Committee is willing to award. The announcement shall contain the description of the task or reference the submission, the amount of the award and any additional information that may be relevant for the task itself.
The Committee will make an announcement in the Ada-Forum [4] regarding the awarding of a task when this takes place. The person(s) who will be awarded will be additionally contacted via email or the medium with which they initially informed the Committee of the completion of the task.
Communication channel
When contact with the Committee is needed, the email <awards@ada-user.org> should be used. If questions or issues arise regarding a given task, it is recommended that participants contact the Committee.
AI-Policy
The goal of the Ada Awards is to promote work within the Ada ecosystem and produce quality results. AI can help to speed up tasks, to find bugs, to produce documentation or to perform other auxiliary tasks. For this reason, AI usage is allowed as long as it complies with upstream policies (code being submitted to other projects has to comply with that project’s AI policy), the quality and documentation standards are met, when the work and knowledge has been mostly carried out by the person being awarded and responsibility for the produced work is taken by that person. However, if AI is used to fulfill a task, the scope of the work carried out by the AI needs to be disclosed. NLnet’s AI policy [7] can be used as a general guide for any questions, issues or limitations regarding the use of AI.
REFERENCES
[1] https://www.gnu.org/licenses/license-list.en.html
[2] https://www.ptc.com/en/products/developer-tools/objectada
[4] https://forum.ada-lang.io/
[5] https://en.wikipedia.org/wiki/SMART_criteria