命名空间
命名空间(namespace)是一种组织和管理软件制品的重要机制。它可以用来区分和隔离不同的制品集合,从而避免命名冲突,并提供清晰的组织结构和管理功能。通过命名空间,用户可以发布与其他用户或组织同名的软件包,而不会发生冲突。此外,命名空间还允许用户根据需求为特定命名空间的软件包分配不同的访问权限,以增强安全性和管理灵活性。
格式
命名空间的格式以“@”开头,以“/”结尾,二者中间的部分为空间名称,形如@namespace/
。例如,若命名空间为 armory,那么该命名空间下的软件包命名格式为@armory/package-name
,其中 package-name 为具体的软件包名。
规则
命名空间只能由小写字母、数字和特殊字符“-”、“_”组成,不能包含空格,且长度不能超过 30 个字符。
类型
命名空间分为三种类型:用户命名空间、组织命名空间和全局命名空间。各类型命名空间下的软件包权限说明如下:
用户命名空间:仅限用户个人使用,用户拥有此命名空间下所有软件包的管理权限。用户登录 Armory 时,系统会为其分配一个与用户名(username)相匹配的唯一命名空间,具体请参见 Web 端个人信息页面个人头像下的“@xxx”信息。个人命名空间下的软件包名命名格式为:@username/package-name。
组织命名空间:限组织成员使用,所有在组织命名空间下发布的软件包可以由该组织成员(依据其在组织中的角色和权限)进行管理。新建组织时,系统会为其分配一个与组织名称(orgname)相匹配的唯一命名空间。组织命名空间下的软件包名命名格式为:@orgname/package-name
全局命名空间:此命名空间由系统内置,名称为 global,用于发布广泛可见和可访问的正式软件包。global 本质上也是一个组织,其组织所有者为系统管理员(administrator)。全局命名空间的软件包命名格式可以为 @global/package-name 或 package-name,若未指定命名空间,则系统会自动添加“@global/”前缀。