【wing】一款轻量快捷的团队开发工具
导航
说明
wing
是一个代码同步管理工具类似repo
,具有以下特性:
- 支持
Winddows
、Linux
、MacOS
- 支持代码同步和本地映射
- 扩展了针对工作空间的
git
命令 - 保留了原
git
命令 - 增加了更多常用开发工具,覆盖开发环境、代码检查、模板创建、开发调试、应用发布
但wing
更多的是一个让开发团队保持一致开发环境的工具,从团队协作和工程开发的角度构建产品或项目,围绕设计,开发,测试,编译,发布等环节的开发活动,提升团队的开发效率。
开发计划
设计
开发空间(dev-space)
结构设计
范例
项目代码
以下为本项目的代码目录简要说明,工程比较简单便于大家快速上手。
使用规范
manifest配置
manifest
是指定不同的开发人员获取不同的代码库,但整个代码结构保持一致。确保团队开发人员之间,服务端编译(如:jenkins
)开发环境均一致。通过初始化命令来获取代码索引(如:wing init iofomo master xxx.xml
)
manifest
中的project
对应的是服务端库,其格式如下。
<!-- path:本地相对目录名称 -->
<!-- name:远程库相对地址 -->
<!-- revision:为指定的库分支或标签,未配置则使用默认 default 中的值,若已配置则在整体创建分支或标签时保持不变 -->
<project path="platform/doc" name="platform/doc.git" revision="master" >
<!-- 将该库中src文件导出到本地目录下 -->
<copyfile dest="build.py" src="build.py"/>
</project>
admin code group
通常admin.xml
记录本项目或产品所有的库,不作为实际开发使用,项目或技术负责人使用此索引,可以看到整个团队开发每日详情,便于管理和代码审查。
<?xml version='1.0' encoding='UTF-8'?>
<manifest>
<remote name="origin" fetch=".."/>
<!-- branch -->
<default revision="master" remote="origin" sync-j="4"/>
<!-- doc -->
<project path="doc" name="project/iofomo/doc.git" />
<!-- platform: always with master -->
<project path="platform/doc" name="platform/doc.git" revision="master" />
<!-- Application -->
<project path="application/client" name="project/iofomo/client.git" />
<!-- Component -->
<project path="compt/common" name="platform/compt/common.git" />
<project path="compt/comm" name="platform/compt/comm.git" />
<project path="compt/uikit" name="platform/compt/uikit.git" />
<project path="compt/framework" name="platform/compt/framework.git" />
<!-- PC: always with master -->
<project path="pc/wing" name="platform/wing.git" />
<project path="pc/tinyui" name="platform/tinyui.git" />
<!-- Template: always with master -->
<project path="template/as" name="platform/template_as.git" revision="master" />
<project path="template/as_mts" name="platform/template_as_jni.git" revision="master" />
<project path="template/as_jar" name="platform/template_as_jar.git" revision="master" />
<project path="template/py" name="platform/template_py.git" revision="master" />
<!-- server -->
<project path="server/fomosite" name="project/iofomo/fomosite.git" />
<project path="server/web" name="project/iofomo/web.git" />
<project path="server/vue" name="project/iofomo/vue.git" />
<!-- Test -->
<project path="test/tools" name="platform/tools.git" revision="master" />
<project path="test/testBot" name="project/iofomo/testBot.git" />
<!-- build -->
<project path="build" name="project/iofomo/build">
<!--<copyfile dest="build.py" src="build.py"/>-->
</project>
</manifest>
pc code group
这是pc
组代码索引配置,里面仅包含公共库和pc
相关的代码库。
<?xml version='1.0' encoding='UTF-8'?>
<manifest>
<remote name="origin" fetch=".."/>
<!-- branch -->
<default revision="master" remote="origin" sync-j="4"/>
<!-- doc -->
<project path="doc" name="project/iofomo/doc.git" />
<!-- platform: always with master -->
<project path="platform/doc" name="platform/doc.git" revision="master" />
<!-- PC: always with master -->
<project path="pc/wing" name="platform/wing.git" />
<project path="pc/tinyui" name="platform/tinyui.git" />
<!-- Test -->
<project path="test/tools" name="platform/tools.git" revision="master" />
<project path="test/testBot" name="project/iofomo/testBot.git" />
<!-- build -->
<project path="build" name="project/iofomo/build">
<!--<copyfile dest="build.py" src="build.py"/>-->
</project>
</manifest>
test code group
这是自动化测试开发组代码索引配置,里面仅包含公共库和test
相关的代码库。
<?xml version='1.0' encoding='UTF-8'?>
<manifest>
<remote name="origin" fetch=".."/>
<!-- branch -->
<default revision="master" remote="origin" sync-j="4"/>
<!-- doc -->
<project path="doc" name="project/iofomo/doc.git" />
<!-- platform: always with master -->
<project path="platform/doc" name="platform/doc.git" revision="master" />
<!-- Test -->
<project path="test/tools" name="platform/tools.git" revision="master" />
<project path="test/testBot" name="project/iofomo/testBot.git" />
<!-- build -->
<project path="build" name="project/iofomo/build">
<!--<copyfile dest="build.py" src="build.py"/>-->
</project>
</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
分支)保持不变:
<?xml version='1.0' encoding='UTF-8'?>
<manifest>
<remote name="origin" fetch=".."/>
<!-- branch -->
<default revision="release_v1.0.0" remote="origin" sync-j="4"/>
<!-- doc -->
<project path="doc" name="project/iofomo/doc.git" />
<!-- platform: always with master -->
<project path="platform/doc" name="platform/doc.git" revision="master" />
<!-- Test -->
<project path="test/tools" name="platform/tools.git" revision="master" />
<project path="test/testBot" name="project/iofomo/testBot.git" />
<!-- build -->
<project path="build" name="project/iofomo/build">
<!--<copyfile dest="build.py" src="build.py"/>-->
</project>
</manifest>
快速开始
新手操作看 这里
安装
$ python setup.py install
配置环境变量
Windows:
将C:\Users\${user name}\bin
添加至系统环境变量。
Linux/MacOS:
将~/bin
配置为可执行全局目录。
创建工作空间
添加工作空间对应的代码git
库服务地址,如:
# 本地索引模式
# wing -space add {space name} {git host} [manifest]
# such as:
$ wing -space add test git@github.com/iofomo
获取代码
$ mkdir test
$ cd test
# wing init {space name} {branch/tag} {manifest file}
# such as:
$ wing init test master admin.xml
在当前目录下自动创建一个空的模板索引文件(.wing/manifests/admin.xml
),需要添加要同步的代码库映射关系。
许可协议
本项目基于MIT
许可协议,详情查看 许可协议 文档。
本项目和所有的工具都是MIT许可证下的开源工具,这意味着你可以完全访问源代码,并可以根据自己的需求进行修改。
【wing】一款轻量快捷的团队开发工具的更多相关文章
- 推荐一款轻量小众却高效免费开源windows热键脚本语言Autohotkey
写在前面的话 Autohotkey是一款轻量小众但高效免费开源的windows热键脚本语言,游戏操纵.鼠标操作.键盘快捷重定义,快捷短语等等,只有你想不到,没有它做不到,神器中的神器呀,相见恨晚. 安 ...
- 五款轻量型bug管理工具横向测评
五款轻量型bug管理工具横向测评 最近正在使用的本地bug管理软件又出问题了,已经记不清这是第几次了,每次出现问题都要耗费大量的时间精力去网上寻找解决方案,劳心劳力.为了避免再次出现这样的情况,我决定 ...
- 10款无需编程的App DIY开发工具
10款无需编程的App DIY开发工具 你有一个很棒的创意但不会编程怎么办?外包.合伙开发还是从零学编程?这里提供另外一种方式--使用无需编程的App DIY开发工具.DIY开发工具不仅节省了开发时 ...
- 优秀工具推荐:两款很棒的 HTML5 游戏开发工具
HTML5 众多强大特性让我们不需要多么高深技术就能创建好玩的网页游戏,同时证明了开放的 Web 技术能与任何其他在游戏开发中使用的技术竞争.正如标题所说,这篇文章推荐的几款很棒 HTML5 游戏开发 ...
- Droplet——一款轻量的Golang应用层框架
Github地址 如标题所描述的,Droplet 是一个 轻量 的 中间层框架,何为中间层呢? 通常来说,我们的程序(注意这里我们仅仅讨论程序的范围,而非作为一个系统,因此这里不设计如 LB.Gate ...
- Wenaox 一款轻量性能好的微信小程序状态管理库
感慨一下!!! 从开始开发 wenaox 从开始到现在,,时不时更新一下,改一改 bug,却发现已经快 1 年了 orz 虽然很少人用 hhh,但偶尔也会有人提一些问题,我就知道还有人用的~ 感兴趣的 ...
- 5款Python程序员高频使用开发工具推荐
很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...
- 技术大众化--10款无需编程的App DIY开发工具
你有一个很棒的创意但不会编程怎么办?外包.合伙开发还是从零学编程?这里提供另外一种方式--使用无需编程的App DIY开发工具.DIY开发工具不仅节省了开发时间和资金,更为那些创意无限热爱应用的人提供 ...
- 8款替代Dreamweaver的开源网页开发工具
Adobe Dreamweaver虽然非常好用,但它并不是唯一一个能够设计.开发.发布精彩网站的Web开发集成环境.我们的开源世界里有很多非常棒的可以完全替代Dreamweaver的各种功能的优秀We ...
- Dzz任务板初版完成笔记-仿trello私有部署的一款轻量团队任务协作工具。
刚完成了第一个版本Dzz任务板的设计开发,记录下设计思路和完成情况. Dzz任务板是DzzOffice中的团队协作套件中的一款应用,它需要安装在DzzOffice中使用. 主界面中需要能够快速简单的创 ...
随机推荐
- ElasticSearch系列——查询、Python使用、Django/Flask集成、集群搭建,数据分片、位置坐标实现附近的人搜索
@ 目录 Elasticsearch之-查询 一 基本查询 1.1 match查询 1.2 term查询 1.3 terms查询 1.4 控制查询的返回数量(分页) 1.5 match_all 查询 ...
- 再谈http请求调用(Post与Get),项目研发的核心一环
支持.Net Core(2.0及以上)与.Net Framework(4.0及以上) [目录] 前言 Post请求 Get请求 与其它工具的比较 1[前言] http请求调用是开发中经常会用到的功能. ...
- Semantic Kernel .NET SDK 的 v1.0.0 Beta1 发布
介绍 Semantic Kernel (SK) 是一个开源的将大型语言模型(LLM)与流行的编程语言相结合的SDK,Microsoft将Semantic Kernel(简称SK)称为轻量级SDK,结合 ...
- NFT(数字藏品)热度没了?这玩意是机会还是泡沫?
感谢你阅读本文! 大家好,今天分享一下NFT(数字藏品)这个领域,虽然今天的NFT已经没有之前那么火热,不过市场上依旧还是有很多平台存在,有人离开,也有人不断进来,所以很有必要再分析一番. 需要注意的 ...
- Vue之自定义过滤器
使用Vue.filter('过滤器名称',方法); 1. <!DOCTYPE html> <html lang="en"> <head> < ...
- 每天5分钟复习OpenStack(六)CPU虚拟化<2>
OpenStack是 一个IAAS(基础设施即服务)因此免不了会与硬件打交道.下面我介绍下与CPU强关联的一些知识点.1 什么是超配 2 CPU的个数是怎么统计的 3 vCPU的隔离.绑定 1.超配 ...
- 鸿蒙极速入门(四)-通过登录Demo了解ArkTS
ArkTS是HarmonyOS优选的主力应用开发语言.ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集. ArkTS在TS的基础上主 ...
- NOI 2023 春季测试 游记
开坑,待填. upd: 摆,不想填,但还是来填坑了. \(Day -1\) 看板子,什么都不会.发现自己已经不会写十二月刷了一整个题单的线段树合并了,感慨了一下自己连鱼都不如的记忆力,不过反正春测不考 ...
- 如何在Excel中实现三联类模板?
本文由葡萄城技术团队原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 在一些报表打印应用场景中,会有类似于如下图所示的排版格式: 一般情况下 ...
- 宏任务和微任务,同步异步,promis,await执行顺序
本文作为EVENLOOP事件循环的延伸: 执行顺序: ------------循环---------- | | ...