Skip to content

Development Guide

This section provides comprehensive resources to help you contribute to FatPy, a Python package for fatigue life evaluation of materials, part of the FABER project.

Learn About FABER

Note

FatPy follows Test-Driven Development (TDD) principles, emphasizing code quality, thorough documentation, and rigorous testing. Whether you're fixing bugs or adding features, this guide will help you become a successful contributor.

Getting Started

New to FatPy? Start with these resources to set up your environment and understand how to contribute effectively:

Development Resources

Deepen your understanding of FatPy development with these resources:

  • Code Style
    Follow our coding standards for consistent, high-quality code.
  • Documentation
    Learn best practices for writing and maintaining FatPy documentation.
  • Testing
    Understand how to write and run tests to ensure code reliability.
  • CI/CD Process
    Explore our continuous integration and deployment workflow.
Additional Resources

Project Structure

FatPy is organized into several core modules:

  • Core - Contains the fundamental analytical methods:
  • Stress-Life: Methods for stress-based fatigue analysis
  • Strain-Life: Methods for strain-based fatigue analysis
  • Energy-Life: Methods for energy-based fatigue analysis
  • Data Parsing - Tools for handling input/output operations
  • Utilities - Supporting functionality and helper methods

Get a detailed overview of FatPy’s modules and functions, visit API Reference.

Development Workflow

Follow our Test-Driven Development (TDD) workflow:

  1. Write Tests First
    Define expected behavior before coding.
  2. Set Up Your Environment
    Installation Guide
  3. Create a Feature Branch

    git checkout -b feature-name
    
  4. Implement the Feature
    Follow the Code Style Guide.

  5. Run and Refine Tests
    Testing Guide
  6. Document your Changes
    Use Documentation resources!
  7. Submit a pull request
    Contributing Guide

Getting Help

Need assistance with FatPy development? Reach out through these channels:

Thank you for contributing to FatPy!