qmlcourse icon indicating copy to clipboard operation
qmlcourse copied to clipboard

installation and docker guide

Open alexey-pronkin opened this issue 2 years ago • 36 comments

Планы изменились немного. Докер пока оставил для локальной разработки --stage dev, и для слушателей с минимальным набором пакетов, анакондой и jupyter-lab:

[] тесты для всех видов установок (gh-actions) [] тест гайда на OSX [] тест гайда на Linux [] тест гайда на Windows [] тест Docker [] Перевод на русский

Закрывает/будет закрывать проблемы #230 #207

alexey-pronkin avatar Nov 03 '21 18:11 alexey-pronkin

Вообще можно обсудить, может нам стоит вообще перейти на conda? Меня она просто бесит тем, что ей обязательно системный питон подменять - из-за этого на *nix пакетные менеджеры ломаются. Но я это переживу, если от этого всем станет смльно проще... Кажется, с conda в качестве основного менеджера тут было бы сильно меньше велосипедов.

SemyonSinchenko avatar Nov 04 '21 00:11 SemyonSinchenko

Я тоже думал об этом, но решение как-то разделить Software Development от создания контента для лекций и просмотра лекций мне кажется хорошей идеей, для последних двух кейсов использовать конду, для первого - poetry. У анаконды очень много недостатков, как в плане менеджера зависимостей, так и в плане тотальной помойки. По сравнению с poetry она пока что дно, плюс poetry активно развивается. Вроде как не нужно ей ничего заменять, сейчас она устанавливает вместе с собой свой отдельный пайтон и не меняет LC'ы по умолчанию, они вообще хотят перейти в сторону conda run -n env_name some_command

alexey-pronkin avatar Nov 04 '21 06:11 alexey-pronkin

На *nix конда прописывает себя в .bashrc и всегда по умолчанию активируется ее окружение base вместо системного питона. Ну раньше так было и от этого неаозможно бвло избавиться (ну либо убрать ее из bashrc, но тогда и команда conda исчезала).

SemyonSinchenko avatar Nov 04 '21 07:11 SemyonSinchenko

Просто учитывая то, что psi4 тоже только через conda собирается, я бы предложил заменить вообще poetry на conda.

SemyonSinchenko avatar Nov 04 '21 08:11 SemyonSinchenko

@SemyonSinchenko да, я тебя понял. Я о том, что в новых релизах они переделают это поведение, уже сделали .condarc и терминал по умолчанию будет открываться с окружением python из base только с командой conda init. Cейчас уже есть варианты с тем, чтобы при установке она ничего не прописывала bashrc (кроме как в PATH пути до bin/conda), по крайней мере в их докере ровно такое поведение и приходится использовать (и это супер правильно) conda run -n qmlcourse.ai python -m pip intall something или conda init && conda activate qmlcourse.ai && python -m pip intall something, в новых релизах будет изменено это поведение по умолчанию вроде как (если уже не) :) Так что стоит попробовать поставить на чистую, может уже все будет работать как предполагается.

alexey-pronkin avatar Nov 04 '21 09:11 alexey-pronkin

@alexey-pronkin отметишь тогда ready for review когда можно будет уже смотреть

vvssttkk avatar Nov 04 '21 10:11 vvssttkk

ввиду #296, psi4 тут не так важен, хорошо бы разобраться с #297 windows вообще оставить на потом

vvssttkk avatar Nov 28 '21 12:11 vvssttkk

Тут все работает, я детально прочитал про докер и у меня такое мнение, что докер тащить в CI сейчас не целесообразно, там они делают жёсткие ограничения, чтобы люди платили. По сути GitHub CI имеет те же возможности и сделан внутри также, тем более что уже почти починили psi4. Основной contribution этого PR - детальная инструкция как можно альтернативно все поставить без пакетных менеджеров на английском в конду. У меня просто совсем нет времени, я хотел перевести на русский и расширить инструкцию для докера - как все запускать :) Но прежде чем мерджить, я хочу закрыть #272 и сюда вмерджить, т.к. там добавляется один пакет (нужно будет поменять requirements*.txt тут) и он у меня локально конфликтует с тем, что сейчас в poetry lock :( В #296 написал, что нужно местами поменять poetry install должен идти выше, чем conda install и нужно ставить ночную сборку psi, она не конфликтует

alexey-pronkin avatar Nov 28 '21 16:11 alexey-pronkin

можем это на следующий запуск сделать, сейчас не горит

vvssttkk avatar Nov 28 '21 18:11 vvssttkk

вот тут вообще забыл к чему в итоге пришли. возможно стоит отдельно обговорить и разбить на малые задачи. от win вообще пока отказаться

vvssttkk avatar Feb 20 '22 16:02 vvssttkk

предлагаю закрыть этот pr: от win отказались, docker тянуть сейчас не охота. если потребуется, то возобновим ну или наработки возьмем

vvssttkk avatar Jun 09 '22 20:06 vvssttkk

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

alexey-pronkin avatar Jun 12 '22 03:06 alexey-pronkin

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

это в любом случае останется и никуда не пропадет. с win и дальше будут проблемы, которые забирают время на другие более важные задачи: перевод, описание лекций, тесты

vvssttkk avatar Jun 12 '22 07:06 vvssttkk

Просто не хочу чтобы фичебранчи закрылись. Сам файл докера сделаю в другой ветке docker2, тут документацию к нему опишу в виде урока и протестирую винду. Не закрывай пока, сделаю ребейз и смерджу конфликты

alexey-pronkin avatar Jun 12 '22 17:06 alexey-pronkin

Просто не хочу чтобы фичебранчи закрылись. Сам файл докера сделаю в другой ветке docker2, тут документацию к нему опишу в виде урока и протестирую винду. Не закрывай пока, сделаю ребейз и смерджу конфликты

win точно убираем сейчас, много гемора! с docker если хочешь играйся, но смысла не вижу сейчас, тк всё на poetry заводится

vvssttkk avatar Jun 12 '22 17:06 vvssttkk

На Винде тоже докер есть, так что это решает проблему в некотором смысле тоже. Да, хочу поиграться, допилить его.

alexey-pronkin avatar Jun 13 '22 01:06 alexey-pronkin

На Винде тоже докер есть, так что это решает проблему в некотором смысле тоже. Да, хочу поиграться, допилить его.

есть, но с ним на ней не так всё просто, ну то есть часть команд не будут отрабатывать

vvssttkk avatar Jun 13 '22 07:06 vvssttkk

когда создашь новый pr, удали этот пж

vvssttkk avatar Jun 13 '22 07:06 vvssttkk

Я в нем замерджу изменения, не беспокойся. Только у меня пока интернет такой себе и времени не так много. На докер без инструкции (лекции, она будет тут), только с комментариями, новый pr сделаю.

alexey-pronkin avatar Jun 13 '22 16:06 alexey-pronkin

Я в нем замерджу изменения, не беспокойся. Только у меня пока интернет такой себе и времени не так много. На докер без инструкции (лекции, она будет тут), только с комментариями, новый pr сделаю.

только не в master. ты там создал новую ветку, можешь туда, ну или тут продолжай работать, что логично

vvssttkk avatar Jun 13 '22 16:06 vvssttkk

Не, не. Я не настолько глуп. Из мастера сюда. Короче не беспокойся, резких движений не делаю;)

alexey-pronkin avatar Jun 13 '22 18:06 alexey-pronkin

что делаем с этим pr?

vvssttkk avatar Jun 26 '22 14:06 vvssttkk

Доделываю второй pr, там немного осталось. Займусь этим, тут удалю лишнее, оставлю только инструкцию, перепишу в виде лекции

alexey-pronkin avatar Jun 26 '22 20:06 alexey-pronkin

а запусить workflow, который не в мастере нельзя?

alexey-pronkin avatar Jul 10 '22 09:07 alexey-pronkin

а запусить workflow, который не в мастере нельзя?

новый нет. но можно скажем мало использованный существующий изменить на время, тот же test-psi4-setup

vvssttkk avatar Jul 10 '22 10:07 vvssttkk

Спасибо за рефакторинг, годно. Я просто не хотел плодить пакеты, у меня на ноутбуке сейчас просто нехватает места для курса :)

alexey-pronkin avatar Jul 17 '22 18:07 alexey-pronkin

Спасибо за рефакторинг, годно. Я просто не хотел плодить пакеты, у меня на ноутбуке сейчас просто нехватает места для курса :)

можешь использовать gh codespaces, он для открытых реп бесплатный и должно хватать image

vvssttkk avatar Jul 17 '22 18:07 vvssttkk

Не увидел никаких фри вариантов image Кажется, что потом счет вышлют, я по старинке удалю что-то :)

alexey-pronkin avatar Jul 18 '22 04:07 alexey-pronkin

Я опять не донес суть, что requirements - это только для слушателей. Им не зачем конвертировать лекции, мы будем это делать и просто выкладывать в релизы или в ветку с артефактами. Анаконду хочу поддерживать как альтернативу, там очень много около "продакшен" в квантовом мире пакетов, которые поставить иначе тяжко. (Тем более, я на нее много времени убил и разобрался как там что работает, кроме кэширования :) ) Предлагаю тогда сделать два requirements как и было до того, как я отказался от этой идеи. Так же для разработки/CI, где есть всё и минимальный набор для слушателей. Норм?

alexey-pronkin avatar Jul 18 '22 04:07 alexey-pronkin

Я опять не донес суть, что requirements - это только для слушателей. Им не зачем конвертировать лекции, мы будем это делать и просто выкладывать в релизы или в ветку с артефактами

вот это впервые слышу, нужно обдумать как лучше тогда это делать: чтобы студии знали что у нас есть такая возможность

Анаконду хочу поддерживать как альтернативу, там очень много около "продакшен" в квантовом мире пакетов, которые поставить иначе тяжко.

у нас сейчас проблема только с psi4, остально на простое окружение норм устанавливается

Предлагаю тогда сделать два requirements как и было до того, как я отказался от этой идеи

кратко напиши что для чего будет использоваться? у нас как бы ещё и poetry сверху, получается 3 файла, очень много для такого проекта

Так же для разработки/CI, где есть всё и минимальный набор для слушателей

для сего сейчас poetry используется ведь или ты хочешь изменить?

vvssttkk avatar Jul 18 '22 08:07 vvssttkk