-
Notifications
You must be signed in to change notification settings - Fork 481
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
Support broader range of dependency versions #758
base: testing-min-dependencies
Are you sure you want to change the base?
Support broader range of dependency versions #758
Conversation
"memorystream": "^0.3.1", | ||
"semver": "^5.5.0", | ||
"tmp": "0.0.33" | ||
"command-exists": ">=1.1.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that I replaced ^
with >=
in all version ranges. I'm still on the fence whether that's a good idea or whether I should always put a <
there to keep major version updates manual:
Pros of >=
:
- We almost never update these versions and this forces projects using
solc-js
to use old versions too (or do hacky workarounds).>=
forces the update on us by default and we can always restrict with<
as needed. - There's not much risk of this seriously breaking a downstream app that's already using the package. If it happens, the app can always restrict the dependency in its own
package.json
. And that's only a concern for the devs of the app, not its users. It may only happen when devs update their dependencies - outside of that the installed versions are locked viapackage-lock.json
.
Cons of >=
:
- Already released versions in
npm
will stay unlimited forever and eventually stop working with latest versions of dependencies because one of them will inevitably introduce an actual breaking change. This may confuse someone trying to add a dependency on an older version of solc-js to their app. - There's some risk of a new breaking version appearing during our release process. Though in solc-js this would be easy to fix quickly, because CI is quick and it gets tagged late in the process.
"semver": "^5.5.0", | ||
"tmp": "0.0.33" | ||
"command-exists": ">=1.1.0", | ||
"commander": ">=8.0.0 <12.0.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Versions >=13.0.0
do not pass our tests. We could probably support them if we wanted but that will require some code changes on our side. Not sure how extensive.
Versions >=12.0.0
trigger failures on older node.js versions due to the use of ??
operator or its variants.
"@typescript-eslint/eslint-plugin": ">=5.0.0 <6.0.0", | ||
"@typescript-eslint/parser": ">=5.0.0 <6.0.0", | ||
"coveralls": ">=3.0.0", | ||
"eslint": ">=7.12.1 <8.0.0", | ||
"eslint-config-standard": ">=16.0.3 <17.0.0", | ||
"eslint-plugin-import": ">=2.25.0", | ||
"eslint-plugin-node": ">=11.1.0", | ||
"eslint-plugin-promise": ">=5.0.0 <7.0.0", | ||
"nyc": ">=15.0.0", | ||
"tape": ">=4.11.0", | ||
"tape-spawn": ">=1.0.0", | ||
"ts-node": ">=10.0.0", | ||
"typescript": ">=4.2.2 <5.0.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typescript, eslint and their plugins here are restricted only because they have issues on node.js 12 and 14. There are failures due to the use of ??
operator or its variants. On the other hand there are no issues on the latest node.js.
Not sure how to handle this. I guess node.js 12 and 14 are past EOL now so it may be ok to just remove the restriction. The issue is that our tests fail, so we would have to patch package.json
in our tests.
Another possibility might be to just drop official v12 and v14 support.
…uilt-in one - This started causing an error with the latest version of the commander package
…kage can still work with them
…sha3` dependencies
…ing versions by default
- The latest version fails our test suite. Upgrading will require adjusting the code.
… and v14 due to problems with ?? operator
1fee900
to
284967f
Compare
06fdfd0
to
196f913
Compare
Depends on #757.
Replaces the version bump attempted in #756.
This PR extends the ranges of dependency versions marked as supported both ways: