Upgrade to Nx 17.1 (#2635)

* Upgrade to Nx 17

* Run migrations

* Extend instructions

* Update changelog
pull/2686/head^2
Thomas Kaul 6 months ago committed by GitHub
parent 8a411b707d
commit bdfba4d509
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### Changed
- Upgraded `angular` from version `16.2.12` to `17.0.4`
- Upgraded `Nx` from version `17.0.2` to `17.1.3`
## 2.26.0 - 2023-11-24 ## 2.26.0 - 2023-11-24
### Changed ### Changed

@ -32,7 +32,7 @@ Use `*ngIf="user?.settings?.isExperimentalFeatures"` in HTML template
1. Run `yarn nx migrate latest` 1. Run `yarn nx migrate latest`
1. Make sure `package.json` changes make sense and then run `yarn install` 1. Make sure `package.json` changes make sense and then run `yarn install`
1. Run `yarn nx migrate --run-migrations` 1. Run `yarn nx migrate --run-migrations` (Run `YARN_NODE_LINKER="node-modules" NX_MIGRATE_SKIP_INSTALL=1 yarn nx migrate --run-migrations` due to https://github.com/nrwl/nx/issues/16338)
### Prisma ### Prisma

@ -47,8 +47,7 @@
"test": { "test": {
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"options": { "options": {
"jestConfig": "apps/api/jest.config.ts", "jestConfig": "apps/api/jest.config.ts"
"passWithNoTests": true
}, },
"outputs": ["{workspaceRoot}/coverage/apps/api"] "outputs": ["{workspaceRoot}/coverage/apps/api"]
} }

@ -152,39 +152,39 @@
"serve": { "serve": {
"executor": "@nx/angular:webpack-dev-server", "executor": "@nx/angular:webpack-dev-server",
"options": { "options": {
"browserTarget": "client:build", "proxyConfig": "apps/client/proxy.conf.json",
"proxyConfig": "apps/client/proxy.conf.json" "buildTarget": "client:build"
}, },
"configurations": { "configurations": {
"development-de": { "development-de": {
"browserTarget": "client:build:development-de" "buildTarget": "client:build:development-de"
}, },
"development-en": { "development-en": {
"browserTarget": "client:build:development-en" "buildTarget": "client:build:development-en"
}, },
"development-es": { "development-es": {
"browserTarget": "client:build:development-es" "buildTarget": "client:build:development-es"
}, },
"development-fr": { "development-fr": {
"browserTarget": "client:build:development-fr" "buildTarget": "client:build:development-fr"
}, },
"development-it": { "development-it": {
"browserTarget": "client:build:development-it" "buildTarget": "client:build:development-it"
}, },
"development-nl": { "development-nl": {
"browserTarget": "client:build:development-nl" "buildTarget": "client:build:development-nl"
}, },
"development-pl": { "development-pl": {
"browserTarget": "client:build:development-pl" "browserTarget": "client:build:development-pl"
}, },
"development-pt": { "development-pt": {
"browserTarget": "client:build:development-pt" "buildTarget": "client:build:development-pt"
}, },
"development-tr": { "development-tr": {
"browserTarget": "client:build:development-tr" "buildTarget": "client:build:development-tr"
}, },
"production": { "production": {
"browserTarget": "client:build:production" "buildTarget": "client:build:production"
} }
} }
}, },
@ -215,8 +215,7 @@
"test": { "test": {
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"options": { "options": {
"jestConfig": "apps/client/jest.config.ts", "jestConfig": "apps/client/jest.config.ts"
"passWithNoTests": true
}, },
"outputs": ["{workspaceRoot}/coverage/apps/client"] "outputs": ["{workspaceRoot}/coverage/apps/client"]
} }

@ -1,4 +1,3 @@
import { Platform } from '@angular/cdk/platform';
import { Inject, forwardRef } from '@angular/core'; import { Inject, forwardRef } from '@angular/core';
import { MAT_DATE_LOCALE, NativeDateAdapter } from '@angular/material/core'; import { MAT_DATE_LOCALE, NativeDateAdapter } from '@angular/material/core';
import { getDateFormatString } from '@ghostfolio/common/helper'; import { getDateFormatString } from '@ghostfolio/common/helper';
@ -7,10 +6,9 @@ import { addYears, format, getYear, parse } from 'date-fns';
export class CustomDateAdapter extends NativeDateAdapter { export class CustomDateAdapter extends NativeDateAdapter {
public constructor( public constructor(
@Inject(MAT_DATE_LOCALE) public locale: string, @Inject(MAT_DATE_LOCALE) public locale: string,
@Inject(forwardRef(() => MAT_DATE_LOCALE)) matDateLocale: string, @Inject(forwardRef(() => MAT_DATE_LOCALE)) matDateLocale: string
platform: Platform
) { ) {
super(matDateLocale, platform); super(matDateLocale);
} }
/** /**

@ -56,11 +56,11 @@
<a <a
href="https://twitter.com/ghostfolio_" href="https://twitter.com/ghostfolio_"
title="Post to Ghostfolio on X (formerly Twitter)" title="Post to Ghostfolio on X (formerly Twitter)"
>@ghostfolio_</a >&#64;ghostfolio_</a
><ng-container *ngIf="user?.subscription?.type === 'Premium'" ><ng-container *ngIf="user?.subscription?.type === 'Premium'"
>, send an e-mail to >, send an e-mail to
<a href="mailto:hi@ghostfol.io" title="Send an e-mail" <a href="mailto:hi@ghostfol.io" title="Send an e-mail"
>hi@ghostfol.io</a >hi&#64;ghostfol.io</a
></ng-container ></ng-container
> >
or start a discussion at or start a discussion at

@ -131,8 +131,9 @@
</p> </p>
<p> <p>
Du erreichst mich per E-Mail unter Du erreichst mich per E-Mail unter
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> oder auf Twitter <a href="mailto:hi@ghostfol.io">hi&#64;ghostfol.io</a> oder auf
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a>. Twitter
<a href="https://twitter.com/ghostfolio_">&#64;ghostfolio_</a>.
</p> </p>
<p> <p>
Ich freue mich, von dir zu hören.<br /> Ich freue mich, von dir zu hören.<br />

@ -126,8 +126,8 @@
</p> </p>
<p> <p>
You can reach me by e-mail at You can reach me by e-mail at
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> or on Twitter <a href="mailto:hi@ghostfol.io">hi&#64;ghostfol.io</a> or on Twitter
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a>. <a href="https://twitter.com/ghostfolio_">&#64;ghostfolio_</a>.
</p> </p>
<p> <p>
I look forward to hearing from you.<br /> I look forward to hearing from you.<br />

@ -100,9 +100,9 @@
of users. In the future, I would like to involve more contributors of users. In the future, I would like to involve more contributors
to further extend the functionality of Ghostfolio (e.g. with new to further extend the functionality of Ghostfolio (e.g. with new
reports). Get in touch with me by e-mail at reports). Get in touch with me by e-mail at
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> or on Twitter <a href="mailto:hi@ghostfol.io">hi&#64;ghostfol.io</a> or on Twitter
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a> if you <a href="https://twitter.com/ghostfolio_">&#64;ghostfolio_</a> if
are interested, Im happy to discuss ideas. you are interested, Im happy to discuss ideas.
</p> </p>
<p> <p>
I would like to say thank you for all your feedback and support I would like to say thank you for all your feedback and support

@ -90,8 +90,8 @@
<p> <p>
If you would like to provide feedback or get involved in further If you would like to provide feedback or get involved in further
development of Ghostfolio, please get in touch by e-mail via development of Ghostfolio, please get in touch by e-mail via
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> or on Twitter <a href="mailto:hi@ghostfol.io">hi&#64;ghostfol.io</a> or on Twitter
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a>. <a href="https://twitter.com/ghostfolio_">&#64;ghostfolio_</a>.
</p> </p>
<p> <p>
I look forward to hearing from you.<br /> I look forward to hearing from you.<br />

@ -91,9 +91,9 @@
engineering to realize the full potential of open source software. engineering to realize the full potential of open source software.
If you are a web developer and interested in personal finance, If you are a web developer and interested in personal finance,
please get in touch by e-mail via please get in touch by e-mail via
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> or on Twitter <a href="mailto:hi@ghostfol.io">hi&#64;ghostfol.io</a> or on Twitter
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a>. We are <a href="https://twitter.com/ghostfolio_">&#64;ghostfolio_</a>. We
happy to discuss ideas. are happy to discuss ideas.
</p> </p>
<p> <p>
We would like to say thank you for all your feedback and support We would like to say thank you for all your feedback and support

@ -85,8 +85,8 @@
>Slack</a >Slack</a
> >
community or get in touch on Twitter community or get in touch on Twitter
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a> or by <a href="https://twitter.com/ghostfolio_">&#64;ghostfolio_</a> or by
e-mail via <a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a>. e-mail via <a href="mailto:hi@ghostfol.io">hi&#64;ghostfol.io</a>.
</p> </p>
<p> <p>
We look forward to hearing from you.<br /> We look forward to hearing from you.<br />

@ -92,7 +92,7 @@
> >
community or via Twitter community or via Twitter
<a href="https://twitter.com/ghostfolio_" target="_blank" <a href="https://twitter.com/ghostfolio_" target="_blank"
>@ghostfolio_</a >&#64;ghostfolio_</a
>. We look forward to hearing from you! >. We look forward to hearing from you!
</p> </p>
</section> </section>

@ -122,7 +122,7 @@
>Slack</a >Slack</a
> >
community or connect with community or connect with
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a> on <a href="https://twitter.com/ghostfolio_">&#64;ghostfolio_</a> on
Twitter. We are happy to discuss ideas and get you involved. Twitter. We are happy to discuss ideas and get you involved.
</p> </p>
<p>Thank you for all your feedback and support.</p> <p>Thank you for all your feedback and support.</p>

@ -89,7 +89,7 @@
>Slack</a >Slack</a
> >
community or get in touch on X community or get in touch on X
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a>. <a href="https://twitter.com/ghostfolio_">&#64;ghostfolio_</a>.
</p> </p>
<p> <p>
We look forward to hearing from you.<br /> We look forward to hearing from you.<br />

@ -203,8 +203,8 @@
</mat-card-header> </mat-card-header>
<mat-card-content> <mat-card-content>
Please send an e-mail with the web address of your broker to Please send an e-mail with the web address of your broker to
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> and we are happy to <a href="mailto:hi@ghostfol.io">hi&#64;ghostfol.io</a> and we are
add it. happy to add it.
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
<mat-card appearance="outlined" class="mb-3"> <mat-card appearance="outlined" class="mb-3">
@ -234,11 +234,11 @@
<a <a
href="https://twitter.com/ghostfolio_" href="https://twitter.com/ghostfolio_"
title="Post to Ghostfolio on X (formerly Twitter)" title="Post to Ghostfolio on X (formerly Twitter)"
>@ghostfolio_</a >&#64;ghostfolio_</a
><ng-container *ngIf="user?.subscription?.type === 'Premium'" ><ng-container *ngIf="user?.subscription?.type === 'Premium'"
>, >,
<a href="mailto:hi@ghostfol.io" title="Send an e-mail" <a href="mailto:hi@ghostfol.io" title="Send an e-mail"
>hi@ghostfol.io</a >hi&#64;ghostfol.io</a
></ng-container ></ng-container
> >
or or
@ -263,11 +263,11 @@
<a <a
href="https://twitter.com/ghostfolio_" href="https://twitter.com/ghostfolio_"
title="Post to Ghostfolio on X (formerly Twitter)" title="Post to Ghostfolio on X (formerly Twitter)"
>@ghostfolio_</a >&#64;ghostfolio_</a
><ng-container *ngIf="user?.subscription?.type === 'Premium'" ><ng-container *ngIf="user?.subscription?.type === 'Premium'"
>, send an e-mail to >, send an e-mail to
<a href="mailto:hi@ghostfol.io" title="Send an e-mail" <a href="mailto:hi@ghostfol.io" title="Send an e-mail"
>hi@ghostfol.io</a >hi&#64;ghostfol.io</a
></ng-container ></ng-container
> >
or start a discussion at or start a discussion at

@ -14,8 +14,7 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/libs/common"], "outputs": ["{workspaceRoot}/coverage/libs/common"],
"options": { "options": {
"jestConfig": "libs/common/jest.config.ts", "jestConfig": "libs/common/jest.config.ts"
"passWithNoTests": true
} }
} }
}, },

@ -14,8 +14,7 @@
"executor": "@nx/jest:jest", "executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/libs/ui"], "outputs": ["{workspaceRoot}/coverage/libs/ui"],
"options": { "options": {
"jestConfig": "libs/ui/jest.config.ts", "jestConfig": "libs/ui/jest.config.ts"
"passWithNoTests": true
} }
}, },
"lint": { "lint": {

@ -27,10 +27,6 @@
"inputs": ["default", "^production"], "inputs": ["default", "^production"],
"cache": true "cache": true
}, },
"test": {
"inputs": ["default", "^production", "{workspaceRoot}/jest.preset.js"],
"cache": true
},
"build-storybook": { "build-storybook": {
"inputs": [ "inputs": [
"default", "default",
@ -43,6 +39,19 @@
}, },
"lint": { "lint": {
"cache": true "cache": true
},
"@nx/jest:jest": {
"inputs": ["default", "^production", "{workspaceRoot}/jest.preset.js"],
"cache": true,
"options": {
"passWithNoTests": true
},
"configurations": {
"ci": {
"ci": true,
"codeCoverage": true
}
}
} }
}, },
"namedInputs": { "namedInputs": {

@ -53,17 +53,17 @@
"workspace-generator": "nx workspace-generator" "workspace-generator": "nx workspace-generator"
}, },
"dependencies": { "dependencies": {
"@angular/animations": "16.2.12", "@angular/animations": "17.0.4",
"@angular/cdk": "16.2.11", "@angular/cdk": "17.0.1",
"@angular/common": "16.2.12", "@angular/common": "17.0.4",
"@angular/compiler": "16.2.12", "@angular/compiler": "17.0.4",
"@angular/core": "16.2.12", "@angular/core": "17.0.4",
"@angular/forms": "16.2.12", "@angular/forms": "17.0.4",
"@angular/material": "16.2.11", "@angular/material": "17.0.1",
"@angular/platform-browser": "16.2.12", "@angular/platform-browser": "17.0.4",
"@angular/platform-browser-dynamic": "16.2.12", "@angular/platform-browser-dynamic": "17.0.4",
"@angular/router": "16.2.12", "@angular/router": "17.0.4",
"@angular/service-worker": "16.2.12", "@angular/service-worker": "17.0.4",
"@codewithdan/observable-store": "2.2.15", "@codewithdan/observable-store": "2.2.15",
"@dfinity/agent": "0.15.7", "@dfinity/agent": "0.15.7",
"@dfinity/auth-client": "0.15.7", "@dfinity/auth-client": "0.15.7",
@ -130,37 +130,37 @@
"twitter-api-v2": "1.14.2", "twitter-api-v2": "1.14.2",
"uuid": "9.0.1", "uuid": "9.0.1",
"yahoo-finance2": "2.9.0", "yahoo-finance2": "2.9.0",
"zone.js": "0.13.1" "zone.js": "0.14.2"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "16.2.9", "@angular-devkit/build-angular": "17.0.3",
"@angular-devkit/core": "16.2.9", "@angular-devkit/core": "17.0.3",
"@angular-devkit/schematics": "16.2.9", "@angular-devkit/schematics": "17.0.3",
"@angular-eslint/eslint-plugin": "16.2.0", "@angular-eslint/eslint-plugin": "17.1.0",
"@angular-eslint/eslint-plugin-template": "16.2.0", "@angular-eslint/eslint-plugin-template": "17.1.0",
"@angular-eslint/template-parser": "16.2.0", "@angular-eslint/template-parser": "17.1.0",
"@angular/cli": "16.2.9", "@angular/cli": "17.0.3",
"@angular/compiler-cli": "16.2.12", "@angular/compiler-cli": "17.0.4",
"@angular/language-service": "16.2.12", "@angular/language-service": "17.0.4",
"@angular/localize": "16.2.12", "@angular/localize": "17.0.4",
"@angular/pwa": "16.2.9", "@angular/pwa": "17.0.3",
"@nestjs/schematics": "10.0.1", "@nestjs/schematics": "10.0.1",
"@nestjs/testing": "10.1.3", "@nestjs/testing": "10.1.3",
"@nx/angular": "17.0.2", "@nx/angular": "17.1.3",
"@nx/cypress": "17.0.2", "@nx/cypress": "17.1.3",
"@nx/eslint-plugin": "17.0.2", "@nx/eslint-plugin": "17.1.3",
"@nx/jest": "17.0.2", "@nx/jest": "17.1.3",
"@nx/js": "17.0.2", "@nx/js": "17.1.3",
"@nx/nest": "17.0.2", "@nx/nest": "17.1.3",
"@nx/node": "17.0.2", "@nx/node": "17.1.3",
"@nx/storybook": "17.0.2", "@nx/storybook": "17.1.3",
"@nx/web": "17.0.2", "@nx/web": "17.1.3",
"@nx/workspace": "17.0.2", "@nx/workspace": "17.1.3",
"@schematics/angular": "16.2.0", "@schematics/angular": "17.0.0",
"@simplewebauthn/typescript-types": "8.0.0", "@simplewebauthn/typescript-types": "8.0.0",
"@storybook/addon-essentials": "7.5.1", "@storybook/addon-essentials": "7.5.3",
"@storybook/angular": "7.5.1", "@storybook/angular": "7.5.3",
"@storybook/core-server": "7.5.1", "@storybook/core-server": "7.5.3",
"@types/big.js": "6.1.6", "@types/big.js": "6.1.6",
"@types/body-parser": "1.19.2", "@types/body-parser": "1.19.2",
"@types/cache-manager": "3.4.2", "@types/cache-manager": "3.4.2",
@ -186,8 +186,8 @@
"import-sort-style-module": "6.0.0", "import-sort-style-module": "6.0.0",
"jest": "29.4.3", "jest": "29.4.3",
"jest-environment-jsdom": "29.4.3", "jest-environment-jsdom": "29.4.3",
"jest-preset-angular": "13.1.1", "jest-preset-angular": "13.1.3",
"nx": "17.0.2", "nx": "17.1.1",
"prettier": "3.1.0", "prettier": "3.1.0",
"prettier-plugin-organize-attributes": "1.0.0", "prettier-plugin-organize-attributes": "1.0.0",
"react": "18.2.0", "react": "18.2.0",
@ -198,7 +198,7 @@
"ts-jest": "29.1.0", "ts-jest": "29.1.0",
"ts-node": "10.9.1", "ts-node": "10.9.1",
"tslib": "2.6.0", "tslib": "2.6.0",
"typescript": "5.1.6" "typescript": "5.2.2"
}, },
"engines": { "engines": {
"node": ">=18" "node": ">=18"

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save