Skip to content

Phase B: Class and file renaming for indicators #1812

@DaveSkender

Description

@DaveSkender

Objective

Rename indicator classes and files to achieve consistent naming across all styles (Plan Phase 4).

Scope

Major renaming initiatives:

  1. Add "Series" suffix to indicator partial classes (~70 indicators):

    • partial class Emapartial class EmaSeries
    • partial class Rsipartial class RsiSeries
    • Aligns with existing *Hub and *List suffix patterns
  2. Rename indicator files to match class names (~210 files):

    • Ema.StaticSeries.csEmaSeries.cs (main file, no extender)
    • Ema.StreamHub.csEmaHub.cs (exact class match)
    • Ema.BufferList.csEmaList.cs (exact class match)
    • Ema.Models.csEmaResult.cs (exact class match)
    • Ema.Utilities.csEmaSeries.Utilities.cs OR EmaExtensions.cs
  3. Standardize test class naming (~280 test classes):

    • Series: EmaEmaSeriesTests
    • Buffer: EmaEmaBufferListTests
    • Hub: EmaHubTests → keep as-is (already correct)
    • Catalog: EmaTestsEmaCatalogTests
  4. Fix indicator-specific inconsistencies:

    • Dynamic indicator partial class alignment
    • Other indicators with directory ≠ class name mismatches

Preconditions

REQUIRED before starting:

  1. ✅ Phase A completed and merged (Phase A: Directory reorganization and static class alignment #1811)
  2. ✅ All Phase A validation criteria passing
  3. ✅ Repository on stable base
  4. ✅ No pending PRs with indicator file dependencies

Recommended:

  • Communicate timeline to community (breaking changes in file paths)
  • Prepare migration guide for contributors with pending PRs
  • Consider doing this after a release to minimize disruption

Implementation Steps

  1. Create feature branch from latest v3 (after Phase A merged)
  2. Indicator class renaming:
    • Task 4.8: Add "Series" suffix to ~70 indicator partial classes
    • Task 4.9: Rename ~210 indicator files to match class names
    • Task 4.10: Fix indicator-specific inconsistencies (Dynamic, etc.)
  3. Test class renaming:
    • Task 4.11: Standardize ~280 test class names with consistent suffixes
  4. Update all references:
    • Update consuming code and tests
    • Update catalog entries
    • Update documentation examples
    • Update migration guides
  5. Class/file mismatch fixes:
    • Task 4.1: Fix utility class/file mismatches
    • Task 4.2: Resolve StreamHub naming conflicts
    • Task 4.3: Document partial class naming rationale
    • Task 4.4: Review Candlesticks/Candles naming
    • Task 4.5: Audit all static classes for name matching
    • Task 4.6: Update XML documentation
    • Task 4.7: Run targeted tests

Validation Criteria

Must pass ALL before merging:

  • Build verification

    • Solution builds with zero warnings (Debug + Release)
    • No broken references in consuming projects
    • All namespaces remain unchanged (no API breaks)
  • Test suites

    • 100% unit test pass rate
    • 100% integration test pass rate
    • 100% regression test pass rate
    • Performance benchmarks ≤2% regression
  • Naming consistency

    • All indicator files match class names exactly
    • All test classes use consistent suffix patterns
    • No class/file name mismatches remain
  • Code quality

    • dotnet format --verify-no-changes passes
    • Roslynator analysis clean
    • XML documentation complete and accurate
  • Documentation

    • All code examples updated
    • Migration guide complete
    • API documentation regenerated
    • Breaking changes documented in changelog
  • Catalog integrity

    • All catalog entries updated with new class names
    • Catalog tests passing
    • Automation still works with renamed classes

Estimated Effort

Time: 24-36 hours

  • Class renaming: 12-16 hours
  • File renaming: 8-12 hours
  • Test renaming: 4-6 hours
  • Validation: 2-4 hours

Risk: High

  • Largest change set (500+ file renames)
  • High merge conflict potential
  • External developer impact (file path changes)
  • Requires comprehensive testing

Success Metrics

  • All 70 indicator Series classes have "Series" suffix
  • All 210 indicator files match class names exactly
  • All 280 test classes use consistent naming patterns
  • Zero class/file name mismatches
  • All tests passing
  • Documentation updated
  • Migration guide complete

Migration Support

For contributors with pending PRs:

  • Migration guide will document renaming patterns
  • List of renamed files will be provided
  • Support available via discussions

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    No status

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions