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

MODULE_NOT_FOUND when running with npx #565

Open
FelixZY opened this issue Nov 18, 2023 · 4 comments
Open

MODULE_NOT_FOUND when running with npx #565

FelixZY opened this issue Nov 18, 2023 · 4 comments

Comments

@FelixZY
Copy link

FelixZY commented Nov 18, 2023

I have a github action which executes semantic-release with npx. The project does not have a package.json.

Everything seems to work fine, before failing with error Cannot find module 'conventional-changelog-conventionalcommits'

.releaserc.yml
branches:
  - main
  - name: beta
    prerelease: beta
debug: true
plugins:
  - "@semantic-release/commit-analyzer"
  - path: "@semantic-release/release-notes-generator"
    preset: conventionalcommits
  - "@semantic-release/github"
workflow.yml
on:
  workflow_dispatch:

jobs:
  release:
    name: Release
    runs-on: ubuntu-latest

    env:
      GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      NODE_VERSION: "20.x"

    steps:
      - uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: ${{ env.NODE_VERSION }}

      - name: Run `semantic-release`
        run: |
          npx --yes semantic-release --dry-run
logs
Run npx --yes semantic-release  --dry-run
  npx --yes semantic-release  --dry-run
  shell: /usr/bin/bash -e {0}
  env:
    NODE_VERSION: 20.x
    GH_TOKEN: ***
npm WARN deprecated read-pkg-up@11.0.0: Renamed to read-package-up
[12:48:09 AM] [semantic-release] › ℹ  Running semantic-release version 22.0.8
[12:48:09 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/github"
[12:48:09 AM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[12:48:09 AM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[12:48:09 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/github"
[12:48:09 AM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/github"
[12:48:09 AM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/github"
[12:48:09 AM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/github"
[...]
[12:48:12 AM] [semantic-release] › ✔  Completed step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[12:48:12 AM] [semantic-release] › ℹ  There is no previous release, the next release version is 1.0.0-stage.1
[12:48:12 AM] [semantic-release] › ℹ  Start step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[12:48:12 AM] [semantic-release] › ✘  Failed step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[12:48:12 AM] [semantic-release] › ✘  An error occurred while running semantic-release: Error: Cannot find module 'conventional-changelog-conventionalcommits'
    at importFrom (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/import-from-esm/index.js:100:17)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async default (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/@semantic-release/release-notes-generator/lib/load-changelog-config.js:27:63)
    at async generateNotes (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/@semantic-release/release-notes-generator/index.js:34:38)
    at async validator (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/lib/plugins/normalize.js:36:24)
    at async file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/lib/plugins/pipeline.js:38:36
    at async file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/lib/plugins/pipeline.js:32:5
    at async pluginsConfigAccumulator.<computed> [as generateNotes] (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/lib/plugins/index.js:87:11)
    at async run (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/index.js:197:23)
    at async Module.default (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/index.js:275:22) {
  code: 'MODULE_NOT_FOUND',
  pluginName: '@semantic-release/release-notes-generator'
}
Error: Cannot find module 'conventional-changelog-conventionalcommits'
    at importFrom (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/import-from-esm/index.js:100:17)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async default (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/@semantic-release/release-notes-generator/lib/load-changelog-config.js:27:63)
    at async generateNotes (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/@semantic-release/release-notes-generator/index.js:34:38)
    at async validator (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/lib/plugins/normalize.js:36:24)
    at async file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/lib/plugins/pipeline.js:38:36
    at async file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/lib/plugins/pipeline.js:32:5
    at async pluginsConfigAccumulator.<computed> [as generateNotes] (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/lib/plugins/index.js:87:11)
    at async run (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/index.js:197:23)
    at async Module.default (file:///home/runner/.npm/_npx/cdf31b77322f1d44/node_modules/semantic-release/index.js:275:22) {
  code: 'MODULE_NOT_FOUND',
  pluginName: '@semantic-release/release-notes-generator'
}
Error: Process completed with exit code 1.
@travi
Copy link
Member

travi commented Nov 19, 2023

The preset you've chosen to use is not a dependency of semantic-release, so you need to install it in addition to semantic-release. You can still do this directly in your workflow without a package.json

@JMLX42
Copy link

JMLX42 commented Mar 5, 2024

@travi I have conventional-changelog-conventionalcommits installed and I still have the problem.

[4:05:29 PM] [semantic-release] › ℹ  Running semantic-release version 21.0.2
(node:387) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/changelog"
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/git"
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/gitlab"
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/changelog"
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/git"
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/gitlab"
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/gitlab"
[4:05:30 PM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/gitlab"
[4:05:31 PM] [semantic-release] › ✔  Run automated release from branch main on repository https://gitlab-ci-token:[secure]@git.aerys.in/aerys/infrastructure/vendor/semantic-release-docker.git
[4:05:32 PM] [semantic-release] › ✔  Allowed to push to the Git repository
[4:05:32 PM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/changelog"
[4:05:32 PM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/changelog"
[4:05:32 PM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/git"
[4:05:32 PM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/git"
[4:05:32 PM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/gitlab"
[4:05:32 PM] [semantic-release] [@semantic-release/gitlab] › ℹ  Verify GitLab authentication (https://git.aerys.in/api/v4)
[4:05:32 PM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/gitlab"
[4:05:32 PM] [semantic-release] › ℹ  Found git tag v1.3.1 associated with version 1.3.1 on branch main
[4:05:32 PM] [semantic-release] › ℹ  Found 3 commits since last release
[4:05:32 PM] [semantic-release] › ℹ  Start step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[4:05:32 PM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analyzing commit: ci: temporary inhibit the semantic-release before_script install
[4:05:32 PM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  The commit should not trigger a release
[4:05:32 PM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analyzing commit: chore(deps): update node.js to v20
[4:05:32 PM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  The release type for the commit is patch
[4:05:32 PM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analyzing commit: ci: use the conventionalcommits for the release notes
[4:05:32 PM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  The commit should not trigger a release
[4:05:32 PM] [semantic-release] [@semantic-release/commit-analyzer] › ℹ  Analysis of 3 commits complete: patch release
[4:05:32 PM] [semantic-release] › ✔  Completed step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[4:05:32 PM] [semantic-release] › ℹ  The next release version is 1.3.2
[4:05:32 PM] [semantic-release] › ℹ  Start step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[4:05:32 PM] [semantic-release] › ✘  Failed step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[4:05:32 PM] [semantic-release] › ✘  An error occurred while running semantic-release: Error: Cannot find module 'conventional-changelog-conventionalcommits'
Require stack:
- /builds/aerys/infrastructure/vendor/semantic-release-docker/noop.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1134:15)
    at Module._load (node:internal/modules/cjs/loader:975:27)
    at Module.require (node:internal/modules/cjs/loader:1225:19)
    at require (node:internal/modules/helpers:177:18)
    at module.exports (/builds/aerys/infrastructure/vendor/semantic-release-docker/.npm/lib/node_modules/semantic-release/node_modules/import-from/index.js:5:100)
    at default (file:///builds/aerys/infrastructure/vendor/semantic-release-docker/.npm/lib/node_modules/semantic-release/node_modules/@semantic-release/release-notes-generator/lib/load-changelog-config.js:28:67)
    at generateNotes (file:///builds/aerys/infrastructure/vendor/semantic-release-docker/.npm/lib/node_modules/semantic-release/node_modules/@semantic-release/release-notes-generator/index.js:34:44)
    at validator (file:///builds/aerys/infrastructure/vendor/semantic-release-docker/.npm/lib/node_modules/semantic-release/lib/plugins/normalize.js:36:30)
    at file:///builds/aerys/infrastructure/vendor/semantic-release-docker/.npm/lib/node_modules/semantic-release/lib/plugins/pipeline.js:38:42
    at next (file:///builds/aerys/infrastructure/vendor/semantic-release-docker/.npm/lib/node_modules/semantic-release/node_modules/p-reduce/index.js:16:10) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/builds/aerys/infrastructure/vendor/semantic-release-docker/noop.js'
  ],
  pluginName: '@semantic-release/release-notes-generator'
}
Error: Cannot find module 'conventional-changelog-conventionalcommits'
Require stack:
- /builds/aerys/infrastructure/vendor/semantic-release-docker/noop.js
�[90m    at Module._resolveFilename (node:internal/modules/cjs/loader:1134:15)�[39m
�[90m    at Module._load (node:internal/modules/cjs/loader:975:27)�[39m
�[90m    at Module.require (node:internal/modules/cjs/loader:1225:19)�[39m
�[90m    at require (node:internal/modules/helpers:177:18)�[39m
    at module.exports �[90m(/builds/aerys/infrastructure/vendor/semantic-release-docker/�[39m.npm/lib/node_modules/�[4msemantic-release�[24m/node_modules/�[4mimport-from�[24m/index.js:5:100�[90m)�[39m
    at default �[90m(file:///builds/aerys/infrastructure/vendor/semantic-release-docker/�[39m.npm/lib/node_modules/�[4msemantic-release�[24m/node_modules/�[4m@semantic-release�[24m/release-notes-generator/lib/load-changelog-config.js:28:67�[90m)�[39m
    at generateNotes �[90m(file:///builds/aerys/infrastructure/vendor/semantic-release-docker/�[39m.npm/lib/node_modules/�[4msemantic-release�[24m/node_modules/�[4m@semantic-release�[24m/release-notes-generator/index.js:34:44�[90m)�[39m
    at validator �[90m(file:///builds/aerys/infrastructure/vendor/semantic-release-docker/�[39m.npm/lib/node_modules/�[4msemantic-release�[24m/lib/plugins/normalize.js:36:30�[90m)�[39m
    at �[90mfile:///builds/aerys/infrastructure/vendor/semantic-release-docker/�[39m.npm/lib/node_modules/�[4msemantic-release�[24m/lib/plugins/pipeline.js:38:42
    at next �[90m(file:///builds/aerys/infrastructure/vendor/semantic-release-docker/�[39m.npm/lib/node_modules/�[4msemantic-release�[24m/node_modules/�[4mp-reduce�[24m/index.js:16:10�[90m)�[39m {
  code: �[32m'MODULE_NOT_FOUND'�[39m,
  requireStack: [
    �[32m'/builds/aerys/infrastructure/vendor/semantic-release-docker/noop.js'�[39m
  ],
  pluginName: �[32m'@semantic-release/release-notes-generator'�[39m
}

I am not even using npx. Just a global install:

FROM registry.aerys.in/aerys/infrastructure/vendor/rust-docker/x86_64-unknown-linux-musl:1.74.0-0 as rust

FROM node:20.11.1

COPY --from=rust /opt/rust /opt/rust

ENV PATH="$PATH:/opt/rust/cargo/bin"
ENV RUSTUP_HOME=/opt/rust/rustup

# To see why we need to execute `semantic-release-cargo` through `@semantic-release/exec`
# see https://git.aerys.in/aerys/smartshape/smartshape-cli/-/issues/569#note_437864.
# To see why we can't execute the Node.js plugin directly and install the binary,
# see https://git.aerys.in/aerys/test/semantic-release-cargo-test/-/issues/2#note_437918.
#
# renovate: datasource=crate depName=semantic-release-cargo
RUN cargo install semantic-release-cargo@2.2.87

RUN npm install --global \
    # renovate: datasource=npm depName=semantic-release
    semantic-release@23.0.2 \
    # renovate: datasource=npm depName=@semantic-release/gitlab
    @semantic-release/gitlab@13.0.3 \
    # renovate: datasource=npm depName=@semantic-release/exec
    @semantic-release/exec@6.0.3 \
    # renovate: datasource=npm depName=@semantic-release/commit-analyzer
    @semantic-release/commit-analyzer@11.1.0 \
    # renovate: datasource=npm depName=@semantic-release/changelog
    @semantic-release/changelog@6.0.3 \
    # renovate: datasource=npm depName=@semantic-release/git
    @semantic-release/git@10.0.1 \
    # renovate: datasource=npm depName=conventional-changelog-conventionalcommits
    conventional-changelog-conventionalcommits@7.0.2

# Pin the version of `yarn` to avoid mismatching versions in different projects.
RUN corepack prepare yarn@3.5.0 && \
    yarn set version 3.5.0

@travi
Copy link
Member

travi commented Mar 6, 2024

Running semantic-release version 21.0.2

you are using an old version of semantic-release with the latest version of the conventional-changelog-conventionalcommmits preset. there is a known incompatibility with the latest presets that was fixed in v22 of semantic-release. please upgrade to the latest semantic-release to see if that improves your situation.

@JMLX42
Copy link

JMLX42 commented Mar 6, 2024

That is correct. Somehow I got two versions of release-notes-generator installed. And I ran the wrong/old one.

This is indeed fixed when using the latest version of all packages.

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

No branches or pull requests

3 participants