Skip to content

feat: support 'dart install jaspr_cli'#617

Merged
schultek merged 18 commits intonextfrom
fix/jaspr-install
Mar 20, 2026
Merged

feat: support 'dart install jaspr_cli'#617
schultek merged 18 commits intonextfrom
fix/jaspr-install

Conversation

@schultek
Copy link
Copy Markdown
Owner

@schultek schultek commented Oct 24, 2025

Description

  • Support 'dart install jaspr_cli'
  • Remove dependency on webdev
  • Improve logging and stability of cli

Resolves #569
Fixes #254
Fixes #238

Type of Change

  • ✨ New feature or improvement

Ready Checklist

  • I've read the Contribution Guide.
  • In case this PR changes one of the core packages, I've modified the respective CHANGELOG.md file using
    the semantic_changelog format.
  • I updated/added relevant documentation (doc comments with ///).
  • I added myself to the AUTHORS file (optional, if you want to).

@docs-page
Copy link
Copy Markdown

docs-page Bot commented Oct 24, 2025

To view this pull requests documentation preview, visit the following URL:

docs.page/schultek/jaspr~617

Documentation is deployed and generated using docs.page.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Oct 24, 2025

Package Version Report

The following packages have been updated:
jaspr_test : 0.22.4 -> 0.23.0
jaspr : 0.22.4 -> 0.23.0
jaspr_builder : 0.22.4 -> 0.23.0
jaspr_cli : 0.22.4 -> 0.23.0
jaspr_router : 0.8.1 -> 0.8.2
jaspr_content : 0.5.1 -> 0.5.2
jaspr_flutter_embed : 0.4.10 -> 0.4.11
jaspr_riverpod : 0.4.4 -> 0.4.5
jaspr_serverpod : 0.6.0 -> 0.6.1

@codecov
Copy link
Copy Markdown

codecov Bot commented Oct 24, 2025

Codecov Report

❌ Patch coverage is 64.58924% with 125 lines in your changes missing coverage. Please review.
✅ Project coverage is 68.49%. Comparing base (6ec3e20) to head (c3737b0).
⚠️ Report is 1 commits behind head on next.

Files with missing lines Patch % Lines
packages/jaspr_cli/lib/src/dev/util.dart 38.63% 27 Missing ⚠️
packages/jaspr_cli/lib/src/project.dart 36.66% 19 Missing ⚠️
packages/jaspr_cli/lib/src/dev/chrome.dart 0.00% 17 Missing ⚠️
packages/jaspr_cli/lib/src/daemon/daemon.dart 69.23% 12 Missing ⚠️
packages/jaspr_cli/lib/src/daemon/domain.dart 68.18% 7 Missing ⚠️
packages/jaspr_cli/lib/src/dev/dev_proxy.dart 82.50% 7 Missing ⚠️
packages/jaspr_cli/lib/src/daemon/logger.dart 75.00% 6 Missing ⚠️
...ckages/jaspr_cli/lib/src/commands/dev_command.dart 88.88% 4 Missing ⚠️
...ges/jaspr_cli/lib/src/commands/doctor_command.dart 0.00% 4 Missing ⚠️
packages/jaspr_cli/lib/src/process_runner.dart 69.23% 4 Missing ⚠️
... and 10 more
Additional details and impacted files
@@            Coverage Diff             @@
##             next     #617      +/-   ##
==========================================
+ Coverage   60.94%   68.49%   +7.55%     
==========================================
  Files         196      203       +7     
  Lines       11208    11387     +179     
==========================================
+ Hits         6831     7800     +969     
+ Misses       4377     3587     -790     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@schultek schultek marked this pull request as ready for review January 9, 2026 16:40
@schultek schultek requested a review from Copilot January 9, 2026 16:40
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the Jaspr CLI to support the new dart install jaspr_cli installation method, removes the dependency on the webdev package, and improves logging throughout the codebase. The core changes involve implementing a custom daemon infrastructure to replace webdev's daemon functionality, creating a new DevProxy class to manage web development workflow, and updating all references from webdev to the new custom implementation.

Key changes:

  • Implemented custom daemon infrastructure (daemon, domain, daemon_domain, logger) to replace webdev dependency
  • Created DevProxy class to manage DWDS integration and build workflows independently
  • Updated dependency versions and removed webdev from dependencies

Reviewed changes

Copilot reviewed 30 out of 31 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
pubspec.lock Updates transitive dependencies after removing webdev and upgrading related packages (build_daemon, dds, dwds, vm_service, etc.)
packages/jaspr_cli/pubspec.yaml Removes webdev dependency, updates dwds to fixed version 24.3.10, reorganizes dependencies, and adds new required packages (dds, build_daemon)
packages/jaspr_cli/test/domains/scopes_test.dart Updates import from webdev daemon to custom daemon implementation
packages/jaspr_cli/test/domains/html_test.dart Updates import from webdev daemon to custom daemon implementation
packages/jaspr_cli/lib/src/project.dart Adds utility constants and functions for dart executable path detection, SDK version, and DevTools path
packages/jaspr_cli/lib/src/logging.dart Updates builder log handling to show progress indicator when not in verbose mode
packages/jaspr_cli/lib/src/helpers/proxy_helper.dart Refactors to use DevProxy instead of direct webdev integration, removes SSE proxy handler
packages/jaspr_cli/lib/src/helpers/flutter_helpers.dart Updates serveFlutter to use constant for flutter proxy port instead of parameter
packages/jaspr_cli/lib/src/helpers/daemon_helper.dart Removes webdev imports and DaemonLogger implementation (moved to separate file)
packages/jaspr_cli/lib/src/domains/scopes_domain.dart Updates imports from webdev to custom daemon implementation
packages/jaspr_cli/lib/src/domains/html_domain.dart Updates imports from webdev to custom daemon implementation
packages/jaspr_cli/lib/src/dev/util.dart New file providing utility functions for build daemon connection, port reading, and argument parsing
packages/jaspr_cli/lib/src/dev/dev_proxy.dart New file implementing DevProxy class to manage DWDS integration and web development workflow
packages/jaspr_cli/lib/src/dev/client_workflow.dart Refactors to use DevProxy instead of webdev's ServerManager, simplifies configuration
packages/jaspr_cli/lib/src/dev/client_domain.dart Updates to work with DevProxy instead of ServerManager
packages/jaspr_cli/lib/src/dev/chrome.dart Implements custom Chrome management replacing webdev's Chrome class
packages/jaspr_cli/lib/src/daemon/logger.dart New file implementing DaemonLogger (moved from daemon_helper)
packages/jaspr_cli/lib/src/daemon/domain.dart New file implementing Domain base class for daemon functionality
packages/jaspr_cli/lib/src/daemon/daemon_domain.dart New file implementing DaemonDomain for daemon protocol
packages/jaspr_cli/lib/src/daemon/daemon.dart New file implementing core Daemon class for command routing
packages/jaspr_cli/lib/src/commands/tooling_daemon_command.dart Adds import for DaemonLogger from new location
packages/jaspr_cli/lib/src/commands/serve_command.dart Updates to use custom daemon and DevProxy
packages/jaspr_cli/lib/src/commands/doctor_command.dart Updates to use dartSdkVersion and dartExecutable from project.dart
packages/jaspr_cli/lib/src/commands/dev_command.dart Refactors to use DevProxy, updates logging messages to use "compilers" plural, updates port constants
packages/jaspr_cli/lib/src/commands/daemon_command.dart Adds DaemonLogger import and updates to use DevProxy
packages/jaspr_cli/lib/src/commands/clean_command.dart Updates to use port constants from project.dart
packages/jaspr_cli/lib/src/commands/build_command.dart Updates to use new startBuildDaemon from util.dart, improves logging messages, updates port constants
packages/jaspr_cli/lib/src/commands/base_command.dart Makes tag parameter optional in watchProcess method
packages/jaspr_cli/analysis_options.yaml Removes sort_pub_dependencies linter rule
packages/jaspr/CHANGELOG.md Documents breaking change for installation method and CLI improvements
apps/website/lib/pages/home/2_devex/items/1_run.dart Updates example output from "compiler" to "compilers"

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/jaspr_cli/lib/src/dev/util.dart Outdated
Comment thread packages/jaspr_cli/lib/src/project.dart Outdated
Comment thread packages/jaspr_cli/lib/src/project.dart Outdated
Comment thread packages/jaspr_cli/lib/src/dev/util.dart
Comment thread packages/jaspr_cli/lib/src/project.dart
Comment thread packages/jaspr_cli/lib/src/project.dart
Comment thread packages/jaspr_cli/pubspec.yaml Outdated
Comment thread packages/jaspr_cli/lib/src/dev/util.dart
@parlough
Copy link
Copy Markdown
Contributor

This is an exciting fix with great cleanup @schultek, thanks so much. Is it ready to test out?

@schultek
Copy link
Copy Markdown
Owner Author

It's ready to test, I'm just working on improving the unit test situation for the cli right now.

@schultek
Copy link
Copy Markdown
Owner Author

@parlough This is ready for review now, if you have time.

Copy link
Copy Markdown
Contributor

@parlough parlough left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great to me, thanks so much @schultek!

I read through the code and added tests, then manually tested a few scenarios on both sites as well (on macOS).

schultek and others added 4 commits February 5, 2026 16:18
# Conflicts:
#	modules/jaspr-code/CHANGELOG.md
#	modules/jaspr-code/package.json
#	packages/jaspr/CHANGELOG.md
#	packages/jaspr_cli/lib/src/commands/build_command.dart
#	packages/jaspr_cli/lib/src/commands/dev_command.dart
#	packages/jaspr_cli/lib/src/helpers/daemon_helper.dart
#	packages/jaspr_cli/lib/src/helpers/proxy_helper.dart
@schultek schultek changed the base branch from main to next March 20, 2026 14:53
@schultek schultek merged commit 2a5ed22 into next Mar 20, 2026
13 checks passed
@schultek schultek deleted the fix/jaspr-install branch March 20, 2026 14:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants