
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
fairsplice
Advanced tools
FairSplice is a CLI tool designed to optimize test distribution across multiple workers. By intelligently selecting and saving test cases, FairSplice ensures balanced workload distribution for your CI/CD pipelines, making tests run time more predictable.
FairSplice is a CLI tool designed to optimize test distribution across multiple workers. By intelligently selecting and saving test cases, FairSplice ensures balanced workload distribution for your CI/CD pipelines, making tests run time more predictable.
We found Github Actions lacking when compared to CircleCI which has tests splitting based on timings.
There are a number of projects like Split tests but they require uploading and downloading Junit XML files and merging them, or committing the Junit files to have them when running the tests.
This tool uses instead a Redis server to store the last 10 timings for each test file and uses the average of these to select tests. It is easy to setup if you have a Redis server running.
This project is built using Bun and Redis.
Ensure you have Bun installed.
Then run the following command to install dependencies:
bun install
To build a binary, you can run:
bun compile
This will create a fairsplice
binary in the current directory.
Before using FairSplice, set the environment variable FAIRSPLICE_REDIS_URL
to your Redis server URL. This is necessary for storing and retrieving test case information.
export FAIRSPLICE_REDIS_URL='redis://myuser:mypassword@your-redis-url.upstash.io:33683'
FairSplice supports two main commands: save
and select
.
To save test results:
fairsplice save --from <file>
--from <file>
: Specify the file path to read test results from.Example:
fairsplice save --from results/junit.xml
To select test cases for execution:
fairsplice select --pattern "<pattern>" [--pattern "<anotherPattern>" ...] --total <total> --index <index>
--pattern "<pattern>"
: Pattern to match test files. Can be used multiple times to specify multiple patterns.--total <total>
: Total number of workers in the test environment.--index <index>
: Index of the current worker (0-based).Example:
fairsplice select --pattern "test_*.py" --pattern "tests*.py" --total 3 --index 1
For a detailed list of commands and options, use the help command:
fairsplice --help
Contributions are welcome! Please fork the repository and submit a pull request with your improvements.
Launch the development version with:
bun run index.ts
Launch the following command to run tests:
bun test [--watch]
FairSplice is open-source software licensed under the MIT license.
FAQs
**Warning: this project is still in very early development!**
The npm package fairsplice receives a total of 8,839 weekly downloads. As such, fairsplice popularity was classified as popular.
We found that fairsplice demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.