Skip to content

OpeningDesign/bonsaiPR

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 

Repository files navigation

BonsaiPR

Weekly automated builds of Bonsai with merged pull requests from the IfcOpenShell repository.

About

BonsaiPR provides automated weekly releases that include the latest community contributions from IfcOpenShell. Each build:

  • Merges Open Pull Requests: Automatically integrates open PRs from the community
  • 🎯 Detects Draft PRs: Skips draft PRs and provides detailed skip reasons
  • 🌍 Multi-Platform Builds: Windows, Linux, macOS (Intel + Apple Silicon)
  • 📊 Comprehensive Reports: Detailed documentation of merged PRs, build info, and statistics
  • 🔒 Source Transparency: Complete source code available in fork branches
  • 🤖 Fully Automated: Runs every Sunday at 2:00 AM UTC via cron

What's Different from Official Bonsai?

  • Testing Ground: PR authors can test their changes before official merge
  • Community PRs: Includes experimental features from community contributors
  • Weekly Updates: Fresh builds every week with latest PRs
  • Renamed to BonsaiPR: To distinguish from official releases

📦 Download

Latest Release

Visit the Releases page to download the latest weekly build.

Available Platforms

Each release includes builds for:

  • 🐧 Linux (x64): bonsaiPR_py311-0.8.4-alphaYYMMDD-linux-x64.zip
  • 🍎 macOS Intel (x64): bonsaiPR_py311-0.8.4-alphaYYMMDD-macos-x64.zip
  • 🍎 macOS Apple Silicon (ARM64): bonsaiPR_py311-0.8.4-alphaYYMMDD-macos-arm64.zip
  • 🪟 Windows (x64): bonsaiPR_py311-0.8.4-alphaYYMMDD-windows-x64.zip

Installation

  1. Download the appropriate .zip file for your platform
  2. In Blender, go to Edit > Preferences > Add-ons
  3. Click Install... and select the downloaded zip file
  4. Enable the BonsaiPR addon in the list

Documentation

Each release includes a complete README file (README-bonsaiPR_py311-0.8.4-alphaYYMMDD.txt) with:

  • List of successfully merged PRs
  • Failed merge attempts with reasons
  • Skipped PRs (drafts, inaccessible repos)
  • Build details and statistics
  • Release and upload information

💻 Source Code

The complete source code for each release is available in the IfcOpenShell fork repository:

  • 🔗 Fork Repository: falken10vdl/IfcOpenShell
  • 📂 Weekly Branches: Look for branches named weekly-build-0.8.4-alphaYYMMDD
  • 📥 Download Source: Each branch can be downloaded as a ZIP archive
  • 👨‍💻 For PR Authors: Clone and checkout these branches to test your PRs alongside other community changes

Example: Clone and Test

# Clone the fork repository
git clone https://github.com/falken10vdl/IfcOpenShell.git
cd IfcOpenShell

# Checkout the latest weekly build branch
git checkout weekly-build-0.8.4-alpha251021

# Your PR is now merged with other community PRs - test away!

🤖 Automation System

The weekly builds are powered by a comprehensive 3-stage automation system:

Architecture

Stage 1: PR Merging (00_clone_merge_and_create_branch.py)
  └─→ Clones IfcOpenShell, merges open PRs, creates weekly branch
  └─→ Detects and skips draft PRs with detailed reasons
  └─→ Creates initial README report

Stage 2: Building (01_build_bonsaiPR_addons.py)
  └─→ Applies bonsai → bonsaiPR transformations
  └─→ Builds addons for 4 platforms (Linux, macOS x2, Windows)
  └─→ Appends build info to README report

Stage 3: Release (02_upload_to_falken10vdl.py)
  └─→ Creates GitHub release with semantic versioning
  └─→ Uploads 4 addon ZIPs + complete README
  └─→ Appends upload info to README report

Key Features

  • 🔒 Secure: Token-based authentication via .env file (no password prompts)
  • 🎯 Smart PR Detection: Automatically skips draft PRs and inaccessible repositories
  • 📈 Progressive Documentation: README report grows through each stage
  • ♻️ Idempotent: Safe to re-run without duplicating assets
  • ⏰ Scheduled: Runs every Sunday at 2:00 AM UTC via cron
  • � Comprehensive Statistics: Detailed PR merge, build, and upload statistics

Project Structure

bonsaiPR/
├── README.md                    # This file
├── automation/
│   ├── .env                     # Environment configuration (create from .env.example)
│   ├── .env.example             # Template for configuration
│   ├── README.md                # Detailed automation documentation
│   ├── requirements.txt         # Python dependencies
│   ├── scripts/                 # 3 main automation scripts
│   │   ├── 00_clone_merge_and_create_branch.py
│   │   ├── 01_build_bonsaiPR_addons.py
│   │   └── 02_upload_to_falken10vdl.py
│   ├── src/                     # Orchestration system
│   │   ├── main.py              # Main entry point
│   │   └── config/              # Configuration management
│   ├── cron/                    # Scheduling
│   │   └── weekly-automation.cron
│   └── logs/                    # Execution logs
│       └── cron_*.log

For Developers

Want to run your own BonsaiPR builds or modify the automation?

👉 See automation/README.md for:

  • Complete setup instructions
  • Environment configuration guide
  • Manual testing procedures
  • Cron installation steps
  • Troubleshooting guide

⚠️ Important Notes

Development Build Warning

  • ⚠️ Alpha Status: These are development builds with experimental features
  • 🧪 Community PRs: Contains unreviewed community contributions
  • 🎯 Testing Purpose: Intended for PR authors and testers, not production use
  • 💾 Backup First: Always backup your Blender projects before testing

Reporting Issues

  1. For PR-specific issues: Contact the PR author directly (see PR list in release README)
  2. For build/automation issues: Open an issue in this repository
  3. For IfcOpenShell/Bonsai issues: Report to the official repository

📅 Release Schedule

  • Frequency: Automated Every Sunday at 2:00 AM UTC but also "ad-hoc" if relevant changes to PRs are done between automated builds
  • Naming Pattern: v0.8.4-alphaYYMMDD (e.g., v0.8.4-alpha251021)
  • What's Included: All open, non-draft PRs from IfcOpenShell as of build time
  • Source Branch: weekly-build-0.8.4-alphaYYMMDD in fork repository

🔗 Links

📄 License

This project is licensed under the same license as Bonsai/IfcOpenShell.

🤝 Contributing

Contributions to the automation system are welcome! See automation/README.md for details on how to modify and improve the build system.


Current Version: v0.8.4-alpha (based on IfcOpenShell v0.8.0 branch)
Python Target: 3.11
Last Updated: October 21, 2025

About

BonsaiPR - Weekly automated builds with merged pull requests

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%