Difference between revisions of "Bounties"
m |
m |
||
| (29 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
New bounties are being worked on. There have been a lot of changes since the bounties were first written and it needs to be updated. An announcement will be made when this page is updated again. 2026-Jun-01 | |||
= Code Requirements = | = Code Requirements = | ||
Code submitted to a bounty needs to meet applicable requirements below for quality control purposes. Failure to meet a requirement will be pointed out in the code review. Minor issues are likely to be allowed but will affect your bonus. | |||
* All submitted code must have good unit test coverage | * All submitted code must have good unit test coverage | ||
* Unit tests should take at most 50ms to complete each | * Unit tests should take at most 50ms to complete each | ||
** Current unit tests take on average 10ms each | ** Current unit tests take on average 10ms each, shoot for 2ms or less | ||
* When applicable, provide a usage example with example data | * When applicable, provide a usage example with example data | ||
* All code and comments must be in English | * All code and comments must be in English | ||
* All code must be in pure Java unless specified otherwise | |||
* No merge conflict with latest SNAPSHOT | * No merge conflict with latest SNAPSHOT | ||
* All unit tests must pass | * All unit tests must pass | ||
* | * Maximize use of existing internal functionality | ||
** Not sure if a capability already exists? Ask! | |||
** | |||
* Adding new external libraries is discouraged and will need to be justified | * Adding new external libraries is discouraged and will need to be justified | ||
* Code should minimize the creation of new memory and use a single thread | |||
* Code should minimize the creation of new memory and | |||
= Rules = | = Rules = | ||
Effective as of | Effective as of January 3, 2017 | ||
''Definitions'' | ''Definitions'' | ||
| Line 151: | Line 39: | ||
** Donating code without declaring intent for a bounty voids your claim for any bounties as a result of that code donation | ** Donating code without declaring intent for a bounty voids your claim for any bounties as a result of that code donation | ||
* All of the code included with the pull request must be owned by you | * All of the code included with the pull request must be owned by you | ||
* | * Code's copyright formust be reassigned | ||
** The code will be released publicly under an Apache 2.0 license | |||
** The code will be released publicly under | ** Copyright will be transferred over to Peter Abeles, see [[Donating to BoofCV]] for why | ||
** Your name/organization will be listed as an author after donating | |||
** | |||
** | |||
* The code is considered accepted once it has been merged into the master repository on GitHub | * The code is considered accepted once it has been merged into the master repository on GitHub | ||
* Final acceptance of a submission is at the sole discretion of BoofCV's maintainer | * Final acceptance of a submission is at the sole discretion of BoofCV's maintainer | ||
| Line 167: | Line 52: | ||
** Fixing code in another project and getting the patch accepted | ** Fixing code in another project and getting the patch accepted | ||
** Creating and hosting a website while making the code publicly available | ** Creating and hosting a website while making the code publicly available | ||
** Creating your own project and releasing it as an independent open source project hosted publicly | ** Creating your own project and releasing it as an independent open source project hosted publicly | ||
== Awarding == | == Awarding == | ||
This section describes how the bounty will be awarded. | This section describes how the bounty will be awarded. | ||
* After the code has been accepted | * After the code has been accepted the submitter qualifies to receive the award | ||
** See submission above for what it means for | ** See submission above for what it means for a submision to be 'accepted' | ||
* The amount of the award is specified on the wiki's Bounties page | |||
** If the award amount on the page changes then the largest award after the earliest of the following events will be used: | ** If the award amount on the page changes then the largest award after the earliest of the following events will be used: | ||
*** Announcement of intent to pursue the bounty by awardee on BoofCV message board | *** Announcement of intent to pursue the bounty by awardee on BoofCV message board | ||
| Line 190: | Line 75: | ||
** If multiple individuals contributed it is up to them to decide who will receive the payment and distribute it to the group | ** If multiple individuals contributed it is up to them to decide who will receive the payment and distribute it to the group | ||
** If no agreement can be reached then the person who created the first repository will receive the award | ** If no agreement can be reached then the person who created the first repository will receive the award | ||
* A bounty will be award using [https://www.paypal.com PayPal] | * A bounty will be award using [https://www.paypal.com PayPal] and/or [https://www.bountysource.com/ bountysource] | ||
* If the bounty is cross posted to bountysource then a portion of the award will be collected from there. | |||
* The awardee has 45 days from the date of pull request acceptance to fix any issues with receipt of award | * The awardee has 45 days from the date of pull request acceptance to fix any issues with receipt of award | ||
* Falsifying time stamps or other attempts to mislead will result in the forfeiture of all bounties | * Falsifying time stamps or other attempts to mislead will result in the forfeiture of all bounties | ||
Latest revision as of 06:59, 2 June 2026
New bounties are being worked on. There have been a lot of changes since the bounties were first written and it needs to be updated. An announcement will be made when this page is updated again. 2026-Jun-01
Code Requirements
Code submitted to a bounty needs to meet applicable requirements below for quality control purposes. Failure to meet a requirement will be pointed out in the code review. Minor issues are likely to be allowed but will affect your bonus.
- All submitted code must have good unit test coverage
- Unit tests should take at most 50ms to complete each
- Current unit tests take on average 10ms each, shoot for 2ms or less
- When applicable, provide a usage example with example data
- All code and comments must be in English
- All code must be in pure Java unless specified otherwise
- No merge conflict with latest SNAPSHOT
- All unit tests must pass
- Maximize use of existing internal functionality
- Not sure if a capability already exists? Ask!
- Adding new external libraries is discouraged and will need to be justified
- Code should minimize the creation of new memory and use a single thread
Rules
Effective as of January 3, 2017
Definitions
- Awardee, refers to the person receiving the bounty
- Award, refers to the amount of money award for completing a bounty.
- Internal Bounty, A bounty which involve submitting and donating new code for integration into BoofCV
- External Bounty, A bounty which does not involve adding code to BoofCV
- Maintainers, see list of people here.
Submission
Submission for Internal Bounties Internal bounties involve adding new code to BoofCV and related projects.
- To qualify for a bounty you must submit a pull request on GitHub against the latest SNAPSHOT of BoofCV with your code
- The pull request must specify which bounty it is for and who will receive the award
- Donating code without declaring intent for a bounty voids your claim for any bounties as a result of that code donation
- All of the code included with the pull request must be owned by you
- Code's copyright formust be reassigned
- The code will be released publicly under an Apache 2.0 license
- Copyright will be transferred over to Peter Abeles, see Donating to BoofCV for why
- Your name/organization will be listed as an author after donating
- The code is considered accepted once it has been merged into the master repository on GitHub
- Final acceptance of a submission is at the sole discretion of BoofCV's maintainer
Submission for External Bounties External submissions are for modifications external to the main code base.
- Please see the Google Doc description for how to complete the task as each one is different
- Examples:
- Fixing code in another project and getting the patch accepted
- Creating and hosting a website while making the code publicly available
- Creating your own project and releasing it as an independent open source project hosted publicly
Awarding
This section describes how the bounty will be awarded.
- After the code has been accepted the submitter qualifies to receive the award
- See submission above for what it means for a submision to be 'accepted'
- The amount of the award is specified on the wiki's Bounties page
- If the award amount on the page changes then the largest award after the earliest of the following events will be used:
- Announcement of intent to pursue the bounty by awardee on BoofCV message board
- Submission of the pull request with qualifying code
- Mistakes happen and type-os may or may not be honored. Please let us know if you see anything that looks suspicious!
- The final award amount will be the base award plus the bonus
- The amount of bonus will vary between $0 and the maximum specified on the bounties webpage
- If the award amount on the page changes then the largest award after the earliest of the following events will be used:
- Bounties will be awarded to an individual when it is legal to do so within the US and their home country
- Void where prohibited
- The awardee is responsible for all taxes and fees associated with the receipt of the award
- All bounties are specified in US dollars
- No bounty will be awarded more than once
- If multiple qualified submissions are received then the time stamp of the e-mail/pull request that announces completion will be used
- Only one individual can receive a bounty
- If multiple individuals contributed it is up to them to decide who will receive the payment and distribute it to the group
- If no agreement can be reached then the person who created the first repository will receive the award
- A bounty will be award using PayPal and/or bountysource
- If the bounty is cross posted to bountysource then a portion of the award will be collected from there.
- The awardee has 45 days from the date of pull request acceptance to fix any issues with receipt of award
- Falsifying time stamps or other attempts to mislead will result in the forfeiture of all bounties
- If a bounty cannot be sent to an individual the individual may select from the charities listed below for a donation to be made in their name or they may forfeit the award.