Difference between revisions of "Bounties"
m |
m |
||
| (74 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 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 unit | |||
* 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 | |||
* | * 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 | |||
* 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 | ''Definitions'' | ||
* Awardee, refers to the person receiving the bounty | * Awardee, refers to the person receiving the bounty | ||
* Award, refers to the amount of money award for completing a 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 [[BoofCV Developers|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 [http://github.com GitHub] against the latest [https://github.com/lessthanoptimal/BoofCV/tree/SNAPSHOT SNAPSHOT] of BoofCV with your code | * To qualify for a bounty you must submit a pull request on [http://github.com GitHub] against the latest [https://github.com/lessthanoptimal/BoofCV/tree/SNAPSHOT SNAPSHOT] of BoofCV with your code | ||
* The pull request must specify which bounty it is for and who will receive the award | ** 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 | * 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 | * 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 | |||
* 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 | * All bounties are specified in US dollars | ||
* No bounty will be awarded more than once | * 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 | * Only one individual can receive a bounty | ||
** If multiple individuals contributed it is up to them to decide who will receive the payment | ** 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 [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 | |||
* 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. | |||
* A bounty will be award using [https://www.paypal.com PayPal] | |||
* The awardee has | |||
* If a bounty cannot be sent to an individual | |||
** [https://www.eff.org/ Electronic Frontier Foundation] | ** [https://www.eff.org/ Electronic Frontier Foundation] | ||
** [https://wikimediafoundation.org Wikimedia Foundation] | ** [https://wikimediafoundation.org Wikimedia Foundation] | ||
** [http://www.redcross.org/donations/ways-to-donate American Red Cross] | ** [http://www.redcross.org/donations/ways-to-donate American Red Cross] | ||
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.