Bounties

From BoofCV
Revision as of 06:59, 2 June 2026 by Peter (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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
  • 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.