Skip to content

Commit 586679d

Browse files
authored
chore(release): v2.0.0 (#432)
1 parent 3d3debc commit 586679d

File tree

5 files changed

+128
-8
lines changed

5 files changed

+128
-8
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ script:
1414
- npm test && codecov
1515
- npm run build
1616
after_success:
17-
- if [[ "$TRAVIS_BRANCH" == "next" ]] && [[ "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
17+
- if [[ "$TRAVIS_BRANCH" == "master" ]] && [[ "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
1818
./script/release.sh;
1919
./script/deploy.sh;
2020
fi

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "leancloud-storage",
3-
"version": "2.0.0-rc.0",
3+
"version": "2.0.0",
44
"homepage": "https://github.com/leancloud/javascript-sdk",
55
"authors": [
66
"LeanCloud <[email protected]>"

changelog.md

Lines changed: 123 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,122 @@
1+
# 2.0.0 (2017-01-09)
2+
### Highlight
3+
* **全面支持微信小程序**:包括文件存储在内的所有功能均已支持微信小程序,用户系统还增加了小程序内一键登录的 API。详见 [在微信小程序中使用 LeanCloud](https://leancloud.cn/docs/weapp.html)
4+
* **Promise first**:Promise 风格的异步 API 已被社区广泛接受,此前回调参数优先于其他参数的设计已过时,因此我们去掉了对 Backbone 回调风格参数的支持。
5+
* **支持对单次操作指定是否使用 masterKey**:此前使用 masterKey 是全局生效的,会导致无法充分利用 ACL 等内建的权限控制机制。此项改进将其生效范围细化到了单次操作。
6+
* **移除 Node.js 0.12 支持**:Node.js 0.12 LTS 已停止维护,请考虑 [升级 Node.js 版本](https://www.joyent.com/blog/upgrading-nodejs)
7+
8+
### Breaking Changes
9+
* 移除了 Node.js 0.12 的支持,请考虑 [升级 Node.js 版本](https://www.joyent.com/blog/upgrading-nodejs)
10+
* 移除了所有 Backbone 回调风格的参数,请使用 Promise 处理异步操作的结果与异常:
11+
<details>
12+
13+
```javascript
14+
// Backbone callback 回调风格的参数的用法
15+
object.save(null, {
16+
success: function(object) {},
17+
error: function(error, object) {},
18+
});
19+
20+
// 需要替换为
21+
object.save().then(
22+
function(object) {},
23+
function(error) {}
24+
);
25+
```
26+
27+
* `AV.Promise` 现在是一个满足 Promises/A+ 标准的实现,所有非标准的方法已被移除,所有非标准的行为已被修正。关于标准 Promise 的更多信息推荐阅读 [《JavaScript Promise 迷你书》](http://liubin.org/promises-book/)
28+
* `AV.Query` 中的大部分 API 启用了更加严格的参数检查。特别的,对于以下 API,当指定 value 的值为 `undefined` 时会抛出异常(之前会直接忽略这个条件或限制)
29+
30+
- 参数形如 `(key, value)` 类型的条件限制 API,如 `AV.Query#equalTo(key, value)`
31+
- `AV.Query#limit(value)`
32+
- `AV.Query#select(value)`
33+
34+
* `AV.Query#get` 方法现在尊重 Class 的 get 权限设置(之前检查的是 find 权限)
35+
36+
* `objectId``createdAt``updatedAt` 现在是只读字段,尝试 set 这些字段时 SDK 会抛出异常
37+
* `object.get('id')``object.set('id', '')` 现在将会正确的读、写数据表中的 `id` 字段(之前映射的是 `objectId`)。你现在依然可以使用 `object.id` 来访问数据的 `objectId`
38+
39+
* 如果你 extend 的 `AV.Object` 子类重写了 `validate` 方法,当属性无效时现在需要 throw 一个 Error(之前是 return 一个 Error)。相应的,`AV.Object#set` 方法如果 set 的值无效,需要通过 try catch 捕获异常(之前通过检查返回值是 false)
40+
<details>
41+
42+
```javascript
43+
// 之前的用法
44+
var Student = AV.Object.extend('Student', {
45+
validate: function(attibutes) {
46+
if (attributes.age < 0) return new Error('negative age set');
47+
}
48+
});
49+
var tom = new Student();
50+
if (tom.set('age', -1) === false) {
51+
console.error('something wrong');
52+
} else {
53+
tom.save();
54+
}
55+
56+
// 现在的用法
57+
var Student = AV.Object.extend('Student', {
58+
validate: function(attibutes) {
59+
if (attributes.age < 0) throw new Error('negative age set');
60+
}
61+
});
62+
var tom = new Student();
63+
try {
64+
tom.set('age', -1);
65+
} catch (error) {
66+
console.error(error.message);
67+
}
68+
tom.save();
69+
```
70+
71+
* 上传文件时不再额外地向文件的 metaData 中写入 mime_type,之前通过 metaData 获取 mime_type 的用法需要更新:
72+
<details>
73+
74+
```javascript
75+
// 之前的用法
76+
file.metaData('mime_type');
77+
78+
// 现在的用法
79+
file.get('mime_type');
80+
```
81+
82+
* 移除了 deprecated 的 API,包括:
83+
- `AV.Object#existed`
84+
- `AV.User.requestEmailVerfiy` (typo)
85+
- `AV.useAVCloudCN`
86+
- `AV.useAVCloudUS`
87+
- `AV._ajax`
88+
- `AV._request`
89+
90+
### Features
91+
* 支持微信小程序
92+
* 增加了 `AV.User.loginWithWeapp()``AV.User#linkWithWeapp()` ,支持在微信小程序中登录
93+
* 增加了 `AV.User#isAuthenticated()`,该方法会校验 sessionToken 的有效性, 废弃 `AV.User#authenticated()`
94+
* 绝大部分会发起网络请求的 API(如保存一个对象)支持通过 `option.useMasterKey` 参数指定该次操作是否要使用 masterKey,设置了该选项的操作会忽略全局的 useMasterKey 设置
95+
* 去掉了 `Object.destroyAll` 方法要求所有删除的对象属于同一个 Class 的限制
96+
* `Object.register()` 方法增加了第二个参数允许指定所注册的 Class 的名字,详情参见 [Object.register - API 文档](https://leancloud.github.io/javascript-sdk/docs/AV.Object.html#.register)
97+
* 上传文件的 mime_type 现在由服务端进行判断从而支持更多的文件类型
98+
* 增加了 sourcemaps
99+
100+
### Bug Fixes
101+
* 修复了在进行以下操作时可能出现 `URI too long` 异常的问题
102+
* 使用 `Query#containsAll``Qeruy#containedIn``Query#notContainedIn` 方法时传入了一个大数组
103+
* 使用 `Object.destroyAll` 方法批量删除大量对象
104+
* 修复了 `Object.set(key, value)` 方法可能会改变(mutate)`value` 的问题
105+
* 修复了查询结果中 File 没有被正确解析的问题
106+
* 修复了在 React Native 中使用 `AV.setProduction` 方法会导致后续操作引起 crash 的问题
107+
* 修复了在 React Native 上传大文件可能出现 `invalid multipart format: multipart: message too large` 异常的问题
108+
* 修复了 `AV.Insight.startJob` 方法中 saveAs 参数未生效的问题
109+
* 修复了抛出 code == -1 的异常时 error.message 可能缺失的问题
110+
* 修复了应用内社交模块的方法在未登录状态下传入了 sessionToken 仍然抛未登录异常的问题
111+
112+
测试版本的更新日志:
113+
<details>
114+
115+
## 2.0.0 (2017-01-09)
116+
### Bug Fixes
117+
* 修复了在 React Native 及小程序中上传大文件可能出现 `invalid multipart format: multipart: message too large` 异常的问题
118+
* 修复了某些情况下上传的文件 mime_type 不正确的问题
119+
1120
# 2.0.0-rc.0 (2016-12-30)
2121
### Breaking Changes
3122
* 移除了 Node.js 0.12 的支持,请考虑 [升级 Node.js 版本](https://www.joyent.com/blog/upgrading-nodejs)
@@ -52,7 +171,7 @@
52171
## 2.0.0-beta.3 (2016-11-8)
53172
### Bug Fixes
54173
* 修复了在微信小程序真机上运行时抛 `ReferenceError: Can't find variable: FormData` 异常的问题
55-
* 修复了 2.0.0 中引入的 `AV.Query#select``AV.Query#include` 不支持多个参数的问题
174+
* 修复了 2.0.0-beta.0 中引入的 `AV.Query#select``AV.Query#include` 不支持多个参数的问题
56175

57176
## 2.0.0-beta.2 (2016-10-20)
58177
### Features
@@ -64,7 +183,7 @@
64183

65184
# 2.0.0-beta.0 (2016-9-29)
66185
### Breaking Changes
67-
* 移除了所有 Backbone callbacks 回调风格的参数,请使用 Promise 处理异步操作的结果
186+
* 移除了所有 Backbone 回调风格的参数,请使用 Promise 处理异步操作的结果与异常
68187
<details>
69188

70189
```javascript
@@ -121,7 +240,6 @@
121240
- `AV.Query#limit(value)`
122241
- `AV.Query#select(value)`
123242

124-
125243
* `AV.Query#get` 方法现在尊重 Class 的 get 权限设置(之前检查的是 find 权限)
126244

127245
* (intarnal) `AV.User#_linkWith` 的第二个参数中的 `options.authData` 字段提升为第二个参数
@@ -156,6 +274,8 @@
156274
* 对象存储功能支持微信小程序
157275
* 绝大部分会发起网络请求的 API(如保存一个对象)支持通过 `option.useMasterKey` 参数指定该次操作是否要使用 masterKey,设置了该选项的操作会忽略全局的 useMasterKey 设置
158276

277+
</details>
278+
159279
## 1.4.0 (2016-9-1)
160280
相比于 v1.4.0-beta.0:
161281
* 修复了 `AV.File#save` 方法的 `onprogress` 参数失效的问题

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "leancloud-storage",
3-
"version": "2.0.0-rc.0",
3+
"version": "2.0.0",
44
"main": "./dist/node/index.js",
55
"description": "LeanCloud JavaScript SDK.",
66
"repository": {
@@ -50,7 +50,7 @@
5050
"should": "^11.1.0",
5151
"uglify-js": "git+https://github.com/Swaagie/UglifyJS2.git#fcb4f2f21584dc5b21af4c10e17733e1686135e4",
5252
"weapp-polyfill": "github:leancloud/weapp-polyfill#b3fb53b",
53-
"webpack": "^2.1.0-beta.27"
53+
"webpack": "^2.2.0-rc.3"
5454
},
5555
"license": "MIT",
5656
"author": {

src/version.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
module.exports = '2.0.0-rc.0';
1+
module.exports = '2.0.0';

0 commit comments

Comments
 (0)