‹ Reports
The Dispatch

OSS Report: nrwl/nx


Nx Development Faces Challenges with Versioning and Plugin Compatibility Amidst Active Community Contributions

Nx, a robust build system for managing monorepos, is experiencing significant user-reported issues related to versioning and plugin compatibility following recent updates. The project, developed by Nrwl, aims to enhance developer productivity through advanced CI features and task management.

Recent Activity

The Nx repository is currently dealing with 538 open issues, with notable concerns around dependency management and the impact of recent updates on existing workflows. Issues such as #27773 and #27772 highlight high-priority problems with micro frontend remotes and project graph processing errors, respectively. These issues suggest ongoing challenges in maintaining stability post-updates.

Development Team Activity

  1. Jack Hsu (jaysoo)

    • Fixed Vite tsconfig paths plugin.
    • Enhanced nx import command.
    • Improved error handling for project graph errors.
  2. Benjamin Cabanes (bcabanes)

    • Updated "Connect to Nx Cloud" button link.
    • Improved animations in Nx Dev UI.
  3. Colum Ferry (Coly010)

    • Fixed SSR server configurations.
    • Enhanced type-checking for Vite plugins.
  4. James Henry (JamesHenry)

    • Improved changelog generation.
    • Fixed version plan issues in release commands.
  5. Emily Xiong (xiongemi)

    • Addressed React Native workspace command issues.
    • Enhanced Angular migration scripts.
  6. Juri Strumpflohner (juristr)

    • Added videos to performance profiling documentation.
  7. Miroslav Jonaš (meeroslav)

    • Fixed tsconfig path issues.
    • Collaborated on linting rules.
  8. Max Kless

    • Updated documentation for clarity.
    • Improved typing in core functionalities.
  9. Leosvel Pérez Espinosa (leosvelperez)

    • Enhanced sync generator functionalities.
    • Deprecated certain Angular features.
  10. Craigory Coppola (AgentEnder)

    • Improved error handling in project graph operations.

Of Note

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 33 4 25 0 1
30 Days 129 119 275 0 1
90 Days 364 198 992 0 1
All Time 10216 9678 - - -

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.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Jason Jean 12 12/11/0 39 262 54771
James Henry 9 8/6/0 20 341 21430
Colum Ferry 8 16/14/1 43 319 20003
Leosvel Pérez Espinosa 13 13/8/0 40 368 18132
Nicholas Cunningham 5 4/2/0 11 147 17438
Juri Strumpflohner 10 21/14/3 35 81 13328
Isaac Mann 7 20/18/0 33 234 8678
Jack Hsu 7 23/20/1 35 174 8086
Craigory Coppola 11 2/1/0 19 55 2888
Austin Fahsl 2 1/1/0 3 10 1833
Emily Xiong 6 12/9/0 24 76 1764
MaxKless 7 5/4/0 18 54 1241
Louie Weng 6 5/3/2 11 33 1080
Miroslav Jonaš 3 2/2/0 4 8 799
Benjamin Cabanes 2 6/6/0 14 25 779
Philip Fulcher 4 2/1/0 8 58 542
Zachary DeRose 1 4/2/1 3 17 295
Katerina Skroumpelou (mandarini) 2 1/0/1 2 3 212
Paweł Twardziak 2 2/2/0 4 7 128
Mike Hartington 3 2/1/0 4 6 110
Milan Kovacic 1 0/0/0 1 2 108
Tine Kondo 2 0/0/0 2 5 98
mathis 1 0/0/0 1 5 90
Wei Liang 1 0/0/0 1 4 81
robertIsaac 3 1/0/0 3 5 49
Rares Matei 5 6/1/1 8 5 46
Michal Jez 1 1/0/0 1 4 29
EGonz1PCTY 1 0/0/0 1 2 26
Elyahou Ittah 1 0/0/0 1 1 16
Julián Gómez Sibecas 2 1/1/0 2 1 16
Johanna Pearce 1 0/0/0 1 4 14
Trang Doan 1 0/0/0 1 1 12
Jonathan Cammisuli 2 1/1/0 4 4 12
Lucas Marcolongo 2 0/0/0 2 1 10
Arthur 1 0/0/0 1 2 10
abcdmku 1 0/0/0 1 2 8
Wayne Maurer 1 0/0/0 1 1 6
Ally 1 0/0/0 1 1 6
Kamenskih Dmitriy 1 1/1/0 1 1 5
Victor Berchet 2 1/1/0 2 1 4
Nicolas Beaussart 2 2/1/0 2 1 4
Connor Sullivan 1 0/0/0 1 2 4
satanluimm 2 0/0/0 2 1 4
Feliche-Demian Netliukh 1 0/0/0 1 1 2
Abdelwahab Hussein 1 0/0/0 1 1 2
Guilherme Prezzi 1 1/1/0 1 2 2
blitzkrieg 1 0/0/0 1 1 2
Chau Tran (nartc) 0 2/0/0 0 0 0
Antonio Acuña (acunap) 0 1/0/0 0 0 0
None (scobru) 0 1/0/0 0 0 0
Mararok (Mararok) 0 1/0/0 0 0 0
Jonathan Gelin (jogelin) 0 1/0/0 0 0 0
Nigel Sirisomphone (nigelwtf) 0 1/0/0 0 0 0
None (Alonmizra) 0 1/0/0 0 0 0
Ikko Eltociear Ashimine (eltociear) 0 1/0/0 0 0 0
Ali Yusuf (AliYusuf95) 0 1/0/0 0 0 0
None (MacGyver98) 0 1/0/1 0 0 0
Petr Plenkov (ThePlenkov) 0 2/0/1 0 0 0
Phillip Barta (Phillip9587) 0 8/0/4 0 0 0
D. Ror. (imnasnainaec) 0 1/0/0 0 0 0
Aaron Casanova (aaronccasanova) 0 1/0/0 0 0 0
James D McPherson (DuncanMcPherson) 0 1/0/1 0 0 0

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

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The recent activity in the Nx GitHub repository shows a significant number of open issues, currently totaling 538. The issues span various topics, including bugs related to versioning, plugin behavior, and build processes, indicating ongoing challenges faced by users after recent updates. Notably, there are recurring themes around dependency management, particularly with the handling of local libraries and module federation.

Several issues reflect a common frustration with the impact of recent updates on existing workflows. For instance, many users report problems with the nx release command not functioning as expected after upgrading, leading to confusion regarding versioning and changelog generation. Additionally, the integration of plugins like @nx/vite and @nx/webpack has raised concerns about their compatibility with existing configurations.

Issue Details

Here are some of the most recently created and updated issues along with their priority and status:

  1. Issue #27773: MFE Remotes stopped working with 19.5.2

    • Priority: High
    • Status: Open
    • Created: 0 days ago
    • Update: No updates yet.
    • Details: Users report that updating from version 19.4.1 to 19.5.2 breaks functionality for micro frontend remotes.
  2. Issue #27772: NX Failed to process project graph when creating a new library.

    • Priority: High
    • Status: Open
    • Created: 0 days ago
    • Update: No updates yet.
    • Details: A user is unable to create a new React library due to project graph processing errors.
  3. Issue #27763: nx build fails with error 'File name too long'

    • Priority: Medium
    • Status: Open
    • Created: 0 days ago
    • Update: No updates yet.
    • Details: Users experience build failures related to file name length on both Windows and Linux.
  4. Issue #27750: [Nx Gradle][Plugin] OutOfMemory errors when using @nx/gradle plugin on a complex graph.

    • Priority: Medium
    • Status: Open
    • Created: 1 day ago
    • Update: No updates yet.
    • Details: Users encounter memory issues while using the Gradle plugin.
  5. Issue #27749: nx-release-publish default target dependsOn is ignored.

    • Priority: Medium
    • Status: Open
    • Created: 1 day ago
    • Update: Edited recently.
    • Details: Users report that dependencies specified in nx.json are not respected during release publishing.

Important Themes

  • Versioning Issues: Many users express frustration over the handling of versioning and changelogs after upgrades, particularly with nx release.
  • Plugin Compatibility Problems: There are multiple reports about plugins not functioning as expected after recent Nx updates, particularly concerning module federation and SSR setups.
  • Dependency Management Confusion: Issues related to local dependencies not being recognized or handled correctly are prevalent, indicating a need for clearer documentation or fixes in dependency resolution logic.

This analysis highlights critical areas for improvement within the Nx ecosystem as users adapt to recent changes and seek stability in their development workflows.

Report On: Fetch pull requests



Report on Pull Requests

Overview

The repository nrwl/nx currently has 78 open pull requests (PRs), with a mix of bug fixes, new features, documentation updates, and dependency management. The recent activity indicates a focus on enhancing performance, improving developer experience, and addressing issues related to CI/CD integrations.

Summary of Pull Requests

Recent Pull Requests

  1. PR #27775: fix(core): optimize daemon output glob matching

    • State: Open
    • Significance: Aims to improve the performance of output resolution in large repositories by optimizing how non-existent outputs are handled.
  2. PR #27771: feat(react-native): update run-android-examples.md

    • State: Open
    • Significance: Updates documentation for running Android examples in React Native, correcting a typo.
  3. PR #27770: docs(misc): add videos plus details to performance profiling

    • State: Open
    • Significance: Enhances documentation by adding videos related to performance profiling, which could help users better understand the feature.
  4. PR #27769: chore(repo): update resources

    • State: Open
    • Significance: Routine maintenance to update resources in the repository.
  5. PR #27767: chore: bump up resources

    • State: Open
    • Significance: Adjusts resource configurations for CI/CD processes.
  6. PR #27764: fix(core): take nx-release-publish target defaults into account for implicit target

    • State: Open
    • Significance: Addresses issues with target defaults in the release process, ensuring that implicit targets are correctly handled.
  7. PR #27761: feat(core): forward string array arguments

    • State: Open
    • Significance: Introduces functionality to allow string arrays as command-line arguments in task configurations.
  8. PR #27752: fix(detox): fix detox expo generated commands typo from --no-interactive to --non-interactive

    • State: Open
    • Significance: Corrects a typo that could cause command execution failures in Detox testing for Expo apps.
  9. PR #27748: docs(misc): add videos to feature pages

    • State: Open
    • Significance: Aims to improve documentation by adding videos that explain various features.
  10. PR #27747: fix(nx-dev): make sure graph height works and render mode is nx-docs

    • State: Open
    • Significance: Fixes rendering issues in the Nx documentation site related to graph heights.

Notable Trends

  • There is a strong emphasis on improving documentation and user experience through detailed guides and video content.
  • Performance optimizations are frequently addressed, particularly regarding task execution and output handling.
  • Regular maintenance tasks such as dependency updates and resource adjustments are common.

Analysis of Pull Requests

The current state of open pull requests within the nrwl/nx repository reflects several key themes:

Performance Enhancements

A notable number of PRs focus on optimizing performance, particularly in how tasks are executed and how outputs are resolved. For instance, PR #27775 aims to enhance the speed of glob matching for daemon outputs, which is crucial for large-scale projects where efficiency can significantly impact developer productivity. Similarly, PR #27626 addresses issues related to file removal processes that can slow down operations when multiple tasks are run concurrently.

Documentation Improvements

There is a clear trend towards enhancing documentation quality and accessibility. PRs like #27771 and #27770 aim to clarify usage instructions and provide visual aids through videos. This not only helps new users onboard more effectively but also serves existing users who may need quick references or deeper insights into specific features.

Bug Fixes and Maintenance

Routine maintenance remains vital, with numerous PRs targeting bug fixes (e.g., PR #27752) and updates to dependencies (e.g., PRs #27769 and #27637). These efforts ensure that the codebase remains stable and secure while also adapting to changes in external libraries or tools used within the Nx ecosystem.

Community Engagement

The volume of contributions from various developers indicates an active community around the Nx project. The diversity of topics covered in the PRs—from technical enhancements to user-facing improvements—demonstrates a collaborative effort to refine both the backend functionality and frontend usability of Nx tools.

Challenges with Legacy Code

Some PRs reveal challenges associated with legacy code or outdated practices (e.g., handling dependencies or configuration settings). For example, PR #27640 discusses issues with streaming output based on certain conditions, highlighting the need for ongoing refactoring efforts as new features are integrated into existing systems.

Conclusion

Overall, the current landscape of pull requests in the nrwl/nx repository showcases a proactive approach towards continuous improvement through performance optimization, enhanced documentation, regular maintenance, and community involvement. The focus on both backend efficiency and frontend usability positions Nx as a robust tool for managing monorepos effectively. However, addressing legacy code challenges will be essential for maintaining long-term stability and adaptability as the project evolves.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Their Recent Activities

  1. Jack Hsu (jaysoo)

    • Recent Commits:
    • Fixed the Vite tsconfig paths plugin to resolve file extensions.
    • Improved the nx import command to handle multiple directories.
    • Addressed issues with node:test not being recognized, leading to infinite loops.
    • Enhanced error handling for project graph errors.
    • Collaborations: Worked closely with other team members on various fixes and enhancements.
  2. Benjamin Cabanes (bcabanes)

    • Recent Commits:
    • Updated the "Connect to Nx Cloud" button link in the documentation.
    • Improved performance of animations in the Nx Dev UI.
    • Added Mike Hartington to the team section of the documentation.
    • Collaborations: Collaborated with Juri Strumpflohner on documentation updates.
  3. Colum Ferry (Coly010)

    • Recent Commits:
    • Fixed SSR server configurations for module federation.
    • Implemented support for remote proxies using HTTPS when the host is configured with SSL.
    • Enhanced type-checking capabilities for Vite plugins.
    • Collaborations: Worked on multiple features related to module federation and Vite.
  4. James Henry (JamesHenry)

    • Recent Commits:
    • Improved changelog generation to include authors and references.
    • Fixed issues related to version plans in release commands.
    • Collaborations: Engaged in discussions about release management improvements.
  5. Emily Xiong (xiongemi)

    • Recent Commits:
    • Addressed issues with the create-nx-workspace command for React Native projects.
    • Fixed naming conventions in Detox tests.
    • Enhanced migration scripts for Angular projects.
    • Collaborations: Worked on fixing various bugs across different frameworks.
  6. Juri Strumpflohner (juristr)

    • Recent Commits:
    • Added videos and details to performance profiling documentation.
    • Improved feature pages related to Nx Cloud and dynamic agents.
    • Collaborations: Focused on enhancing documentation quality and user engagement.
  7. Miroslav Jonaš (meeroslav)

    • Recent Commits:
    • Fixed missing tsconfig paths in the repository configuration.
    • Collaborated on linting rules and circular dependency checks.
    • Collaborations: Worked with other developers on improving code quality.
  8. Max Kless

    • Recent Commits:
    • Updated various documentation sections for clarity and accuracy.
    • Worked on improving typing in core functionalities of Nx.
    • Collaborations: Engaged with team members on documentation improvements.
  9. Leosvel Pérez Espinosa (leosvelperez)

    • Recent Commits:
    • Enhanced sync generator functionalities and error handling mechanisms.
    • Worked on deprecating certain features in Angular's data persistence operators.
    • Collaborations: Collaborated with others on core functionality improvements.
  10. Craigory Coppola (AgentEnder)

    • Recent Commits:
    • Improved error handling in project graph operations.
    • Worked on enhancing task synchronization features within Nx.
    • Collaborations: Engaged in discussions around core architectural changes.

Patterns, Themes, and Conclusions

  • The development team has been actively addressing bugs, enhancing features, and improving documentation across various components of the Nx framework.
  • There is a strong focus on improving user experience through better error handling, performance optimizations, and clearer documentation, indicating a commitment to developer productivity and satisfaction.
  • Collaboration among team members is evident, especially in areas that require cross-functional expertise such as module federation, CI integration, and plugin development.
  • Recent activities show a trend towards refining existing functionalities while also preparing for future enhancements, particularly concerning TypeScript integration and cloud features.

Overall, the team's recent activities reflect a proactive approach to maintaining high standards of code quality, user experience, and community engagement within the Nx ecosystem.