Hi there! Internet Explorer is no longer supported.

Please use a modern web browser such as Firefox, Chromium or Edge. Thank you!

Technical guide

Technical information of interest to Contributors.

a cover alternative title
a cover caption

The Basics

Modifying FreeCAD

Release Management

See Also

a cover alternative title

Application Module

Overview of application module structure.

a cover alternative title

Automated Testing

Automated Testing.

a cover alternative title

Building release packages

How to build FreeCAD packages for the different supported platforms.

a cover alternative title

Code for Translation

How to write code with strings that should be translated.

a cover alternative title

Code signing

Signing the FreeCAD executables and installers.

a cover alternative title

Developer's Glossary

Some terms that a developer may run across.

a cover alternative title

Feature checklist

Checklist for adding a new feature to an existing workbench in C++.

a cover alternative title

Major Releases

Guide for Major Releases.

a cover alternative title

Minor Releases

Guide for Minor Releases.

a cover alternative title

Object deletion

How to control object deletion.

a cover alternative title

Preferences

How to handle, retrieve and update user preferences.

a cover alternative title

Property Changes

Dealing with Property Changes. A brief introduction.

a cover alternative title

Python Binding

Create a Python Binding for C++.

a cover alternative title

Python stubs

Python stubs.

a cover alternative title

Reference Library

Reference Library.

a cover alternative title

Release Process

High-level overview of the release planning and management process.

a cover alternative title

Snap package

Maintaining the Snap package.

a cover alternative title

Source Tree

A picture of the most commonly encountered branches of the FreeCAD Source Tree.

a cover alternative title

Windows LibPack

Maintaining the FreeCAD LibPack for Windows.