Предложение патчей
Если вы модифицировали пакет и расширили таким образом его функциональность или исправили ошибку, вам следует предоставить ваши изменения общественности (некоторые лицензии принуждают вас к этому, кроме того, это считается хорошим тоном).
Перед созданием патча, вы должны скачать самую последнюю версию пакета с CVS. Для этого вам нужно выполнить следующие команды (в примере используется пакет Foo_Bar):
cvs -d:pserver:cvsread@cvs.php.net:/repository login password is "phpfi" cvs -z3 -d:pserver:cvsread@cvs.php.net:/repository co Foo_Bar
Теперь у вас есть самая последняя версия исходников и вы можете вносить изменения в соответствующие файлы. Удостоверьтесь, что при написании патча вы учли PEAR coding standards.
После того, как вы закончили добавление/изменение кода - протестируйте его. Мы не примем код, который не был протестирован. Когда будете абсолютно уверены, что ваш код не содержит новых ошибок, создайте унифицированный diff-файл командой:
cd pear/Foo_Bar cvs diff -u >Foo_Bar.diff
Файл .diff, который получится в результате, содержит ваш патч. С этим diff'ом нам будет значительно проще понять что вы изменили.
Следующий шаг - это предложение патча. Напишите письмо по адресу pear-dev@lists.php.net и пошлите копию (Cc) письма разработчикам пакета. Тема письма должна начинаться с '[Patch]' для того, чтобы было ясно, что вы предлагает патч. Пожалуйста, включите в письмо развернутое объяснение изменений, которые вы предлагаете внести с помощью этого патча. И не забудьте приложить .diff к письму. Разработчики пакеты обычно перечислены в заголовке каждого файла исходников пакета. Кроме этого, их адреса электронной почты можно найти на странице пакета на http://pear.php.net/.
Если вы используете Outlook или Outlook Express, пожалуйста, измените расширение файла с .diff на .txt. Определение MIME-типа в Outlook'е зависит от расширения файла и сработает неверно. Письма, содержащие аттачменты, у которых MIME-тип отличается от
text/plain
будут отвергнуты программным обеспечением рассылки.
Если ваш патч ломает обратную совместимость, то очень велики шансы, что разработчики не будут очень рады ему. Поэтому, старайтесь исправлять ошибки так, чтобы не вносить серъезных изменений в API. Но если это абсолютно невозможно и/или ваш патч предоставляет действительно необходимые изменения, то изменения API допустимы.