* Use Python 3.11
* Run pyupgrade with Python 3.11+
* Update pyupgrade to latest version
* Update Celery and python-dateutil
Celery is not compatible with Python 3.11, leading to test failures. Need to update also python-dateutil to install the latest version.
* Add dir=ltr and style=white-space:pre to syntax
* Limit dir=ltr to explicitly known node names
* Fix directionality in nested contexts (e.g. tag -> quoted value -> placeholder)
* Update CodeMirror dependencies
* Use new EditorView.bidiIsolatedRanges
* Refactor decorator plugin to iterate tree only once
* Update all JS CI actions to use Node.js 18
* Update CodeMirror dependencies again
* Drop "unicode-bidi: isolate" style as unnecessary given the dir attribute
* Fix padding in editor for left/right scrolling
* Update to compare-locales 9.0.1, fluent-syntax 0.19.0, pip-tools 6.13.0
The transitive dependency typing-extensions is also updated to 4.5.0
* ci: Use codecov action rather than the removed/deprecated pypi & npm packages
* chore: Specify TS typings better (no JS changes)
* fix: Use the right null/undefined, and assume less about possibly undefined values
* refactor: Simplify core/utils/fluent/{extractAccessKeyCandidates,getSimplePreview}, dropping lodash.flattendeep dependency
* refactor: core/l10n/pseudolocalization
* refactor: New code, same external behaviour
* fix(AddComment): Serialize mentions without url using their contents
* fix(EntityDetails): Do not try to update status if selectedEntity is undefined
* chore: Use @ts-ignore for configureStore() & react-linkify import
* chore: Set strict:true in tsonfig.json
* ci: Drop ts-strict test & check-tsc action as superfluous
* Apply suggestions from code review
Co-authored-by: Axel Hecht <axel@pike.org>
* 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
* Pre-flight flow to ts
* Automatically convert non-test code to TypeScript with flow-to-ts.
Manually clean up the diff, address the known @ts-expect-errors.
* Use internal Slate types in AddComments
* Make build and eslint work
* Remove TypeScript workflow
* Remove flow from documentation and build/automation
* Fix eslint job in automation
* Enable type checking again, with an entry point to get all errors.
There were some problems with the intermediate configuration, which
didn't report errors at all. This one works, both on tsc and yarn build.
Sadly, yarn build only reports one error, so I'm hooking up tsc
independently to get the full list of errors.
* Remove more flow traces
* Remove flowisms from js tests
* Cleanup on diff of top-level sources files
* Remove flow-related comments and docs
* Remove flow-isms from eslint config
* Make optional args and types a tad stricter for simple cases.
See also https://www.typescriptlang.org/docs/handbook/2/functions.html#optional-parameters
for why optional args are type | undefined by default.
* Update for slatejs update
* Fix prettier automation and formatting
* Various typing fixes related to React, incl. AbstractComponent > ComponentType
* Use React.Element instead of React.Node for JSX elements
* Narrow types when using Event.target, or use currentTarget. When using Event.target, we don't know which kind of element the event is coming from from the typing system. Thus, explicitly narrow the types to the ones we have in practice if we rely on them. Or use currentTarget, which type we know.
* Bug 1697462, update node dependencies
* Update babel and eslint
* Fix more references to lint-frontend
* Get make test to work again
* npm update
* yarn upgrade
* browserslist --update-db
* yarn upgrade react-scripts --latest
* Remove last Translate.Next in Makefile
* yarn upgrade tlds --latest
* yarn upgrade sinon --latest
* yarn upgrade enzyme-adapter-react-16 --latest
* Use yarn in workflow to stick to pinned versions
* Install top-level, too, as that has @babel/eslint-parser
* Bump diff file limit to make diff work.
* Prettified version from flow-to-ts strips newlines - move the prettier call separate.
* Rewire prettier to ts(x) in frontend.
Also:
* Refactor requirements to allow only linting reqs to be installed.
* Expose requirements to docker, so pip-compile can be run there.
* Remove codecov dependency in docker container
* Add coverage for frontend