Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

devbox

LoongArchLinux 开发工具箱

源码仓库工作流

    1                  2                  3
+---------+        +---------+       +---------+
|archlinux|   A    |  Repos  |  A    |  Core/  |
| Gitlab  |------> |         |------>|  Extra  |
+---------+        +---------+       +---------+

图示说明

archlinux Gitlab: https://gitlab.archlinux.org/archlinux/packaging/packages archlinux 官方仓库

Repos: https://github.com/loongarchlinux/repos 重制 archlinux 多软件仓库为单一仓库,每次提交为官方仓库某时刻的snapshot

Core: https://github.com/loongarchlinux/core 从 Repos 分库,对应 core 二进制仓库

Extra: https://github.com/loongarchlinux/extra 从 Repos 分库,对应 extra 二进制仓库

A: update-repos.py 脚本,完成从archlinux官方重制 Repos 仓库,对 core/extra 分库,并提交 repos/core/extra 仓库的arch分支、创建 x86 tag等。

流程介绍

  1. 运行脚本,更新 Repos 仓库

Repos 仓库,只有一个 main 分支,提取当前时刻的 ArchLinux 上游快照,并按 core/extra/core-testing... 组织目录。

每个提交记录,为一次 ArchLinux 的上游快照。

  1. 运行脚本,更新 Core/Extra 仓库分支及tag

core、extra 为 loongarchlinux 发行版仓库,其中 arch 分支为从 Repos 分库而来,且同步打上 x86.YYYYMMDD 的 tag。

  1. 在 core/extra 仓库上进行 loongarchlinux 日常开发

main 分支,为工作分支,每次开始工作时

- 首先会创建一个 `YYYY.MM` 的分支副本,以保留当前开发周期的完整历史,
- 其次会 squash 本开发周期内所有commit为一次提交, 
- 然后基于更新后的 `arch` 分支进行 rebase 操作,
- 最后开始构建增量变化的软件包。

所谓增量变化的包,指的是前后 2 个 x86.YYYYMMDD tag 之间 PKGBUILD 文件有变化的软件,如果在一个同步开发周期内,多次执行过 update-repos.py 脚本,则这个增量变化的包,可能需要在3个或更多个tag之间对比产生。

注:在 main 分支历史记录中,通常在 x86.YYYYMMDD tag 之后,一般会存在一个 Add support for LoongArch 提交,这是在 rebase 操作时,为了避免对同一处冲突文件进行多次修改(多次提交,会产生多次相同冲突),而将前一次开发周期产生的修改进行了压缩。

二进制仓库工作流

       1                      2                   3                  4                    5
+-------------+       +--------------+       +----------+       +-----------+      +--------------+
|archlinux.dev| --A-> | archlinux.pub| --A-> |TestServer| --B-> |wsyu server|--C-->| Mirror Server|
+----+--------+       +------+-------+       +----+-----+       +-----+-----+      +--------------+
     |                       |                    |                  |
     +-----development-------+                 testing          production

图示说明

archlinux.dev: 位于本地服务器上的开发环境仓库

archlinux.pub: 位于本地服务器上的预发布环境仓库

TestServer: 位于公网服务器的非公开测试仓库

wsyu server: https://mirrors.wsyu.edu.cn/loongarch/archlinux/ 位于公网服务器的公开主仓库(武昌首义学院)

Mirror Server: 位于公网服务器的各镜像仓库(如南京大学、北京大学镜像网站)

A: repo-release.py 脚本,从 archlinux.dev 仓库制作 archlinux.pub 仓库,以及同步 archlinux.pub 仓库到 TestServer 服务器

B: rsync 命令,从 TestServer 同步到公网主仓库服务器

C: rsync 命令,由各镜像网站,自行使用 rsync 从公网主仓库服务器同步仓库

流程介绍

  1. 本地构建软件包(pkgctl),每构建完成一个包,将自动进入 archlinux.dev 本地仓库

  2. 运行 repo-release.py 脚本,从 archlinux.dev 仓库生成可预发布的 archlinux.pub 仓库结构(增加iso、images等等)

  3. 运行 repo-release.py 脚本,将 archlinux.pub 仓库同步到公网的测试服务器 TestServer ,此服务器对外提供 debuginfod 服务

  4. TestServer 上,运行 rsync 命令,将仓库同步到 wsyu server 武昌首义学院主仓库服务器

  5. 其他镜像站,使用 rsync 命令将主仓库同步到各自的镜像服务器

About

LoongArchLinux development box

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages