ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Igor Vlasenko <vlasenko@imath.kiev.ua>
To: "Денис Смирнов" <mithraen@freesource.info>
Cc: Vitaly Kuznetsov <vitty@altlinux.ru>,
	ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] GHC-7.4
Date: Tue, 14 Feb 2012 14:19:40 +0200
Message-ID: <20120214121940.GA15188@dad.imath.kiev.ua> (raw)
In-Reply-To: <20120213213409.GA7858@t60p.mithraen.ru>

On Tue, Feb 14, 2012 at 01:34:10AM +0400, Денис Смирнов wrote:
> IV> Даже если версия XYZ не изменилась, при необходимости внести
> IV> изменения в ghc полетят его provides -
> 
> Да, действительно. Только тогда получается что мы не можем просто
> пересобрать ghc (ибо он предоставляет provides, нужные другим пакетам). И
> любая попытка пересборки ghc потребует сборки его под новым именем. 
> 
> Причем это вызовет путаниук у пользователей -- 7.0.1.1, это 7.0.1 с serial
> 1, bkb 7.0.1.1 c serial %nil?

Надо просто вносить версию (и ,опционально, serial) в %name, при чем
по разному записывать. Например, верся ghc слитно без точки,
а если есть сериал, то отделять его точкой (запятой, другим символом)
тогда будет 
ghc701-utf8-string (serial=%nil)
ghc701.1-utf8-string (serial=.1)
либо использовать текстовый serial,
ghc701rel2-utf8-string (serial=rel2)
т.е. ghc701rel2 = 7.0.1-alt1
 
> Сами по себе гигантские транзакции страшны не размерами, а тем, что при
> обновлении ghc у нас часто половина пакетов будет не собираться.
> Кстати сами по себе гигантские транзакции все равно никуда не денутся.
> Скажем что будет если пытаться обновить ghc-utf8-string, или любой другой
> пакет с большой иерархией зависимостей?

Если пытаться обновлять, то да. 
но мы такие вещи хотим собирать параллельно.

Это в старой парадигме мы все пересобираем (гигантскими) транзакциями.
В новой мы все собираем рядом.

т.е. (условно) собрать рядом с ghc701-x-string = 0.3.6-alt1
пакет ghc701-x-string-v0.4.0 = 0.4.0-alt1
и они станут рядом не конфликтуя.

А я в скрипты автоматизации внесу логику,
что если программа marmelad собиралась с ghc701 и ghc701-x-string-v0.4.0,
мы ее хотим пересобрать с ghc745, с котром штатно собран 
ghc745-x-string = 0.4.0, то умный скрипт сам заменит в BuildRequires:
ghc701-x-string-v0.4.0 на просто ghc745-x-string.

Более того, с поддержкой cabal умный скрипт заменит 
ghc701-x-string-v0.4.0 и на ghc745-x-string = 0.4.1,
 если версия  0.4.1 входит в допустимый дапазон.

Мораль:

Модули тоже надо иметь возможность размножать по их
версии/serial (по умолчанию %nil).

По мере роста пакетов неизбежно придем к ситуации,
когда пакету A нужна версия v1 библиотеки C, 
а пакету B нужна версия v2 библиотеки C,
и собирать надо обе версии. Типичная, кстати для
java ситуация, поскольку средства сборки поощряют.

Поэтому надо иметь возможность собирать и
ghcXYZ-x-string, и ghcXYZ-x-string-vA.B.C,
и ghcXYZ-x-string-vA.B.C-rel2
в случае такой необходимости.

А если нет необходимости, то будет просто ghcXYZ-x-string.

-- 

Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine



  parent reply	other threads:[~2012-02-14 12:19 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-06  6:34 Vitaly Kuznetsov
2012-02-06  8:22 ` Денис Смирнов
2012-02-06 10:01   ` Vitaly Kuznetsov
2012-02-06 13:51     ` Денис Смирнов
2012-02-06 15:32       ` Igor Vlasenko
2012-02-08 22:28         ` Денис Смирнов
2012-02-09 21:22           ` Igor Vlasenko
2012-02-10  4:44             ` Vitaly Kuznetsov
2012-02-10 16:49               ` Igor Vlasenko
2012-02-10 17:54                 ` Igor Vlasenko
2012-02-10 22:52                   ` Денис Смирнов
2012-02-10 23:04                     ` Igor Zubkov
2012-02-10 23:40                       ` Денис Смирнов
2012-02-11 18:54                     ` Igor Vlasenko
2012-02-12 21:32                       ` Денис Смирнов
2012-02-13 15:06             ` Денис Смирнов
2012-02-13 19:17               ` Igor Vlasenko
2012-02-14 12:19                   ` Igor Vlasenko [this message]
2012-02-14 12:46                     ` Igor Vlasenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120214121940.GA15188@dad.imath.kiev.ua \
    --to=vlasenko@imath.kiev.ua \
    --cc=devel@lists.altlinux.org \
    --cc=mithraen@freesource.info \
    --cc=vitty@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git