mam_mol icon indicating copy to clipboard operation
mam_mol copied to clipboard

Лапша из репозиториев

Open krulod opened this issue 1 year ago • 9 comments

На данный момент под крышкой hyoo-ru 65 репозиториев. Каждое приложение имеет свою репу, где название это её поддомен, что неконсистентно с шаблоном именования mam_{some}, который применяется в mam_lib, mam_mol, mam_hyoo.

Можно ли средствами mam сделать репозиторий со всеми приложениями $hyoo, и "подмешивать" в этот неймспейс модули из других репозиториев, например $hyoo_crowd? И стоит ли?

Также, часть приложений в mol/app являются редиректами на приложения под hyoo.ru. Зачем они нужны?

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

Мотивация такая: Несколько недель назад я пытался предложить локализации в приложения, но, видимо, удалил свои форки раньше времени и все пулреквесты схлопнулись. А иметь и поддерживать тьму форков не хочется.

Также, на мой взгляд, неконсистентные имена репозиториев и сплетение приложений, ухудшают исследуемость экосистемы.

krulod avatar Jul 10 '22 12:07 krulod

На данный момент под крышкой hyoo-ru 65 репозиториев. Каждое приложение имеет свою репу, где название это её поддомен, что неконсистентно с шаблоном именования mam_{some}, который применяется в mam_lib, mam_mol, mam_hyoo.

Я думаю лучше вообще отказаться от префикса mam_ и оставить lib, mol, hyoo.

Можно ли средствами mam сделать репозиторий со всеми приложениями $hyoo, и "подмешивать" в этот неймспейс модули из других репозиториев, например $hyoo_crowd? И стоит ли?

Сделать-то так не сложно и примерно так было с $mol_app, но десятки не связанных друг с другом приложений в одном репозитории - это плохо масштабируемое решение. Сейчас проект $hyoo демонстрирует возможности MAM по масштабированию разработки на множество команд, каждая из которых работает со своим репозиторием.

Также, часть приложений в mol/app являются редиректами на приложения под hyoo.ru. Зачем они нужны?

Собственно, это остатки от переезда ряда приложений из зоны "демок" в зону "самостоятельных продуктов". Редиректы оставлены, чтобы внешние ссылки на эти приложения выдавали не 404, а актуальный адрес. Возможно какие-то из них или даже все уже можно безболезненно удалить - это надо с каждым разбираться отдельно.

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

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

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

Пулреквесты можно переоткрыть же. Вообще, предлагать патчи можно и через интерфейс гитхаба не создавая у себя форков.

Также, на мой взгляд, неконсистентные имена репозиториев и сплетение приложений, ухудшают исследуемость экосистемы.

Речь о том, чтобы переименовать имена вида sketch.hyoo.ru в hyoo_sketch? Да, это было бы логично. Хотя сейчас можно по имени домена понять где искать его код. С другой стороны, одно приложение может быть доступно и на разных доменах.

Тут есть ещё такой нюанс: в рамках организации hyoo-ru есть же не только MAM репозитории. И если всё именовать по mam-неймспейсам, то для них получается не останется места, ведь если их оставить, о это будет вводить в заблуждение.

nin-jin avatar Jul 10 '22 17:07 nin-jin

Я думаю лучше вообще отказаться от префикса mam_ и оставить lib, mol, hyoo.

Например https://github.com/hyoo-ru/perf.js.hyoo.ru - он должен называться hyoo_js_perf но из-за того что автодеплой есть на гитхаб страницы надо называть по доменному имени. Причем не обязательно доменное имя будет соответствовать тому как внутри приложение называется только читая задом наперед (В этом примере оно соответствует - $hyoo_js_perf)

В mam_ префиксе есть плюс, я однозначно знаю что речь идет о компоненте mam экосистемы. Это наоборот упрощает просмотр реп и отфильтровывать от левых не под mam сделаные репы (если такие были б). Я б хотел иметь какой-то префикс, если не мам то что-то другое.

osv avatar Jul 10 '22 17:07 osv

Не, на гитхаб пейджес ссылки получаются сейчас вида https://hyoo-ru.github.io/perf.js.hyoo.ru, так что ограничений на имена особо нет.

Ну вот hyoo_ и mol_ могут быть такими префиксами.

nin-jin avatar Jul 10 '22 20:07 nin-jin

Не пользовался гитхабпейдж, не знал.

Тогда надо ответить на вопрос, надо давать информацию где лежать проект будет и что он требует mam (иначе все это в ридми надо описывать)

Думаю название ревы по типу mam_hyoo_js_perf лучше всего подходит. Почему:

  • Фильтрация реп, если все они будут содержат mam_ то легко отфильтровать именно проекты которые сделаны с mam подходом
  • Сортировка реп! Фактически будет показано древо проектов
  • Кто "в теме", тот поймет куда клонить надо, даже не читая ридми (если он самодостаточен и все зависимости уже есть в meta.tree вне этого неймспейса)

note: mam когда-то может стать отдельным проектом (например переместив mol/build/ в mam/), тогда будет mam_mam, не очень красиво. Но я не знаю как по другому указать в имени что проект сделан "под" mam.

С другой стороны имя репы https://github.com/hyoo-ru/case.hyoo.ru говорит сразу что что есть сайт, я его копирую и могу открыть. Ибо ридми @nin-jin добавлять лениться :) Если его перейменовать в mam_hyoo_case то надо создать ридми файл и вставить туда ссылку на приложение. Что считаю также ок, ридми вставлять надо всегда, иначе выглядит не серьезно и сиротой репа, тем более зачастую в приложении нету описания о чем приложение вообще, юзер, должен разгадать квест по сути, но есть зачастую иконка на исходники-гитхаб, тут бы и ридми пригодился.

В общем я за единообразие, mam_ или подобный префикс для каждого проекта

osv avatar Jul 11 '22 09:07 osv

В описании каждого репозитория так-то есть ссылка на сайт.

Ещё есть такой момент: Если именовать по неймспейсу, то разные инструменты могут использовать это соглашение для автоматизации рутины. Например, можно упростить meta.tree избавив от необходимости прописывать в нём каждый репозиторий, чтобы он мог автоматически выкачиваться.

Точкой входа для пользователя всё же является не репозиторий, а сайт, а на сайте уже есть ссылки на репы.

nin-jin avatar Jul 11 '22 14:07 nin-jin

В описании каждого репозитория так-то есть ссылка на сайт.

Возможно, но я открыл первый попавшийся, и не нашел https://github.com/hyoo-ru/case.hyoo.ru

Ещё есть такой момент: Если именовать по неймспейсу, то разные инструменты могут использовать это соглашение для автоматизации рутины. Например, можно упростить meta.tree избавив от необходимости прописывать в нём каждый репозиторий, чтобы он мог автоматически выкачиваться.

Интересная идея, но я б лучше тулзу делал для обновления meta tree нежели запросы слать к гитхабу, что б не было вендор-лок на гитхаб. Гитхаб сегодня есть, а завтра заблокируют или умрет, и потом пиши тулзу под другой гит-хостера. А meta.tree прост, юзер знает какие еще есть репки в экосистеме пакета без использования тулзов а открыв файл редактором.

osv avatar Jul 11 '22 16:07 osv

image

Я говорю не о вендор локе, а о такого рода записях:

pack_prefix git \https://github.com/hyoo-ru/hyoo_

nin-jin avatar Jul 11 '22 18:07 nin-jin

About

Это и есть вендорлок, когда надо будет уехать с гитхаба, эта инфа потеряеться. Ссылку не жалко, ибо хостится на гитхабе, пропадет гитхаб, ссылка будет не актулальна, но описание пропадет. Лучше что б репа была самодостаточной.

pack_prefix git \https://github.com/hyoo-ru/hyoo_

В таком случае нельзя сказать что же доступно тебе, надо открывать ссылку, убирать перфикс, долго нудно. Изучению через исходники будет затруднительно, надо лазить на гитхаб. Я понимаю что плюс в том что не надо будет комитить регистрацию нового компонента/приложение.

osv avatar Jul 12 '22 16:07 osv

Учитывая, что хостится у нас всё на github pages, то пропажа гитхаба сделает и ссылку нерабочей.

nin-jin avatar Jul 13 '22 09:07 nin-jin