-
Notifications
You must be signed in to change notification settings - Fork 171
Publish Package
本文介绍如何发布一个自己的package到http://edp-registry.baidu.com,发布之后就可以通过edp import
来导入了。
我们提供了一个Web Hook可以完成自动发布版本的操作,只需要在项目中配置一下Web Hooks即可,参考这个截图:
注意:Content Type
需要选择application/json
,不要选错了。
关于package的版本,应该遵循283里面讨论的约定:
版本号符合semver,其的形式为{major}.{minor}.{patch}[-{pre-release-type}.{pre-release}]
其中major、minor、patch和{pre-release}必须(MUST)为十进制数字,且随版本发布递增。
{pre-release-type}必须(MUST)选择以下关键词之一:
alpha表示内部测试版本,不建议任何非参与开发人员所在团队使用,在alpha版本期间会不断增加新的功能并修复已有BUG
beta表示公开测试版本,不建议稳定项目使用,在beta版本期间会酌情增加新功能,修复已知BUG
rc表示发布候选版本,推荐各项目使用,在rc期间不得(MUST NOT)增加任何新功能,仅修复BUG。如果rc版本未发现任何BUG,则此版本直接转为正式发布版
如果要发布正式版1.0.0,一般来说,之前应该会发布1.0.0-alpha.1, 1.0.0-beta.1, 1.0.0-rc.1这些版本来进行测试,如果测试通过了,最后再发布1.0.0。
注意版本号是1.0.0
,不是v1.0.0
。
发布版本对应的就是创建TAG这个操作,因为上面我们已经配置好了Web Hook,当它收到Create Tag Event
之后,会自动把TAG上面的代码同步到本地,然后自动调用npm publish
发布到 http://edp-registry.baidu.com,如果一切正常的话,其实可以在这里看到发布的进度 http://cp01-lijiu05-40.cp01.baidu.com:8080/job/prj_publish-package/。
例如我要发布1.0.0版本了,一般来说是这样子操作的:
$ git checkout 1.0/release
$ git merge 1.0/develop
$ # vim 修改一下package.json,更新版本号
$ git commit -a -m 'bump to 1.0.0'
$ git tag -a 1.0.0 -m 'bump to 1.0.0'
$ git push origin 1.0/release 1.0.0 # 创建1.0.0这个tag
当Web Hook调用npm publish
发布版本成功之后,会自动更新一个叫做dist-tag
的字段,默认是latest
。
当我们执行edp import my-test
的时候,会检查本地的版本是否跟latest
这个dist-tag
关联的版本是否一致。
如果我们想要安装beta
或者rc
这个dist-tag
关联的版本,需要执行edp import my-test@beta
或者edp import my-test@rc
。
当我们创建的TAG发布版本的时候,如果TAG是1.0.0-beta.1
,那么Web Hook会更新beta
这个dist-tag
,而不是latest
,所以如果你发现明明自己已经发布了版本,但是edp import
的时候检查不到,这个时候可能就需要去看看更新的dist-tag
是否正确了。
当发布版本的时候,如果代码中存在jsduck/config.json
这个文件,会自动调用jsduck --config=jsduck/config.json
,把生成好的doc/api
文档发布到 http://ecomfe.github.io/api 上面去(这个页面还比较难看,希望有志之士帮忙美化)。
关于jsduck应该如何使用,可以参考 https://github.com/ecomfe/er 或者 https://github.com/ecomfe/esui 中代码的注释和相关的配置。