1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-rclone

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
RELEASE.md 8.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 03.12.2024 15:32 d523bee

Выпуск

Этот файл описывает, как создавать различные виды выпусков.

Дополнительное ПО, необходимое для выпуска

  • gh — интерфейс командной строки GitHub (GitHub CLI) для загрузки пакетов;
  • pandoc — для создания HTML-страниц и справочных страниц.

Создание выпуска

  1. git checkout master # см. ниже информацию о стабильной ветке;
  2. git pull # ВАЖНО;
  3. git status — убедитесь, что всё проверено;
  4. Проверьте, что сборка GitHub actions для master имеет статус «Зелёная»;
  5. make test # см. сервер интеграционного тестирования или запустите локально;
  6. make tag;
  7. отредактируйте docs/content/changelog.md # убедитесь, что удалены повторяющиеся записи из точечных выпусков;
  8. make tidy;
  9. make doc;
  10. git status — проверьте наличие новых справочных страниц — добавьте их в git;
  11. git commit -a -v -m "Версия v1.XX.0";
  12. make retag;
  13. git push origin # без --follow-tags, чтобы не отправлять тег в случае сбоя;
  14. git push --follow-tags origin;
  15. Дождитесь завершения сборки на GitHub, затем...

  16. make fetch_binaries;
  17. make tarball;
  18. make vendorball;
  19. make sign_upload;
  20. make check_sign;
  21. make upload;
  22. make upload_website;
  23. make upload_github;
  24. make startdev # make startstable для стабильной ветки;
  25. объявите об этом с помощью публикации на форуме, сообщения в Twitter, поста на Patreon.

Обновление зависимостей

В начале следующего цикла выпуска обновите зависимости.

  • Просмотрите все закреплённые пакеты в go.mod и при возможности удалите их;
  • make updatedirect;
  • make GOTAGS=cmount;
  • make compiletest;
  • Исправьте всё, что не компилируется на данный момент, и зафиксируйте изменения здесь;
  • git commit -a -v -m "build: обновление всех зависимостей".

Если команда make updatedirect обновляет версию go в файле go.mod, перейдите в ручной режим. Здесь go1.20 — это самая низкая поддерживаемая версия в go.mod.

go list -m -f '{{if not (or .Main .Indirect)}}{{.Path}}{{end}}' all > /tmp/potential-upgrades
go get -d $(cat /tmp/potential-upgrades)
go mod tidy -go=1.20 -compat=1.20

Если go mod tidy завершается сбоем, используйте его выходные данные, чтобы удалить пакет, который невозможно обновить, из /tmp/potential-upgrades, когда закончите.

git co go.mod go.sum

И повторите попытку.

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

  • make update;
  • make GOTAGS=cmount;
  • make compiletest;
  • откатите любые обновления, которые не скомпилировались;
  • git commit -a -v --amend;
  • NB: следите за тем, чтобы это не изменило версию go по умолчанию в go.mod.

Обратите внимание, что команда make update обновляет все прямые и косвенные зависимости, и иногда могут возникать проблемы совместимости с прямой совместимостью, поэтому может потребоваться откатить зависимости до версии, указанной командой make updatedirect, чтобы rclone мог быть собран.

После локальной компиляции отправьте его в тестовую ветку и фиксируйте исправления до тех пор, пока тесты не пройдут.

Очистка бета-версии

Через некоторое время после выпуска запустите bin/tidy-beta v1.55, где номер версии соответствует номеру версии пару версий назад, чтобы удалить старые бета-файлы.

Выпуск точечной версии

Если rclone нуждается в выпуске точечной версии из-за какой-то ужасной ошибки:

Установите переменные

  • BASE_TAG=v1.XX # например, v1.52;
  • NEW_TAG=${BASE_TAG}.Y # например, v1.52.1;
  • echo $BASE_TAG $NEW_TAG # v1.52 v1.52.1.

Сначала создайте ветку выпуска. Если это второй выпуск с точками, то это уже будет сделано.

  • git co -b ${BASE_TAG}-stable ${BASE_TAG}.0;
  • make startstable.

Теперь

  • git co ${BASE_TAG}-stable;
  • git cherry-pick any fixes;
  • выполните описанные выше действия;
  • make startstable;
  • git co master;
  • # cherry pick изменения в журнале изменений — проверьте разницу, чтобы убедиться, что она правильная;
  • git checkout ${BASE_TAG}-stable docs/content/changelog.md;
  • git commit -a -v -m "Обновления журнала изменений с версии ${NEW_TAG}";
  • git push.

Логотипы спонсоров

При обновлении веб-сайта обратите внимание, что логотипы спонсоров были перемещены из основного репозитория.

Вам нужно будет оформить заказ /docs/static/img/logos с https://github.com/rclone/third-party-logos, который является частным репозиторием, содержащим произведения искусства от спонсоров.

Обновите веб-сайт между выпусками

Создайте обновление. ``` ветка веб-сайта на основе последнего релиза

git co -b update-website

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

Теперь сбросьте ветку до последнего релиза

git reset --hard v1.64.0

Создайте изменения, зарегистрируйте их, протестируйте с помощью make serve, затем

make upload_test_website

Проверьте https://test.rclone.org и когда будете довольны

make upload_website

Выберите любые изменения обратно в master и стабильную ветку, если она активна.

Создание ручной сборки docker

Чтобы сделать базовую сборку образа docker rclone для локальной отладки сборок:

docker buildx build --load -t rclone/rclone:testing --progress=plain .
docker run --rm rclone/rclone:testing version

Для тестирования мультиплатформенной сборки

docker buildx build -t rclone/rclone:testing --progress=plain --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6 .

Чтобы выполнить полную сборку, затем правильно установите теги и добавьте --push

docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 -t rclone/rclone:1.54.1 -t rclone/rclone:1.54 -t rclone/rclone:1 -t rclone/rclone:latest --push .

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-rclone.git
git@api.gitlife.ru:oschina-mirror/mirrors-rclone.git
oschina-mirror
mirrors-rclone
mirrors-rclone
master