DiamondLightSource / DiamondLightSource/python-copier-template
Automate more of the Python upgrade
- 主要語言
- Jinja
- 星號
- 25
- 分支
- 10
- 平均合併
- 4 小時 4 分鐘
- 30 天內合併 PR
- 6
描述
When a new python version is released we currently have the checklist in https://github.com/DiamondLightSource/python-copier-template/blob/main/.github/workflows/new_python.yml. Many of these steps could be done automatically by renovate e.g. something like:
```
{
"regexManagers": [
{
"fileMatch": ["^\\.github/workflows/.*\\.ya?ml$"],
"matchStrings": [
"python-version:\\s*\
\[(?[^\\]
]+)\\]
"
],
"datasourceTemplate": "python",
"depNameTemplate": "python",
"versioningTemplate": "pep440"
}
]
}
```
in the `renovate.json` should update the versions under test.
There are probably differing opinions of how much of this we do automatically, semi-automatically or manually based on risk. My preference would be to split the move into two steps:
* Adding the new version as supported - e.g. adding it to the versions under test and to the `classifiers`. I would say if the tests pass then merge this w/o human input
* Deprecating the old one. I think this does need human intervention as it's risky and there may be valid reasons it's hard. However, we can probably still get renovate to make the PR for it.
## Acceptance Criteria
* We decide how much of the process should be automated
* The decision is written in https://diamondlightsource.github.io/python-copier-template/main/explanations/decisions/0022-spec-0.html
* We automate the agreed upon steps (or make a new issue if hard)
貢獻指南
研究方向
閱讀 .github/workflows/new_python.yml 以了解目前的 Python 升級檢查清單,然後檢視 renovate.json 和 decision 0022-spec-0.html。決定哪些支援和 Deprecation 步驟應予以自動化,在連結的文件中記錄該決定,並實作議定的自動化,或將較困難的工作拆分到新的 Issue 中。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- github-actions, python
- 領域
- ci-cd, devops, documentation
- Issue 類型
- 功能
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100