Merge branch 'master' into stable
This commit is contained in:
commit
8bdbcf7015
@ -17,6 +17,9 @@ QoL improvements for me:
|
|||||||
|
|
||||||
* Fixed the youtube alignment issue (previously fixed in v4.4.7.1-2), but this time for real (and in a bit more proper way)
|
* Fixed the youtube alignment issue (previously fixed in v4.4.7.1-2), but this time for real (and in a bit more proper way)
|
||||||
* Fixed the bug where extension wouldn't work when URL specified a port (e.g. www.example.com:80)
|
* Fixed the bug where extension wouldn't work when URL specified a port (e.g. www.example.com:80)
|
||||||
|
* **[4.4.9.1]** removed source files from extension build in order to decrease package size
|
||||||
|
|
||||||
|
In addition to that, as of 4.4.9.1 the build process ensures removal of `node_modules` before building the extension so we can have reproducible builds except for real this time. Hopefully.
|
||||||
|
|
||||||
### v4.4.8
|
### v4.4.8
|
||||||
|
|
||||||
|
@ -4,14 +4,28 @@
|
|||||||
|
|
||||||
The extension is built on a PC running Manjaro Linux. npm and node are installed from repositories/aur.
|
The extension is built on a PC running Manjaro Linux. npm and node are installed from repositories/aur.
|
||||||
|
|
||||||
|
### Software versions:
|
||||||
|
|
||||||
## Installing dependencies
|
Node/npm versions:
|
||||||
|
|
||||||
Run `npm ci`
|
```
|
||||||
|
node: %%NODE_VERSION%%
|
||||||
|
npm: %%NPM_VERSION%%
|
||||||
|
```
|
||||||
|
|
||||||
|
Linux (`uname -a`):
|
||||||
|
|
||||||
|
```
|
||||||
|
%%LINUX_VERSION%%
|
||||||
|
```
|
||||||
|
|
||||||
## Reproducing build
|
## Reproducing build
|
||||||
|
|
||||||
`npm run build`
|
Run the following commands to install dependencies and compile the firefox build:
|
||||||
|
|
||||||
The compiled code pops up in /dist-ff (/dist-chrome for Chromium-based browsers).
|
```
|
||||||
|
npm ci
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
The compiled code pops up in `/dist-ff`.
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
"author": "Tamius Han <tamius.han@gmail.com>",
|
"author": "Tamius Han <tamius.han@gmail.com>",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "npm run dev",
|
"start": "npm run dev",
|
||||||
"build": "cross-env NODE_ENV=production BROWSER=firefox CHANNEL=stable webpack --hide-modules",
|
"pre-build": "rm -rf ./dist-ff; rm -rf ./dist-chrome; rm -rf ./node_modules; npm ci",
|
||||||
|
"build": "npm run pre-build; cross-env NODE_ENV=production BROWSER=firefox CHANNEL=stable webpack --hide-modules",
|
||||||
"build-chrome": "cross-env NODE_ENV=production BROWSER=chrome CHANNEL=stable webpack --hide-modules",
|
"build-chrome": "cross-env NODE_ENV=production BROWSER=chrome CHANNEL=stable webpack --hide-modules",
|
||||||
"build-edge": "cross-env NODE_ENV=production BROWSER=edge CHANNEL=stable webpack --hide-modules",
|
"build-edge": "cross-env NODE_ENV=production BROWSER=edge CHANNEL=stable webpack --hide-modules",
|
||||||
"build:dev": "webpack --hide-modules",
|
"build:dev": "webpack --hide-modules",
|
||||||
@ -14,7 +15,7 @@
|
|||||||
"build-testing-chrome": "cross-env NODE_ENV=development BROWSER=chrome CHANNEL=testing webpack --hide-modules",
|
"build-testing-chrome": "cross-env NODE_ENV=development BROWSER=chrome CHANNEL=testing webpack --hide-modules",
|
||||||
"build-nightly-chrome": "cross-env NODE_ENV=development BROWSER=chrome CHANNEL=nightly webpack --hide-modules",
|
"build-nightly-chrome": "cross-env NODE_ENV=development BROWSER=chrome CHANNEL=nightly webpack --hide-modules",
|
||||||
"build-chrome:dev": "cross-env NODE_ENV=development BROWSER=chrome webpack --hide-modules",
|
"build-chrome:dev": "cross-env NODE_ENV=development BROWSER=chrome webpack --hide-modules",
|
||||||
"build-all": "mkdir -p ./build/old; rm -rf ./dist-ff; rm -rf ./dist-chrome; rm ./dist-zip/uw-amo-source.zip; mv -f ./dist-zip/*.zip ./build/old; npm run build; node scripts/build-zip.js ff; npm run build-chrome; node scripts/build-zip.js chrome; ./scripts/prepare-amo-source.sh",
|
"build-all": "mkdir -p ./build/old; npm run pre-build; rm ./dist-zip/uw-amo-source.zip; mv -f ./dist-zip/*.zip ./build/old; npm run build; node scripts/build-zip.js ff; npm run build-chrome; node scripts/build-zip.js chrome; ./scripts/prepare-amo-source.sh",
|
||||||
"build-zip": "node scripts/build-zip.js",
|
"build-zip": "node scripts/build-zip.js",
|
||||||
"dev": "cross-env NODE_ENV=development CHANNEL=dev concurrently \"cross-env BROWSER=firefox npm run build:dev -- --watch\" \"cross-env BROWSER=chrome npm run build:dev -- --watch\""
|
"dev": "cross-env NODE_ENV=development CHANNEL=dev concurrently \"cross-env BROWSER=firefox npm run build:dev -- --watch\" \"cross-env BROWSER=chrome npm run build:dev -- --watch\""
|
||||||
},
|
},
|
||||||
|
@ -2,4 +2,49 @@
|
|||||||
|
|
||||||
# makes a zip file with human-readable source code that we need to upload to AMO
|
# makes a zip file with human-readable source code that we need to upload to AMO
|
||||||
# since webpack minifies stuff
|
# since webpack minifies stuff
|
||||||
zip -r dist-zip/uw-amo-source.zip README-AMO.md .babelrc package.json package-lock.json webpack.config.js src/
|
|
||||||
|
# we need to do this, otherwise `nvm` command won't be available
|
||||||
|
. ~/.nvm/nvm.sh
|
||||||
|
|
||||||
|
# first, we collect npm/node versions:
|
||||||
|
# (NOTE: the last bit is necessary to remove ANSI color codes from output)
|
||||||
|
NODE_VERSION=`nvm ls | head -n 1 | awk '{print $2}' | sed 's/\x1B\[[0-9;]\+[A-Za-z]//g'`
|
||||||
|
NPM_VERSION=`npm --version`
|
||||||
|
LINUX_VERSION="$(uname -a | sed 's/\//\\\//g')"
|
||||||
|
|
||||||
|
# copy REAMDE to /tmp for processing
|
||||||
|
cp README-AMO.md /tmp/README-AMO.md
|
||||||
|
|
||||||
|
# replace placeholders with proper software versions
|
||||||
|
sed -i "s/%%NODE_VERSION%%/${NODE_VERSION}/g" /tmp/README-AMO.md
|
||||||
|
sed -i "s/%%NPM_VERSION%%/${NPM_VERSION}/g" /tmp/README-AMO.md
|
||||||
|
sed -i "s/%%LINUX_VERSION%%/${LINUX_VERSION}/g" /tmp/README-AMO.md
|
||||||
|
|
||||||
|
# add files to archive
|
||||||
|
zip -r dist-zip/uw-amo-source.zip /tmp/README-AMO.md .babelrc package.json package-lock.json webpack.config.js scripts/ src/
|
||||||
|
|
||||||
|
# rename /tmp/README-AMO.md to README.md
|
||||||
|
printf "@ tmp/README-AMO.md\n@=README.md\n" | zipnote -w dist-zip/uw-amo-source.zip
|
||||||
|
|
||||||
|
# printout for debugging purposes:
|
||||||
|
echo ""
|
||||||
|
echo "—————— AMO SOURCE PREPARATION FINISHED ——————"
|
||||||
|
echo " Debug info:"
|
||||||
|
echo ""
|
||||||
|
echo "nvm ls | head -n 1:"
|
||||||
|
nvm ls | head -n 1
|
||||||
|
echo ""
|
||||||
|
echo "npm --version"
|
||||||
|
npm --version
|
||||||
|
echo ""
|
||||||
|
echo "uname -a"
|
||||||
|
uname -a
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo "extracted variables:"
|
||||||
|
echo "NODE_VERSION: ${NODE_VERSION}"
|
||||||
|
echo "NPM_VERSION: ${NPM_VERSION}"
|
||||||
|
echo "UNAME: ${LINUX_VERSION}"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo "—————— EXTENSION PACKAGES READY FOR UPLOAD ——————"
|
||||||
|
57
scripts/reproducability-test.sh
Executable file
57
scripts/reproducability-test.sh
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
### VARIABLES
|
||||||
|
|
||||||
|
REPRODUCABILITY=5 # how many times we need to build with same hash
|
||||||
|
|
||||||
|
### TEST STARTS HERE ###
|
||||||
|
|
||||||
|
CURRENT_DIR=$(pwd)
|
||||||
|
|
||||||
|
if [[ $(echo $0 | awk -F"/" '{print NF-1}') -eq 1 ]] ; then
|
||||||
|
# we need to go one directory up
|
||||||
|
cd ..
|
||||||
|
fi
|
||||||
|
|
||||||
|
# cleanup after self if we already ran and previous test crashed or
|
||||||
|
# something before it cleaned up after itself.
|
||||||
|
rm -rf /tmp/uw-test-runs/* 2>/dev/null # we not interested if fails
|
||||||
|
|
||||||
|
# make new folder if it doesn't exist
|
||||||
|
mkdir -p /tmp/uw-test-runs
|
||||||
|
|
||||||
|
for ((run=0;run<$REPRODUCABILITY;run++)) ; do
|
||||||
|
echo ""
|
||||||
|
echo "---- run ${run} ----"
|
||||||
|
|
||||||
|
# save hash and then run build. Save hash.
|
||||||
|
OLD_HASH=$HASH
|
||||||
|
HASH=$(npm run build 2>/dev/null | grep "Hash:")
|
||||||
|
|
||||||
|
# move build file to /tmp, where it'll be saved for later
|
||||||
|
mv dist-ff /tmp/uw-test-runs/${run}
|
||||||
|
|
||||||
|
# skip comparisons with previous tests on first run,
|
||||||
|
# cos we don't have anything to compare against yet
|
||||||
|
if [[ $run -ne 0 ]] ; then
|
||||||
|
if [[ "$OLD_HASH" == "$HASH" ]] ; then
|
||||||
|
echo "Hashes ok${HASH##*:}"
|
||||||
|
else
|
||||||
|
echo "Webpack hashes do not match! (${OLD_HASH##*:} <---> ${HASH##*:})"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Diff test (no output=ok):"
|
||||||
|
diff -qr /tmp/uw-test-runs/${prev_run} /tmp/uw-test-runs/${run}
|
||||||
|
else
|
||||||
|
echo "Webpack hash: $HASH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# save id of previous run
|
||||||
|
prev_run=$run
|
||||||
|
done
|
||||||
|
|
||||||
|
# clean up after self
|
||||||
|
rm -rf /tmp/uw-test-runs
|
||||||
|
|
||||||
|
# restore dir
|
||||||
|
cd "$CURRENT_DIR"
|
@ -2,7 +2,7 @@
|
|||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "Ultrawidify",
|
"name": "Ultrawidify",
|
||||||
"description": "Removes black bars on ultrawide videos and offers advanced options to fix aspect ratio.",
|
"description": "Removes black bars on ultrawide videos and offers advanced options to fix aspect ratio.",
|
||||||
"version": "4.4.9",
|
"version": "4.4.9.1",
|
||||||
"applications": {
|
"applications": {
|
||||||
"gecko": {
|
"gecko": {
|
||||||
"id": "{cf02b1a7-a01a-4e37-a609-516a283f1ed3}"
|
"id": "{cf02b1a7-a01a-4e37-a609-516a283f1ed3}"
|
||||||
|
@ -10,7 +10,14 @@
|
|||||||
<li>
|
<li>
|
||||||
Fixed the bug where extension wouldn't work when URL specified a port (e.g. www.example.com:80)
|
Fixed the bug where extension wouldn't work when URL specified a port (e.g. www.example.com:80)
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<b>[4.4.9.1]</b>removed source files from extension build
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<p>
|
||||||
|
In addition to that, as of 4.4.9.1 the build process ensures removal of `node_modules` before building the extension so we can have
|
||||||
|
reproducible builds except for real this time. Hopefully.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -8,7 +8,7 @@ const { VueLoaderPlugin } = require('vue-loader');
|
|||||||
|
|
||||||
const config = {
|
const config = {
|
||||||
mode: process.env.NODE_ENV,
|
mode: process.env.NODE_ENV,
|
||||||
devtool: "inline-source-map",
|
devtool: `${process.env.CHANNEL === 'stable' ? undefined : "inline-source-map"}`,
|
||||||
context: __dirname + '/src',
|
context: __dirname + '/src',
|
||||||
entry: {
|
entry: {
|
||||||
'ext/uw': './ext/uw.js',
|
'ext/uw': './ext/uw.js',
|
||||||
@ -145,7 +145,12 @@ const config = {
|
|||||||
})
|
})
|
||||||
],
|
],
|
||||||
optimization: {
|
optimization: {
|
||||||
minimize: false,
|
// minimize: false,
|
||||||
|
// occurrenceOrder: false,
|
||||||
|
// providedExports: false,
|
||||||
|
// usedExports: false,
|
||||||
|
// concatenateModules: false,
|
||||||
|
// sideEffects: false,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user