bevyengine / bevyengine/bevy

Contributor advice on the use of `non_exhaustive` enums

Open
#8,044 0 comments 3 reactions 0 assignees View on GitHub
A-Meta C-Code-Quality
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## What problem does this solve or what need does it fill?
Any addition of a variant to a public enum is a semver incompatible breaking change, as seen in #8042. If we're looking to make patch releases a regular thing, and as the engine heads towards stability, a common policy on the use of the `non_exhaustive` attribute on public enums should be in place.

## What solution would you like?
Set up a common policy of some kind. Document it well. Enforce it during code review.

## What alternative(s) have you considered?
Leave all of our enums as is, let changes be breaking.

## Additional context
https://doc.rust-lang.org/reference/attributes/type_system.html

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.