ansys / ansys/pyfluent

Issue: Improve Beta Feature Visibility Control in PyFluent

Open
#4,259 2 comments 0 reactions 1 assignee Assigned to @mayankansys View on GitHub
enhancement
Dominant language
Python
Stars
497
Forks
77
Avg merge
22h 37m
Merged PRs (30d)
45

Description

# 🗂️ Issue: Improve Beta Feature Visibility Control in PyFluent

## Current Status

PyFluent currently provides users with a **session-level method** (`enable_beta_features()`) to activate beta features. However:

- The **settings API** does not yet support the concept of hiding or exposing individual *beta-level* items based on this flag.
- As a result, even if the `enable_beta_features()` switch is used, there is **no mechanism** to dynamically hide or reveal beta settings objects or properties.
- There is also currently **no trustable mechanism** to ensure developers properly classify or gate such features.
- Example: `materials.database` remains visible in the API but is really just a thin, unstructured TUI wrapper — it arguably should not be exposed as part of a stable API surface.

## Problem

This means:
- Users may see **unfinished, low-quality, or redundant API items** that appear fully supported but are actually experimental.
- There is **no clear, consistent signal** to developers or downstream tools about which parts of the API are stable vs. beta.
- There is a **risk of accidental usage** of non-final parts of the API in production workflows.

## Proposal

To address this, consider:
- Introducing **explicit beta path tagging** for all settings API objects, parameters, and methods intended to be gated.
- Allowing PyFluent to maintain its **own internal list of beta paths**, decoupled from developers' manual filtering.
- Linking this list directly to the `enable_beta_features()` switch, so that non-beta users cannot access or see these paths.
- Providing clear warnings or structured metadata when beta items are exposed.

## Example Use Case

The current `materials.database` situation illustrates this gap:
- It is visible to users but behaves like an old-style TUI object.
- There is no practical reason for it to appear in the documented stable API surface at this stage.

## Benefits

- Clearer boundaries between stable and experimental capabilities.
- Reduced accidental reliance on unfinished or unreviewed features.
- Stronger alignment with the intended **quality promise** of the PyFluent API.
- Improved ability for LLMs, IDEs, and doc tools to respect feature maturity.

---

**Request:** Please share design ideas for how we could implement and maintain this more robust beta feature control.

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.