[newbies] sanity rules

Ivan Zakharyaschev imz на altlinux.org
Вс Дек 17 03:09:27 MSK 2017


Hi!

У меня при общении с newbies сформулировались такие общие соображения о 
том, к чему стремиться, о чём волноваться.

0. Не надо делать что-то непонятное, магическое.

(Если волнует непонятная магия, то можно спросить, что это, или спросить, 
где про это узнать.)

1. Беспроблемность использования подготовленного пакета. Речь не идёт о 
полной безошибочности, но ошибка, которую трудно отловить -- это 
бОльшая проблема, и хорошо, если во время подготовки пакета её 
удастся малыми силами предупредить.

(Более опытные мейнтейнеры могут подсказать, на что ради этого обратить 
внимание во время подготовки пакета. Например, посмотреть в лог сборки.

Если волнуют какие-то предупреждения и непонятно, свидетельствуют ли они о 
серьёзных проблемах, то можно спросить. Волновать должно всё непонятное -- 
ср.п.0.)

2. Беспроблемность для дальнейшей работы мейнтейнеров подготовленного 
пакта, в т.ч. массовых изменений пакетов в Sisyphus "роботами".

(Важна понятность сделанного, когда другие будут читать ваши изменения 
или роботы анализировать.

Важно удобство для разных возможных действий мейнтейнеров/роботов с 
подготовленным исходным пакетом в будущем.

Важно, чтобы в будущем пакет требовал внимания (автоматически) тогда, 
когда в нём что-то сломалось, пошло не так, как было проверено; и по 
возможности -- только тогда, т.е. не требовать просмотра глазами каждый 
раз. Когдя нет автоматических failures, когда что-то пошло не так, может 
сложиться две плохих ситуации: каждый раз смотрим глазами, потому что 
волнуемся: вдруг что-то пошло не так, и теряем силы и время или вообще не 
смотрим, потому что нет сил, и пропустим настоящую ошибку -- ср.п.2.)

Печально, когда понимание этого теряется и разумное обсуждение сборки 
пакетов заменяется какими-то догматическими спорами или тыканием пальцем 
в другие пакеты, т.е. бесполезной тратой сил.

Пример:

Warning от компилятора может свидетельствовать о серьёзной ошибке 
(например, использование функции без прототипа в C). Серьёзную ошибку не 
надо оставлять в подготовленном пакете. (Ср. п.1.)

Если warning-ов не осталось, то для облегчения работы мейнтейнеров (п.2) 
можно выставить -Werror. А то каждый раз придётся глазами проверять, нет 
ли предупреждений (и при сборке новых версий, и при изменении сборочной 
среды и требований по качеству к пакетам).

Если warning-и несерьёзные, но их мало, то проще сразу код поправить, чем 
каждый раз о них думать. (Ср. п.2.)

-- 
Best regards,
Ivan


Подробная информация о списке рассылки devel-newbies