Tags: iominh/nx
Tags
fix(core): only prompt for NX Console installation in TTY environments ( nrwl#32425) ## Current Behavior Currently, the NX Console installation prompt can appear in non-interactive environments like CI/CD pipelines, causing processes to hang indefinitely waiting for user input. ## Expected Behavior The NX Console installation prompt should only appear in TTY (interactive terminal) environments where users can actually respond to the prompt. ## Related Issue(s) This change adds a TTY check (`process.stdout.isTTY`) before showing the NX Console installation prompt, preventing hanging in automated environments while preserving the interactive experience for developers working in terminals.
chore(repo): update nx to 21.4.0-beta.12 (nrwl#32350) Updating Nx from 21.4.0-beta.11 to 21.4.0-beta.12
feat(gradle): enable migrations to occur with workspaces using versio… …n catalogs (nrwl#32342) <!-- Please make sure you have read the submission guidelines before posting an PR --> <!-- https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr --> <!-- Please make sure that your commit message follows our format --> <!-- Example: `fix(nx): must begin with lowercase` --> <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior <!-- This is the behavior we have today --> Our project graph gradle migrations currently only bump up the gradle plugin if its versions are set in `build.gradle.kts` files. This means that migrations will not work with workspaces that use version catalogs and aliases. ## Expected Behavior <!-- This is the behavior we should expect with the changes in this PR --> Given a workspace using the project graph gradle plugin on a legacy version, migrations should bump up the version of the Nx gradle plugin if its specified in `libs.versions.toml` instead of `build.gradle.kts` ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes #NXC-2952
feat(gradle): derive atomizer test names using AST parsing (nrwl#32275) <!-- Please make sure you have read the submission guidelines before posting an PR --> <!-- https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr --> <!-- Please make sure that your commit message follows our format --> <!-- Example: `fix(nx): must begin with lowercase` --> <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior <!-- This is the behavior we have today --> - use regex to get test class name ## Expected Behavior <!-- This is the behavior we should expect with the changes in this PR --> - remove the filter on the test file name - use junit first to get test class name - then if junit does not work, use regex as fallback - fix warnings of unit tests - upgrade dev.nx.gradle.project-graph to 0.1.3 in ci, in order to testClassDirs to exist, might need to run compileTestKotilin or compileTestJava first. ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Closes nrwl#31693 --------- Co-authored-by: Emily Xiong <xiongemi@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
docs(misc): update astro-docs readme (nrwl#32325) <!-- Please make sure you have read the submission guidelines before posting an PR --> <!-- https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr --> <!-- Please make sure that your commit message follows our format --> <!-- Example: `fix(nx): must begin with lowercase` --> <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior <!-- This is the behavior we have today --> ## Expected Behavior <!-- This is the behavior we should expect with the changes in this PR --> ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes # --------- Co-authored-by: Caleb Ukle <caleb@nrwl.io> Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
feat(angular-rspack): move angular rspack to nx (nrwl#32226) # Description Move Angular Rspack into the Nx repo. The relevant packages are: - angular-rspack - angular-rspack-compiler ## Examples Adds `Angular Rspack` examples to `examples/angular-rspack` which allow for demonstration of various configs to use various features within angular, such as: - proxy - ssr - ssg - i18n These examples use `@nx/angular-rspack` with `workspace:*` protocol allowing for immediate feedback on changes to `angular-rspack` and `angular-rspack-compiler` to be reflected in these examples.
fix(core): prevent TUI buffer overflow panics in dependency view scro… …llbar rendering (nrwl#32292) ## Current Behavior The TUI dependency view experiences buffer overflow panics when rendering scrollbars on small or constrained terminal sizes. Users encounter crashes with messages like "index outside of buffer" at various coordinates such as (134, 37), (86, 0), (107, 0), etc. ## Expected Behavior The TUI should handle all terminal sizes gracefully without crashing, maintaining proper visual rendering of scrollbars and padding elements while staying within buffer boundaries. ## Key Code Changes The fix adds **clean, reusable helper functions** for bounds checking to prevent buffer overflows: ### 1. **New Helper Functions** (lines 216-239): ```rust /// Check if a rectangle fits within buffer boundaries fn fits_in_buffer(area: &Rect, buf: &Buffer) -> bool { area.x + area.width <= buf.area().width && area.y < buf.area().height } /// Create a safe rectangle clamped to buffer boundaries fn clamp_to_buffer(area: Rect, buf: &Buffer) -> Option<Rect> { if area.width == 0 || area.height == 0 { return None; } let safe_area = Rect { x: area.x, y: area.y, width: area.width.min(buf.area().width.saturating_sub(area.x)), height: area.height.min(buf.area().height.saturating_sub(area.y)), }; if safe_area.width > 0 && safe_area.height > 0 { Some(safe_area) } else { None } } ``` ### 2. **Simplified Scrollbar Bounds Check** (lines 478-481): ```rust // Render scrollbar with bounds checking if let Some(safe_scrollbar_area) = Self::clamp_to_buffer(outer_area, buf) { scrollbar.render(safe_scrollbar_area, buf, &mut state.scrollbar_state); } ``` ### 3. **Cleaner Padding Validation** (lines 241-286): ```rust fn render_scrollbar_padding(outer_area: Rect, buf: &mut Buffer, style: Style) { const PADDING_WIDTH: u16 = 2; const RIGHT_MARGIN: u16 = 3; const WIDTH_PADDING: u16 = 2; const TOTAL_WIDTH: u16 = PADDING_WIDTH + RIGHT_MARGIN + WIDTH_PADDING; // Early exit if area is too small or has no height if outer_area.width < TOTAL_WIDTH || outer_area.height == 0 { return; } // Use helper function for bounds checking if Self::fits_in_buffer(&top_area, buf) { // render top padding } if Self::fits_in_buffer(&bottom_area, buf) { // render bottom padding } } ``` **Key improvements:** - **Reduced complexity**: Scrollbar bounds checking went from 11 lines to 3 lines - **Reusable helpers**: `fits_in_buffer()` and `clamp_to_buffer()` can be used throughout the codebase - **Named constants**: Replaced magic numbers with descriptive constants - **Clear intent**: Function names clearly express what the code does ## Related Issue(s) This fixes buffer overflow panics that occur when the terminal user interface attempts to render scrollbar widgets and padding outside the available buffer boundaries, particularly on smaller terminal sizes or when the terminal is resized. The fix adds minimal bounds checking to: 1. **Scrollbar rendering**: Validates the scrollbar area fits within buffer boundaries before rendering 2. **Padding rendering**: Ensures top/bottom padding areas don't extend beyond buffer limits **Comprehensive test coverage added**: 10 unit tests covering all edge cases including the specific problematic buffer dimensions that previously caused panics (45×30, 76×30, 104×30, 135×37, etc.). Tested across multiple terminal buffer sizes and confirmed no more buffer overflow panics while maintaining correct scrollbar functionality.
fix(nextjs): configure Jest to use tsconfig.json for Next.js apps (nr… …wl#32089) ## Current Behavior When generating a Next.js application with Jest as the unit test runner, Jest configuration fails because it defaults to looking for `tsconfig.app.json` which doesn't exist in Next.js projects. Next.js apps use `tsconfig.json` as their main TypeScript configuration file. ## Expected Behavior Jest should be configured to use `tsconfig.json` as the runtime TypeScript configuration for Next.js applications, allowing Jest to properly resolve TypeScript configurations. ## Related Issue(s) Fixes nrwl#31555
docs(nx-cloud): remove redundant intro pages for nx-cloud (nrwl#32216) intro docs for nx-cloud aren't needed as it's duplicate information and should instead be covered by the regular intro flows, which now mention nx cloud. Moved over some content into applicable pages, such as `nx g ci-workflow` command and calling out `nx connect` command in places.
feat(misc): update repo to 21.4.0-beta.4 (nrwl#32180) ### Changes Update repo to use `21.4.0-beta.4`