-
-
Notifications
You must be signed in to change notification settings - Fork 43
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
feat(config): throw on invalid config instead of using fallback #111
Comments
Hey @Aghassi, that's right.
Possible ApproachThere is currently some undocumented logging which can be enabled like so SYNCPACK_VERBOSE=true syncpack # list/format/fix-mismatches/etc I think what I'd want to do is:
Notes/Questions:
I like the idea but it's probably a low priority, compared to some of the other features coming up. Thanks a lot for this and your other issues, they've all helped improve syncpack a lot. |
My pleasure! This tool has been invaluable in trying to keep things aligned while we scale and dedupe dependencies. Until or unless we have one Per your questions:
Agreed, having a default makes sense in this case.
Agreed here too, because otherwise falling back on the default is confusing
Yes loading the config will
To rephrase and I think agree, the result of the CLI should ignore the log level, but internal information around |
Closes #124 When using the `workspace` dependency type, packages installing that dependency no longer have to exactly match the `version` property of the package.json of origin. If the version or version range used by every dependent package matches, it is considered valid. Closes #130 JavaScript config files now have support for TypeScript IntelliSense. https://jamiemason.github.io/syncpack/config-file#typescript-intellisense Closes #114 Refs #109 Refs #125 Unsupported versions can now at least be managed via `pinVersion`, where previously anything which was not valid semver would be ignored. Refs #111 Refs #132 TypeScript IntelliSense support helps catch invalid config, but more work is needed to display useful error messages at runtime. Refs #48 Refs #3 Syncpack's internals are now better organised, so providing a Node.js API and general lint and fix CLI commands are now closer to being released. BREAKING CHANGES: Although they are still not auto-fixable, unsupported versions which were previously ignored are now acknowledged, which may introduce mismatches which previously would have been considered valid. This release was also a huge rewrite of Syncpack's internals and, while there is a large amount of tests, some scenarios may have been missed. If you run into any problems, please create an issue.
Closes #124 When using the `workspace` dependency type, packages installing that dependency no longer have to exactly match the `version` property of the package.json of origin. If the version or version range used by every dependent package matches, it is considered valid. Closes #130 Closes #131 JavaScript config files now have support for TypeScript IntelliSense. https://jamiemason.github.io/syncpack/config-file#typescript-intellisense Closes #114 Refs #109 Refs #125 Unsupported versions can now at least be managed via `pinVersion`, where previously anything which was not valid semver would be ignored. Refs #111 Refs #132 TypeScript IntelliSense support helps catch invalid config, but more work is needed to display useful error messages at runtime. Refs #48 Refs #3 Syncpack's internals are now better organised, so providing a Node.js API and general lint and fix CLI commands are now closer to being released. BREAKING CHANGES: - `fix-mismatches` will now exit with a status code of 1 if there are mismatches among unsupported versions which syncpack cannot auto-fix. - Although they are still not auto-fixable, unsupported versions which were previously ignored are now acknowledged, which may introduce mismatches which previously would have been considered valid. - This release was also a huge rewrite of Syncpack's internals and, while there is a large amount of tests, some scenarios may have been missed. - If you run into any problems, please create an issue.
### #124 When using the `workspace` dependency type, packages installing that dependency no longer have to exactly match the `version` property of the package.json of origin. Closes #124 If the version or version range used by every dependent package matches, it is considered valid. ### #130, #131 JavaScript config files now have support for TypeScript IntelliSense. Closes #130 Closes #131 https://jamiemason.github.io/syncpack/config-file#typescript-intellisense ### #109, #114, #125 Unsupported versions can now at least be managed via `pinVersion`, where previously anything which was not valid semver would be ignored. Closes #114 ### #111, #132 TypeScript IntelliSense support helps catch invalid config, but more work is needed to display useful error messages at runtime. ### #48, #3 Syncpack's internals are now better organised, so providing a Node.js API and general lint and fix CLI commands are now closer to being released. BREAKING CHANGE: - `fix-mismatches` will now exit with a status code of 1 if there are mismatches among unsupported versions which syncpack cannot auto-fix. - Although they are still not auto-fixable, unsupported versions which were previously ignored are now acknowledged, which may introduce mismatches which previously would have been considered valid. - This release was also a huge rewrite of Syncpack's internals and, while there is a large amount of tests, some scenarios may have been missed. - If you run into any problems, please create an issue.
Released in 10.6.1. Any problems, please let me know. If you find syncpack useful, please star the project or help us spread the word to other Developers. |
Solid thanks! I still have to get us to 10.x. I have an issue with |
This version might help with that, I've reverted lint semver groups from erroring when it sees a non semver version, which I think I did in V10. |
Oh man that actually might be it! Ok I'll upgrade my diff internally and see. Very excited to take in the new features ❤️ |
@JamieMason Just confirming I'm able to take in the latest version without issue. And it has the pnpm fixes too! This is AWESOME. Thank you for all your hard work! |
You're welcome mate, which pnpm fix was it by the way? |
@JamieMason |
Description
I believe, and I could be wrong, that when the config read (specifically in the case of a
.js
config) is malformed, syncpack falls back on and uses a default config. The reason that I think this is the wrong solution is because it can lead to scenarios where in syncpack passes when it should instead fail.Suggested Solution
If syncpack.config.js fails for any reason (like missing dependencies in my case due to uninstalled node_modules), syncpack needs to bubble up that error and exit with code 1 to inform me that the config is malformed. This would have prevent a large headache for me of trying to figure out why syncpack was running but not failing.
Help Needed
Just confirmation that the behavior I described above is intended and if it is ok with being improved
The text was updated successfully, but these errors were encountered: