# Matting Editor
超级好用的抠图编辑器

## 快速上手
介绍上手抠图编辑器

### 先决条件

使用淘宝 npm 镜像，安装依赖前请先安装 `nrm` 并切换到淘宝镜像

```bash
npm i -g nrm
nrm use taobao
```

> 开发模式使用的是测试环境接口，请确保处于公司局域网内或者连接到公司的 VPN

### 安装与启动

**安装依赖**

```bash
npm install
```

**进入开发环境**

```bash
npm run dev
```

然后访问 http://localhost:8080 ，如果 8080 端口已被占用，会自动顺延至 8081 端口，以此类推

## 开发流程

编辑器的开发没有使用 `master` 分支，取而代之的是各个版本主分支，目前存在的版本主分支有：

- `v0.2` 不再开发新功能，仅维护已有功能
- `v1.x` 当前迭代分支

**先决条件：**

- 不得直接 `push` 代码到版本分支上，所有合并均需要走 MR
- 一个分支除特殊情况外，尽量保证只有一个人在改动
- commit 信息需要符合 [Conventional Commits](https://www.conventionalcommits.org/zh/v1.0.0-beta.2/) 规范
- 文档和注释需符合 [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines) 规范
- 发布 MR 时需要在标题简要说明本次改动，并在说明中详细列出每一项改动

**开发流程：**

1. 从版本主分支切出相关分支
2. 每次版本发布的形式为 一个版本分支 + 多个特性分支 + 多个修复分支
    1. 版本分支命名规范 `versions/花名_版本` 例如 `versions/douding_1.2.1`
    2. 修复分支命名规范 `b_花名_修复项简称_日期` 例如 `b_douding_network_190101`
    3. 特性分支命名规范 `f_花名_特性简称_日期` 例如 `f_douding_pen_190101`
3. 保证 `npm lint` 正常
4. 每个版本需要有一个版本负责人，特性分支和修复分支开发完后需要合并到版本分支内
5. 切换到版本分支执行 `npm run changelog` 并更新 `CHANGELOG.md` 文件，并且根据需要同步更新其它相关文档
6. 发布 MR 并@相关同学 review

## 发布流程

> 版本号遵循 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/) 规范

1. 切换到版本主分支拉取最新代码
2. 执行 `npm run release`
2. 执行 `nrm use npm && npm publish && nrm use taobao`
