Цель openEuler-Advisor — предоставление автоматического анализа и рекомендаций для повседневной работы с репозиторием артефактов openEuler. Основные директории и скрипты в текущем проекте: (1) upstream-info: Эта директория содержит информацию о версиях компонентов программного обеспечения в репозитории артефактов openEuler. (2) advisors: Эта директория предоставляет некоторые автоматизированные скрипты, включая: 2. 1. oa_upgradable.py: Python-скрипт, основанный на upstream-info, который используется для запроса информации о версиях сообщества и рекомендованной версии программы. 2. 2. simple_update_robot.py: Python-скрипт, используемый для автоматической установки программного обеспечения в src-openeuler, включая скачивание исходного пакета рекомендованной версии, модификацию файла spec, локальную сборку OBS, создание PR и задач. 2. 3. check_missing_file.py: Python-скрипт, используемый для проверки каждого репозитория в src-openeuler. Если файл spec отсутствует в репозитории, его можно создать непосредственно. 2. 4. check_source_url.py: Python-скрипт, используемый для проверки адреса источника каждой программы в src-openeuler. Если адрес недействителен или неверен, автоматически создаётся задача для уведомления о необходимости изменения адреса. 2. 5. create_repo.py и create_repo_with_srpm: Python-скрипты, предоставляющие возможность создания репозиториев в режиме массового производства. 2. 6. which_archived.pypy**: Скрипт, используемый для проверки того, был ли архивирован репозиторий сообщества программного обеспечения в репозитории артефактов, чтобы команда поддержки могла своевременно корректировать политику поддержки пакетов. 2. 7. check_repeated_repo.py: Скрипт, используемый для проверки наличия повторяющихся пакетов программного обеспечения в src-openeuler. 2. 8. psrtool.py: Скрипт, используемый для запроса SIG, к которому принадлежит программа, и списка программ, управляемых SIG. 2. 9. tc_reminder.py: Скрипт, используемый для автоматического создания информационных сообщений для членов TC в openEuler. 2. 10. review_tool.py: Скрипт, используемый для генерации списка проверки кода RP в указанном репозитории PR для стандартизации процесса проверки PR. 2. 11. issue_report.py: Инструмент для автоматического создания таблиц задач и управления CVE (CSV-файлы) и отчетов результатов (файлы Markdown). Он предоставляет возможность генерации списков задач и CVE на основе версии openEuler. 2. 12. prow: В этой директории хранится скрипт для подключения к системе непрерывной интеграции и доставки PROW.## 2. План действий
Имя YAML-файла в каждом репозитории src-openEuler должно совпадать с именем репозитория. Например, имя YAML-файла, хранящегося в репозитории glibc, — это glibc.yaml, и этот файл находится в корневой директории репозитория.
В YAML-файле требуется вручную установить только поля version_control, src_repo, tag_prefix и separator. Все остальные поля генерируются автоматически.
Протокол управления версией, используемый в репозитории верхнего уровня. В настоящее время поддерживаются svn, git, hg, github, gnome, metacpan, pypi.
Адрес репозитория верхнего уровня. Вы можете использовать version_control и src_repo для скачивания соответствующего кода.##### 3. tag_prefix
Префикс версии в теге репозитория верхнего уровня. Если используется протокол Git, можно выполнить команду git tag
для отображения всех тегов. Если тег, предоставленный верхним уровнем, имеет вид v1_0_1, то tag_prefix должен быть установлен как ^v. Верная информация о версии может быть получена путём соответствия tag_prefix.
Разделитель версии в теге. Если тег имеет вид v1_0_1 и separator установлен как _, то правильная версия 1.0.1 может быть получена путём парсинга кода.
Git, SVN и HG могут получить информацию о репозитории исходного кода без скачивания всего репозитория. Метод следующий: - Git:
git ls-remote --tags $repo_url
```
\- SVN:
svn ls -v $repo_url/tags
\- HG:
curl $repo_url/json-tags
\- GitHub
curl https://api.github.com/repos/$user/$repo/releases
Можно получить полный список информации о выпусках в формате JSON. Не все проекты поддерживают эту функцию.
curl https://api.github.com/repos/$user/$repo/tags
Можно получить полную информацию о метках в формате JSON. Не все проекты поддерживают эту функцию, и эта информация была найдена неверной для некоторых проектов.
\- metacpan
curl https://fastapi.metacpan.org/release/$repo
Можно получить информацию о последней версии в формате JSON.
\- pypi
curl https://pypi.org/pypi/$repo/json
Можно получить информацию о последней версии проекта.
- Использование префикса и шаблона меток
Информация о метках некоторых программ может содержать префиксы, такие как `release-1.2.3` или `v1.2.3`.
Если установлено значение **tag_prefix**, то этот префикс удаляется со всех строк с метками.
Например, программа имеет две метки: `1.2.3` и `release-1.2.2`. Если **tag_prefix** установлен на `release-`, обработанные метки будут `1.2.3` и `1.2.2`.
**tag_pattern** используется для более сложных форм и не рекомендован.
- Использование разделителя
Если установлен разделитель, можно заменить один символ на точку (.).
Для некоторых программ разделителем для области меток является не точка (.). В этом случае можно установить разделитель для стандартизации версионных меток.
Если разделителем для области меток является точка (.), установка разделителя не повлияет на результат.### 3.2 Введение в советники
#### 3.2.1 Настройка окружения
##### а. Установка необходимых пакетов программного обеспечения.
pip3 install python-rpm-spec (вер>=0.10) pip3 install PyYAML (вер>=5.3.1) pip3 install requests (вер>=2.24.0) yum install rpmdevtools (вер>=8.3) pip3 install beautifulsoup4 (вер>=4.9.3) yum install yum-utils (вер>=1.1.31) yum install libabigail (вер>=1.6)
##### б. Настройка JSON-файлов.
Запустите команду ~/.gitee_personal_token.json
для создания JSON-файла.
Формат JSON-файла: {"user": "gitee_user_name", "access_token": "token_password"}
Для настройки пароля токена Gitee см. https://gitee.com/profile/personal_access_tokens
##### в. Настройка Gitee SSH.
Если Gitee SSH не настроен, см. https://gitee.com/help/articles/4181.
##### г. Настройка OBS.
Если OBS не настроен, см. https://www.openeuler.org/en/.
##### д. Настройка окружения Python.
Чтобы использовать этот инструмент в режиме разработки, настройте путь окружения Python: source ./develop_env.sh
.
##### а. simple_update_robot.py
Автоматическое обновление одного программного пакета: python3 simple_update_robot.py -u pkg pkg_name branch_name [-n new_version]
Пример: python3 simple_update_robot.py -u pkg snappy master
Ручное обновление одного программного пакета: python3 simple_update_robot.py pkg_name branch_name [-fc] [-d] [-s] [-n new_version] [-b] [-p]
Пример: python3 simple_update_robot.py snappy openEuler-20.03-LTS -fc -d -s -n 1.8.1
Обновление репозитория, содержащего несколько программных пакетов: python3 simple_update_robot.py -u repo repo_name branch_name
Пример: python3 simple_update_robot.py -u repo src-openeuler master
Пользователи могут настроить автоматический файл конфигурации обновлений YAML в локальной рабочей директории, например, upgrade-example.yaml
.
- name: A-Tune
- name: python-py
- name: python-ply
Если вы хотите указать версию обновления для некоторых программных пакетов, можно настроить следующим образом:
repositories:
- name: A-Tune
u_ver: x.y.z
- name: python-py
- name: python-ply
Затем используйте инструмент для автоматического обновления `upgrade-example`: `python3 simple_update_robot.py -u repo`.
##### б. oa_upgradable.py
Запрос информации сообщества-источника и рекомендованной версии программного пакета: python3 oa_upgradable.py pkg_name
.
Пример: python3 oa_upgradable.py glibc
.
##### в. issue_report.py
```bash
python3 issue_report.py -milestone "openEuler 20.03-LTS" "openEuler bk" -branch "openEuler-21.03" "openEuler-20.09" -outpath /Users/lilu/Downloads
Описание параметров:
-milestone
: майлстоун версии openEuler. Можно указывать несколько названий майлстоуна. Например,"openEuler-21.03"
и"openEuler 21.03-RC1"
.
-branch
: имя ветки репозитория src-openEuler. Можно указывать несколько названий ветвей. Например,"openEuler-21.03"
и"openEuler-20.09"
.
-outpath
: путь, где будут сгенерированы отчеты управления версиями и отчеты выпуска версий.
#### 3.2.3 Консультанты
Если у вас есть другие вопросы, отправьте электронное письмо на адреса `liciuhua@huawei.com`, `zwfeng@huawei.com` и `shanshishi@huawei.com`.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )