Какие маппинги лучше использовать для мода-либы

7,099
324
1,510
Недавно меня пытались убедить использовать маппинги stable_39 для ElegantNetworking. Я решил не верить утверждениям отдельных людей и получить более-менее объективную картину реальной ситуации. Для этого я собрал статистику по использованию маппингов опенсорсными модами с курса. Для этого починил и доработал свой дата-майнер.
Было проанализировано ~3900 модов.
Результаты статистики:
pie.png

Полные данные статистики:
snapshot_20171003 > 1129
stable_39 > 594
snapshot_20170624 > 186
snapshot_20180814 > 49
snapshot_20161220 > 19
snapshot_20171125 > 18
snapshot_20171212 > 17
snapshot_20180101 > 16
snapshot_20170625 > 14
snapshot_20170617 > 13
snapshot_20170629 > 10
snapshot_20170626 > 9
snapshot_20180504 > 9
snapshot_20180810 > 9
stable_nodoc_39 > 9
snapshot_20170919 > 8
snapshot_20171120 > 8
snapshot_20170801 > 7
snapshot_20171217 > 7
snapshot_20180114 > 7
snapshot_20180421 > 7
snapshot_20170929 > 6
snapshot_20171201 > 6
snapshot_20180407 > 6
snapshot_20180704 > 6
snapshot_20180720 > 6
snapshot_20170815 > 5
snapshot_20170903 > 5
snapshot_20180708 > 5
snapshot_20180714 > 5
snapshot_20180801 > 5
snapshot_20161111 > 4
snapshot_20170628 > 4
snapshot_20170925 > 4
snapshot_20170926 > 4
snapshot_20180119 > 4
snapshot_20180331 > 4
snapshot_20180719 > 4
stable_32 > 4
snapshot_20170612 > 3
snapshot_20170627 > 3
snapshot_20170814 > 3
snapshot_20171004 > 3
snapshot_20171130 > 3
snapshot_20171229 > 3
snapshot_20171231 > 3
snapshot_20180301 > 3
snapshot_20180319 > 3
snapshot_20180701 > 3
snapshot_20180808 > 3
snapshot_20180813 > 3
snapshot_20170611 > 2
snapshot_20170630 > 2
snapshot_20170702 > 2
snapshot_20170706 > 2
snapshot_20170712 > 2
snapshot_20170726 > 2
snapshot_20170731 > 2
snapshot_20170807 > 2
snapshot_20170810 > 2
snapshot_20170816 > 2
snapshot_20170822 > 2
snapshot_20171001 > 2
snapshot_20171002 > 2
snapshot_20171011 > 2
snapshot_20171017 > 2
snapshot_20171022 > 2
snapshot_20171031 > 2
snapshot_20171210 > 2
snapshot_20180108 > 2
snapshot_20180127 > 2
snapshot_20180130 > 2
snapshot_20180131 > 2
snapshot_20180218 > 2
snapshot_20180415 > 2
snapshot_20180428 > 2
snapshot_20180626 > 2
snapshot_20180724 > 2
snapshot_20180804 > 2
snapshot_20160312 > 1
snapshot_20160518 > 1
snapshot_20170403 > 1
snapshot_20170415 > 1
snapshot_20170425 > 1
snapshot_20170613 > 1
snapshot_20170620 > 1
snapshot_20170621 > 1
snapshot_20170623 > 1
snapshot_20170707 > 1
snapshot_20170708 > 1
snapshot_20170715 > 1
snapshot_20170719 > 1
snapshot_20170722 > 1
snapshot_20170724 > 1
snapshot_20170802 > 1
snapshot_20170805 > 1
snapshot_20170808 > 1
snapshot_20170812 > 1
snapshot_20170817 > 1
snapshot_20170818 > 1
snapshot_20170821 > 1
snapshot_20170828 > 1
snapshot_20170910 > 1
snapshot_20170914 > 1
snapshot_20170915 > 1
snapshot_20170916 > 1
snapshot_20171006 > 1
snapshot_20171010 > 1
snapshot_20171015 > 1
snapshot_20171025 > 1
snapshot_20171027 > 1
snapshot_20171030 > 1
snapshot_20171101 > 1
snapshot_20171104 > 1
snapshot_20171108 > 1
snapshot_20171112 > 1
snapshot_20171115 > 1
snapshot_20171118 > 1
snapshot_20171206 > 1
snapshot_20171213 > 1
snapshot_20171214 > 1
snapshot_20171215 > 1
snapshot_20171220 > 1
snapshot_20171230 > 1
snapshot_20180106 > 1
snapshot_20180107 > 1
snapshot_20180115 > 1
snapshot_20180123 > 1
snapshot_20180203 > 1
snapshot_20180207 > 1
snapshot_20180210 > 1
snapshot_20180211 > 1
snapshot_20180213 > 1
snapshot_20180215 > 1
snapshot_20180216 > 1
snapshot_20180302 > 1
snapshot_20180306 > 1
snapshot_20180309 > 1
snapshot_20180310 > 1
snapshot_20180318 > 1
snapshot_20180325 > 1
snapshot_20180327 > 1
snapshot_20180330 > 1
snapshot_20180401 > 1
snapshot_20180410 > 1
snapshot_20180416 > 1
snapshot_20180420 > 1
snapshot_20180423 > 1
snapshot_20180425 > 1
snapshot_20180501 > 1
snapshot_20180510 > 1
snapshot_20180516 > 1
snapshot_20180517 > 1
snapshot_20180520 > 1
snapshot_20180521 > 1
snapshot_20180524 > 1
snapshot_20180531 > 1
snapshot_20180602 > 1
snapshot_20180609 > 1
snapshot_20180615 > 1
snapshot_20180616 > 1
snapshot_20180619 > 1
snapshot_20180620 > 1
snapshot_20180702 > 1
snapshot_20180710 > 1
snapshot_20180712 > 1
snapshot_20180730 > 1
snapshot_20180731 > 1
snapshot_20180809 > 1
snapshot_nodoc_20171003 > 1
snapshot_nodoc_20171202 > 1
snapshot_nodoc_20180108 > 1
snapshot_nodoc_20180529 > 1
snapshot_nodoc_20180713 > 1

Глобально среди опенсорсных модов чаще используется маппинги snapshot_20171003, их использует почти половина модов. Примерно четверть занимает stable_39.
Также стоит отметить, что среди первых 600 модов(с первых страниц курса) лидирует stable_39(датамайнер выводит статистику в середине процесса, каждые 50 модов).

Если считать, что на первых страницах моды прошаренных разработчиков, то мнение Зарака недалео от истины:
Те кто шарят, рано или поздно переходят на stable_39
Однако вопрос "Какие маппинги лучше использовать для паблик-либы?" все еще не имеет однозначный ответ.
Лично я выбираю такое решение: для использования в зависимостях публиковать обфусцированную версию библиотеки, ибо на 1.14+ решает fg.deobf, на 1.10- решает CodeChickenCore, на 1.11-1.12 решает сам Forge(или опять же ForgeGradle, хз, главное, что подключение обфусцированного мода в проект все работает).
Однако это лишает возможности использовать jipack. Если кто знает, как сконфигурировать jitpack, чтобы он выполнял сборку артефакта с майновской обфускацией, поделитесь рецептом, плиз)

github.com/hohserg1/CurseModsCodeFinder/ProjectsLinksDataminer.py Теперь эта штука умеет обходить CloudFlare)
github.com/hohserg1/CurseModsCodeFinder/MappingsDataminer.py
Github API имеет квоту в 5000 запросов/час для обычного юзера, поэтому пришлось делать механизм ожидания в случае траты квоты. Работает он не идеально, поэтому были пропущены несколько десятков модов где-то в середине процесса. Надеюсь, это не сильно повлияло на качество статистики.
Все это дерьмо работало около 10 часов)
 
Последнее редактирование:
7,099
324
1,510
И что, дублировать внесение изменений в обе ветки? А ведь картина не черно-белая, еще есть те, кто юзают другие маппинги.
 
7,099
324
1,510
Хз. Щас она использует CCL в качестве зависимости, поэтому код самой либы не зависит от маппингов. Но после того, как устаканится, наверное сделать имплементацию без CCL и тогда будут проблемы

Вообще, тема про проблему выбора маппингов в целом, а не для моего мода в частности
 
Последнее редактирование:
Сверху