【wing】一款轻量快捷的团队开发工具

科技颠覆者  金牌会员 | 2024-3-27 19:17:50 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 682|帖子 682|积分 2046

导航

说明

wing是一个代码同步管理工具类似repo,具有以下特性:

  • 支持Winddows 、Linux 、MacOS
  • 支持代码同步和本地映射
  • 扩展了针对工作空间的git命令
  • 保留了原git命令
  • 增加了更多常用开发工具,覆盖开发环境、代码检查、模板创建、开发调试、应用发布
但wing更多的是一个让开发团队保持一致开发环境的工具,从团队协作和工程开发的角度构建产品或项目,围绕设计,开发,测试,编译,发布等环节的开发活动,提升团队的开发效率。
开发计划


设计

开发空间(dev-space)

结构设计


范例


项目代码

以下为本项目的代码目录简要说明,工程比较简单便于大家快速上手。

使用规范

manifest配置

manifest是指定不同的开发人员获取不同的代码库,但整个代码结构保持一致。确保团队开发人员之间,服务端编译(如:jenkins)开发环境均一致。通过初始化命令来获取代码索引(如:wing init iofomo master xxx.xml)
manifest中的project对应的是服务端库,其格式如下。
  1. <project path="platform/doc" name="platform/doc.git" revision="master" >
  2.    
  3.                 <copyfile dest="build.py" src="build.py"/>
  4. </project>
复制代码
admin code group

通常admin.xml记录本项目或产品所有的库,不作为实际开发使用,项目或技术负责人使用此索引,可以看到整个团队开发每日详情,便于管理和代码审查。
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <manifest>
  3.     <remote name="origin" fetch=".."/>
  4.    
  5.     <default revision="master" remote="origin" sync-j="4"/>
  6.    
  7.     <project path="doc" name="project/iofomo/doc.git" />
  8.    
  9.     <project path="platform/doc" name="platform/doc.git" revision="master" />
  10.    
  11.     <project path="application/client" name="project/iofomo/client.git" />
  12.    
  13.     <project path="compt/common" name="platform/compt/common.git" />
  14.     <project path="compt/comm" name="platform/compt/comm.git" />
  15.     <project path="compt/uikit" name="platform/compt/uikit.git" />
  16.     <project path="compt/framework" name="platform/compt/framework.git" />
  17.    
  18.     <project path="pc/wing" name="platform/wing.git" />
  19.     <project path="pc/tinyui" name="platform/tinyui.git" />
  20.    
  21.     <project path="template/as" name="platform/template_as.git" revision="master" />
  22.     <project path="template/as_mts" name="platform/template_as_jni.git" revision="master" />
  23.     <project path="template/as_jar" name="platform/template_as_jar.git" revision="master" />
  24.     <project path="template/py" name="platform/template_py.git" revision="master" />
  25.    
  26.     <project path="server/fomosite" name="project/iofomo/fomosite.git" />
  27.     <project path="server/web" name="project/iofomo/web.git" />
  28.     <project path="server/vue" name="project/iofomo/vue.git" />
  29.    
  30.     <project path="test/tools" name="platform/tools.git" revision="master" />
  31.     <project path="test/testBot" name="project/iofomo/testBot.git" />
  32.    
  33.     <project path="build" name="project/iofomo/build">
  34.         
  35.     </project>
  36. </manifest>
复制代码
pc code group

这是pc组代码索引配置,里面仅包含公共库和pc相关的代码库。
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <manifest>
  3.     <remote name="origin" fetch=".."/>
  4.    
  5.     <default revision="master" remote="origin" sync-j="4"/>
  6.    
  7.     <project path="doc" name="project/iofomo/doc.git" />
  8.    
  9.     <project path="platform/doc" name="platform/doc.git" revision="master" />
  10.    
  11.     <project path="pc/wing" name="platform/wing.git" />
  12.     <project path="pc/tinyui" name="platform/tinyui.git" />
  13.    
  14.     <project path="test/tools" name="platform/tools.git" revision="master" />
  15.     <project path="test/testBot" name="project/iofomo/testBot.git" />
  16.    
  17.     <project path="build" name="project/iofomo/build">
  18.         
  19.     </project>
  20. </manifest>
复制代码
test code group

这是自动化测试开发组代码索引配置,里面仅包含公共库和test相关的代码库。
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <manifest>
  3.     <remote name="origin" fetch=".."/>
  4.    
  5.     <default revision="master" remote="origin" sync-j="4"/>
  6.    
  7.     <project path="doc" name="project/iofomo/doc.git" />
  8.    
  9.     <project path="platform/doc" name="platform/doc.git" revision="master" />
  10.    
  11.     <project path="test/tools" name="platform/tools.git" revision="master" />
  12.     <project path="test/testBot" name="project/iofomo/testBot.git" />
  13.    
  14.     <project path="build" name="project/iofomo/build">
  15.         
  16.     </project>
  17. </manifest>
复制代码
创建分支或标签

如通过命令wing -create b release_v1.0.0 master即基于master分支创建新的release_v1.0.0分支(标签命令同理)。则:

  • manifest所在的Git库会自动创建一个release_v1.0.0的分支。
  • manifest中所有的xml索引文件中default默认分支的值为release_v1.0.0
如test.xml在新的分支内容变更如下,公共库(即指定revision分支)保持不变:
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <manifest>
  3.     <remote name="origin" fetch=".."/>
  4.    
  5.     <default revision="master" remote="origin" sync-j="4"/>
  6.    
  7.     <project path="doc" name="project/iofomo/doc.git" />
  8.    
  9.     <project path="platform/doc" name="platform/doc.git" revision="master" />
  10.    
  11.     <project path="test/tools" name="platform/tools.git" revision="master" />
  12.     <project path="test/testBot" name="project/iofomo/testBot.git" />
  13.    
  14.     <project path="build" name="project/iofomo/build">
  15.         
  16.     </project>
  17. </manifest>
复制代码
快速开始

新手操作看 这里
安装
  1. $ python setup.py install
复制代码
配置环境变量

Windows:
将C:\Users\${user name}\bin添加至系统环境变量。
Linux/MacOS:
将~/bin配置为可执行全局目录。
创建工作空间

添加工作空间对应的代码git库服务地址,如:
  1. # 本地索引模式
  2. # wing -space add {space name} {git host} [manifest]
  3. # such as:
  4. $ wing -space add test git@github.com/iofomo
复制代码
获取代码
  1. $ mkdir test
  2. $ cd test
  3. # wing init {space name} {branch/tag} {manifest file}
  4. # such as:
  5. $ wing init test master admin.xml
复制代码
在当前目录下自动创建一个空的模板索引文件(.wing/manifests/admin.xml),需要添加要同步的代码库映射关系。
许可协议

本项目基于MIT许可协议,详情查看 许可协议 文档。
本项目和所有的工具都是MIT许可证下的开源工具,这意味着你可以完全访问源代码,并可以根据自己的需求进行修改。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表