OpenSCAD dependency manager - Install OpenSCAD and manage library dependencies
Project description
scadm - OpenSCAD Dependency Manager
scadm is a lightweight, python-based dependency manager for OpenSCAD projects. It simplifies installing OpenSCAD (nightly or stable) and managing library dependencies through a simple scadm.json file.
Features
- 🚀 Install OpenSCAD: Automatically downloads and installs OpenSCAD (nightly or stable builds)
- 📦 Manage Libraries: Install OpenSCAD libraries (BOSL2, MCAD, custom libraries) from GitHub
- 🔄 Version Tracking: Keeps dependencies in sync with your project
- 📋 Simple Config: Define dependencies in a single
scadm.jsonfile
Installation
Requirements: Python 3.11 or newer
pip install scadm
Quick Start
1. Create scadm.json in your project root
{
"dependencies": [
{
"name": "BOSL2",
"repository": "BelfrySCAD/BOSL2",
"version": "266792b2a4bbf7514e73225dfadb92da95f2afe1",
"source": "github"
}
]
}
2. Install OpenSCAD and dependencies
scadm
This will:
- Download and install OpenSCAD to
bin/openscad/ - Install all libraries defined in
scadm.jsontobin/openscad/libraries/
Usage
Install everything (OpenSCAD + libraries)
scadm # Install nightly build (default - RECOMMENDED)
scadm --stable # Install stable release (2021.01)
[!NOTE] Nightly builds are installed by default since the stable release (2021.01) is outdated and missing modern features. All nightly versions pass rendering tests before being published to ensure quality.
Check installation status
scadm --check
Force reinstall
scadm --force
Install only OpenSCAD
scadm --openscad-only
Install only libraries
scadm --libs-only
Configuration
scadm.json Schema
{
"dependencies": [
{
"name": "BOSL2",
"repository": "BelfrySCAD/BOSL2",
"version": "266792b2a4bbf7514e73225dfadb92da95f2afe1",
"source": "github"
},
{
"name": "homeracker",
"repository": "kellervater/homeracker",
"version": "v1.2.3",
"source": "github"
}
]
}
Fields:
name: Library name (createsbin/openscad/libraries/{name}/)repository: GitHub repository inowner/repoformatversion: Git tag, commit SHA, or branch namesource: Currently only"github"is supported
Directory Structure
After running scadm, your project will have:
your-project/
├── scadm.json
├── models/
│ └── your_model.scad
└── bin/openscad/
├── openscad.exe (or openscad appimage)
└── libraries/
├── BOSL2/
└── homeracker/
Use in OpenSCAD Files
include <BOSL2/std.scad>
include <homeracker/core/lib/connector.scad>
// Your code here
Renovate Integration
Keep your scadm.json dependencies automatically updated with Renovate:
Add this preset to your renovate.json:
{
"extends": [
"github>kellervater/homeracker:renovate-dependencies"
]
}
This preset enables automatic updates for:
- Git commit SHAs (for tracking main/master branches)
- Semantic version tags (v1.2.3)
License
MIT
Contributing
Issues and pull requests are welcome at kellervater/homeracker.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scadm-0.2.1.tar.gz.
File metadata
- Download URL: scadm-0.2.1.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0ed9291c8dff37f2a8d7c189968b005499d6fcc6c0df175e10b181c50580e37
|
|
| MD5 |
42eac08cc917b26bbdb9d7410f3d5871
|
|
| BLAKE2b-256 |
8ec1258823ee56c34898a48fcdd86cf64612dd3cce539599d073340e3314b031
|
Provenance
The following attestation bundles were made for scadm-0.2.1.tar.gz:
Publisher:
publish-scadm.yml on kellervater/homeracker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scadm-0.2.1.tar.gz -
Subject digest:
b0ed9291c8dff37f2a8d7c189968b005499d6fcc6c0df175e10b181c50580e37 - Sigstore transparency entry: 748063667
- Sigstore integration time:
-
Permalink:
kellervater/homeracker@3d609609bad449d1048e3073df3cfc27c3f15a54 -
Branch / Tag:
refs/tags/scadm-v0.2.1 - Owner: https://github.com/kellervater
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-scadm.yml@3d609609bad449d1048e3073df3cfc27c3f15a54 -
Trigger Event:
release
-
Statement type:
File details
Details for the file scadm-0.2.1-py3-none-any.whl.
File metadata
- Download URL: scadm-0.2.1-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e79b5ba5c41a62da37b979b6573152c64f51e913d6a5afc07ee6013917a1d135
|
|
| MD5 |
47fc697d1ed199aa30a40ac638922c33
|
|
| BLAKE2b-256 |
c617ec3904ec88f9c3f6d4146e9e5b58c5762b73b29aa15bd4a4167280867c4b
|
Provenance
The following attestation bundles were made for scadm-0.2.1-py3-none-any.whl:
Publisher:
publish-scadm.yml on kellervater/homeracker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scadm-0.2.1-py3-none-any.whl -
Subject digest:
e79b5ba5c41a62da37b979b6573152c64f51e913d6a5afc07ee6013917a1d135 - Sigstore transparency entry: 748063668
- Sigstore integration time:
-
Permalink:
kellervater/homeracker@3d609609bad449d1048e3073df3cfc27c3f15a54 -
Branch / Tag:
refs/tags/scadm-v0.2.1 - Owner: https://github.com/kellervater
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-scadm.yml@3d609609bad449d1048e3073df3cfc27c3f15a54 -
Trigger Event:
release
-
Statement type: