Данный документ описывает шаги, которые должны быть выполнены администраторами при выпуске новых версий.
Мы стремимся автоматизировать как можно больше процесса, но всегда будут существовать некоторые задачи, которые должны выполняться человеком с правильными полномочиями (например, администратором), и данный документ должен быть актуализирован в случае изменения этих шагов.
main
.vX.Y.Z
, например v2.0.0
.Ниже приведён пример использования v1.1.3
. При выпуске новой версии вам потребуется заменить этот номер на номер следующего выпуска. Первым шагом является обновление документа (не требуется отправка pull request с этими изменениями), чтобы скрипты помощника были также обновлены.
git fetch --all
git switch main
git rebase upstream/main
git push --force-with-lease
git checkout -b release-v1.1.3
yarn run configure
yarn lerna version 1.1.3 --ignore-scripts --conventional-commits --exact --git-remote upstream --message="chore(release): publish %s" --no-push --no-git-tag-version --no-ignore-changes
yarn tools:bump-openapi-spec-dep-versions --target-version=1.1.3
yarn codegen
yarn build:dev
./tools/weaver-update-version.sh 1.1.3 .
./tools/go-gen-checksum.sh 1.1.3 .
```- Обратите внимание на `.` как последнего параметра в двух последних командах.
- Автоматический скрипт управления версиями `./tools/weaver-update-version.sh` в настоящее время имеет небольшую ошибку, поэтому вам придётся самостоятельно обновить `./weaver/core/relay/Cargo.toml`. Пример этого действия можно найти здесь: https://github.com/hyperledger-cacti/cacti/pull/3427#discussion_r1686850372
- Внимательно проверьте, что все зависимости пакетов были обновлены от предыдущей версии до новой, так как lerna обычно не может сделать это для частей `devDependencies` файла `package.json`, поэтому вам придётся выполнять эту операцию вручную через поиск и замену по всему репозиторию... Суть заключается в поиске версии предыдущего выпуска внутри файлов package.json либо просто поиск "@hyperledger/cacti-*" внутри файлов package.json.
С помощью VSCode можно выполнить проектный поиск и замену, где:
1. Убедитесь, что замена на основе регулярных выражений включена в панели поиска VSCode (в правом верхнем углу панели поиска)
2. Установите файлы для включения как "package.json" (чтобы только файлы с названием package.json были включены в поиске)
3. Установите строку поиска следующим образом, чтобы найти старые версии (без обратных апострофов, если вы читаете это в обычном тексте) `@hyperledger/cactus-(.*): "1.1.2"`
4. Установите строку замены следующим образом (чтобы она меняла номера версий на новый) `@hyperledger/cactus-$1: "1.1.3"`- Также удвойте проверку того, что свойство `"version": "?.?.?"` было обновлено во всех файлах `package.json`.
- Наконец, проведите общую полнотекстовую проверку по всему проекту для строки предыдущей версии `?.?.?`, где исключите эти результаты: `rust/fixtures/ink, go/generated/, kotlin/generated/, typescript/generated, openapi.json, .github/workflows/actionlint.yaml, .github/workflows/.dast-nuclei-cmd-api-server.yaml, CHANGELOG.md, go.sum, go.mod, yarn.lock, package-lock.json, .yarn/, weaver/core/relay/Cargo.toml` и затем замените найденные значения новой версией, такой как `1.1.3`.
- Обновите файл запирающего лока при необходимости
```sh
$ yarn
```
- Удвойте проверку того, что скрипт конфигурации всё ещё работает (CI будет завален без него в любом случае)
```sh
$ yarn configure
```
- Удвойте проверку того, что CHANGELOG не содержит ссылки вашего форка вместо ссылок основного репозитория. Вам потребуется изменить это вручную, иначе. Например, замените:
- `https://github.com/petermetz/cact`
на
- `https://github.com/hyperledger/cact`
```sh
git add . && git commit --signoff --gpg-sign --message="chore(release): publish v1.1.3"
git push --set-upstream upstream release-v1.1.3
перезапись будет происходить на серверах GitHub, где ваша личная подпись Git недоступна,
поскольку GitHub (не должен) иметь доступ к вашему приватному ключу для подписывания.Чтобы сохранить действительность вашего подписывающегося коммита, хэш коммита должен остаться тем же самым, а способ достижения этого — выполнить слияние запроса на слияние с использованием быстрого слияния. Слияние гарантировано тем, что нет изменения хэша коммита, а опция --ff-only
гарантирует, что нет коммита слияния, который мог бы помешать процессу.
origin
, а официальный репозиторий Hyperledger — upstream
):git fetch --all
git switch main
git rebase upstream/main
git merge --ff-only upstream/release-v1.1.3
git push upstream
git push origin
git tag -s -a "v1.1.3" -m "v1.1.3"
git push upstream --follow-tags
yarn run configure && yarn run build && yarn lerna publish from-git --loglevel=debug --summary-file
yarn lerna publish from-git --loglevel=debug --force-publish --ignore-scripts --ignore-prepublish --summary-file
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )