|
1 | | -# 🔧 OpenSCAD Installation Scripts |
| 1 | +# 🔧 OpenSCAD Installation and Testing |
2 | 2 |
|
3 | | -Automated installation of OpenSCAD for the HomeRacker workspace (Windows/Linux/macOS). |
| 3 | +This directory contains testing scripts for OpenSCAD models. |
| 4 | + |
| 5 | +For installation, use the **scadm** package (see `cmd/scadm/` or install via `pip install scadm`). |
4 | 6 |
|
5 | 7 | ## 📦 Quick Start |
6 | 8 |
|
7 | 9 | ```bash |
8 | | -# Install or upgrade to latest nightly release (default) |
9 | | -./cmd/setup/install-openscad.sh |
10 | | - |
11 | | -# Install nightly build (default) |
12 | | -./cmd/setup/install-openscad.sh --nightly |
| 10 | +# Install scadm (if not already installed) |
| 11 | +pip install -e cmd/scadm |
13 | 12 |
|
14 | | -# Install dependencies (BOSL2 library) - already done on a fresh install-openscad call |
15 | | -./cmd/setup/install-dependencies.sh |
| 13 | +# Install OpenSCAD + dependencies from scadm.json |
| 14 | +scadm |
16 | 15 |
|
17 | | -# Check if update is available |
18 | | -./cmd/setup/install-openscad.sh --check |
| 16 | +# Check if updates are available |
| 17 | +scadm --check |
19 | 18 |
|
20 | 19 | # Run smoke test - validates the current openscad installation against local models |
21 | | -./cmd/setup/install-openscad.sh --test |
22 | | - |
23 | | -# Test specific model files (e.g., after export or during development) |
24 | 20 | ./cmd/test/openscad-render.sh models/core/parts/connector.scad |
25 | 21 |
|
26 | 22 | # Run automated test suite (all models in test/ and makerworld/ directories) |
27 | 23 | ./cmd/test/test-models.sh |
28 | | - |
29 | | -# Force reinstall |
30 | | -./cmd/setup/install-openscad.sh --force |
31 | 24 | ``` |
32 | 25 |
|
33 | 26 | ## 🤖 Automatic Updates |
34 | 27 |
|
35 | | -Versions are tracked in the scripts and managed by Renovate Bot. When new releases are available, Renovate creates a PR to update the versions. After merging, run the install scripts to upgrade. |
| 28 | +OpenSCAD versions are managed by Renovate Bot in `cmd/scadm/scadm/constants.py`. When new releases are available, Renovate creates a PR to update the versions. |
| 29 | + |
| 30 | +## 📦 Dependency Management |
| 31 | + |
| 32 | +Dependencies are defined in `scadm.json` at the repository root. The installer supports both Git commit hashes (SHAs) and SemVer tags. |
36 | 33 |
|
37 | | -## 📝 Notes |
| 34 | +### Configuration Format (`scadm.json`) |
38 | 35 |
|
39 | | -- **Default**: Nightly snapshots - latest features and fixes |
40 | | -- **Stable**: Release 2021.01 - use `--stable` flag for BOSL2 compatibility |
41 | | -- **Platform Support**: Windows, Linux, and macOS (macOS treated as Linux using AppImage - untested) |
42 | | -- **BOSL2**: Installed to bundled libraries directory |
43 | | -- **Source**: https://files.openscad.org/ |
| 36 | +```json |
| 37 | +{ |
| 38 | + "dependencies": [ |
| 39 | + { |
| 40 | + "name": "BOSL2", |
| 41 | + "repository": "BelfrySCAD/BOSL2", |
| 42 | + "version": "266792b2a4bbf7514e73225dfadb92da95f2afe1", |
| 43 | + "source": "github" |
| 44 | + }, |
| 45 | + { |
| 46 | + "name": "homeracker", |
| 47 | + "repository": "kellervater/homeracker", |
| 48 | + "version": "v1.1.0", |
| 49 | + "source": "github" |
| 50 | + } |
| 51 | + ] |
| 52 | +} |
| 53 | +``` |
| 54 | + |
| 55 | +### Renovate Integration |
| 56 | + |
| 57 | +To enable Renovate to update these dependencies, extend the configuration from this repository in your `renovate.json`: |
| 58 | + |
| 59 | +> **Note**: Use `github>...` for external repositories. Internally, this repository uses `local>...`. |
| 60 | +
|
| 61 | +```json |
| 62 | +{ |
| 63 | + "extends": [ |
| 64 | + "github>kellervater/homeracker:renovate-dependencies.json" |
| 65 | + ] |
| 66 | +} |
| 67 | +``` |
0 commit comments