Skip to content

Commit 5de30a5

Browse files
committed
Manage JS frontend libraries with yarn
Either Composer managed those before, or those were checked into git. Now we track those with `yarn`: - Coloris - JQuery debounce - Monaco editor - Bootstrap-toggle - File-saver - d3 - nvd3 - Select2 D3 has a newer release but we can't upgrade because of the nvd3 which needs this specific Major version.
1 parent 1357a11 commit 5de30a5

File tree

131 files changed

+131
-54325
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

131 files changed

+131
-54325
lines changed

.github/jobs/baseinstall.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ composer install --no-scripts |tee "$ARTIFACTS"/composer_out.txt
2828
cd ..
2929
section_end
3030

31+
section_start "Install JS frontend dependencies"
32+
cd webapp
33+
apt-get update; apt-get install -y yarnpkg
34+
yarnpkg install
35+
cd ..
36+
section_end
37+
3138
section_start "Set simple admin password"
3239
echo "password" > ./etc/initial_admin_password.secret
3340
echo "default login admin password password" > ~/.netrc

.github/workflows/codeql-analysis.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@ jobs:
4242
cd webapp
4343
composer install --no-scripts
4444
45+
- name: Install frontend dependencies
46+
if: ${{ contains(env.COMPILED, matrix.language) }}
47+
run: |
48+
cd webapp
49+
yarnpkg install
50+
4551
- name: Configure Makefile
4652
if: ${{ contains(env.COMPILED, matrix.language) }}
4753
run: |

Makefile

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export TOPDIR = $(shell pwd)
66

77
REC_TARGETS=build domserver install-domserver judgehost install-judgehost \
88
docs install-docs inplace-install inplace-uninstall maintainer-conf \
9-
maintainer-install composer-dependencies composer-dependencies-dev
9+
maintainer-install dependencies dependencies-dev
1010

1111
# Global Makefile definitions
1212
include $(TOPDIR)/Makefile.global
@@ -54,7 +54,7 @@ docs: paths.mk config
5454
install-domserver: domserver domserver-create-dirs
5555
install-judgehost: judgehost judgehost-create-dirs
5656
install-docs: docs-create-dirs
57-
dist: configure composer-dependencies
57+
dist: configure dependencies
5858

5959
domserver-configure:
6060
ifneq "$(DOMSERVER_BUILD_ENABLED)" "yes"
@@ -98,8 +98,8 @@ dist: SUBDIRS= lib sql misc-tools
9898
clean: SUBDIRS=etc doc lib sql judge misc-tools webapp
9999
distclean: SUBDIRS=etc doc lib sql judge misc-tools webapp
100100
maintainer-clean: SUBDIRS=etc doc lib sql judge misc-tools webapp
101-
composer-dependencies: SUBDIRS= webapp
102-
composer-dependencies-dev: SUBDIRS= webapp
101+
dependencies: SUBDIRS= webapp
102+
dependencies-dev: SUBDIRS= webapp
103103

104104
domserver-create-dirs:
105105
$(INSTALL_DIR) $(addprefix $(DESTDIR),$(domserver_dirs))
@@ -191,8 +191,8 @@ paths.mk:
191191
@exit 1
192192

193193
# Configure for running in source tree, not meant for normal use:
194-
maintainer-conf: inplace-conf-common composer-dependencies-dev
195-
inplace-conf: inplace-conf-common composer-dependencies
194+
maintainer-conf: inplace-conf-common dependencies-dev
195+
inplace-conf: inplace-conf-common dependencies
196196
inplace-conf-common: dist
197197
./configure $(subst 1,-q,$(QUIET)) --prefix=$(CURDIR) \
198198
--with-domserver_root=$(CURDIR) \
@@ -385,5 +385,4 @@ clean-autoconf:
385385
.PHONY: $(addsuffix -create-dirs,domserver judgehost docs) check-root \
386386
$(addprefix inplace-,conf conf-common install uninstall) \
387387
$(addprefix maintainer-,conf install) clean-autoconf config distdocs \
388-
composer-dependencies composer-dependencies-dev \
389-
coverity-conf coverity-build
388+
dependencies dependencies-dev coverity-conf coverity-build

doc/manual/develop.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@ already listed under
4141

4242
sudo apt install autoconf automake bats \
4343
python3-sphinx python3-sphinx-rtd-theme fontconfig python3-yaml \
44-
latexmk texlive-latex-recommended texlive-latex-extra tex-gyre
44+
latexmk yarnpkg texlive-latex-recommended texlive-latex-extra tex-gyre
4545

4646
For Fedora use::
4747

4848
sudo dnf install git autoconf automake bats \
49-
sphinx-build python3-sphinx_rtd_theme latexmk texlive-cmap \
49+
sphinx-build python3-sphinx_rtd_theme latexmk yarnpkg texlive-cmap \
5050
texlive-metafont texlive-tex-gyre texlive-fncychap texlive-wrapfig \
5151
texlive-capt-of texlive-framed texlive-upquote texlive-needspace \
5252
texlive-tabulary texlive-parskip texlive-oberdiek texlive-makeindex \

etc/domserver-static.php.in

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88
define('DOMJUDGE_VERSION', '@DOMJUDGE_VERSION@');
99
define('DOMJUDGE_INSTALL_METHOD', '@INSTALL_METHOD@');
1010

11-
define('BINDIR', '@domserver_bindir@');
12-
define('ETCDIR', '@domserver_etcdir@');
13-
define('WEBAPPDIR', '@domserver_webappdir@');
14-
define('LIBDIR', '@domserver_libdir@');
15-
define('SQLDIR', '@domserver_sqldir@');
16-
define('VENDORDIR', '@domserver_webappdir@/vendor');
17-
define('LOGDIR', '@domserver_logdir@');
18-
define('RUNDIR', '@domserver_rundir@');
19-
define('TMPDIR', '@domserver_tmpdir@');
11+
define('BINDIR', '@domserver_bindir@');
12+
define('ETCDIR', '@domserver_etcdir@');
13+
define('WEBAPPDIR', '@domserver_webappdir@');
14+
define('LIBDIR', '@domserver_libdir@');
15+
define('SQLDIR', '@domserver_sqldir@');
16+
define('VENDORDIR', '@domserver_webappdir@/vendor');
17+
define('NODEMODULESDIR', '@domserver_webappdir@/node_modules');
18+
define('LOGDIR', '@domserver_logdir@');
19+
define('RUNDIR', '@domserver_rundir@');
20+
define('TMPDIR', '@domserver_tmpdir@');
2021

21-
define('BASEURL', '@BASEURL@');
22+
define('BASEURL', '@BASEURL@');

webapp/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
/var/log/*
99
!var/log/.gitkeep
1010
/vendor/
11+
/node_modules/
1112

1213
###> phpunit/phpunit ###
1314
/phpunit.xml

webapp/Makefile

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ SUBDIRS = config
1111

1212
domserver: composer-dump-autoload
1313

14+
dependencies: composer-dependencies node-dependencies
15+
1416
# Install PHP dependencies
1517
composer-dependencies:
1618
ifeq (, $(shell command -v composer 2> /dev/null))
@@ -20,6 +22,8 @@ endif
2022
# not generated yet, which is needed to run the post-install scripts.
2123
composer $(subst 1,-q,$(QUIET)) install --prefer-dist -o -a --no-scripts --no-plugins
2224

25+
dependencies-dev: composer-dependencies-dev node-dependencies
26+
2327
composer-dependencies-dev:
2428
composer $(subst 1,-q,$(QUIET)) install --prefer-dist --no-scripts --no-plugins
2529

@@ -36,6 +40,13 @@ vendor/autoload_runtime.php:
3640
composer-dump-autoload-dev:
3741
composer $(subst 1,-q,$(QUIET)) dump-autoload
3842

43+
node-dependencies:
44+
ifeq (, $(shell command -v yarn || command -v yarnpkg 2> /dev/null))
45+
$(error "neither 'yarnpkg' nor 'yarn' command found in $(PATH), install it via your package manager or https://yarnpkg.com/cli/node")
46+
endif
47+
@YARN_CMD=$(shell command -v yarn || command -v yarnpkg); \
48+
$$YARN_CMD install
49+
3950
# Run Symfony in dev mode (for maintainer-mode):
4051
.env.local:
4152
@echo "Creating file '$@'..."
@@ -58,7 +69,7 @@ install-domserver:
5869
# This must be done first to install with the rest.
5970
$(MAKE) copy-bundle-assets
6071
$(INSTALL_DIR) $(DESTDIR)$(domserver_webappdir);
61-
for d in bin config migrations public resources src templates tests vendor; do \
72+
for d in bin config migrations public resources src templates tests vendor node_modules; do \
6273
$(call install_tree,$(DESTDIR)$(domserver_webappdir),$$d) ; \
6374
done
6475
# Add Symlink to Symfony console that is in the standard path
@@ -78,5 +89,5 @@ maintainer-clean-l:
7889
done ; \
7990
done
8091

81-
.PHONY: composer-dump-autoload composer-dump-autoload-dev \
82-
copy-bundle-assets
92+
.PHONY: composer-dump-autoload composer-dump-autoload-dev copy-bundle-assets \
93+
composer-dependencies composer-dependencies-dev node-dependencies

webapp/composer.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,24 +63,20 @@
6363
"doctrine/doctrine-fixtures-bundle": "^4.0",
6464
"doctrine/doctrine-migrations-bundle": "^3.2",
6565
"doctrine/orm": "^2.14",
66-
"eligrey/filesaver": "2.*",
6766
"enshrined/svg-sanitize": "^0.22.0",
6867
"fortawesome/font-awesome": "6.*",
6968
"friendsofsymfony/rest-bundle": "^3.5",
7069
"ircmaxell/password-compat": "*",
7170
"jms/serializer-bundle": "^5.2",
7271
"knplabs/knp-paginator-bundle": "^6.6",
7372
"league/commonmark": "^2.3",
74-
"mbostock/d3": "^3.5",
7573
"nelmio/api-doc-bundle": "^5.0",
7674
"nelmio/cors-bundle": "^2.4",
77-
"novus/nvd3": "^1.8",
7875
"phpdocumentor/reflection-docblock": "^5.3",
7976
"phpstan/phpdoc-parser": "^2.0",
8077
"promphp/prometheus_client_php": "^2.6",
8178
"ramsey/uuid": "^4.2",
8279
"riverline/multipart-parser": "^2.1",
83-
"select2/select2": "4.*",
8480
"sentry/sentry-symfony": "^5.0",
8581
"symfony/asset": "6.4.*",
8682
"symfony/browser-kit": "6.4.*",

webapp/composer.lock

Lines changed: 1 addition & 148 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

webapp/config/static.yaml.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ parameters:
99
domjudge.libdir: @domserver_libdir@
1010
domjudge.sqldir: @domserver_sqldir@
1111
domjudge.vendordir: @domserver_webappdir@/vendor
12+
domjudge.nodemodulesdir: @domserver_webappdir@/node_modules
1213
domjudge.logdir: @domserver_logdir@
1314
domjudge.rundir: @domserver_rundir@
1415
domjudge.tmpdir: @domserver_tmpdir@

0 commit comments

Comments
 (0)