Release process

The aim of this page is to gather ideas and organize things so official releases of FreeCAD require less work, and therefore can happen more often. This topic is discussed on this forum thread.

General ideas

 * The "target release" field of the tracker should be used more, even on bugs that are not assigned to anybody, to mark bugs that we find important to solve before a release, or features we are working on, so others are aware of "how close" we are to release. This appears on the roadmap.


 * We should find a way to process the list below (A "tickable" list somewhere?)

Planning

 * Ideally official releases should happen each 3 to 6 months
 * A signal should be emitted (by jriegel?) before the release (3 weeks?) so:
 * No more new feature gets introduced, only bug fixes
 * The strings are collected and uploaded to crowdin for translation
 * The documentation can be fully updated
 * The release notes can be prepared/finished

Tasks
These are the tasks required for each release, with the name of the person responsible for it. Add your name if you want to take care of a task!


 * jriegel - Giving the signal to the release (3 weeks before?)
 * yorik - Gathering the strings to translate and uploading them on crowdin
 * yorik - Announce on the forum and on social networks that translation is needed
 * yorik - Set the splashscreen
 * Unassigned - Update years in source files
 * Unassigned - Update dependencies in README
 * Unassigned - Change the version number in the FreeCAD code
 * Unassigned - Check that all workbenches pages on the wiki are up-to-date (all their commands are listed), list missing pages
 * Unassigned - Manage the updates of the wiki
 * Unassigned - Manage the release notes
 * Unassigned - Update ChangeLog.txt
 * yorik - Merge back the translations from crowdin
 * Unassigned - Check the german translation
 * Unassigned - Check the french translation
 * Unassigned - Check the other translations that have reached 100% (add them here)
 * Unassigned - Tag the exact release commit in git
 * Unassigned - Make the windows 32bit build
 * Unassigned - Make the windows 64bit build
 * Unassigned - Make the mac build
 * Unassigned - Make the ubuntu stable build
 * Unassigned - Check the windows 32bit build
 * Unassigned - Check the windows 64bit build
 * Unassigned - Check the mac build
 * Unassigned - Check the ubuntu build
 * Unassigned - Communicate the release to package managers of linux distributions (debian, fedora)
 * yorik - Update the release numbers on the tracker
 * yorik - Update the release numbers and download locations on the main web page for all languages
 * yorik - Update the python API doc pages
 * Unassigned - Advertise the release on social networks and communicate to interested people (bloggers, etc)