Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Documentation is here: https://microsoft.github.io/lage/
Your JS repo has gotten large enough that you have turned to using a tool to help you manage multiple packages inside a repository. That's great! However, you realized quickly that the tasks defined inside the workspace have to be run in package dependency order.
Lerna, Rush, wsrun and even pnpm will provide a simple way for you to run npm scripts to be run in a topological order. However, these tools will force you to run your tasks by script name one at a time. For example, all the build
scripts will have to run first. Then all the test
scripts run in the topological order.
This usually means that there are wasted CPU cycles in between build
and test
. We can achieve better pipelining the npm scripts if we had a way to say that test
can run as soon as build
are done for the package.
lage
(Norwegian for "make", pronounced law-geh) solves this by providing a terse pipelining syntax. It has many features geared towards speeding up the task runner that we'll explore later.
lage
gives you this capability with very little configuration. First, let's install the lage
utility. You can place this in your workspace's root package.json
by running yarn add
:
yarn add -D lage
Confirm with yarn
that you are sure to add a package at the root level, you then place a root level script inside the package.json
to run lage
:
{
"scripts": {
"build": "lage build",
"test": "lage test"
}
}
Add a configuration file in the root to get started. Create this file at the root lage.config.js
:
module.exports = {
pipeline: {
build: ["^build"],
test: ["build"],
},
};
Do not worry about the syntax for now. We will go over the configuration file in a coming section. You can now run this command:
$ lage test
lage
will detect that you need to run build
steps before test
s are run.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
FAQs
Documentation: https://microsoft.github.io/lage/
The npm package lage receives a total of 5,935 weekly downloads. As such, lage popularity was classified as popular.
We found that lage demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers 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.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.