CI runs with oldest and latest supported versions of dependencies
- Dominant language
- TypeScript
- Stars
- 1.5k
- Forks
- 349
- Avg merge
- 8m
- Merged PRs (30d)
- 1
Description
As a library, we are committed to supporting whole ranges of dependency versions to give the apps that use solc-js the most flexibility. However, we only really test with a single set of versions versions right now. I think that we should be running the test suite with multiple sets of versions. Doing oldest and latest seems the most reasonable.
The task here is to add variants of `node-base` job that install those different sets of dependencies. Best if npm or yarn can do that automatically, but if not, we can force that by replacing `^` with `=` in `package.json` (with some special care for cases that specify multiple valid versions).
Note that we currently use caching for dependencies and the key is based on `package.json` (rather than `package-lock.json`, which is not versioned). This means we're not always using latest versions, but rather the ones that were the latest last time `package.json` was updated: https://github.com/ethereum/solc-js/blob/a3b7b9ef1c1286174dada85811755260cf0d9bda/.circleci/config.yml#L171-L172
For the test runs added as a part of this task, we'll have to disable this caching.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the node-base job and dependency cache configuration in .circleci/config.yml, especially the package.json-based cache key around lines 171-172. Review package.json and the existing npm or yarn installation behavior, then run the current test suite. Done means CI tests both oldest and latest supported dependency sets, with caching disabled for those runs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, typescript
- Domain
- ci-cd, testing
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100