mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
commit
394990f41c
@ -1,5 +1,4 @@
|
||||
name: updater
|
||||
version: 0.0.1
|
||||
author: Flutter Authors <flutter-dev@googlegroups.com>
|
||||
description: The autoupdater for flutter
|
||||
homepage: http://flutter.io
|
||||
|
||||
@ -5,7 +5,7 @@ description: A workspace to host pub packages
|
||||
homepage: https://github.com/flutter/engine/tree/master/sky/packages/workbench
|
||||
dependencies:
|
||||
flutter: ">=0.0.3 <0.1.0"
|
||||
sky_tools: ">=0.0.26"
|
||||
sky_tools: any
|
||||
cipher: any
|
||||
asn1lib: any
|
||||
flutter_rendering_examples: any
|
||||
|
||||
@ -0,0 +1,5 @@
|
||||
name: flutter-pubspec-maintenance
|
||||
dependencies:
|
||||
den_api: ^0.1.0
|
||||
path: ^1.3.6
|
||||
pub_semver: ^1.2.2
|
||||
110
engine/src/flutter/sky/tools/pubspec_maintenance/rev_flutter.dart
Executable file
110
engine/src/flutter/sky/tools/pubspec_maintenance/rev_flutter.dart
Executable file
@ -0,0 +1,110 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:den_api/den_api.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
import 'package:pub_semver/pub_semver.dart';
|
||||
|
||||
// set this to true when we decide to ship 0.1.0
|
||||
const bool haveWeEverReleasedAPointRelease = false;
|
||||
|
||||
class FlutterPubspec {
|
||||
static Future<FlutterPubspec> load(String path) async {
|
||||
return new FlutterPubspec.fromPubspec(await Pubspec.load(path));
|
||||
}
|
||||
|
||||
FlutterPubspec.fromPubspec(this._data) {
|
||||
_openPubspecs.add(this);
|
||||
}
|
||||
|
||||
final Pubspec _data;
|
||||
|
||||
String get name => _data.name;
|
||||
Version get version => _data.version;
|
||||
|
||||
PackageDep get asDependency {
|
||||
return new PackageDep(name, 'hosted', version, '');
|
||||
}
|
||||
|
||||
void bumpVersion({ bool breakingChange }) {
|
||||
_data.bump(haveWeEverReleasedAPointRelease && breakingChange ? ReleaseType.minor : ReleaseType.patch);
|
||||
print('$name is now at $version');
|
||||
}
|
||||
|
||||
void setDependency(FlutterPubspec dependency) {
|
||||
_data.addDependency(dependency.asDependency);
|
||||
}
|
||||
|
||||
void setDependencyIfNecessary(FlutterPubspec dependency) {
|
||||
if (_data.dependencies.containsKey(dependency.name))
|
||||
_data.addDependency(dependency.asDependency);
|
||||
}
|
||||
|
||||
void _save() {
|
||||
_data.save();
|
||||
}
|
||||
|
||||
static List<FlutterPubspec> _openPubspecs = <FlutterPubspec>[];
|
||||
static void saveAll() {
|
||||
for (FlutterPubspec file in _openPubspecs)
|
||||
file._save();
|
||||
}
|
||||
}
|
||||
|
||||
main() async {
|
||||
bool breakingChange = true;
|
||||
|
||||
|
||||
// The published packages
|
||||
|
||||
FlutterPubspec flutterEngine = await FlutterPubspec.load('sky/packages/sky_engine')
|
||||
..bumpVersion(breakingChange: breakingChange);
|
||||
|
||||
FlutterPubspec flutterServices = await FlutterPubspec.load('sky/packages/sky_services')
|
||||
..bumpVersion(breakingChange: breakingChange);
|
||||
|
||||
FlutterPubspec flutterFlx = await FlutterPubspec.load('sky/packages/flx')
|
||||
..bumpVersion(breakingChange: breakingChange)
|
||||
..setDependency(flutterServices);
|
||||
|
||||
FlutterPubspec flutter = await FlutterPubspec.load('sky/packages/sky')
|
||||
..bumpVersion(breakingChange: breakingChange)
|
||||
..setDependency(flutterEngine)
|
||||
..setDependency(flutterServices);
|
||||
|
||||
FlutterPubspec flutterSprites = await FlutterPubspec.load('skysprites')
|
||||
..bumpVersion(breakingChange: breakingChange)
|
||||
..setDependency(flutter);
|
||||
|
||||
|
||||
// The internal packages
|
||||
|
||||
await FlutterPubspec.load('sky/packages/updater')
|
||||
..setDependency(flutter)
|
||||
..setDependency(flutterSprites);
|
||||
|
||||
await FlutterPubspec.load('sky/unit')
|
||||
..setDependency(flutter);
|
||||
|
||||
await FlutterPubspec.load('sky/packages/workbench')
|
||||
..setDependency(flutterServices)
|
||||
..setDependency(flutterFlx)
|
||||
..setDependency(flutter)
|
||||
..setDependency(flutterSprites);
|
||||
|
||||
Directory examples = new Directory('examples');
|
||||
await for (FileSystemEntity entity in examples.list(recursive: true, followLinks: false)) {
|
||||
if (entity is File && path.basename(entity.path) == Pubspec.basename) {
|
||||
await FlutterPubspec.load(entity.path)
|
||||
..setDependency(flutter)
|
||||
..setDependencyIfNecessary(flutterSprites);
|
||||
}
|
||||
}
|
||||
|
||||
// we don't update these, since they're their own things and don't depend on
|
||||
// the above packages:
|
||||
// sky/tools/pubspec_maintenance/pubspec.yaml
|
||||
// sky/packages/material_design_icons/pubspec.yaml
|
||||
|
||||
FlutterPubspec.saveAll();
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user