From: Evgeny Sinelnikov <sin@altlinux.org> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] Новая схема ведения исходников ядра Date: Mon, 6 Dec 2021 03:22:24 +0400 Message-ID: <CAK42-Go-kpWm9jJtLwgUZ3Q5he76Sg=MmObey4EM+NhP7G0MyA@mail.gmail.com> (raw) In-Reply-To: <20211204024458.1f4979b9335b157d3ca8b5d7@altlinux.org> сб, 4 дек. 2021 г. в 03:45, Andrey Savchenko <bircoph@altlinux.org>: > > On Fri, 3 Dec 2021 23:41:56 +0400 Evgeny Sinelnikov wrote: > > Суть: для того, чтобы вести не только поддержку сборки, но разработку > > ядра, нацеленную на продвижение наших патчей в апстрим, предлагается > > рассмотреть новую схему ведения исходников. > > > > - все наши патчи складываются "ребейзом" или "черипиком" поверх > > последнего релиза, который заявлен в версии пакета > > kernel-image-FLAVOUR: > > + https://github.com/altlinux/linux-arm/commits/altlinux-5.15.y > > cherry-pick не осилит merge коммиты (максимум, что можно от него > получить, это всю ветку одним коммитом, с потерей истории). Ну > а rebase — на любителя и не всегда годится, например, когда часть > патчей нужно выбросить по тем или иным причинам. Вопрос в том, что у нас нет сейчас возможности вести разработку ядра на тех же исходниках, что и для сборки. Разработчикам же, так или иначе, приходится проводить rebase или cherry-pick. Это не вопрос предпочтений - это вопрос возможности вести разработку со сторонними разработчиками, которым нужны наши исходники без множества merge-коммитов. Взаимодействуя с ними, мы сами просим от них того же, чтобы не искать по их исходникам нужные нам патчи, чтобы забрать себе. > > > - схема сборки остаётся прежней за следующими дополнениями: > > + ветка sisyphus содержит только gear-rules и spec (ну, пока и не > > надо больше - вряд ли потребуется, хотя я бы предложил ещё README по > > сборке); > > + исходники включают в себя только продуктивные патчи и ветка с ними > > перед сборкой "мёрджится" с git merge -s ours; > > + для удобной работы над исходниками можно воспользоваться командой > > git worktree, позволяющей получить отдельную ветку в соседнем каталоге > > на одном и том же git-репозитории; > > Так себе удобство, честно скажу; я пользуюсь этим когда > приходится, но именно как вынужденной мерой. Хотя бы потому, что > в git крайне не рекомендуется конкурентно коммитить из двух разных > worktree. Опять. Это не вопрос удобства. Кому-то так даже удобнее, может быть. Но тут важнее другое возможность увидеть исходники с теми патчами, которые у нас есть, а не искать их кусками размазанными по истории после очередного merge-коммита. > > + перед сборкой необходимо обновить commitid в .gear/tags/list > > https://github.com/altlinux/linux-arm/commits/sisyphus-un-def > > Вот эта головная боль тоже нежелательна. Потому что при отладке > где-нибудь на другой железке или в инсталляторе пакет приходится > часто пересобирать. Да, скриптуется, но сборка и так сложна из-за > specsubst и разных kflavour. А разработка, в ином случае, вообще невозможна. Как взаимодействовать с апстримом? Как взаимодействовать с теми, кто берёт апстримные исходники? Ответ: "Пока никак". Вести две параллельных истории. Не хотелось бы. > > В целом, этот подход ничего не ломает, но очень много позволяет: > > - чётко отслеживать пачти; > > - всегда знать чем наше ядро отличается от апстримного не на уровне > > одного большого "дифа", доступного только git в консоли, но и на > > уровне полного списка патчей, доступного также через web-интерфейс в > > соответствующей ветке; > > А вы точно работали с нашим ядром? Я регулярно переношу все наши > патчи на e2k ядро (кроме патчей для других архитектур). Для этого > используются ветка нужной версии из > git.alt:/people/kernelbot/packages/kernel-image.git Конечно, работали. Давайте посмотрим на ветку ядра, которую удалось получить: https://github.com/altlinux/linux-arm/commits/altlinux-5.15.y Где иначе и как ещё можно найти и увидеть полный список наших патчей по-отдельности по сравнению с апстримом? > В общем-то, там все наши патчи легко видно по --first-parent; Давайте посмотрим как. Вот есть коллеги из компании разработчика железа. Они хотя собрать ядро, как у нас, но они планируют апстримить свои патчи. Куда из прикладывать с нашим ядром? В ветку, где куча наших релизных коммитов? Зачем им это? > cherry-pick работает, но не с merge коммитами, которых там хватает > из всяких небольших тематических веток вроде kernelbot/fix-strlcpy. > Вот с ними засада, приходится повторять merge коммиты, git rerere > облегчает работу, но его кеш локален нельзя запушить в то же > дерево, чтоб поделиться с другими или просто перетащить на другую > машину. Это ещё одна потенциальная проблема. Но и без этого хватает проблем. В итоге, текущая схема не удовлетворяет возможности вести совместную разработку с теми, кто берёт апстримное ядро и добавляет свои патчи. Тут либо мы поддерживаем переход к нашему ядру. Например, так как предложено. Либо у нас два набора исходников - удобная для сборки и удобная для разработки. Я предлагаю вести одну - удобную для разработки. Для сборки она не становится неудобнее, скорее меняет предпочтения. > > - всегда иметь подготовленный набор патчей для текущего ядра. > > > > Я бы ещё предложил делать два патча: > > - linux-x.y.0-x.y.z.patch > > - linux- x.y.z-alt.patch > > тогда патч в нашем SRCRPM-пакете ядра будет не столь бесполезен, чем сейчас. > > Я бы вообще от них отказался (в общем, у меня так и сделано). > В гите же вся работа, вот из него и нужно собирать. Просто git > тяжёлый и хорошо бы сборочнице shallow clone делать, хотя бы по > запросу. Но это уже хотелка вне ядра. Ну, может быть. -- Sin (Sinelnikov Evgeny)
next prev parent reply other threads:[~2021-12-05 23:22 UTC|newest] Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-12-03 19:41 Evgeny Sinelnikov 2021-12-03 23:44 ` Andrey Savchenko 2021-12-05 23:22 ` Evgeny Sinelnikov [this message] 2021-12-06 13:36 ` Dmitry V. Levin 2021-12-06 18:28 ` Andrey Savchenko 2021-12-06 23:07 ` Evgeny Sinelnikov 2021-12-07 7:38 ` Anton V. Boyarshinov 2021-12-06 8:29 ` Alexey Sheplyakov 2021-12-06 17:32 ` Andrey Savchenko 2021-12-06 20:08 ` Vladimir D. Seleznev 2021-12-06 7:42 ` Anton V. Boyarshinov 2021-12-06 8:09 ` Alexey Sheplyakov 2021-12-06 10:29 ` Anton V. Boyarshinov 2021-12-06 10:26 ` Alexey Sheplyakov 2021-12-06 10:31 ` Anton V. Boyarshinov 2021-12-06 10:47 ` Evgeny Sinelnikov 2021-12-06 11:03 ` Anton V. Boyarshinov 2021-12-06 10:55 ` Anton V. Boyarshinov 2021-12-06 13:25 ` Dmitry V. Levin 2021-12-06 13:35 ` Evgeny Sinelnikov 2021-12-06 13:41 ` Anton V. Boyarshinov 2021-12-06 13:48 ` Evgeny Sinelnikov 2021-12-06 13:51 ` Anton V. Boyarshinov 2021-12-06 13:57 ` Dmitry V. Levin 2021-12-06 14:04 ` Evgeny Sinelnikov 2021-12-06 14:08 ` Dmitry V. Levin 2021-12-06 14:40 ` Anton V. Boyarshinov 2021-12-06 14:54 ` Anton V. Boyarshinov 2021-12-06 15:02 ` Dmitry V. Levin 2021-12-06 15:26 ` Anton V. Boyarshinov 2021-12-06 15:53 ` Dmitry V. Levin 2021-12-06 22:58 ` Evgeny Sinelnikov 2021-12-07 7:47 ` Anton V. Boyarshinov 2021-12-07 16:54 ` Andrey Savchenko 2021-12-06 13:47 ` Dmitry V. Levin 2021-12-06 13:54 ` Evgeny Sinelnikov 2021-12-06 10:53 ` Anton V. Boyarshinov 2021-12-06 11:27 ` Alexey Sheplyakov 2021-12-06 11:41 ` Anton V. Boyarshinov 2021-12-06 12:12 ` Anton Farygin 2021-12-06 12:30 ` Alexey Sheplyakov 2021-12-06 14:53 ` Anton Farygin 2021-12-23 3:28 ` Mikhail Novosyolov 2021-12-23 6:07 ` Andrey Savchenko 2022-01-03 5:07 ` Evgeny Sinelnikov 2022-01-03 5:33 ` Evgeny Sinelnikov 2022-01-10 8:53 ` Anton V. Boyarshinov 2022-01-11 8:01 ` Anton V. Boyarshinov 2022-01-11 8:12 ` Anton V. Boyarshinov 2022-01-11 8:55 ` Paul Wolneykien 2022-01-11 9:10 ` Sergey V Turchin 2022-01-11 9:33 ` Anton Farygin 2022-01-11 9:37 ` Alexey V. Vissarionov 2022-01-12 0:26 ` [devel] PoC: gear-submodule-update Ex: " Vitaly Chikunov 2022-01-12 0:39 ` Dmitry V. Levin 2022-01-12 12:20 ` Dmitry V. Levin 2022-01-12 12:40 ` Alexey Gladkov 2022-01-12 12:53 ` Alexey Gladkov 2022-01-12 13:10 ` Alexey Gladkov 2022-01-12 13:26 ` Dmitry V. Levin 2022-01-12 16:59 ` [devel] gear-store-submodules Dmitry V. Levin 2022-01-12 19:14 ` Alexey Gladkov 2022-01-12 20:06 ` Dmitry V. Levin 2022-01-12 21:14 ` Alexey Gladkov 2022-01-12 1:04 ` [devel] PoC: gear-submodule-update Ex: Новая схема ведения исходников ядра Vladislav Zavjalov 2022-01-12 6:01 ` Anton Farygin 2022-01-11 10:30 ` [devel] " Vladimir D. Seleznev 2022-01-11 12:18 ` Anton V. Boyarshinov 2022-01-19 9:53 ` Vladimir D. Seleznev 2022-01-19 9:56 ` Anton V. Boyarshinov 2022-01-19 10:15 ` Anton V. Boyarshinov 2022-01-19 10:24 ` Alexey V. Vissarionov 2022-01-19 10:58 ` Anton V. Boyarshinov 2022-01-19 10:31 ` [devel] Автодекларация патчей в спеках (Was: Новая схема ведения исходников ядра) Vladimir D. Seleznev 2022-01-19 10:32 ` Anton Farygin 2022-01-19 10:48 ` Vladimir D. Seleznev 2022-01-19 11:10 ` Anton Farygin 2022-01-19 10:57 ` Anton V. Boyarshinov 2022-01-19 11:09 ` Alexey V. Vissarionov 2022-01-19 10:52 ` [devel] Новая схема ведения исходников ядра Anton V. Boyarshinov 2022-01-03 6:17 ` Evgeny Sinelnikov 2022-01-03 6:25 ` Aleksey Novodvorsky 2021-12-06 11:54 ` Alexey Sheplyakov 2021-12-06 12:35 ` Dmitry V. Levin 2021-12-06 13:29 ` Evgeny Sinelnikov 2021-12-06 13:48 ` Anton V. Boyarshinov 2021-12-08 8:07 ` [devel] Отделяя котлеты от мух (было Re: Новая схема ведения исходников ядра) Alexey Sheplyakov 2021-12-08 8:54 ` Anton V. Boyarshinov 2021-12-08 10:32 ` Alexey Sheplyakov 2021-12-06 14:31 ` [devel] Новая схема ведения исходников ядра Dmitry V. Levin 2021-12-06 14:55 ` Anton Farygin 2021-12-23 3:14 ` Mikhail Novosyolov
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='CAK42-Go-kpWm9jJtLwgUZ3Q5he76Sg=MmObey4EM+NhP7G0MyA@mail.gmail.com' \ --to=sin@altlinux.org \ --cc=devel@lists.altlinux.org \ /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