Git Product home page Git Product logo

homebrew-freecad's Introduction

homebrew-freecad


FreeCAD is a Free (as in Libre) multiplatform Open Source Parametric 3D CAD software.
Homebrew is a MacOSX Package Manager.

Overview

The primary and frequent use case for this formula is for developers to conveniently install all the required FreeCAD dependencies to support FreeCAD development.

NOTE: If you are looking for the current macOS builds, please download the latest build from GitHub

Alternatively there are versions of FreeCAD & friends built using conda, there are a weekly releases published here

Prerequisites

Install homebrew

Installing FreeCAD dependencies (FreeCAD developers)

Developers may find it convenient to simply install the pre-requisites prior to cloning the FreeCAD repo for development builds.

brew tap freecad/freecad
brew install --only-dependencies freecad

Install flags

By default, freecad is installed as a binary to be launched from a CLI. To also create a .app bundle use --with-macos-app.

Building The Current Release Version of FreeCAD

brew tap freecad/freecad
brew install freecad -v

Building HEAD Version of FreeCAD

brew install --HEAD freecad

Continuous Integration Support

The Travis CI system uses this freecad formula to build and test FreeCAD every time a change is made to the FreeCAD/FreeCAD repo meaning that the formula is very well tested itself.

Contributing ๐Ÿค

Submitting PR's for this repo can go along way, that's not to say it's an easy task. Following the below guidelines will help all that use this repo.

  1. when submitting a PR, rebase all commits into a single commit

homebrew test-bot currently will fail โŒ to publish a bottle if a PR contains more than one commit. A quick solution is to rebase, and squash all unneeded commits thus making the brew test-bot happy. learn more

  1. when submitting a PR that is updating or adding a new formula file, only add or change one formula file in a PR.

brew test-bot will fail if a PR contains two distinct formula files being edited and will be unable to publish the bottles for the edited formula.

  • looking at how upstream homebrew-core manages PRs, each PR only edits one formula file at a time.

Not all PR's require running through the CI, one example would be updating this README file. If a PR does not update a formula file within this repo then within the PR description, and in the commit message add the following [no ci] allowing the PR to be merged into the repo without running CI checks.

Maintenance ๐Ÿงน

For maintainers of this repo, I have setup this repo using self-hosted runners for macOS Mojave, Catalina, and Big Sur (Intel only) versions of macOS. These self-hosted runners all run on a late macbook pro 2013 model that runs archlinux allowing the virtual machines to be started and stopped thanks to qemu+kvm.

Self-hosted runners will disappear from a repo on GitHub if they are not used within 30 days. However, a new self-hosted runner can be readded to this repo using github's web based UI. After the runner is added and labeled properly than the runner can pick up the job, and the status of the job can be viewed from the actions tab at the top of the repo.

I've had to readd macos vm's several times due to inactivity, but isn't an issue as the self-hosted runner picks up where it left off. More information about this nuance can be provided upon request.

TODOs

  • presently the [email protected] tap formula installs pip3 and wheel3 which will not work if formula is set to keg_only
    • look at the formula cookbook / install section for finding a way to possibly make the tap version of python keg_only while not raising an audit error in the process.
    • the above issue is now adverted by using the upstream (homebrew-core) version of [email protected]
  • publish bottles for older versions of macos ie. mojave & high sierra, there is an active discussion about the topic here

Open Issues

See GitHub Issues

Recognition

Sam Nelson originally developed the freecad homebrew recipe repo circa April 2014 and transferred it to the FreeCAD organization in October 2016.

homebrew-freecad's People

Contributors

ipatch avatar vejmarie avatar bblacey avatar sanelson avatar peterlama avatar ianrrees avatar ageeye avatar dansrogers avatar zenz avatar brainstorm avatar shmishleniy avatar dirkolbrich avatar jimhigson avatar kkremitzki avatar plaes avatar realthunder avatar luzpaz avatar hiaselhans avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.