Контрольный список для запуска проекта с открытым исходным кодом [закрыто]

51

Начать проект с открытым исходным кодом - это не просто выбросить исходный код в какой-либо общедоступный репозиторий, а затем быть довольным этим. Вы должны иметь техническую (помимо пользователя) документацию, информацию о том, как внести свой вклад и т. Д.

Если бы вы создали контрольный список важных дел, что бы вы включили в него?

Анто
источник
1
+1 Хороший вопрос. Могу я порекомендовать: gawande.com/the-checklist-manifesto
JeffO
2
Я рекомендую книгу Карла Фогеля (одного из первоначальных авторов subversion) « Создание программного обеспечения с открытым исходным кодом» - как запустить успешный проект свободного программного обеспечения. Это книга О'Рейли.
Майкл

Ответы:

34

Самое главное это:

  • используйте проект самостоятельно и приведите его в полезное состояние, где вам нравится его использовать. Убедитесь, что проект работает и полезен.

Вещи, которые я бы поставил в начале приоритетов:

  • есть простое "что это?" веб-сайт со ссылками на какой-либо дискуссионный форум (будь то электронная почта или чат) и на хранилище исходного кода
  • убедитесь, что код компилируется и обычно работает, не фиксируйте незавершенные или незаметные патчи в основной ветке, которые ломают вещи, потому что тогда работа других людей будет нарушена
  • поместите файл лицензии в репозиторий кода с известной лицензией и отметьте владельца авторских прав (вероятно, вы или ваша компания). не опускайте лицензию, составляйте лицензию или используйте неясную лицензию.
  • есть инструкции о том, как внести свой вклад, скажем, в файл HACKING или включить в свой README. Это должно включать, куда отправлять патчи, как форматировать патчи, правила отступа кода, любые другие важные соглашения проекта
  • есть инструкции о том, как сообщить об ошибке
  • быть полезным в списке рассылки или на форумах

После этих приоритетов я бы сказал:

  • документация (это спасает вас от работы в списке рассылки ... сделать FAQ из списка сообщений просто)
  • попытайтесь сделать что-то «нормальным» способом (не изобретайте свою собственную систему сборки или не используйте какую-то странную, не используйте отступы в 1 пробел, не будьте раздражающе изворотливы в целом, потому что это добавляет кривую обучения)
  • продвигать свой проект. маркетинг маркетинг маркетинг. Вам нужны блоги, новостные сайты и тому подобное, чтобы охватить вас, а затем, когда люди проявляют интерес, вам нужно поговорить с ними и убедиться, что они работают и смотрят свои патчи. Может быть, упомянуть ваш проект на форумах для связанных проектов.
  • всегда просматривайте и принимайте патчи как можно быстрее. Сразу идеально. Больше пары дней, и вы теряете много людей.
  • всегда отвечайте на электронную почту о проекте как можно быстрее.
  • создать гостеприимную / позитивную / веселую атмосферу. не будь придурком скажи пожалуйста и спасибо и раздай похвалы. прогоните всех ослов, которые появляются и начинают отравлять сообщество. старайтесь встречаться с людьми лично, когда это возможно, и создавать узы.
Havoc P
источник
Как насчет потенциальных юридических проблем? Как можно убедиться, что реализация случайно не содержит запатентованного алгоритма?
день
К сожалению, определить это невозможно. Учитывая кусок кода, нет никакого способа узнать, какие поисковые термины вам понадобятся для поиска соответствующего патента (ов), и это одна из причин, по которым патенты на программное обеспечение являются такой проблемой. Иногда вы знаете , что есть патент , который применяется, но я никогда не слышал о пути , чтобы быть уверенными , что не патент , который применяется. Трудно доказать негатив. Патенты - достаточно большая тема, поэтому они, вероятно, должны быть их собственным вопросом (ями) ...
Havoc P
17

Для начала, опустите барьер для входа , это означает:

  • сделать его простым в установке,
  • сделать его легко модифицированным,
  • упростить поиск вашего проекта,
  • просто сделай все, что ты хочешь сделать легко.

Как?

  • Дайте ответ на каждый вопрос, который вы можете придумать в своей документации,
  • Создать простую в использовании систему сборки,
  • Очистите свой код, никто не любит работать над кодом спагетти,
  • Сделайте то, что нужно людям.
dan_waterworth
источник