Skip to content

Commit 36e5617

Browse files
Merge branch 'main' into created-metadata-service-for-metadata-operations_contribute-main
# Conflicts: # src/app/core/metadata/metadata.service.spec.ts # src/modules/app/browser-init.service.ts
2 parents 548cc2d + c13d23d commit 36e5617

300 files changed

Lines changed: 8383 additions & 7687 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.

.github/workflows/build.yml

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ jobs:
3333
#CHROME_VERSION: "90.0.4430.212-1"
3434
# Bump Node heap size (OOM in CI after upgrading to Angular 15)
3535
NODE_OPTIONS: '--max-old-space-size=4096'
36-
# Project name to use when running docker-compose prior to e2e tests
36+
# Project name to use when running "docker compose" prior to e2e tests
3737
COMPOSE_PROJECT_NAME: 'ci'
3838
strategy:
3939
# Create a matrix of Node versions to test against (in parallel)
4040
matrix:
41-
node-version: [16.x, 18.x]
41+
node-version: [18.x, 20.x]
4242
# Do NOT exit immediately if one matrix job fails
4343
fail-fast: false
4444
# These are the actual CI steps to perform per job
@@ -74,7 +74,7 @@ jobs:
7474
id: yarn-cache-dir-path
7575
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
7676
- name: Cache Yarn dependencies
77-
uses: actions/cache@v3
77+
uses: actions/cache@v4
7878
with:
7979
# Cache entire Yarn cache directory (see previous step)
8080
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -101,19 +101,19 @@ jobs:
101101
# so that it can be shared with the 'codecov' job (see below)
102102
# NOTE: Angular CLI only supports code coverage for specs. See https://github.com/angular/angular-cli/issues/6286
103103
- name: Upload code coverage report to Artifact
104-
uses: actions/upload-artifact@v3
104+
uses: actions/upload-artifact@v4
105105
if: matrix.node-version == '18.x'
106106
with:
107-
name: dspace-angular coverage report
107+
name: coverage-report-${{ matrix.node-version }}
108108
path: 'coverage/dspace-angular/lcov.info'
109109
retention-days: 14
110110

111-
# Using docker-compose start backend using CI configuration
111+
# Using "docker compose" start backend using CI configuration
112112
# and load assetstore from a cached copy
113113
- name: Start DSpace REST Backend via Docker (for e2e tests)
114114
run: |
115-
docker-compose -f ./docker/docker-compose-ci.yml up -d
116-
docker-compose -f ./docker/cli.yml -f ./docker/cli.assetstore.yml run --rm dspace-cli
115+
docker compose -f ./docker/docker-compose-ci.yml up -d
116+
docker compose -f ./docker/cli.yml -f ./docker/cli.assetstore.yml run --rm dspace-cli
117117
docker container ls
118118
119119
# Run integration tests via Cypress.io
@@ -135,19 +135,19 @@ jobs:
135135
# Cypress always creates a video of all e2e tests (whether they succeeded or failed)
136136
# Save those in an Artifact
137137
- name: Upload e2e test videos to Artifacts
138-
uses: actions/upload-artifact@v3
138+
uses: actions/upload-artifact@v4
139139
if: always()
140140
with:
141-
name: e2e-test-videos
141+
name: e2e-test-videos-${{ matrix.node-version }}
142142
path: cypress/videos
143143

144144
# If e2e tests fail, Cypress creates a screenshot of what happened
145145
# Save those in an Artifact
146146
- name: Upload e2e test failure screenshots to Artifacts
147-
uses: actions/upload-artifact@v3
147+
uses: actions/upload-artifact@v4
148148
if: failure()
149149
with:
150-
name: e2e-test-screenshots
150+
name: e2e-test-screenshots-${{ matrix.node-version }}
151151
path: cypress/screenshots
152152

153153
- name: Stop app (in case it stays up after e2e tests)
@@ -182,7 +182,7 @@ jobs:
182182
run: kill -9 $(lsof -t -i:4000)
183183

184184
- name: Shutdown Docker containers
185-
run: docker-compose -f ./docker/docker-compose-ci.yml down
185+
run: docker compose -f ./docker/docker-compose-ci.yml down
186186

187187
# Codecov upload is a separate job in order to allow us to restart this separate from the entire build/test
188188
# job above. This is necessary because Codecov uploads seem to randomly fail at times.
@@ -197,7 +197,7 @@ jobs:
197197

198198
# Download artifacts from previous 'tests' job
199199
- name: Download coverage artifacts
200-
uses: actions/download-artifact@v3
200+
uses: actions/download-artifact@v4
201201

202202
# Now attempt upload to Codecov using its action.
203203
# NOTE: We use a retry action to retry the Codecov upload if it fails the first time.
@@ -207,11 +207,12 @@ jobs:
207207
- name: Upload coverage to Codecov.io
208208
uses: Wandalen/wretry.action@v1.3.0
209209
with:
210-
action: codecov/codecov-action@v3
210+
action: codecov/codecov-action@v4
211211
# Ensure codecov-action throws an error when it fails to upload
212212
# This allows us to auto-restart the action if an error is thrown
213213
with: |
214214
fail_ci_if_error: true
215+
token: ${{ secrets.CODECOV_TOKEN }}
215216
# Try re-running action 5 times max
216217
attempt_limit: 5
217218
# Run again in 30 seconds

.github/workflows/docker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
# Use the reusable-docker-build.yml script from DSpace/DSpace repo to build our Docker image
2929
uses: DSpace/DSpace/.github/workflows/reusable-docker-build.yml@main
3030
with:
31-
build_id: dspace-angular
31+
build_id: dspace-angular-dev
3232
image_name: dspace/dspace-angular
3333
dockerfile_path: ./Dockerfile
3434
secrets:

.github/workflows/issue_opened.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
# Only add to project board if issue is flagged as "needs triage" or has no labels
1717
# NOTE: By default we flag new issues as "needs triage" in our issue template
1818
if: (contains(github.event.issue.labels.*.name, 'needs triage') || join(github.event.issue.labels.*.name) == '')
19-
uses: actions/add-to-project@v0.5.0
19+
uses: actions/add-to-project@v1.0.0
2020
# Note, the authentication token below is an ORG level Secret.
2121
# It must be created/recreated manually via a personal access token with admin:org, project, public_repo permissions
2222
# See: https://docs.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token#permissions-for-the-github_token

.github/workflows/pull_request_opened.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@ jobs:
2121
# Assign the PR to whomever created it. This is useful for visualizing assignments on project boards
2222
# See https://github.com/toshimaru/auto-author-assign
2323
- name: Assign PR to creator
24-
uses: toshimaru/auto-author-assign@v2.0.1
24+
uses: toshimaru/auto-author-assign@v2.1.0

config/config.example.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ ui:
1717
# Trust X-FORWARDED-* headers from proxies (default = true)
1818
useProxies: true
1919

20+
universal:
21+
# Whether to inline "critical" styles into the server-side rendered HTML.
22+
# Determining which styles are critical is a relatively expensive operation;
23+
# this option can be disabled to boost server performance at the expense of
24+
# loading smoothness.
25+
inlineCriticalCss: true
26+
2027
# The REST API server settings
2128
# NOTE: these settings define which (publicly available) REST API to use. They are usually
2229
# 'synced' with the 'dspace.server.url' setting in your backend's local.cfg.
@@ -400,10 +407,11 @@ mediaViewer:
400407

401408
# Whether the end user agreement is required before users use the repository.
402409
# If enabled, the user will be required to accept the agreement before they can use the repository.
403-
# And whether the privacy statement should exist or not.
410+
# And whether the privacy statement/COAR notify support page should exist or not.
404411
info:
405412
enableEndUserAgreement: true
406413
enablePrivacyStatement: true
414+
enableCOARNotifySupport: true
407415

408416
# Whether to enable Markdown (https://commonmark.org/) and MathJax (https://www.mathjax.org/)
409417
# display in supported metadata fields. By default, only dc.description.abstract is supported.

package.json

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -55,28 +55,28 @@
5555
"ts-node": "10.2.1"
5656
},
5757
"dependencies": {
58-
"@angular/animations": "^15.2.8",
59-
"@angular/cdk": "^15.2.8",
60-
"@angular/common": "^15.2.8",
61-
"@angular/compiler": "^15.2.8",
62-
"@angular/core": "^15.2.8",
63-
"@angular/forms": "^15.2.8",
64-
"@angular/localize": "15.2.8",
65-
"@angular/platform-browser": "^15.2.8",
66-
"@angular/platform-browser-dynamic": "^15.2.8",
67-
"@angular/platform-server": "^15.2.8",
68-
"@angular/router": "^15.2.8",
58+
"@angular/animations": "^16.2.12",
59+
"@angular/cdk": "^16.2.12",
60+
"@angular/common": "^16.2.12",
61+
"@angular/compiler": "^16.2.12",
62+
"@angular/core": "^16.2.12",
63+
"@angular/forms": "^16.2.12",
64+
"@angular/localize": "16.2.12",
65+
"@angular/platform-browser": "^16.2.12",
66+
"@angular/platform-browser-dynamic": "^16.2.12",
67+
"@angular/platform-server": "^16.2.12",
68+
"@angular/router": "^16.2.12",
6969
"@babel/runtime": "7.21.0",
7070
"@kolkov/ngx-gallery": "^2.0.1",
7171
"@material-ui/core": "^4.11.0",
7272
"@material-ui/icons": "^4.11.3",
7373
"@ng-bootstrap/ng-bootstrap": "^11.0.0",
74-
"@ng-dynamic-forms/core": "^15.0.0",
75-
"@ng-dynamic-forms/ui-ng-bootstrap": "^15.0.0",
76-
"@ngrx/effects": "^15.4.0",
77-
"@ngrx/router-store": "^15.4.0",
78-
"@ngrx/store": "^15.4.0",
79-
"@nguniversal/express-engine": "^15.2.1",
74+
"@ng-dynamic-forms/core": "^16.0.0",
75+
"@ng-dynamic-forms/ui-ng-bootstrap": "^16.0.0",
76+
"@ngrx/effects": "^16.3.0",
77+
"@ngrx/router-store": "^16.3.0",
78+
"@ngrx/store": "^16.3.0",
79+
"@nguniversal/express-engine": "^16.2.0",
8080
"@ngx-translate/core": "^14.0.0",
8181
"@nicky-lenaers/ngx-scroll-to": "^14.0.0",
8282
"@types/grecaptcha": "^3.0.4",
@@ -94,7 +94,7 @@
9494
"date-fns-tz": "^1.3.7",
9595
"deepmerge": "^4.3.1",
9696
"ejs": "^3.1.9",
97-
"express": "^4.18.2",
97+
"express": "^4.19.2",
9898
"express-rate-limit": "^5.1.3",
9999
"fast-json-patch": "^3.1.1",
100100
"filesize": "^6.1.0",
@@ -110,17 +110,15 @@
110110
"lodash": "^4.17.21",
111111
"lru-cache": "^7.14.1",
112112
"markdown-it": "^13.0.1",
113-
"markdown-it-mathjax3": "^4.3.2",
114113
"mirador": "^3.3.0",
115114
"mirador-dl-plugin": "^0.13.0",
116115
"mirador-share-plugin": "^0.11.0",
117116
"morgan": "^1.10.0",
118117
"ng-mocks": "^14.10.0",
119-
"ng2-file-upload": "1.4.0",
118+
"ng2-file-upload": "5.0.0",
120119
"ng2-nouislider": "^2.0.0",
121-
"ngx-infinite-scroll": "^15.0.0",
120+
"ngx-infinite-scroll": "^16.0.0",
122121
"ngx-pagination": "6.0.3",
123-
"ngx-sortablejs": "^11.1.0",
124122
"ngx-ui-switch": "^14.1.0",
125123
"nouislider": "^15.7.1",
126124
"pem": "1.14.7",
@@ -132,24 +130,24 @@
132130
"sortablejs": "1.15.0",
133131
"uuid": "^8.3.2",
134132
"webfontloader": "1.6.28",
135-
"zone.js": "~0.11.5"
133+
"zone.js": "~0.13.3"
136134
},
137135
"devDependencies": {
138-
"@angular-builders/custom-webpack": "~15.0.0",
139-
"@angular-devkit/build-angular": "^15.2.6",
140-
"@angular-eslint/builder": "15.2.1",
141-
"@angular-eslint/eslint-plugin": "15.2.1",
142-
"@angular-eslint/eslint-plugin-template": "15.2.1",
143-
"@angular-eslint/schematics": "15.2.1",
144-
"@angular-eslint/template-parser": "15.2.1",
145-
"@angular/cli": "^16.0.4",
146-
"@angular/compiler-cli": "^15.2.8",
147-
"@angular/language-service": "^15.2.8",
136+
"@angular-builders/custom-webpack": "~16.0.0",
137+
"@angular-devkit/build-angular": "^16.2.12",
138+
"@angular-eslint/builder": "16.3.1",
139+
"@angular-eslint/eslint-plugin": "16.3.1",
140+
"@angular-eslint/eslint-plugin-template": "16.3.1",
141+
"@angular-eslint/schematics": "16.3.1",
142+
"@angular-eslint/template-parser": "16.3.1",
143+
"@angular/cli": "^16.2.12",
144+
"@angular/compiler-cli": "^16.2.12",
145+
"@angular/language-service": "^16.2.12",
148146
"@cypress/schematic": "^1.5.0",
149147
"@fortawesome/fontawesome-free": "^6.4.0",
150-
"@ngrx/store-devtools": "^15.4.0",
151-
"@ngtools/webpack": "^15.2.6",
152-
"@nguniversal/builders": "^15.2.1",
148+
"@ngrx/store-devtools": "^16.3.0",
149+
"@ngtools/webpack": "^16.2.12",
150+
"@nguniversal/builders": "^16.2.0",
153151
"@types/deep-freeze": "0.1.2",
154152
"@types/ejs": "^3.1.2",
155153
"@types/express": "^4.17.17",
@@ -186,7 +184,7 @@
186184
"karma-jasmine": "~4.0.0",
187185
"karma-jasmine-html-reporter": "^1.5.0",
188186
"karma-mocha-reporter": "2.2.5",
189-
"ngx-mask": "^13.1.7",
187+
"ngx-mask": "14.2.4",
190188
"nodemon": "^2.0.22",
191189
"postcss": "^8.4",
192190
"postcss-apply": "0.12.0",
@@ -202,7 +200,7 @@
202200
"sass-loader": "^12.6.0",
203201
"sass-resources-loader": "^2.2.5",
204202
"ts-node": "^8.10.2",
205-
"typescript": "~4.8.4",
203+
"typescript": "~4.9.3",
206204
"webpack": "5.76.1",
207205
"webpack-bundle-analyzer": "^4.8.0",
208206
"webpack-cli": "^4.2.0",

0 commit comments

Comments
 (0)