From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.2.3 Date: Mon, 24 Mar 2008 21:05:36 +0200 From: Igor Vlasenko To: devel@lists.altlinux.org Message-ID: <20080324190536.GA19045@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.17 (2007-11-01) Received-SPF: pass (dad.imath.kiev.ua: domain of vlasenko@dad.imath.kiev.ua designates 127.0.0.1 as permitted sender) receiver=dad.imath.kiev.ua; client-ip=127.0.0.1; helo=dad.imath.kiev.ua; envelope-from=vlasenko@dad.imath.kiev.ua; x-software=spfmilter 0.95 http://www.acme.com/software/spfmilter/ with libspf2; Subject: [devel] repocop 0.07 changes X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.10b3 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: Mon, 24 Mar 2008 19:05:47 -0000 Archived-At: List-Archive: List-Post: Уважаемые коллеги, В сизифе сейчас repocop 0.06, ориентированный на тесты без состояние. Хочу рассказать о направлении разработки repocop 0.07. repocop 0.07 полностью совместим и будет совместим c существующими тестами, но в нем будет одно важное улучшение. Больше всего в repocop 0.06 меня напрягала необходимость 2 часа прогонять через тест весь репозиторий, если в тесте хоть что-то меняется. Новая архитектура должна устранить этот недостаток. Многие тесты совместно используют одни и те же данные. Примером может служить база данных rpm.db, которая создается в процессе работы repocop 0.07. Для каждого пакета в ней содержатся список файлов, значения полей Group:, URL:, Requires:, Provides, скрипты %postun, и т. д., т.е. вся информация, которая содержится в заголовке rpm пакета. Кроме того, логика обработки данных меняется гораздо чаще, чем структура хранения данных. Чтобы повысить повторную используемость кода и не прогонять весь репозиторий через тесты каждый раз, когда в тесте меняется логика, в repocop 0.07 введена новая сущность - коллекторы (сборщики данных). Коллекторы устроены в точности как тесты, но не возвращают никаких результатов, а только собирают данные для своей базы. Собранные коллекторами данные могут использоваться в тестах при вызове скриптов /done. Это позволяет дорогие по машинному времени вызовы /test сосредоточить в коллекторах, а в тестах использовать дешевые вызовы /done. Рекомендуемый формат хранения собранных коллектором данных - файл SQLite. Архитектура repocop не запрещает альтернативные форматы хранения, но разнородные форматы данных могут затруднить обработку данных тестами. Например, данные из разных файлов SQLite можно обработать одним запросом SQLite, чего не скажешь о разнородных форматах. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine