-
Notifications
You must be signed in to change notification settings - Fork 1.7k
SD: Releases
Lukas Dürrenberger edited this page Jun 9, 2024
·
10 revisions
This page serves both as a way to document the release process and as a way to show the current situation, while offering potential improvements in the process.
- Update SFML version
- In CMake
- In the config header
- In the find_package example
- In the info.plist
- Update the changelog
- In the repository
- On the website
- Update the website
- Update the documentation
- Create a new doxygen script
- Generate new HTML documentation
- Apply the CSS overrides
- Adjust the documentation links
- Update the latest version (EN / FR)
- Update the tutorials
- Duplicate the existing tutorial folder and rename for the new version
- Adjust the tutorial links
- Update the latest version (EN / FR)
- Write new tutorials?!
- Update the downloads
- Upload the new binaries
- Duplicate the existing download folder and rename for the new version
- Add or remove new or old compilers on the new download page
- Adjust the file sizes on the new download page
- Update the old version pages (EN / FR)
- Adjust rewrite rules to point to the latest version
- Update the documentation
- GitHub Updates
- Tag the version in git
- Create a new GitHub release
- Close the open project
- Close the open milestone
- General Updates
- Contact package maintainers as soon as a new tag is created
- Create a new forum thread
- Update the existing forum thread
- Tweet about the new version
- Write a post on Fosstodon about the new version
- Post about the new version on Reddit (r/sfml & r/cpp)
- at-everyone in Discord for the new release
- Update IRC channel description (boxbox)
- Update Slack channel description (cpplang)
Instead of having to edit various pages, the pages should automatically detect the available versions.
- Documentation / Tutorials
- Detect the latest version and link it at the top
- List all other versions at the bottom
- ➡️ No need to manually edit the learn page
- Download page
- Detect the latest version and link it at the top
- List all other versions on the Old Version page
- Parse the files and automatically add the file sizes (caching!)
- Generate the changelog HTML from the Markdown file (already done partially)
Do everything mentioned above, but instead of serving stuff via dynamic PHP code, generate static pages before hand and serve those.
- One file for tutorials that didn't change across versions
- Super fast performance
- Potential to host on secondary sources (like GitHub pages) in case of maintenance
- Tutorial downloads for offline usage
See also: https://github.com/SFML/SFML-Website/issues/171
Have specific rule set just for release builds, would make it as easy as clicking a button to create new releasable SFML packages.
This would most likely require changing either libs that we usually package or the currently running builds to be more similar to the usual release packages.
- Writing changelog
- Git magic (tagging / branching)
- Promotions
- Update the build tooling
- Check if there are newer, compatible Docker image versions
- Update the version
- in the CMakeLists.txt
- in the Config.h header
- in the CSFML.csproj for the NuGet release
- Update the version
- in the SFML.NuGet.props
- in the examples
- Run clean & rebuild in Release mode
- Testing - Using a local NuGet source
- macOS - To ensure the correct configuration between CSFML and SFML.Net
- Windows
- Tag release commit
- Ensure that only one set of
*.nupkg
exist inbin/Release
- Run
PushNuGet.ps1
orpushnuget.sh
and provide the NuGet API key as parameter - Create a GitHub Release
- Update the website
- Update the binding page