c7f8dbc1b3e541de961def09b6793807ecaa0bb6
[ffmpeg.git] / doc / issue_tracker.txt
1 FFmpeg's bug/patch/feature request tracker manual
2 =================================================
3
4 NOTE: This is a draft.
5
6 Overview:
7 ---------
8 FFmpeg uses Roundup for tracking issues, new issues and changes to
9 existing issues can be done through a web interface and through email.
10 It is possible to subscribe to individual issues by adding yourself to the
11 nosy list or to subscribe to the ffmpeg-issues mailing list which receives
12 a mail for every change to every issue. Replies to such mails will also
13 be properly added to the respective issue.
14 (the above does all work already after light testing)
15 The subscription URL for the ffmpeg-issues list is:
16 http://live.polito/mailman/listinfo/ffmpeg-issues
17 The URL of the webinterface of the tracker is:
18 http(s)://roundup.libav.org/
19 Note the URLs in this document are obfuscated, you must append the top level
20 domain for non-profit organizations to the tracker, and of Italy to the
21 mailing list.
22
23 Email Interface:
24 ----------------
25 There is a mailing list to which all new issues and changes to existing issues
26 are sent. You can subscribe through
27 http://live.polito/mailman/listinfo/ffmpeg-issues
28 Replies to messages there will have their text added to the specific issues.
29 Attachments will be added as if they had been uploaded via the web interface.
30 You can change the status, substatus, topic, ... by changing the subject in
31 your reply like:
32 Re: [issue94] register_avcodec and allcodecs.h [type=patch;status=open;substatus=approved]
33 Roundup will then change things as you requested and remove the [...] from
34 the subject before forwarding the mail to the mailing list.
35
36
37 NOTE: issue = (bug report || patch || feature request)
38
39 Type:
40 -----
41 bug
42     An error, flaw, mistake, failure, or fault in FFmpeg or libav* that
43     prevents it from behaving as intended.
44
45 feature request
46     Request of support for encoding or decoding of a new codec, container
47     or variant.
48     Request of support for more, less or plain different output or behavior
49     where the current implementation cannot be considered wrong.
50
51 patch
52     A patch as generated by diff which conforms to the patch submission and
53     development policy.
54
55
56 Priority:
57 ---------
58 critical
59     Bugs and patches which deal with data loss and security issues.
60     No feature request can be critical.
61
62 important
63     Bugs which make FFmpeg unusable for a significant number of users, and
64     patches fixing them.
65     Examples here might be completely broken MPEG-4 decoding or a build issue
66     on Linux.
67     While broken 4xm decoding or a broken OS/2 build would not be important,
68     the separation to normal is somewhat fuzzy.
69     For feature requests this priority would be used for things many people
70     want.
71
72 normal
73
74
75 minor
76     Bugs and patches about things like spelling errors, "mp2" instead of
77     "mp3" being shown and such.
78     Feature requests about things few people want or which do not make a big
79     difference.
80
81 wish
82     Something that is desirable to have but that there is no urgency at
83     all to implement, e.g. something completely cosmetic like a website
84     restyle or a personalized doxy template or the FFmpeg logo.
85     This priority is not valid for bugs.
86
87
88 Status:
89 -------
90 new
91     initial state
92
93 open
94     intermediate states
95
96 closed
97     final state
98
99
100 Type/Status/Substatus:
101 ----------
102 */new/new
103     Initial state of new bugs, patches and feature requests submitted by
104     users.
105
106 */open/open
107     Issues which have been briefly looked at and which did not look outright
108     invalid.
109     This implicates that no real more detailed state applies yet. Conversely,
110     the more detailed states below implicate that the issue has been briefly
111     looked at.
112
113 */closed/duplicate
114     Bugs, patches or feature requests which are duplicates.
115     Note that patches dealing with the same thing in a different way are not
116     duplicates.
117     Note, if you mark something as duplicate, do not forget setting the
118     superseder so bug reports are properly linked.
119
120 */closed/invalid
121     Bugs caused by user errors, random ineligible or otherwise nonsense stuff.
122
123 */closed/needs_more_info
124     Issues for which some information has been requested by the developers,
125     but which has not been provided by anyone within reasonable time.
126
127 bug/open/reproduced
128     Bugs which have been reproduced.
129
130 bug/open/analyzed
131     Bugs which have been analyzed and where it is understood what causes them
132     and which exact chain of events triggers them. This analysis should be
133     available as a message in the bug report.
134     Note, do not change the status to analyzed without also providing a clear
135     and understandable analysis.
136     This state implicates that the bug either has been reproduced or that
137     reproduction is not needed as the bug is already understood.
138
139 bug/open/needs_more_info
140     Bug reports which are incomplete and or where more information is needed
141     from the submitter or another person who can provide it.
142     This state implicates that the bug has not been analyzed or reproduced.
143     Note, the idea behind needs_more_info is to offload work from the
144     developers to the users whenever possible.
145
146 bug/closed/fixed
147     Bugs which have to the best of our knowledge been fixed.
148
149 bug/closed/wont_fix
150     Bugs which we will not fix. Possible reasons include legality, high
151     complexity for the sake of supporting obscure corner cases, speed loss
152     for similarly esoteric purposes, et cetera.
153     This also means that we would reject a patch.
154     If we are just too lazy to fix a bug then the correct state is open
155     and unassigned. Closed means that the case is closed which is not
156     the case if we are just waiting for a patch.
157
158 bug/closed/works_for_me
159     Bugs for which sufficient information was provided to reproduce but
160     reproduction failed - that is the code seems to work correctly to the
161     best of our knowledge.
162
163 patch/open/approved
164     Patches which have been reviewed and approved by a developer.
165     Such patches can be applied anytime by any other developer after some
166     reasonable testing (compile + regression tests + does the patch do
167     what the author claimed).
168
169 patch/open/needs_changes
170     Patches which have been reviewed and need changes to be accepted.
171
172 patch/closed/applied
173     Patches which have been applied.
174
175 patch/closed/rejected
176     Patches which have been rejected.
177
178 feature_request/open/needs_more_info
179     Feature requests where it is not clear what exactly is wanted
180     (these also could be closed as invalid ...).
181
182 feature_request/closed/implemented
183     Feature requests which have been implemented.
184
185 feature_request/closed/wont_implement
186     Feature requests which will not be implemented. The reasons here could
187     be legal, philosophical or others.
188
189 Note, please do not use type-status-substatus combinations other than the
190 above without asking on libav-devel first!
191
192 Note2, if you provide the requested info do not forget to remove the
193 needs_more_info substate.
194
195 Topic:
196 ------
197 A topic is a tag you should add to your issue in order to make grouping them
198 easier.
199
200 avcodec
201     issues in libavcodec/*
202
203 avformat
204     issues in libavformat/*
205
206 avutil
207     issues in libavutil/*
208
209 regression test
210     issues in tests/*
211
212 ffmpeg
213     issues in or related to ffmpeg.c
214
215 ffplay
216     issues in or related to ffplay.c
217
218 ffserver
219     issues in or related to ffserver.c
220
221 build system
222     issues in or related to configure/Makefile
223
224 regression
225     bugs which were working in a past revision
226
227 roundup
228     issues related to our issue tracker