From f9d7c4de75f87266f5b47005a7dda430c6594886 Mon Sep 17 00:00:00 2001 From: abose Date: Tue, 14 Jan 2025 22:27:28 +0530 Subject: [PATCH 1/2] feat: enable git extension in desktop app by default --- src/extensions/default/DefaultExtensions.json | 3 +++ src/utils/ExtensionLoader.js | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/extensions/default/DefaultExtensions.json b/src/extensions/default/DefaultExtensions.json index cddad77610..8e64b9bd0f 100644 --- a/src/extensions/default/DefaultExtensions.json +++ b/src/extensions/default/DefaultExtensions.json @@ -25,6 +25,9 @@ "UrlCodeHints", "HealthData" ], + "desktopOnly": [ + "Git" + ], "warnExtensionStoreExtensions": { "description": "list extension ids here that you want to show this warning in extension store: 'You may not need this extension. Phoenix comes built in with this feature.'", "note": "This is only to for legacy extensions that havent been updated for a long time, remove flag unconditionally if instructed by the extension author, but inform of the issues in extension.", diff --git a/src/utils/ExtensionLoader.js b/src/utils/ExtensionLoader.js index e6da735387..95e6250d2c 100644 --- a/src/utils/ExtensionLoader.js +++ b/src/utils/ExtensionLoader.js @@ -54,8 +54,22 @@ define(function (require, exports, module) { UrlParams = require("utils/UrlParams").UrlParams, NodeUtils = require("utils/NodeUtils"), PathUtils = require("thirdparty/path-utils/path-utils"), - DefaultExtensionsList = JSON.parse(require("text!extensions/default/DefaultExtensions.json")) - .defaultExtensionsList; + DefaultExtensions = JSON.parse(require("text!extensions/default/DefaultExtensions.json")); + + const desktopOnlyExtensions = DefaultExtensions.desktopOnly; + const DefaultExtensionsList = Phoenix.isNativeApp ? + [...DefaultExtensions.defaultExtensionsList, ...desktopOnlyExtensions]: + DefaultExtensions.defaultExtensionsList; + + if(Phoenix.isTestWindow) { + // we dont load the heavy weight git extension by default for tests as huge number + // of tests written before git integration and too hard to fix those failing tests for now. + // we will just have new tests from git specific workflows. + const index = DefaultExtensionsList.indexOf("Git"); + if(index !== -1) { + DefaultExtensionsList.splice(index, 1); + } + } const customExtensionLoadPaths = {}; From 1b5855e35c2ba2c2b3e8ecd5a06ecd57851f915c Mon Sep 17 00:00:00 2001 From: abose Date: Tue, 14 Jan 2025 23:25:26 +0530 Subject: [PATCH 2/2] fix: build break as cache size too big, remove unwated trasnlation metadata and registry cache --- gulpfile.js/index.js | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/gulpfile.js/index.js b/gulpfile.js/index.js index 91f2282c31..394c21f572 100644 --- a/gulpfile.js/index.js +++ b/gulpfile.js/index.js @@ -61,6 +61,15 @@ function cleanAll() { ]); } +function cleanUnwantedFilesInDist() { + return del([ + 'dist/nls/*/expertTranslations.json', + 'dist/nls/*/lastTranslated.json', + 'dist/nls/*/lastTranslatedLocale.json', + 'dist/nls/*/*.js.map' + ]); +} + /** * TODO: Release scripts to merge and min src js/css/html resources into dist. * Links that might help: @@ -380,11 +389,25 @@ const ALLOWED_EXTENSIONS_TO_CACHE = ["js", "html", "htm", "xml", "xhtml", "mjs", const DISALLOWED_EXTENSIONS_TO_CACHE = ["map", "nuspec", "partial", "pre", "post", "webmanifest", "rb", "ts"]; +const EXCLUDE_PATTERNS_FROM_CACHE = [ + /src\/nls\/.*expertTranslations\.json$/, + /src\/nls\/.*lastTranslated\.json$/, + /src\/nls\/.*lastTranslatedLocale\.json$/, + /extensions\/registry\/registry\.json$/ +]; + function _isCacheableFile(path) { if(path.indexOf(".") === -1){ // no extension. dont cache return false; } + for (const pattern of EXCLUDE_PATTERNS_FROM_CACHE) { + if (pattern.test(path)) { + // If the path matches any excluded pattern, do not cache + return false; + } + } + let ext = path.split("."); ext = ext[ext.length - 1]; if(ALLOWED_EXTENSIONS_TO_CACHE.includes(ext.toLocaleString())){ @@ -422,11 +445,23 @@ function _getFileDetails(path) { function _computeCacheManifest(baseDir, filePaths) { let manifest = {}, fileDetails, totalSize = 0; + let fileSizes = []; for(let filePath of filePaths){ fileDetails = _getFileDetails(baseDir + "/" + filePath); manifest[filePath] = fileDetails.hash; totalSize += fileDetails.sizeBytes; + fileSizes.push({ path: filePath, sizeBytes: fileDetails.sizeBytes }); } + + // Sort files by size in descending order + fileSizes.sort((a, b) => b.sizeBytes - a.sizeBytes); + + // Log file sizes in descending order. uncomment to debug large cache size + // console.log("Files sorted by size (in bytes):"); + // for (let file of fileSizes) { + // console.log(`${file.path}: ${file.sizeBytes} bytes`); + // } + totalSize = Math.round(totalSize/1024); // KB console.log("Total size of cache in KB: ", totalSize); if(totalSize > 75000){ @@ -717,14 +752,14 @@ exports.clean = series(cleanDist); exports.reset = series(cleanAll); exports.releaseDev = series(cleanDist, exports.buildDebug, makeBracketsConcatJS, _compileLessSrc, - makeDistAll, releaseDev, + makeDistAll, cleanUnwantedFilesInDist, releaseDev, createDistCacheManifest, createDistTest, _cleanReleaseBuildArtefactsInSrc); exports.releaseStaging = series(cleanDist, exports.build, makeBracketsConcatJS, _compileLessSrc, - makeDistNonJS, makeJSDist, makeJSPrettierDist, makeNonMinifyDist, + makeDistNonJS, makeJSDist, makeJSPrettierDist, makeNonMinifyDist, cleanUnwantedFilesInDist, _renameBracketsConcatAsBracketsJSInDist, _patchMinifiedCSSInDistIndex, releaseStaging, createDistCacheManifest, createDistTest, _cleanReleaseBuildArtefactsInSrc); exports.releaseProd = series(cleanDist, exports.build, makeBracketsConcatJS, _compileLessSrc, - makeDistNonJS, makeJSDist, makeJSPrettierDist, makeNonMinifyDist, + makeDistNonJS, makeJSDist, makeJSPrettierDist, makeNonMinifyDist, cleanUnwantedFilesInDist, _renameBracketsConcatAsBracketsJSInDist, _patchMinifiedCSSInDistIndex, releaseProd, createDistCacheManifest, createDistTest, _cleanReleaseBuildArtefactsInSrc); exports.releaseWebCache = series(makeDistWebCache);