中间件发布规范
中间件发布时应遵循以下标准,包含制品的结构及内容,以及 armory.json
中需要注意的配置项。
制品组织
中间件制品应发布到 Armory
的 @sylixos-middleware
组织下。
版本号
所有中间件制品的版本号都应遵守 SemVer 的语义规范进行编写。
标签
中间件制品应至少包含以下一项标准标签
,其他标签可自行定义。
标签 | 说明 |
---|---|
target | 设备制品包 |
develop | 开发制品包 |
source | 源码制品包 |
依赖信息
制品发布时应添加其依赖的其他中间件,在 armory.json
配置中如下,其中 name
为 @namespace/package-name
,version
遵循 SemVer
格式,可支持范围依赖:
"dependencies":[{
"name": "@sylixos-middleware/zlib",
"version": "1.0.0"
}],
制品构成
下面对各类制品的构成及形态的规范进行说明。
设备包
名称
设备包制品名称不包含任何前后缀,例 zlib
。
结构
设备制品包发布时需将不同的架构分别打包,从 Armory 直接获取后的结果如下:
$ tree .
.
|-- README.md 制品说明文档
|-- armory.json armory 资源描述文件
|-- zlib-sylixos-arm64-generic-v1.2.11+20241224.tar.gz arm64 架构包
`-- zlib-sylixos-x86-64-v1.2.11+20241224.tar.gz x86-64 架构包
内容
设备制品包内容展开后应当与操作系统根目录形式一致。
以 zlib 为例,其制品包展开的结构如下:
$ tree .
.
`-- lib
`-- libz.so
其他配置
如需支持 armory install
功能,需要在 armory.json
中,将 installable
字段配置为 true
。
开发包
名称
开发制品名称后添加 -devel
后缀,例 zlib-devel
。
结构
开发制品包将全部架构包打包在一起,从 Armory 直接获取后的结果如下:
$ tree .
.
|-- README.md 制品说明文档
|-- armory.json armory 资源描述文档
`-- zlib-sylixos-v1.2.11+20241224-devel.tar.gz 开发制品包
内容
开发制品包顶层目录为产品名称
,二级目录为 install-sylixos
,三级目录为各类架构
的文件夹名,在各架构文件夹展开后是与操作系统根目录相同的结构。
以 zlib-devel 包为例,其制品包展开的结构如下:
$ tree .
.
`-- zlib 顶层目录
`-- install-sylixos 二级目录
|-- ARM64_GENERIC arm64 架构包
| |-- include
| | |-- zconf.h
| | `-- zlib.h
| `-- lib
| `-- libz.so
`-- X86_64 x86-64 架构包
|-- include
| |-- zconf.h
| `-- zlib.h
`-- lib
`-- libz.so
源码包
名称
源码制品名称后添加 -src
后缀,例 zlib-src
。
结构
源码制品包将原工程打包,从 Armory 直接获取后的结果如下:
$ tree .
.
|-- README.md 制品说明文档
|-- armory.json armory 资源描述文档
`-- zlib-sylixos-v1.2.11+20241224-src.tar.gz 源码制品包
内容
源码制品包顶层目录为工程文件夹,其中内容不包含构建产物,仅包含原工程本身。
以 zlib-src 包为例,其源码包展开的结构如下:
$ tree . -L 3
.
`-- zlib 顶层目录
|-- Makefile
|-- README.md
|-- config.mk
|-- libz.mk
`-- zlib
|-- CMakeLists.txt
|-- CMakeLists.txt.user
|-- ChangeLog
|-- FAQ
|-- INDEX
|-- Makefile
|-- Makefile.in
|-- README
|-- adler32.c
|-- amiga
|-- compress.c
|-- configure
|-- contrib
|-- crc32.c
|-- crc32.h
|-- deflate.c
|-- deflate.h
|-- doc
|-- examples
|-- gzclose.c
|-- gzguts.h
|-- gzlib.c
|-- gzread.c
|-- gzwrite.c
|-- infback.c
|-- inffast.c
|-- inffast.h
|-- inffixed.h
|-- inflate.c
|-- inflate.h
|-- inftrees.c
|-- inftrees.h
|-- make_vms.com
|-- msdos
|-- nintendods
|-- old
|-- os400
|-- qnx
|-- test
|-- treebuild.xml
|-- trees.c
|-- trees.h
|-- uncompr.c
|-- watcom
|-- win32
|-- zconf.h
|-- zconf.h.cmakein
|-- zconf.h.in
|-- zconf.h.included
|-- zlib.3
|-- zlib.3.pdf
|-- zlib.h
|-- zlib.map
|-- zlib.pc.cmakein
|-- zlib.pc.in
|-- zlib2ansi
|-- zutil.c
`-- zutil.h