sidekick_core 1.2.0 sidekick_core: ^1.2.0 copied to clipboard
Shared sidekick commands, plugin engine, migrations, templates and utilities for sidekick CLIs
Changelog #
1.2.0 (2023-5-11) #
- Add topics to
pubspec.yaml
- Add
CreateCommand
(register and generate a command) #226 https://github.com/phntmxyz/sidekick/commit/74771b8508e24804826bad4e40a7a80531ded8e3 - Add migration to install
FormatCommand
on update #225 https://github.com/phntmxyz/sidekick/commit/a8bd02510f1a9acbaca9e868a2e43cb0ffdf5cb1 - Fix
FormatCommand
--verify
exception message, print unformatted files #224 https://github.com/phntmxyz/sidekick/commit/b30030c11731f8b39e31884fb57a8c1d751384c0 FormatCommand.formatGenerated
allows ignoring generated files (.g.dart) #223 https://github.com/phntmxyz/sidekick/commit/46b4a64cafafa83cfa62623fb1c986691e18b202
1.1.0 (2023-2-3) #
- New:
FormatCommand
(<cli> format
) to format all your project dart code #192 - Fix: plugin install with Dart 2.19 (default pub hosted url changed) #221
- install script does major dependency update #220
1.0.2 (2023-1-25) #
- Update templates to
sidekick_core: ^1.0.0
andsidekick_plugin_installer: ^0.3.0
#214 - Don't show a warning when
flutterSdkPath
ordartSdkPath
is an absolute path. #214
1.0.1 (2023-1-25) #
- Support for sidekick_plugin_installer:3.0.0 #213
1.0.0 (2023-1-25) #
Breaking API & Behaviour Changes #
- Sidekick CLIs now works without a git repository. The
projectRoot
is defined where the shellentryPoint
is located. - New
SidekickContext
with getters forsidekickPackage
,cliName
,projectRoot
,entryPoint
andrepository
#178 - Deprecation of
Repository
and top-levelrepository
#178 - Behaviour: paths for
initializeSidekick()
are now relative toprojectRoot
, notrepository
. Sidekick will print warnings when you're using wrong paths #178 - Removal of
git()
. It was unused. Since sidekick doesn't require git anymore it was removed. #208 - Behaviour:
flutter
anddart
throw by default when failing. Usenothrow: true
to ignore errors (exitCode != 0
) #206 - Behaviour:
flutter
anddart
default toDirectory.current
, notentryWorkingDirectory
#206 - Removal of
flutterw()
.flutter
anddart
do not fall back toflutterw()
. It is now available as plugin https://github.com/passsy/flutterw_sidekick_plugin #208 - Deprecate top-level
cliName
/cliNameOrNull
in favor ofSidekickContext.cliName
#208 - Deprecate
name
ofinitializeSidekick()
. The name is now inferred from thepubspec.yaml
from the package name (<name>_sidekick
). #209 - Deprecate
findRepository()
in favor ofSidekickContext.repository
orSidekickContext.projectRoot
#178 - Removal of
deinitializeSidekick()
#208
Other Changes #
- New
List<DartPackage> findAllPackages(Directory)
function to find packages in directories such asSidekickContext.projectRoot
orSidekickContext.repository
#178 - Require latest dartx version
1.1.0
#208 - Update template to use Dart 2.18.6 #195
- Show the exact version of the plugin during install #203
- Print
pub get
errors when installing plugin #203 - Fix misleading update message #210
0.15.1 (2023-1-18) #
- bugfix: sidekick update - Ignore insignificant
pub get
errors #190
0.15.0 (2023-1-18) #
Changes to your sidekick CLI #
<cli> <command>
Sidekick CLIs now automatically check for updates after executing a command. Disable withexport SIDEKICK_ENABLE_UPDATE_CHECK=false
#177 #171<cli> sidekick update
now updates to the latest stable Dart SDK #167- Automatic
pub upgrade
when CLI compilation fails (due to Dart SDK upgrade) #166
New APIs #
-
New:
BashCommand
to simplify converting bash scripts to commands in dart #168BashCommand( name: 'codegen', description: 'Runs build runner', workingDirectory: runner.mainProject?.root, script: () => ''' ${systemFlutterSdkPath()}/bin/flutter pub run build_runner build --delete-conflicting-outputs ''', ),
Bugfixes and improvements #
DepsCommand
now ignores sidekick packages, which pull deps automatically with embedded Dart SDK #184- Fix:
DepsCommand.excludeGlob
now starts matching at repo root, not CWD #183 sidekick update
now handlespath
andgit
dependencies when updatingsidekick_core
#180DartPackage.fromDirectory()
Simplify detection of Flutter packages #182
0.14.0 (2023-1-6) #
Template Changes #
- CLI template now does not generate a
<cli>_project.dart
file. You can continue to use yours but we found most people didn't need it. (#156) - UsageException is now correctly printed (#157) (with
<cli> sidekick update
migration) - Calling the CLI with zero arguments now also checks for sidekick updates (#157) (with
<cli> sidekick update
migration) - Fix unnecessary CLI recompilation in
run.sh
(#152)
API Changes #
- New
DartPackage.lockfile
getter (#159) - New
DartPackage.fromArgResults
constructor for Commands that take a package as only argument. Parsesrest
andcwd
. (#160) SidekickTemplateProperties
now has optional properties. Caller has to decide what to inject for each template. (#161)
0.13.1 #
- Fix
sidekick plugins install
for git and local sources #144
0.13.0 #
- New
sidekick update
command for updating your sidekick CLI (#111) - Add
excludeGlob
parameter toDepsCommand
(#125) - Add
--version
flag tosidekick
command - Support
FLUTTER_ROOT
environment variable for local Flutter SDK (#123) - Update templates (#132, #126)
- Installing sidekick plugins from git is now possible (#126)
- Experimental: Automatic sidekick update check when setting
SIDEKICK_ENABLE_UPDATE_CHECK
environment variable totrue
0.12.0 #
- New:
version
getter mirroring thesidekick_core
version inpubspec.yaml
- Analyzer now ignores the
build
folder. Previously, the embedded dart sdk was accidentally analyzed #107 - Reduce stdout noise when installing a plugin from pub (
sidekick plugin install
) #109 - Reduce stdout when compiling the cli (not showing
dart pub get
stdout) #109 - Allow cli names to include underscores (sidekick init) #112
DepsCommand
now accounts for theexclude
parameter, not loading dependencies for those packages #118
0.11.1 #
- New:
<FileSystemEntity>.makeExecutable()
extension method - Update repository URL in pubspec.yaml
- Move cli template into
sidekick_core
0.11.0 #
- New:
addFlutterSdkInitilizer
method to allow plugins downloading the Flutter SDK beforeflutter
is called #99 - Widen
dcli
version range
0.10.1 #
- Fix
install-global
command which crashed in some cases (#94)
0.10.0 #
- Template shared-command and shared-code now use the
library
keyword #87 findAllPackages
works now outside of theSidekickCommandRunner
- New
OutOfCommandRunnerScopeException
when accessingcliName
and friends outside of aCommand
#88 - Allow execution of
PluginCommand
from oursidekick
cli using the system dart sdk #91 - New
SidekickCommand
that bundles nowplugins
,recompile
andinstall-global
#89
0.9.0 #
- Fix: Setting
flutterSdkPath
anddartSdkPath
ininitializeSidekick
now works with relative paths from anywhere as well.
Relative paths are resolved relative to the project root. - New: The
plugins create
command now also generates aREADME.md
,.gitignore
, andanalysis_options.yaml
- New:
DepsCommand
(previously was insidekick
) - New:
RecompileCommand
(previously was insidekick
) - New: Functions returning system Dart/Flutter SDKs (
systemDartSdk
,systemDartSdkPath
,systemFlutterSdk
,systemFlutterSdkPath
)
0.8.0 #
DartCommand
andFlutterCommand
now require the SDKs to be set ininitializeSidekick(flutterSdkPath: ..., dartSdkPath: ...)
.). This is a non-breaking change, falling back to
flutter_wrapper`.- Breaking: Plugins now use a zero argument main function. All information during install is injected via env, accessible with
PluginContext
#72 - New:
DartPackage
doesn't require alib
directory anymore #63 - Add:
SidekickPackage.cliMainFile
location where plugins are registered
0.7.1 #
- New:
plugins create
now generates plugins from templates - Fix:
plugins install
now uses a temp working directory instead of manipulating the pub cache during install - New:
isValidPubPackageName(String name)
returnstrue
when the name is a valid pub package name according to https://dart.dev/tools/pub/pubspec#name
0.7.0 #
- New:
PluginsCommand
to automatically install plugins to easily extend sidekick CLIs - New:
SidekickDartRuntime sidekickDartRuntime
that points to the dart sdk bundled with the CLI - New:
Repository.sidekickPackage
which returnsRepository.cliPackageDir
asSidekickPackage
object.
0.6.0 #
- Breaking
initializeSidekick()
now returns aSidekickCommandRunner
instance (wasvoid
). You have to use this runner to access the global sidekick variablescliName
,mainProject
,repository
- Regenerate your cli with
sidekick: 0.6.0
to migrate
0.5.2 #
- constrain
dcli
, new versions are not compatible with Dart 2.15 and below
0.5.1 #
- Print script + stderr when execution of an inline script (
writeAndRunShellScript(script)
) fails
0.5.0 #
Breaking This update requires the sidekick project to be initialized again with sidekick: 0.4.0
- New
InstallGlobalCommand
(links binaries in$HOME/.sidekick/bin
) - Simplified repository detection (breaking)
error
now support errorCode
0.4.1 #
- Require Dart 2.14
0.4.0 #
flutterw()
is now windows compatibledart()
is now windows compatible- DartPackage detection prints a warning for packages without a
lib/
dir
0.3.3 #
- Update
dcli
to1.15.0
due to breaking change
0.3.2 #
- Update
dcli
- Widen
dartx
version range
0.3.1 #
AnalyzeCommand
now fails with correct exit code
0.3.0 #
- Include
ForwardCommand
and addflutterw
,dart
andanalyze
subcommands
0.2.0 #
- Add
initializeSidekick()
- Add
repository
,cliName
andmainProject
- Add util files