jefe 0.3.0

  • README.md
  • CHANGELOG.md
  • Installing
  • Versions
  • 35

jefe

A library for maintaining sets of related Dart projects versioned in git, in particular managing dependencies between them.

Usage

For now the best place to learn about Jefe is the introductory blog post.

Jefe is designed to be used both as a command (called jefe) and as source (e.g. integrating with other tools like grinder)

Installing

pub global activate jefe

Project Lifecycle Basics


import 'package:jefe/jefe.dart';


main() async {
  // first install the project group
  final ProjectGroup projectGroup = await ProjectGroup.install(
      new Directory('/Users/blah'), 'git@git.example');

  final executor = new CommandExecutor(projectGroup);

  // initialise it (sets it on develop branch etc)
  await executor.execute(lifecycle.init());

  // start a new feature
  // All projects will be on a feature branch called feacha,
  // will have the dependencies to other projects in this group set as
  // path dependencies, and will have pub get called
  await executor.execute(lifecycle.startNewFeature('feacha'));

  // Code something awesome

  // finish off the feature
  // All projects will have their feature branches merged to develop,
  // will have the dependencies to other projects in this group set as
  // git dependencies bashed on the current commit hash,
  // will be git pushed to their origin
  // and will have pub get called
  await executor.execute(lifecycle.completeFeature('feacha'));

  // now cut a release.
  // All the project pubspec versions will be bumped according to the release type
  // and git tagged with same version, will be merged to master
  await executor.execute(lifecycle.release(type: ReleaseType.major));
}

Generate a Production Dockerfile


main() async {
  final executor = await executorForDirectory('/Users/blah/myfoo_root');

  await executor.execute(docker.generateProductionDockerfile(
      'my_server', 'my_client',
      outputDirectory: new Directory('/tmp'),
      dartVersion: '1.9.3',
      environment: {'MY_FOO': false},
      exposePorts: [8080, 8181, 5858],
      entryPointOptions: ["--debug:5858/0.0.0.0"]));
}


Features and bugs

Please file feature requests and bugs at the issue tracker.

Changelog

0.3.0

  • Major rewrite of internals. Should be much easier to implement new features
  • Removed featureName from jefe finish
  • Allow project names to differ from repo names
  • New command to generate Intellij vcs.xml file

0.2.10

  • Updated pubspec dependency

0.2.9

  • Bug fix. Missed case for using publish_to property when fetching versions

0.2.8

  • Support third party pub repos via publish_to pubspec property

0.2.7

  • Fix to work with normal tags (non annotated) too
  • Don't run tests if project doesn't use test package

0.2.4

  • added jefe test which runs pub run test on all projects that have a test dir

  • added dev_dependencies to the project dependencies that jefe manages

0.2.3

  • support auto update of hosted versions

0.2.2

  • tighter constraints for exported packages

0.2.0

  • support for hosted packages

0.1.0

  • reworked executors to simplify
  • made several commands more idempotent so that you can rerun them as needed

0.0.1

  • Initial version, created by Stagehand

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  jefe: "^0.3.0"

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:jefe/jefe.dart';
        
Version Uploaded Documentation Archive
0.4.0 Jun 25, 2016 Go to the documentation of jefe 0.4.0 Download jefe 0.4.0 archive
0.3.1 Apr 4, 2016 Go to the documentation of jefe 0.3.1 Download jefe 0.3.1 archive
0.3.0 Apr 2, 2016 Go to the documentation of jefe 0.3.0 Download jefe 0.3.0 archive
0.2.10 Jan 24, 2016 Go to the documentation of jefe 0.2.10 Download jefe 0.2.10 archive
0.2.9 Jan 23, 2016 Go to the documentation of jefe 0.2.9 Download jefe 0.2.9 archive
0.2.8 Jan 21, 2016 Go to the documentation of jefe 0.2.8 Download jefe 0.2.8 archive
0.2.7 Jan 21, 2016 Go to the documentation of jefe 0.2.7 Download jefe 0.2.7 archive
0.2.6 Aug 20, 2015 Go to the documentation of jefe 0.2.6 Download jefe 0.2.6 archive
0.2.5 Aug 20, 2015 Go to the documentation of jefe 0.2.5 Download jefe 0.2.5 archive
0.2.4 Jul 2, 2015 Go to the documentation of jefe 0.2.4 Download jefe 0.2.4 archive

All 20 versions...

Analysis

This feature is new.
We welcome feedback.

We analyzed this package, and provided a score, details, and suggestions below.

  • completed on Dec 7, 2017
  • Dart: 2.0.0-dev.8.0
  • pana: 0.7.3+1

Scores

Popularity:
Describes how popular the package is relative to other packages. [more]
0
Health:
Code health derived from static analysis. [more]
95
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
31
Overall score:
Weighted score of the above. [more]
35

Platforms

Detected platforms: server

All libraries agree

Suggestions

  • Use analysis_options.yaml.

    Rename old .analysis_options file to analysis_options.yaml.

Dependencies

Package Constraint Resolved Available
Direct dependencies
analyzer >=0.25.0+1 <0.28.0 0.27.6 0.30.0+4
collection ^1.4.0 1.14.3
dockerfile ^0.0.4 0.0.4
frappe ^0.4.0+4 0.4.0+6
git ^0.4.4+1 0.4.4+2
http ^0.11.2 0.11.3+16
logging ^0.10.0 0.10.0 0.11.3+1
option ^1.1.0 1.2.0
pub_semver ^1.1.0 1.3.2
pubspec ^0.0.12 0.0.14
quiver ^0.21.3 0.21.4 0.26.2
stack_trace ^1.6.1 1.9.1
unscripted ^0.6.0 0.6.2
xml ^2.4.2 2.6.0
yaml ^2.0.1+1 2.1.13
yamlicious ^0.0.4 0.0.5
Transitive dependencies
ansicolor 0.0.9
args 0.13.7 1.2.0
async 2.0.1
bot 0.28.0
charcode 1.1.1
concepts 0.2.0
convert 2.0.1
crypto 2.0.2+1
csslib 0.14.1
either 0.1.8
glob 1.1.5
html 0.13.2
http_parser 3.1.1
isolate 0.2.3 1.1.0
matcher 0.12.1+4
meta 1.1.2
mockable_filesystem 0.0.3
package_config 1.0.3
path 1.3.9 1.5.1
petitparser 1.6.1
plugin 0.2.0+2
quiver_iterables 1.0.1
source_span 1.4.0
stream_transformers 0.3.0+3
string_scanner 1.0.2
stuff 0.0.7
supports_color 0.1.1
typed_data 1.1.5
uri 0.11.1
utf 0.9.0+3
watcher 0.9.7+4
when 0.2.0
which 0.1.3
Dev dependencies
mockito ^0.8.2
test ^0.12.10