xref: /aosp_15_r20/external/swiftshader/third_party/SPIRV-Tools/docs/projects.md (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1*03ce13f7SAndroid Build Coastguard Worker# Tracking SPIRV-Tools work with GitHub projects
2*03ce13f7SAndroid Build Coastguard Worker
3*03ce13f7SAndroid Build Coastguard WorkerWe are experimenting with using the [GitHub Project
4*03ce13f7SAndroid Build Coastguard Workerfeature](https://help.github.com/articles/tracking-the-progress-of-your-work-with-projects/)
5*03ce13f7SAndroid Build Coastguard Workerto track progress toward large goals.
6*03ce13f7SAndroid Build Coastguard Worker
7*03ce13f7SAndroid Build Coastguard WorkerFor more on GitHub Projects in general, see:
8*03ce13f7SAndroid Build Coastguard Worker* [Introductory blog post](https://github.com/blog/2256-a-whole-new-github-universe-announcing-new-tools-forums-and-features)
9*03ce13f7SAndroid Build Coastguard Worker* [Introductory video](https://www.youtube.com/watch?v=C6MGKHkNtxU)
10*03ce13f7SAndroid Build Coastguard Worker
11*03ce13f7SAndroid Build Coastguard WorkerThe current SPIRV-Tools project list can be found at
12*03ce13f7SAndroid Build Coastguard Worker[https://github.com/KhronosGroup/SPIRV-Tools/projects](https://github.com/KhronosGroup/SPIRV-Tools/projects)
13*03ce13f7SAndroid Build Coastguard Worker
14*03ce13f7SAndroid Build Coastguard Worker## How we use a Project
15*03ce13f7SAndroid Build Coastguard Worker
16*03ce13f7SAndroid Build Coastguard WorkerA GitHub Project is a set of work with an overall purpose, and
17*03ce13f7SAndroid Build Coastguard Workerconsists of a collection of *Cards*.
18*03ce13f7SAndroid Build Coastguard WorkerEach card is either a *Note* or a regular GitHub *Issue.*
19*03ce13f7SAndroid Build Coastguard WorkerA Note can be converted to an Issue.
20*03ce13f7SAndroid Build Coastguard Worker
21*03ce13f7SAndroid Build Coastguard WorkerIn our projects, a card represents work, i.e. a change that can
22*03ce13f7SAndroid Build Coastguard Workerbe applied to the repository.
23*03ce13f7SAndroid Build Coastguard WorkerThe work could be a feature, a bug to be fixed, documentation to be
24*03ce13f7SAndroid Build Coastguard Workerupdated, etc.
25*03ce13f7SAndroid Build Coastguard Worker
26*03ce13f7SAndroid Build Coastguard WorkerA project and its cards are used as a [Kanban
27*03ce13f7SAndroid Build Coastguard Workerboard](https://en.wikipedia.org/wiki/Kanban_board), where cards progress
28*03ce13f7SAndroid Build Coastguard Workerthrough a workflow starting with ideas through to implementation and completion.
29*03ce13f7SAndroid Build Coastguard Worker
30*03ce13f7SAndroid Build Coastguard WorkerIn our usage, a *project manager* is someone who organizes the work.
31*03ce13f7SAndroid Build Coastguard WorkerThey manage the creation and movement of cards
32*03ce13f7SAndroid Build Coastguard Workerthrough the project workflow:
33*03ce13f7SAndroid Build Coastguard Worker* They create cards to capture ideas, or to decompose large ideas into smaller
34*03ce13f7SAndroid Build Coastguard Worker  ones.
35*03ce13f7SAndroid Build Coastguard Worker* They determine if the work for a card has been completed.
36*03ce13f7SAndroid Build Coastguard Worker* Normally they are the person (or persons) who can approve and merge a pull
37*03ce13f7SAndroid Build Coastguard Worker  request into the `main` branch.
38*03ce13f7SAndroid Build Coastguard Worker
39*03ce13f7SAndroid Build Coastguard WorkerOur projects organize cards into the following columns:
40*03ce13f7SAndroid Build Coastguard Worker* `Ideas`: Work which could be done, captured either as Cards or Notes.
41*03ce13f7SAndroid Build Coastguard Worker  * A card in this column could be marked as a [PLACEHOLDER](#placeholders).
42*03ce13f7SAndroid Build Coastguard Worker* `Ready to start`: Issues which represent work we'd like to do, and which
43*03ce13f7SAndroid Build Coastguard Worker  are not blocked by other work.
44*03ce13f7SAndroid Build Coastguard Worker  * The issue should be narrow enough that it can usually be addressed by a
45*03ce13f7SAndroid Build Coastguard Worker    single pull request.
46*03ce13f7SAndroid Build Coastguard Worker  * We want these to be Issues (not Notes) so that someone can claim the work
47*03ce13f7SAndroid Build Coastguard Worker    by updating the Issue with their intent to do the work.
48*03ce13f7SAndroid Build Coastguard Worker    Once an Issue is claimed, the project manager moves the corresponding card
49*03ce13f7SAndroid Build Coastguard Worker    from `Ready to start` to `In progress`.
50*03ce13f7SAndroid Build Coastguard Worker* `In progress`: Issues which were in `Ready to start` but which have been
51*03ce13f7SAndroid Build Coastguard Worker  claimed by someone.
52*03ce13f7SAndroid Build Coastguard Worker* `Done`: Issues which have been resolved, by completing their work.
53*03ce13f7SAndroid Build Coastguard Worker  * The changes have been applied to the repository, typically by being pushed
54*03ce13f7SAndroid Build Coastguard Worker  into the `main` branch.
55*03ce13f7SAndroid Build Coastguard Worker  * Other kinds of work could update repository settings, for example.
56*03ce13f7SAndroid Build Coastguard Worker* `Rejected ideas`: Work which has been considered, but which we don't want
57*03ce13f7SAndroid Build Coastguard Worker  implemented.
58*03ce13f7SAndroid Build Coastguard Worker  * We keep rejected ideas so they are not proposed again. This serves
59*03ce13f7SAndroid Build Coastguard Worker    as a form of institutional memory.
60*03ce13f7SAndroid Build Coastguard Worker  * We should record why an idea is rejected. For this reason, a rejected
61*03ce13f7SAndroid Build Coastguard Worker    idea is likely to be an Issue which has been closed.
62*03ce13f7SAndroid Build Coastguard Worker
63*03ce13f7SAndroid Build Coastguard Worker## Prioritization
64*03ce13f7SAndroid Build Coastguard Worker
65*03ce13f7SAndroid Build Coastguard WorkerWe are considering prioritizing cards in the `Ideas` and `Ready to start`
66*03ce13f7SAndroid Build Coastguard Workercolumns so that things that should be considered first float up to the top.
67*03ce13f7SAndroid Build Coastguard Worker
68*03ce13f7SAndroid Build Coastguard WorkerExperience will tell us if we stick to that rule, and if it proves helpful.
69*03ce13f7SAndroid Build Coastguard Worker
70*03ce13f7SAndroid Build Coastguard Worker## Placeholders
71*03ce13f7SAndroid Build Coastguard Worker
72*03ce13f7SAndroid Build Coastguard WorkerA *placeholder* is a Note or Issue that represents a possibly large amount
73*03ce13f7SAndroid Build Coastguard Workerof work that can be broadly defined but which may not have been broken down
74*03ce13f7SAndroid Build Coastguard Workerinto small implementable pieces of work.
75*03ce13f7SAndroid Build Coastguard Worker
76*03ce13f7SAndroid Build Coastguard WorkerUse a placeholder to capture a big idea, but without doing the upfront work
77*03ce13f7SAndroid Build Coastguard Workerto consider all the details of how it should be implemented.
78*03ce13f7SAndroid Build Coastguard WorkerOver time, break off pieces of the placeholder into implementable Issues.
79*03ce13f7SAndroid Build Coastguard WorkerMove those Issues into the `Ready to start` column when they become unblocked.
80*03ce13f7SAndroid Build Coastguard Worker
81*03ce13f7SAndroid Build Coastguard WorkerWe delete the placeholder when all its work has been decomposed into
82*03ce13f7SAndroid Build Coastguard Workerimplementable cards.
83