Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
a196b02
chore: migrate package.json to frontend-base (Phase 1)
arbrandes Apr 20, 2026
e812b0d
chore: build/tool config for frontend-base (Phase 2)
arbrandes Apr 20, 2026
369aa20
chore: rewrite source imports to @openedx/frontend-base (Phase 3)
arbrandes Apr 20, 2026
e32d3ce
chore: convert source to TypeScript (Phase 3.5)
arbrandes Apr 20, 2026
7c47255
chore: split entry into App config + re-exports (Phase 4)
arbrandes Apr 20, 2026
9b36be7
refactor: port notifications data layer to @tanstack/react-query v5 (…
arbrandes Apr 20, 2026
ca48e34
chore: add dev/test site configs and app.scss (Phase 5)
arbrandes Apr 20, 2026
3d7c6a7
chore: drop unused PNG test mock (Phase 6)
arbrandes Apr 20, 2026
07562b9
chore: re-export generated i18n messages (Phase 7)
arbrandes Apr 20, 2026
5f74319
chore: add turbo.site.json and nodemon.json (Phase 8)
arbrandes Apr 20, 2026
69a6eb1
feat: wire NotificationsTray into frontend-base header (Phase 9)
arbrandes Apr 20, 2026
ccdedf3
chore: mark migration as a breaking change
arbrandes Apr 20, 2026
c8a1ab2
chore: Phase 10 housekeeping for the rename
arbrandes Apr 20, 2026
875f1b1
feat: resolve account settings URL via route role (Phase 11)
arbrandes Apr 20, 2026
d54c065
feat: add stateful dev mocks for notifications
arbrandes Apr 20, 2026
f178098
fix: align tourName filter with checkpoint lookup key
arbrandes Apr 20, 2026
bdbf428
chore: transfer repo ownership to axim-engineering
arbrandes Apr 20, 2026
ef52931
chore: release frontend-base branch only from its own workflow
arbrandes Apr 20, 2026
2cac53f
fix: export App as named `notificationsApp`
arbrandes Apr 20, 2026
9817aec
chore: drop unused eslint-disable directive in dev entry
arbrandes Apr 20, 2026
b0c3e73
fix: adopt frontend-base shell style manifest
arbrandes Apr 21, 2026
97ca175
chore: add build:ci smoke test to verify webpack build
arbrandes Apr 22, 2026
fa95c31
fix: place desktop bell before the secondary-nav cluster (#112)
brian-smith-tcril Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions .env

This file was deleted.

23 changes: 0 additions & 23 deletions .env.development

This file was deleted.

21 changes: 0 additions & 21 deletions .env.test

This file was deleted.

7 changes: 0 additions & 7 deletions .eslintignore

This file was deleted.

15 changes: 0 additions & 15 deletions .eslintrc.js

This file was deleted.

3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ on:
push:
branches:
- "main"
- "frontend-base"
pull_request:
branches:
- "**"
Expand All @@ -27,5 +28,7 @@ jobs:
run: npm run test
- name: Build
run: npm run build
- name: Build (CI)
run: npm run build:ci
- name: i18n_extract
run: npm run i18n_extract
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Release CI
on:
push:
branches:
- main
- frontend-base

permissions:
contents: read # for checkout
Expand Down
18 changes: 10 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
.DS_Store
.eslintcache
.idea
node_modules
npm-debug.log
coverage
module.config.js
env.config.js*

dist/
packages/
/.turbo
/turbo.json
/*.tgz

### i18n ###
src/i18n/transifex_input.json
temp/babel-plugin-react-intl
src/i18n/messages.ts
src/i18n/messages/

### Editors ###
.DS_Store
*~
/temp
/.vscode
/.idea
11 changes: 0 additions & 11 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,12 +1 @@
.eslintignore
.eslintrc.json
.gitignore
.travis.yml
docker-compose.yml
Dockerfile
Makefile
npm-debug.log

coverage
node_modules
public
30 changes: 7 additions & 23 deletions .releaserc
Original file line number Diff line number Diff line change
@@ -1,29 +1,13 @@
{
"branches": [
"main"
"main",
{ "name": "frontend-base", "prerelease": "alpha", "channel": "latest" }
],
"tagFormat": "v${version}",
"verifyConditions": [
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/npm",
{
"path": "@semantic-release/github",
"assets": {
"path": "dist/*"
}
}
],
"analyzeCommits": "@semantic-release/commit-analyzer",
"generateNotes": "@semantic-release/release-notes-generator",
"prepare": "@semantic-release/npm",
"publish": [
"@semantic-release/npm",
{
"path": "@semantic-release/github",
"assets": {
"path": "dist/*"
}
}
],
"success": [],
"fail": []
"@semantic-release/github"
]
}
88 changes: 47 additions & 41 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,54 +1,60 @@
intl_imports = ./node_modules/.bin/intl-imports.js
transifex_utils = ./node_modules/.bin/transifex-utils.js
i18n = ./src/i18n
transifex_input = $(i18n)/transifex_input.json

# This directory must match .babelrc .
transifex_temp = ./temp/babel-plugin-formatjs

build:
rm -rf ./dist
./node_modules/.bin/fedx-scripts babel src --out-dir dist --source-maps --ignore **/*.test.jsx,**/*.test.js,**/setupTest.jsx --copy-files
@# --copy-files will bring in everything else that wasn't processed by babel. Remove what we don't want.
@find dist -name '*.test.js*' -delete
cp ./package.json ./dist/package.json
cp ./LICENSE ./dist/LICENSE
cp ./README.rst ./dist/README.rst

precommit:
npm run lint
npm audit
TURBO = TURBO_TELEMETRY_DISABLED=1 turbo --dangerously-disable-package-manager-check

.PHONY: requirements
requirements:
npm ci

clean:
rm -rf dist

build:
tsc --project tsconfig.build.json
find src -type f \( -name '*.scss' -o -path '*/assets/*' \) -exec sh -c '\
for f in "$$@"; do \
d="dist/$${f#src/}"; \
mkdir -p "$$(dirname "$$d")"; \
cp "$$f" "$$d"; \
done' sh {} +
tsc-alias -p tsconfig.build.json

build-ci:
SITE_CONFIG_PATH=site.config.ci.tsx openedx build

# turbo.site.json is the standalone turbo config for this package. It is
# renamed to avoid conflicts with turbo v2's workspace validation, which
# rejects root task syntax (//#) and requires "extends" in package-level
# turbo.json files, such as when running in a site repository. The targets
# below copy it into place before running turbo and clean up after.
turbo.json: turbo.site.json
cp $< $@

# NPM doesn't bin-link workspace packages during install, so it must be done manually.
bin-link:
[ -f packages/frontend-base/package.json ] && npm rebuild --ignore-scripts @openedx/frontend-base || true

build-packages: turbo.json
$(TURBO) run build; rm -f turbo.json
$(MAKE) bin-link

clean-packages: turbo.json
$(TURBO) run clean; rm -f turbo.json

dev-packages: build-packages turbo.json
$(TURBO) run watch:build dev:site; rm -f turbo.json

dev-site: bin-link
npm run dev

i18n.extract:
# Pulling display strings from .jsx files into .json files...
rm -rf $(transifex_temp)
npm run-script i18n_extract

i18n.concat:
# Gathering JSON messages into one file...
$(transifex_utils) $(transifex_temp) $(transifex_input)
extract_translations: | requirements i18n.extract

extract_translations: | requirements i18n.extract i18n.concat
pull_translations: | requirements
npm run translations:pull -- --atlas-options="$(ATLAS_OPTIONS)"

# Despite the name, we actually need this target to detect changes in the incoming translated message files as well.
detect_changed_source_translations:
# Checking for changed translations...
git diff --exit-code $(i18n)

# Pulls translations using atlas.
pull_translations:
mkdir src/i18n/messages
cd src/i18n/messages \
&& atlas pull $(ATLAS_OPTIONS) \
translations/frontend-platform/src/i18n/messages:frontend-platform \
translations/paragon/src/i18n/messages:paragon \
translations/frontend-plugin-notifications/src/i18n/messages:frontend-plugin-notifications

$(intl_imports) frontend-platform paragon frontend-plugin-notifications
git diff --exit-code ./src/i18n

validate-no-uncommitted-package-lock-changes:
# Checking for package-lock.json changes...
git diff --exit-code package-lock.json
Loading