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
Code hosting and management platforms – like GitHub, GitLab, and BitBucket - offer features to help with releasing software automatically.
For example, to create a software release on GitHub:
- Go to your source code repository on GitHub.
- Prepare changelog ahead of the release process.
- Click on
Releasesand then onDraft a new releasebutton. - 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 issued by Zenodo.
Related pages
Training
EVERSE TeSS search results:
Tools and resources on this page
| Tool or resource | Description | Related pages |
|---|---|---|
| BitBucket | Bitbucket is used for hosting and managing source code repositories, primarily using Git, and is designed to help software development teams collaborate on code, automate builds and deployments with Bitbucket Pipelines, and integrate with other tools like Jira. | Packaging software |
| Calendar Versioning | Calendar Versioning (CalVer) is a versioning convention based on your project's release calendar, instead of arbitrary numbers. | |
| GitHub | GitHub is a platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control. GitHub provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. | Archiving software Performing a code review Computational workflows Documenting code Documenting software p... Documenting software u... Packaging software Using version control |
| 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. | Archiving software Performing a code review Computational workflows Documenting code Documenting software p... Documenting software u... Packaging software Using 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. | Software identifiers |
| Zenodo | Zenodo is a general-purpose open repository developed under the European OpenAIRE program and operated by CERN. It allows researchers to deposit research papers, data sets, research software, reports, and other research-related digital artefacts. | Archiving software Documenting code Software identifiers Software metadata |
How to cite this page
Christian Hüser, Shoaib Sufi, Daniel Garijo, "Releasing software". everse.software. http://everse.software/RSQKit/releasing_software .