aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.drone.yml462
-rw-r--r--Makefile6
-rw-r--r--tests/mysql.ini.tmpl25
-rw-r--r--tests/pgsql.ini.tmpl21
4 files changed, 364 insertions, 150 deletions
diff --git a/.drone.yml b/.drone.yml
index d1ad625e3..0e1d79983 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -32,6 +32,7 @@ steps:
pull: always
commands:
- make deps-backend
+ - make deps-tools
volumes:
- name: deps
path: /go
@@ -168,7 +169,7 @@ steps:
---
kind: pipeline
type: docker
-name: testing-amd64
+name: testing-pgsql
platform:
os: linux
@@ -191,51 +192,26 @@ volumes:
temp: {}
services:
- - name: mysql
- image: mysql:5.7
- pull: always
- environment:
- MYSQL_ALLOW_EMPTY_PASSWORD: yes
- MYSQL_DATABASE: test
-
- - name: mysql8
- image: mysql:8
- pull: always
- environment:
- MYSQL_ALLOW_EMPTY_PASSWORD: yes
- MYSQL_DATABASE: testgitea
-
- - name: mssql
- image: mcr.microsoft.com/mssql/server:latest
- pull: always
+ - name: pgsql
+ pull: default
+ image: postgres:15
environment:
- ACCEPT_EULA: Y
- MSSQL_PID: Standard
- SA_PASSWORD: MwantsaSecurePassword1
+ POSTGRES_DB: test
+ POSTGRES_PASSWORD: postgres
- name: ldap
image: gitea/test-openldap:latest
pull: always
- - name: elasticsearch
- image: elasticsearch:7.5.0
- pull: always
- environment:
- discovery.type: single-node
-
- name: minio
image: minio/minio:RELEASE.2021-03-12T00-00-47Z
pull: always
commands:
- - minio server /data
+ - minio server /data
environment:
MINIO_ACCESS_KEY: 123456
MINIO_SECRET_KEY: 12345678
- - name: smtpimap
- image: tabascoterrier/docker-imap-devel:latest
- pull: always
-
steps:
- name: fetch-tags
image: docker:git
@@ -257,12 +233,6 @@ steps:
- name: deps
path: /go
- - name: tag-pre-condition
- image: drone/git
- pull: always
- commands:
- - git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA}
-
- name: prepare-test-env
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
pull: always
@@ -278,88 +248,157 @@ steps:
environment:
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
GOSUMDB: sum.golang.org
- TAGS: bindata sqlite sqlite_unlock_notify
+ TAGS: bindata
depends_on: [deps-backend, prepare-test-env]
volumes:
- name: deps
path: /go
- - name: unit-test
+ - name: test-pgsql
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
user: gitea
commands:
- - make unit-test-coverage test-check
+ - timeout -s ABRT 50m make test-pgsql-migration test-pgsql
environment:
GOPROXY: https://goproxy.io
- TAGS: bindata sqlite sqlite_unlock_notify
+ TAGS: bindata gogit
RACE_ENABLED: true
- GITHUB_READ_TOKEN:
- from_secret: github_read_token
- depends_on: [deps-backend, prepare-test-env]
+ TEST_TAGS: gogit
+ TEST_LDAP: 1
+ USE_REPO_TEST_DIR: 1
+ depends_on: [build]
volumes:
- name: deps
path: /go
- - name: unit-test-gogit
+---
+kind: pipeline
+type: docker
+name: testing-mysql
+
+platform:
+ os: linux
+ arch: amd64
+
+depends_on:
+ - compliance
+
+trigger:
+ event:
+ - push
+ - tag
+ - pull_request
+ paths:
+ exclude:
+ - docs/**
+
+volumes:
+ - name: deps
+ temp: {}
+
+services:
+ - name: mysql
+ image: mysql:5.7
+ pull: always
+ environment:
+ MYSQL_ALLOW_EMPTY_PASSWORD: yes
+ MYSQL_DATABASE: test
+
+ - name: elasticsearch
+ image: elasticsearch:7.5.0
+ pull: always
+ environment:
+ discovery.type: single-node
+
+ - name: smtpimap
+ image: tabascoterrier/docker-imap-devel:latest
+ pull: always
+
+steps:
+ - name: fetch-tags
+ image: docker:git
+ pull: always
+ commands:
+ - git config --global --add safe.directory /drone/src
+ - git fetch --tags --force
+ when:
+ event:
+ exclude:
+ - pull_request
+
+ - name: deps-backend
+ image: golang:1.20
+ pull: always
+ commands:
+ - make deps-backend
+ volumes:
+ - name: deps
+ path: /go
+
+ - name: prepare-test-env
+ image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
+ pull: always
+ commands:
+ - ./build/test-env-prepare.sh
+
+ - name: build
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
user: gitea
commands:
- - make unit-test-coverage test-check
+ - ./build/test-env-check.sh
+ - make backend
environment:
- GOPROXY: https://goproxy.io
- TAGS: bindata gogit sqlite sqlite_unlock_notify
- RACE_ENABLED: true
- GITHUB_READ_TOKEN:
- from_secret: github_read_token
+ GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
+ GOSUMDB: sum.golang.org
+ TAGS: bindata
depends_on: [deps-backend, prepare-test-env]
volumes:
- name: deps
path: /go
- - name: test-mysql
+ - name: unit-test
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
user: gitea
commands:
- - make test-mysql-migration integration-test-coverage
+ - make unit-test-coverage test-check
environment:
GOPROXY: https://goproxy.io
TAGS: bindata
RACE_ENABLED: true
- TEST_LDAP: 1
- USE_REPO_TEST_DIR: 1
- TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200"
- depends_on: [build]
+ GITHUB_READ_TOKEN:
+ from_secret: github_read_token
+ depends_on: [deps-backend, prepare-test-env]
volumes:
- name: deps
path: /go
- - name: test-mysql8
+ - name: unit-test-gogit
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
user: gitea
commands:
- - timeout -s ABRT 50m make test-mysql8-migration test-mysql8
+ - make unit-test-coverage test-check
environment:
GOPROXY: https://goproxy.io
- TAGS: bindata
+ TAGS: bindata gogit
RACE_ENABLED: true
- TEST_LDAP: 1
- USE_REPO_TEST_DIR: 1
- depends_on: [build]
+ GITHUB_READ_TOKEN:
+ from_secret: github_read_token
+ depends_on: [deps-backend, prepare-test-env]
volumes:
- name: deps
path: /go
- - name: test-mssql
+ - name: test-mysql
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
user: gitea
commands:
- - make test-mssql-migration test-mssql
+ - make test-mysql-migration integration-test-coverage
environment:
GOPROXY: https://goproxy.io
TAGS: bindata
RACE_ENABLED: true
- TEST_LDAP: 1
USE_REPO_TEST_DIR: 1
+ TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200"
depends_on: [build]
volumes:
- name: deps
@@ -398,11 +437,12 @@ steps:
---
kind: pipeline
-name: testing-arm64
+type: docker
+name: testing-mysql8
platform:
os: linux
- arch: arm64
+ arch: amd64
depends_on:
- compliance
@@ -421,16 +461,102 @@ volumes:
temp: {}
services:
- - name: pgsql
- pull: default
- image: postgres:10
+ - name: mysql8
+ image: mysql:8
+ pull: always
environment:
- POSTGRES_DB: test
- POSTGRES_PASSWORD: postgres
+ MYSQL_ALLOW_EMPTY_PASSWORD: yes
+ MYSQL_DATABASE: testgitea
- - name: ldap
- pull: default
- image: gitea/test-openldap:latest
+steps:
+ - name: fetch-tags
+ image: docker:git
+ pull: always
+ commands:
+ - git config --global --add safe.directory /drone/src
+ - git fetch --tags --force
+ when:
+ event:
+ exclude:
+ - pull_request
+
+ - name: deps-backend
+ image: golang:1.20
+ pull: always
+ commands:
+ - make deps-backend
+ volumes:
+ - name: deps
+ path: /go
+
+ - name: prepare-test-env
+ image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
+ pull: always
+ commands:
+ - ./build/test-env-prepare.sh
+
+ - name: build
+ image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
+ user: gitea
+ commands:
+ - ./build/test-env-check.sh
+ - make backend
+ environment:
+ GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
+ GOSUMDB: sum.golang.org
+ TAGS: bindata
+ depends_on: [deps-backend, prepare-test-env]
+ volumes:
+ - name: deps
+ path: /go
+
+ - name: test-mysql8
+ image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
+ user: gitea
+ commands:
+ - timeout -s ABRT 50m make test-mysql8-migration test-mysql8
+ environment:
+ GOPROXY: https://goproxy.io
+ TAGS: bindata
+ USE_REPO_TEST_DIR: 1
+ depends_on: [build]
+ volumes:
+ - name: deps
+ path: /go
+
+---
+kind: pipeline
+type: docker
+name: testing-mssql
+
+platform:
+ os: linux
+ arch: amd64
+
+depends_on:
+ - compliance
+
+trigger:
+ event:
+ - push
+ - tag
+ - pull_request
+ paths:
+ exclude:
+ - docs/**
+
+volumes:
+ - name: deps
+ temp: {}
+
+services:
+ - name: mssql
+ image: mcr.microsoft.com/mssql/server:latest
+ pull: always
+ environment:
+ ACCEPT_EULA: Y
+ MSSQL_PID: Standard
+ SA_PASSWORD: MwantsaSecurePassword1
steps:
- name: fetch-tags
@@ -454,13 +580,13 @@ steps:
path: /go
- name: prepare-test-env
- image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
+ image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
pull: always
commands:
- ./build/test-env-prepare.sh
- name: build
- image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
+ image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
user: gitea
commands:
- ./build/test-env-check.sh
@@ -468,39 +594,102 @@ steps:
environment:
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
GOSUMDB: sum.golang.org
- TAGS: bindata gogit sqlite sqlite_unlock_notify
+ TAGS: bindata
depends_on: [deps-backend, prepare-test-env]
volumes:
- name: deps
path: /go
- - name: test-sqlite
- image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
+ - name: test-mssql
+ image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
user: gitea
commands:
- - timeout -s ABRT 50m make test-sqlite-migration test-sqlite
+ - make test-mssql-migration test-mssql
environment:
GOPROXY: https://goproxy.io
- TAGS: bindata gogit sqlite sqlite_unlock_notify
- RACE_ENABLED: true
- TEST_TAGS: gogit sqlite sqlite_unlock_notify
+ TAGS: bindata
USE_REPO_TEST_DIR: 1
depends_on: [build]
volumes:
- name: deps
path: /go
- - name: test-pgsql
+---
+kind: pipeline
+name: testing-sqlite
+
+platform:
+ os: linux
+ arch: arm64
+
+depends_on:
+ - compliance
+
+trigger:
+ event:
+ - push
+ - tag
+ - pull_request
+ paths:
+ exclude:
+ - docs/**
+
+volumes:
+ - name: deps
+ temp: {}
+
+steps:
+ - name: fetch-tags
+ image: docker:git
+ pull: always
+ commands:
+ - git config --global --add safe.directory /drone/src
+ - git fetch --tags --force
+ when:
+ event:
+ exclude:
+ - pull_request
+
+ - name: deps-backend
+ image: golang:1.20
+ pull: always
+ commands:
+ - make deps-backend
+ volumes:
+ - name: deps
+ path: /go
+
+ - name: prepare-test-env
+ image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
+ pull: always
+ commands:
+ - ./build/test-env-prepare.sh
+
+ - name: build
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
user: gitea
commands:
- - timeout -s ABRT 50m make test-pgsql-migration test-pgsql
+ - ./build/test-env-check.sh
+ - make backend
+ environment:
+ GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
+ GOSUMDB: sum.golang.org
+ TAGS: bindata gogit sqlite sqlite_unlock_notify
+ depends_on: [deps-backend, prepare-test-env]
+ volumes:
+ - name: deps
+ path: /go
+
+ - name: test-sqlite
+ image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
+ user: gitea
+ commands:
+ - timeout -s ABRT 50m make test-sqlite-migration test-sqlite
environment:
GOPROXY: https://goproxy.io
- TAGS: bindata gogit
+ TAGS: bindata gogit sqlite sqlite_unlock_notify
RACE_ENABLED: true
- TEST_TAGS: gogit
- TEST_LDAP: 1
+ TEST_TAGS: gogit sqlite sqlite_unlock_notify
USE_REPO_TEST_DIR: 1
depends_on: [build]
volumes:
@@ -530,15 +719,6 @@ volumes:
- name: deps
temp: {}
-services:
- - name: pgsql
- pull: default
- image: postgres:10
- environment:
- POSTGRES_DB: testgitea-e2e
- POSTGRES_PASSWORD: postgres
- POSTGRES_INITDB_ARGS: --encoding=UTF8 --lc-collate='en_US.UTF-8' --lc-ctype='en_US.UTF-8'
-
steps:
- name: deps-frontend
image: node:18
@@ -568,14 +748,12 @@ steps:
- curl -sLO https://go.dev/dl/go1.20.linux-amd64.tar.gz && tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz
- groupadd --gid 1001 gitea && useradd -m --gid 1001 --uid 1001 gitea
- apt-get -qq update && apt-get -qqy install build-essential
- - export TEST_PGSQL_SCHEMA=''
- ./build/test-env-prepare.sh
- - su gitea bash -c "export PATH=$PATH:/usr/local/go/bin && timeout -s ABRT 40m make test-e2e-pgsql"
+ - su gitea bash -c "export PATH=$PATH:/usr/local/go/bin && timeout -s ABRT 40m make test-e2e-sqlite"
environment:
GOPROXY: https://goproxy.io
GOSUMDB: sum.golang.org
USE_REPO_TEST_DIR: 1
- TEST_PGSQL_DBNAME: 'testgitea-e2e'
DEBIAN_FRONTEND: noninteractive
depends_on: [build-frontend, deps-backend]
volumes:
@@ -709,8 +887,11 @@ trigger:
- docs/**
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
volumes:
- name: deps
@@ -842,8 +1023,11 @@ trigger:
- tag
depends_on:
- - testing-arm64
- - testing-amd64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
volumes:
- name: deps
@@ -994,8 +1178,11 @@ platform:
arch: amd64
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
trigger:
ref:
@@ -1064,8 +1251,11 @@ platform:
arch: amd64
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
trigger:
ref:
@@ -1129,8 +1319,11 @@ platform:
arch: amd64
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
trigger:
ref:
@@ -1192,8 +1385,11 @@ platform:
arch: amd64
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
trigger:
ref:
@@ -1292,8 +1488,11 @@ platform:
arch: arm64
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
trigger:
ref:
@@ -1362,8 +1561,11 @@ platform:
arch: arm64
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
trigger:
ref:
@@ -1427,8 +1629,11 @@ platform:
arch: arm64
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
trigger:
ref:
@@ -1493,8 +1698,11 @@ platform:
arch: arm64
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
trigger:
ref:
@@ -1607,7 +1815,6 @@ platform:
steps:
- name: manifest-rootless
- pull: always
image: plugins/manifest
pull: always
settings:
@@ -1671,8 +1878,11 @@ trigger:
- failure
depends_on:
- - testing-amd64
- - testing-arm64
+ - testing-mysql
+ - testing-mysql8
+ - testing-mssql
+ - testing-pgsql
+ - testing-sqlite
- release-version
- release-latest
- docker-linux-amd64-release
diff --git a/Makefile b/Makefile
index 19cd455ab..d770ed453 100644
--- a/Makefile
+++ b/Makefile
@@ -190,6 +190,7 @@ help:
@echo " - deps install dependencies"
@echo " - deps-frontend install frontend dependencies"
@echo " - deps-backend install backend dependencies"
+ @echo " - deps-tools install tool dependencies"
@echo " - lint lint everything"
@echo " - lint-frontend lint frontend files"
@echo " - lint-backend lint backend files"
@@ -821,7 +822,7 @@ docs:
cd docs; make trans-copy clean build-offline;
.PHONY: deps
-deps: deps-frontend deps-backend
+deps: deps-frontend deps-backend deps-tools
.PHONY: deps-frontend
deps-frontend: node_modules
@@ -829,6 +830,9 @@ deps-frontend: node_modules
.PHONY: deps-backend
deps-backend:
$(GO) mod download
+
+.PHONY: deps-tools
+deps-tools:
$(GO) install $(AIR_PACKAGE)
$(GO) install $(EDITORCONFIG_CHECKER_PACKAGE)
$(GO) install $(ERRCHECK_PACKAGE)
diff --git a/tests/mysql.ini.tmpl b/tests/mysql.ini.tmpl
index 1dd7bfab2..b286f37bf 100644
--- a/tests/mysql.ini.tmpl
+++ b/tests/mysql.ini.tmpl
@@ -55,28 +55,6 @@ LFS_START_SERVER = true
LFS_JWT_SECRET = Tv_MjmZuHqpIY6GFl12ebgkRAMt4RlWt0v4EHKSXO0w
SSH_TRUSTED_USER_CA_KEYS = ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCb4DC1dMFnJ6pXWo7GMxTchtzmJHYzfN6sZ9FAPFR4ijMLfGki+olvOMO5Fql1/yGnGfbELQa1S6y4shSvj/5K+zUFScmEXYf3Gcr87RqilLkyk16RS+cHNB1u87xTHbETaa3nyCJeGQRpd4IQ4NKob745mwDZ7jQBH8AZEng50Oh8y8fi8skBBBzaYp1ilgvzG740L7uex6fHV62myq0SXeCa+oJUjq326FU8y+Vsa32H8A3e7tOgXZPdt2TVNltx2S9H2WO8RMi7LfaSwARNfy1zu+bfR50r6ef8Yx5YKCMz4wWb1SHU1GS800mjOjlInLQORYRNMlSwR1+vLlVDciOqFapDSbj+YOVOawR0R1aqlSKpZkt33DuOBPx9qe6CVnIi7Z+Px/KqM+OLCzlLY/RS+LbxQpDWcfTVRiP+S5qRTcE3M3UioN/e0BE/1+MpX90IGpvVkA63ILYbKEa4bM3ASL7ChTCr6xN5XT+GpVJveFKK1cfNx9ExHI4rzYE=
-[lfs]
-MINIO_BASE_PATH = lfs/
-
-[attachment]
-MINIO_BASE_PATH = attachments/
-
-[avatars]
-MINIO_BASE_PATH = avatars/
-
-[repo-avatars]
-MINIO_BASE_PATH = repo-avatars/
-
-[storage]
-STORAGE_TYPE = minio
-SERVE_DIRECT = false
-MINIO_ENDPOINT = minio:9000
-MINIO_ACCESS_KEY_ID = 123456
-MINIO_SECRET_ACCESS_KEY = 12345678
-MINIO_BUCKET = gitea
-MINIO_LOCATION = us-east-1
-MINIO_USE_SSL = false
-
[mailer]
ENABLED = true
MAILER_TYPE = dummy
@@ -122,6 +100,9 @@ INSTALL_LOCK = true
SECRET_KEY = 9pCviYTWSb
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.hhSVGOANkaKk3vfCd2jDOIww4pUk0xtg9JRde5UogyQ
+[lfs]
+PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/data/lfs
+
[packages]
ENABLED = true
diff --git a/tests/pgsql.ini.tmpl b/tests/pgsql.ini.tmpl
index c39b6a79c..fbfbae7c6 100644
--- a/tests/pgsql.ini.tmpl
+++ b/tests/pgsql.ini.tmpl
@@ -105,7 +105,26 @@ SECRET_KEY = 9pCviYTWSb
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.hhSVGOANkaKk3vfCd2jDOIww4pUk0xtg9JRde5UogyQ
[lfs]
-PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data/lfs
+MINIO_BASE_PATH = lfs/
+
+[attachment]
+MINIO_BASE_PATH = attachments/
+
+[avatars]
+MINIO_BASE_PATH = avatars/
+
+[repo-avatars]
+MINIO_BASE_PATH = repo-avatars/
+
+[storage]
+STORAGE_TYPE = minio
+SERVE_DIRECT = false
+MINIO_ENDPOINT = minio:9000
+MINIO_ACCESS_KEY_ID = 123456
+MINIO_SECRET_ACCESS_KEY = 12345678
+MINIO_BUCKET = gitea
+MINIO_LOCATION = us-east-1
+MINIO_USE_SSL = false
[packages]
ENABLED = true