Що є канонічним ретортам до "це відкритий код, подати виправлення"? [зачинено]


215

Небезпека коли-небудь запропонувати якусь особливість продукту, особливо з відкритим кодом, полягає в тому, що ви отримаєте відповідь "чому б цього не зробити?".

Це дійсно, і це здорово, що ви можете внести зміни самостійно. Але ми практично знаємо, що продукти часто вдосконалюються, оскільки програмісти слухають голос користувачів - навіть якщо ці користувачі є іншими програмістами. Ефективним способом внесення цих змін може бути той, хто вже працює над проектом, зайнявшись ідеєю та реалізуючи її.

Існують деякі загальні терміни, які використовуються для позначення проблем розробки програмного забезпечення. наприклад Bikeshedding . Чи є загальноприйнятий термін, який по суті відповідає: "Так, я знаю, що я можу змінити майже будь-що у світі - навіть закрите джерело. Я можу взяти на роботу і піти писати цей код. Але в цьому випадку я просто роблю спостереження, яке насправді може бути корисним для іншого кодера, який уже добре підходить для легкого внесення змін - або просто загального обговорення можливостей ".

[ps (кілька днів у) - я мав би зазначити, що "подати патч" часто говорять з кривим гумором, і я шукаю відповідного дотепного відгуку.]


16
Я б хотів, щоб я міг підтримати це не раз! (І це виходить від кого - то , хто має . Представлений латки купки різних проектів і отримав їх прийнято вважати , що ставлення ви описати це просто дратує!)
Мейсон Wheeler

62
Я гадаю, "Як я виглядаю, безробітна кодова мавпа? У мене життя!" не є прийнятною ретортою ;-)
Стівен А. Лоу

12
На мій досвід, відповідь "надіслати виправлення" зазвичай надходить після того, як розробник уже пояснив, чому додавання функції не буде практичним.
user16764

7
@Steven, залежить від того, що ти просто хочеш довершити образ або насправді змусити їх робити те, що тобі потрібно. Я вважаю, що це не оптимальна стратегія, якщо ви хочете останньої.

12
@orokusaki: Або D) Вони вважають цю функцію менш цінною, ніж інші функції, над якими вони могли працювати, і вони мають обмежені ресурси.
Девід Торнлі

Відповіді:


115

Це важкий момент: оскільки користувач не прямо чи опосередковано не платить за продукт, він не може вимагати впровадження функції. Це не так, як якщо б ви були зацікавленою стороною або прямим замовником, який замовив товар, і навіть не кінцевим користувачем комерційного продукту.

На це, як сказано, "надіслати виправлення" не відповідає дійсності. Це не ввічливо. Це не правильно. Навіть для продукту з відкритим кодом. "Надіслати виправлення" - це коротка версія:

"Нам не байдуже, чи подобається вам наш товар чи ні. Перейдіть і модифікуйте його, якщо хочете, але не турбуйте нас своїми запитами клієнтів."

Що з поданням патча?

Ну, це не так просто. Зробити це:

  • Ви повинні знати мову, якою користуєтесь у проекті з відкритим кодом.

  • Ви повинні мати можливість завантажити вихідний код з управління версіями, щоб мати змогу змінювати його.

  • У вас повинні бути встановлені всі правильні версії будь-яких залежностей від збірки (включаючи обидві бібліотеки виконання та засоби збирання).

  • Ви повинні мати можливість скласти цей вихідний код , що в деяких випадках не так очевидно. Тим більше, коли для складання величезного проекту потрібно кілька годин, щоб зібрати та відобразити 482 помилки та тисячі попереджень, ви можете сміливо шукати джерело цих помилок.

  • Ви повинні дуже добре зрозуміти, як виконується проект , які стилі кодування використовувати, якщо такі є, як запускати одиничні тести тощо. Якщо проект не має гідної документації (що часто буває для проектів з відкритим кодом) ), це може бути дуже важко.

  • Ви повинні адаптувати себе до проекту та до звичок розробників, які активно беруть участь у проекті. Наприклад, якщо ви використовуєте .NET Framework 4 щодня, але проект використовує .NET Framework 2.0, ви не можете використовувати LINQ, ні кодові контракти, ні інші тисячі нових функцій останніх версій фреймворку.

  • Ваш патч повинен бути прийнятий (якщо ви не зробите зміни лише для себе, без наміру поділитися ним із спільнотою).

Якщо ваш намір полягає в тому, щоб брати активну участь у проекті, ви можете зробити всі ці речі та вкласти свій час на це. Якщо, з іншого боку, є просто дратівлива незначна помилка або проста функція, якої немає, витрачаючи дні, тижні чи місяці на вивчення проекту, то виконувати роботу за кілька хвилин просто нерозумно, якщо вам це не подобається.

Отже, чи є канонічна реторта до "це відкрите джерело, подай патч"? Я не думаю, що так. Або ти поясниш людині, що вона нечесна, або просто перестаєш говорити з нею.


9
Це здається, що його написав хтось без досвіду підтримки проекту з відкритим кодом.
Рейн Генріхс

46
@Rein: Підтримка проекту з відкритим кодом не відрізняється від підтримки будь-якого іншого проекту. У вас є клієнти. Якщо ви проігноруєте цих клієнтів, вони перестануть надавати вам цінний відгук, і вони підуть куди-небудь ще за своїми рішеннями. Можливо, це нормально з людьми з відкритим кодом, але я хотів би знати, чи збираюся я нести повну відповідальність за те, щоб виправити помилку на фрагменті програмного забезпечення з відкритим кодом, тому що це змусить мене двічі подумати про його використання.
Роберт Харві

17
@Rein: Ну, поки що я чув, як ти говорив двічі, що ми не знаємо, про що говоримо. Може, ти можеш нас просвітити, так?
Роберт Харві

8
@Rein Henrichs: Ваші перші два коментарі - це атаки "ad hominem". Якщо між ними є відмінності, скажіть, що вони є, а не говоріть, що інші люди нічого не знають.
Ендрю Грімм

13
Я підозрюю, що намір був «Підтримка проекту з відкритим кодом не відрізняється від підтримки будь-якого іншого проекту щодо прослуховування відгуків клієнтів та збереження їх доброї волі». Якщо так, я повністю готовий відмовитись від цього, але, як хтось, хто підтримував декілька проектів FOSS, де було від кількох до сотень дописувачів, я вважаю оригінальну заяву бланку "невірною".
Рейн Генріхс

79

Канонічний реторт - подати патч.


47
Або ще краще сказати: "Я вже це робив півроку тому. Коли ви, хлопці, збираєтесь переглядати та вчиняти це?"
Боб Мерфі

14
Я зазвичай не люблю короткі відповіді, але це серйозно єдиний спосіб відповісти, який гарантовано закінчиться результатом, який ви шукаєте. Вони чітко заявили найкращий можливий спосіб досягти своєї мети. Навіщо гнатися з будь-яким меншим рішенням?

19
-1 відповідь мудака з відкритим кодом. Не корисно. (Вибачте.) Не існує канонічного "реторту". Найкраща відповідь (якщо припустити, що ОП не може просто подати патч, що, на мою думку, є обґрунтованим припущенням у цьому випадку) є одним із (1) "У мене немає можливостей або ресурсів для створення патча [і, можливо, включати посилання на це саме запитання] ", (2) вія, відсутність відповіді, використання інструменту в його поточному стані або (3) пошук кращого інструменту.
JohnL4

1
Це не обов'язково має бути патчем. Надання детального та вдосконаленого зворотного зв’язку також має значення. Все це говорить про те, що не чекайте, що я вкладу свій час для задоволення вашої конкретної потреби, якщо у вас взагалі нічого не запропонувати.
Еван Плейс

67

Це стандартна відповідь, коли розробники не думають, що вони змусять щось робити в будь-які розумні часові рамки, але це неодноразово піднімалося.

Це найчесніше, коли його неодноразово виховували, але людина, яка його нещодавно згадує, цього не знає, і просто отримує «ми беремо патчі за це» відразу. У цьому випадку технічне обслуговування надає дискусія, але користувач думає, що це нова тема. У будь-якому випадку, швидше за все, якщо ви отримаєте "патчі" одразу, ви не повинні приймати це особисто, але, можливо, захочете прочитати в архівах і програвачі пошуку помилок, щоб отримати докладнішу інформацію про цю проблему.

Якщо ви неодноразово піднімаєте запит самостійно, "зняття патчів" потенційно може бути відносно ввічливим вимиканням, порівняно з деякими менш ввічливими альтернативами ...

І, звичайно, є грубі обслуговуючі працівники, які скажуть "беруть патчі" без жодного пояснення нікому, але я б сказав, що це меншість.

Якщо ви коли-небудь підтримували проект з відкритим кодом з великою кількістю користувачів, ви знаєте, що на 100 разів більше запитів, ніж коли-небудь звертаються до них, і багато таких запитів важливі для запитувача, але це буде надзвичайно важко, або може зірвати багато інших користувачів, або мати якийсь інший недолік, який видно лише з глобального розуміння проекту та бази даних коду. Або іноді є просто виклики судових рішень, і це вимагає занадто багато часу, щоб аргументувати кожного знов і знов.

Більшість компаній, що не мають відкритого коду, взагалі не нададуть вам доступ до розробників, і ви просто отримаєте тихе поводження або ввічливу, але неправдиву історію від служби підтримки клієнтів. Так, у відкритому коді, принаймні, у вас є деякі варіанти (заплатити комусь, щоб кодувати функцію тощо), і хоча розробники можуть бути грубими, принаймні вони дають прямі відповіді. Я вважаю за краще "ні", ніж зазвичай, "це в нашій дорожній карті ... [2 роки потому] ... це все ще є в нашій дорожній карті", яку я отримав від багатьох постачальників ...

Тож я не думаю, що реторта є. Можливо, сервіс з відкритим кодом просто дійсно зайнятий, може бути, вони ривком, але в будь-якому випадку, вони, ймовірно, мають важку роботу і потрапляти в дискусію, хто має останнє слово, нікуди не дінеться. Найкраще, що ви можете зробити, це певним чином сприяти і намагатися бути конструктивним.

Можливо, це не код, але, можливо, є багато аналізу та документування сценаріїв користувачів, які ви могли б зробити. Коли я підтримував менеджер вікон GNOME, багато разів було б корисно людям проаналізувати проблему в усьому світі, враховуючи всіх користувачів, і справді записати проблеми, плюси та мінуси та те, що має відбутися з глобальної точки зору.

(Натомість, звичайна річ полягала в тому, що вони є єдиним користувачем, який мав значення, і жодних компромісів не було. І хоча це чудово, і було точкою даних, і часто мені вдавалося залишатися ввічливим або навіть вирішувати їх проблему з часом.) ... полум'я нічого не робить швидше. Це просто плутає емоції з проблемою і витрачає час кожного.)


4
@Aaronaught Я вже близько сотень проектів з відкритим кодом і не помітив DIY як відповідь за замовчуванням. Це відповідь на певні смаки запиту.
Хаос П

2
Все, що я говорю, - я думаю, що частіше за все я думаю, є певна причина, що обслуговуючий персонал хоча б трохи хворіє на тему (чи людину), перш ніж вони кажуть "беруть патчі", і це може бути варто розглянути, чому ви отримав цю відповідь. Це мій досвід, фві. Якщо тут йдеться про випадки, коли немає причини хворіти на тему чи людину, то впевнене, що "брати патчі", мабуть, не є великою справою для того, щоб сказати обслуговуючий персонал. Люди роблять помилки. Я все ще кажу, що сумніваюся, що реторта (або метадискусія на кшталт цього) допоможе, але іноді конструктивно залучатись.
Хаос П

5
Крім того, хоча це може бути більш-менш ввічливо сформульовано, якщо у обслуговуючого персоналу є затримка роботи на увазі, у них, ймовірно, є 1 річ, яку вони можуть дістати до себе, на кожні 100 речей, за які вони б взяли виправлення, тому що вони хочуть особливість; а потім є ще одна категорія змін, яку вони б відхилили, навіть якби хтось робив цю роботу. Тож має бути якийсь спосіб донести "Я б прийняв цю зміну, але не маю планів робити це сам". Деякі люди, здається, відчувають, що "Звичайно, підходить правильно" - це єдино прийнятна відповідь. Але "взяти патчі на цьому" - це реальна категорія.
Havoc P

2
@Aaronaught ці звучать як хороші фрази. Я думаю, що часто жодна образа / хамство не передбачається, "ми б за це взяли виправлення", але програмісти, як правило, не є найбільш емоційно чутливими типами, вони можуть поспішати електронною поштою, і тон не надто добре передається через текст, тому легко натрапити на криву.
Хаос Р

2
Насправді "ми б взяли виправлення за це" відрізняється двома найтоншими, але важливими способами: (1) це не несе відповідальності безпосередньо на користувача , і (2) визнає, що запит був серйозно розглянутий, незважаючи на те, що він не був здійснено. Хоча чистий результат по суті той самий, це набагато гуманніша відповідь. (Все-таки не завадило б явно додати мається на увазі ... але у нас немає ресурсів для того, щоб зробити це самостійно зараз. )
Aaronaught

43

Причина ви отримаєте цю відповідь не те , що Супроводжуючі ривки, це те , що ви належним чином не переконали їх ціннісне пропозицію них працює на вашу функцію для вас .

Найкраща відповідь - розпочати діалог про цінність вашої риси для їхньої громади в цілому , щоб побачити, чи можете ви переконати їх змінити свою думку. Можливо, вони мають рацію, і вони знають більше про потреби своєї громади, ніж ви - але, знову ж таки, можливо, ні.

Якщо ця функція цінна лише для вас і мала ніякої цінності для громади, я вважаю, що гроші є чудовим мотиватором, тоді як скаржитися на їхнє ставлення не варто.


15
Звичайно, можливо, вони поштовхи. Ця відповідь сама по собі не є дуже точним показником, оскільки її також використовують нестрибуючі, коли запитувач - ривок.
Рейн Генріхс

4
Я також хотів би додати, що за відсутності грошей, ви часто можете торгувати натуральною справою на якусь роботу: допоможіть створити чергову проблему з чергою, вийти в канал IRC і надати підтримку, тестувати виправлення або написати документацію. Проекти з відкритим кодом мають обмежені ресурси і їх потрібно максимально використовувати. Додавання функції є життєздатним, якщо вона важлива для достатньої кількості людей або важлива для людей, які роблять / дають достатньо. Якщо ваша справа не перша, зробіть її останньою.
HedgeMage

2
Чесно кажучи, найкращий спосіб переконати розробника - показати йому, яка частина його користувальницької бази хоче цієї функції. Проблеми з голосуванням, теми на форумах тощо є дуже хорошими для цього і використовуються у багатьох проектах з відкритим кодом.
ProdigySim

4
Точно так же, коли люди отримують RTFM або ДАФСА в якості відповіді або -1 на SE, це відбувається тому , що запитувач неадекватно переконаний Відповідач ціннісного пропозиції відповіді на свій питання для них . Я впевнений, що багато хто з вас може ставитися до цього почуття.
Рейн Генріхс

1
@Walter Yep, саме тому я запропонував переконати людину в "цінність вашої риси для їхньої спільноти в цілому".
Рейн Генріхс

31

Що є канонічним ретортам до "це відкритий код, подати виправлення"?

Немає розумного реторту, який, ймовірно, може змінити ситуацію. Спроба переконати волонтерів зробити щось, чого вони не мають наміру робити - це марно витрачати ваш час ... або ще гірше.

Ваші варіанти:

  • Робіть те, що пропонує відповідь; тобто реалізуйте функцію та подайте її як виправлення. Це називається "повернути щось назад".

  • Знайдіть когось, хто хотів би реалізувати цю функцію для вас за реальні гроші. Це може бути сам проект (наприклад, взамін на спонсорство), хтось, пов'язаний з проектом, або якийсь випадковий «кодер для найму».

  • Знайдіть альтернативний товар.


Якщо ви отримали цю відповідь, коли ви робили "корисну" пропозицію, подумайте, як ви могли б відповісти, якби ви були у його взутті. Наприклад, як би Ви відреагували, якби ви вважали, що пропозиція не варта / добре продумана / зрозуміла / тощо, але не маєте часу та терпіння брати участь у тривалій дискусії?


Я брав участь у довготривалому проекті з відкритим кодом, і одна з найбільш дратуючих речей - це люди, які сидять у «галереї арахісу» і перецьовують вас потоком пропозицій про те, що робити «краще»:

  • є неповними, незрозумілими або прямо нерозумними,
  • це неперевірені ідеї з об'єктивно низькими шансами на успіх,
  • знадобиться величезна кількість зусиль для впровадження та / або
  • суперечать заявленим цілям проекту.

Найчастіше найкраща відповідь полягає в тому, щоб різко кинути виклик людині долучитися до проекту ... і сподіватися, що вони підкажуть ... "поставити чи заткнути". На жаль, більшість дратівливих навіть не натякає.

Звичайно, інша відповідь таким людям - це взагалі не реагувати або повністю ігнорувати їх.


7
"Як би ви відреагували, якби ви думали, що пропозиція не варта / добре продумана / зрозуміла / тощо" - саме так реагує кожен інший професіонал. "Чи можете ви пояснити / навести кілька прикладів того, що ви просите?" або "Чи можете ви дати мені якусь інформацію про те, чому ви вважаєте, що вам потрібна ця функція?" або "Що, якби ми зробили замість цього іншу річ, це працювало б для вас?" а як щодо "Дякую за вашу пропозицію, ми розглянемо це для майбутнього випуску". Це основні міжособистісні навички, а не ракетна наука.
Aaronaught

12
@Aaronaught - Вибачте, але ви цього не отримаєте. Типовий розробник з відкритим кодом не має часу вступати в ввічливі, але в кінцевому рахунку безглузді дискусії, спрямовані на погладжування его "своїх клієнтів"; тобто прикидаючись турботою, коли напіврозумна людина може зрозуміти, що це все фасад. І якщо чесно кажучи, я вважаю, що подібне его ввічливість покладає на себе покровительство ... І БІЛЬШЕ образливе, ніж прямо сказано, що немає шансів, що вони збираються реалізувати XYZ.
Стівен C

6
@kurige - насправді, якщо люди, про які йдеться, DID подають патчі, вони б ВИЗНАЧЕНО розглядалися б. Проблема полягає в тому, що люди, про яких йде мова, "на всі уста"; тобто немає інтересу до докладу будь-яких зусиль.
Stephen C

10
Тому що типовий розробник відкритого коду вже має роботу, і вони роблять свою розробку з відкритим кодом для задоволення. Робити те, що хочуть, щоб ви працювали інші. Робити те, що хочеш робити, - це весело.
ProdigySim

8
@Aaronaught: Чи потрібно з повагою ставитися до багатьох ривків? Даючи державну службу, знайдуться люди, які висувають необгрунтовані вимоги, часто в образливій формі. Справа з нечесними дурнями може бути справжнім болем. Вимога бути поважною до них призведе до витіснення багатьох людей з F / OS бізнесу, і це буде втратою для всіх.
Девід Торнлі

20

Відповідь була б розумною, якби ви і відповідний програміст були рівними, і знали приблизно однакове про базу коду та мову та всі інші речі, що стосуються цієї конкретної речі, яку ви вказуєте.

Ви не є рівними (або ви, мабуть, просто зробили б це), тому я б запропонував належним ретортом бути:

"Ні в якому разі я не можу зробити це так швидко і добре, наскільки ви можете, саме тому я попросив вас допомогти мені в першу чергу. Будь ласка!"

Я вважаю, що це суперечить фундаментальній людській природі, щоб сказати тоді "о, так, ця річ, на яку я витратив тривалий час, і дуже добре в ній, настільки проста, що будь-хто може зайти з вулиці і зробити так само хорошу роботу, як Я можу ».


За винятком того, що вони насправді не так говорять. Вони говорять, що "ця річ, яку ви хочете, - це не те, що хоче громада, тому ми не дуже зацікавлені працювати над цим. Ми можемо прийняти виправлення, якщо ви хочете працювати над цим". Імпліцит - "ми також можемо змінити свою думку, якщо громада цього захоче". Пам’ятайте, що «Я хочу, щоб ти мені допоміг » суперечить фундаментальній природі проектів з відкритим кодом , де (щоб принести всю силу моєї нервовості Star Trek) благо багатьох завжди переважає над благами кількох.
Рейн Генріхс

Ну, якщо тільки у цих небагатьох грошей багато, історично кажучи.
Рейн Генріхс

2
@ Rein, ні, те, що вони говорять, це те, що вони не хочуть цього робити. Все це "громада хоче" - це просто солом'яна людина. Вся справа в тому, що хтось із СВІЛЬНОСТІ вимагає цього.

1
"вкрай нечестно пропонувати написати патч, якщо ви не знаєте заздалегідь, що - якби він прийшов - ви вважали б це своїм продуктом". Домовились. Як я вже сказав, саме тому я не використовую цю відповідь. Я можу співчувати цьому. "Якщо ви щиро маєте на увазі, що" надіслати виправлення "має на увазі закриття людей замість делегування роботи, то ви погоджуєтесь, що це запитував член громади, а не розробник". Я не дуже впевнений, що ти тут кажеш, вибач.
Рейн Генріхс

1
@ Thorbjørn Ага так. Ну, насправді знайомі з відкритим кодом, з якими я знайомий, безумовно, не так думаю. Насправді ми не можемо надавати інструкції та документацію для розробників, щоб допомогти людям вивчити проект та умовні умови для його сприяння саме тому, що нам відомо про розрив кваліфікації. Наприклад, rubini.us/doc/en/contributing
Рейн Генріхс

16

Канонічний реторт - це роздрібнити проект.


8
або подати патч
Каміль Шот

2
Якої доброї волі вам принесе?

1
@Thorbjorn: Кожна людина могла б використовувати хорошу виделку знову і знову. Навіть жалка вилка.
user18014

15

Канонічна відповідь на "подати виправлення":

"Я не маю необхідних навичок, досвіду чи часу, тож скажіть, будь ласка, куди доставити футляри пива хлопцеві, який може зробити це для мене"


13

Подайте вичерпний тестовий випадок .


1
Мені подобається цей, однак, це часто забирає більше часу, ніж сама подача патча! Постійним тут є час для ознайомлення з базою коду і, швидше за все, це найбільша частина або створення тесту, або написання виправлення безпосередньо!
Ньютопський

1
Мені подобається ця відповідь за помилок. Навіть якщо ви не розумієте рамки достатньо, щоб надіслати виправлення, це економить величезну кількість часу для того, хто це робить. Не менша ймовірність змусити мене виправити проблему, ніж невиразна і невідтворювана «помилка», яка може бути просто неправильно налаштованою системою. Ніщо не змушує мене стрибнути на проблему швидше, ніж простий тестовий зразок, щоб я міг швидко спробувати різні виправлення.
BobMcGee

11

"Якщо ви це зробите, я включу його" набагато краще, ніж "ні".

Якщо ви не можете виконати роботу з тих чи інших причин, поясніть обставину супроводжувачу проекту приватно.

Якщо ви не бажаєте якось внести свій внесок у проект з відкритим кодом, який ви хотіли б використовувати, тоді вам слід шукати комерційну підтримку чи інший комерційний продукт.


5
Тож лише ті, хто безпосередньо вносить внесок, мають право скаржитися на помилку чи відсутність функції? Думаю, добре, але це також означає, що ні учасники, ні користувачі не мають права скаржитися на відсутність усиновлення.
Aaronaught

@Aaronaught Ні, вони мають право скаржитися, але існує обмеження кількості неоплаченого часу, який розробник може вкласти в проект, і користувачі важливо визнати це. У своїй роботі я залишаю за собою "я б вітаю запит на виправлення / витягнення" для функцій, які мають невдалі пропозиції / цінність для спільноти. Або там, де користувач наполягає, вони отримують функцію ПРАВО ЗАРАЗ та не поважаючи чужий час або інші зобов'язання проекту.
BobMcGee

10

"Дякую за відповідь."

Оскільки:

  • При нульовій ціні попит (запити на функції) перевищує пропозицію (доступні кодери для реалізації зазначених функцій).
  • Нахабство на все, що надається безкоштовно, не вистачає класу IMHO.
  • У цьому і полягає вся суть ФОСУ: люди, які приносять овочі та м’ясо, додають собі їжу в кам’яний суп. Якщо я не можу щось внести, я повинен бути вдячний, що я можу їсти взагалі, а не скаржитися, що не харчуюся краще.

9

Не потрібно нічого говорити. Сам факт відповіді розробників є достатньою ознакою того, що вони вже знають, що проблема існує і що викликає біль (принаймні деяких) користувачів.

Зрештою, нічого, що ви скажете, не переконує розробника працювати на вас, якщо вони цього не хочуть.


9

Хороший проект з відкритим кодом матиме систему запитів про помилки / функції, де користувачі можуть надсилати помилки / функції, а інші можуть голосувати за них, щоб обслуговуючі особи могли визначити, що важливо для спільноти в цілому. Найшвидший спосіб встановити свою функцію, однак це надіслати її. Період ... немає шляхів навколо цього.


8

Особисто я скоріше отримав би відповідь "Це відома проблема, але, на жаль, це питання не скоро вирішується. Розробники працюють над іншими питаннями. Наразі ЗНО немає".

Відповідь "надіслати патч" дуже груба, оскільки передбачає ряд речей:

  1. Усі користувачі програми - це програмісти або всі репортери помилок - програмісти.
  2. Усі програмісти знають мову, якою є програма.
  3. Усі програмісти знають про будь-які проблеми, які можуть мати будь-які програми.
  4. Усі програмісти мають вільний час для роботи над проектом з відкритим кодом.

Навіть якщо ми припускаємо, що виробник відповідей "надіслати патч" знає все вищезазначене, це просто робить заяву звучанням так: "X годин мого часу коштує більше, ніж на порядок більше годин вашого часу, коли ви хочете встати щоб пришвидшити та виправити проблему ".

Як правило, коли я отримую грубу відповідь від розробника, коли я запитую про проблему, яку я маю або надсилаю помилку, я припиняю використовувати цю програму. Наприклад, я більше не використовую uTorrent (не з відкритим кодом, але справа залишається), тому що відповіді, які я отримав на їх "форумі" підтримки, були такі грубі. Я подав проблему, яку я виник на форумі звітів про помилки. Нитка була негайно заблокована посиланням на інший потік про подібний, але інший випуск у потоці (який, звичайно, також був заблокований). Тим часом я відкрив тему на форумі загальних дискусій із запитанням, чи знайшов хтось вирішення проблеми. У той час, як знадобилося зберегти цю нитку і повернутися назад і побачити, що моя перша нитка була заблокована, моя тема в цілому була заблокована, а мій обліковий запис на форумі заборонено для зривної поведінки. Я видалив uTorrent і з тих пір не повертався.


Ви маєте на увазі "я скоріше отримаю відповідь", а не "я б швидше не отримав"?
Ендрю Грімм

Дякую, зокрема, за перший абзац. Дивно, як така основна форма професійної ввічливості може бути чужою для багатьох людей. Незалежно від того, отримуєте ви чи ні, відповідна відповідь полягає у визнанні проблеми та поясненні її статусу (навіть якщо статус "відкладений").
Aaronaught

8

Відповідь "надіслати патч" відповідає грубій IMO, але все ж ... якщо ви використовуєте програмне забезпечення з відкритим кодом для будь-якого серйозного, ви повинні бути готові піклуватися про нього, якщо виникне потреба.

Далі ґрунтується на публікації Єремії Маеркі (слава FOP Apache):

Якщо щось не працює для вас, у вас є кілька варіантів:

  • Це відкритий код: ви можете це виправити самостійно.
  • Якщо ви не можете виправити це самостійно, ви можете зачекати, поки хтось вільний час не подумає.
  • Якщо цього не відбувається, ви можете знайти або найняти когось, щоб це зробити за вас.

Я думаю, що це дуже дійсна повна версія відповіді "надіслати виправлення".


6

Щоразу, коли це бачу, я одразу починаю шукати альтернативний продукт. Для мене це небезпечна ознака того, що обслуговуючі або не дбають про своїх користувачів (погано, якщо ваш проект використовується скрізь), або втратили інтерес до проекту. Обидва вони зазвичай означають, що проект скоро помре або зазнає застій, оскільки розробники відмовляються рухати проект вперед

(Зверніть увагу, що я не кажу, що найперший звіт про помилку, який ви бачите з таким видом відповіді, який ви запускаєте. Ви повинні дивитися на загальну тенденцію. Якщо більшість звітів про помилки закінчуються таким видом відповіді, то дотримуйтесь цієї поради. Якщо це лише декілька, то це, швидше за все, запити на функції, які не відповідають цілям проектів або вкрай специфічні для використання)

Як сказав @MainMa, починати робити внесок у абсолютно новий проект дуже важко. Більшість розробників цього не розуміють, оскільки працюють над проектом місяці / роки, і це має сенс. Іноді це може бути чесною помилкою.


3

Я час від часу жартую, що вільне програмне забезпечення може бути безкоштовним, як у пиві, вільним, як у мовленні, так і вільним, як ви отримуєте те, за що платите.

Хоча я кажу це жартома (я працюю в компанії, яка використовує багато ОСС), але я думаю, що тут є правда - якщо ви хочете підтримувати комерційний рівень, вам потрібно або використовувати комерційне програмне забезпечення з відповідною угодою підтримки, або знайти програмне рішення з відкритим кодом, яке дозволяє вам такий рівень підтримки (як правило, через те, що хтось платить за його надання, але, можливо, через вашу організацію, яка використовує або призначає ресурс розвитку для роботи над ним).

"Надіслати патч" викликає вразливість, але це щось підкреслює про OSS, і, можливо, це має бути нагадуванням про те, що OSS не підходить всім у будь-якій ситуації, принаймні, не впевнившись, що у вас є міцна підтримка для нього (або внутрішньофірмовий, оплачуваний або через громаду).

Ми часто думаємо про програмне забезпечення, яке є безкоштовним, як у пиві, але не як у мовленні (це не відкрита безкоштовна програма). Можливо, це випадок, коли нам слід думати про програмне забезпечення так само вільно, як у мовленні, але не як у пиві.


2

Перейти на доглянуту альтернативу.

З мого досвіду з добре підтримуваними проектами з відкритим кодом, це те, що якщо ви створюєте чітко визначений звіт про помилку або запит на функцію, він має дуже високі шанси на реалізацію.


2
Звіти про помилки та запити про функції часто недостатньо визначені. Мій досвід полягає в тому, що компетентність і повага працюють добре. Також чітко визначений запит на функцію буде розглянуто в кращому випадку. Це може вважатися низьким пріоритетом, або це може бути те, що група проектів явно не хоче робити (є хороші приклади в FAQ щодо PuTTY і хороший список запитів на функції, згруповані за категоріями).
Девід Торнлі


1

Я вважаю, що коли людина працює над проектом, який надає випуски та підтримку, виникає невимовна, мається на увазі, договір підтримки між розробником та користувачем. Розробник взяв на себе відповідальність за підтримку кодової бази для своїх користувачів, включаючи додавання функцій за запитом.

"Надіслати патч" - це, по-моєму, пальчик для користувачів. Це контекстуально - іноді це просто занадто багато зусиль, щоб реалізувати, іноді це призвело б до руйнування існуючого проекту, або виникнення кричущого креатуриту, або будь-якої з інших причин. Але, врешті-решт, це говорить: "Викрутіть, не робіть цього". Що, на мій погляд, є певним чином порушенням цього невимовного контракту.


Це не договір, якщо обидві сторони щось не отримають. Проект, як правило, хоче - це добре пророблені звіти про помилки та часто добре виконані запити на функції, а не все, що реалізується до кінця неявного договору.
Девід Торнлі

1
@Aaronaught: Вони пропонують безкоштовне тестування, лише якщо вони подають звіти про помилки, які є достатньо детальними для роботи. Я бачив свою частку поганих повідомлень про помилки. Вони можуть чи не можуть пропонувати хорошу рекламу. Більшість людей, які використовують F / OSS, не повертають нічого корисного, що добре, але це точно не одна сторона договору.
Девід Торнлі

1
@David: Чи перестанете ви намагатися обмежити розмову лише найскладнішим / непродуктивним користувачам? Якщо ми збираємось узагальнити, то це узагальнення повинно бути для всієї бази користувачів та учасників як колективу; Випускаючи публіку, ви отримуєте всіх цих людей. Натомість за добро, яке ви отримуєте від багатьох з них, ви отримуєте певні проблеми від багатьох інших. Це життя.
Aaronaught

1
@Aaronaught: Якщо ми збираємось узагальнити, нам потрібно переконатися, що ми узагальнюємо належним чином. Я не намагаюся обмежувати розмову найгіршими користувачами, просто вказую, що вони там є. Значна частина розмови припускає, що всі користувачі певним чином є учасниками, і це просто неправда. Якщо ми будемо говорити лише про тих користувачів, які корисні для проекту, буде справедливо говорити лише про членів команди проекту, які, як правило, ввічливі.
Девід Торнлі

2
@David: Очевидно, що деякі користувачі та сторонні працівники, які надають допомогу, а також деякі, які створюють проблеми. Зрозуміло, що є деякі розробники, які є ввічливими та професійними настільки, наскільки це дозволяє здоровий глузд та вміння керувати часом, а також є деякі розробники, які грубо і непрофесійно виходять за звичку. Це було питання про те, як боротися з останньою групою розробників. Існування "проблемних користувачів" не є суперечливим, але це червона оселедець, яка не має жодної іншої мети, як зірвати дискусію, створивши змагальну ситуацію - тому залишимо це в спокої.
Aaronaught

1

Є кілька способів, як це слід зробити.

  • Пропозиція та голосування. але для цього потрібен час.

  • Наймайте компанію, якій це потрібно для виготовлення виправлення. Очевидно, це найкраще рішення, але будьте готові до співпраці з хлопцем, який робить програмне забезпечення з відкритим кодом, яке ви хочете оновити.

  • З'ясування, чому ця функція не реалізована в першу чергу, також важлива. Часто ця функція виходить за межі програмного проекту: команда не хоче цієї функції, не відчуває себе необхідною або вони просто думають, що це не найкращий спосіб щось зробити. У цьому випадку вам слід просто розкрутити проект і зробити його самостійно.

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

  • Пам'ятайте, що програмне забезпечення OOP часто полегшує процес інтеграції функції.

  • Скидання в списку розсилки, на irc або на форумі просто змусить програмістів і дасть боєприпаси прихильникам OSS.


0

Ви нічого не можете сказати, що змусить його це зробити. Зрештою, навіщо йому? Через побажання одного користувача? Це недостатньо хороша причина.

Але , якщо ви можете зібрати розумну кількість користувачів і надати раціональні причини («я хочу це» - це не раціональна причина), чому ця функція може бути корисною, загалом, і для вас, і для багатьох інших він просто може змінити свою думку .

Хоча, є й особливий випадок, який треба враховувати. Що чорт. втомився розробляти додаток, повільно бажаючи відмовитися від нього (має інші речі), і тому він поволі відмовляється від запитів на функції. Крім frm, що намагається переконати його випустити код, в цьому випадку ви практично нічого не можете зробити, навіть стосовно вищезазначеного.


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

@David Thornley - Це теж.
Грак

0

Проекти з відкритим кодом, зокрема, є приємними для прихильників або фінансування розробки певної функції, навіть якщо нова функція не доходить до офіційних релізів.

Крім того, так, одна з ідей, що стоять за публікацією відкритого коду, полягає в тому, щоб кожен і кожен мали право та відповідальність робити свій внесок.

Закритим джерелом найкращий ваш ресурс - зібрати статистично важливу групу з бази користувачів, яка бажає таких рішень, як потрібні.


2
Право вносити, так, але останній раз , коли я прочитав GPL це нічого про не кажучи відповідальності за кінцеві користувачі , щоб зробити свій внесок. Це трохи надумано, ти не думаєш?
Aaronaught

0

На мій досвід, ця відповідь зазвичай надається, якщо запит користувача не відповідає цілі проекту. Це трапляється, коли люди думають, що ти збираєшся реалізувати все, що вони пропонують тобі, і трохи більше - безкоштовно, відкрито та з великим і щасливим майбутнім.

"Надіслати виправлення" - це відносно груба відповідь (і цього, звичайно, слід уникати. Особливо в цій стислій і різкій формі. Існує багато способів висловити приблизно те саме повідомлення - наприклад, "запросити" користувачів на допомогу, оскільки ви не встигнете самостійно реалізувати це). Але, як це є, це чіткий показник "перестань марнувати свій час". Таким чином, ви не могли б з цим зробити чимало, а також немає "канонічної" відповіді.

Найкраща відповідь, яку я можу придумати, - це фактично представити виправлення . Припускаючи, що патч працює, ви принаймні довели, що ідея не зовсім нереальна. Зазвичай це означає, що люди, відповідальні за проект, ще раз розглянуть пропозицію.


1
Я не думаю, що будь-який розробник повинен відповідати "надіслати виправлення" щодо запиту, який не відповідає меті проекту. Це більше нечесно, ніж грубо. Або програмне забезпечення стає роздутим, і розробник ненавидить вас за це, або він не приймає патч і ефективно витрачає ваш час. Останнє швидше. Розробник дійсно повинен чесно сказати "Ми не хочемо цього змінювати, тому що ____", і робити це з цим.
Рей Міясака

@Rei Miyasaka: Особисто я би був розлючений, якби отримав "надіслати патч", зробив би роботу, щоб зробити якісний патч, і тоді мені сказали, що так і не хочуть цю функцію.
Девід Торнлі

@David Так? Я б кинув стілець чи два.
Rei Miyasaka

0

"Надіслати патч" - це законний підхід для ідей, які не вписуються в цілі проекту. Мабуть, краще в довгостроковій перспективі просто сказати вам, що ідея висмоктується, або ви намагаєтесь використовувати проект для чогось далеко за межами передбаченого обсягу, але "ей, якщо ти вважаєш, що те, що ти просиш, настільки банальне, чому б не робити" t ви намагаєтеся вписати його в нашу існуючу кодову базу "- це колись доречно.

Якщо він незначний і справді корисний користувачам проекту, просто надішліть звіт про помилку, чітко опишіть проблему, дайте кроки для відтворення, вкажіть, що ви використовуєте поточну нічну збірку, і залиште це.

Те, що може здатися незначною простою зміною, яка допоможе тоннам користувачів, насправді може бути величезним болем у попці, який ніхто не використає, окрім вас. Це найкращий випадок для "надіслати виправлення".

Можливо також, що ви зіткнулися з такою справою, як сумнозвісний обслуговувач glibc, який, здається, має однозначний розум, що його система - всесвіт, його інтерпретація специфікацій - це слово боже, і це все, що існує, незалежно. про те, скільки людей воліє б інакше.


Я не думаю, що хтось вирішив би задати це питання, якби вони знали, що зміна буде величезним болем у попці, якою користується лише одна людина. Тож замість "подати виправлення", чому б не ввічливо і коротко пояснити, чому це така велика справа, і її неможливо зробити відразу.
Містер Шикаданс

2
"Надіслати патч" робить насправді паршивим пензликом, оскільки можливо, хтось надішле патч. Він повинен бути зарезервований для приємних гостей з низьким пріоритетом.
Девід Торнлі

0

Я б запропонував створити проект для реалізації функції на таких сайтах, як RentACoder / ELance / тощо, та розмістити її на оригінальному форумі проекту з відкритим кодом. Будь-який із програмістів проектів з відкритим кодом, включаючи автора, тепер має фінансовий стимул для розгляду вашого запиту.


-1

Я фактично зареєструвався, щоб відповісти на це питання.

Чи є потреба у реторті? ця відповідь зазвичай використовується, коли розробник знає про проблему, але не вважає це важливим.

Я надам вам живий приклад. ubuntu відмовився від підтримки systray (але його можна обійти за допомогою білого списку програми) та додав нові показники програми. деякі програми, такі як юпітер, покладалися на підтримку systray, тому розробник розповів про обхідний шлях замість того, щоб додавати підтримку додатків-індикаторів, тому я попросив розробника додати підтримку індикатора додатка, відповідь - "Надіслати нам патчі". запитуючи причину, вони вирішили не застосовувати цього. було це

У мене немає інтересу витрачати свій час на створення підтримки бібліотеки1, яку я ніколи не використовуватиму лише тому, що хтось із великими грошима вимагає цього, перебуваючи в чорному списку моїх програм, щоб правильно функціонувати на його дистрибутиві Linux, просто тому, що він може.

Якби це була справжня технічна проблема, я б, ймовірно, вжив заходів, але це суто політичний маневр, так що ні, я не думаю.

Ні, я просто дозволю це дозволити

Досить справедливо. розробник має підстави не використовувати функцію, але готовий приймати виправлення. це насправді не брутально і образливо, тому реторта не потребувала.

підсумок: канонічна реторта повинна була б подати виправлення, але якщо ви цього не можете, немає необхідності в реторті


-1

Почніть багатство за потрібну функцію.

Або виходьте та купуйте продукт, який стверджує, що робите саме те, що ви хочете, і зловживайте їх обслуговуючим персоналом, коли виявите, що маркетинг не відповідає вашим очікуванням.


-2

Найкраще, що я можу придумати, - "ти смоктав".

Вибачте, це, очевидно, не дуже корисно, але я думаю, що це лише одна з нещасних ситуацій, коли користувач повністю перекручений. Жорстоко чесне звернення до совісті розробника - це останні зусилля канави.

Ви можете спробувати запропонувати ( кашляти ) "пожертви", щоб вирішити свою проблему, але я побоююсь, що така практика, якщо вона буде поширена, призведе до по-справжньому поганої втрати цілісності в галузі, оскільки виправлення помилок ніколи не повинні бути вигідними, як для "Безкоштовне" або комерційне програмне забезпечення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.