TLDR: Good riddance!
1. First and foremost, this patch replaces the unusual widget for selecting tag resources in Pontoon Admin with the multiple item selector that is more commonly used in Pontoon.
2. Secondly, the last bits of the old Tags Django code are now finally removed. It should now be much simpler to fix issues like #2122 and #2131.
3. Finally, the odd tag-admin frontend, which was only powering the old widget for selecting tag resources in Pontoon Admin, is now removed.
In total, the same (actually, I think it's much better) functionality uses some 95% smaller footprint.
Also included are a few smaller Pontoon Admin improvements:
- Unify dropdown style with the rest of the UI
- Use native date selector widget for target date
- Fix large margin in the external resources form
- Make multi item selector widget more semantic, which fixes the second part of #3368.
* feat!(frontend): Drop react-scripts
* chore(frontend): Add missing dependency on escape-html
* refactor(frontend): Use ~ to prefix paths from src/ root
* chore(frontend): Add & configure jest & ts-jest
* chore(frontend): Fix bugs & tests revealed by updated jest, skipping EntityDetails
* chore(frontend): Add ESLint as explicit dev dependency; satisfy linter
* chore(frontend): Clean up dependencies, using caret ^ range for all
* chore(frontend): Switch from yarn to npm & configure as a workspace
Prettier & ESLint dependencies are now defined in the root package.json
Changing package management means that many path & minor updates are
simultaneously applied via the caret ^ ranges.
The local/pontoon-frontend Docker image now uses node:16 as a base
and /app/frontend rather than /frontend for its contents & workdir,
in order to accommodate the changed topography.
* chore: Collect devDependencies in root package.json
* chore(tag-admin): Move Babel config to repo root
* feat(frontend): Adjust public/ for being served as Django static files
* chore(frontend): Add build with Rollup
* feat(pontoon): Drop frontend proxy, server static files normally, add pipeline for frontend
* chore(server): Add dependencies via pontoon/package.json; clean up Dockerfile
* chore: Add build:prod targets for frontend & tag-admin
frontend image droapped from Dockerfile as unused
styled-components updated to v5 to avoid a broken import in v4.
* chore: Add watch targets for workspaces & root, using concurrently
* chore: Code review & CI-identified fixes
* chore: Refresh lockfiles, dropping frontend/yaml.lock
* chore: Add /bin/watch.sh to watch all builds; refactor `make run`
* ci: Fix frontend TS test CLI args due to yarn -> npm change
* chore: Use `npm start` rather than `npm run watch`
* chore(pontoon): Mark django-pipeline JS dependencies as devDependencies
* refactor: Rename frontend/ as translate/
* Move tag-admin sources & tests to /tag-admin/src/
Import paths are modified to use relative, fully qualified file names.
* Configure tag-admin as an npm workspace
* Fix build & CI issues
Consistently call 'npm ci' and 'npm run build' where appropriate
* Apply lint & style rules to tag-admin/webpack.config.js
* Fix permissions for /tag-admin/ in Dockerfile
* ci: Rename "non-frontend-js" action as "tag-admin"
* docs(tag-admin): Add README