Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature_file] Create feature process file #583

Merged
merged 1 commit into from
Sep 3, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 139 additions & 0 deletions FEATURE_PROCESS.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
= WildFly Feature Development Process

WildFly features can have one of four different maturity levels, “Experimental”, “Preview”, “Community” and an unnamed default level.

Promotion from one level to another, or initial feature incorporation at a given level, requires meeting various standards in the basic areas of requirements analysis, implementation, testing and documentation. The following table outlines the various standards for each of the maturity levels.

[cols="5"]
|===
| | Experimental | Preview | Community | Default

//-------
| *Feature Team*
|Component lead or other SME
|Experimental plus:

3rd party with a different perspective, able to question the feature requirements and API
| same as Preview
| same as Community
//-------


//-------
| *Requirement Analysis*
| Issue tracker with an understandable description with an orientation toward what/why and not just how
|Approved WildFly Proposals document

Nice-to-have requirements allowed.
|Preview plus:

Nice-to-have requirements have been converted to non-requirements or are moved to a future work section.
|Same as Community
//-------

//-------
| *Implementation*
|Primary use cases covered.

Code style standards followed.

Management API has experimental metadata

Feature not used at runtime if not in experimental level

New libraries not provisioned if not in appropriate stability level ???

Third party libraries in Final version??
|All hard requirements in analysis covered

Management API has preview metadata

Feature not used at runtime if not in preview level

New libraries not provisioned if not in appropriate stability level ???
|Stable API and behavior.

All hard requirements in analysis covered

Management API has community metadata

Feature not used at runtime if not in community level

New libraries not provisioned if not in appropriate stability level ???
|Stable API and behavior

All hard requirements in analysis covered
//-------

//-------
| *Domain Transformation*
| Encouraged |Encouraged |Encouraged |Required
//-------


//-------
| *Component Validation*
|Acceptable Open Source License
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we have somewhere a list of such license?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not that I'm aware of. Perhaps @bstansberry knows?

|Experimental plus:

Uses maintained components

Java components available from Maven repositories (JBoss Nexus or Maven Central)
|Preview plus:

Uses up-to-date maintained components
|Community plus:

Identified maintainer
//-------


//-------
| *Test Plan*
|Not required
|Required -- TODO what it means
|Same as Preview
|Community plus:

Formal test plan approved by a professional Quality Engineer with subject matter expertise
//-------


//-------
| *Test Development*
|Standard subsystem tests.

Smoke tests of main functional areas.
|Standard subsystem tests.

Test coverage as per test plan.
| Same as Experimental
| Community plus:

Domain transformation tests
//-------


//-------
| *Test Verification*
| Code review and CI
| Same as Experimental
| Same as Preview
| Community plus:

Verification by a professional Quality Engineer with subject matter expertise
//-------


//-------
| *Documentation*
|Understandable JIRA description.

Correct management API metadata
| Experimental plus:

Documentation content as per analysis.
| Same as Preview
| Same as Community
//-------
|===