‹ Reports
The Dispatch

OSS Report: goatcorp/Dalamud


Dalamud Development Team Intensifies Efforts on Stability and Feature Enhancements Amidst User-Reported Crashes

Dalamud, a plugin development framework for FINAL FANTASY XIV, has seen a surge in development activity focusing on stability improvements and new feature integrations, driven by user feedback highlighting critical gameplay crashes.

The project, designed to facilitate plugin creation for FFXIV, is actively maintained by a diverse team of contributors. It offers developers access to game data and supports native interoperability with the game client.

Recent Activity

Recent issues and pull requests reveal a concentrated effort to address stability concerns, particularly those causing crashes during gameplay (#2002) and startup failures (#1957). These issues are complemented by enhancements in UI components and asset management, as seen in PRs like #2022 (Excel parsing updates) and #2015 (performance improvements). The trajectory indicates a dual focus on refining existing functionalities and expanding the framework's capabilities.

Development Team Activity

Of Note

  1. High Volume of Commits by Soreepeong: With 45 commits this month alone, Soreepeong's contributions are pivotal in driving both feature development and bug resolution.

  2. ReShade Addon Interface Development: Significant progress has been made in integrating ReShade functionalities into the framework.

  3. Persistent Plugin Compatibility Issues: Ongoing challenges with plugin stability suggest an area requiring continued focus and potential architectural adjustments.

  4. Excel Parsing Overhaul (PR #2022): This major update enhances data handling capabilities within the framework.

  5. Community Engagement Through Issue Reporting: The active participation of users in reporting issues underscores the importance of community feedback in shaping project priorities.

Quantified Reports

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
srkizer 1 25/22/0 45 118 27189
Haselnussbomber 1 8/7/0 7 7 880
wolfcomp 1 0/1/0 1 4 407
nebel 1 5/4/0 4 6 123
goat 1 0/0/0 18 11 114
ItsBexy 1 0/1/0 1 1 108
MidoriKami 1 2/1/2 1 1 81
KazWolfe 1 6/5/0 5 5 51
attick 1 1/1/0 1 2 50
RyouBakura 1 0/1/0 1 3 30
bleatbot 1 9/9/0 9 1 18
ALymphocyte 1 1/1/0 1 1 7
Tykku 1 0/1/0 1 1 5
GitHub Web Flow 1 0/0/0 1 1 2
Anthony 1 1/1/0 1 1 2
Julian 1 2/1/0 1 1 1
None (Xpahtalo) 0 1/0/0 0 0 0
Ionite (ionite34) 0 1/0/0 0 0 0
James Keesey (jlkeesey) 0 1/0/0 0 0 0
Infi (Infiziert90) 0 1/0/1 0 0 0
Pascal (Pilzinsel64) 0 1/0/0 0 0 0
Asriel Camora (WorkingRobot) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 1 1 0 1 1
30 Days 5 2 11 4 1
90 Days 34 16 50 27 2
1 Year 92 45 113 71 3
All Time 416 268 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Dalamud GitHub repository currently has 148 open issues, indicating a steady stream of user feedback and requests for enhancements or bug fixes. Notably, several recent issues highlight critical bugs causing crashes during gameplay, particularly when using specific plugins or features. A recurring theme in the issues is the interaction between Dalamud and various plugins, especially concerning stability and performance, which suggests that plugin compatibility remains a significant concern for users.

Several issues exhibit patterns of related functionality, such as those involving plugin loading errors, crashes during specific actions (like switching jobs), and problems with input methods. The presence of multiple reports regarding crashes linked to specific plugins or actions indicates potential systemic issues that may require urgent attention from the development team.

Issue Details

Recent Issues

  1. Issue #2002: FFXIV crashes randomly during Duties

    • Priority: High
    • Status: Open
    • Created: 15 days ago
    • Updated: 14 days ago
    • Description: Users report crashes occurring specifically during Duties when Dalamud is enabled.
  2. Issue #1992: Plugin matching in collections broken across devices

    • Priority: Medium
    • Status: Open
    • Created: 18 days ago
    • Description: Issues with the "JustBackup" plugin failing to restore plugin collections correctly when switching devices.
  3. Issue #1957: Dalamud not loading on startup

    • Priority: High
    • Status: Open
    • Created: 29 days ago
    • Updated: 22 days ago
    • Description: Users experience failure of Dalamud to start despite reinstalling and clearing cache.
  4. Issue #1949: Multi-monitor mode and Windows UI Scaling issues

    • Priority: Medium
    • Status: Open
    • Created: 32 days ago
    • Description: Problems with dragging GUI elements between monitors with different scaling settings.
  5. Issue #1932: Can't type in Dalamud anymore

    • Priority: High
    • Status: Open
    • Created: 36 days ago
    • Description: Users report being unable to type in search bars or input fields within Dalamud since a recent update.
  6. Issue #1928: Recently requires launching twice to run

    • Priority: Medium
    • Status: Open
    • Created: 38 days ago
    • Updated: 35 days ago
    • Description: Users must launch the game twice for Dalamud to initialize properly.
  7. Issue #1819: Better auto-update UX

    • Priority: Low
    • Status: Open
    • Created: 85 days ago
    • Description: Suggestions for improving the user experience around automatic updates for plugins.

Summary of Notable Issues

  • The most pressing concerns revolve around stability, particularly crashes linked to specific actions or plugins.
  • There are multiple reports of issues with plugin loading and compatibility, suggesting a need for improved error handling and user feedback mechanisms.
  • User experience enhancements are also being requested, indicating that while the core functionality is critical, usability improvements are equally important to the community.

This analysis reflects an active development environment where user feedback is crucial for ongoing improvements and stability of the Dalamud framework.

Report On: Fetch pull requests



Overview

The analysis of the pull requests (PRs) for the Dalamud project reveals a total of 43 open PRs and 1529 closed PRs, showcasing ongoing development and maintenance efforts. The recent PRs focus on enhancing functionality, fixing bugs, and improving performance, particularly in areas related to Excel parsing, UI improvements, and plugin management.

Summary of Pull Requests

Open Pull Requests

  • PR #2022: Update to Lumina 5 (new Excel parsing) - Introduces significant changes to Excel parsing with new features and improvements in error handling.
  • PR #2021: Add .Pop() to the doc about fontHandle examples - Minor documentation update for clarity.
  • PR #2020: [master] Update ClientStructs - Updates to client structures without significant changes.
  • PR #2019: Avoid capturing local variables in TitleBarButton.Click closure - Optimization to reduce memory allocation during event handling.
  • PR #2018: feat: new command handler that works off a hook - New command handling mechanism with preliminary testing.
  • PR #2017: Added two new helpers for PushItemWidth and PushTextWrapPos - Enhancements to UI utility functions.
  • PR #2016: Make ServiceScope IAsyncDisposable - Improves service disposal handling for better async support.
  • PR #2015: DalamudAssetManager: avoid locks and lookups - Performance improvements by changing data structures from dictionaries to arrays.
  • PR #2008: Add IGameInventory.GetInventoryItems - Adds a new method for inventory management.
  • PR #2006: feat: add new 7.0 BitmapFontIcons & fix few others - Introduces new icons and fixes existing ones.

Closed Pull Requests

  • PR #2014: Cache DalamudAssetAttribute lookups - Merged for performance improvement by reducing reflective lookups.
  • PR #2013: Miscellaneous fixes - Addresses various minor issues in the codebase.
  • PR #2011: Add error handlings for UldWidget - Enhancements to error handling in widget management.
  • PR #2010: Improve BattleNpcSubKind - Updates NPC classifications based on gameplay testing.
  • PR #2009: [master] Update ClientStructs - Routine update of client structures.

Analysis of Pull Requests

The current landscape of pull requests in the Dalamud project indicates a strong focus on enhancing functionality and performance while addressing existing bugs. The recent PRs highlight several key themes:

  1. Performance Improvements: A notable number of PRs, such as #2014 (caching attribute lookups) and #2015 (optimizing asset management), aim to improve the performance of the framework. This reflects an ongoing commitment to ensuring that plugins run efficiently within the FFXIV environment.

  2. Feature Enhancements: Several PRs introduce new features or expand existing functionalities. For instance, PR #2022 updates the Excel parsing capabilities significantly, while PR #2008 adds a method for inventory management. This trend indicates an active effort to enhance the developer experience by providing more robust tools.

  3. Bug Fixes and Stability Improvements: Many closed PRs focus on fixing bugs or improving stability, such as PR #2011 (error handling) and PR #2006 (icon fixes). This is crucial for maintaining user trust and ensuring that plugins operate smoothly without unexpected crashes or behavior.

  4. Documentation and Usability Enhancements: There is also an emphasis on improving documentation (e.g., PR #2021) and usability features, which is essential for attracting new developers to the ecosystem. Clear documentation helps reduce barriers to entry for potential contributors.

  5. Community Engagement and Feedback Loop: The discussions within the PR comments often reflect community engagement, where developers seek feedback from peers on proposed changes. This collaborative approach fosters a healthy development environment where ideas can be refined through collective input.

  6. Long-standing Issues and Technical Debt: Some older PRs indicate ongoing discussions about technical debt, such as those related to async handling (e.g., PR #1905). Addressing these issues is vital for future-proofing the framework as it evolves alongside FFXIV updates.

In conclusion, the current set of pull requests demonstrates a vibrant development process characterized by a balance between adding new features, optimizing performance, fixing bugs, and enhancing documentation. The active engagement from contributors suggests a strong community backing that is essential for the longevity and success of the Dalamud framework in supporting FFXIV plugin development.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Recent Contributions

  • bleatbot

    • Recent Activity: 9 commits, primarily focused on updating ClientStructs. Collaborated with GitHub Actions for automated updates.
  • nebel

    • Recent Activity: 4 commits, including significant changes to the Dalamud asset management system and improvements in the DtrBar functionality. Collaborated with multiple team members across various branches.
  • Soreepeong (srkizer)

    • Recent Activity: 45 commits, contributing extensive changes across various components, including error handling, UI improvements, and performance optimizations. Notably involved in the ReShade addon interface implementation and ongoing bug fixes. Collaborated with multiple developers including KazWolfe and Haselnussbomber.
  • ALymphocyte

    • Recent Activity: 1 commit focused on enhancing BattleNpcSubKind enumeration.
  • Haselnussbomber

    • Recent Activity: 7 commits, working on updates to job gauges and UI components. Collaborated with KazWolfe on several features.
  • wolfcomp

    • Recent Activity: 1 commit that introduced a new ULD display feature in the data window.
  • goaaats

    • Recent Activity: 18 commits, primarily focused on build updates and minor fixes across various files. Actively involved in maintaining the project’s build process.
  • MidoriKami

    • Recent Activity: 1 commit related to documentation updates.
  • KazWolfe

    • Recent Activity: 5 commits, contributing to character state management features and collaborating with other developers on various enhancements.
  • RyouBakura

    • Recent Activity: 1 commit focused on texture management improvements.
  • attickdoor

    • Recent Activity: 1 commit adding a new enum for job gauges.
  • Helios747

    • Recent Activity: 1 commit for a minor fix in the plugin installer window.
  • Tykku

    • Recent Activity: 1 commit related to gauge updates.
  • ItsBexy

    • Recent Activity: 1 commit improving the Addon Inspector functionality.
  • NotNite

    • Recent Activity: 1 commit with minor changes related to plugin management.

Patterns and Themes

  1. High Activity Level: The team has demonstrated significant activity over the past month, particularly Soreepeong, who has been the most active contributor with a focus on both feature development and bug fixing.

  2. Collaboration: Multiple developers are collaborating on features like the ReShade addon interface, indicating a strong team dynamic and shared ownership of complex tasks.

  3. Focus Areas:

    • Enhancements to UI components and asset management.
    • Ongoing updates to ClientStructs reflecting changes in game data structures.
    • Improvements in performance and error handling across various modules.
    • Active maintenance of build processes by goaaats, ensuring stability in releases.
  4. Feature Development vs. Bug Fixing: There is a balanced approach between developing new features (like the ReShade integration) and addressing existing bugs, which is crucial for maintaining software quality in an active project like Dalamud.

  5. Branch Management: The presence of multiple branches indicates ongoing work towards future API versions while maintaining stability in the master branch.

Conclusion

The development team is actively engaged in enhancing the Dalamud framework through collaborative efforts, focusing on both new features and maintenance tasks. The recent activities reflect a robust workflow with contributions spanning various aspects of the project, ensuring its continued evolution within the FFXIV plugin ecosystem.