Текущая модель разработки достаточно близка к тому, что исходно было и есть в LMDB:
- код почти амальгамированный (файлов несколько, но >90% в одном);
- заказная разработка (платные фичи);
- очень высокий порог входа и ещё более ребусный код.В комментариях к слайду причины пояснены буквально так (copy&paste):
Код libmdbx навсегда останется открытым и с качественной бесплатной поддержкой, но будет распространяется в амальгамированной форме без лишних зависимостей. Исходный код тестов, как и внутренняя документация будет доступна только команде непосредственно занимающейся разработкой.
При достижении проекта значимых точек в разработке, в том числе с учётом стабилизации и надёжности, для амальгамированного кода в публичных репозиториях будут формироваться подписанные коммиты, включая зеркало на Github.
Всё что связано с проектированием и разработкой, включая код тестового фреймворка и внутреннюю техническую документацию, будет перелицензированно и доступно только непосредственным участникам разработки.
Такое решение принято по совокупности причин, вот главные из них:
1. Желание упростить использование библиотеки и снизить трудоёмкость её поддержки при развитии тестов.
Для расширения и развития тестов требуются задействовать дополнительный сторонний кода и компоненты. Что увеличит объем кода и количество зависимостей проекта, существенно усложниться процесс сборки. Всё это затруднит использование библиотеки обычными разработчиками, сильно затруднит её использование в производных и в использующих привязки опосредованных проектах. Одновременно это увеличит затраты на документирование и сопровождение проекта, породит неизбежные ошибки и затруднения пользователей, что потребует больше времени на помощь им.
2. Устранение опасных ложных ожиданий из-за ошибочного впечатления о простоте разработки и тестировании.
Фреймворк тестирования не предназначен для использования вне разработки. Его использование требует не только понимания деталей работы и внутреннего устройства libmdbx, но также огромных затрат процессорного времени при наличии объёма ОЗУ порядка 1-2 терабайта.
Поэтому подавляющее большинство сторонних разработчиков и пользователей на самом деле не могут достигать продуктивных целей от использования тестового фреймворка. Однако, при этом сторонние разработчики нередко вносят собственные изменения в код libmdbx и считают их верными после краткосрочных поверхностных тестов, которых принципиально недостаточно для выявление потенциальных проблем
Таким образом, доступность тестов провоцирует неквалифицированные «доработки на коленках» и парадоксальным образом ведёт к совокупному увеличению проблем, разочарованию пользователей, увеличению трудоёмкости поддержки и ухудшению имиджа libmdbx.
3. Противодействие угону проекта по примеру ситуации с Akula в конце 2022 года.
Решено не озвучивать каких-либо актуальных названий и имён, не пояснять подробности, максимально воздержаться от дальнейших комментариев и дискуссий. Так как всё это может оказаться необоснованными подозрениями и безосновательным упрёками, что приведёт к неконструктивному ухудшению взаимоотношений и другим негативным эффектам.
Необходимо и достаточно просто сказать что появились опасения и решение принято.
Ещё раз хочется повторить, код libmdbx навсегда останется открытым и с качественной бесплатной поддержкой, но будет распространяется только в амальгамированной форме без лишних зависимостей.