From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00, DNS_FROM_OPENWHOIS,SPF_PASS autolearn=no version=3.2.5 Date: Thu, 22 Jul 2010 00:46:31 +0300 From: Igor Vlasenko To: devel@lists.altlinux.org Message-ID: <20100721214631.GA27230@dad.imath.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.20 (2009-08-17) Subject: [devel] =?utf-8?b?UE9MSUNZOiDQoNGD0YfQvdGL0LUg0Lgg0LTQuNC60Lg=?= =?utf-8?b?0LUgZ2VhciDRgNC10L/QvtC30LjRgtCw0YDQuNC4Lg==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jul 2010 21:46:37 -0000 Archived-At: List-Archive: List-Post: Уважаемые господа! Писал недавно скрипт для обновления перловых пакетов. Сначала написал обновление через src.rpm. Затем написал обновление для тех .git, которые устроены, как после gear-srpmimport, т.е. с исходниками в подпапке, потому что таких было большинство. Но были еще и несколько git с апстримными исходниками в отдельной ветке, смерженной в основную. Могли попасться, не сейчас, так в будущем, другие варианты. На первый взгляд, ситуация мрачная. Надо поддерживать неопределенное число схем, и при этом еще научить робота как-то отличать одну схему от другой. Тем более, что у нас, похоже, есть репозитории, которые усложнены до состояния роботонепробиваемости, как писалось в соседней ветке. Однако, у задачи решение есть. Прошу вникнуть в текст ниже и поддержать. ============================================ Определение 1. gear-репозиторий -- это git репозиторий, из которого можно собрать пакет с помощью gear. [т.е. git репозиторий, из которого с помощью gear собрать пакет нельзя, не рассматриваем.] Определение 2. gear-репозиторий назовем РУЧНЫМ, если %{SOURCEx} исходники апстрима находятся в отдельных подпапках и/ли отдельных ветках с тегами, указанными в директиве .gear/rules. Определение 3. gear-репозиторий назовем ДИКИМ, если он не ручной. Наблюдение 1. для ручных gear-репозиториев существует алгоритм обновления исходников. Другими словами, для ручных gear-репозиториев можно написать superpower-аналог утилиты gear-update, которая сможет автоматически обновлять ручные gear-репозитории любого типа (в частности, делать необходимые merge между бранчами, в т.ч. с бранчами, из которых создаются патчи, и проставлять теги), основываясь на имеющихся тегах и информации из spec-файла и .gear/rules. Похоже, мне не избежать в будущем написания такой утилиты для роботов, но, думаю, людям тоже будет с ней удобнее. Далее, из диких gear-репозитории можно выделить как подкласс апстримные репозитории. Это пакеты, в которых автор является одновременно и майнтайнером. Наблюдение 2. Пакеты из апстримных репозиториев роботу обновлять не нужно. Остальные дикие gear-репозитории можно назвать псевдо-апстримные. Наблюдение 3. В псевдо-апстримном репозитории роботу невозможно, а человеку без бутылки тяжело отличить апстримный код от вкладв майнтайнера. Поэтому такой gear-репозиторий неудобен для совместной работы. Пока с ним работает 1 человек, то все хорошо, но если взялся кто-то другой, то часто проще такой репозиторий выбросить и создать заново. Разница между ними и апстримными как между сыроежкой зеленоватой и бледной поганкой -- на вид еле заметна, но в случае ошибки ... Давайте полиси примем, что если майнтайнер не апстрим, то диких репозиториев не создавать. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine