Skip to content

Commit 8c99ccd

Browse files
committed
docs(upgrade): add UPGRADE-8.3.md progress log and README pointer
Track the in-flight DSpace 8.2 -> 8.3 merge: customizations kept, conflict resolutions, validation status (yarn install/lint/build), and open risks. README gets a small pointer block.
1 parent bc8a919 commit 8c99ccd

2 files changed

Lines changed: 161 additions & 0 deletions

File tree

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
[![Build Status](https://github.com/DSpace/dspace-angular/workflows/Build/badge.svg?branch=main)](https://github.com/DSpace/dspace-angular/actions?query=workflow%3ABuild) [![Coverage Status](https://codecov.io/gh/DSpace/dspace-angular/branch/main/graph/badge.svg)](https://codecov.io/gh/DSpace/dspace-angular) [![Universal Angular](https://img.shields.io/badge/universal-angular2-brightgreen.svg?style=flat)](https://github.com/angular/universal)
22

3+
> ### DataShare / UoE upgrade note (DSpace 8.2 → 8.3)
4+
>
5+
> An upgrade to **DSpace 8.3** is in progress on branch **`uoe/upgrade-to-83`**.
6+
> The full progress log, customizations inventory, conflict resolutions and
7+
> open risks live in [UPGRADE-8.3.md](UPGRADE-8.3.md).
8+
> Backup tag of the pre-merge tip: `backup/pre-8.3-merge-before`.
9+
310
dspace-angular
411
==============
512

UPGRADE-8.3.md

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
# DSpace 8.2 → 8.3 Upgrade — Progress Notes
2+
3+
> Working branch: **`uoe/upgrade-to-83`** (push only here).
4+
> Backup tag of the pre-merge tip: **`backup/pre-8.3-merge-before`** (= `83efa3a01`).
5+
6+
This document tracks the in-flight upgrade of the DataShare Angular fork
7+
(formerly aligned to DSpace 8.2) to **DSpace 8.3**, while preserving the
8+
University of Edinburgh / DataShare customizations.
9+
10+
---
11+
12+
## 1. Upgrade Progress (chronological)
13+
14+
| Date (local) | Action | Result |
15+
|---|---|---|
16+
| 2026-04-22 13:35 | Initial analysis of `README-UPGRADE-PROMPT.md`, external `MIGRATION-ASSESSMENT.md`, `Vanilla-UoE-differencies-6.5.md`. | Customization inventory built (see §2). |
17+
| 2026-04-22 13:36 | Added remotes: `upstream` = `UoEMainLibrary/dspace-datashare-angular`, `dspace` = `DSpace/dspace-angular`; fetched all branches. | OK. |
18+
| 2026-04-22 13:36 | Tagged backup `backup/pre-8.3-merge-before` on previous HEAD `83efa3a01`. | OK. |
19+
| 2026-04-22 13:37 | Verified that `upstream/UoEMainLibrary-dspace-8_x` already contains the merge of upstream `dspace-angular@8.3` (commit `187289546`, `package.json` version = `8.3.0`). Step 1 of the merge strategy ("sync UoEMainLibrary-dspace-8_x with upstream 8.3") therefore reduces to using that ref directly. | OK. |
20+
| 2026-04-22 13:38 | `git merge upstream/UoEMainLibrary-dspace-8_x --no-ff` into `uoe/upgrade-to-83`. | 5 conflicts; resolved (see §4). |
21+
| 2026-04-22 13:39 | Resolution committed as merge commit `ecd239c26`. | OK. |
22+
| 2026-04-22 13:40 | `yarn install --frozen-lockfile` (Node v18.20.4, yarn 1.22.19). | OK (only pre-existing peer-dep warnings). |
23+
| 2026-04-22 13:42 | `yarn lint:nobuild`. | **0 errors**, 1048 pre-existing deprecation/warning lines. |
24+
| 2026-04-22 13:44 | `yarn build` (development configuration). | **Build succeeds** after one follow-up theme fix (see §4 / commit `bc8a9190c`). |
25+
26+
---
27+
28+
## 2. Customizations Inventory (verified vs. sources)
29+
30+
The combined picture from `MIGRATION-ASSESSMENT.md`, `Vanilla-UoE-differencies-6.5.md`
31+
and the actual codebase. Frontend-only items are highlighted here (this is the
32+
Angular repo).
33+
34+
### 2.1 UI / Branding (KEEP)
35+
- Full custom theme `src/themes/datashare/` with 250+ component overrides.
36+
- Edinburgh assets (logos, favicons, CoreTrustSeal, banners).
37+
- Custom info pages: `about`, `accessibility-statement`, `copyright`,
38+
`end-user-agreement`, `feedback` (with form), `organised`, `privacy`.
39+
- Heavily customized `src/assets/i18n/en.json5` (DataShare keys block ≈170 keys).
40+
- File-section component shows ORIGINAL + CC-LICENSE bundles, 25 items / page.
41+
- Custom `deposit-button` component.
42+
- Embargo badge on bitstreams (recent UoE feature).
43+
44+
### 2.2 Submission / forms (KEEP)
45+
- `DatashareSubmissionService` enforces `MAX_FILE_SIZE_GB = 20`.
46+
- `section-upload.component.ts` overrides for size + duplicate handling.
47+
- Custom progress-bar / step labels:
48+
`submission.sections.submit.progressbar.datashare.license`,
49+
`…spatial_and_temporal`, `…funder`.
50+
- `ng2-file-upload@9.0.0` (newer than upstream `5.0.0`) — kept for chunked uploads.
51+
- Custom CSS in `ds-dynamic-form-control-container.component.scss` forcing
52+
`.col-sm-4` to full width inside the dynamic form container.
53+
- Multi-value form-fields fix (`UoE/fix: prevent multi-value form fields from losing input and 'Add more'`).
54+
55+
### 2.3 Search / Browse (KEEP)
56+
- `comcol-page-browse-by.component.ts` — community routing tweaks.
57+
- Item-search-result list element wraps publisher / date / authors block in `<div class="my-2">` (DATASHARE markers).
58+
- JACS subject-classification i18n + browse routes.
59+
60+
### 2.4 Auth (KEEP – minimal)
61+
- DSpace 8 frontend has no special EASE/Shibboleth code; Shibboleth is handled
62+
natively. No bespoke auth code in this repo to migrate (the `DATASHARE_USERS`
63+
group injection lives in the **backend**).
64+
65+
### 2.5 Accessibility / a11y (KEEP)
66+
- `aria-label` and `role` fixes in edit-metadata table, relation-group component,
67+
end-user-agreement links, etc. (multiple recent UoE commits, untouched by 8.3).
68+
69+
### 2.6 CI / build (KEEP)
70+
- `.github/workflows/codescan.yml` — UoE-tweaked CodeQL workflow.
71+
- `Dockerfile` / `docker/dspace-ui.json` — DataShare-specific.
72+
- `cypress` e2e suites — UoE-extended.
73+
74+
### 2.7 Known gap (NOT in this PR)
75+
- **File preview** for CSV / scientific data formats: documented as missing in
76+
`MIGRATION-ASSESSMENT.md`. Not part of this 8.2 → 8.3 upgrade — flagged in §6.
77+
78+
---
79+
80+
## 3. Merge Strategy Followed
81+
82+
Per the prompt:
83+
84+
1. **Sync UoE 8.x with upstream 8.3**: `upstream/UoEMainLibrary-dspace-8_x`
85+
already contains the 8.3 merge (PR #8, commit `187289546`,
86+
`package.json` = `8.3.0`). No additional sync required.
87+
2. **Merge that 8.3-aware branch into our DataShare 8.2 line**:
88+
`git merge upstream/UoEMainLibrary-dspace-8_x --no-ff` on
89+
`uoe/upgrade-to-83`. Result: merge commit `ecd239c26`.
90+
3. **Conflict resolution policy**: 8.3 is the baseline; DataShare/UoE
91+
customizations are layered on top. See §4.
92+
93+
No force-pushes. No work on any other branch.
94+
95+
---
96+
97+
## 4. Conflicts and Resolutions
98+
99+
| File | Symptom | Root cause | Fix | Risk |
100+
|---|---|---|---|---|
101+
| `package.json` | `morgan` minor bump (1.10.0 → 1.10.1) and `ng2-file-upload` reverted to `5.0.0` upstream while we use `9.0.0`. | Upstream stayed on the older `ng2-file-upload`; UoE/DataShare upgraded for chunking. | Take upstream `morgan@^1.10.1`; **keep** `ng2-file-upload@9.0.0` (DataShare requirement). | Low. |
102+
| `.github/workflows/codescan.yml` | Conflict marker on identical line (`uses: github/codeql-action/analyze@v3`). | Whitespace / EOL drift. | Removed the markers, single canonical line. | None. |
103+
| `src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.scss` | DataShare `.col-sm-4` full-width override vs. upstream-added `.invalid-feedback` / `.col-form-label` rules. | Both sides added new rules in the same file region. | **Both kept** — DataShare block first, upstream block after. | None. |
104+
| `src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html` | DataShare wraps publisher/date/authors in `<div class="my-2">`; 8.3 changes the abstract block from `dso.firstMetadataValue('dc.description.abstract')` to `firstMetadataValue('dc.description.abstract') as abstract`. | Both sides edit adjacent lines. | Keep DataShare wrapper; adopt 8.3 abstract binding (`as abstract`). | None — markup unchanged for the user. |
105+
| `src/assets/i18n/en.json5` | Upstream adds 3 keys (`item.preview.organization.url`, `…address.addressLocality`, `…alternateName`); DataShare adds the entire ~170-key DataShare/JACS block. Closing brace conflict. | Both touch end of file. | Insert the 3 upstream keys near the top of the additions; keep the full DataShare block; single closing brace. | None. |
106+
| `src/themes/datashare/app/shared/dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component.ts` | Build error `NG8002: Can't bind to 'currentDSOId' since it isn't a known property of 'ds-authorized-community-selector'`. | DSpace 8.3 replaces `<ds-dso-selector>` with `<ds-authorized-community-selector>` in `create-community-parent-selector.component.html`; the DataShare theme override re-uses that template but still imported `DSOSelectorComponent`. | Imported `AuthorizedCommunitySelectorComponent` and updated the component's `imports` array (commit `bc8a9190c`). | None — mirrors what the upstream `custom/` theme already does. |
107+
108+
---
109+
110+
## 5. Validation
111+
112+
| Check | Command | Status |
113+
|---|---|---|
114+
| Dependency install | `yarn install --frozen-lockfile` | OK (warnings are pre-existing peer-dep mismatches, not caused by this PR). |
115+
| Lint | `yarn lint:nobuild` | **0 errors**, 1048 warnings (deprecation noise inherited from baseline). |
116+
| Build | `yarn build` (dev) | **OK**`dist/browser/` produced (~103 s). |
117+
| Unit tests | `yarn test:headless` | **Not executed in this session** — see §6. |
118+
| E2E | `yarn cypress:run` | **Not executed** — needs running backend. |
119+
120+
---
121+
122+
## 6. Open Risks / Next Steps
123+
124+
1. **Unit + E2E suites**: not run in this session (long runtime, no live backend
125+
available). Recommended before merging the PR:
126+
- `yarn test:headless` for the Karma unit suite.
127+
- `yarn cypress:run` against an 8.3 backend for the customized flows
128+
(item file-section, embargo badge, multi-value form, deposit button,
129+
create-community modal).
130+
2. **Backend pairing**: the backend repo must also be brought to 8.3 (per the
131+
external assessment). Frontend changes here are independent and safe to push,
132+
but production deployment requires the matching backend.
133+
3. **Stale theme overrides** (informational): the `edit-collection-selector`,
134+
`edit-community-selector`, `create-collection-parent-selector` overrides in
135+
both `themes/custom/` and `themes/datashare/` still point at the generic
136+
`dso-selector-modal-wrapper.component.html` (using `<ds-dso-selector>`).
137+
They compile fine but no longer mirror upstream's specific per-modal
138+
templates. **Inherited from upstream UoE 8.3, not introduced here.**
139+
Worth a follow-up if visual parity with vanilla 8.3 is desired.
140+
4. **`ng2-file-upload@9.0.0`** declares `@angular/core ^20.0.0` as a peer
141+
dependency; we run on Angular 17. Currently a warning only — re-evaluate
142+
when DSpace ships an Angular upgrade.
143+
5. **File preview** (CSV / scientific formats) is still a documented functional
144+
gap inherited from DSpace 6 — out of scope for 8.2 → 8.3.
145+
6. **README**: the upstream `README.md` is left unchanged to stay diff-friendly
146+
against vanilla DSpace; this `UPGRADE-8.3.md` carries the upgrade log.
147+
148+
---
149+
150+
## 7. Final Confirmation
151+
152+
- All work is on branch **`uoe/upgrade-to-83`** only.
153+
- Backup tag **`backup/pre-8.3-merge-before`** points at the pre-upgrade tip.
154+
- Push: `git push origin uoe/upgrade-to-83` (no other branch, no force-push).

0 commit comments

Comments
 (0)