Skip to content

Commit df2e01e

Browse files
Merge pull request #243 from cleandart/release-react-5.3.0
Release react 5.3.0
2 parents f834a56 + 278d4e3 commit df2e01e

12 files changed

+699
-299
lines changed

.travis.yml

+1
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ before_script:
1818
script:
1919
- pub run build_runner test --release -- -p chrome
2020
- pub run build_runner test -- -p chrome
21+
- dart ./tool/run_consumer_tests.dart --orgName Workiva --repoName over_react --testCmd "pub run dart_dev test -P dartdevc"

CHANGELOG.md

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1+
## [5.3.0](https://github.com/cleandart/react-dart/compare/5.2.1...5.3.0)
2+
3+
- Unpin the react-redux JS dependency to allow versions `7.1.1` and higher.
4+
- Run over_react tests as part of the CI process to prevent another situation where changing JS dependencies
5+
regressed tightly coupled libs like `over_react_redux` (like the one that required the 5.2.1 hotfix).
6+
- [#242] Implement StrictMode Component
7+
18
## [5.2.1](https://github.com/cleandart/react-dart/compare/5.2.0...5.2.1)
29

3-
- Temporarily pin react-redux dependency to version `7.1.0` to prevent widespread test failures as a result of
10+
- Temporarily pin react-redux dependency to version `7.1.0` to prevent widespread test failures as a result of
411
[`Provider` being converted into a function component with hooks](https://github.com/reduxjs/react-redux/pull/1377).
512

613
## [5.2.0](https://github.com/cleandart/react-dart/compare/5.1.1...5.2.0)
@@ -31,7 +38,7 @@ __Full ReactJS 16.x Component Lifecycle Support__
3138
- <s>`componentWillUpdate`</s> => `getSnapshotBeforeUpdate` _(new)_
3239
- `componentDidCatch` / `getDerivedStateFromError` _(new)_
3340
- Adds support for [error boundaries](https://reactjs.org/docs/error-boundaries.html).
34-
41+
3542
__[Portals](https://reactjs.org/docs/portals.html)__
3643

3744
- _"Portals provide a first-class way to render children into a DOM node that exists outside the DOM hierarchy of the parent component."_
@@ -62,7 +69,7 @@ Pull in 4.9.2 changes that were accidentally reverted as part of 5.0.0.
6269
- The underlying `.js` files provided by this package are now ReactJS version 16.
6370
- Support for the new / updated lifecycle methods from ReactJS 16 [will be released in version `5.1.0`](https://github.com/cleandart/react-dart/milestone/1).
6471

65-
> [Full list of 5.0.0 Changes](https://github.com/cleandart/react-dart/milestone/2?closed=1)
72+
> [Full list of 5.0.0 Changes](https://github.com/cleandart/react-dart/milestone/2?closed=1)
6673
6774
> __[Full List of Breaking Changes](https://github.com/cleandart/react-dart/pull/224)__
6875
@@ -91,7 +98,7 @@ Pull in 4.9.2 changes that were accidentally reverted as part of 5.0.0.
9198
9299
- [#181]: Remove unnecessary zoning on event handlers that interferes with testing
93100
- Handlers triggered by real events will now always be called in the root zone.
94-
101+
95102
In most cases, handlers were already running in the root zone, so this should not affect behavior. See [#179] for more details.
96103
- When testing, you previous had to bind event handlers or callbacks triggered by event handlers to zones when using `expect` or `expectAsync`.
97104
```dart

lib/react_dom.js

+562-274
Large diffs are not rendered by default.

lib/react_dom.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/react_dom_prod.js

+13-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/react_dom_prod.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/react_with_react_dom_prod.js

+14-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/react_with_react_dom_prod.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

+12-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"react": "^16.12.0",
1616
"react-dom": "^16.12.0",
1717
"react-dom-factories": "^1.0.2",
18-
"react-redux": "=7.1.0",
18+
"react-redux": "^7.1.3",
1919
"react-test-renderer": "^16.12.0",
2020
"redux": "^4.0.4",
2121
"regenerator-runtime": "^0.13.3",

pubspec.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: react
2-
version: 5.2.1
2+
version: 5.3.0
33
authors:
44
- Samuel Hapák <[email protected]>
55
- Greg Littlefield <[email protected]>
@@ -16,6 +16,7 @@ dependencies:
1616
js: ^0.6.0
1717
meta: ^1.1.6
1818
dev_dependencies:
19+
args: ^1.5.1
1920
build_runner: ^1.6.5
2021
build_test: ^0.10.8
2122
build_web_compilers: ^2.1.4

tool/run_consumer_tests.dart

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import 'dart:io';
2+
3+
import 'package:args/args.dart';
4+
5+
Future<Null> main(List<String> args) async {
6+
final parser = new ArgParser()
7+
..addOption('repoName')
8+
..addOption('orgName')
9+
..addOption('testCmd')
10+
..addOption('packageName');
11+
final parsedArgs = parser.parse(args);
12+
13+
if (parsedArgs['repoName'] == null) {
14+
throw ProcessException('consumer_tests.dart', parsedArgs.arguments, '--repoName must be provided', -1);
15+
}
16+
17+
if (parsedArgs['orgName'] == null) {
18+
throw ProcessException('consumer_tests.dart', parsedArgs.arguments, '--orgName must be provided', -1);
19+
}
20+
21+
if (parsedArgs['testCmd'] == null) {
22+
throw ProcessException('consumer_tests.dart', parsedArgs.arguments, '--testCmd must be provided', -1);
23+
}
24+
25+
final String repoName = parsedArgs['repoName'];
26+
final String orgName = parsedArgs['orgName'];
27+
final String testCmdStr = parsedArgs['testCmd'];
28+
final String packageName = parsedArgs['packageName'] ?? parsedArgs['repoName'];
29+
30+
final reactGitSha = Process.runSync('git', ['rev-parse', 'HEAD']).stdout;
31+
print('Running $packageName tests while consuming react-dart at $reactGitSha ...\n');
32+
33+
final rootDir = Directory.current;
34+
final tmpDir = Directory('consumer_testing_temp');
35+
if (tmpDir.existsSync()) {
36+
tmpDir.deleteSync(recursive: true);
37+
}
38+
tmpDir.createSync(recursive: true);
39+
Directory.current = tmpDir;
40+
final gitCloneProcess = await Process.start(
41+
'git',
42+
[
43+
'clone',
44+
'https://github.com/$orgName/$repoName.git',
45+
'--progress',
46+
'--branch',
47+
'master',
48+
'--depth',
49+
'1',
50+
],
51+
mode: ProcessStartMode.inheritStdio);
52+
await gitCloneProcess.exitCode;
53+
Directory.current = Directory(repoName);
54+
final repoGitSha = Process.runSync('git', ['rev-parse', 'HEAD']).stdout;
55+
print('Successfully checked out $repoName master at $repoGitSha');
56+
final dependencyOverrides = '''
57+
dependency_overrides:
58+
react:
59+
git:
60+
url: https://github.com/cleandart/react-dart.git
61+
ref: $reactGitSha
62+
''';
63+
64+
final pubspec = File('pubspec.yaml');
65+
var pubspecSrc = pubspec.readAsStringSync();
66+
pubspecSrc = pubspecSrc.replaceFirst('dependencies:', '${dependencyOverrides}dependencies:');
67+
pubspec.writeAsStringSync(pubspecSrc);
68+
final pubGetProcess = await Process.start('pub', ['get'], mode: ProcessStartMode.inheritStdio);
69+
await pubGetProcess.exitCode;
70+
71+
final testArgs = testCmdStr.split(' ');
72+
final consumerTestProcess =
73+
await Process.start(testArgs[0], [...testArgs..removeAt(0)], mode: ProcessStartMode.inheritStdio);
74+
await consumerTestProcess.exitCode;
75+
76+
Directory.current = rootDir;
77+
if (tmpDir.existsSync()) {
78+
tmpDir.deleteSync(recursive: true);
79+
}
80+
}

0 commit comments

Comments
 (0)