Skip to content

loongarchlinux/devbox

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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages