A release is the immutable packaging of a software product. Software releases are an essential component of modern software development and the software development life cycle for two main reasons:
- They are intentional. Someone decided what changes are required to give value and when the changes are ready for others to use.
- They include context. Information about the difference between the code at two points is conveyed. Whether it is simply by the version indicating the scope or including additional artifacts such as a changelog, the user has more information than "something changed."
The developer plays a key role in a software release because a thoughtful decision is required.