gql-dart / multipack Goto Github PK
View Code? Open in Web Editor NEWA tool for monorepo management. Link local packages and execute commands in topological order.
License: MIT License
A tool for monorepo management. Link local packages and execute commands in topological order.
License: MIT License
implement pub outdated
command
Thanks for the tool!
I was reading through the Future plans sections and saw the following
multipack test
multipack test --coverage
multipack build
multipack clean
What are the plans to support it? Is it known what changes need to be made?
Happy to help!
$ multipack pub get
multipack gql_pedantic
multipack pub get
Unhandled exception:
ProcessException: No such file or directory
Command: pub get
#0 _ProcessImpl._start (dart:io-patch/process_patch.dart:401:33)
#1 Process.start (dart:io-patch/process_patch.dart:38:20)
#2 Package.run (package:multipack/package.dart:76:35)
#3 Package.pub (package:multipack/package.dart:105:12)
#4 PubCommand.runOnPackage (package:multipack/commands/pub.dart:15:58)
#5 MultipackCommand.run (package:multipack/commands/common.dart:57:27)
<asynchronous suspension>
#6 CommandRunner.runCommand (package:args/command_runner.dart:197:13)
<asynchronous suspension>
#7 main (file:///Users/brettmorgan/.pub-cache/hosted/pub.dartlang.org/multipack-0.1.4/bin/multipack.dart:55:3)
<asynchronous suspension>
Hey ๐
I came across multipack today whilst searching on pub.dev for monorepo tools.
This is purely speculation, but I thought it might be worth at least discussing if you'd be interested in collaboration here; I'm the author of Melos and as far as I can see Melos mostly covers the design goals of multipack so this may be an opportunity to reduce maintenance burdens for both our projects by collaborating.
Thoughts? Happy to answer any questions, I'm also on the Discord server (Salakar#1337) should you wish to chat that way.
The command multipack pubspec override
should sort dependencies after overriding it. This is causing the CI of gql
packages to fail.
example:
Original pubspec.yaml
name: gql_http_link
version: 0.4.2
description: GQL Terminating Link to execute requests via HTTP using JSON.
repository: https://github.com/gql-dart/gql
environment:
sdk: '>=2.12.0 <3.0.0'
dependencies:
gql: ^0.13.0
gql_exec: ^0.4.0
gql_link: ^0.4.2
http: ^0.13.0
http_parser: ^4.0.0
meta: ^1.3.0
dev_dependencies:
build_runner: ^2.0.0
gql_pedantic: ^1.0.2
mockito: ^5.0.0-nullsafety.7
test: ^1.16.2
After running override
name: gql_http_link
version: 0.4.2
description: GQL Terminating Link to execute requests via HTTP using JSON.
repository: https://github.com/gql-dart/gql
environment:
sdk: '>=2.12.0 <3.0.0'
dependencies:
gql: ^0.13.0
gql_exec: ^0.4.0
gql_link: ^0.4.2
http: ^0.13.0
http_parser: ^4.0.0
meta: ^1.3.0
dev_dependencies:
build_runner: ^2.0.0
gql_pedantic: ^1.0.2
mockito: ^5.0.0-nullsafety.7
test: ^1.16.2
dependency_overrides:
gql_pedantic:
path: ../../gql_pedantic
gql: <<<<<<< error, this should be placed before gql_pedantic
path: ../../gql
gql_exec:
path: ../gql_exec
gql_link:
path: ../gql_link
gql_websocket_link:
path: ../gql_websocket_link
gql_transform_link:
path: ../gql_transform_link
gql_error_link:
path: ../gql_error_link
gql_code_builder:
path: ../../codegen/gql_code_builder
gql_build:
path: ../../codegen/gql_build
gql_example_http_auth_link:
path: ../../examples/gql_example_http_auth_link
gql_dio_link:
path: ../gql_dio_link
gql_example_dio_link:
path: ../../examples/gql_example_dio_link
gql_example_cli_github:
path: ../../examples/gql_example_cli_github
gql_example_cli:
path: ../../examples/gql_example_cli
gql_example_build:
path: ../../examples/gql_example_build
gql_dedupe_link:
path: ../gql_dedupe_link
end_to_end_test:
path: ../../codegen/end_to_end_test
Example hard_override
Original pubspec.yaml
name: gql_build
version: 0.4.0
description: Useful builders for your GraphQL SDL and documents. Based on package:gql_code_builder and package:build
repository: https://github.com/gql-dart/gql
environment:
sdk: '>=2.12.0 <3.0.0'
dependencies:
analyzer: ^2.3.0
build: ^2.1.0
built_collection: ^5.0.0
built_value: ^8.0.6
built_value_generator: ^8.0.6
code_builder: ^4.0.0
dart_style: ^2.0.0
glob: ^2.0.0
gql: ^0.13.0
gql_code_builder: ^0.4.0
path: ^1.8.0
yaml: ^3.1.0
dev_dependencies:
build_test: ^2.0.0
gql_pedantic: ^1.0.2
After multipack pubspec hard_override
name: gql_build
version: 0.4.0
description: Useful builders for your GraphQL SDL and documents. Based on package:gql_code_builder and package:build
repository: https://github.com/gql-dart/gql
environment:
sdk: '>=2.12.0 <3.0.0'
dependencies:
analyzer: ^2.3.0
build: ^2.1.0
built_collection: ^5.0.0
built_value: ^8.0.6
built_value_generator: ^8.0.6
code_builder: ^4.0.0
dart_style: ^2.0.0
glob: ^2.0.0
path: ^1.8.0
yaml: ^3.1.0
gql:
path: ../../gql
gql_code_builder:
path: ../gql_code_builder
dev_dependencies:
build_test: ^2.0.0
gql_pedantic:
path: ../../gql_pedantic
Related commit gql-dart/gql@e0f5f37
currently, I get the following error
Unhandled exception:
NoSuchMethodError: The getter 'reversed' was called on null.
Receiver: null
Tried calling: reversed
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1 main (file:///Users/smkhalsa/.pub-cache/hosted/pub.dartlang.org/multipack-0.1.3/bin/multipack.dart:10:69)
<asynchronous suspension>
#2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
when running multipack pubspec override
if I have a circular dependency.
As I've mentioned elsewhere, I cannot use multipack at all locally. This makes troubleshooting gql
's CI a nightmare. gql-dart/gql#114 (comment)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.