Skip to content

Create and communicate policy for published API lifecycle #63

@jlink

Description

@jlink

SUGGESTION:

Introduce annotation for all interfaces and classes supposed to be used from outside:

@PublicAPI(Stable)
@PublicAPI(Maintained)
@PublicAPI(Experimental)
@PublicAPI(Deprecated)
@PublicAPI(Internal)
  • Stable: Will be here forever (in this major version 5.x)
  • Maintained: Considered mostly stable. If considered for removal, it will be deprecated for at least one minor version.
  • Experimental: Use at your own risk. Might be removed at any time.
  • Internal: Only used for public members in types that have a @PublicAPI annotation.

Everything not annotated would be considered for internal use only.
Annotation would allow to produce API change reports for all releases.

Tasks

  • Create annotation
  • Add paragraph about API annotations to documentation
  • Annotate junit-launcher
  • Annotate junit-commons
  • Annotate junit-console
  • Annotate junit-engine-api
  • Annotate junit5-api
  • Annotate junit5-engine
  • Annotate junit4-engine
  • Annotate junit4-runner

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions