What GrainHack is
GrainHack is Grainlify's event programme. Each event has a sponsor-funded contributor pool and a set of issues from projects accepted into it. You apply for issues, a weighted draw assigns each one, and the work that's accepted shares the event's pool. This page explains how an event runs and where to find one.
Find an event
-
Choose GrainHack in the rail. Live events lists every announced event with its phase and its contributor pool. A pool that hasn't been set yet shows "Contributor pool TBD".

-
Choose an event. Its page shows the phase, the Contributor pool, and the event's issues. Each issue shows its repository, difficulty, how long is left to apply, and View issue.

-
Choose View issue to read the issue and apply. Apply for a GrainHack issue walks through it.
Your own applications, assignments and results are in My GrainHack in the rail.
An event's phases
An event moves forward one phase at a time and never goes back.
| Phase | What's happening | What you can do |
|---|---|---|
| Applications open | Projects are applying to take part. This is not about your applications: there are no issues yet. | Wait. The event page says "Issues have not been added yet". |
| Issue prep | Accepted projects are preparing their issues. | Nothing to apply to yet. The event page says "Issues are being added". |
| Live | Issues are published and take applications. Each issue's draw runs when its window closes. | Apply for issues, and work on the ones you win. |
| Closed | The event has ended. Open assignments are released. | A pull request merged within the event's merge grace period after the end still counts. |
| Results published | Grades for merged pull requests are published, and the appeal window is open. | Read your results and appeal. |
| Settled | The appeal window has closed. | Nothing more to do. |

How issues enter an event
A project takes part once it's accepted into the event. A maintainer of that project then adds the event's GrainHack label to an issue on GitHub, and sets its acceptance criteria and difficulty on Grainlify. When both are set, the issue is published: it appears on the event page, and its application window opens. If the label comes off an issue nobody holds, the issue leaves the event.
Only the draw assigns GrainHack issues. A pull request for an issue you weren't assigned through Grainlify doesn't qualify, however good it is.
How you're paid
Accepted work shares the event's contributor pool, so what a contribution earns depends on the grades everyone's work gets. How payouts work covers the rest.
The rules
My GrainHack → Rules publishes the settings events run on: the checks before the draw, the draw weights, slots and timers, and judging. It shows the platform defaults, which apply to any new event unless it overrides them. An event's own rules can still change until it goes live, and are frozen from then on.