FreeCAD 1.0 Development Cycle: Difference between revisions

From FreeCAD Documentation
(updates)
Line 5: Line 5:
=== Minimum supported library versions ===
=== Minimum supported library versions ===


Development of 1.0 targets Ubuntu 20.04 LTS as the oldest OS for compiling FreeCAD. Minimum supported infrastructure software versions are:
The development of 1.0 targets Ubuntu 20.04 LTS as the oldest OS for compiling FreeCAD. The minimum supported infrastructure software versions are therefore the ones of Ubuntu 20.04 LTS:
* GCC 7.5
* GCC 7.5
* Clang 6.0
* Clang 6.0
Line 17: Line 17:
* std::regex is much slower than boost::regex in some important cases, so we will continue to include the Boost regex library
* std::regex is much slower than boost::regex in some important cases, so we will continue to include the Boost regex library


Developers are encouraged to review the [https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines C++ Core Guidelines] for modern C++ coding advice. No strict coding convention has been selected for FreeCAD, though new C++ code often conforms to the [https://wiki.qt.io/Coding_Conventions Qt coding conventions], and new Python typically conforms to [https://pep8.org/ PEP 8].
The developers are encouraged to review the [https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines C++ Core Guidelines] for modern C++ coding advice. No strict coding convention has been selected for FreeCAD, though new C++ code often conforms to the [https://wiki.qt.io/Coding_Conventions Qt coding conventions], and new Python typically conforms to [https://pep8.org/ PEP 8].


=== Development Goal ===
=== Development Goal ===

Revision as of 16:54, 14 June 2022

This documentation is a work in progress. Please don't mark it as translatable since it will change in the next hours and days.

Development of FreeCAD 1.0 began after tagging FreeCAD 0.20 on June 14, 2022.

Minimum supported library versions

The development of 1.0 targets Ubuntu 20.04 LTS as the oldest OS for compiling FreeCAD. The minimum supported infrastructure software versions are therefore the ones of Ubuntu 20.04 LTS:

  • GCC 7.5
  • Clang 6.0
  • CMake 3.16
  • Python 3.8
  • Qt 5.12
  • OpenCASCADE 7.3

This version of FreeCAD is compiled requiring the C++17 standard, and all C++17 features are allowed with two exceptions:

  • std::filesystem is not well-supported by GCC 7.5 -- continue to use boost::filesystem instead
  • std::regex is much slower than boost::regex in some important cases, so we will continue to include the Boost regex library

The developers are encouraged to review the C++ Core Guidelines for modern C++ coding advice. No strict coding convention has been selected for FreeCAD, though new C++ code often conforms to the Qt coding conventions, and new Python typically conforms to PEP 8.

Development Goal

As volunteer-developed Open Source software it is impossible to guarantee that any particular feature will be implemented in a given time frame. For the 1.0 release there is however only one big goal:

Toponaming branch

In order to address the Toponaming issue, directly after the release of FreeCAD 0.20 a special Toponaming branch was created:

https://github.com/FreeCAD/FreeCAD/tree/development/toponaming

The workflow is the following:

FreeCAD's master will contain the "normal" development.

When the first portion of Toponaming is ready in the Toponaming branch

  1. the Toponaming is rebased on master
  2. an intermediate release is made to let users test it.
  3. If the feedback is positive the next portion of toponaming is as added to the toponaming branch

This cycle is repeated until FreeCAD is fully usable without the Toponaming issue.