Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
8654e4ae
Unverified
Commit
8654e4ae
authored
Apr 24, 2021
by
Christopher Fujino
Committed by
GitHub
Apr 24, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
begin migrating //flutter/dev/tools to null-safety (#80834)
parent
e5414695
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
188 additions
and
149 deletions
+188
-149
conductor.dart
dev/tools/bin/conductor.dart
+2
-0
dartdoc.dart
dev/tools/dartdoc.dart
+2
-0
dartdoc_checker.dart
dev/tools/dartdoc_checker.dart
+2
-0
find_engine_commit.dart
dev/tools/find_engine_commit.dart
+1
-1
java_and_objc_doc.dart
dev/tools/java_and_objc_doc.dart
+3
-3
clean.dart
dev/tools/lib/clean.dart
+2
-0
codesign.dart
dev/tools/lib/codesign.dart
+14
-15
git.dart
dev/tools/lib/git.dart
+3
-5
globals.dart
dev/tools/lib/globals.dart
+8
-8
repository.dart
dev/tools/lib/repository.dart
+42
-44
roll_dev.dart
dev/tools/lib/roll_dev.dart
+9
-9
start.dart
dev/tools/lib/start.dart
+2
-0
state.dart
dev/tools/lib/state.dart
+2
-0
status.dart
dev/tools/lib/status.dart
+2
-0
stdio.dart
dev/tools/lib/stdio.dart
+5
-5
version.dart
dev/tools/lib/version.dart
+27
-25
encode_kn_arb_files.dart
dev/tools/localization/bin/encode_kn_arb_files.dart
+2
-0
gen_date_localizations.dart
dev/tools/localization/bin/gen_date_localizations.dart
+2
-0
gen_localizations.dart
dev/tools/localization/bin/gen_localizations.dart
+2
-0
gen_missing_localizations.dart
dev/tools/localization/bin/gen_missing_localizations.dart
+2
-0
gen_cupertino_localizations.dart
dev/tools/localization/gen_cupertino_localizations.dart
+2
-0
gen_material_localizations.dart
dev/tools/localization/gen_material_localizations.dart
+2
-0
localizations_utils.dart
dev/tools/localization/localizations_utils.dart
+2
-0
localizations_validator.dart
dev/tools/localization/localizations_validator.dart
+2
-0
mega_gallery.dart
dev/tools/mega_gallery.dart
+2
-0
pubspec.yaml
dev/tools/pubspec.yaml
+1
-1
clean_test.dart
dev/tools/test/clean_test.dart
+2
-0
codesign_test.dart
dev/tools/test/codesign_test.dart
+11
-12
common.dart
dev/tools/test/common.dart
+16
-13
roll_dev_integration_test.dart
dev/tools/test/roll_dev_integration_test.dart
+8
-8
roll_dev_test.dart
dev/tools/test/roll_dev_test.dart
+2
-0
start_test.dart
dev/tools/test/start_test.dart
+2
-0
update_icons.dart
dev/tools/update_icons.dart
+2
-0
No files found.
dev/tools/bin/conductor.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
// See: https://github.com/flutter/flutter/wiki/Release-process
import
'dart:io'
as
io
;
...
...
dev/tools/dartdoc.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'dart:convert'
;
import
'dart:io'
;
...
...
dev/tools/dartdoc_checker.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'dart:io'
;
import
'package:path/path.dart'
as
path
;
...
...
dev/tools/find_engine_commit.dart
View file @
8654e4ae
...
...
@@ -29,7 +29,7 @@ Future<void> main(List<String> args) async {
_validate
(
args
);
await
_fetchUpstream
();
await
_fetchUpstream
(
engineRepo
);
String
flutterRevision
;
String
?
flutterRevision
;
await
for
(
final
FlutterEngineRevision
revision
in
_logEngineVersions
())
{
if
(!
await
containsRevision
(
args
[
0
],
revision
.
engineRevision
))
{
if
(
flutterRevision
==
null
)
{
...
...
dev/tools/java_and_objc_doc.dart
View file @
8654e4ae
...
...
@@ -25,8 +25,8 @@ Future<void> main(List<String> args) async {
/// Fetches the zip archive at the specified url.
///
/// Returns null if the archive fails to download after [maxTries] attempts.
Future
<
Archive
>
fetchArchive
(
String
url
,
int
maxTries
)
async
{
List
<
int
>
responseBytes
;
Future
<
Archive
?
>
fetchArchive
(
String
url
,
int
maxTries
)
async
{
List
<
int
>
?
responseBytes
;
for
(
int
i
=
0
;
i
<
maxTries
;
i
++)
{
final
http
.
Response
response
=
await
http
.
get
(
Uri
.
parse
(
url
));
if
(
response
.
statusCode
==
200
)
{
...
...
@@ -45,7 +45,7 @@ Future<Archive> fetchArchive(String url, int maxTries) async {
Future
<
void
>
generateDocs
(
String
url
,
String
docName
,
String
checkFile
)
async
{
const
int
maxTries
=
5
;
final
Archive
archive
=
await
fetchArchive
(
url
,
maxTries
);
final
Archive
?
archive
=
await
fetchArchive
(
url
,
maxTries
);
if
(
archive
==
null
)
{
stderr
.
writeln
(
'Failed to fetch zip archive from:
$url
after
$maxTries
attempts. Giving up.'
);
exit
(
1
);
...
...
dev/tools/lib/clean.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'package:args/command_runner.dart'
;
import
'package:file/file.dart'
;
import
'package:meta/meta.dart'
;
...
...
dev/tools/lib/codesign.dart
View file @
8654e4ae
...
...
@@ -6,7 +6,7 @@ import 'dart:io' as io;
import
'package:args/command_runner.dart'
;
import
'package:file/file.dart'
;
import
'package:meta/meta.dart'
;
import
'package:meta/meta.dart'
show
visibleForTesting
;
import
'package:platform/platform.dart'
;
import
'package:process/process.dart'
;
...
...
@@ -31,11 +31,10 @@ const String kUpstream = 'upstream';
/// Command to codesign and verify the signatures of cached binaries.
class
CodesignCommand
extends
Command
<
void
>
{
CodesignCommand
({
@required
this
.
checkouts
,
@required
this
.
flutterRoot
,
FrameworkRepository
framework
,
})
:
assert
(
flutterRoot
!=
null
),
fileSystem
=
checkouts
.
fileSystem
,
required
this
.
checkouts
,
required
this
.
flutterRoot
,
FrameworkRepository
?
framework
,
})
:
fileSystem
=
checkouts
.
fileSystem
,
platform
=
checkouts
.
platform
,
stdio
=
checkouts
.
stdio
,
processManager
=
checkouts
.
processManager
{
...
...
@@ -74,7 +73,7 @@ class CodesignCommand extends Command<void> {
/// Root directory of the Flutter repository.
final
Directory
flutterRoot
;
FrameworkRepository
_framework
;
FrameworkRepository
?
_framework
;
FrameworkRepository
get
framework
{
return
_framework
??=
FrameworkRepository
.
localRepoAsUpstream
(
checkouts
,
...
...
@@ -97,21 +96,21 @@ class CodesignCommand extends Command<void> {
'"
${platform.operatingSystem}
"'
);
}
if
(
argResults
[
'verify'
]
as
bool
!=
true
)
{
if
(
argResults
!
[
'verify'
]
as
bool
!=
true
)
{
throw
ConductorException
(
'Sorry, but codesigning is not implemented yet. Please pass the '
'--
$kVerify
flag to verify signatures.'
);
}
String
revision
;
if
(
argResults
.
wasParsed
(
kRevision
))
{
if
(
argResults
!
.
wasParsed
(
kRevision
))
{
stdio
.
printError
(
'Warning! When providing an arbitrary revision, the contents of the cache may not'
);
stdio
.
printError
(
'match the expected binaries in the conductor tool. It is preferred to check out'
);
stdio
.
printError
(
'the desired revision and run that version of the conductor.
\n
'
);
revision
=
argResults
[
kRevision
]
as
String
;
revision
=
argResults
!
[
kRevision
]
as
String
;
}
else
{
revision
=
(
processManager
.
runSync
(
<
String
>[
'git'
,
'rev-parse'
,
'HEAD'
],
...
...
@@ -127,7 +126,7 @@ class CodesignCommand extends Command<void> {
framework
.
runFlutter
(<
String
>[
'precache'
,
'--android'
,
'--ios'
,
'--macos'
]);
verifyExist
();
if
(
argResults
[
kSignatures
]
as
bool
)
{
if
(
argResults
!
[
kSignatures
]
as
bool
)
{
verifySignatures
();
}
}
...
...
@@ -319,16 +318,16 @@ class CodesignCommand extends Command<void> {
}
stdio
.
printStatus
(
'Verified that binaries for commit
${argResults[kRevision] as String}
are codesigned and have '
'Verified that binaries for commit
${argResults
!
[kRevision] as String}
are codesigned and have '
'expected entitlements.'
);
}
List
<
String
>
_allBinaryPaths
;
List
<
String
>
?
_allBinaryPaths
;
/// Find every binary file in the given [rootDirectory].
List
<
String
>
findBinaryPaths
(
String
rootDirectory
)
{
if
(
_allBinaryPaths
!=
null
)
{
return
_allBinaryPaths
;
return
_allBinaryPaths
!
;
}
final
io
.
ProcessResult
result
=
processManager
.
runSync
(
<
String
>[
...
...
@@ -343,7 +342,7 @@ class CodesignCommand extends Command<void> {
.
where
((
String
s
)
=>
s
.
isNotEmpty
)
.
toList
();
_allBinaryPaths
=
allFiles
.
where
(
isBinary
).
toList
();
return
_allBinaryPaths
;
return
_allBinaryPaths
!
;
}
/// Check mime-type of file at [filePath] to determine if it is binary.
...
...
dev/tools/lib/git.dart
View file @
8654e4ae
...
...
@@ -4,7 +4,6 @@
import
'dart:io'
;
import
'package:meta/meta.dart'
;
import
'package:process/process.dart'
;
import
'./globals.dart'
;
...
...
@@ -18,7 +17,7 @@ class Git {
String
getOutput
(
List
<
String
>
args
,
String
explanation
,
{
@
required
String
workingDirectory
,
required
String
workingDirectory
,
bool
allowFailures
=
false
,
})
{
final
ProcessResult
result
=
_run
(
args
,
workingDirectory
);
...
...
@@ -26,14 +25,13 @@ class Git {
return
stdoutToString
(
result
.
stdout
);
}
_reportFailureAndExit
(
args
,
workingDirectory
,
result
,
explanation
);
return
null
;
// for the analyzer's sake
}
int
run
(
List
<
String
>
args
,
String
explanation
,
{
bool
allowNonZeroExitCode
=
false
,
@
required
String
workingDirectory
,
required
String
workingDirectory
,
})
{
final
ProcessResult
result
=
_run
(
args
,
workingDirectory
);
if
(
result
.
exitCode
!=
0
&&
!
allowNonZeroExitCode
)
{
...
...
@@ -50,7 +48,7 @@ class Git {
);
}
void
_reportFailureAndExit
(
Never
_reportFailureAndExit
(
List
<
String
>
args
,
String
workingDirectory
,
ProcessResult
result
,
...
...
dev/tools/lib/globals.dart
View file @
8654e4ae
...
...
@@ -39,10 +39,10 @@ class ConductorException implements Exception {
String
toString
()
=>
'Exception:
$message
'
;
}
Directory
_flutterRoot
;
Directory
?
_flutterRoot
;
Directory
get
localFlutterRoot
{
if
(
_flutterRoot
!=
null
)
{
return
_flutterRoot
;
return
_flutterRoot
!
;
}
String
filePath
;
const
FileSystem
fileSystem
=
LocalFileSystem
();
...
...
@@ -54,14 +54,14 @@ Directory get localFlutterRoot {
r'(file:\/\/[^"]*[/\\]dev\/tools[/\\][^"]+\.dart)'
,
multiLine:
true
,
);
final
Match
match
=
final
Match
?
match
=
pattern
.
firstMatch
(
Uri
.
decodeFull
(
platform
.
script
.
path
));
if
(
match
==
null
)
{
throw
Exception
(
'Cannot determine path of script!
\n
${platform.script.path}
'
,
);
}
filePath
=
Uri
.
parse
(
match
.
group
(
1
)).
path
.
replaceAll
(
r'%20'
,
' '
);
filePath
=
Uri
.
parse
(
match
.
group
(
1
)
!
).
path
.
replaceAll
(
r'%20'
,
' '
);
}
else
{
filePath
=
platform
.
script
.
toFilePath
();
}
...
...
@@ -74,7 +74,7 @@ Directory get localFlutterRoot {
),
);
_flutterRoot
=
fileSystem
.
directory
(
checkoutsDirname
);
return
_flutterRoot
;
return
_flutterRoot
!
;
}
bool
assertsEnabled
(
)
{
...
...
@@ -102,9 +102,9 @@ String getValueFromEnvOrArgs(
)
{
final
String
envName
=
fromArgToEnvName
(
name
);
if
(
env
[
envName
]
!=
null
)
{
return
env
[
envName
];
return
env
[
envName
]
!
;
}
final
String
argValue
=
argResults
[
name
]
as
String
;
final
String
?
argValue
=
argResults
[
name
]
as
String
?
;
if
(
argValue
!=
null
)
{
return
argValue
;
}
...
...
@@ -130,7 +130,7 @@ List<String> getValuesFromEnvOrArgs(
)
{
final
String
envName
=
fromArgToEnvName
(
name
);
if
(
env
[
envName
]
!=
null
&&
env
[
envName
]
!=
''
)
{
return
env
[
envName
].
split
(
','
);
return
env
[
envName
]
!
.
split
(
','
);
}
final
List
<
String
>
argValues
=
argResults
[
name
]
as
List
<
String
>;
if
(
argValues
!=
null
)
{
...
...
dev/tools/lib/repository.dart
View file @
8654e4ae
...
...
@@ -23,8 +23,8 @@ enum RemoteName {
class
Remote
{
const
Remote
({
@
required
RemoteName
name
,
@
required
this
.
url
,
required
RemoteName
name
,
required
this
.
url
,
})
:
_name
=
name
;
final
RemoteName
_name
;
...
...
@@ -37,7 +37,6 @@ class Remote {
case
RemoteName
.
mirror
:
return
'mirror'
;
}
throw
ConductorException
(
'Invalid value of _name:
$_name
'
);
// For analyzer
}
/// The URL of the remote.
...
...
@@ -47,13 +46,13 @@ class Remote {
/// A source code repository.
abstract
class
Repository
{
Repository
({
@
required
this
.
name
,
@
required
this
.
fetchRemote
,
@
required
this
.
processManager
,
@
required
this
.
stdio
,
@
required
this
.
platform
,
@
required
this
.
fileSystem
,
@
required
this
.
parentDirectory
,
required
this
.
name
,
required
this
.
fetchRemote
,
required
this
.
processManager
,
required
this
.
stdio
,
required
this
.
platform
,
required
this
.
fileSystem
,
required
this
.
parentDirectory
,
this
.
initialRef
,
this
.
localUpstream
=
false
,
this
.
useExistingCheckout
=
false
,
...
...
@@ -69,10 +68,10 @@ abstract class Repository {
///
/// This value can be null, in which case attempting to publish will lead to
/// a [ConductorException].
final
Remote
pushRemote
;
final
Remote
?
pushRemote
;
/// The initial ref (branch or commit name) to check out.
final
String
initialRef
;
final
String
?
initialRef
;
final
Git
git
;
final
ProcessManager
processManager
;
final
Stdio
stdio
;
...
...
@@ -84,7 +83,7 @@ abstract class Repository {
/// If the repository will be used as an upstream for a test repo.
final
bool
localUpstream
;
Directory
_checkoutDirectory
;
Directory
?
_checkoutDirectory
;
/// Directory for the repository checkout.
///
...
...
@@ -92,23 +91,23 @@ abstract class Repository {
/// cloned on the filesystem until this getter is accessed.
Directory
get
checkoutDirectory
{
if
(
_checkoutDirectory
!=
null
)
{
return
_checkoutDirectory
;
return
_checkoutDirectory
!
;
}
_checkoutDirectory
=
parentDirectory
.
childDirectory
(
name
);
lazilyInitialize
();
return
_checkoutDirectory
;
lazilyInitialize
(
_checkoutDirectory
!
);
return
_checkoutDirectory
!
;
}
/// Ensure the repository is cloned to disk and initialized with proper state.
void
lazilyInitialize
()
{
if
(!
useExistingCheckout
&&
_
checkoutDirectory
.
existsSync
())
{
stdio
.
printTrace
(
'Deleting
$name
from
${
_
checkoutDirectory.path}
...'
);
_
checkoutDirectory
.
deleteSync
(
recursive:
true
);
void
lazilyInitialize
(
Directory
checkoutDirectory
)
{
if
(!
useExistingCheckout
&&
checkoutDirectory
.
existsSync
())
{
stdio
.
printTrace
(
'Deleting
$name
from
${checkoutDirectory.path}
...'
);
checkoutDirectory
.
deleteSync
(
recursive:
true
);
}
if
(!
_
checkoutDirectory
.
existsSync
())
{
if
(!
checkoutDirectory
.
existsSync
())
{
stdio
.
printTrace
(
'Cloning
$name
from
${fetchRemote.url}
to
${
_
checkoutDirectory.path}
...'
,
'Cloning
$name
from
${fetchRemote.url}
to
${checkoutDirectory.path}
...'
,
);
git
.
run
(
<
String
>[
...
...
@@ -117,21 +116,21 @@ abstract class Repository {
fetchRemote
.
name
,
'--'
,
fetchRemote
.
url
,
_
checkoutDirectory
.
path
checkoutDirectory
.
path
],
'Cloning
$name
repo'
,
workingDirectory:
parentDirectory
.
path
,
);
if
(
pushRemote
!=
null
)
{
git
.
run
(
<
String
>[
'remote'
,
'add'
,
pushRemote
.
name
,
pushRemote
.
url
],
'Adding remote
${pushRemote
.url}
as
${pushRemote
.name}
'
,
workingDirectory:
_
checkoutDirectory
.
path
,
<
String
>[
'remote'
,
'add'
,
pushRemote
!.
name
,
pushRemote
!
.
url
],
'Adding remote
${pushRemote
!.url}
as
${pushRemote!
.name}
'
,
workingDirectory:
checkoutDirectory
.
path
,
);
git
.
run
(
<
String
>[
'fetch'
,
pushRemote
.
name
],
'Fetching git remote
${pushRemote.name}
'
,
workingDirectory:
_
checkoutDirectory
.
path
,
<
String
>[
'fetch'
,
pushRemote
!
.
name
],
'Fetching git remote
${pushRemote
!
.name}
'
,
workingDirectory:
checkoutDirectory
.
path
,
);
}
if
(
localUpstream
)
{
...
...
@@ -141,7 +140,7 @@ abstract class Repository {
git
.
run
(
<
String
>[
'checkout'
,
channel
,
'--'
],
'check out branch
$channel
locally'
,
workingDirectory:
_
checkoutDirectory
.
path
,
workingDirectory:
checkoutDirectory
.
path
,
);
}
}
...
...
@@ -151,7 +150,7 @@ abstract class Repository {
git
.
run
(
<
String
>[
'checkout'
,
'
${fetchRemote.name}
/
$initialRef
'
],
'Checking out initialRef
$initialRef
'
,
workingDirectory:
_
checkoutDirectory
.
path
,
workingDirectory:
checkoutDirectory
.
path
,
);
}
final
String
revision
=
reverseParse
(
'HEAD'
);
...
...
@@ -404,8 +403,8 @@ class FrameworkRepository extends Repository {
name:
RemoteName
.
upstream
,
url:
FrameworkRepository
.
defaultUpstream
),
bool
localUpstream
=
false
,
bool
useExistingCheckout
=
false
,
String
initialRef
,
Remote
pushRemote
,
String
?
initialRef
,
Remote
?
pushRemote
,
})
:
super
(
name:
name
,
fetchRemote:
fetchRemote
,
...
...
@@ -428,7 +427,7 @@ class FrameworkRepository extends Repository {
Checkouts
checkouts
,
{
String
name
=
'framework'
,
bool
useExistingCheckout
=
false
,
@
required
String
upstreamPath
,
required
String
upstreamPath
,
})
{
return
FrameworkRepository
(
checkouts
,
...
...
@@ -455,7 +454,7 @@ class FrameworkRepository extends Repository {
);
@override
Repository
cloneRepository
(
String
cloneName
)
{
Repository
cloneRepository
(
String
?
cloneName
)
{
assert
(
localUpstream
);
cloneName
??=
'clone-of-
$name
'
;
return
FrameworkRepository
(
...
...
@@ -529,7 +528,7 @@ class EngineRepository extends Repository {
name:
RemoteName
.
upstream
,
url:
EngineRepository
.
defaultUpstream
),
bool
localUpstream
=
false
,
bool
useExistingCheckout
=
false
,
Remote
pushRemote
,
Remote
?
pushRemote
,
})
:
super
(
name:
name
,
fetchRemote:
fetchRemote
,
...
...
@@ -550,7 +549,7 @@ class EngineRepository extends Repository {
static
const
String
defaultBranch
=
'master'
;
@override
Repository
cloneRepository
(
String
cloneName
)
{
Repository
cloneRepository
(
String
?
cloneName
)
{
assert
(
localUpstream
);
cloneName
??=
'clone-of-
$name
'
;
return
EngineRepository
(
...
...
@@ -571,14 +570,13 @@ enum RepositoryType {
class
Checkouts
{
Checkouts
({
@
required
this
.
fileSystem
,
@
required
this
.
platform
,
@
required
this
.
processManager
,
@
required
this
.
stdio
,
@
required
Directory
parentDirectory
,
required
this
.
fileSystem
,
required
this
.
platform
,
required
this
.
processManager
,
required
this
.
stdio
,
required
Directory
parentDirectory
,
String
directoryName
=
'flutter_conductor_checkouts'
,
})
:
assert
(
parentDirectory
!=
null
),
directory
=
parentDirectory
.
childDirectory
(
directoryName
)
{
})
:
directory
=
parentDirectory
.
childDirectory
(
directoryName
)
{
if
(!
directory
.
existsSync
())
{
directory
.
createSync
(
recursive:
true
);
}
...
...
dev/tools/lib/roll_dev.dart
View file @
8654e4ae
...
...
@@ -23,10 +23,10 @@ const String kSkipTagging = 'skip-tagging';
/// Create a new dev release without cherry picks.
class
RollDevCommand
extends
Command
<
void
>
{
RollDevCommand
({
@
required
this
.
checkouts
,
@
required
this
.
fileSystem
,
@
required
this
.
platform
,
@
required
this
.
stdio
,
required
this
.
checkouts
,
required
this
.
fileSystem
,
required
this
.
platform
,
required
this
.
stdio
,
})
{
argParser
.
addOption
(
kIncrement
,
...
...
@@ -92,7 +92,7 @@ class RollDevCommand extends Command<void> {
@override
void
run
()
{
rollDev
(
argResults:
argResults
,
argResults:
argResults
!
,
repository:
FrameworkRepository
(
checkouts
),
stdio:
stdio
,
usage:
argParser
.
usage
,
...
...
@@ -105,10 +105,10 @@ class RollDevCommand extends Command<void> {
/// Returns true if publishing was successful, else false.
@visibleForTesting
bool
rollDev
(
{
@
required
String
usage
,
@
required
ArgResults
argResults
,
@
required
Stdio
stdio
,
@
required
FrameworkRepository
repository
,
required
String
usage
,
required
ArgResults
argResults
,
required
Stdio
stdio
,
required
FrameworkRepository
repository
,
})
{
final
String
remoteName
=
argResults
[
kRemoteName
]
as
String
;
final
String
level
=
argResults
[
kIncrement
]
as
String
;
...
...
dev/tools/lib/start.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'dart:convert'
show
jsonEncode
;
import
'package:args/command_runner.dart'
;
...
...
dev/tools/lib/state.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'package:platform/platform.dart'
;
import
'./globals.dart'
;
...
...
dev/tools/lib/status.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'dart:convert'
show
jsonDecode
;
import
'package:args/command_runner.dart'
;
...
...
dev/tools/lib/stdio.dart
View file @
8654e4ae
...
...
@@ -40,10 +40,10 @@ abstract class Stdio {
/// A logger that will print out trace messages.
class
VerboseStdio
extends
Stdio
{
VerboseStdio
({
@
required
this
.
stdout
,
@
required
this
.
stderr
,
@
required
this
.
stdin
,
})
:
assert
(
stdout
!=
null
),
assert
(
stderr
!=
null
),
assert
(
stdin
!=
null
)
;
required
this
.
stdout
,
required
this
.
stderr
,
required
this
.
stdin
,
});
factory
VerboseStdio
.
local
()
=>
VerboseStdio
(
stdout:
io
.
stdout
,
...
...
@@ -81,6 +81,6 @@ class VerboseStdio extends Stdio {
@override
String
readLineSync
()
{
return
stdin
.
readLineSync
();
return
stdin
.
readLineSync
()
!
;
}
}
dev/tools/lib/version.dart
View file @
8654e4ae
...
...
@@ -2,18 +2,18 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:meta/meta.dart'
;
/// Possible string formats that `flutter --version` can return.
enum
VersionType
{
/// A stable flutter release.
///
/// Example: '1.2.3'
stable
,
/// A pre-stable flutter release.
///
/// Example: '1.2.3-4.5.pre'
development
,
/// A master channel flutter version.
///
/// Example: '1.2.3-4.0.pre.10'
...
...
@@ -30,13 +30,13 @@ final Map<VersionType, RegExp> versionPatterns = <VersionType, RegExp>{
class
Version
{
Version
({
@
required
this
.
x
,
@
required
this
.
y
,
@
required
this
.
z
,
required
this
.
x
,
required
this
.
y
,
required
this
.
z
,
this
.
m
,
this
.
n
,
this
.
commits
,
@
required
this
.
type
,
required
this
.
type
,
})
{
switch
(
type
)
{
case
VersionType
.
stable
:
...
...
@@ -67,11 +67,13 @@ class Version {
versionString
=
versionString
.
trim
();
// stable tag
Match
match
=
versionPatterns
[
VersionType
.
stable
]
.
firstMatch
(
versionString
);
Match
?
match
=
versionPatterns
[
VersionType
.
stable
]!
.
firstMatch
(
versionString
);
if
(
match
!=
null
)
{
// parse stable
final
List
<
int
>
parts
=
match
.
groups
(<
int
>[
1
,
2
,
3
]).
map
(
int
.
parse
).
toList
();
final
List
<
int
>
parts
=
match
.
groups
(<
int
>[
1
,
2
,
3
])
.
map
((
String
?
s
)
=>
int
.
parse
(
s
!))
.
toList
();
return
Version
(
x:
parts
[
0
],
y:
parts
[
1
],
...
...
@@ -80,11 +82,11 @@ class Version {
);
}
// development tag
match
=
versionPatterns
[
VersionType
.
development
].
firstMatch
(
versionString
);
match
=
versionPatterns
[
VersionType
.
development
]
!
.
firstMatch
(
versionString
);
if
(
match
!=
null
)
{
// parse development
final
List
<
int
>
parts
=
match
.
groups
(<
int
>[
1
,
2
,
3
,
4
,
5
]).
map
(
int
.
parse
).
toList
();
match
.
groups
(<
int
>[
1
,
2
,
3
,
4
,
5
]).
map
(
(
String
?
s
)
=>
int
.
parse
(
s
!)
).
toList
();
return
Version
(
x:
parts
[
0
],
y:
parts
[
1
],
...
...
@@ -95,11 +97,14 @@ class Version {
);
}
// latest tag
match
=
versionPatterns
[
VersionType
.
latest
].
firstMatch
(
versionString
);
match
=
versionPatterns
[
VersionType
.
latest
]
!
.
firstMatch
(
versionString
);
if
(
match
!=
null
)
{
// parse latest
final
List
<
int
>
parts
=
match
.
groups
(<
int
>[
1
,
2
,
3
,
4
,
5
,
6
]).
map
(
int
.
parse
).
toList
();
final
List
<
int
>
parts
=
match
.
groups
(
<
int
>[
1
,
2
,
3
,
4
,
5
,
6
],
).
map
(
(
String
?
s
)
=>
int
.
parse
(
s
!),
).
toList
();
return
Version
(
x:
parts
[
0
],
y:
parts
[
1
],
...
...
@@ -118,13 +123,13 @@ class Version {
factory
Version
.
increment
(
Version
previousVersion
,
String
increment
,
{
VersionType
nextVersionType
,
VersionType
?
nextVersionType
,
})
{
final
int
nextX
=
previousVersion
.
x
;
int
nextY
=
previousVersion
.
y
;
int
nextZ
=
previousVersion
.
z
;
int
nextM
=
previousVersion
.
m
;
int
nextN
=
previousVersion
.
n
;
int
?
nextM
=
previousVersion
.
m
;
int
?
nextN
=
previousVersion
.
n
;
if
(
nextVersionType
==
null
)
{
if
(
previousVersion
.
type
==
VersionType
.
latest
)
{
nextVersionType
=
VersionType
.
development
;
...
...
@@ -137,7 +142,6 @@ class Version {
case
'x'
:
// This was probably a mistake.
throw
Exception
(
'Incrementing x is not supported by this tool.'
);
break
;
case
'y'
:
// Dev release following a beta release.
nextY
+=
1
;
...
...
@@ -155,13 +159,12 @@ class Version {
case
'm'
:
// Regular dev release.
assert
(
previousVersion
.
type
==
VersionType
.
development
);
assert
(
nextM
!=
null
);
nextM
+=
1
;
nextM
=
nextM
!
+
1
;
nextN
=
0
;
break
;
case
'n'
:
// Hotfix to internal roll.
nextN
+=
1
;
nextN
=
nextN
!
+
1
;
break
;
default
:
throw
Exception
(
'Unknown increment level
$increment
.'
);
...
...
@@ -186,13 +189,13 @@ class Version {
final
int
z
;
/// Zero-indexed count of dev releases after a beta release.
final
int
m
;
final
int
?
m
;
/// Number of hotfixes required to make a dev release.
final
int
n
;
final
int
?
n
;
/// Number of commits past last tagged dev release.
final
int
commits
;
final
int
?
commits
;
final
VersionType
type
;
...
...
@@ -206,6 +209,5 @@ class Version {
case
VersionType
.
latest
:
return
'
$x
.
$y
.
$z
-
$m
.
$n
.pre.
$commits
'
;
}
return
null
;
// For analyzer
}
}
dev/tools/localization/bin/encode_kn_arb_files.dart
View file @
8654e4ae
...
...
@@ -13,6 +13,8 @@
// This utility is run by `gen_localizations.dart` if --overwrite is passed
// in as an option.
// @dart = 2.8
import
'dart:convert'
;
import
'dart:io'
;
...
...
dev/tools/localization/bin/gen_date_localizations.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
/// This program extracts localized date symbols and patterns from the intl
/// package for the subset of locales supported by the flutter_localizations
/// package.
...
...
dev/tools/localization/bin/gen_localizations.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
// This program generates a getMaterialTranslation() and a
// getCupertinoTranslation() function that look up the translations provided by
// the arb files. The returned value is a generated instance of a
...
...
dev/tools/localization/bin/gen_missing_localizations.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
// This program updates the language locale arb files with any missing resource
// entries that are included in the English arb files. This is useful when
// adding new resources for localization. You can just add the appropriate
...
...
dev/tools/localization/gen_cupertino_localizations.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'localizations_utils.dart'
;
String
generateCupertinoHeader
(
String
regenerateInstructions
)
{
...
...
dev/tools/localization/gen_material_localizations.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'localizations_utils.dart'
;
String
generateMaterialHeader
(
String
regenerateInstructions
)
{
...
...
dev/tools/localization/localizations_utils.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'dart:convert'
;
import
'dart:io'
;
...
...
dev/tools/localization/localizations_validator.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'dart:convert'
show
json
;
import
'dart:io'
;
...
...
dev/tools/mega_gallery.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
/// Make `n` copies of flutter_gallery.
import
'dart:io'
;
...
...
dev/tools/pubspec.yaml
View file @
8654e4ae
...
...
@@ -2,7 +2,7 @@ name: dev_tools
description
:
Various repository development tools for flutter.
environment
:
sdk
:
"
>=2.
6
.0
<3.0.0"
sdk
:
"
>=2.
12
.0
<3.0.0"
dependencies
:
archive
:
3.1.2
...
...
dev/tools/test/clean_test.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'package:args/command_runner.dart'
;
import
'package:dev_tools/clean.dart'
;
import
'package:dev_tools/repository.dart'
;
...
...
dev/tools/test/codesign_test.dart
View file @
8654e4ae
...
...
@@ -8,7 +8,6 @@ import 'package:dev_tools/globals.dart';
import
'package:dev_tools/repository.dart'
;
import
'package:file/file.dart'
;
import
'package:file/memory.dart'
;
import
'package:meta/meta.dart'
;
import
'package:platform/platform.dart'
;
import
'../../../packages/flutter_tools/test/src/fake_process_manager.dart'
;
...
...
@@ -23,12 +22,12 @@ void main() {
const
String
flutterBin
=
'
${checkoutsParentDirectory}
flutter_conductor_checkouts/framework/bin/flutter'
;
const
String
revision
=
'abcd1234'
;
CommandRunner
<
void
>
runner
;
Checkouts
checkouts
;
MemoryFileSystem
fileSystem
;
FakePlatform
platform
;
TestStdio
stdio
;
FakeProcessManager
processManager
;
late
CommandRunner
<
void
>
runner
;
late
Checkouts
checkouts
;
late
MemoryFileSystem
fileSystem
;
late
FakePlatform
platform
;
late
TestStdio
stdio
;
late
FakeProcessManager
processManager
;
const
List
<
String
>
binariesWithEntitlements
=
<
String
>[
'
$flutterCache
/dart-sdk/bin/dart'
,
'
$flutterCache
/dart-sdk/bin/dartaotruntime'
,
...
...
@@ -43,7 +42,7 @@ void main() {
void
createRunner
({
String
operatingSystem
=
'macos'
,
List
<
FakeCommand
>
commands
,
List
<
FakeCommand
>
?
commands
,
})
{
stdio
=
TestStdio
();
fileSystem
=
MemoryFileSystem
.
test
();
...
...
@@ -410,10 +409,10 @@ void main() {
class
FakeCodesignCommand
extends
CodesignCommand
{
FakeCodesignCommand
({
@
required
Checkouts
checkouts
,
@
required
this
.
binariesWithEntitlements
,
@
required
this
.
binariesWithoutEntitlements
,
@
required
Directory
flutterRoot
,
required
Checkouts
checkouts
,
required
this
.
binariesWithEntitlements
,
required
this
.
binariesWithoutEntitlements
,
required
Directory
flutterRoot
,
})
:
super
(
checkouts:
checkouts
,
flutterRoot:
flutterRoot
);
@override
...
...
dev/tools/test/common.dart
View file @
8654e4ae
...
...
@@ -38,10 +38,8 @@ Matcher throwsExceptionWith(String messageSubString) {
class
TestStdio
extends
Stdio
{
TestStdio
({
this
.
verbose
=
false
,
List
<
String
>
stdin
,
})
{
_stdin
=
stdin
??
<
String
>[];
}
List
<
String
>?
stdin
,
})
:
_stdin
=
stdin
??
<
String
>[];
String
get
error
=>
logs
.
where
((
String
log
)
=>
log
.
startsWith
(
r'[error] '
)).
join
(
'
\n
'
);
...
...
@@ -50,7 +48,7 @@ class TestStdio extends Stdio {
}).
join
(
'
\n
'
);
final
bool
verbose
;
List
<
String
>
_stdin
;
late
final
List
<
String
>
_stdin
;
@override
String
readLineSync
()
{
...
...
@@ -63,9 +61,9 @@ class TestStdio extends Stdio {
class
FakeArgResults
implements
ArgResults
{
FakeArgResults
({
String
level
,
String
commit
,
String
remote
,
required
String
level
,
required
String
commit
,
String
remote
=
'upstream'
,
bool
justPrint
=
false
,
bool
autoApprove
=
true
,
// so we don't have to mock stdin
bool
help
=
false
,
...
...
@@ -83,22 +81,26 @@ class FakeArgResults implements ArgResults {
};
@override
String
name
;
String
?
name
;
@override
ArgResults
command
;
ArgResults
?
command
;
@override
final
List
<
String
>
rest
=
<
String
>[];
@override
List
<
String
>
arguments
;
List
<
String
>
get
arguments
{
assert
(
false
,
'not yet implemented'
);
return
<
String
>[];
}
final
Map
<
String
,
dynamic
>
_parsedArgs
;
@override
Iterable
<
String
>
get
options
{
return
null
;
assert
(
false
,
'not yet implemented'
);
return
<
String
>[];
}
@override
...
...
@@ -108,6 +110,7 @@ class FakeArgResults implements ArgResults {
@override
bool
wasParsed
(
String
name
)
{
return
null
;
assert
(
false
,
'not yet implemented'
);
return
false
;
}
}
dev/tools/test/roll_dev_integration_test.dart
View file @
8654e4ae
...
...
@@ -14,16 +14,16 @@ import './common.dart';
void
main
(
)
{
group
(
'roll-dev'
,
()
{
TestStdio
stdio
;
Platform
platform
;
ProcessManager
processManager
;
FileSystem
fileSystem
;
late
TestStdio
stdio
;
late
Platform
platform
;
late
ProcessManager
processManager
;
late
FileSystem
fileSystem
;
const
String
usageString
=
'Usage: flutter conductor.'
;
Checkouts
checkouts
;
FrameworkRepository
frameworkUpstream
;
FrameworkRepository
framework
;
Directory
tempDir
;
late
Checkouts
checkouts
;
late
FrameworkRepository
frameworkUpstream
;
late
FrameworkRepository
framework
;
late
Directory
tempDir
;
setUp
(()
{
platform
=
const
LocalPlatform
();
...
...
dev/tools/test/roll_dev_test.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'package:dev_tools/globals.dart'
;
import
'package:dev_tools/repository.dart'
;
import
'package:dev_tools/roll_dev.dart'
;
...
...
dev/tools/test/start_test.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import
'dart:convert'
show
jsonDecode
;
import
'package:args/command_runner.dart'
;
...
...
dev/tools/update_icons.dart
View file @
8654e4ae
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
// Regenerates the material icons file.
// See https://github.com/flutter/flutter/wiki/Updating-Material-Design-Fonts-&-Icons
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment