Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: dart_frog build in a pub workspace (dart ^3.5) #1518

Open
Leptopoda opened this issue Sep 16, 2024 · 1 comment
Open

fix: dart_frog build in a pub workspace (dart ^3.5) #1518

Leptopoda opened this issue Sep 16, 2024 · 1 comment
Labels
bug Something isn't working as expected p3 Issues that we currently consider unimportant

Comments

@Leptopoda
Copy link

Description

dart_frog build fails when run in a pub workspace package.
The issue seems to be that a pub workspace will only generate one global pbspec.lock file for the entire repository. Therefore, the post gen hook of the dart_frog_prod_server mason module fails.

 dart_frog build 
✓ Installing dependencies (3.4s)
✓ Bundling sources (0.2s)
An exception occurred while executing hook:REDACTED/.mason-cache/bundled/dart_frog_prod_server_0.1.0+1_8f9e5f00a1ad5ac6fe64824ffeb33163fed9b0ba/hooks/pre_gen.dart.
Error: PathNotFoundException: Cannot open file, path = 'REDACTED/packages/api/pubspec.lock' (OS Error: No such file or directory, errno = 2)

Steps To Reproduce

  1. create a dart pub workspace mono repo
  2. cd packages/api (the package our server code is living in)
  3. dart_frog build

Expected Behavior

dart_frog manages to build the server code.

Additional Context

For reference, pub workspaces are the new dart native mono repo management, which is currently in preview since dart 3.5.
More info at: https://flutter.dev/go/pub-workspace

@Leptopoda Leptopoda added the bug Something isn't working as expected label Sep 16, 2024
@tomarra
Copy link
Contributor

tomarra commented Sep 24, 2024

Hi @Leptopoda 👋 Thanks for opening this issue!

In talking with the team we do believe that this is a valid bug as we have not added in support for Workspaces at this time to any of our packages. The main reason for this is that overall the Workspaces feature is still experimental from the Dart team. This was pointed out by the team in the post announcing the 3.5 release

We believe the fundamental solution is to create a single, shared resolution of the versions of each dependency in such repos, and are working on such a capability via a new pub feature called workspaces. We’ll have much more to share about this in our next Dart release, but for now you can go ahead and see how this was recently applied to the Flutter engine repo.

Given this, I'm going to leave the issue open as it is valid but we won't plan on re-evaluating it until the Workspace feature is complete and fully launched by the Dart team.

@tomarra tomarra added the p3 Issues that we currently consider unimportant label Sep 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working as expected p3 Issues that we currently consider unimportant
Projects
Status: Backlog
Development

No branches or pull requests

2 participants