Bounties
The RISC OS Open bounty scheme is an open mechanism for the community to sponsor development of features and fixes in RISC OS.
It all starts with donations
People look through the list of open bounties and see if there is something they’d really like to see done there. If there is, they “vote” by making a non-refundable financial donation. Donations can be as large or small as the individual wants. Meanwhile, developers keep an eye on the list and see if there are open bounty items they would like to tackle. If a developer wants to claim an open bounty item, they get in contact with ROOL.
How we select bounties
ROOL chooses bounties by scouring the forum devoted to this process, items on the RISC OS Roadmap, talking to community members at shows, and amongst ourselves. Generally, we try to avoid bounties that seem to be too wide in scope or muddy; for example, rather than having a bounty that simply said someone should “improve the filesystem”, there would be a series of bounties addressing specific, well bounded areas within the filesystem that needed attention.
So far we’ve found several areas where tackling one piece of work requires prior completion of another, so in such cases we’ll tend to only open up the bounty for the first piece of work, but perhaps let people know in its description that it forms a prerequisite for future developments which the community might find more interesting in the long run. Sometimes it’s not so exciting laying foundations, but they still need to be laid!
Exceptions to the rule
There are a couple of bounties which don’t conform to the standard model outlined above. These are special cases where the money isn’t put in a pot to be paid out to a developer for delivering some software. This currently includes the annual RISC OS General bounty – see its ‘description’ page for more information of where this money is spent.
What do the bounty targets mean?
RISC OS Open sometimes displays an indicative target figure for a bounty – this is purely a guide based upon our rough estimate of the amount of work multiplied by minimum wage. The amount raised against the bounty is updated each time we receive a donation; it’s up to anyone wishing to claim the bounty to decide what they believe is a suitable amount to motivate them and this figure may be more or less than our indicated target. It’s not for ROOL to decide someone’s hourly rate!
Current bounty status
The following table shows the status of each of the current bounties, along with an estimate of how far completed they are against plan:
Bounty | Status | Completion | Latest updates |
---|---|---|---|
More recent LanManFS protocols Opened 13-Jun-2019 |
Collecting |
- |
|
TCP/IP stack overhaul (Step 3 of 4) Opened 13-Jun-2019 |
Collecting |
- |
|
Desktop Unicode support Opened 25-Apr-2021 |
Collecting |
- |
|
Filing system improvements (step 3) Opened 25-Apr-2021 |
Collecting |
- |
|
Filing system improvements (step 2) Opened 01-Jan-2015; Claimed Oct-2018 |
On hold |
10% |
04-Feb-2021 Progress review with developer 21-Apr-2021 Progress review with developer 30-Jul-2021 Review slot booked with developer (missed) 26-Oct-2021 Progress review with developer 26-May-2022 Programme of work being rescoped |
Git source control client Opened 13-Jun-2019; Claimed Mar-2021 |
Waiting on developer |
38% |
31-May-2023 Preview release sent to parties who volunteered to test, ahead of wider beta release 29-Jun-2023 Workaround for shared library conflict with Iris 11-Jul-2023 Technical discussions with developer 16-Jul-2023 Contacted Iris developer to seek shared library advice 20-Jul-2023 Technical discussions with developer 21-Jul-2023 Updated GUI/CLI client received 06-Aug-2023 Changes reviewed, feedback sent to developer 19-Aug-2023 Technical discussions with developer 12-Sep-2023 Technical discussions with developer 17-Sep-2023 Updated preview release sent out with more command options and fixes |
Improvements to !Paint Opened 01-Jan-2015; Claimed Oct-2016 |
On hold |
75% |
28-Jan-2023 Unpaletted paint-with-sprite into unpaletted 256c in review 04-Feb-2023 Translucent 256c paint-with-sprite enabled in Paint 2.52 + ColourTrans 1.96 07-Apr-2023 Marked up User Guide chapter received covering recent additions 16-Apr-2023 Draft chapter returned with changes integrated 17-May-2023 Marked up User Guide chapter received with additions 20-May-2023 Technical discussions with developer 02-Jul-2023 Query current status with developer 10-Jul-2023 Removed editable DPI feature, needs more thought |
Revised Programmer’s Reference Manuals Opened 25-Apr-2021; Claimed Apr-2023 |
In progress |
3% |
19-Jun-2023 Seat of software in place, awaiting server access 23-Jun-2023 Server access set up 20-Jul-2023 Technical discussions with developer 09-Aug-2023 FileCore chapter changes from earlier bounty integrated 16-Aug-2023 Technical discussions with developer 02-Sep-2023 Technical discussions with developer |
TCP/IP stack overhaul (Step 2 of 4) Opened 14-Mar-2018; Claimed Jan-2022 |
In progress |
22% |
08-Mar-2023 Increased the socket pool from 96 to 256 in Internet 5.66 11-Mar-2023 Changes to Gopher 0.18, GenericFetcher 0.12, FTP 0.45 to remove COMPAT_INET4 22-Mar-2023 Changes to OmniNFS 0.74 to remove COMPAT_INET4 28-Mar-2023 Technical discussions with developer 27-May-2023 Changes to HTTP 1.09 to remove COMPAT_INET4 09-Aug-2023 5x redundant headers removed from TCPIPLibs 5.77 25-Aug-2023 Changes to OmniClient 2.34 to remove COMPAT_INET4 |
Toolbox reunification Opened 13-Jun-2019; Claimed Nov-2020 |
In progress |
9% |
13-Aug-2023 Tentative fix for Menu problem, re-running test cases 21-Aug-2023 Tests pass, awaits source code to review 23-Aug-2023 Updated Menu sources in reviewing step 28-Aug-2023 Changes applied in Menu 0.42 07-Sep-2023 Technical discussions with developer 16-Sep-2023 Tabs and TreeView veneers now incorporated into tboxlibs 1.21 |
Update and debug USB stack (Step 2 of 2) Opened 19-Feb-2017; Part claimed Nov-2022 |
Waiting on ROOL |
7% |
26-May-2023 First pass review complete, feedback sent to developer 04-Jun-2023 Technical discussions with developer 25-Jun-2023 Second pass review complete, feedback sent to developer 26-Jun-2023 Technical discussions with developer 01-Jul-2023 Technical discussions with developer 16-Jul-2023 Technical discussions with developer 15-Aug-2023 Test module with code to prevent hang on reinit sent to developer 16-Sep-2023 Seeking a stand in developer, original claimant has stepped down 25-Sep-2023 Completed source code received from stand in developer |
What happens when a bounty is claimed
Once ROOL and the developer or developers have got in touch, some kind of acceptance criteria will be needed so that people who have donated to the bounty, as well as ROOL, can be sure that the developer has completed the job properly. Although bounty descriptions contain a reasonable amount of information about what the bounty is for, it isn’t feasible to go into too much detail at such an early stage as there may be a requirement for significant technical investigation and this may be pointless should the community ultimately show no interest in the bounty at all. So – that’s all left until the bounty gets underway.
As for setting a deadline on bounty completion, we take a pragmatic view that we should periodically review progress and then reach an amicable agreement with the developer if things aren’t progressing as we’d hoped.
On completion
When a developer or developers complete the task or tasks that make up a bounty item and previously agreed acceptance criteria have been met, the developer(s) will be paid the amount that the community donated to that bounty item. This may need to be declared as income, depending on the developer(s) personal tax situation.
Implementation conflict resolution
It’s conceivable that a bounty might be started by a developer/developers, only for ROOL and/or the developer(s) to later become aware that someone else was independently working on the same thing but wasn’t aware of the bounty item. In such cases all we can do is offer to mediate between the various parties to assign an appropriate proportion of the donated amount for the bounty and help merge the source they have produced.
Failure to deliver
If a developer fails to meet with the agreed acceptance criteria within some pre-agreed reasonable time, one of two things will happen:
- ROOL will grant them an extension to try to finish their work or
- ROOL will re-open the bounty to other developers.
In the second case, it would be up to the developer to decide what they want to do with whatever development they had managed to complete. Clearly, because we won’t actually pay any of the bounty until we deem it to have been completed to our satisfaction, we will try to review progress regularly to avoid developers pouring too much time into something that’s not going to fulfil the bounty’s objectives!
What happens if a bounty is never claimed
It’s possible that a bounty might not get claimed within “a reasonable time” (the exact time may vary depending upon the nature of the task and the number of donations it has – or perhaps, has not! – attracted). ROOL will firstly actively seek a suitable developer should the bounty have reached its indicative target (see caveats on how the target is calculated), this may not succeed within “a reasonable time” either, but deals with the possibility that a potential developer simply wasn’t aware of the opportunity. Should ROOL decide that a bounty needs to be expired, we’ll close the item. If it had attracted any donations, they will get distributed evenly between all other open bounties.
I don’t use PayPal
If you would rather donate via cheque, please make cheques out to “RISC OS Open Ltd.” and post to:
RISC OS Open Ltd.c/o Watermill Accounting,
Future Business Centre,
Kings Hedges Road,
Cambridge, Cambridgeshire,
England, CB4 2HY
Please also email notify@riscosopen.org to let us know of your donation, how much and what you want it put towards. It may take us a week or two from you posting the cheque to us updating the stuff on the bounties page because of the extra admin in routing the cheque. We can also receive donations by bank transfer (BACS or SWIFT).