Skip to content

Wait for fortfront static library foundation before proceeding #66

@krystophny

Description

@krystophny

Status: Build Architecture Complete, Waiting for API Stabilization Only

The build integration is already complete via fmp dependency management. This issue now tracks waiting for fortfront API stabilization only.

What's Already Working

  • fmp Integration: fortfront = { path = "../fortfront" } in fmp.toml
  • Automatic Linking: fmp handles all static linking automatically
  • Build Commands: fpm build and fpm test work correctly
  • Zero Configuration: No manual build setup required

What We're Still Waiting For

  • fortfront #416: Stable API availability (not library packaging)
  • fortfront #417: Pure Fortran module interfaces documented
  • fortfront #418: API validation tests completion
  • CST/AST Split: Interface stability for formatting rules

Misconception Corrected

This issue originally focused on "static library foundation" but fmp's dependency management makes manual library packaging unnecessary. We're only waiting for API stabilization.

What To Do While Waiting

  1. ✅ Review existing code to identify all text-based analysis
  2. ✅ Plan AST visitor implementations for each rule
  3. ✅ Study fortfront's AST node types and visitor patterns
  4. ✅ Prepare test cases for AST-based rules
  5. New: Document fmp's automatic dependency management benefits

Verification Checklist (Revised)

  • fmp builds fluff with fortfront automatically
  • Fortran modules can be imported from fortfront
  • Sample AST usage works via existing API
  • fortfront API is stable and documented
  • All fortfront validation tests pass

Next Steps (Revised)

Once fortfront API is stable:

  1. Update fluff's fpm.toml (Already complete)
  2. Proceed with issue Remove ALL text-based analysis from fluff - Complete cleanup required #64 (remove text-based analysis)
  3. Begin Phase 1 of ROADMAP.md

Impact on Development

This significantly simplifies development - no build system complexity, just focus on API usage patterns and rule implementations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions