Skip to content

Commit

Permalink
Merge branch 'master' into fix/sync-generator-implicit-deps
Browse files Browse the repository at this point in the history
  • Loading branch information
cogwirrel authored Nov 24, 2024
2 parents f17b459 + 128778e commit c975d7d
Show file tree
Hide file tree
Showing 177 changed files with 6,814 additions and 2,515 deletions.
7 changes: 3 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,13 @@ out
# Local dev files
.env.local
.bashrc
.nx

*.node

# Fix for issue when working on the repo in a dev container
.pnpm-store
.nx/cache
.nx/workspace-data
.nx
!.nx/workflows

.cargo/.package-cache
.cargo/bin/
Expand All @@ -61,4 +60,4 @@ target
*.wasm
/wasi-sdk*

vite.config.*.timestamp*
vite.config.*.timestamp*
4 changes: 2 additions & 2 deletions .nx/workflows/agents.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ launch-templates:
- name: Install Browsers
script: |
pnpm exec cypress install
pnpm exec playwright install
pnpm exec playwright install --with-deps
- name: Install Rust
script: |
Expand Down Expand Up @@ -95,7 +95,7 @@ launch-templates:
- name: Install Browsers
script: |
pnpm exec cypress install
pnpm exec playwright install
pnpm exec playwright install --with-deps
- name: Install Rust
script: |
Expand Down
5 changes: 5 additions & 0 deletions community/approved-plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -503,5 +503,10 @@
"name": "nx-solhint",
"description": "Solhint generators and inferred tasks for Nx",
"url": "https://github.com/juliangsibecas/nx-solhint"
},
{
"name": "nx-foundry",
"description": "Foundry generators and inferred tasks for Nx",
"url": "https://github.com/juliangsibecas/nx-foundry"
}
]
2 changes: 1 addition & 1 deletion docs/blog/2024-02-09-versioning-and-releasing-packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ It also generates a nice `CHANGELOG.md` for us:

- **buttons:** add new background shadow

### ❤️ Thank You
### ❤️ Thank You

- Juri

Expand Down
54 changes: 54 additions & 0 deletions docs/blog/2024-11-19-ci-affected-graph.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: See your affected project graph in Nx Cloud
slug: ci-affected-graph
authors: ['Philip Fulcher']
tags: [nx-cloud]
cover_image: /blog/images/2024-11-19/header.avif
youtubeUrl: https://youtu.be/TS-Fp2iSlVM
---

As monorepos grow in size and complexity, it can be difficult to understand the relationships between different parts of
your codebase. That's why Nx has the [graph visualization](/features/explore-graph) that helps you see the different
connections between projects and tasks in your workspace. But that runs locally, and sometimes you need to see that same graph from your CI's perspective. Now you can do that with the affected project graph in Nx Cloud.

## More insight into CI tasks

The CLI project graph visualization can give you some information about what projects or tasks are affected by your changes. But
CI may run different tasks than you do locally, or compare to different branches for affected calculations. So you often
feel like you're passing your work off to a black box with no insight into why a project is marked as affected on CI.

What do we mean by "marked as affected?" In a monorepo, running all your tasks, all the time, quickly becomes untenable. You'll either be wasting time waiting for tasks to finish, or spending a fortune on runners powerful enough to run in a timely manner. Instead, Nx analyzes the structure of your workspace and understands the relationship between different projects. When you run [`affected`](/ci/features/affected) tasks, it traces the projects that are actually affected by the change. For example, if you've made changes to a single app, Nx only marks that app as affected and doesn't run tasks for any other app.

## How do I use it?

The affected project graph is available on all CI Pipeline Executions (CIPEs) in Nx Cloud. Click the new "Affected Project Graph" link at the top of your CIPE view.

![Screenshot of CI affected project graph on Nx Cloud](/blog/images/2024-11-19/screenshot.avif)

The affected project graph uses the new [Composite Graph](/features/explore-graph#focusing-on-valuable-projects) introduced in Nx 20.
Groups of projects are collapsed into a single node on the graph based on directories. You can expand those nodes to see
inside by double-clicking them, or by clicking on the node and then clicking "Expand".

You can explore affected project graphs on your own on the
public [Nx OSS workspace](https://staging.nx.app/orgs/62d013d4d26f260059f7765e/workspaces/62d013ea0852fe0a2df74438/overview).

We've put together an example of one problem you can solve using this new view: [reducing the number of affected projects on CI](/ci/recipes/other/cipe-affected-project-graph).

## Get started with Nx Cloud

Not an Nx Cloud user? You can get started today, for free!

{% call-to-action title="Get started with Nx Cloud" url="/nx-cloud" icon="nxcloud" description="Try Nx Cloud for Free" %}
Get started with Nx Cloud
{% /call-to-action %}

## Learn more

- [Recipe: Reduce the Number of Affected Projects in a CI Pipeline Execution](/ci/recipes/other/cipe-affected-project-graph)
- [Nx Docs](/getting-started/intro)
- [X/Twitter](https://twitter.com/nxdevtools)
- [LinkedIn](https://www.linkedin.com/company/nrwl/)
- [Nx GitHub](https://github.com/nrwl/nx)
- [Nx Official Discord Server](https://go.nx.dev/community)
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
- [Speed up your CI](/nx-cloud)
Binary file added docs/blog/images/2024-11-19/header.avif
Binary file not shown.
Binary file added docs/blog/images/2024-11-19/header.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/blog/images/2024-11-19/screenshot.avif
Binary file not shown.
10 changes: 5 additions & 5 deletions docs/external-generated/packages-metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@
],
"executors": [
{
"description": "Compile and bundle an Nx Conformance Rule",
"file": "external-generated/packages/powerpack-conformance/executors/bundle-rule.json",
"description": "Compile and bundle one or more Nx Conformance Rules",
"file": "external-generated/packages/powerpack-conformance/executors/bundle-rules.json",
"hidden": false,
"name": "bundle-rule",
"originalFilePath": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rule/schema.json",
"path": "powerpack-conformance/executors/bundle-rule",
"name": "bundle-rules",
"originalFilePath": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rules/schema.json",
"path": "powerpack-conformance/executors/bundle-rules",
"type": "executor"
}
],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"name": "bundle-rules",
"implementation": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rules/executor.ts",
"schema": {
"$schema": "https://json-schema.org/schema",
"version": 2,
"title": "BundleNxConformanceRules",
"description": "Compile and bundle one or more Nx Conformance Rules",
"type": "object",
"properties": {
"outputPath": {
"type": "string",
"description": "The output path for the bundled rules to be written to"
}
},
"required": ["outputPath"],
"presets": []
},
"description": "Compile and bundle one or more Nx Conformance Rules",
"aliases": [],
"hidden": false,
"path": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rules/schema.json",
"type": "executor"
}
146 changes: 146 additions & 0 deletions docs/generated/manifests/ci.json
Original file line number Diff line number Diff line change
Expand Up @@ -847,6 +847,40 @@
"isExternal": false,
"path": "/ci/recipes/enterprise/dte",
"tags": []
},
{
"id": "conformance",
"name": "Conformance",
"description": "Conformance features that are available to Nx Cloud Enterprise customers",
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "configure-conformance-rules-in-nx-cloud",
"name": "Configure Conformance Rules in Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"tags": ["conformance"]
},
{
"id": "publish-conformance-rules-to-nx-cloud",
"name": "Publish Conformance Rules to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"tags": ["conformance"]
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance",
"tags": []
}
],
"isExternal": false,
Expand Down Expand Up @@ -1420,6 +1454,40 @@
"isExternal": false,
"path": "/ci/recipes/enterprise/dte",
"tags": []
},
{
"id": "conformance",
"name": "Conformance",
"description": "Conformance features that are available to Nx Cloud Enterprise customers",
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "configure-conformance-rules-in-nx-cloud",
"name": "Configure Conformance Rules in Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"tags": ["conformance"]
},
{
"id": "publish-conformance-rules-to-nx-cloud",
"name": "Publish Conformance Rules to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"tags": ["conformance"]
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance",
"tags": []
}
],
"isExternal": false,
Expand Down Expand Up @@ -1736,6 +1804,62 @@
"path": "/ci/recipes/enterprise/dte/jenkins-dte",
"tags": []
},
"/ci/recipes/enterprise/conformance": {
"id": "conformance",
"name": "Conformance",
"description": "Conformance features that are available to Nx Cloud Enterprise customers",
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "configure-conformance-rules-in-nx-cloud",
"name": "Configure Conformance Rules in Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"tags": ["conformance"]
},
{
"id": "publish-conformance-rules-to-nx-cloud",
"name": "Publish Conformance Rules to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"tags": ["conformance"]
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance",
"tags": []
},
"/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud": {
"id": "configure-conformance-rules-in-nx-cloud",
"name": "Configure Conformance Rules in Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"tags": ["conformance"]
},
"/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud": {
"id": "publish-conformance-rules-to-nx-cloud",
"name": "Publish Conformance Rules to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"tags": ["conformance"]
},
"/ci/recipes/other": {
"id": "other",
"name": "Other",
Expand Down Expand Up @@ -1854,6 +1978,17 @@
"path": "/ci/reference/launch-templates",
"tags": []
},
{
"id": "assignment-rules",
"name": "Assignment Rules",
"description": "",
"mediaImage": "",
"file": "nx-cloud/reference/assignment-rules",
"itemList": [],
"isExternal": false,
"path": "/ci/reference/assignment-rules",
"tags": []
},
{
"id": "custom-steps",
"name": "Custom Steps",
Expand Down Expand Up @@ -1925,6 +2060,17 @@
"path": "/ci/reference/launch-templates",
"tags": []
},
"/ci/reference/assignment-rules": {
"id": "assignment-rules",
"name": "Assignment Rules",
"description": "",
"mediaImage": "",
"file": "nx-cloud/reference/assignment-rules",
"itemList": [],
"isExternal": false,
"path": "/ci/reference/assignment-rules",
"tags": []
},
"/ci/reference/custom-steps": {
"id": "custom-steps",
"name": "Custom Steps",
Expand Down
Loading

0 comments on commit c975d7d

Please sign in to comment.