
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
@blendsdk/lockstep
Advanced tools
A comprehensive monorepo package management tool that maintains synchronized versions across all packages (lockstep versioning) with flexible CI/CD integration.
A comprehensive monorepo package management tool that maintains synchronized versions across all packages (lockstep versioning) with flexible CI/CD integration.
npm install -g @blendsdk/lockstep
# or
yarn global add @blendsdk/lockstep
# or
pnpm add -g @blendsdk/lockstep
npm install --save-dev @blendsdk/lockstep
# or
yarn add -D @blendsdk/lockstep
# or
pnpm add -D @blendsdk/lockstep
# Bump patch version for all packages
lockstep version --type patch
# Automatically determine version from conventional commits
lockstep version --type auto
# Publish all packages to latest
lockstep publish --tag latest
# Publish to next tag (for development releases)
lockstep publish --tag next
# Version with CI skip flag
lockstep version --type auto --ci
# Publish and push git changes
lockstep publish --tag latest --git-push
Bumps versions of all packages in lockstep and optionally commits/tags.
lockstep version --type <patch|minor|major|auto> [options]
Options:
--type <patch|minor|major|auto> - Type of version bump (required)--ci - Add [skip ci] to commit message--no-git-commit - Skip git commit and tag operationsExamples:
lockstep version --type patch
lockstep version --type minor --ci
lockstep version --type major --no-git-commit
lockstep version --type auto
lockstep version --type auto --ci
Publishes all packages in dependency order with branch-prefixed dist-tags.
lockstep publish --tag <dist-tag> [options]
Options:
--tag <dist-tag> - Distribution tag for publishing (required)--access <public|restricted> - NPM access level (default: public)--dry - Perform a dry run without publishing--git-push - Push git changes and tags after publishExamples:
lockstep publish --tag latest
lockstep publish --tag alpha
lockstep publish --tag beta --dry
lockstep publish --tag latest --access restricted
lockstep publish --tag alpha --git-push
When using --type auto, lockstep analyzes conventional commit messages since the last tag:
feat: commits → minor version bumpfix:, docs:, style:, refactor:, test:, chore: → patch version bumpBREAKING CHANGE or !: → major version bump# Analyzes commits and determines appropriate version bump
lockstep version --type auto
Non-main branches automatically get prefixed dist-tags:
main, master) → latest or specified tag{branch-name}-{tag}# On main branch
lockstep publish --tag latest # → publishes as "latest"
# On feature-branch
lockstep publish --tag alpha # → publishes as "feature-branch-alpha"
Lockstep works out of the box but can be configured for specific needs:
Automatically detects your package manager:
pnpm-lock.yaml → pnpmyarn.lock → yarnpackage-lock.json → npmBy default, searches for packages in:
packages/ directory (recursively)Supports any monorepo structure with package.json files.
You can also use lockstep programmatically in Node.js:
import { Lockstep } from '@blendsdk/lockstep';
const lockstep = new Lockstep({
root: process.cwd(),
packagesDirs: ['packages'],
packageManager: 'yarn'
});
// Version all packages
await lockstep.version({
type: 'auto',
skipCi: true,
noGitCommit: false
});
// Publish all packages
await lockstep.publish({
tag: 'latest',
access: 'public',
dry: false,
gitPush: true
});
Example workflow for automated releases:
name: Release
on:
push:
branches: [main]
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
- run: npm install -g @blendsdk/lockstep
- name: Version packages
run: lockstep version --type auto --ci
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Publish packages
run: lockstep publish --tag latest --git-push
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
Lockstep versioning is ideal for:
For a detailed analysis of when to use lockstep versioning, see our comprehensive guide.
package.json filesMIT © TrueSoftware B.V.
Contributions are welcome! Please read our contributing guidelines first.
Made with ❤️ by TrueSoftware B.V.
FAQs
A comprehensive monorepo package management tool that maintains synchronized versions across all packages (lockstep versioning) with flexible CI/CD integration.
The npm package @blendsdk/lockstep receives a total of 18 weekly downloads. As such, @blendsdk/lockstep popularity was classified as not popular.
We found that @blendsdk/lockstep demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.