-
Notifications
You must be signed in to change notification settings - Fork 230
Should we ship a CLI out-of-the-box? #758
Comments
I definitely think we should have a CLI, but am a little unsure if it should be provided by Angular or by the Dart4Web effort. |
We have started discussing work for a CLI for next quarter. |
one downside of shipping a CLI that passes through to The benefit is that users already have the dep on angular so |
Would
This would be my primary concern - but as long as it is just a wrapper I don't think it would be an issue. Any additional functionality deemed generally useful could be upstreamed and then wrapped.
I don't think this would be much of an issue, we could watch the angular repo for issues or the angular team could forward them to us, either should be ok. |
This question isn't really mutually exclusive, it's more of should Angular provide one.
Anything you can share (privately or publicly)? I want to make sure this meets our needs.
Well, it depends. We could for example have
Yup, it's probably close to being able to be 1.0 I assume?
That's my thought exactly.
Sure, but then we're beholden to (a) those features being completed and (b) those features being implemented the ways best to serve AngularDart customers. They probably will be, but having our own entry-point means we can tweak as needed without requiring breaking changes to
That's my thought too, but wanted to have it as a risk anyway.
Yup. SG. |
Yeah we hope to have |
It does also give you the option of changing build systems etc if desired/necessary, without affecting your users as much. At the same time it makes angular different than the rest of the ecosystem, but as long as it still works with the standard tools as well then it doesn't really matter. Essentially, it could just be an opt-in layer on top of the default stuff that provides some additional commands etc. |
Another option here could be making the unified cli tool have a plugin architecture so you could just install the angular plugin. That could get complicated, but I don't think it has to be if you keep the functionality limited (for instance only allow new commands, make new commands just delegate to other binaries, etc). |
Might be good for a M+n release, but I wouldn't want this for an MVP. My idea for the Angular CLI is basically to do be MVP + Angular addons/checks. If the entire MVP goes smooth enough, we might end up making angular just directly delegate to build_runner most of the time anyway. On the other hand if there are complications/edge-cases, we have the ability to massage the interaction a bit. |
Superseded by dart-lang/webdev#1 after discussion. |
@matanlurey, re:
I'll send you the repo - there's a POC pretty far along. It uses pub build and pub serve, but that's a placeholder for now. The code that's there may or may not be what migrates to dart-lang/webdev, but the general intent is what we want (a unified web development experience, building on the existing dart cli tools, and using package:build and friends). |
Some stakeholders:
This would fix or obsolete @filiph's #380.
Background
In upcoming releases, we will potentially end support for
pub serve/build
for a new faster and incremental development cycle usingpackage:build_runner
(and friends). There are a lot of moving pieces, but ultimatelybuild_runner
, under that name or another CLI, will support out-of-the-box DDC and Dart2JS with builders replacing transformers.We have an option of encapsulating some of that logic in an AngularDart CLI, i.e.:
The idea here is that we wouldn't re-invent anything, but instead delegate:
serve
,build
➡️pkg/build_runner
test
➡️pkg/build_runner
+pkg/test
In this scenario, I imagine the following:
(Once added)
Options
No CLI
We'd do nothing here (status quo) and rely on external infrastructure and perhaps provide docs.
CLI without build or test system integration
Basically, explain how to use
build_runner
andtest
, but no specific integration.We might include a CLI, but it would be Angular-specific, for example
angular doctor
to help diagnose issues, orangular create
to create scaffolds, but we'd just provide documentation on using external infrastructure for build/serve/test.CLI with tight build and test system integration
Basically, automatically setup
build_runner
andtest
and maintain it for our users.In this case, we'd basically wrap build/serve/test infrastructure, providing a one-stop shop for common AngularDart actions, but without requiring users to know about the underlying infrastructure (and if we are blocked, we can always provide AngularDart-specific workarounds).
Risks
Not providing a CLI or omitting integration
pub serve/build
ease today are turned off.Providing a CLI with integration
Thoughts?
The text was updated successfully, but these errors were encountered: