Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 25 ноября 2011< ^ >
ygrek установил(а) тему: OCaml / ОКамл / Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ | Fight FUD with fire
Конфигурация комнаты
Участники комнаты

GMT+4
[00:00:07] <gds> Kakadu: некоторым лучше делать несколько дел одновременно для продуктивности, особенно разноплановых дел.  Так что, может, и не зря оставлял.
[00:06:08] Kakadu вышел(а) из комнаты
[00:06:58] <gds> однако, господа, есть проблемка.  dvcs может смержить код, но не идеи.
[00:16:41] Typhon вышел(а) из комнаты: Replaced by new connection
[00:16:43] Typhon вошёл(а) в комнату
[00:31:50] ygrek вошёл(а) в комнату
[00:45:33] Typhon вышел(а) из комнаты
[00:46:25] Typhon вошёл(а) в комнату
[00:52:05] <gds> Typhon: какие у тебя потребности по отношению к них..вому пакетному менеджеру?  если не вписываются в описанные -- сообщи, интересно твоё мнение тоже.
[00:53:24] Typhon вышел(а) из комнаты: Replaced by new connection
[00:53:35] Typhon вошёл(а) в комнату
[00:56:31] Typhon вышел(а) из комнаты: Replaced by new connection
[00:58:24] Typhon вошёл(а) в комнату
[01:00:05] <ygrek> кто хотел? -> http://softserve.ua/vacancies/open-vacancies/cobol-software-engineer
[01:01:12] <gds> ermine хотела!  оставим ссылочку для неё!
[01:04:16] <qrntz> > cobol
hahaha oh wow
[01:04:43] <gds> it's a serious business.
[01:05:13] Typhon вышел(а) из комнаты: Replaced by new connection
[01:05:25] Typhon вошёл(а) в комнату
[01:09:15] arhibot вошёл(а) в комнату
[01:09:56] qrntz вышел(а) из комнаты
[01:10:06] arhibot вышел(а) из комнаты
[01:10:19] <Typhon> Блин, написал телегу, а чёртово приложение её потеряло! В общем, на первом этапе достаточно быстро даунлоадилки пакетов, чтобы можно было свои пакеты быстроставить и давать чувакм на посмотреть. Тут даже готов полностью дерево зависимостей для всех либ, от которых мой проект зависит. Дальше -- нихизвция всей страны -- написание нихконфгигов для популярных либ, которые часто ставишь на свежие системы; либо максимальная автоматизация на основе оазиз файла, наприе. Ну и группы/инклюды, для разделения разных кейсов --важная штука. В общем, всё вроде есть в доке, только что прочёл свежую версию.
[01:12:14] Typhon вышел(а) из комнаты: Replaced by new connection
[01:12:15] Typhon вошёл(а) в комнату
[01:12:38] <gds> > Typhon [.../talkonaut-iphone_5.91_002d9505] вошёл в комнату.
ага, про чёртово приложение понятно.  Остальное -- сейчас обдумаем.
[01:14:02] <Typhon> Ойпадовое только :D тут ещё забавный мнет -- на одном конце дивана -- едже, на другом -- 3г, а по середине инета нет :)
[01:22:40] <gds> Typhon: про "полностью дерево зависимостей либ" -- да!  Это одна из главных штук.  Чтобы можно было гарантированно сбилдиться из интернетов, независимо от уже стоящих пакетов.  Это очень важно.
про них-конфиги для либ -- идея хорошая, только хз как пушить им это дело без имеющейся популярности.  В целом, надо как-то суметь обойтись без этого, оставив это как опцию, вероятно хорошую.  (а вероятно и нет -- если у них "сильное указание" на конкретную версию, а в нас "сильное указание" на другую версию (с косметическими правками) -- вешаться?  имхо тут надо решать конфликт указанием конкретной версии в них-конфиге.  надо это учитывать при описании.)
про инклуды -- ага, важно, но пока можно и без этого, как-то генерить из говна и спичек.
обсудим?
[01:29:04] Typhon вышел(а) из комнаты: Replaced by new connection
[01:29:05] Typhon вошёл(а) в комнату
[01:31:14] <Typhon> Нихконфиги для либ -- да хотя бы репка отделтная с ними, чтобы можно было взять, для оазиса файлик и поставить его быстро. Тут, кстати вылезает ещё одна полезная и обсуждавшаяся краем фича -- нихконфиги не с локального файла
[01:32:23] <gds> Typhon: я про них как-то говорил, что "инклуд с сетевого ресурса" -- для юзкейса "контора" ведь идеально!
[01:33:10] <Typhon> Угу, я про это тоже. Но видимо и без инклудов для ремоут них(Т)конфигов есть юзкейс
[01:33:46] <gds> логично.
[01:33:53] <Typhon> Инклуды да, косметика --чоб и не копипастнуть конфиг, если очень надо
[01:35:06] <gds> Typhon: а у тебя там на этом девайсе таки работают гуглодоки?  может внесёшь куда-нибудь так, как ты считаешь, а потом разгребём по сусекам, и всё такое.
[01:37:54] Typhon вышел(а) из комнаты: Replaced by new connection
[01:37:54] Typhon вошёл(а) в комнату
[01:38:26] <Typhon> Работает в режиме для чтения только, видимо :-(
[01:39:27] <gds> пичалька.  скопипащу обсуждение, там пофиксим.  ибо у меня моск уже на исходе.
[01:41:43] ygrek даже не делает вид что у него есть моск
[01:42:58] <gds> ygrek: и правильно, так и надо!
[01:58:47] Typhon вышел(а) из комнаты: Replaced by new connection
[01:58:48] Typhon вошёл(а) в комнату
[01:59:05] Typhon вышел(а) из комнаты
[02:58:15] ygrek вышел(а) из комнаты
[02:58:21] @eoranged вошёл(а) в комнату
[04:34:39] letrec вошёл(а) в комнату
[05:07:35] letrec вышел(а) из комнаты
[05:49:00] klapaucius вышел(а) из комнаты
[06:11:17] Typhon вошёл(а) в комнату
[07:12:13] komar вышел(а) из комнаты
[07:29:20] Typhon вышел(а) из комнаты: Replaced by new connection
[07:29:21] Typhon вошёл(а) в комнату
[07:37:36] <Typhon> Кстати, fyi и чтобы почтеным товарищам не мараться о г-о, как выглядит бандлер. Есть несколько "центральных" хранилищ гемок, типа рубигемс и его альтернатив, есть локально поднятые хранилища. В проекте, исполюзующем бандлер, есть тн гемфайл, где описаны "источники" то есть хранилища-индексы пакетов. Далее в группах распиханы гемки, с указаниями версий. Гемка может быть указан либо путь локальный, это значит надо брать оттуда, либо гит путь, значит надо выкачивать оттуда. Если ни то, ни другое не указано, ставится наиболее подходящая версия из индексов-хранилищей. Группы используются для разделения гемов, нужныых для работы и гемов, нужных для девелопмента (всякие тесты и прочее). Также можно для гема задать алиас -- имя, под которым он будет реквайриться в коде -- это полезно, если есть некая альтернативная реализация каккой-то либы, но сам код менять не хочется. После написания гемфайла, запускается команда бандл апдейт, которая ресолвит указанные правила и констрейнты и создаёт файл гемфайл.лок, который содержит уже полное дерево зависимостей с точными версиями и ша, в случае гита.  Во время выкатки запускается команда бандл инсталл, которая по гемфайл.локу ставит точно те версии, которые нужны.
[07:39:03] <Typhon> При этом индекс-хранилища реализованны как-то странно: гемок там явно меньше, чем пакетов в дебиан-репах, однако апт-гет апдейт && апт-гет инсталл пакет, с пачкой репок выполняется намного быстрее, чем фетчинг индекса доступных гемок с рубигемс.орг
[07:41:48] Typhon вышел(а) из комнаты
[07:52:19] Typhon вошёл(а) в комнату
[07:52:54] Typhon вышел(а) из комнаты: Replaced by new connection
[07:52:55] Typhon вошёл(а) в комнату
[07:56:57] <Typhon> Кстати, про условно центральный индекс инфы по пакетам -- если задавать его в виде шаблона урла с %s, в котроый подставляется имя пакета, то можно в кач-ве такого индекса хоть гитхаб репку использовать --дёшево и работает. И типа, если мы зависим от пакета, про который нет строгих указаний -- лезем по урлу за его них-конфигом, где и его размещение может прописано и инфа о зав-тях. Таким образом, мы силами камлунити можем кучу расостранённых пакетов окучить на гитхаб репе, и еслли пойдёт -- там легко добавления принимать -- тогда не нужно будет никого убеждать о необходимости православного конфига в их пакете. Как рецпты для ель-гета прямо!
[08:06:01] Typhon вышел(а) из комнаты: Replaced by new connection
[08:06:05] Typhon вошёл(а) в комнату
[08:22:43] Typhon вышел(а) из комнаты
[08:50:56] <bobry> идея про индекс в репке -- шикарна
[08:51:35] <bobry> правда тогда не очень понятно -- нафига явные пути к зависимостям в nih.config, делаешь свой "рецепт", и все
[08:56:52] Typhon вошёл(а) в комнату
[09:22:52] <Typhon> bobry, разверни про полные пути и рецепт, пожалуйста
[09:53:11] bobry вошёл(а) в комнату
[09:53:55] <bobry> Typhon: если у нас есть репозиторий рецептов, то достаточно будет _oasis файла — в принципе это аналогично централизованному варианту который описан в спеке
[09:54:53] <bobry> т. е. мы читаем из _oasis зависимости A, B и проходимся по соотв. рецептам (в которых уже описаны зависимости A и B)
[10:09:52] bobry вошёл(а) в комнату
[10:09:52] bobry вышел(а) из комнаты
[10:10:58] Typhon вышел(а) из комнаты: Replaced by new connection
[10:13:25] Typhon вошёл(а) в комнату
[10:24:19] ygrek вошёл(а) в комнату
[10:26:50] Typhon вышел(а) из комнаты: Replaced by new connection
[10:26:51] Typhon вошёл(а) в комнату
[10:26:56] Typhon вышел(а) из комнаты
[10:27:15] Typhon вошёл(а) в комнату
[10:30:29] Typhon вошёл(а) в комнату
[10:31:01] Typhon вышел(а) из комнаты
[10:35:22] <bobry> Typhon: по хорошему бы надо в cobson запилить Camomile, ведь string == utf string
[10:37:20] <Typhon> bobry: https://github.com/little-arhat/cobson/commit/41c92303450c0cd0ab6e4a8094254230964acb45
[10:37:47] <Typhon> по-моему, я рассуждал, что либка должна просто вернуть байты, а что с ними делать — пусть юзер решает
[10:38:05] <bobry> хм, ну мб
[10:39:25] <Typhon> тут либо опционально это надо делать, либо не делать, кмк, иначе, если я точно знаю, что я тупо с ascii работаю, мне будет грустно от того, что лишние оверхеды есть %)
[10:40:33] <bobry> а почему в mli нельзя написать module Foo = Bar.Foo?
[10:44:37] <Typhon> bobry: http://www.cs.ru.nl/~tews/htmlman-3.10/full-grammar.html#anchor09
[10:50:57] <ygrek> http://stackoverflow.com/questions/8265309/why-cannot-the-ocsigen-run-my-python-file
[10:54:38] <Typhon> я тоже поржал ща :-)
[11:03:14] @eoranged вышел(а) из комнаты
[11:14:19] <bobry> lul
[11:25:48] ygrek вышел(а) из комнаты
[11:25:52] ygrek вошёл(а) в комнату
[11:42:26] ftrvxmtrx вошёл(а) в комнату
[12:09:53] <bobry> товарищи, а как называется функция которая из ('a * 'b) -> 'c делает 'a -> 'b -> 'c? вроде довольно типичный случай
[12:12:48] <bobry> а в х-ле есть .. http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:curry
[12:16:54] Kakadu вошёл(а) в комнату
[12:18:43] <bobry> о, такая штука есть в капутте Generator.apply2
[12:20:55] <Typhon> я бы не стал использовать кодэ из либы для тестов в основной либе
[12:21:37] <Typhon> (в смысле, не сам кодэ, а функции, либкой предоставляемые)
[12:23:31] <bobry> Typhon: мне для теста и надо было
[12:23:55] <bobry> кстати капутт неимоверно хорош — рекомендую!
[12:24:00] <Typhon> ясно
[12:24:09] <bobry> еще бы ключиков командной строки ему добавить
[12:24:20] <bobry> для кастомизации вывода
[12:30:36] ermine вошёл(а) в комнату
[12:37:38] <Kakadu> > <Typhon> Ойпадовое только :D тут ещё забавный мнет -- на одном конце дивана -- едже, на другом -- 3г, а по середине инета нет :)
на баш надо!
[12:55:01] ygrek вышел(а) из комнаты
[12:56:42] shaggie вошёл(а) в комнату
[12:57:02] <f[x]> я нифига не понял про индексы пакетов для каждого destdir'а отдельно
[13:02:00] <f[x]> что-то всё капец усложнилось
[13:02:28] <bobry> f[x]: что-ты думаешь про репозиторий рецептов?
[13:02:38] <f[x]> видимо просто спека неконсистентная
[13:03:09] <f[x]> bobry: типа описания зависимостей отдельно от либ?
[13:03:22] <f[x]> я думаю это будет фэйл уровня oasis-db
[13:03:53] <f[x]> в теории выглядит хорошо - на практике будут полтора человека которые будут поддерживать рецепты для нужных им либ
[13:04:27] <f[x]> но как ещё один вариант - как узнать зависимости для такой-то либы - почему нет
[13:06:08] <f[x]> хотя поддерживать там мало усилий надо
[13:06:20] <bobry> f[x]: если разместить это все дело на gh то все будет ок — el get / brew и компания подтверждают теорию
[13:09:20] <f[x]> т.е. у нас есть глобальный опциональный индекс который имеет вид
"имя пакета" => { урла для скачивания тарбола по маске, репозиторий, последняя версия, способ автоматического нахождения последней версии (скан страницы с регекспом a la uuscan), список зависимостей (имена пакетов) }
[13:09:21] <f[x]> так?
[13:10:54] <bobry> нет, индекс как раз локальный
[13:11:06] <f[x]> el и brew - там больше чем полтора человека. нам нужно минимизировать человеческие усилия на поддержку центрального индекса. можно посмотреть сколько есть всяких индексов для камлесофта и в каком они состоянии - oasis-db, godi, camlcity, hump
[13:11:13] <bobry> у нас есть локальный индекс с рецептами, в которых прописаны зависимости + урл для скачивания
[13:11:16] <f[x]> локальный?
[13:11:20] <f[x]> а откуда он берётся?
[13:11:25] <bobry> git clone
[13:11:44] <f[x]> bobry: не путай меня - если git clone - значит он глобальный
[13:11:47] <bobry> el-get поддерживают 3-4 человека, в смысле мержат pull-requests
[13:12:02] <bobry> ну йома, ты его клонируешь к себе — и все запросы происходят локально
[13:12:35] <f[x]> йома, ясно пень что индекс скачивается один раз
[13:12:44] <f[x]> я говорю про видимость этого индекса
[13:12:46] <bobry> т. е. фактически индекс это коллекция nih.config для разных камло либ
[13:12:52] <bobry> видимость глобальная да
[13:13:13] <f[x]> ага
[13:13:31] <f[x]> если я скачал либу и в ней есть nih.config то индекс я игнорирурю
[13:13:38] <bobry> причем в этом случае не надо никаких приоритетов — ибо можно ручками отредактировать любой рецепт
[13:13:51] <bobry> не-не, этот вариант подразумевает что nih.config только в индексе
[13:14:05] <bobry> зачем усложнять?
[13:14:23] <f[x]> т.е. индекс становится неопциональным
[13:14:26] <f[x]> фэйл
[13:16:33] <f[x]> это фэйл для юзкейса гарантированная сборка
[13:17:52] <f[x]> т.е. такая система с рецептами у нас уже есть - oasis-db, тогда надо просто пилить её
[13:18:21] <f[x]> туда можно добавлять проекты без _oasis'ов и _oasis дописывать самому
[13:18:50] <f[x]> тот же godi
[13:19:21] <f[x]> тоже godi-спека может дописываться третьим человеком - мейнтейнером - так оно и происходит
[13:20:12] <bobry> f[x]: почему фейл? тут есть несколько явных бонусов по сравнению с odb
[13:20:17] <bobry> 1. легко котрибутить ибо gh
[13:20:30] <bobry> 2. легко модифицирвоть ибо есть локальная копия
[13:22:05] <Typhon> я бы оставил индекс опциональным. типа, если у меня есть свои либки, и я пишу с их помощью проээкт, то зачем мне писать какие-то рецепты куда-то, если я просто могу указать ссылки все в нихконфиге проээкта? тот же ель-гет так и работает — хочешь, пиши рецепт, а хочешь:
(el-get-add
  (:name utop
   :type http
   :url "https://raw.github.com/gist/1170388/af3c4f025b63976c27c3260c953d1aa6ab9d4d17/utop.el"
   :features utop
   :after (lambda ()
      (autoload 'utop "utop" "Toplevel for OCaml" t))))
[13:23:06] <bobry> ну может это и правильно
[13:24:14] <f[x]> я хз
[13:24:19] <f[x]> все хотят разного
[13:24:22] <f[x]> как всегда ;)
[13:25:10] <Typhon> не, по-моему, в спеке всё ок, гх-репка — это просто один из вариантов условно централизованного индекса.
[13:27:13] <f[x]> т.е. nih просто ищет где-то в локальной fs nih-конфиги для либ без оных - откуда этот каталог будет браться - дело юзверя
[13:27:26] <f[x]> так всех устраивает?
[13:29:35] <bobry> okay
[13:45:16] <f[x]> по-моему пора трясти пальму, иначе кол-во фич и вариаций будет расти и расти
[13:47:42] <Kakadu> и ещё пора забээкапить мануал и утрясти название
[13:50:23] <bobry> brb
[13:50:38] <Kakadu> +1
[13:53:03] АК вошёл(а) в комнату
[15:01:07] <Kakadu> меня тут на работе заставляют портировать комаппинг на айпад первой версиии. Думаю может за одно как-то протестить как камло с айпадом подружить.....?
[15:03:54] <Typhon> майндмап апп под айпад вёдрами таскать можно
[15:06:00] <Kakadu> чего?
[15:06:48] <Typhon> приложений на айпад, позволяющих заниматься майндмаппингом — полно. может среди них и что-то коллективное есть
[15:06:58] <Typhon> про айпад с камлом были письма в рассылке %)
[15:09:29] <bobry> кто нибудь в курсе — можно как нибудь в camlp4 отличить module Foo = struct type t = … end от просто type t = …?
[15:09:53] <bobry> мне бы в первом случае генерить просто of_bson / to_bson а во втором t_of_bson, t_to_bson
[15:10:57] <f[x]> bobry: KISS, генерь всегда первый вариант
[15:11:10] <f[x]> или всегда только второй
[15:11:17] <bobry> ну уродливо как то будет же
[15:11:22] <f[x]> почему?
[15:11:28] <bobry> Foo.t_of_bson
[15:11:31] <f[x]> ты ж не знаешь какие модули юзер будет открывать
[15:11:35] <bobry> вместо Foo.of_bson
[15:11:43] <f[x]> а если open Foo open Bar ?
[15:11:50] <bobry> ну тогда да
[15:11:58] <f[x]> не решай за пользователя
[15:12:12] <f[x]> можно сделать это опцией генератора
[15:12:23] <f[x]> можно и отследить вложенность - но имхо bad style
[15:12:32] <gds> эй, народ.  я почитал чятик и я опечален потенциальными усложнениями.
[15:13:04] f[x] ушёл на обед
[15:13:07] <bobry> gds: поясни?
[15:14:14] <bobry> кстати классная штука StdLabels и MoreLabels, кто нить пользуется?
[15:17:09] <gds> например, не представляю, на каком уровне абстракции должен быть поиск по гитхаб-репкам и нужен ли он.
[15:18:04] <Kakadu> bobry: Я вначале пересел на кору, а потом вспомнил про StdLabels
[15:18:25] <bobry> gds: в смысле поиск по индексу?
[15:19:28] <gds> во, даже более общий вопрос: кто и как будет поддерживать глобальный индекс пакетного менеджера?
[15:20:09] <bobry> ну т.к. он на гитхабе то наверное ответ "все"
[15:20:21] <Typhon> ~= "никто" ^_____^
[15:20:42] <Typhon> поиск по гитхаб репкам не предлагался, предлагалсь гитхаб репка, как один из вариантов централизованного хранилища, с которого можно по шаблону урла, по хттп забирать нихконфиги
[15:20:46] <Kakadu> пока мы, но если них танет популярным , то свалим на хренцузов
[15:21:04] <Typhon> и куда легко любому челу слать доавления
[15:21:21] <gds> предлагается делать git clone репка && get репка/файл перед использованием глобального индекса?
[15:21:42] <gds> Typhon: про "никто" -- близко к истине.
[15:21:54] <bobry> да ну ладно — есть же обратные примеры
[15:21:56] <gds> Kakadu: эти лентяи сами готовы свалить на других всё.
[15:22:19] <Typhon> нет, я не хотеть этого :-) я хотеть скорее тупо темплейт-урл, или хостнейм. темплейт-урл, кмк, гибче
[15:23:19] <Typhon> (не хотеть — про гит клоне)
[15:23:56] <gds> Typhon: представь два урла: bitbucket/gds/cadastr и bitbucket/vasya/cadastr с нерабочим клоном.  откуда брать?
[15:32:19] <Typhon> в смысле, два урла? это урлы на "откуда брать пакет"? а почему их два, внезапно? по разным зависимостям пришли? это не относится к центральному хранилищу тогда, а скорее к "конфликтам". для хранилища я против клона, я за http-get просто, и за один источник на них-конфиг. ну или несколько, но с приоритетами. соот-но тогда если не находится — переходим к следующему индексу. если нигде не нашлось, поступаем по спеке (пакеты без нихконфига и без урла где брать).
[15:34:08] <gds> ага, понял.
[15:35:01] <gds> однако, меня тут терзает ощущение, что это -- свистоперделки.  А именно, легко добавляются в функцию типа get_source_of_package_by_name как ещё один случай "развития событий".
[15:40:27] <Typhon> что именно свистоперделки? центральное хранилище?
[15:41:45] <Typhon> *центральный индекс
[15:48:39] <gds> если бы был чуть более общий и полезный в других случаях механизм, было бы, например, include http://.../
[15:49:25] <gds> хотя хреново, на каждый чих лезть и выкачивать с хттп что-то -- криво.
[16:06:41] <gds> а хотя с перекачиванием можно решить путём кеширования и какого-то способа прибить кеш.
[16:22:49] ftrvxmtrx вышел(а) из комнаты
[16:23:07] ftrvxmtrx вошёл(а) в комнату
[16:24:20] ftrvxmtrx вышел(а) из комнаты
[16:24:41] ftrvxmtrx вошёл(а) в комнату
[16:29:04] letrec вошёл(а) в комнату
[16:53:09] <gds> я вот подумал и пришёл к выводам: 1. полностью централизованный вариант делать глупо (есть примеры), 2. полностью децентрализованный делать неудобно, так как в проекте по-любому необходим локальный них-конфиг, и по-любому будут случаи, когда разработчики будут делиться них-конфигами (их общими частями), а это и есть нарушение "полной децентрализации".
[16:54:40] komar вошёл(а) в комнату
[16:54:42] komar вышел(а) из комнаты
[16:59:31] <f[x]> бинго
[16:59:42] f[x] написал так с самого начала - опциональный индекс
[17:03:18] <Typhon> да-да, я вроде бы тоже про опциональный индекс говорил, только, наверное, плохо :-) типа, для всяких либ, которые непрогрессивные бе нихконфига, но которые пацанам нужны, можно нафигачить репку :-)
[17:04:40] <gds> вы все путали мой непроснувшийся моск!  Как вам не стыдно, г-сспаде есусе.
[17:04:46] <f[x]> предлагаю назначить bobry виноватым!
[17:05:04] <bobry> agreed!
[17:06:01] <gds> предлагаю назначить виноватым одного клёвого учёного-биолога, с кем я вчера до утра разговаривал про симуляцию эволюции :[
[17:06:14] <gds> (а есть и такой проектик.)
[17:15:18] <gds> нужно как-то уточнить Терминологию/"индекс пакетов".
[17:15:42] <gds> ведь это, фактически, тот же них-конфиг, зачем его в отдельную сущность?
[17:16:57] komar вошёл(а) в комнату
[17:24:51] ftrvxmtrx вышел(а) из комнаты
[17:25:05] ftrvxmtrx вошёл(а) в комнату
[17:26:32] <gds> я пробежался по документу, но многое не знаю, как поправить.  давайте идеи, что криво, будем обсуждать.
[17:27:42] klapaucius вошёл(а) в комнату
[17:59:33] bobry только поздно вечером сможет
[18:01:04] <gds> кстати, появилась нужда в двух разных custom-средах.  Юзкейс: использую оверблд (custom#1), но внутренние конторские проекты имеют свой набор внутренних либ (custom#2).
[18:03:50] <gds> появилась нужда указать, что "данный пакет должен быть добавлен в указанное custom-окружение" -- наверное, через ручное внесение в нихт-конфиг данного custom-окружения и команду типа "нихпм, возьми это окружение и доставь туда нужные либы, бегом".
[18:05:46] <gds> во!  в связи с этим, может обобщить случаи local/custom так, чтобы то, что для нашего проекта было custom=/some/dir, для проекта, находящегося в /some/dir, было local?
[18:15:47] <f[x]> custom не один для системы - их столько сколько юзер захочет
[18:15:54] <f[x]> поэтому это и есть аналогия venv
[18:16:08] <f[x]> system и local это считай частные случаи кастома
[18:16:28] <gds> понял, красиво, годно.  про "во!" -- есть каменты?
[18:17:05] <gds> And Now for Something Completely Different.  Как в зависимости от аргументов класса унаследоваться либо от одного класса, либо от другого?
[18:17:58] <f[x]> ну, если local сетапает в project/.deps, то указав такой custom - так и будет
[18:18:07] <f[x]> но это уже извращённые фантазии пользователя
[18:18:47] <gds> имхо очень удобно было бы совместить оба расклада.  или у меня утренняя тупка продолжается?
[18:19:27] <f[x]> gds: это пользователь сам делает
[18:19:46] <f[x]> т.е. на нас это никак не влияет
[18:19:59] <f[x]> так же как ты сейчас можешь /etc/ слинковать в /home/user/etc
[18:20:10] <f[x]> явно это оговаривать не надо
[18:23:09] <gds> да, видимо туплю.  но расскажи, как быть в таком сценарии.  представим двух пользователей -- главный сетапальщик конторы с доступом к расшаренному диску конторы с внутренними либами.  оказалось, что нужно сбилдить хитрожопую либу и сделать так, чтобы в конторском окружении она юзалась всеми.  если будет какой-то "шаблон для custom-окружений" (я условно), достаточно будет добавить туда источник либы, прописать "данная_либа -- только тут", и запустить пересборку окружения.  ровно так же, как в локальном случае пользователь указывает "данная_либа -- только тут" (с указанием на свой локальный myproject/.deps).
[18:24:57] Typhon вышел(а) из комнаты
[18:25:19] <gds> тьфуты.  двух пользователей -- сетапальщика и простого работника-кодера, который должен заюзать данную либу исключительно из конторы -- вопросы совместимости, доверия, рефакторинга, тестирование перехода на новую версию либы.
[18:33:04] <f[x]> т.е. второй чувак использует бинарнуб сборку первого?
[18:33:12] <f[x]> это не наш сценарий
[18:34:26] <gds> а понту тогда custom делать с его использованием?
[18:36:02] <f[x]> скажем я хочу проверить собираемость своего проекта с новой версией какой-то внешней либы (think type-conv), а свой проект использует ещё кучу внутренних либ
[18:36:30] <gds> тогда используй локальный них-конфиг и прописывай туда type-conv.
[18:36:50] <f[x]> а ставиться мои внутренний либы куда будут?
[18:37:33] <gds> мда, хренотень.  там же зависимости есть, и новый локальный type-conv потребует локальной же пересборки всего, что от него зависит.
[18:37:42] <f[x]> да
[18:38:18] <f[x]> custom - это просто способ изолировать пачку либ
[18:38:48] <f[x]> local это считай то же самое, но custom предназначе для реиспользования между несколькими проектами
[18:38:59] <f[x]> т.е. путь вне проекта которого собираешь
[18:39:33] <gds> так, ну вот, думаю.  если указать где-то то, что type-conv требуется для таких-то либ, то при случае втаскивания type-conv локально надо будет и остальное втащить локально (либо из них-конфига конторы, либо в локальном конфиге).
[18:40:16] <f[x]> что значит "втащить локально"?
[18:40:37] <f[x]> весь проект и все зависимости надо будет пересобрать и проинсталлить в какой-то destdir
[18:40:54] <f[x]> если дело только в одном проекте - то можно пересобрать в project-local destdir
[18:41:10] <f[x]> если проектов несколько - то в custom - чтобы они результаты сборки переиспользовали
[18:41:43] <f[x]> при этом всё что у тебя в system - не ломается - остаётся в рабочем состоянии
[18:42:07] <f[x]> если же ты уверен что ты хочешь безвовзратно перейти на новый type-conv - пересобираешь в destdir=system
[18:42:38] <f[x]> (и удаляешь конфликтующие версии по мере того как nih на них ругается)
[18:43:00] <f[x]> короче реально спека-спекой, а все себе разное представляют
[18:43:27] <gds> да, хрень какая-то.
[18:47:59] <gds> с другой стороны, я чото не вижу подобных случаев, приведённых в спеке.  может надо их внести туда?
[18:50:13] <Kakadu> по-моему system и локал становятся частными случаями кастома
[18:50:17] <gds> f[x], ты самый здравомыслящий, по моему ощущению, поэтому, как будет время, может внесёшь?
[18:50:30] <gds> Kakadu: вроде да.
[18:51:29] <f[x]> да
[18:51:35] <f[x]> годный юзкейс
[18:51:58] <f[x]> Kakadu: они всегда так и были (в моём понимании)
[18:52:21] <f[x]> цель использования у них разная - удобней вынести в разные сущности
[18:52:29] <Kakadu> f[x]: я только сейчас это осмыслил
[18:53:15] <gds> f[x]: про юзкейс -- это про "нужно новый type-conv, и чтобы не обосраться"?
[18:53:58] <f[x]> да
[18:59:03] bobry вышел(а) из комнаты
[19:02:34] Kakadu вышел(а) из комнаты
[19:07:19] ftrvxmtrx вышел(а) из комнаты
[19:07:27] ftrvxmtrx вошёл(а) в комнату
[19:33:28] bobry вышел(а) из комнаты
[19:50:24] bobry вошёл(а) в комнату
[19:59:56] Kakadu вошёл(а) в комнату
[20:06:31] ftrvxmtrx вышел(а) из комнаты
[20:56:32] ygrek вошёл(а) в комнату
[21:08:10] letrec вышел(а) из комнаты
[21:45:53] ermine вышел(а) из комнаты
[22:37:07] arhibot вошёл(а) в комнату
[22:37:12] arhibot вышел(а) из комнаты
[22:45:45] ygrek вышел(а) из комнаты
[22:50:25] shaggie вышел(а) из комнаты
[22:52:00] gds вышел(а) из комнаты: Replaced by new connection
[22:52:01] gds вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!