【转】产品配置管理操作规范

  1. 开发库结构规范

  1.1. 概述

  本规范用于指导SCM经理创建开发库,保证开发库结构的通用性。

  1.2. 开发库结构规范

  开发库结构参考《开发库结构模版.zip》。

  2. 帐号命名规范

  2.1. 概述

  本规范归纳总结了配置管理过程中配置库的帐号命名规范。便于SCM工程师进行及时查询,保证用户帐号的唯一性和易用性。

  2.2. 开发库帐号命名规范

  开发库帐号的命名,主要依据用户的邮箱而定,根据邮箱不同而略有变化,每个用户的帐号名称统一为英文小写。如下:

  将邮箱域名中@变为“.”(不包括引号),然后作为cvs的登录帐号名称。

  例1:用户,李四

  邮箱为,[email protected]***.com

  帐号为,lisi.***.com

  例2:同名用户,李四

  邮箱为,[email protected]***.com

  帐号为,zblisi.***.com

  2.3. 交付库帐号命名规范

  1. 与开发库的帐号名称要保持一致;

  2. 与开发库命名规范相同;

  2.4. sympa帐号命名规范

  1. 以对应开发库名字作为帐号开头;

  例1:开发库是scm

  sympa帐号为,[email protected]***.cn,[email protected]***.cn等

  2.5. bugzilla帐号命名规范

  1. 每个用户以工作邮箱作为帐号;

  2.6. rt帐号命名规范

  1. 每个用户以工作邮箱作为帐号;

  2.7. tcedit帐号命名规范

  1. 每个用户以工作邮箱作为帐号;

  2.8. vpn帐号命名规范

  1. 与开发库的帐号名称要保持一致;

  2. 与开发库命名规范相同;

  3. 帐号需直属总监批准才能开通;

  2.9. 帐号密码命名规范

  1. 用户的帐号密码是由数字和字母随机生成的。例如:A86345、dFd438、7yue3s;

  2. 密码中不能包括“:”“@”等特殊符号;

  3. 每个帐号的密码是唯一的。

  2.10. 集团邮箱清单

  3. 帐号权限管理规范

  3.1. 概述

  公司为每个产品建立对应的开发库、交付库,为了便于管理项目组不同成员对配置库的访问权限,SCM工程师需要根据此规范进行操作。

  3.2. 帐号权限管理规范

  1. SCM经理在完成配置库的创建后的1个工作日内,给项目经理、产品经理,业务领域总监、QA工程师开通相关的配置库帐号,并发出“新建配置库的创建通知”或“不采用默认结构配置库的创建通知”或“新项目使用原有配置库的创建通知”邮件通知;

  2. 产品经理、项目经理从开发库获取《配置库结构及权限表》,将相关帐号、权限信息填入其中。完成后,将《配置库结构及权限表》作为邮件附件发给SCM工程师;

  3. SCM工程师应在收到邮件后的1个工作日内,完成帐号开通工作,发送“全体人员帐号通知”邮件给项目经理,同时抄送给帐号持有者、本领域总监、和QA工程师;

  4. 对于帐号、密码详细信息,SCM经理或SCM工程师须发送“CVS个人帐号通知”和(或)“FTP个人帐号上传权限通知”和(或)“FTP人帐号下载权限通知”单独邮件通知给各帐号持有人。

  5. 在某些特殊情况下,SCM工程师可以根据口头通知开通帐号、权限,但需同步更新《配置库结构及权限表》;

  6. SCM工程师需要长期保留收到、答复的开通、变更帐号、权限信息的相关邮件,存档备查。

  3.3. 权限的基本规则

  1. 权限按目录分别定义,避免对具体的文件定义权限;

  2. 权限按角色划分为权限组,不同的权限组有不同的权限,避免组与组之间权限相同;

  3. 不同的权限组有不同文档、源代码目录的权限,避免某个权限组有所有文档或源代码目录的权限;

  4. SCM工程师新建配置库时,提交的《配置库结构及权限表》中的权限信息是依照以上规则定义的默认权限,项目经理可以根据配置库的具体情况略做修改,但需符合以上规则;

  5. SCM工程师在开通、变更权限时,需检查是否符合以上规则,不符时需及时反馈确认。

  6. 开发库的权限一般不要超过三级目录。

4. 邮件列表管理规范

  4.1. 概述

  通过邮件列表将公司各邮箱用户按所在项目组的不同进行分组,类似于群发邮件的功能,它提供便捷的项目团队沟通方式。

  4.2. 邮箱地址规范

  邮件列表只用于集团内部沟通,邮件列表中的邮箱地址只允许使用集团邮箱。集团邮箱清单参见2.5节。

  5. 版本管理规范

  5.1. 概述

  按照一定的规则保存配置项的所有版本记录,避免发生版本丢失或混淆等现象,并且可以快速准确的查找到配置项的任何版本。

  5.2. 源代码的版本命名规则

  1. 一般格式:“英文项目名或模块名.项目版本.流水号”。

  其中,项目版本格式:“主版本号.子版本号[.修正版本号]”;

  例如:

  webshop.3.0.2.1。其中,webshop,是英文项目名;3.0.2,是项目版本;1,是流水号;

  webshop.3.0.2.12。其中,webshop,是英文项目名;3.0.2,是项目版本;12,是流水号。

  2. 维护项目格式:“英文项目名或模块名.维护项目版本.流水号”。

  其中,维护项目版本格式:“{sp|fix|hotfix|…}主版本号”;

  例如:

  ***.sp1.1。其中,***,是英文项目名;sp1,是维护项目版本;1,是流水号。

  5.3. 文档的版本命名规则

  1. 一般格式:“v.项目版本.流水号”;

  其中,项目版本格式:“主版本号.子版本号[.修正版本号]”;

  例如:

  v.3.0.2.1。其中,v,是固定前缀;3.0.2,是项目版本;1,是流水号。

  2. 维护项目格式:“v.维护项目版本.流水号”;

  其中,维护项目版本格式:“{sp|fix|hotfix|…}主版本号”;

  例如:

  v.sp1.1。其中, v,是固定前缀;sp1,是维护项目版本;1是流水号。

  5.4. 版本的TAG标识

  1. 源代码和文档的版本号在开发库中用tag进行标识,由于CVS规定tag中不能有“.”,因此,版本中的“.”在tag中用“-”替换;

  2. 一般格式:“英文项目名或模块名-项目版本-流水号”、“v-项目版本-流水号”;

  其中项目版本格式:“主版本号-子版本号[-修正版本号]”

  例如:webshop-3-0-2-1、webshop-3-0-2-12、v-3-0-2-1。

  3. 维护项目版本格式:“英文项目名或模块名-维护项目版本-流水号”、“v-维护项目版本-流水号”;

  其中维护项目版本格式:“{sp|fix|hotfix|…}主版本号”

  例如:***-sp1-1、v-sp1-1。

  6. 自动编译操作规范

  6.1. 概述

  为保证开发库中源代码与交付库中程序包的一致性,提高源代码的编译效率,SCM工程师需要依据此规范进行自动编译的操作。

  6.2. 确定编译信息

  SCM工程师需根据《项目编译手册》、《虚拟机清单》的内容确定编译机、编译工具、编译所需环境变量等信息。

  6.3. 搭建自动编译客户端编译环境

  搭建客户端编译环境主要针对环境变量的配置,和编译工具的安装。

  例如,编译信息中指定安装apache-ant-1.6.5,定义环境变量ant1.6.5:

  1. 在编译机器上安装此程序;

  2. 找到cc-agent的安装文件夹,以记事本的形式打开start.bat,并填写一条环境变量记录:set ant1.6.5=e:apache-ant-1.6.5;

  6.4. 建立builder用户

  SCM工程师建立builder用户到该项目,并分配到BD权限组里面,便于编译系统能通过builder用户获取源代码。

  修改tagcheck文件,便于自动锁定自动编译标记的源代码tag。

  tagcheck文件示例如下

  #! /bin/sh

  # TAG add/mov/del repo files...

  # $1 $2 $3 $4 ...

  case "$1" in

  v-*)

  case "$CVS_USER" in

  zbwangjian | fengcui)

  exit 0 # ok;;

  *)

  echo "$CVS_USER does not have permission to perform this tag operation!" 1>&2

  exit 1;;

  esac;;

  DataCenter-*)

  case "$CVS_USER" in

  builder)

  exit 0 # ok;;

  *)

  echo "$CVS_USER does not have permission to perform this tag operation!" 1>&2

  exit 1;;

  esac;;

  *)

  exit 0 # not reserved, ok.;;

  esac

  6.5. 配置自动编译服务器端环境

  自动编译客户端环境变量及工具配置完成后,开始对自动编译服务器端进行配置。

  1. 首先,进入到自动编译服务器端的如下目录:

  $cd /cruisecontrol/projects/project11/

  在该目录中可以看到两个xml格式的模版:0linux.xml和0windows.xml分别针对linux系统的编译机和windows系统的编译机。根据实际编译机系统情况进行选择复制,并将名称修改为“英文项目名或模块名-项目版本.xml”的形式,名称开头必须和开发库名称一致,以保证tag锁有效。

  以0linux.xml为例,介绍一下如何修改配置文件。

  (“*”号处为需要修改的内容,“#”号后为注释)

  <?xml version="1.0" encoding="GBK"?>

  <cruisecontrol>

  <project name="***" buildafterfailed="false"> #英文项目名或模块名-项目版本,如***-1-0

  <property name="module" value="***/***"/> #编译脚本所在目录

  <property name="module2" value="***/***"/> #检出到本地的编译脚本所在目录(windows注意斜杠方向为“”)

  <property name="ftp2.dir" value="/repository/ftpdata/***/Output/${project.name}"/> #项目配置库名称,比如cvstrain

  <property name="tag" value="***"/> #系统集成工程师打上的tag号,为了便于记忆,取编译脚本名称中“.”的前缀作为tag号,例如:编译脚本名称是“build.sh”,tag就是“build”

  <property name="buildfile" value="***.sh"/> #编译脚本名称,例如:build.sh,windows为build.bat

  <property name="cvsroot" value=":pserver:builder:***@scm3.***.cn:/repository/***"/> #输入所建立builder的密码

  <property name="agent" value="agent.name=***"/> #编译服务器的agentname,可以到《虚拟机清单.doc》中查询到

  <property

  name="buildresultsurl" value="http://scm3.***.cn:8080/cruisecontrol/buildresults/${project.name}"/>

  <property name="mailto" value="***@***.cn"/> #执行编译操作人员的邮件地址,若有多人需接收时,使用邮件列表

  <property name="mailhost" value="mail.***.cn"/>

  <property name="returnaddress" value="[email protected]"/>

  2. 然后,返回上一级目录,配置config.xml文件。

  该文件信息如下:

  <cruisecontrol>

  <property name="cruise.dir" value="/opt/cruisecontrol-2.7.1"/>

  <property name="jetty.dir" value="/opt/jetty-6.1.6"/>

  <property name="log.dir" value="${cruise.dir}/logs/${project.name}"/>

  <property name="checkout.dir" value="${cruise.dir}/checkout/${project.name}"/>

  <property name="output.dir" value="${cruise.dir}/output/${project.name}"/>

  <property name="ftp.dir" value="/repository/ftpdata/${project.name}/Output" />

  <property name="status.file" value="${log.dir}/status.txt"/>

  <pluginname="distributed" classname="net.sourceforge.cruisecontrol.builders.DistributedMasterBuilder"/>

  <pluginname="labelincrementer" classname="net.sourceforge.cruisecontrol.labelincrementers.CVSLabelIncrementer"/>

  <include.projects file="${cruise.dir}/projects/***"/> #项目xml文件的路径

  <system>

  <configuration>

  <threads count="20"/>

  </configuration>

  </system>

  </cruisecontrol>

  至此,编译环境配置完成。

  6.6. 显示编译项目记录

  打开cruisecontrol编译页面,例如http://scm1.***.cn:8080/cruisecontrol5/,并没有新建的编译项目记录,此时,应该先点击预先设计好的一个测试项目工程,例如cvstrain-win-5-0,点击build按钮,触发后就看到了刚新建的编译项目记录。

  6.7. 记录编译环境信息

  编译环境搭建完成后,

  1. SCM工程师记录编译环境信息到《项目基线记录表》中;

  2. SCM工程师回复邮件“自动编译通知”给系统集成工程师;

  3. 系统集成工程师按照邮件中提示进行操作,给需要编译的代码打约定的tag号,然后登陆相关页面进行编译工作。

  注意:

  1. 如果该项目并非第一次进行自动编译,可以简化以上操作:

  SCM工程师检查《项目编译手册》和前序版本的《项目编译手册》,如果编译环境说明相同,就可以仅对自动编译服务器端配置新的编译项目记录。

  首先,进入到自动编译服务器端的如下目录:

  $ cd /cruisecontrol/projects/

  在该目录中可以选择该项目的前一版本的xml文件作为模板,进行复制,并将名称修改为此次项目的版本名称,形式为“英文项目名或模块名-项目版本.xml”。

  进入该配置文件,修改project name为本次项目名称,如果没有特殊说明,其他都同之前版本,配置完成后,保存退出。

  然后,返回上一级目录,配置config.xml文件。复制前一版本的include节点信息,并修改xml文件名字为上面修改的.xml文件的名字即可。

  l 搭建完成后,SCM工程师回复邮件“自动编译通知”给系统集成工程师。

  2. 编译过程中,若有问题,SCM工程师需及时协助编译人员解决问题,直至编译成功;

  3. 自动编译系统故障、网络故障等情况,暂时无法使用自动编译时,SCM工程师要以邮件方式通知相关QA和SCM经理,获得批准后,由SCM工程师根据系统集成工程师提供的tag号,按规范标注新的tag号,手动编译,手动上传至交付库(FTP)上,交付库目录的规则为:最后成功自动编译tag号-*(*为字母a,b,c…),比如:VOMS-1-1-7-a,VOMS-1-1-7-b

  4. 经批准暂不采用自动编译的项目,由系统集成工程师或SCM工程师手动编译,由SCM工程师手动上传至交付库(FTP)上,交付库目录的规则为:tag号-a,比如:VOMS-1-1-7-a,VOMS-1-1-8-a;记录不采用自动编译的原因到《项目基线记录表》中,比如:经批准不做自动编译

时间: 2024-08-11 04:47:52

【转】产品配置管理操作规范的相关文章

各大厂商企业级BOM解决方案PK

传统的PDM对于静态的BOM数据管理不再有意义,真正有业务价值的系统应该做到让和产品信息相关的参与者和数据都与业务流程紧密结合,使得利益相关者对于产品的构成.产品的状态.产品如何设计.产品如何制造.所依据的技术或者业务理由等具有充足便捷的获知渠道,真正的在共识之下开展各自的工作,企业级BOM的概念应运而生.目前,各大主流PLM厂商均提供了企业级BOM这一解决方案,也有部分企业如东风汽车应用了自主研发的企业级BOM管理系统等.本文详细介绍了各大厂商企业级BOM的解决方案. 1.Teamcenter

软件配置管理复习

软件配置管理 第1章    软件配置管理概念与目标 软件配置管理(Software Configuration Management, SCM) (1)    定义(多个): l  软件配置管理是指一套管理软件开发和维护过程中所产生的各种中间软件产品的方法和规则,它是控制软件系统演变的学科. l  软件配置管理是一组针对软件产品的追踪和控制活动,它贯穿于项目生命周期的始终,并代表着软件产品接受各项评审. l  软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计用来:(1) 标识变化:(2)

配置管理工具比較

配置管理工具比較    怎样选择配置管理工具     每一个软件项目,不管是project类项目,还是产品类项目,都必须经历需求分析.系统设计.编码实现.集成測试.部署.交付.维护和支持的过程.在这个过程中,将生成各种各样不同的工件,包含文档.源程序.可执行代码.支持库.更可怕的是,频繁出现的变更是不可避免的,因此面向如此庞大且不断变动的信息集,怎样使其有序.高效地存放.查找和利用就成为了一个突出的问题.     针对这一问题,最早的开发者尝试过的解决的方法是通过手工来实现:     1)文档:

2015-郭辉-项目采购管理+文档配置管理

一.采购管理1.采购管理的主要过程: 编制采购计划,编制询价计划,询价,供方选择,合同管理,合同收尾.2.工作说明书与范围说明书的区别: 工作说明书是对产品或服务的叙述性描述.范围说明书通过明确所需完成的工作确定了项目范围.3.招投标程序是什么: 1.发布招标公告. 2.根据项目情况 ,可以组织潜在投标人勘探现场. 3.投标. 4.开标. 5.评标. 6.确定中标人. 7.订立合同.4.采购审计的定义和内容. 整个采购过程中,采购审计都对采购的完整过程进行系统审查.目标是找出本次采购的失败和成功

采购管理和信息(文档)和配置管理作业

一.采购管理 1.采购管理的主要过程: (1).编制采购计划. (2).编制询价计划. (3).询价.招投标. (4).供方选择. (5).合同管理和收尾. 2.工作说明书与范围说明书的区别: 工作说明书与项目范围说明书的区别: 工作说明书是对项目所提供的产品或服务的叙述性的描述. 项目范围说明书则通过明确项目应该完成的工作而确定了项目的范围. 3.招投标程序是什么: (1)招标人采用公开招标方式的,应当向三个以上具备承担招标项目的能力.资信良好的特定的法人或者其他组织发出投标邀请书. (2)招

项目采购管理及文档与配置管理作业

一.采购管理 1.采购管理的主要过程: 采购管理的主要过程包括: 编制采购计划(决定采购什么,何时采购,如何采购) 编制询价计划(记录对产品.服务或成果的需求,并寻找潜在供应商) 询价.招投标(获取适当的信息.报价.投标书或者建议书) 供方选择(选择合适的供应商并签订合同) 合同管理和收尾(管理买卖双方的关系,完成结算工作)2.工作说明书与范围说明书的区别: 工作说明书:是对项目所需产品或者服务的叙述性的描述 范围说明书:对与项目应该完成的工作,确定项目范围的文档3.招投标程序是什么: (1)公

采购管理、信息与配置管理

一.采购管理     1.采购管理包括哪些过程?(记)        1)编制采购计划.决定采购什么,何时采购,如何采购.        2)编制询价计划.记录项目对于产品.服务.或成果的需求,并且寻找潜在的供应商.        3)询价.招投标.获取适当的信息.报价.投标书或建议书.        4)供方选择.审核所有建议书或报价.在潜在的供应商中选择,并与选中者谈判最终合同.        5)合同管理.管理合同以及买卖双方之间的关系,审核并记录供应商的绩效以确定必要的纠正措施并作为将来

3月30日高项作业(采购、信息和配置管理)

2016年3月30日作业 一.采购管理1.采购管理包括哪些过程?(记) (1).编制采购计划.(2).编制询价计划.(3).询价.招投标.(4).供方选择.(5).合同管理.(6).合同收尾. 2.编制采购计划过程的成果是什么? (1).采购管理计划.(2).采购工作说明书. 3.判断:每个采购工作说明书都来自于项目范围基准. 对 4.结合P388页表14-1,工作说明书应该清楚地描述哪些内容? (1).采购目标的详细描述.(2).采购工作范围.(3).工作地点.(4).产品及服务的供货周期.(

采购、配置管理

软考中高项学员:2016年3月30日作业 一.采购管理1.采购管理包括哪些过程?(记) 1)  编制采购计划:决定采购什么.何时采购.如何采购 2)  编制询价计划:记录项目对于产品.服务或成果的需求,并且寻找潜在的供应商. 3)  询价.招投标:获取适当的信息.报价.投标书或建议书. 4)  供方选择:审核所有建议书或报价,在潜在的供应商中选择,并与选中者谈判最终合同. 5)  合同管理:管理合同以及买卖双方之间的关系,审核并记录供应商的绩效以确定必要的纠正措施并作为将来选择供应商的参考,管理