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

OSCHINA-MIRROR/openeuler-openEuler-Advisor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.en.md

openEuler-Advisor

1. Введение

Цель 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. План действий

  1. Команда @solarhu работает над созданием инструмента для запроса зависимостей всех компонентов в openEuler.
  2. Оптимизация скрипта simple_update_robot.py для повышения способности автоматического обновления.
  3. Улучшение upstream-info для охвата всех программ в хранилище артефактов openEuler и интеграция всех YAML-файлов сообщества openEuler в upstream-info для унифицированного управления.
  4. Улучшение протокола управления исходным кодом верхнего уровня, поддерживаемого oa_upgradable.py, и добавление поддержки от fossil.

3. Инструкции по использованию инструментов

3.1 Спецификации YAML-файлов

Имя YAML-файла в каждом репозитории src-openEuler должно совпадать с именем репозитория. Например, имя YAML-файла, хранящегося в репозитории glibc, — это glibc.yaml, и этот файл находится в корневой директории репозитория.

В YAML-файле требуется вручную установить только поля version_control, src_repo, tag_prefix и separator. Все остальные поля генерируются автоматически.

3.1.1 Описание полей в YAML-файле

1. version_control

Протокол управления версией, используемый в репозитории верхнего уровня. В настоящее время поддерживаются svn, git, hg, github, gnome, metacpan, pypi.

2. src_repo

Адрес репозитория верхнего уровня. Вы можете использовать version_control и src_repo для скачивания соответствующего кода.##### 3. tag_prefix Префикс версии в теге репозитория верхнего уровня. Если используется протокол Git, можно выполнить команду git tag для отображения всех тегов. Если тег, предоставленный верхним уровнем, имеет вид v1_0_1, то tag_prefix должен быть установлен как ^v. Верная информация о версии может быть получена путём соответствия tag_prefix.

4. separator

Разделитель версии в теге. Если тег имеет вид v1_0_1 и separator установлен как _, то правильная версия 1.0.1 может быть получена путём парсинга кода.

3.1.2 Требования и примеры полей##### 1. src_repo

  1. Если version_control установлено как svn, то src_repo требует полного адреса SVN-репозитория. Для примера см. https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/amanda.yaml.
  2. Если version_control установлено как git, то src_repo требует полного адреса GIT-репозитория. Для примера см. https://gitee.com/com/openeuler/openEuler-Advisor/blob/master/upstream-info/mdadm.yaml.
  3. Если version_control установлено значение hg, то src_repo должно содержать полный адрес HG-репозитория. Пример см. в https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/nginx.yaml.
  4. Если version_control установлено значение github, то src_repo должно содержать только имя проекта и репозитория, полный URL не требуется. Пример см. в https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/asciidoc.yaml.
  5. Если version_control установлено значение gnome, то src_repo должно содержать только имя проекта, полный URL не требуется. Пример см. в https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/gnome-terminal.yaml. Обратите внимание, что многие проекты на gitlab.gnome.org требуют доступа с правами, который не может использоваться как репозиторий исходного кода.
  6. Если version_control установлено значение metacpan, то src_repo должно содержать только имя проекта, полный URL не требуется. Пример см. в https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/perl-Authen-SASL.yaml. Обратите внимание на правила названий на metacpan.
  7. Если version_control установлено значение pypi, то src_repo должно содержать только имя проекта, полный URL не требуется. Пример см. в https://gitee.com/.com/openeuler/openEuler-Advisor/blob/master/upstream-info/python-apipkg. Обратите внимание на правила названий на PyPI.##### 2. Разделитель Разделитель домена в тегах зависит от проекта. Некоторые проекты используют дефисы ("-"), а некоторые — подчеркивания ("_"). Значение по умолчанию — точка (". "). Рекомендуется использовать двойные кавычки ("").

3.1.3 Метод проверки информации репозитория исходного кода открытого программного обеспечения

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 )

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

Введение

Описание недоступно Развернуть Свернуть
MulanPSL-2.0
Отмена

Обновления (4)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/openeuler-openEuler-Advisor.git
git@api.gitlife.ru:oschina-mirror/openeuler-openEuler-Advisor.git
oschina-mirror
openeuler-openEuler-Advisor
openeuler-openEuler-Advisor
master