View on GitHub

FreeCAD Developers Handbook

A handbook about FreeCAD development

Roadmap Rationale #

The page describes the big ideas that guide the creation of the roadmap.

People may, and probably will argue about which future state FreeCAD should pursue. For the purposes of this document we assume the following:

  1. We want FreeCAD to have a healthy development community where new features are regularly added, bugs are quickly resolved, and performance is maintained.
  2. We want a large and diverse community of people using FreeCAD to do real work, including commercial, academic, and hobby pursuits.
  3. We want the code-base to be maintainable, understandable, and testable.
  4. We want the user interface to be beautiful, intuitive, and efficient.
  5. We want high-quality and relevant documentation.
  6. We want the software to be well-designed to support a variety of use-cases including scripted operation.
  7. We want a stable and well-designed API to allow FreeCAD to be included in other workflows and tools.

Why build a roadmap? #

Technical discussions often become contentious because the decisions made have real consequences. Well-meaning people may disagree because they have differing priorities or goals.

A well-designed roadmap is beneficial because it first focuses on the priorities and then encourages technical decision-making in context.

A good roadmap will be useful to many different kinds of people:

  1. Developers will be able to make better decisions about which features should be addressed first and which bugs are worth fixing.
  2. Maintainers can prioritize PR code-review and merge activity.
  3. New contributors can get a sense of where and how their efforts would be most useful.
  4. Non-developer Contributors can prepare better documentation, support users more effectively, and advocate for appropriate changes.
  5. The FPA can allocate resources to encourage key development efforts, plan events, and raise funds. They can encourage sponsors appropriately and push back on sponsors with goals that are not consistent with project goals.
  6. Content Creators can build curriculum, prepare tutorials, and aid with educating users about new features.
  7. Ondsel and other commercial partners can plan their product offerings effectively.
  8. GSoC and other mentors will be able to define projects that are consistent with the general project direction.
  9. Other Open-Source projects can identify opportunities for partnership and co-development.

Why Now? #

FreeCAD releases have never followed a predictable routine. Instead, the project’s unofficial motto, “It’s done when it’s done” has dictated when official releases are prepared. This model has served the project very well for many years but not without controversy and consequences.

Within the last couple of years many things in the FreeCAD ecosystem have changed.

The user community has grown dramatically. It has spread far beyond the forum and it includes far more non-developer users.

The FPA was formed to protect the FreeCAD project and encourage its growth. The FPA has started receiving donations. Deploying those funds well is becoming a challenge itself.

Ondsel was formed as an open-core public benefit corporation building around the FreeCAD project. As a commercial enterprise, they have a strong need for predictabiilty in the development process and project goals.

Interest by commercial users to deploy FreeCAD in production environments is increasing.

FreeCAD is reaching a state of feature-completeness that suggests a 1.0 release. After that point, backwards compatibility and document stability will become increasingly important.

Universities, trade-schools, and online educators have shown interest in teaching FreeCAD and offering some form of certification.

Who gets to write/change it? #

The roadmap is, in a sense, a living document. It should be frequently reviewed and revised. The FPA is the steward of the document itself and takes the lead on drafting and revising its content, but it should reflect the will of the whole FreeCAD community. The FPA actively seeks input from the community members and other stakeholders, partners and industry experts.