This is an automated email from the ASF dual-hosted git repository.

pvillard31 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 8d4b5e46636 NIFI-16211 Configured Deterministic Build for Registry Web 
UI (#11552)
8d4b5e46636 is described below

commit 8d4b5e4663604ebe00970b4131bbde14a84db42c
Author: David Handermann <[email protected]>
AuthorDate: Sat Aug 15 06:52:31 2026 -0500

    NIFI-16211 Configured Deterministic Build for Registry Web UI (#11552)
---
 .../nifi-registry-web-ui/src/main/webpack.common.js               | 4 +++-
 .../nifi-registry-web-ui/src/main/webpack.prod.js                 | 8 ++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-web-ui/src/main/webpack.common.js
 
b/nifi-registry/nifi-registry-core/nifi-registry-web-ui/src/main/webpack.common.js
index 6e1239e1ed2..8c4c2d1cedb 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-web-ui/src/main/webpack.common.js
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-web-ui/src/main/webpack.common.js
@@ -40,7 +40,9 @@ module.exports = {
     output: {
         // add the content hash for auto cache-busting
         filename: '[name].[contenthash].js',
-        path: path.resolve(__dirname, './')
+        path: path.resolve(__dirname, './'),
+        // Pin the hashing algorithm so bundle names do not depend on the 
Node/OpenSSL default
+        hashFunction: 'sha256'
     },
 
     optimization: {
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-web-ui/src/main/webpack.prod.js
 
b/nifi-registry/nifi-registry-core/nifi-registry-web-ui/src/main/webpack.prod.js
index a831a6027b5..a30e29b7c33 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-web-ui/src/main/webpack.prod.js
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-web-ui/src/main/webpack.prod.js
@@ -54,9 +54,13 @@ module.exports = merge(commonConfig, {
     },
 
     optimization: {
+        // Deterministic module and chunk identifiers so repeated builds emit 
byte-identical
+        // bundles, keeping the [contenthash] in the output file names stable 
across builds
+        moduleIds: 'hashed',
+        chunkIds: 'named',
         minimizer: [
-            // Minify JavaScript
-            new TerserJSPlugin({}),
+            // Minify JavaScript; disable parallelism so minified output 
ordering is deterministic
+            new TerserJSPlugin({ parallel: false }),
 
             // Minify CSS
             new OptimizeCSSAssetsPlugin({})

Reply via email to