From fe943e1dc7ec3cc294a7227ecc8bce22f9cddc85 Mon Sep 17 00:00:00 2001 From: othercorey Date: Sat, 10 Sep 2022 02:44:31 -0500 Subject: [PATCH 01/35] Add avif to gitattributes --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index 9963dddc5e..5b3e6f91da 100644 --- a/.gitattributes +++ b/.gitattributes @@ -14,6 +14,7 @@ *.jpeg binary *.gif binary *.webp binary +*.avif binary *.ico binary *.mo binary *.pdf binary From b068ad4bcbdfc31b2f2edec4530e4cf18547528d Mon Sep 17 00:00:00 2001 From: ADmad Date: Mon, 12 Sep 2022 19:16:36 +0530 Subject: [PATCH 02/35] Improve description for session's ini values --- config/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/app.php b/config/app.php index 53e25371f6..b77299a982 100644 --- a/config/app.php +++ b/config/app.php @@ -403,7 +403,7 @@ * array with at least the `engine` key, being the name of the Session engine * class to use for managing the session. CakePHP bundles the `CacheSession` * and `DatabaseSession` engines. - * - `ini` - An associative array of additional ini values to set. + * - `ini` - An associative array of additional 'session.*` ini values to set. * * The built-in `defaults` options are: * From b76064fbe8c7f4e63b196ce8a0c0b018bf4ea33f Mon Sep 17 00:00:00 2001 From: Umer Salman Date: Mon, 12 Sep 2022 14:47:49 -0500 Subject: [PATCH 03/35] Update Application.php to remove route cache Also adds note on plugin to add cached routing --- src/Application.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Application.php b/src/Application.php index 848283a5f9..91376fb2f9 100644 --- a/src/Application.php +++ b/src/Application.php @@ -86,10 +86,8 @@ public function middleware(MiddlewareQueue $middlewareQueue): MiddlewareQueue // Add routing middleware. // If you have a large number of routes connected, turning on routes - // caching in production could improve performance. For that when - // creating the middleware instance specify the cache config name by - // using it's second constructor argument: - // `new RoutingMiddleware($this, '_cake_routes_')` + // caching in production could improve performance. + // See https://github.com/CakeDC/cakephp-cached-routing ->add(new RoutingMiddleware($this)) // Parse various types of encoded request bodies so that they are From e21dd55ee959aac2a63e4dc22cc2a0b57014c7a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgaras=20Janu=C5=A1auskas?= Date: Wed, 14 Sep 2022 12:22:18 +0300 Subject: [PATCH 04/35] Fix custom session handler location --- config/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/app.php b/config/app.php index b77299a982..f56df1c614 100644 --- a/config/app.php +++ b/config/app.php @@ -412,7 +412,7 @@ * - 'database' - Uses CakePHP's database sessions. * - 'cache' - Use the Cache class to save sessions. * - * To define a custom session handler, save it at src/Network/Session/.php. + * To define a custom session handler, save it at src/Http/Session/.php. * Make sure the class implements PHP's `SessionHandlerInterface` and set * Session.handler to * From c420073e32559e60aeefe0a5ec9c0edea9ddd96c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Sep 2022 03:21:01 +0000 Subject: [PATCH 05/35] Bump actions/stale from 5 to 6 Bumps [actions/stale](https://github.com/actions/stale) from 5 to 6. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index ebd280469c..fae8aa7cab 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/stale@v5 + - uses: actions/stale@v6 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-issue-message: 'This issue is stale because it has been open for 120 days with no activity. Remove the `stale` label or comment or this will be closed in 15 days' From bdafff9ff3476158f6bf55daccf825ffa9273d81 Mon Sep 17 00:00:00 2001 From: NISHIMURA Daisuke Date: Thu, 29 Sep 2022 13:05:31 +0900 Subject: [PATCH 06/35] "setup" is not a verb. http://notaverb.com/setup --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8e58d5180d..f0b0e973ea 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ automated upgrades, so you have to do any updates manually. ## Configuration -Read and edit the environment specific `config/app_local.php` and setup the +Read and edit the environment specific `config/app_local.php` and set up the `'Datasources'` and any other configuration relevant for your application. Other environment agnostic settings can be changed in `config/app.php`. From 2fc08af7f7adc004e3f3fcfbf56c0b2d45275bc5 Mon Sep 17 00:00:00 2001 From: Kevin Pfeifer Date: Sun, 2 Oct 2022 15:43:52 +0200 Subject: [PATCH 07/35] 4.x - use local google font files instead of external URL --- templates/Pages/home.php | 4 +- templates/layout/default.php | 4 +- templates/layout/error.php | 4 +- webroot/css/fonts.css | 80 ++++++++++++++++++++ webroot/font/raleway-400-cyrillic-ext.woff2 | Bin 0 -> 22516 bytes webroot/font/raleway-400-cyrillic.woff2 | Bin 0 -> 21768 bytes webroot/font/raleway-400-latin-ext.woff2 | Bin 0 -> 25652 bytes webroot/font/raleway-400-latin.woff2 | Bin 0 -> 41852 bytes webroot/font/raleway-400-vietnamese.woff2 | Bin 0 -> 7648 bytes webroot/font/raleway-700-cyrillic-ext.woff2 | Bin 0 -> 22516 bytes webroot/font/raleway-700-cyrillic.woff2 | Bin 0 -> 21768 bytes webroot/font/raleway-700-latin-ext.woff2 | Bin 0 -> 25652 bytes webroot/font/raleway-700-latin.woff2 | Bin 0 -> 41852 bytes webroot/font/raleway-700-vietnamese.woff2 | Bin 0 -> 7648 bytes 14 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 webroot/css/fonts.css create mode 100644 webroot/font/raleway-400-cyrillic-ext.woff2 create mode 100644 webroot/font/raleway-400-cyrillic.woff2 create mode 100644 webroot/font/raleway-400-latin-ext.woff2 create mode 100644 webroot/font/raleway-400-latin.woff2 create mode 100644 webroot/font/raleway-400-vietnamese.woff2 create mode 100644 webroot/font/raleway-700-cyrillic-ext.woff2 create mode 100644 webroot/font/raleway-700-cyrillic.woff2 create mode 100644 webroot/font/raleway-700-latin-ext.woff2 create mode 100644 webroot/font/raleway-700-latin.woff2 create mode 100644 webroot/font/raleway-700-vietnamese.woff2 diff --git a/templates/Pages/home.php b/templates/Pages/home.php index 920fbfd75a..e7c03de6c9 100644 --- a/templates/Pages/home.php +++ b/templates/Pages/home.php @@ -59,9 +59,7 @@ Html->meta('icon') ?> - - - Html->css(['normalize.min', 'milligram.min', 'cake', 'home']) ?> + Html->css(['normalize.min', 'milligram.min', 'fonts', 'cake', 'home']) ?> fetch('meta') ?> fetch('css') ?> diff --git a/templates/layout/default.php b/templates/layout/default.php index 41471b1f5c..f300d2ad41 100644 --- a/templates/layout/default.php +++ b/templates/layout/default.php @@ -27,9 +27,7 @@ Html->meta('icon') ?> - - - Html->css(['normalize.min', 'milligram.min', 'cake']) ?> + Html->css(['normalize.min', 'milligram.min', 'fonts', 'cake']) ?> fetch('meta') ?> fetch('css') ?> diff --git a/templates/layout/error.php b/templates/layout/error.php index 28c09bac4e..2b26a16da0 100644 --- a/templates/layout/error.php +++ b/templates/layout/error.php @@ -23,9 +23,7 @@ Html->meta('icon') ?> - - - Html->css(['normalize.min', 'milligram.min', 'cake']) ?> + Html->css(['normalize.min', 'milligram.min', 'fonts', 'cake']) ?> fetch('meta') ?> fetch('css') ?> diff --git a/webroot/css/fonts.css b/webroot/css/fonts.css new file mode 100644 index 0000000000..1ba4808f40 --- /dev/null +++ b/webroot/css/fonts.css @@ -0,0 +1,80 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 400; + src: url('../font/raleway-400-cyrillic-ext.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 400; + src: url('../font/raleway-400-cyrillic.woff2') format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* vietnamese */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 400; + src: url('../font/raleway-400-vietnamese.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 400; + src: url('../font/raleway-400-latin-ext.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 400; + src: url('../font/raleway-400-latin.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 700; + src: url('../font/raleway-700-cyrillic-ext.woff2') format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 700; + src: url('../font/raleway-700-cyrillic.woff2') format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* vietnamese */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 700; + src: url('../font/raleway-700-vietnamese.woff2') format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 700; + src: url('../font/raleway-700-latin-ext.woff2') format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 700; + src: url('../font/raleway-700-latin.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/webroot/font/raleway-400-cyrillic-ext.woff2 b/webroot/font/raleway-400-cyrillic-ext.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..039269ecd6602a9917ec8a4bc6240b11da2730ca GIT binary patch literal 22516 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