首页 > 其他分享 >【wing】一款轻量快捷的团队开发工具

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

时间:2024-01-10 10:23:23浏览次数:27  
标签:xml 代码 manifest 开发工具 开发 test 轻量 wing

导航

说明

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

  • 支持WinddowsLinuxMacOS
  • 支持代码同步和本地映射
  • 扩展了针对工作空间的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 [email protected]/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许可证下的开源工具,这意味着你可以完全访问源代码,并可以根据自己的需求进行修改。

标签:xml,代码,manifest,开发工具,开发,test,轻量,wing
From: https://www.cnblogs.com/iofomo/p/17948669

相关文章

  • 界面组件DevExpress WPF v23.2 - 更轻量级的主题支持
    DevExpressWPFSubscription拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。DevExpressWPF控件日前正式发布了......
  • 【开源项目】轻量元数据管理解决方案——Marquez
    大家好,我是独孤风。又到了本周的开源项目推荐。最近推荐的元数据管理项目很多,但是很多元数据管理平台的功能复杂难用。那么有没有轻量一点的元数据管理项目呢?今天为大家推荐的开源项目,就是一个轻量级的元数据管理工具。虽然轻量,但是元数据的收集、展示、数据血缘等功能都是支......
  • QRCoder1.4.3生成二维码,不依赖System.Drawing,解决"未能找到类型或命名空间名QRCode","
    生成二维码1(简单)包引用:<PackageReferenceInclude="QRCoder"Version="1.4.3"/>usingQRCoder;///<summary>///生成二维码///</summary>///<paramname="data">escape后的数据,防止中文等特殊字符引起问题</param>///<par......
  • #星计划#OpenHarmony轻量系统-获取当地时间
    前言在轻量设备里面,我们常常需要获取本地时间,用于时间显示,log记录,帮助RTC芯片纠正时间等等。我们在之前设计了一个智慧时钟,需要使用到本地当前时间,因此本篇文章想在OpenHarmony上实现SNTP获取本地时间,并将此功能集成为一个模块,便于我们的主程序调用。环境OpenHarmony3.1润和his......
  • 简洁、轻量级的 Go API 框架
    本次分享的框架是「gin-api-mono」介绍gin-api-mono前先了解go-gin-apigo-gin-api这是一个基于Gin的API框架,它提供了WEB界面一键安装的方式,让你可以快速启动一个开箱即用的Go项目。无论你是否有项目经验,这个框架都适合作为练手项目使用(新手入门必备)。该框架采用了......
  • 敏捷研发管理流程及示例-Leangoo领歌|永久免费的敏捷开发工具
    ​ Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。Leangoo领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速创新。Leangoo领歌区别于传统项目管理软件,项目的需求......
  • 轻量对象存储 LighthouseCOS 用户实践征文
    产品使用攻略、上云技术实践,有奖征集,多重好礼等您带回家~存储桶一键挂载轻量应用服务器,简单易用,腾讯云轻量对象存储用户实践征文活动特惠:腾讯云轻量云专场特惠活动。投稿说明注册/登录腾讯云账号,腾讯云开发者社区PC端页面右上角点击写文章发布文章,作者可自荐上首页及分享文......
  • Docker搭建轻量个人文件分享服务-文件传输自由
    title:Docker搭建轻量个人文件分享服务-文件传输自由tags:[Docker,文件分享,下载,分享,网盘,PingvinShare,NAS]新版原文:https://query.carlzeng.top:3/appsearch?q=Docker搭建轻量个人文件分享服务-文件传输自由版权声明:本博客所有文章除特别声明外,均采用BY-NC-SA许可......
  • JAVA开发工具Eclipse和MyEclipse
    Eclipse和MyEclipse都是广泛使用的集成开发环境(IDE),主要用于Java语言的开发,但也有其他插件支持如C++和Python等其他计算机语言的开发。两者之间的主要区别在于Eclipse是开源的,而MyEclipse则是基于Eclipse的商业版本。    Eclipse:Eclipse最初是由IBM公司开发的替代商业软......
  • 【小沐学CAD】虚拟仿真开发工具:GL Studio(行业)
    1、简介https://disti.com/gl-studio/https://ww2.mathworks.cn/products/connections/product_detail/gl-studio.htmlDiSTI是HMI软件、虚拟驾驶舱、仪表、信息娱乐、集群显示器和嵌入式UI解决方案的领先提供商。GLStudio是HMI&UI/UXDesignSoftware。2、应用行业......