cli icon indicating copy to clipboard operation
cli copied to clipboard

[BUG] Installing the CLI through Chocolatey produces bugs in `generate` commands

Open nightknighto opened this issue 8 months ago • 3 comments

Describe the bug.

I installed the CLI through Window's Chocolatey as documented in the docs. However when attempting to use the generate command, it always failed to generate anything unless the template was pre-installed.

For example:

  • asyncapi generate fromTemplate asyncapi.yaml @asyncapi/nodejs-template fails. For it to work, I have to manually pre-install nodejs-template globally through NPM.
  • asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --use-new-generator -o docs2 fails. I have to manually pre-install the template too, either locally or globally.
  • asyncapi generate fromTemplate test/mocks/mqtt/asyncapi-v3.yml ./ -o test/output -p server=production fails. I can't use a local template.

This behavior is not present when installing the CLI through NPM. I uninstalled from Chocolatey and installed through NPM and everything worked fine.

Expected behavior

All the mentioned examples should work fine just like if I installed the CLI through NPM.

Screenshots

Output example from trying to use a local template:

PS H:\CODING\gsoc-2025\AsyncAPI-nodejs-template> asyncapi generate fromTemplate test/mocks/mqtt/asyncapi-v3.yml ./ -o test/output -p server=production --debug
asyncapi_adoption.action.invoked        COUNTER {
  user: 'bd3c5ac4-4047-4e72-b2ea-e76044adf92b',  
  action: 'generate:fromTemplate'
}       1
┌  AsyncAPI Generator
│
◐  Generation in progress. Keep calm and wait a bitTemplate is not available locally and expected location is undefined. Known details are: undefined Error: Cannot find module 'package.json'
Require stack:
- C:\Users\ahmed\AppData\Roaming\npm\node_modules\noop.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1225:15)
    at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (C:\Program Files\@asyncapicli\client\node_modules\@cspotcode\s@cspotcode\source-map-support\source-map-support.js:811:30)
    at resolveFileName (C:\Program Files\@asyncapicli\client\node_modules\resolve-from\index.js:29:39)
    at resolveFrom (C:\Program Files\@asyncapicli\client\node_modules\resolve-from\index.js:43:9)
    at module.exports (C:\Program Files\@asyncapicli\client\node_modules\resolve-from\index.js:46:47)
    at utils.getTemplateDetails (C:\Program Files\@asyncapicli\client\node_modules\@asyncapi\generator\lib\utils.js:196:30)
    at Generator.installTemplate (C:\Program Files\@asyncapicli\client\node_modules\@asyncapi\generator\lib\generator.js:561:24)
    at Generator.installAndSetupTemplate (C:\Program Files\@asyncapicli\client\node_modules\@asyncapi\generator\lib\generator.js:283:73)
    at Generator.generate (C:\Program Files\@asyncapicli\client\node_modules\@asyncapi\generator\lib\generator.js:196:16)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Generator.generateFromString (C:\Program Files\@asyncapicli\client\node_modules\@asyncapi\generator\lib\generator.js:444:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 'C:\\Users\\ahmed\\AppData\\Roaming\\npm\\node_modules\\noop.js' ]
}
Template installation started because the template cannot be found on disk.
Using npm registry https://registry.npmjs.org/ and authorization type anonymous to handle template installation.
◇  Generation failed
Generator Error: Installation failed
asyncapi_adoption.action.finished       COUNTER {
  user: 'bd3c5ac4-4047-4e72-b2ea-e76044adf92b',  
  action: 'generate:fromTemplate',
  template: './',
  success: false,
  asyncapi_version: '3.0.0',
  asyncapi_servers: 1,
  asyncapi_channels: 4,
  asyncapi_messages: 3,
  asyncapi_operations_send: 3,
  asyncapi_operations_receive: 1,
  asyncapi_schemas: 29,
  file_creation_timestamp: 1742515674002.0461    
}       1

How to Reproduce

  1. Install CLI through Chocolatey
  2. Create an example asyncapi.yaml file
  3. Run asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --use-new-generator -o docs2. It fails.

Additionally, try out a local template by:

  1. Clone @asyncapi/nodejs-template
  2. Run npm i
  3. Run asyncapi generate fromTemplate test/mocks/mqtt/asyncapi-v3.yml ./ -o test/output -p server=production. It fails as well

🖥️ Device Information [optional]

  • Operating System (OS): Windows 10

👀 Have you checked for similar open issues?

  • [x] I checked and didn't find similar issue

🏢 Have you read the Contributing Guidelines?

Are you willing to work on this issue ?

No, someone else can work on it

nightknighto avatar Mar 21 '25 23:03 nightknighto

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

github-actions[bot] avatar Mar 21 '25 23:03 github-actions[bot]

Currently trying to install ayncapi from chocolatey and getting error.

asyncapi not installed. An error occurred during installation:
 Unable to obtain lock file access on 'C:\ProgramData\chocolatey\lib\2444580fb1ea03938f6c63a43aa78ce229cd72d4' for operations on 'C:\ProgramData\chocolatey\lib\asyncapi'. This may mean that a different user or administrator is holding this lock and that this process does not have permission to access it. If no other process is currently performing an operation on this file it may mean that an earlier NuGet process crashed and left an inaccessible lock file, in this case removing the file 'C:\ProgramData\chocolatey\lib\2444580fb1ea03938f6c63a43aa78ce229cd72d4' will allow NuGet to continue.

Souvikns avatar Jun 12 '25 10:06 Souvikns

The command is also failing in development environment, might be happening due to some library in generator. Giving it a look. Not really a chocolatey issue though I haven't tried it using npm, I mean the dev env is not working so safe to say won't work in npm install either.

Failing in linux as well

souvik  asyncapicli  asyncapi generate fromTemplate asyncapi.yaml @asyncapi/nodejs-template
asyncapi_adoption.action.invoked	COUNTER	{
  user: '78570d48-52c1-497d-b6ca-cbaaff952459',
  action: 'generate:fromTemplate'
}	1
┌  AsyncAPI Generator
│
◇  Please provide the output directory
│  ./code
│
◇  Generation failed
Generator Error: Installation failed
asyncapi_adoption.action.finished	COUNTER	{
  user: '78570d48-52c1-497d-b6ca-cbaaff952459',
  action: 'generate:fromTemplate',
  template: '@asyncapi/nodejs-template',
  success: false,
  asyncapi_version: '2.2.0',
  asyncapi_servers: 0,
  asyncapi_channels: 1,
  asyncapi_messages: 1,
  asyncapi_operations_send: 1,
  asyncapi_operations_receive: 0,
  asyncapi_schemas: 3,
  file_creation_timestamp: 1749736806210.2266
}	1
 ✘ souvik  asyncapicli       


Definitely not a windows issue, looks like it is a generator issue. In general generator is unable to install the templates properly.

Souvikns avatar Jun 12 '25 13:06 Souvikns

@AayushSaini101 Can you please assign me this issue?

aialok avatar Oct 07 '25 16:10 aialok

@Souvikns is this issue still open, I would like to give this a try! Please assign this to me, thanks.

DarshanCode2005 avatar Nov 28 '25 19:11 DarshanCode2005