argotorg / argotorg/solc-js

CI runs with oldest and latest supported versions of dependencies

Open
#670 0 comments 0 reactions 0 assignees View on GitHub
low impact medium effort should have testing :hammer:
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.