Skip to content

Commit 12db363

Browse files
committed
Merge tag 'dspace-9.2' into task/dspace-cris-2025_02_x/DSC-2256_dspace9
2 parents 4eb61c3 + a54c4f8 commit 12db363

1,207 files changed

Lines changed: 40985 additions & 20238 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.eslintrc.json

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
"@angular-eslint/eslint-plugin",
66
"eslint-plugin-import",
77
"eslint-plugin-jsdoc",
8-
"eslint-plugin-deprecation",
98
"unused-imports",
109
"eslint-plugin-lodash",
1110
"eslint-plugin-jsonc",
12-
"eslint-plugin-rxjs",
11+
"@smarttools/rxjs",
1312
"eslint-plugin-simple-import-sort",
1413
"eslint-plugin-import-newlines",
14+
"@stylistic",
1515
"dspace-angular-ts",
1616
"dspace-angular-html"
1717
],
@@ -37,7 +37,7 @@
3737
"plugin:@typescript-eslint/recommended-requiring-type-checking",
3838
"plugin:@angular-eslint/recommended",
3939
"plugin:@angular-eslint/template/process-inline-templates",
40-
"plugin:rxjs/recommended"
40+
"plugin:@smarttools/rxjs/recommended-legacy"
4141
],
4242
"rules": {
4343
"indent": [
@@ -175,15 +175,16 @@
175175
"ignoreParameters": true
176176
}
177177
],
178-
"@typescript-eslint/quotes": [
178+
"@angular-eslint/prefer-inject": "off",
179+
"@stylistic/quotes": [
179180
"error",
180181
"single",
181182
{
182183
"avoidEscape": true,
183184
"allowTemplateLiterals": true
184185
}
185186
],
186-
"@typescript-eslint/semi": "error",
187+
"@stylistic/semi": "error",
187188
"@typescript-eslint/no-shadow": "error",
188189
"@typescript-eslint/dot-notation": "error",
189190
"@typescript-eslint/consistent-type-definitions": "error",
@@ -206,9 +207,9 @@
206207
]
207208
}
208209
],
209-
"@typescript-eslint/type-annotation-spacing": "error",
210+
"@stylistic/type-annotation-spacing": "error",
210211
"@typescript-eslint/unified-signatures": "error",
211-
"@typescript-eslint/ban-types": "error",
212+
"@typescript-eslint/no-restricted-types": "error",
212213
"@typescript-eslint/no-floating-promises": "warn",
213214
"@typescript-eslint/no-misused-promises": "warn",
214215
"@typescript-eslint/restrict-plus-operands": "warn",
@@ -223,6 +224,7 @@
223224
"@typescript-eslint/no-unsafe-call": "off",
224225
"@typescript-eslint/no-unsafe-argument": "off",
225226
"@typescript-eslint/no-unsafe-return": "off",
227+
"@typescript-eslint/no-redundant-type-constituents": "off",
226228
"@typescript-eslint/restrict-template-expressions": "off",
227229
"@typescript-eslint/require-await": "off",
228230
"@typescript-eslint/no-base-to-string": [
@@ -235,7 +237,7 @@
235237
}
236238
],
237239

238-
"deprecation/deprecation": "warn",
240+
"@typescript-eslint/no-deprecated": "warn",
239241

240242
"simple-import-sort/imports": "error",
241243
"simple-import-sort/exports": "error",
@@ -253,14 +255,18 @@
253255
"forceSingleLine": true
254256
}
255257
],
258+
"import/enforce-node-protocol-usage": [
259+
"error",
260+
"always"
261+
],
256262

257263
"unused-imports/no-unused-imports": "error",
258264
"lodash/import-scope": [
259265
"error",
260266
"method"
261267
],
262268

263-
"rxjs/no-nested-subscribe": "off", // todo: go over _all_ cases
269+
"@smarttools/rxjs/no-nested-subscribe": "off", // todo: go over _all_ cases
264270

265271
// Custom DSpace Angular rules
266272
"dspace-angular-ts/alias-imports": [
@@ -275,7 +281,7 @@
275281
]
276282
}
277283
],
278-
"dspace-angular-ts/themed-component-classes": "error",
284+
"dspace-angular-ts/no-default-standalone-value": "error",
279285
"dspace-angular-ts/themed-component-selectors": "error",
280286
"dspace-angular-ts/themed-component-usages": "error",
281287
"dspace-angular-ts/themed-decorators": [

.github/pull_request_template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ However, reviewers may request that you complete any actions in this list if you
2525
- [ ] My PR **doesn't introduce circular dependencies** (verified via `npm run check-circ-deps`)
2626
- [ ] My PR **includes [TypeDoc](https://typedoc.org/) comments** for _all new (or modified) public methods and classes_. It also includes TypeDoc for large or complex private methods.
2727
- [ ] My PR **passes all specs/tests and includes new/updated specs or tests** based on the [Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Testing+Guide).
28-
- [ ] My PR **aligns with [Accessibility guidelines](https://wiki.lyrasis.org/display/DSDOC8x/Accessibility)** if it makes changes to the user interface.
28+
- [ ] My PR **aligns with [Accessibility guidelines](https://wiki.lyrasis.org/display/DSDOC9x/Accessibility)** if it makes changes to the user interface.
2929
- [ ] My PR **uses i18n (internationalization) keys** instead of hardcoded English text, to allow for translations.
3030
- [ ] My PR **includes details on how to test it**. I've provided clear instructions to reviewers on how to successfully test this fix or feature.
3131
- [ ] If my PR includes new libraries/dependencies (in `package.json`), I've made sure their licenses align with the [DSpace BSD License](https://github.com/DSpace/DSpace/blob/main/LICENSE) based on the [Licensing of Contributions](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines#CodeContributionGuidelines-LicensingofContributions) documentation.

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
DSPACE_REST_PORT: 8080
2222
DSPACE_REST_NAMESPACE: '/server'
2323
DSPACE_REST_SSL: false
24-
# Spin up UI on 127.0.0.1 to avoid host resolution issues in e2e tests with Node 18+
24+
# Spin up UI on 127.0.0.1 to avoid host resolution issues in e2e tests with Node 20+
2525
DSPACE_UI_HOST: 127.0.0.1
2626
DSPACE_UI_PORT: 4000
2727
# Ensure all SSR caching is disabled in test environment
@@ -44,7 +44,7 @@ jobs:
4444
strategy:
4545
# Create a matrix of Node versions to test against (in parallel)
4646
matrix:
47-
node-version: [18.x, 20.x]
47+
node-version: [20.x, 22.x]
4848
# Do NOT exit immediately if one matrix job fails
4949
fail-fast: false
5050
# These are the actual CI steps to perform per job
@@ -114,7 +114,7 @@ jobs:
114114
# NOTE: Angular CLI only supports code coverage for specs. See https://github.com/angular/angular-cli/issues/6286
115115
- name: Upload code coverage report to Artifact
116116
uses: actions/upload-artifact@v4
117-
if: matrix.node-version == '18.x'
117+
if: matrix.node-version == '20.x'
118118
with:
119119
name: coverage-report-${{ matrix.node-version }}
120120
path: 'coverage/dspace-angular/lcov.info'

.github/workflows/codescan.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ jobs:
4040
# Initializes the CodeQL tools for scanning.
4141
# https://github.com/github/codeql-action
4242
- name: Initialize CodeQL
43-
uses: github/codeql-action/init@v2
43+
uses: github/codeql-action/init@v3
4444
with:
4545
languages: javascript
4646

4747
# Autobuild attempts to build any compiled languages
4848
- name: Autobuild
49-
uses: github/codeql-action/autobuild@v2
49+
uses: github/codeql-action/autobuild@v3
5050

5151
# Perform GitHub Code Scanning.
5252
- name: Perform CodeQL Analysis
53-
uses: github/codeql-action/analyze@v2
53+
uses: github/codeql-action/analyze@v3

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ DSpace is a community built and supported project. We do not have a centralized
1010
## Contribute new code via a Pull Request
1111

1212
We accept [GitHub Pull Requests (PRs)](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) at any time from anyone.
13-
Contributors to each release are recognized in our [Release Notes](https://wiki.lyrasis.org/display/DSDOC8x/Release+Notes).
13+
Contributors to each release are recognized in our [Release Notes](https://wiki.lyrasis.org/display/DSDOC9x/Release+Notes).
1414

1515
Code Contribution Checklist
1616
- [ ] PRs _should_ be smaller in size (ideally less than 1,000 lines of code, not including comments & tests)
1717
- [ ] PRs **must** pass [ESLint](https://eslint.org/) validation using `yarn lint`
1818
- [ ] PRs **must** not introduce circular dependencies (verified via `yarn check-circ-deps`)
1919
- [ ] PRs **must** include [TypeDoc](https://typedoc.org/) comments for _all new (or modified) public methods and classes_. Large or complex private methods should also have TypeDoc.
2020
- [ ] PRs **must** pass all automated pecs/tests and includes new/updated specs or tests based on the [Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Testing+Guide).
21-
- [ ] User interface changes **must** align with [Accessibility guidelines](https://wiki.lyrasis.org/display/DSDOC8x/Accessibility)
21+
- [ ] User interface changes **must** align with [Accessibility guidelines](https://wiki.lyrasis.org/display/DSDOC9x/Accessibility)
2222
- [ ] PRs **must** use i18n (internationalization) keys instead of hardcoded English text, to allow for translations.
2323
- [ ] Details on how to test the PR **must** be provided. Reviewers must be aware of any steps they need to take to successfully test your fix or feature.
2424
- [ ] If a PR includes new libraries/dependencies (in `package.json`), then their software licenses **must** align with the [DSpace BSD License](https://github.com/DSpace/dspace-angular/blob/main/LICENSE) based on the [Licensing of Contributions](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines#CodeContributionGuidelines-LicensingofContributions) documentation.

Dockerfile.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# Test build:
77
# docker build -f Dockerfile.dist -t 4science/dspace-angular:dspace-cris-2025_02_x-dist .
88

9-
# Angular 17 + Node 22 optimized Dockerfile
9+
# Angular 20 + Node 22 optimized Dockerfile
1010
ARG NODE_VERSION=22
1111
ARG DSPACE_VERSION=dspace-cris-2025_02_x
1212
ARG DOCKER_REGISTRY=docker.io

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ You can find additional information on the DSpace 7 Angular UI on the [wiki](htt
1313
Quick start
1414
-----------
1515

16-
**Ensure you're running [Node](https://nodejs.org) `v18.x` or `v20.x`, [npm](https://www.npmjs.com/) >= `v10.x`**
16+
**Ensure you're running [Node](https://nodejs.org) `v20.x`, `v22.x` or `v24.x`, [npm](https://www.npmjs.com/) >= `v10.x`**
1717

1818
```bash
1919
# clone the repo
@@ -68,7 +68,7 @@ Requirements
6868
------------
6969

7070
- [Node.js](https://nodejs.org)
71-
- Ensure you're running node `v18.x` or `v20.x`
71+
- Ensure you're running node `v20.x`, `v22.x` or `v24.x`
7272

7373
If you have [`nvm`](https://github.com/creationix/nvm#install-script) or [`nvm-windows`](https://github.com/coreybutler/nvm-windows) installed, which is highly recommended, you can run `nvm install --lts && nvm use` to install and start using the latest Node LTS.
7474

@@ -327,7 +327,7 @@ See our [DSpace Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code
327327
Documentation
328328
--------------
329329
330-
Official DSpace documentation is available in the DSpace wiki at https://wiki.lyrasis.org/display/DSDOC7x/
330+
Official DSpace documentation is available in the DSpace wiki at https://wiki.lyrasis.org/display/DSDOC9x/
331331
332332
Some UI specific configuration documentation is also found in the [`./docs`](docs) folder of this codebase.
333333
@@ -432,7 +432,6 @@ dspace-angular
432432
├── karma.conf.js * Karma configuration file for Unit Test
433433
├── LICENSE *
434434
├── LICENSES_THIRD_PARTY *
435-
├── nodemon.json * Nodemon (https://nodemon.io/) configuration
436435
├── package.json * This file describes the npm package for this project, its dependencies, scripts, etc.
437436
├── package-lock.json * npm lockfile (https://docs.npmjs.com/cli/v10/configuring-npm/package-lock-json)
438437
├── postcss.config.js * PostCSS (http://postcss.org/) configuration

angular.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,30 @@
299299
},
300300
"@angular-eslint/schematics:library": {
301301
"setParserOptionsProject": true
302+
},
303+
"@schematics/angular:component": {
304+
"type": "component"
305+
},
306+
"@schematics/angular:directive": {
307+
"type": "directive"
308+
},
309+
"@schematics/angular:service": {
310+
"type": "service"
311+
},
312+
"@schematics/angular:guard": {
313+
"typeSeparator": "."
314+
},
315+
"@schematics/angular:interceptor": {
316+
"typeSeparator": "."
317+
},
318+
"@schematics/angular:module": {
319+
"typeSeparator": "."
320+
},
321+
"@schematics/angular:pipe": {
322+
"typeSeparator": "."
323+
},
324+
"@schematics/angular:resolver": {
325+
"typeSeparator": "."
302326
}
303327
}
304328
}

config/config.example.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,8 @@ submission:
248248
# Minimum number of characters required before performing a lookup.
249249
minChars: 3
250250

251-
# Default Language in which the UI will be rendered if the user's browser language is not an active language
252-
defaultLanguage: en
251+
# Fallback language in which the UI will be rendered if the user's browser language is not an active language
252+
fallbackLanguage: en
253253

254254
# Languages. DSpace Angular holds a message catalog for each of the following languages.
255255
# When set to active, users will be able to switch to the use of this language in the user interface.
@@ -284,6 +284,9 @@ languages:
284284
- code: es
285285
label: Español
286286
active: true
287+
- code: fa
288+
label: فارسی
289+
active: true
287290
- code: fi
288291
label: Suomi
289292
active: true
@@ -344,6 +347,9 @@ languages:
344347
- code: sv
345348
label: Svenska
346349
active: true
350+
- code: ta
351+
label: தமிழ்
352+
active: true
347353
- code: tr
348354
label: Türkçe
349355
active: true

cypress/plugins/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const fs = require('fs');
1+
import fs from 'node:fs';
22

33
// These two global variables are used to store information about the REST API used
44
// by these e2e tests. They are filled out prior to running any tests in the before()

0 commit comments

Comments
 (0)