Обзор
У меня есть проект, который представляет собой настройку существующего продукта FOSS. Дело доходит до того, что мы поддерживаем долгосрочный форк, а не применяем новые плагины и тому подобное. Я хотел бы получить некоторую информацию о том, каким может быть самый разумный рабочий процесс для поддержки этого проекта.
Критерии
- Мы должны иметь возможность легко отправлять пулл-реквесты/патчи вверх по течению.
- Проект должен отслеживать выпуски с тегами и может быть обновлен до более новых выпусков в рамках нашего собственного рабочего процесса выпуска.
- Должен иметь свои собственные релизы с тегами
- Должен иметь свою собственную структуру ветвления для процесса разработки, подобного git-flow.
Опция 1
Просто сделайте форк проекта на github. Супер грязно поддерживать и приводить людей в порядок. не получается 3,4.
Вариант 2
Создайте новый репозиторий, попросите мейнтейнера проекта по мере необходимости добавлять помеченные выпуски исходной кодовой базы. например, что-то вроде git fetch upstream; git merge upstream/sometag tagintegrationbranch
Не знаю, как в этой модели легко отправлять исправления вверх по течению. Типа не получается 1.
Вариант 3
Разветвите исходный проект, используйте его как исходный проект, как в Варианте 2. Используется в качестве помощника в системе PR. Вероятно, придется выполнять выборку вишни или какое-либо подобное микроуправление, чтобы отправить код для резервного копирования этого рабочего процесса, в зависимости от того, насколько хорошо управляются ветки функций/ошибок, но они должны быть достаточно чистыми. Кажется, удовлетворяет большинству критериев.
Вариант ?
Что-то я не учел?