Skip to content

Bug or Feature

tfr42 edited this page Mar 13, 2015 · 12 revisions

This section is meant to clarify when we consider a bug as a defect, enhancement or a feature.

Bugs

Bugs, defects or issues, are things that need to be fixed urgently (ideally, in the next release) and do impair the functionality of the software. For users: Please have a look on our [Bug Report writing Guidelines] (Bug-Report-writing-Guidelines). For developers: commit a bug fix for the current stable and the unstable version as two separate pull requests.

Enhancements

Enhancements, improvements are things which are implemented for the current stable version and improve an already implemented feature of deegree. For developers: commit an enhancement for the current stable and the unstable version as two separate pull requests.

Features

Feature requests are things that need to be added at some point in the future and will add new functionality to the software. For users: Please have a look on our [Feature Request writing Guidelines] (Feature-Request-writing-Guidelines). For developers: commit a new feature for the unstable version only! The TMC will not except new features for the current stable version! Please read the following paragraph about semantic versioning which explains why.

Semantic versioning

Each release of deegree has a version number. The version number has the pattern 3.4.0 or in general MAJOR.MINOR.PATCH. This has some implications.

For users

  • MAJOR versions provides new features but can also drop features. Major versions can result in changes to the deegree workspace configuration.
  • MINOR versions will contain enhancements or small improvements and are considered to be backwards-compatible to the previous version of the same release line.
  • PATCH versions contain only backwards-compatible bug fixes. Upgrading to a new release version is considered easy and safe.

For developers

  • MAJOR versions allow to make incompatible API changes. Changing the signature of a public method, remove or move a public class or interface to a different package. Creating new packages and types are considered as API changes too.
  • MINOR versions allow to add functionality in a backwards-compatible manner by adding a protected or private method.
  • PATCH versions allow to make backwards-compatible bug fixes by changing a method implementation block only! You can add private methods only!

Read more about semantic versioning here: http://semver.org/

Clone this wiki locally