annotate DOCS/tech/patches.txt @ 20962:a95ed9a69caf

Put files fully owned by my under GPL v2 "or later"
author reimar
date Fri, 17 Nov 2006 10:03:33 +0000
parents 80df1b8c3759
children b52664db931c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2121
95b8a1e7962d sending patches
arpi
parents:
diff changeset
1 Sending patches:
95b8a1e7962d sending patches
arpi
parents:
diff changeset
2 ~~~~~~~~~~~~~~~~
95b8a1e7962d sending patches
arpi
parents:
diff changeset
3
7645
534b9b6f6557 Some further explanations, dev-eng is now subscribers only.
diego
parents: 7153
diff changeset
4 Note: We know our rules place a burden on you, but rest assured that
534b9b6f6557 Some further explanations, dev-eng is now subscribers only.
diego
parents: 7153
diff changeset
5 maintaining a big and complex software project is even harder, so please
534b9b6f6557 Some further explanations, dev-eng is now subscribers only.
diego
parents: 7153
diff changeset
6 accept our rules. We cannot afford to spend our time fixing buggy, broken or
12218
52de6cbd0842 Patches should not be compressed.
diego
parents: 12106
diff changeset
7 outdated patches. The closer you follow our rules the higher is the probability
52de6cbd0842 Patches should not be compressed.
diego
parents: 12106
diff changeset
8 that your patch will be included.
7645
534b9b6f6557 Some further explanations, dev-eng is now subscribers only.
diego
parents: 7153
diff changeset
9
12602
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
10 0. Do not send complete files. These need to be diffed by hand to see the
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
11 changes, which makes reviews harder and less likely to occur. Besides as
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
12 soon as one of the files changes, your version becomes harder to apply,
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
13 thus reducing its chances of being accepted.
11191
ed5969812ff3 Explain why sending complete files is a bad idea.
diego
parents: 10943
diff changeset
14
18646
80df1b8c3759 s/CVS/Subversion/
diego
parents: 18372
diff changeset
15 1. Always make patches for Subversion HEAD. The README describes how to check
80df1b8c3759 s/CVS/Subversion/
diego
parents: 18372
diff changeset
16 out Subversion and daily snapshots are available from our download page.
80df1b8c3759 s/CVS/Subversion/
diego
parents: 18372
diff changeset
17 We do not accept patches for releases or outdated Subversion revisions.
2121
95b8a1e7962d sending patches
arpi
parents:
diff changeset
18
18646
80df1b8c3759 s/CVS/Subversion/
diego
parents: 18372
diff changeset
19 2. Make unified diffs ('svn diff' or 'diff -Naur'). Unified diffs can be
12602
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
20 applied easily with 'patch'. This is much harder with other diff types.
18372
71748783e001 Expand a bit, clarification and grammar fix.
diego
parents: 18361
diff changeset
21 Besides, unified diffs are more readable and thus easier to review.
18361
attila
parents: 18360
diff changeset
22
attila
parents: 18360
diff changeset
23 3. Create the diff from the root of the MPlayer source tree, this makes the
18372
71748783e001 Expand a bit, clarification and grammar fix.
diego
parents: 18361
diff changeset
24 diff easier to apply as it saves the step of searching for and changing
71748783e001 Expand a bit, clarification and grammar fix.
diego
parents: 18361
diff changeset
25 to the correct directory.
2121
95b8a1e7962d sending patches
arpi
parents:
diff changeset
26
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
27 4. Test the functionality of your patch. We'll *refuse* it if it breaks
12602
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
28 something, even if it extends other features!
2121
95b8a1e7962d sending patches
arpi
parents:
diff changeset
29
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
30 5. Read your patch. We'll *refuse* it if it changes indentation of the
12900
a5df08927328 Wording/spelling suggestions by the Wanderer, merged sections about when to
diego
parents: 12898
diff changeset
31 code or if it does tab/space conversion or other cosmetic changes!
2121
95b8a1e7962d sending patches
arpi
parents:
diff changeset
32
12898
2054ffe13177 Explain how to handle big patches and why uploading patches is bad.
diego
parents: 12812
diff changeset
33 NOTE: If you already wrote some code and did cosmetic changes, you can
12602
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
34 use 'diff -uwbBE' to help you remove them. Don't forget to check the
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
35 patch to make sure diff didn't ignore some important change and remove
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
36 any remaining cosmetics!
12419
3a6e4fff88e3 Hint at diff options useful for avoiding cosmetic changes, patch by Reimar.
diego
parents: 12251
diff changeset
37
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
38 6. Comment parts that really need it (tricky side-effects etc).
12701
4e0acc8d3622 Explain that commenting string operations is important.
diego
parents: 12602
diff changeset
39 Always document string operations! Comment on what you are doing
4e0acc8d3622 Explain that commenting string operations is important.
diego
parents: 12602
diff changeset
40 and why it is safe. This makes it easy to review and change your
4e0acc8d3622 Explain that commenting string operations is important.
diego
parents: 12602
diff changeset
41 code if needed. Commenting trivial code not required.
4e0acc8d3622 Explain that commenting string operations is important.
diego
parents: 12602
diff changeset
42 Comments must be English!
8556
ecff1745d189 Document things from the start.
diego
parents: 8432
diff changeset
43
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
44 7. If you implement new features, add or change command line switches or
12602
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
45 modify the behavior of existing features, please do not forget to also
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
46 update the documentation. The documentation maintainers will assist you
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
47 in doing this. Updating the English documentation is enough. If you
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
48 speak several languages you are of course welcome to update some of the
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
49 translations as well.
12106
a79d9b3a83fd cosmetics
diego
parents: 11459
diff changeset
50
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
51 8. If you make independent changes, try to send them as separate patches
13414
ea01d0554a6e split patches up as far as sensibly possible, but no further.
diego
parents: 13258
diff changeset
52 in separate mails. Likewise, if your patch is very big, try splitting
ea01d0554a6e split patches up as far as sensibly possible, but no further.
diego
parents: 13258
diff changeset
53 it into several self-contained pieces. Each part can then be reviewed
ea01d0554a6e split patches up as far as sensibly possible, but no further.
diego
parents: 13258
diff changeset
54 and committed separately. Logical units should stay together, though,
ea01d0554a6e split patches up as far as sensibly possible, but no further.
diego
parents: 13258
diff changeset
55 e.g. do not send a patch for every file you change.
12898
2054ffe13177 Explain how to handle big patches and why uploading patches is bad.
diego
parents: 12812
diff changeset
56
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
57 9. Send your patch to the mplayer-dev-eng mailing list as a base64-encoded
12812
d63e770baf9f Patches should be created from the root of the source directory, explanation
diego
parents: 12701
diff changeset
58 attachment with the subject line:
d63e770baf9f Patches should be created from the root of the source directory, explanation
diego
parents: 12701
diff changeset
59 '[PATCH] very short description of the patch'.
12602
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
60 In the mail, describe in a few sentences what you change and why.
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
61 The subject line is very important if you do not want your patch to get
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
62 lost in the noise. We need the uppercase [PATCH] to be able to search
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
63 for unapplied patches, so please use it.
14898
57d00d7a9182 Patches should not be sent as replies to unrelated threads.
diego
parents: 13414
diff changeset
64 Do not send your patch as a reply to some other unrelated mail, compose
57d00d7a9182 Patches should not be sent as replies to unrelated threads.
diego
parents: 13414
diff changeset
65 a new message, otherwise it will probably get overlooked.
12812
d63e770baf9f Patches should be created from the root of the source directory, explanation
diego
parents: 12701
diff changeset
66 Do not compress your patch unless it is larger than 80k or if you know
d63e770baf9f Patches should be created from the root of the source directory, explanation
diego
parents: 12701
diff changeset
67 that your mailer messes up (reformats) text attachments. It only makes
13156
ccce2d564161 Patches should be gzip or bzip2 compressed if necessary.
diego
parents: 12900
diff changeset
68 handling the patch more difficult. If you have to compress your patch,
13258
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
69 use either bzip2, gzip or zip to compress it, not a different format.
12602
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
70 You have to subscribe to mplayer-dev-eng since we blocked postings from
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
71 non-subscribers after spam problems and because patches get reviewed by
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
72 the developers on the list. We want you to be available for discussing
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
73 your code, you might be asked to make modifications before we accept it.
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
74 Don't worry, mplayer-dev-eng is not high traffic and you can subscribe
12898
2054ffe13177 Explain how to handle big patches and why uploading patches is bad.
diego
parents: 12812
diff changeset
75 but unset the "Mail delivery" option so that you can post without getting
2054ffe13177 Explain how to handle big patches and why uploading patches is bad.
diego
parents: 12812
diff changeset
76 any mails.
13258
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
77 Do not upload the patch to a web or FTP site, send it directly to the
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
78 mailing list. The fewer steps it takes us to get at the patch the higher
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
79 the likelihood for it to get reviewed and applied. If your patch is so
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
80 big you cannot send it by mail, try splitting it into smaller pieces.
2121
95b8a1e7962d sending patches
arpi
parents:
diff changeset
81
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
82 10. Give us a few days to react. We try to review patches as fast as possible,
12900
a5df08927328 Wording/spelling suggestions by the Wanderer, merged sections about when to
diego
parents: 12898
diff changeset
83 but unfortunately we are constantly overloaded with work, be it MPlayer-
12602
0d9dec871b83 cosmetic reformatting (preparation for upcoming changes)
diego
parents: 12419
diff changeset
84 related or from our day to day lives. If your patch seems to be ignored,
13258
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
85 send a reminder asking for opinions as a reply to the original patch and
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
86 mention that you got ignored. We are interested in your work and will
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
87 eventually either accept it or reject it with an explanation of what we
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
88 disliked about your patch. We will often ask you to make changes to your
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
89 patch to make it acceptable. Implement them if you want to see your patch
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
90 applied and send the update to the mailing list. Remember that updates and
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
91 reminders must be sent as replies to the original patch to preserve proper
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
92 mail threading.
8432
7b6b7fb76965 small updates
diego
parents: 7645
diff changeset
93
18646
80df1b8c3759 s/CVS/Subversion/
diego
parents: 18372
diff changeset
94 11. Do not immediately ask for Subversion write access. If you have contributed
80df1b8c3759 s/CVS/Subversion/
diego
parents: 18372
diff changeset
95 one or more nice, acceptable patches and they need maintaining or you want
80df1b8c3759 s/CVS/Subversion/
diego
parents: 18372
diff changeset
96 to be an MPlayer developer, you'll get Subversion write access.
11283
10e0ad4f21b6 _ vs - in option names
diego
parents: 11196
diff changeset
97
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
98 12. For consistency reasons, all option names must use '-' instead of '_'.
11459
74e69aef2406 Contributors should also patch AUTHORS if they wish to appear there.
diego
parents: 11283
diff changeset
99
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
100 13. If you make a nontrivial contribution and wish to be mentioned in the
11459
74e69aef2406 Contributors should also patch AUTHORS if they wish to appear there.
diego
parents: 11283
diff changeset
101 AUTHORS file, include that in your patch.
12106
a79d9b3a83fd cosmetics
diego
parents: 11459
diff changeset
102
18360
d604c7f2baba patches should be always created from root dir
attila
parents: 18359
diff changeset
103 14. Do not use printf for console output, use our own mp_msg functions instead.
13258
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
104 For the output to be translated (which includes all messages of level
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
105 MSGL_HINT and below), put the strings in help/help_mp-en.h. If you change
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
106 strings, remove the occurrences of these strings from the translations.
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
107 There may be (compilation) trouble if outdated translations remain in place
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
108 and translators will pick up changes more easily if they see a new message
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
109 that has to be translated.
7903766338f7 some new patch policy: compression, mail threading, printf vs mp_msg
diego
parents: 13156
diff changeset
110
18372
71748783e001 Expand a bit, clarification and grammar fix.
diego
parents: 18361
diff changeset
111 15. If you send a modified or updated version of your patch, resend the
71748783e001 Expand a bit, clarification and grammar fix.
diego
parents: 18361
diff changeset
112 complete patch. It is very time-consuming and error-prone to piece
71748783e001 Expand a bit, clarification and grammar fix.
diego
parents: 18361
diff changeset
113 together patches that are distributed over several mails.
18359
fd120874cdea add section about resending patches
attila
parents: 14898
diff changeset
114 Please always resend patches as replies to the original mail to keep
fd120874cdea add section about resending patches
attila
parents: 14898
diff changeset
115 the thread with the discussion together.
fd120874cdea add section about resending patches
attila
parents: 14898
diff changeset
116
2121
95b8a1e7962d sending patches
arpi
parents:
diff changeset
117 Thank you!