How to Create Code Releases
Description
A software release is the process of making a new or updated version of software available to users. It’s an important phase in software development cycle that involves several other stages, including: planning, development, testing, deployment, and maintenance.
Considerations
- A software release is a new version of a software product, and a release log (changelog) is a document that records the changes made to the software over time and is published with the software at the time of the release.
- Software versioning is the process of assigning either unique version names or unique version numbers to software releases. Naming schemes can vary - for example Semantic Versioning (e.g. “1.0.2”) and Calendar Versioning (e.g. “24.10”).
- Attachments like built binaries or packages or other software artefacts can be provided with the release.
Solutions
Software Project Management Platforms like GitHub and GitLab offer features to help with releasing software automatically.
For example, to perform a software release on GitHub:
- Go to your source code repository on GitHub.
- Prepare changelog ahead of the release process.
- Click on
Releases
and then onDraft a new release
button. - Decide on a software versioning scheme you will use and use a unique name or number for this release.
- Add release notes - a short and non overly technical summary of the changelog intended for end-users.
- Click on
Publish release
. - If your repository is integrated with Zenodo - a new DOI for this software release will automatically be minted by Zenodo.
Related pages
Skip tool tableTools and resources on this page
Tool or resource | Description | Related pages | Registry |
---|---|---|---|
Calendar Versioning | Calendar Versioning (CalVer) is a versioning convention based on your project's release calendar, instead of arbitrary numbers. | ||
GitHub | Software development, sharing and version control platform | Writing a CodeMeta file Creating a 'Read the D... Software documentation Version control Digital Software Ident... | |
GitLab | DevOps platform that enables teams to collaborate, plan, develop, test, and deploy software using an integrated toolset for version control, CI/CD, and project management. | Creating a 'Read the D... Software documentation Version control | |
Semantic Versioning | Semantic versioning (SemVer) is a widely-adopted version scheme that encodes a version of a project by a three-part version number (Major. Minor. Patch), an optional pre-release tag, and an optional build meta tag. | ||
Zenodo | Open repository for EU-funded research outputs from Horizon Europe, Euratom, and earlier Framework Programmes | Writing a CodeMeta file Software documentation Digital Software Ident... |
National resources
Tools and resources tailored to users in different countries.
ContributorsHow to cite this page
Christian Hüser, Shoaib Sufi, Daniel Garijo,
"Releasing code".
http://everse.software.
http://everse.software/RSQKit/releasing_code (accessed 08 January, 2025).