Skip to content

Commit ce20536

Browse files
authored
Update MajorRelease.md
Flesh out some sections of the release process
1 parent 6af6038 commit ce20536

File tree

1 file changed

+26
-18
lines changed

1 file changed

+26
-18
lines changed

technical/MajorRelease.md

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -55,34 +55,42 @@ After the PR Merge phase, only bug-fix PRs will be merged.
5555

5656
## Release Candidates
5757

58-
After all outstanding PRs are merged and all critical bugs are resolved, a Release Candidate (RC) version will be created and a public announcment made. This is a request to the community for intentional and deliberate testing with the goal of uncovering as many bugs as possible.
58+
After all outstanding PRs are merged and all critical bugs are resolved, a Release Candidate (RC) version will be created and a public announcment made. This is a request to the community for intentional and deliberate testing with the goal of uncovering as many bugs as possible. This is the point at which the formal branch is created for the releases. First, create a branch called "releases/FreeCAD-X-Y" where X and Y are the major and minor release numbers. Next use the GitHub "Draft new release" button on the Releases page to create a new release. Set it up to create a new tag with the release number in it, e.g. "0.21rc1" and ensure that the release is based on the "releases/FreeCAD-X-Y" branch. Mark the release as a "pre-release" so that it does not display as the latest version. Attach all of the necessary installers, appimages, packages, etc. to this release. Note that the release can be edited after creation, so assets can be added as they become available.
5959

6060
Translation files will be pushed to CrowdIn and a public call for translation assistance should be made.
6161

62-
Release notes should be reviewed at this point and any ommisions corrected
62+
Release notes should be reviewed at this point and any ommisions corrected.
6363

64-
Numerous release candidates may be produced as critical bugs are addressed.
64+
Any problems identified with the release candidate should be addressed via PRs made to the release branch. If necessary, multiple release candidates may be tagged using the same "Draft new release" process described above, and incrementing the release candidate number.
6565

6666
## Final Release
6767

68-
- The result of the splash screen contest is announced and the new splash screen is added to the source.
69-
70-
- update all versions in a number of source code locations:
68+
- The result of the splash screen contest is announced and the new splash screen is added to the source, if that was not done in earlier stages.
69+
- Update all versions in a number of source code locations where they are not automatically generated:
7170
- README.md
72-
- appveyor.yml
7371
- CMakeLists.txt
74-
- src/Tools/offlinedoc/buildqhelp.py
75-
- src/XDGData/org.freecadweb.FreeCAD.appdata.xml
76-
- vagrant/Xenial/generate_yaml.sh
77-
- vagrant/Xenial/bin/launcher
78-
- vagrant/generate_yaml.sh
79-
- vagrant/FreeCAD.sh
72+
- Manually tag the release on the appropriate branch using semantic versioning for the tag name, e.g. "1.2.3". Launch the various build-creation tasks based on this tag.
73+
- Conda builds for all platforms
74+
- Manual compilation of a Windows LibPack-based binary and NSIS-created installer
75+
- Sign and notarize the Mac OS Conda builds once they are complete
76+
- (Future work) Sign the Windows builds
77+
- Create a new release on GitHub, this time marking the "Set as latest release" box and not marking it as a pre-release, and setting the release to use the tag created above. It's best to ensure all assets are attached prior to publication of the final release, so save the release as a draft as necessary until all builds are completed. The release contains a release announcement text that should be appropriate for the general user audience (not targeted at developers).
78+
- Prepare a packager's release files and alert the packagers.
79+
80+
## Release Announcment
8081

81-
- Prepare a packager's release files and alert the packagers.
82+
Once all release files are in place, a release announcement should be posted to all "official" FreeCAD channels:
8283

83-
- Tag the new release
84-
TODO: relevant git commands
84+
- FreeCAD News (https://blog.freecad.org)
85+
- The FreeCAD Forum (https://forum.freecad.org)
86+
- Facebook
87+
- X
88+
- Mastodon (automatic from the blog post)
89+
- Discord
90+
- LinkedIn
8591

86-
## Release Announcment
92+
There are also other active communities where FreeCAD does not maintain any sort of official presence, but where nevertheless users are likely to benefit from an announcement:
8793

88-
Todo
94+
- Yorik's blog
95+
- Ondsel blog
96+
- Reddit

0 commit comments

Comments
 (0)