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

[Feature] Could the create command be separated into two commands, one for app and one for lib? #41

Closed
james-spears opened this issue Feb 12, 2021 · 10 comments

Comments

@james-spears
Copy link

james-spears commented Feb 12, 2021

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

No.

Describe the idea you'd like
A clear and concise description of what you want to happen.

I would like to see nx g @nxrocks/nx-flutter:create separated into:

nx g @nxrocks/nx-flutter:app [--directory=]
nx g @nxrocks/nx-flutter:lib [--directory=]

; and allowing them to be integrated into the nx dependecy graph mechanism. Flutter has applications, modules, packages, and plugins, so there is a natural separation between apps and libs as far as the flutter cli is concerned.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

The scaffolding schema could be easily split into two schemas, one for app and one for lib. Since you are defering to the flutter cli in both cases it should as easy as changing the schematic's schema and allowing only for certain cli arguments in each case. This line:

const projectType = ProjectType.Application;

should become:

const projectType = ProjectType.Library;

in the library case.

Additional context
Add any other context or screenshots about the feature request here.

There is of course the issue of imports. I think to fully appreciate the nx tool for code sharing, you ought to be able to import a flutter lib in a flutter app. But because nx is a node.js tool I am also thinking there would have to be some integration with the dart language to be able to excute npm build or npm test at the root directory and have your flutter app pull it's dependencies and compile. This is just an idea, since I think nx + flutter would be a really cool setup for a web, mobile, desktop, AND node.js backend and run the whole show from 1 repo.

@james-spears james-spears added the 🆕 enhancement New feature or request label Feb 12, 2021
@james-spears james-spears changed the title [Feature] [Feature] Could the create command be separated into two commands, one for app and one for lib? Feb 12, 2021
@tinesoft
Copy link
Owner

Hi @jameone

Thank you for using the plugin and for the feature request.

Instead on spitting the create command into 2 (one for app, one for lib), I can instead rely
on the existing template option to infer the appropriate project type:

  • if template=app => projectType.Application
  • else (template = module|package|plugin => projectType.Library

I'm planning on removing both application and app(both aliases of create) in the next major version of the plugin, to avoid confusion.

I will start this improvement asap.

Unfortunately, as you said, this is not enough to have the dependency graph support (that Nx natively offers for Node-based projects) working. I'm still investigating on how this could be integrated into Nx's nx dep-graph command. This is currently being tracked by #28. Any help/suggestion is welcome!

@james-spears
Copy link
Author

james-spears commented Feb 14, 2021

Hi @tinesoft,

I like the idea of making the existing comand smarter, rather than splitting 1 command into 2 commands. What you describe is definately a better approach.

I have given some thought about how you would integrate with dep-graph (note: this insight comes from using the nx tool and so is basically my assumptions about how nx works, not from analysis of the code, and is specific to my experience which is nx with TypeScript/Angular).

So, for the imports, the nx tool is making use of the TypeScript compiler's path mapping feature. So if you were to do something similar with Flutter, I think I would start looking at the Dart compiler and seeing if there were any similar features, like mapped imports, with which you could integrate with nx via a node package (I am thinking something like the node equivalent of a polyfill).

With dep-graph it seems to me nx is aware of the TypeScript mapped imports, and the user defined project structure (apps, libs and tools) then by analyzing the code and the tsconfig is able to construct the dep graph using the mapped imports. I have also noticed implicit dependencies are noted in the root level nx.json, but other user defined dependencies (ex. importing a lib into an app) are not present. So the logic of dep-graph must be something like: recurse directories of all the apps, libs, and tools, look for mapped imports, and construct the graph, then add implicit dependencies from nx.json.

SO, it would be ideal if nx would allow you to add dependencies to the nx.json (maybe this already exists) to support cross language projects. And it was was easy as amending the nx.json to alter the dep-graph. The nx algorithm could still do it's thing and look for mapped imports, and then in step where it is looking for "implicitDependencies", also look for "explicitDependencies", and add those in last.

I was a bit hesitant to make this request, because as I wrote I started to realize that there was only so much you could do as a plugin, you kind of have to play by the existing rules. But I think the ideal plugin would allow you to create 2 apps and 1 lib and let both apps import the lib. If this is not possible, then perhaps after some more research this can become a feature request to Nx for better multi-language support, or to Dart for mapped imports. I also need to do more research. Thanks for sharing your plugin though, very cool, much appreciated.

github-actions bot pushed a commit that referenced this issue Apr 1, 2021
# [@nxrocks/nx-flutter-v2.0.0-beta.1](nx-flutter/v1.3.0...nx-flutter/v2.0.0-beta.1) (2021-04-01)

### Bug Fixes

* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)

### Features

* **nx-flutter:** create project in `apps` or `libs` based on `template` ([092a7c1](092a7c1)), closes [#41](#41)
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([e1a7c7c](e1a7c7c))
* **nx-flutter:** rename the `application` generator into `project` ([99ab030](99ab030))

### BREAKING CHANGES

* **nx-flutter:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
@github-actions
Copy link

github-actions bot commented Apr 1, 2021

🎉 This issue has been resolved in version @nxrocks/nx-flutter-v2.0.0-beta.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this issue Apr 1, 2021
# [@nxrocks/nx-spring-boot-v2.0.0-beta.1](nx-spring-boot/v1.3.1...nx-spring-boot/v2.0.0-beta.1) (2021-04-01)

### Bug Fixes

* **nx-spring-boot:** correct wrong extension for `gradlew` on windows ([d1cfb60](d1cfb60))
* **nx-spring-boot:** remove extra char in `dependencies` prompt ([3152965](3152965))

### Features

* **nx-spring-boot:** allow generating 'application' or 'library' ([311642e](311642e))
* **nx-flutter:** create project in `apps` or `libs` based on `template` ([092a7c1](092a7c1)), closes [#41](#41)
* **nx-spring-boot:** migrate to Nrwl's DevKit executors/generators API ([47231fd](47231fd))
* **nx-spring-boot:** rename the `application` generator into `project` ([6c567bb](6c567bb))

### BREAKING CHANGES

* **nx-spring-boot:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `create`, `generate`].
* **nx-spring-boot:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
@github-actions
Copy link

github-actions bot commented Apr 1, 2021

🎉 This issue has been resolved in version @nxrocks/nx-spring-boot-v2.0.0-beta.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

tinesoft added a commit that referenced this issue Apr 1, 2021
If the project being created has the `app` template, it will be placed in the `apps` folder. Otherwise, it will be added to `libs` folder.

Closes #41
github-actions bot pushed a commit that referenced this issue Apr 1, 2021
# [@nxrocks/nx-flutter-v2.0.0-beta.1](nx-flutter/v1.3.0...nx-flutter/v2.0.0-beta.1) (2021-04-01)

### Bug Fixes

* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)

### Features

* **nx-flutter:** create project in `apps` or `libs` based on `template` ([c39f92d](c39f92d)), closes [#41](#41)
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([783dae7](783dae7))
* **nx-flutter:** rename the `application` generator into `project` ([bf8c853](bf8c853))

### BREAKING CHANGES

* **nx-flutter:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
github-actions bot pushed a commit that referenced this issue Apr 2, 2021
# [@nxrocks/nx-flutter-v2.0.0-beta.1](nx-flutter/v1.3.0...nx-flutter/v2.0.0-beta.1) (2021-04-02)

### Bug Fixes

* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)

### Features

* **nx-flutter:** create project in `apps` or `libs` based on `template` ([c39f92d](c39f92d)), closes [#41](#41)
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([783dae7](783dae7))
* **nx-flutter:** rename the `application` generator into `project` ([bf8c853](bf8c853))

### BREAKING CHANGES

* **nx-flutter:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
tinesoft added a commit that referenced this issue Apr 2, 2021
If the project being created has the `app` template, it will be placed in the `apps` folder. Otherwise, it will be added to `libs` folder.

Closes #41
github-actions bot pushed a commit that referenced this issue Apr 2, 2021
# [1.4.0-beta.1](nx-flutter/v1.3.0...nx-flutter/v1.4.0-beta.1) (2021-04-02)

### Bug Fixes

* **nx-spring-boot:** always restore executable permissions on wrappers ([b9875d8](b9875d8))
* **nx-spring-boot:** correct error when executing builders on Windows ([1a744ab](1a744ab)), closes [#38](#38)
* **nx-spring-boot:** correct generation issue on Nx workspaces >=v11.2.0 ([d3c3816](d3c3816)), closes [#37](#37)
* **nx-spring-boot:** correct wrong extension for `gradlew` on windows ([77899ce](77899ce))
* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)
* **nx-spring-boot:** remove extra char in `dependencies` prompt ([5bc0290](5bc0290))

### Features

* **nx-spring-boot:** allow generating `application` or `library` ([530186c](530186c))
* **nx-flutter:** create project in `apps` or `libs` based on `template` ([dc20e0b](dc20e0b)), closes [#41](#41)
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([8c72ed5](8c72ed5))
* **nx-spring-boot:** migrate to Nrwl's DevKit executors/generators API ([47231fd](47231fd))
* **nx-flutter:** rename the `application` generator into `project` ([6361557](6361557))
* **nx-spring-boot:** rename the `application` generator into `project` ([05b5272](05b5272))

### BREAKING CHANGES

* **nx-flutter:** CHANGE: the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** CHANGE: Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.
* **nx-spring-boot:** CHANGE: the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `create`, `generate`].
* **nx-spring-boot:** CHANGE: Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
@github-actions
Copy link

github-actions bot commented Apr 2, 2021

🎉 This issue has been resolved in version 1.4.0-beta.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this issue Apr 2, 2021
# [1.4.0-beta.1](nx-spring-boot/v1.3.1...nx-spring-boot/v1.4.0-beta.1) (2021-04-02)

### Bug Fixes

* **nx-spring-boot:** correct wrong extension for `gradlew` on windows ([77899ce](77899ce))
* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)
* **nx-spring-boot:** remove extra char in `dependencies` prompt ([5bc0290](5bc0290))

### Features

* **nx-spring-boot:** allow generating `application` or `library` ([530186c](530186c))
* **nx-flutter:** create project in `apps` or `libs` based on `template` ([dc20e0b](dc20e0b)), closes [#41](#41)
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([8c72ed5](8c72ed5))
* **nx-spring-boot:** migrate to Nrwl's DevKit executors/generators API ([47231fd](47231fd))
* **nx-flutter:** rename the `application` generator into `project` ([6361557](6361557))
* **nx-spring-boot:** rename the `application` generator into `project` ([05b5272](05b5272))

### BREAKING CHANGES

* **nx-flutter:** CHANGE: the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** CHANGE: Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.
* **nx-spring-boot:** CHANGE: the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `create`, `generate`].
* **nx-spring-boot:** CHANGE: Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
@github-actions
Copy link

github-actions bot commented Apr 2, 2021

🎉 This issue has been resolved in version 1.4.0-beta.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this issue Apr 2, 2021
# [@nxrocks/nx-flutter-v2.0.0-beta.1](nx-flutter/v1.3.0...nx-flutter/v2.0.0-beta.1) (2021-04-02)

### Bug Fixes

* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)

### Features

* **nx-flutter:** create project in `apps` or `libs` based on `template` ([dc20e0b](dc20e0b)), closes [#41](#41)
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([8c72ed5](8c72ed5))
* **nx-flutter:** rename the `application` generator into `project` ([6361557](6361557))

### BREAKING CHANGES

* **nx-flutter:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
@github-actions
Copy link

github-actions bot commented Apr 2, 2021

🎉 This issue has been resolved in version @nxrocks/nx-flutter-v2.0.0-beta.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this issue Apr 2, 2021
# [@nxrocks/nx-flutter-v2.0.0](nx-flutter/v1.3.0...nx-flutter/v2.0.0) (2021-04-02)

### Bug Fixes

* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)

### Features

* **nx-flutter:** create project in `apps` or `libs` based on `template` ([dc20e0b](dc20e0b)), closes [#41](#41)
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([8c72ed5](8c72ed5))
* **nx-flutter:** rename the `application` generator into `project` ([6361557](6361557))

### BREAKING CHANGES

* **nx-flutter:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
@github-actions
Copy link

github-actions bot commented Apr 2, 2021

🎉 This issue has been resolved in version @nxrocks/nx-flutter-v2.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

tinesoft pushed a commit that referenced this issue Apr 5, 2021
# [@nxrocks/nx-flutter-v2.0.0](nx-flutter/v1.3.0...nx-flutter/v2.0.0) (2021-04-02)

### Bug Fixes

* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)

### Features

* **nx-flutter:** create project in `apps` or `libs` based on `template` ([dc20e0b](dc20e0b)), closes [#41](#41)
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([8c72ed5](8c72ed5))
* **nx-flutter:** rename the `application` generator into `project` ([6361557](6361557))

### BREAKING CHANGES

* **nx-flutter:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
github-actions bot pushed a commit that referenced this issue Jan 10, 2023
# @nxrocks/nx-melos-v1.0.0 (2023-01-10)

### Bug Fixes

*  wrong `@nxrocks/common` version referenced in dependent packages ([1b4b0e6](1b4b0e6))
* add `{workspaceRoot}` prefix (from Nx `v15+`) to targets' `outputs` ([411b402](411b402))
* **common:** fix `Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close` ([fb5f797](fb5f797)), closes [#142](#142)
* **common:** fix bug when fetching dependencies of maven based projects ([2ada704](2ada704))
* **common:** fix regex used to fetch gradle dependencies ([f1779a4](f1779a4))
* **common:** fix wrong groupId used for Spotless maven plugin ([3e4c613](3e4c613))
* **common:** ignore output when fetching package latest version from npm ([f426575](f426575))
* **common:** improve the checking/adding of a maven plugin  in `pom.xml` ([b8f59cf](b8f59cf))
* correct `TypeError: builder.getProjectGraph is not a function` ([3458f66](3458f66)), closes [#72](#72)
* enforce plugin `peerDependencies` on Nx `v15.0.0` and later ([4c220bb](4c220bb))
* fix executor output not restored when found in Nx cache ([fbb385a](fbb385a)), closes [#111](#111)
* fix installation issue due to `hpagent` not being found ([3620d23](3620d23)), closes [#128](#128)
* fix transitive `dependencies` from `@nxrocks/common` ([3594b1e](3594b1e)), closes [#131](#131)
* fix transitive dependencies from @nxrocks/common ([56631b2](56631b2)), closes [#131](#131) [#150](#150) [#152](#152) [#153](#153)
* include updated `package.json` in git when semantic releasing ([cb87139](cb87139))
* **nx-flutter:** add missing `buildAar` builder ([44432eb](44432eb))
* **nx-flutter:** add missing config for semantic-releasing ([06fd1bd](06fd1bd))
* **nx-flutter:** add plugin to nx.json only if not included already ([b98c1e9](b98c1e9))
* **nx-flutter:** correct generation error due to `platforms` option ([fc56c5e](fc56c5e)), closes [#22](#22)
* **nx-flutter:** correct generation error on multi word `description` ([1ed2d97](1ed2d97)), closes [#23](#23)
* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)
* **nx-flutter:** fix non-interactive generation of flutter projects ([6c4a5aa](6c4a5aa))
* **nx-melos:** add missing `release` target in `project.json` ([a1d8c1f](a1d8c1f))
* **nx-micronaut:** fix `serve` and `apply-format` alias executors ([30d75d7](30d75d7))
* **nx-micronaut:** fix generation without feature ([#136](#136)) ([76db010](76db010))
* **nx-micronaut:** fix project's base package/artifact name computation ([f2f2983](f2f2983))
* **nx-quarkus:** add plugin to `nx.json` only if not included already ([a964652](a964652))
* **nx-quarkus:** fix `Premature close` error when generating project ([6ebcd85](6ebcd85)), closes [#97](#97)
* **nx-quarkus:** fix `serve` and `apply-format` alias executors ([46b9695](46b9695))
* **nx-quarkus:** remove `ratchetFrom` from the default Spotless config ([59cb372](59cb372))
* **nx-spring-boot:** add plugin to nx.json only if not included already ([15511ae](15511ae))
* **nx-spring-boot:** always restore executable permissions on wrappers ([b9875d8](b9875d8))
* **nx-spring-boot:** correct error when executing builders on Windows ([1a744ab](1a744ab)), closes [#38](#38)
* **nx-spring-boot:** correct generation issue on Nx workspaces >=v11.2.0 ([d3c3816](d3c3816)), closes [#37](#37)
* **nx-spring-boot:** correct wrong extension for `gradlew` on windows ([77899ce](77899ce))
* **nx-spring-boot:** fix `Premature close` error when generating project ([f6b433d](f6b433d)), closes [#97](#97)
* **nx-spring-boot:** fix `serve` and `apply-format` alias executors ([29f5183](29f5183))
* **nx-spring-boot:** fix creating spring boot libraries with `gradle` ([500a7d0](500a7d0))
* **nx-spring-boot:** fix error when generating a gradle/kotlin project ([abfbd04](abfbd04)), closes [#15](#15)
* **nx-spring-boot:** fix generation error when setting `javaVersion` ([364b228](364b228)), closes [#98](#98)
* **nx-spring-boot:** fix library projects should not be executable ([b118a4e](b118a4e)), closes [#113](#113)
* **nx-spring-boot:** fix prompts not working generating the application ([b96e1ce](b96e1ce)), closes [#6](#6)
* **nx-spring-boot:** fix wrong 'cwd' used to execute builders commands ([b39e7e7](b39e7e7))
* **nx-spring-boot:** make builders executable platform independant ([b27bc4c](b27bc4c))
* **nx-spring-boot:** remove `ratchetFrom` from the default Spotless conf ([1462022](1462022))
* **nx-spring-boot:** remove extra char in `dependencies` prompt ([5bc0290](5bc0290))
* **nx-spring-boot:** set correct path for executors ([89e16d3](89e16d3))
* **nx-spring-boot:** some user options were not used during generation ([6813e7d](6813e7d)), closes [#17](#17)
* plugins include spec files in distributed pkg ([21bac53](21bac53))
* set `@nrwl/*` packages as `peerDependencies` ([d03b709](d03b709)), closes [#106](#106)

### Features

* **common:** add a utility to disable a gradle plugin ([171ad81](171ad81))
* **common:** add a utility to remove a maven plugin from the `pom.xml` ([8c13087](8c13087))
* **common:** add helper to get project root directory ([adbc8a9](adbc8a9))
* **common:** add support for `nx-micronaut` plugin ([b72cdaf](b72cdaf))
* **common:** add utility method to get http[s] proxy agent ([da61925](da61925))
* **common:** add utility to check the presence of a plugin in `pom.xml` ([bfec05f](bfec05f))
* **common:** add utility to unzip a zip stream ([a472c00](a472c00))
* **common:** add xml utilities to remove or check if a node is empty ([d07b827](d07b827))
* **common:** allow using legacy wrappers (i.e `.bat`, for maven mostly) ([7a13720](7a13720))
* **common:** increase the `maxBuffer` when running executors commands ([4bc388d](4bc388d))
* **common:** make the `version` optional when adding a gradle plugin ([bd3a182](bd3a182))
* **common:** move `octal` function into e2e testing utils ([b15a616](b15a616))
* **common:** update Spotless gradle plugin from `6.2.2` --> `6.8.0` ([8c76d3b](8c76d3b))
* **common:** update Spotless maven plugin from `2.20.2` --> `2.23.0` ([ab182ef](ab182ef))
* **nx-flutter:** add `create` alias to  project generation schematics ([0386629](0386629)), closes [#27](#27)
* **nx-flutter:** add `doctor` executor to run `flutter doctor` checks ([9d35de1](9d35de1))
* **nx-flutter:** add nx-flutter plugin ([e7426e9](e7426e9))
* **nx-flutter:** add special instructions to generate the app ([d5f768a](d5f768a))
* **nx-flutter:** add support for Nx 's dependency graph generation ([6fb58de](6fb58de)), closes [#28](#28)
* **nx-flutter:** auto-adapt prompt & builders based on previous answers ([668dd28](668dd28)), closes [#26](#26)
* **nx-flutter:** create project in `apps` or `libs` based on `template` ([dc20e0b](dc20e0b)), closes [#41](#41)
* **nx-flutter:** improve typings for `template` and `platforms` options ([b614dc4](b614dc4))
* **nx-flutter:** make all `build` executors results cacheable ([a08dbb8](a08dbb8))
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([8c72ed5](8c72ed5))
* **nx-flutter:** rename executors to use `kebab-case` ([319558f](319558f))
* **nx-flutter:** rename the `application` generator into `project` ([6361557](6361557))
* **nx-flutter:** use `NX_VERBOSE_LOGGING` to control logs in dep graph ([e678ed5](e678ed5))
* **nx-melos:** add `nx-melos` plugin ([4fb5da8](4fb5da8))
* **nx-micronaut:**  add proxy support for project generation ([615c412](615c412))
* **nx-micronaut:** add `nx-micronaut` plugin ([08d6099](08d6099))
* **nx-micronaut:** add `skipFormat` to control code formatting ([bbc0df2](bbc0df2))
* **nx-micronaut:** add install executor + make build depend on it ([10ab5b7](10ab5b7))
* **nx-micronaut:** make `build` executor results cacheable ([d116760](d116760))
* **nx-micronaut:** rename executors to use `kebab-case` ([7bfc305](7bfc305))
* **nx-micronaut:** unselect by default adding code formatting support ([cb52710](cb52710))
* **nx-micronaut:** update JDK version from `16` -> `17` ([a0e81e1](a0e81e1)), closes [#135](#135)
* **nx-quarkus:**  add `format` executor ([89e6c4d](89e6c4d))
* **nx-quarkus:**  add proxy support for project generation ([eaefe9a](eaefe9a))
* **nx-quarkus:** add `format-check` executor to check code format ([d19f5ca](d19f5ca))
* **nx-quarkus:** add `link` generator to link projects implicitly ([2655b4f](2655b4f))
* **nx-quarkus:** add `skipFormat` to control code formatting ([197fe5e](197fe5e))
* **nx-quarkus:** add aliases for the format executor ([bcedf98](bcedf98))
* **nx-quarkus:** add install executor + make build depend on it ([a18a9aa](a18a9aa)), closes [#65](#65)
* **nx-quarkus:** add plugin to integrate `Quarkus` inside Nx workspace ([2f7c6c0](2f7c6c0))
* **nx-quarkus:** check if source is a valid quarkus project on linking ([dc97a41](dc97a41))
* **nx-quarkus:** improve  logging when project zip can't be fetched ([cb983f9](cb983f9))
* **nx-quarkus:** improve detection of quarkus projects in the workspace ([ee4731d](ee4731d))
* **nx-quarkus:** make `build` executor results cacheable ([6fb6a36](6fb6a36))
* **nx-quarkus:** rename executors to use `kebab-case` ([a8dd56c](a8dd56c))
* **nx-quarkus:** unselect by default adding code formatting support ([4892ad8](4892ad8))
* **nx-quarkus:** use `NX_VERBOSE_LOGGING` to control logs in dep graph ([5eaa639](5eaa639))
* **nx-spring-boot:**  add proxy support for project generation ([bd3ac7e](bd3ac7e)), closes [#125](#125)
* **nx-spring-boot:** add  java 16 support to align w/ Spring Initializr ([89c1d1e](89c1d1e))
* **nx-spring-boot:** add  java 17 support to align w/ Spring Initializr ([131df91](131df91))
* **nx-spring-boot:** add `application` schematics ([f22e63f](f22e63f))
* **nx-spring-boot:** add `clean` builder ([33a1435](33a1435))
* **nx-spring-boot:** add `format-check` executor to check code format ([337fca8](337fca8))
* **nx-spring-boot:** add `format` executor ([b5362ae](b5362ae))
* **nx-spring-boot:** add `ignoreWrapper` option to all builders ([e045bca](e045bca)), closes [#31](#31)
* **nx-spring-boot:** add `install` executor + make `build` depend on it ([68e1a5e](68e1a5e)), closes [#65](#65) [#66](#66) [#71](#71)
* **nx-spring-boot:** add `link` generator to link projects implicitly ([1142d04](1142d04))
* **nx-spring-boot:** add `serve` builder (alias to `run` builder) ([16dfdb4](16dfdb4)), closes [#8](#8)
* **nx-spring-boot:** add `skipFormat` to control code formatting ([8bff29b](8bff29b))
* **nx-spring-boot:** add `test` builder ([e257d27](e257d27)), closes [#30](#30)
* **nx-spring-boot:** add `User-Agent` header to requests to Initializr ([4c7f345](4c7f345)), closes [#11](#11)
* **nx-spring-boot:** add aliases for the format executor ([cbcee00](cbcee00))
* **nx-spring-boot:** add builders for run, buildJar/War, buildImage and buildInfo commands ([5c75781](5c75781))
* **nx-spring-boot:** add support for  `Kotlin DSL` when using `gradle` ([31063fe](31063fe))
* **nx-spring-boot:** add support for additional params for `buildJar` and `buildWar` builders ([b85ad9c](b85ad9c))
* **nx-spring-boot:** add support for additional params for `run` and `buildImage` builders ([1d9fbb3](1d9fbb3))
* **nx-spring-boot:** add support for Java 18 ([6dd94e1](6dd94e1))
* **nx-spring-boot:** add support for Nx's dependency graph generation ([95abe9d](95abe9d))
* **nx-spring-boot:** align Java versions with `Spring Initializr` ([1f6545d](1f6545d))
* **nx-spring-boot:** allow generating `application` or `library` ([530186c](530186c))
* **nx-spring-boot:** better determine the underlying  build system ([0edfe51](0edfe51))
* **nx-spring-boot:** check if source is a valid boot project on linking ([f74e524](f74e524))
* **nx-spring-boot:** improve detection of boot projects in  workspace ([bfb99ed](bfb99ed))
* **nx-spring-boot:** improve logging when project zip can't be fetched ([f1a5229](f1a5229))
* **nx-spring-boot:** make `build` executor results cacheable ([4528715](4528715))
* **nx-spring-boot:** make jar of `library` projects not executable ([1e2984f](1e2984f)), closes [#67](#67)
* **nx-spring-boot:** merge `buildJar` and `buildWar` executors ([9fdfec2](9fdfec2)), closes [#43](#43)
* **nx-spring-boot:** migrate to Nrwl's DevKit executors/generators API ([47231fd](47231fd))
* **nx-spring-boot:** rename executors to use `kebab-case` ([1e5d9f4](1e5d9f4)), closes [#117](#117)
* **nx-spring-boot:** rename the `application` generator into `project` ([05b5272](05b5272))
* **nx-spring-boot:** set `Java 17` as default version ([f41c555](f41c555))
* **nx-spring-boot:** unselect by default adding code formatting support ([005ad95](005ad95))
* **nx-spring-boot:** use `NX_VERBOSE_LOGGING` to control dep graph logs ([ed9e444](ed9e444)), closes [#68](#68)
* update to Nx workspace `v15.0.0` ([a0af206](a0af206)), closes [#138](#138)

### BREAKING CHANGES

* Nx `v15.x.x` is now the minimum required version to use the plugin
* **nx-flutter:** `interactive` option has been renamed into `skipAdditionalPrompts`

`interactive` is a reserved option for `nx generate` command, that gets deleted once Nx has interpreted it, so we need our own. Must still be combined with `--no-interactive` (from Nx), for fully non-interactivity
* **nx-micronaut:** `format-check` executor was renamed into `check-format` and `do-fomat` was removed
* **nx-quarkus:** `format-check` executor was renamed into `check-format` and `do-fomat` was removed
* **nx-spring-boot:** `format-check` executor was renamed into `check-format`
* **nx-flutter:** All executors of this plugin now use `kebab-case` over `camelCase` for consistency

This only affects `buildAar`, `buildApk`, `buildAppbundle`, `buildBundle`, `buildIos`, `buildIosFramework`, `buildIpa`, and `genL10n` executors, which have been renamed into `build-aar`, `build-apk`, `build-appbundle`, `build-bundle`, `build-ios`, `build-ios-framework`, `build-ipa`, and `gen-l10n` respectively.
* **nx-micronaut:** All executors of this plugin now use `kebab-case` over `camelCase` for consistency

This only affects `aotSampleConfig` executor, which has been renamed into `aot-sample-config`.
* **nx-quarkus:** All executors of this plugin now use `kebab-case` over `camelCase` for consistency

This only affects `remoteDev`, `addExtension` and `listExtensions` executors, which have been renamed into `remote-dev`, `add-extension`,  and `list-extensions` respectively.
* **nx-spring-boot:** All executors of this plugin now use `kebab-case` over `camelCase` for consistency

This only affect `buildImage` and `buildInfo` executors, which have been renamed into `build-image` and `build-info` respectively.
* **nx-spring-boot:** `build` is now the only executor to use to build the final jar or war
* Nx v12.6.x is now the minimum version required to use the plugins

This is due to breaking changes in DevKit's project graph API starting from v12.6.x
* **nx-flutter:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.
* **nx-spring-boot:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `create`, `generate`].
* **nx-spring-boot:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.

***
[skip ci]
@github-actions
Copy link

🎉 This issue has been resolved in version @nxrocks/nx-melos-v1.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this issue Oct 8, 2023
# 1.0.0 (2023-10-08)

### Bug Fixes

* add `{workspaceRoot}` prefix (from Nx `v15+`) to targets' `outputs` ([411b402](411b402))
* **common:** bump version of `@nxrocks/common` for Nx 16 support ([980a86f](980a86f)), closes [#169](#169)
* **common:** connections over Proxy not using correct `HTTP` protocol ([5cd3551](5cd3551)), closes [#158](#158)
* **common:** fix `Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close` ([fb5f797](fb5f797)), closes [#142](#142)
* **common:** fix bug when fetching dependencies of maven based projects ([2ada704](2ada704))
* **common:** fix dependency graph generation failure on `windows` OS ([26ef7c4](26ef7c4)), closes [#170](#170)
* **common:** fix deprecated usage of dependency graph API ([badf089](badf089))
* **common:** fix ProjectGraph for `Gradle` multi-module projects ([0ef0d17](0ef0d17))
* **common:** fix regex used to fetch gradle dependencies ([f1779a4](f1779a4))
* **common:** fix wrong groupId used for Spotless maven plugin ([3e4c613](3e4c613))
* **common:** ignore output when fetching package latest version from npm ([f426575](f426575))
* **common:** improve the checking/adding of a maven plugin  in `pom.xml` ([b8f59cf](b8f59cf))
* correct `TypeError: builder.getProjectGraph is not a function` ([3458f66](3458f66)), closes [#72](#72)
* enforce plugin `peerDependencies` on Nx `v15.0.0` and later ([4c220bb](4c220bb))
* fix executor output not restored when found in Nx cache ([fbb385a](fbb385a)), closes [#111](#111)
* fix installation issue due to `hpagent` not being found ([3620d23](3620d23)), closes [#128](#128)
* fix transitive `dependencies` from `@nxrocks/common` ([3594b1e](3594b1e)), closes [#131](#131)
* improve schemas of generators for a better UX in `Nx Console` ([0214736](0214736))
* loosen `peerDependencies` on `@nx/*` to support v16.0.0 AND higher ([fb2f8df](fb2f8df))
* **nx-flutter:** add missing `buildAar` builder ([44432eb](44432eb))
* **nx-flutter:** add missing config for semantic-releasing ([06fd1bd](06fd1bd))
* **nx-flutter:** add plugin to nx.json only if not included already ([b98c1e9](b98c1e9))
* **nx-flutter:** avoid generating files when running with `--dry-run` ([d539208](d539208))
* **nx-flutter:** correct generation error due to `platforms` option ([fc56c5e](fc56c5e)), closes [#22](#22)
* **nx-flutter:** correct generation error on multi word `description` ([1ed2d97](1ed2d97)), closes [#23](#23)
* **nx-flutter:** fix `format` executor to use `dart format` ([2f03466](2f03466))
* **nx-flutter:** fix error when generating module or package ([86eb3f8](86eb3f8)), closes [#44](#44)
* **nx-flutter:** fix error when generating shareable `package` projects ([1214fa7](1214fa7)), closes [#166](#166)
* **nx-flutter:** fix non-interactive generation of flutter projects ([6c4a5aa](6c4a5aa))
* plugins include spec files in distributed pkg ([21bac53](21bac53))
* set `@nrwl/*` packages as `peerDependencies` ([d03b709](d03b709)), closes [#106](#106)

### Features

* **common-cli:** add `common-cli` to share code among our `create-*` CLI packages ([bcb5fd2](bcb5fd2))
* **common:** add `addMavenProperty` helper and improve `xpath` matching ([9f89c08](9f89c08))
* **common:** add `MavenDependency` model ([5ab8c1d](5ab8c1d))
* **common:** add a utility to disable a gradle plugin ([171ad81](171ad81))
* **common:** add a utility to remove a maven plugin from the `pom.xml` ([8c13087](8c13087))
* **common:** add helper to get project root directory ([adbc8a9](adbc8a9))
* **common:** add support for `nx-micronaut` plugin ([b72cdaf](b72cdaf))
* **common:** add utilities for multi-module `maven`/`gradle` projects ([f2e4939](f2e4939))
* **common:** add utilities to add `maven`/`gradle` modules ([2237201](2237201))
* **common:** add utility method to get http[s] proxy agent ([da61925](da61925))
* **common:** add utility to check the presence of a plugin in `pom.xml` ([bfec05f](bfec05f))
* **common:** add utility to unzip a zip stream ([a472c00](a472c00))
* **common:** add xml utilities to remove or check if a node is empty ([d07b827](d07b827))
* **common:** allow using legacy wrappers (i.e `.bat`, for maven mostly) ([7a13720](7a13720))
* **common:** increase the `maxBuffer` when running executors commands ([4bc388d](4bc388d))
* **common:** make the `version` optional when adding a gradle plugin ([bd3a182](bd3a182))
* **common:** move `octal` function into e2e testing utils ([b15a616](b15a616))
* **common:** update Spotless gradle plugin from `6.2.2` --> `6.8.0` ([8c76d3b](8c76d3b))
* **common:** update Spotless maven plugin from `2.20.2` --> `2.23.0` ([ab182ef](ab182ef))
* **create-nx-flutter:** add custom CLI to create Flutter projects ([5126425](5126425))
* **create-nx-spring-boot:** add custom CLI to create Spring Boot projects ([32ca53c](32ca53c))
* **nx-flutter:** add `create` alias to  project generation schematics ([0386629](0386629)), closes [#27](#27)
* **nx-flutter:** add `doctor` executor to run `flutter doctor` checks ([9d35de1](9d35de1))
* **nx-flutter:** add nx-flutter plugin ([e7426e9](e7426e9))
* **nx-flutter:** add special instructions to generate the app ([d5f768a](d5f768a))
* **nx-flutter:** add support for Flutter Version Manager (`fvm`) ([e9af459](e9af459))
* **nx-flutter:** add support for Nx 's dependency graph generation ([6fb58de](6fb58de)), closes [#28](#28)
* **nx-flutter:** auto-adapt prompt & builders based on previous answers ([668dd28](668dd28)), closes [#26](#26)
* **nx-flutter:** create project in `apps` or `libs` based on `template` ([dc20e0b](dc20e0b)), closes [#41](#41)
* **nx-flutter:** improve typings for `template` and `platforms` options ([b614dc4](b614dc4))
* **nx-flutter:** leverage `NX_INTERACTIVE` for additional prompts ([ffb0591](ffb0591))
* **nx-flutter:** make all `build` executors results cacheable ([a08dbb8](a08dbb8))
* **nx-flutter:** migrate to Nrwl's DevKit executors/generators API ([8c72ed5](8c72ed5))
* **nx-flutter:** rename executors to use `kebab-case` ([319558f](319558f))
* **nx-flutter:** rename the `application` generator into `project` ([6361557](6361557))
* **nx-flutter:** use `NX_VERBOSE_LOGGING` to control logs in dep graph ([e678ed5](e678ed5))
* **nx-ktor:** add `nx-ktor` plugin ([cb74a79](cb74a79))
* **nx-melos:** add `nx-melos` plugin ([4fb5da8](4fb5da8))
* **nx-micronaut:** add `nx-micronaut` plugin ([08d6099](08d6099))
* **nx-quarkus:** add plugin to integrate `Quarkus` inside Nx workspace ([2f7c6c0](2f7c6c0))
* **nx-spring-boot:** add `application` schematics ([f22e63f](f22e63f))
* **nx-spring-boot:** add support for creating multi-modules projects ([7c2de5a](7c2de5a))
* **nx-spring-boot:** add support for Nx's dependency graph generation ([95abe9d](95abe9d))
* **nx-spring-boot:** migrate to Nrwl's DevKit executors/generators API ([47231fd](47231fd))
* update dependencies and fix lint issues ([cfac383](cfac383))
* update to Nx workspace `v15.0.0` ([a0af206](a0af206)), closes [#138](#138)
* update to Nx workspace `v16.0.0` ([ab11ea8](ab11ea8))

### BREAKING CHANGES

* Nx `v16.x.x` is now the minimum required version to use the plugin
* **nx-flutter:** Nx `v15.8.x` is now the minimum required version to run the plugin

`skipAdditionalPrompts` option was removed (no longer necessary)
* Nx `v15.x.x` is now the minimum required version to use the plugin
* **nx-flutter:** `interactive` option has been renamed into `skipAdditionalPrompts`

`interactive` is a reserved option for `nx generate` command, that gets deleted once Nx has interpreted it, so we need our own. Must still be combined with `--no-interactive` (from Nx), for fully non-interactivity
* **nx-flutter:** All executors of this plugin now use `kebab-case` over `camelCase` for consistency

This only affects `buildAar`, `buildApk`, `buildAppbundle`, `buildBundle`, `buildIos`, `buildIosFramework`, `buildIpa`, and `genL10n` executors, which have been renamed into `build-aar`, `build-apk`, `build-appbundle`, `build-bundle`, `build-ios`, `build-ios-framework`, `build-ipa`, and `gen-l10n` respectively.
* Nx v12.6.x is now the minimum version required to use the plugins

This is due to breaking changes in DevKit's project graph API starting from v12.6.x
* **nx-flutter:** the `app` alias has been replaced with one of [`proj`, `new`, `gen`, `init`, `generate`].
* **nx-flutter:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.
* **nx-spring-boot:** Nx workspace v11 is now the minimum version required to use this plugin.

In fact, all builders/schematics have been rewritten into executors/generators using its new `@nrwl/devkit` API.
@github-actions
Copy link

github-actions bot commented Oct 8, 2023

🎉 This issue has been resolved in version 1.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants