<html><head><title>FreeCAD Configuration Management Project</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type='text/css' href='wiki.css' rel='stylesheet'></head><body><h1>FreeCAD Configuration Management Project</h1></div> <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="mw-parser-output"><p>This page is describes a potential 2018 Google Summer of Code project regarding configuration management for the FreeCAD CAE application. </p> <div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Outline"><span class="tocnumber">1</span> <span class="toctext">Outline</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#Details"><span class="tocnumber">2</span> <span class="toctext">Details</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#Expected_Outcome"><span class="tocnumber">3</span> <span class="toctext">Expected Outcome</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#Future_Possibilities"><span class="tocnumber">4</span> <span class="toctext">Future Possibilities</span></a></li> <li class="toclevel-1 tocsection-5"><a href="#Project_Properties"><span class="tocnumber">5</span> <span class="toctext">Project Properties</span></a> <ul> <li class="toclevel-2 tocsection-6"><a href="#Skills"><span class="tocnumber">5.1</span> <span class="toctext">Skills</span></a></li> <li class="toclevel-2 tocsection-7"><a href="#Difficulty"><span class="tocnumber">5.2</span> <span class="toctext">Difficulty</span></a></li> <li class="toclevel-2 tocsection-8"><a href="#Additional_Information"><span class="tocnumber">5.3</span> <span class="toctext">Additional Information</span></a></li> </ul> </li> </ul> </div> <h2><span class="mw-headline" id="Outline">Outline</span></h2> <p>FreeCAD relies on a large number of software packages and is available on most major platforms (Linux, OSX, Windows), each Distro/OS have several distribution methods available (package managers, Libpacks, pip, Conda, AppImages, installers, etc). This makes for a particularly challenging configuration management environment. </p> <h2><span class="mw-headline" id="Details">Details</span></h2> <ol><li> A clear picture of FreeCAD's dependencies as well as their dependencies is required. This is envisioned as a visual depiction (perhaps a directed graph) and an analysis of conflicting versions.</li> <li> A plan for the partitioning of the FreeCAD functionality into manageable chunks along with smaller sets of dependencies is also required. It's desirable to identify interdependencies and not re-install them.</li></ol> <h2><span class="mw-headline" id="Expected_Outcome">Expected Outcome</span></h2> <ol><li> A concrete/documented view of FreeCD's dependencies (and perhaps the trusted addons) </li> <li> A reduction in manual effort when releasing new versions of FreeCAD</li></ol> <h2><span class="mw-headline" id="Future_Possibilities">Future Possibilities</span></h2> <p>This work will provide experience in the packaging and distribution of multi-platform, cross-dependency software. </p> <h2><span class="mw-headline" id="Project_Properties">Project Properties</span></h2> <h3><span class="mw-headline" id="Skills">Skills</span></h3> <ul><li>Familiarity with <ul><li> package managers (Launchpad, pbuilder, gitbuilder, conda, NSIS-installer)</li> <li> build managers (cMake, make, VS, MSBuild, Nmake)</li> <li> graph theory (Dependency graph)</li></ul></li></ul> <h3><span class="mw-headline" id="Difficulty">Difficulty</span></h3> <p>Medium </p> <h3><span class="mw-headline" id="Additional_Information">Additional Information</span></h3> </div> </div><div class="printfooter"> Online version: "<a dir="ltr" href="https://www.freecadweb.org/wiki/index.php?title=FreeCAD_Configuration_Management_Project&oldid=262031">http://www.freecadweb.org/wiki/index.php?title=FreeCAD_Configuration_Management_Project&oldid=262031</a>"</div> <div id="catlinks" class="catlinks" data-mw="interface"></div><div class="visualClear"></div> </div> </div> <div id="mw-navigation"> <h2>Navigation menu</h2> </body></html>