Skip to main content

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.json file

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.json to bin/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 (creates bin/openscad/libraries/{name}/)
  • repository: GitHub repository in owner/repo format
  • version: Git tag, commit SHA, or branch name
  • source: 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scadm-0.2.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scadm-0.2.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file scadm-0.2.0.tar.gz.

File metadata

  • Download URL: scadm-0.2.0.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

Hashes for scadm-0.2.0.tar.gz
Algorithm Hash digest
SHA256 13c10bfc6e729a2c8ba95362b114396aeb3dac07391203469d527a7ae9ca9eb4
MD5 8b708e5ad2ef8eebab453df77ccc1525
BLAKE2b-256 f47516c2f1b5ebcda1ab8debb9c147f4c6e86cfc18d9cf6fec9f471babc97411

See more details on using hashes here.

Provenance

The following attestation bundles were made for scadm-0.2.0.tar.gz:

Publisher: publish-scadm.yml on kellervater/homeracker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scadm-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: scadm-0.2.0-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

Hashes for scadm-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 992a3e63c11a17707b6f0350976362f45c7fbc647576f81ba557ad381f048127
MD5 7b8619f58cb468f8d33ebeeed5fdb14a
BLAKE2b-256 667d76f985cf5a905f29b0fbb19c62c7c705ec908d4f9b81b58c9ecf52ea0647

See more details on using hashes here.

Provenance

The following attestation bundles were made for scadm-0.2.0-py3-none-any.whl:

Publisher: publish-scadm.yml on kellervater/homeracker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page