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 error handling and debug information with configuration files that are empty, or not present. #2155

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

EvanCarroll
Copy link

@EvanCarroll EvanCarroll commented Sep 28, 2021

This does a few things.

Now if you have on config file you'll see the unthrown ECONFIGNOTFOUND error in your log:

  semantic-release:config SemanticReleaseError: Your release configuration file was NOT found
  semantic-release:config     at module.exports (/home/ecarroll/code/js/semantic-release/lib/get-error.js:6:10)
  semantic-release:config     at module.exports (/home/ecarroll/code/js/semantic-release/lib/get-config.js:42:12)
  semantic-release:config     at async module.exports (/home/ecarroll/code/js/semantic-release/index.js:257:32)
  semantic-release:config     at async module.exports (/home/ecarroll/code/js/semantic-release/cli.js:55:5) +0ms

The debug information no longer just shows the merged stuff, but also what the config file had in it. This is very useful if your config file is CommonJS and fixes #2152

  semantic-release:config Load config {
  semantic-release:config   filepath: undefined,
  semantic-release:config   unprocessed_config: undefined,
  semantic-release:config   processed_options: {
  semantic-release:config     branches: [
  semantic-release:config       '+([0-9])?(.{+([0-9]),x}).x',
  semantic-release:config       'master',
  semantic-release:config       'next',
  semantic-release:config       'next-major',
  semantic-release:config       [Object],
  semantic-release:config       [Object]
  semantic-release:config     ],
  semantic-release:config     tagFormat: 'v${version}',
  semantic-release:config     plugins: [
  semantic-release:config       '@semantic-release/commit-analyzer',
  semantic-release:config       '@semantic-release/release-notes-generator',
  semantic-release:config       '@semantic-release/npm',
  semantic-release:config       '@semantic-release/github'
  semantic-release:config     ],
  semantic-release:config     repositoryUrl: 'file:///home/ecarroll/code/trash/foo',
  semantic-release:config     _: [],
  semantic-release:config     n: true,
  semantic-release:config     debug: true,
  semantic-release:config     ci: true,
  semantic-release:config     '$0': 'semantic-release'
  semantic-release:config   }
  semantic-release:config } +2ms

And there is a new fatal Error that is throw if the file exists but it's empty EEMPTYCONFIG

Please verify your config file /home/ecarroll/code/trash/foo/release.config.js is present with content

SemanticReleaseError: Your release configuration was found but has no contents
    at module.exports (/home/ecarroll/code/js/semantic-release/lib/get-error.js:6:10)
    at module.exports (/home/ecarroll/code/js/semantic-release/lib/get-config.js:46:11)
    at async module.exports (/home/ecarroll/code/js/semantic-release/index.js:257:32)
    at async module.exports (/home/ecarroll/code/js/semantic-release/cli.js:55:5) {
  code: 'EEMPTYCONFIG',
  details: 'Please verify your config file /home/ecarroll/code/trash/foo/release.config.js is present with content',
  semanticRelease: true

@EvanCarroll EvanCarroll changed the title Closes out #2152 Fix error handling and debug information with configuration files that are empty, or not present. Sep 28, 2021
Previously we only showed the configuration options merged with defaults
and after post-processing.
This was covered in semantic-release#1696. This is an attempt to resolve all outstanding
known issues between ci and noCi from command line and env.
Previously we only showed the configuration options merged with defaults
and after post-processing.
* Make a loud debug message if there is no configuration file found
* Throw an error if there is a configuration file but it is empty. This
  can happen if you misspell modules.exports as module.export and you
  use a .js file.
Now this should look at the URL from the CI ENV vars
Fixes GH semantic-release#2155
* Make a loud debug message if there is no configuration file found
* Throw an error if there is a configuration file but it is empty. This
  can happen if you misspell modules.exports as module.export and you
  use a .js file.
Fixes GH semantic-release#2050. This feature is awesomely silly. So disable unless
`ENV["SCRUB"]` is set.
GITLAB_TOKEN, if present, will have great access rights to the
repository. Semantic-Release needs to be able to push tags.
I believe the call to format was messing things up and causing an undef
error. This is cleaner, and works better.
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

Successfully merging this pull request may close these issues.

Debug information for config loading is not correct.
1 participant