Изменение приложения с открытым исходным кодом

9

Каков общий рабочий процесс, когда я хочу добавить функцию в приложение с открытым исходным кодом, которое я изначально не писал? Как мне узнать код? Как мне найти место, которое нужно изменить или добавить? Как я могу внести изменения, не нарушая ничего другого? Как мне проверить, что все еще работает?
Каковы общие рекомендации по такому проекту?

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

Ответы:

6

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

  • Вы скачиваете распределенный источник.
  • Вы начинаете немного перемещаться по коду

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

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

    • Вы найдете место, которое хотите изменить.

    • Если вас интересует какая-то мелочь, спросите автора / список рассылки и объясните свои намерения.

    • Вы переходите в основной каталог дистрибутива (верхний выходит из распакованного / распакованного)

    • Вы diff -ur . > mypatch.path

    • Вы отправляете mypatch.patchавтору объяснение того, что вы сделали, почему вы это сделали, и (как вы уже там) четко заявляете, что отказываетесь от прав на патч для них.

  • если автор (ы) не нравится ваш вклад

    • вы проверяете, есть ли способ выпустить вашу модификацию как какой-то плагин

      • в таком случае, теперь вы на пути к тому, чтобы стать помощником по смене плагинов .
    • еще

      • вы в восторге от ситуации в своем блоге и выпускаете патч там, бесплатно скачать и попробовать с вашими объяснениями и вашими недовольствами,

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

    • ни в одном из этих случаев вы не раскошелитесь на код , поскольку это очень утомительный и невыгодный процесс, с которым вы вряд ли сможете идти в ногу со временем: это оставит пользователей грустными и растерянными. Форкс действительно может случиться, только когда крупная корпорация пытается запугать свои решения частью OSS .

  • еще

    • Вы получаете дальнейшие инструкции от этого автора (ов)

На стороне: есть недавняя альтернатива diff -ur .пластыря и GitHub путь .

  • Вы «разветвляете» их код на github под своим именем
    (теперь у вас есть копия их кода в вашей учетной записи)
  • подключите свой мерзавец к вашей личной копии,
  • внесите свои изменения, проверьте их,
  • и скажите основным авторам, чтобы они посмотрели ваш проект на github.

  • Если им это нравится, они будут синхронизировать .

  • В противном случае вы можете связать свой «гитфорк» в своем блоге.
Zjr
источник
Все хорошо, пока вы не предложите, чтобы OP обвинил авторов продукта в том, что он не принял новый патч, неясно, должно ли это быть смешным или серьезным, в любом случае, ОЧЕНЬ плохо, чтобы эффективно плакать, как маленький ребенок, всему миру, потому что продуктовой команде не нравится / не нужен ваш новый функциональный патч. Во что бы то ни стало, опубликуйте это, но всегда будьте великодушны, если оно не было принято, независимо от того, насколько нелогичным кажется решение. -1 - К вашему сведению, я с удовольствием переверну свой голос, если вы уберете это.
ocodo
Приложение, которое я хочу изменить, следует строгому стандарту, который с моими изменениями нарушит стандарт. Я думаю, что даже не в состоянии попросить, чтобы мой патч был применен.
Дани
@Slomojo OSS полон незрелых людей, и такие вещи случаются постоянно, все должны быть готовы работать как мул, а затем быть отвергнутыми на основании, которое иногда является твердым, а иногда спорным . И тогда, по крайней мере, у вас всегда есть возможность разглагольствовать об этом и найти людей, которые считают, что вы, возможно, правы. Теперь, несмотря на злобу , это был бы неправильный и очень глупый шаг.
ZJR
@ Дани, лол, тебе действительно нужно взять патч и рассказать об этом . Избегайте разветвления, так как это поглотит вашу жизнь, это похоже на непрерывный рефакторинг без зарплаты. ... в любом случае, проверьте список рассылки и систему отчетов об ошибках, если таковой имеется, чтобы узнать, заинтересован ли кто-либо в таком расширении, может быть, вы не одиноки. Лучше всего было бы, чтобы у них был какой-то API для расширения или плагин для добавления ваших изменений. Это всегда лучший вариант в таких случаях: управление плагином . ... будет редактировать это в.
ZJR
2
если есть автоматические тестовые случаи, запустите их, прежде чем отправлять патч.
Энон
0

Как правило.

Если бы это был случайный проект ОС, вы, скорее всего, исправили бы незначительные ошибки здесь и там.

В конце концов, вы отправите кучу изменений в виде «патча».

Обычно вы получаете права коммитов, если ваши вещи хороши.

Я говорю вообще и как можно более расплывчато и неспецифично из-за вопроса

MattyD
источник