Compare commits

...

21 Commits

Author SHA1 Message Date
Edwin Joassart
657027248f patch: test flowzone with cdxgen & osv 2024-09-20 11:10:29 +02:00
flowzone-app[bot]
5fd6376f45 v1.19.22 2024-07-18 18:13:00 +00:00
flowzone-app[bot]
818dcd3b13 Merge pull request #4279 from balena-io/klutchell-patch-1
Replace deprecated Flowzone inputs
2024-07-18 18:12:06 +00:00
Kyle Harding
52d396aa7e Replace deprecated Flowzone inputs
Change-type: patch
2024-07-17 09:37:12 -04:00
flowzone-app[bot]
c748c2a9c0 v1.19.21 2024-05-30 15:00:39 +00:00
Edwin Joassart
a5dac57b09 Merge pull request #4238 from balena-io/fix-win-2
patch: fix missing windows dependency
2024-05-30 16:59:45 +02:00
Edwin Joassart
8dad81ae34 patch: fix missing windows dependency 2024-05-30 16:28:56 +02:00
Edwin Joassart
d28719daf2 patch: fix missing windows dependency 2024-05-30 14:56:07 +02:00
Edwin Joassart
98db4df0dc patch: fix missing windows dependency 2024-05-30 14:35:02 +02:00
flowzone-app[bot]
52144f4a6e v1.19.20 2024-05-30 10:17:34 +00:00
flowzone-app[bot]
39b02f2168 Merge pull request #4237 from balena-io/fix-win
patch: fix missing windows dependency
2024-05-30 10:16:39 +00:00
Edwin Joassart
c4d3f8db87 patch: fix missing windows dependency 2024-05-30 11:44:50 +02:00
flowzone-app[bot]
6d796df017 v1.19.19 2024-05-28 12:10:03 +00:00
flowzone-app[bot]
326a3c740f Merge pull request #4233 from balena-io/sentry
patch: add sentry debug flag
2024-05-28 12:07:54 +00:00
Edwin Joassart
8223130e8d patch: add sentry debug flag 2024-05-28 12:22:34 +02:00
flowzone-app[bot]
3245439744 v1.19.18 2024-05-22 13:28:07 +00:00
flowzone-app[bot]
74854f1720 Merge pull request #4228 from balena-io/aethernet-patch-2
patch: fix sentry DSN
2024-05-22 13:27:17 +00:00
Edwin Joassart
4ffda6e208 patch: fix Sentry DSN for main process 2024-05-22 15:02:04 +02:00
flowzone-app[bot]
62ac0b98b9 v1.19.17 2024-05-09 06:33:47 +00:00
flowzone-app[bot]
ae70c20779 Merge pull request #4221 from balena-io/fix-analytics-imports
patch: fix injection of analytics key at build time
2024-05-09 06:33:00 +00:00
JOASSART Edwin
e94767aca7 patch: fix injection of analytics key at build time 2024-05-08 23:06:34 +02:00
10 changed files with 170 additions and 44 deletions

View File

@@ -55,6 +55,12 @@ runs:
# fi
npm ci
# as the shrinkwrap might have been done on mac/linux, this is ensure the package is there for windows
if [[ "$RUNNER_OS" == "Windows" ]]; then
npm i -D winusb-driver-generator
fi
npm run lint
npm run package
npm run wdio # test stage, note that it requires the package to be done first

View File

@@ -10,7 +10,7 @@ on:
jobs:
flowzone:
name: Flowzone
uses: product-os/flowzone/.github/workflows/flowzone.yml@master
uses: product-os/flowzone/.github/workflows/flowzone.yml@e1693592a678f92001e1e6ab6feccd1f6acd3715
# prevent duplicate workflows and only allow one `pull_request` or `pull_request_target` for
# internal or external contributions respectively
if: |
@@ -18,7 +18,24 @@ jobs:
(github.event.pull_request.head.repo.full_name != github.repository && github.event_name == 'pull_request_target')
secrets: inherit
with:
custom_runs_on: '[["ubuntu-20.04"],["windows-2019"],["macos-12"],["macos-latest-xlarge"]]'
custom_test_matrix: >
{
"os": [
["ubuntu-20.04"],
["windows-2019"],
["macos-12"],
["macos-latest-xlarge"]
]
}
custom_publish_matrix: >
{
"os": [
["ubuntu-20.04"],
["windows-2019"],
["macos-12"],
["macos-latest-xlarge"]
]
}
restrict_custom_actions: false
github_prerelease: true
cloudflare_website: "etcher"

View File

@@ -1,3 +1,77 @@
- commits:
- subject: Replace deprecated Flowzone inputs
hash: 52d396aa7ea9ae1ef6d68151f582f04f57191b14
body: ""
footer:
Change-type: patch
change-type: patch
author: Kyle Harding
nested: []
version: 1.19.22
title: ""
date: 2024-07-18T18:12:56.368Z
- commits:
- subject: "patch: fix missing windows dependency"
hash: 8dad81ae34b8d71f3d4f7151ee60717e6207ccd8
body: ""
footer: {}
author: Edwin Joassart
nested: []
- subject: "patch: fix missing windows dependency"
hash: d28719daf249f2994acdf94b4bb7ea937ffcab9b
body: ""
footer: {}
author: Edwin Joassart
nested: []
- subject: "patch: fix missing windows dependency"
hash: 98db4df0dc147e5fec9180c50f4e21acf1fd0a58
body: ""
footer: {}
author: Edwin Joassart
nested: []
version: 1.19.21
title: ""
date: 2024-05-30T15:00:35.706Z
- commits:
- subject: "patch: fix missing windows dependency"
hash: c4d3f8db8769418925a9909ac700edc5f425a068
body: ""
footer: {}
author: Edwin Joassart
nested: []
version: 1.19.20
title: ""
date: 2024-05-30T10:17:29.075Z
- commits:
- subject: "patch: add sentry debug flag"
hash: 8223130e8dfce180481550d77f022064255601e4
body: ""
footer: {}
author: Edwin Joassart
nested: []
version: 1.19.19
title: ""
date: 2024-05-28T12:09:51.167Z
- commits:
- subject: "patch: fix Sentry DSN for main process"
hash: 4ffda6e208a6e2f109f652d39e1248bec23a2ddf
body: ""
footer: {}
author: Edwin Joassart
nested: []
version: 1.19.18
title: ""
date: 2024-05-22T13:28:03.659Z
- commits:
- subject: "patch: fix injection of analytics key at build time"
hash: e94767aca7b07e674bd60176ef77c11440131ace
body: ""
footer: {}
author: JOASSART Edwin
nested: []
version: 1.19.17
title: ""
date: 2024-05-09T06:33:45.091Z
- commits:
- subject: "patch: hold request for metadata while waiting for flasher"
hash: 2dfa795129e287f887b9ea02f2eca717575d27ac

View File

@@ -3,6 +3,38 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
# v1.19.22
## (2024-07-18)
* Replace deprecated Flowzone inputs [Kyle Harding]
# v1.19.21
## (2024-05-30)
* patch: fix missing windows dependency [Edwin Joassart]
* patch: fix missing windows dependency [Edwin Joassart]
* patch: fix missing windows dependency [Edwin Joassart]
# v1.19.20
## (2024-05-30)
* patch: fix missing windows dependency [Edwin Joassart]
# v1.19.19
## (2024-05-28)
* patch: add sentry debug flag [Edwin Joassart]
# v1.19.18
## (2024-05-22)
* patch: fix Sentry DSN for main process [Edwin Joassart]
# v1.19.17
## (2024-05-09)
* patch: fix injection of analytics key at build time [JOASSART Edwin]
# v1.19.16
## (2024-04-26)

View File

@@ -136,25 +136,6 @@ const config: ForgeConfig = {
new sidecar.SidecarPlugin(),
],
hooks: {
readPackageJson: async (_config, packageJson) => {
packageJson.analytics = {};
if (process.env.SENTRY_TOKEN) {
packageJson.analytics.sentry = {
token: process.env.SENTRY_TOKEN,
};
}
if (process.env.AMPLITUDE_TOKEN) {
packageJson.analytics.amplitude = {
token: 'balena-etcher',
};
}
// packageJson.packageType = 'dmg' | 'AppImage' | 'rpm' | 'deb' | 'zip' | 'nsis' | 'portable'
return packageJson;
},
postPackage: async (_forgeConfig, options) => {
if (options.platform === 'linux') {
// symlink the etcher binary from balena-etcher to balenaEtcher to ensure compatibility with the wdio suite and the old name

View File

@@ -14,13 +14,13 @@
* limitations under the License.
*/
import * as _ from 'lodash';
import { findLastIndex, once } from 'lodash';
import type { Client } from 'analytics-client';
import { createClient, createNoopClient } from 'analytics-client';
import * as SentryRenderer from '@sentry/electron/renderer';
import * as settings from '../models/settings';
import { store } from '../models/store';
import * as packageJSON from '../../../../package.json';
import { version } from '../../../../package.json';
type AnalyticsPayload = _.Dictionary<any>;
@@ -73,7 +73,7 @@ export const anonymizePath = (input: string) => {
const segments = mainPart.split(sep);
// Moving from the end, find the first marker and cut the path from there.
const startCutIndex = _.findLastIndex(segments, (segment) =>
const startCutIndex = findLastIndex(segments, (segment) =>
etcherSegmentMarkers.includes(segment),
);
return (
@@ -119,21 +119,23 @@ let analyticsClient: Client;
/**
* @summary Init analytics configurations
*/
export const initAnalytics = _.once(() => {
export const initAnalytics = once(() => {
const dsn =
settings.getSync('analyticsSentryToken') ||
_.get(packageJSON, ['analytics', 'sentry', 'token']);
SentryRenderer.init({ dsn, beforeSend: anonymizeSentryData });
settings.getSync('analyticsSentryToken') || process.env.SENTRY_TOKEN;
SentryRenderer.init({
dsn,
beforeSend: anonymizeSentryData,
debug: process.env.ETCHER_SENTRY_DEBUG === 'true',
});
const projectName =
settings.getSync('analyticsAmplitudeToken') ||
_.get(packageJSON, ['analytics', 'amplitude', 'token']);
settings.getSync('analyticsAmplitudeToken') || process.env.AMPLITUDE_TOKEN;
const clientConfig = {
projectName,
endpoint: 'data.balena-cloud.com',
componentName: 'etcher',
componentVersion: packageJSON.version,
componentVersion: version,
};
analyticsClient = projectName
? createClient(clientConfig)

View File

@@ -27,7 +27,7 @@ import { promises as fs } from 'fs';
import { platform } from 'os';
import * as path from 'path';
import * as semver from 'semver';
import * as lodash from 'lodash';
import { once } from 'lodash';
import './app/i18n';
@@ -37,7 +37,6 @@ import * as settings from './app/models/settings';
import { buildWindowMenu } from './menu';
import * as i18n from 'i18next';
import * as SentryMain from '@sentry/electron/main';
import * as packageJSON from '../../package.json';
import { anonymizeSentryData } from './app/modules/analytics';
import { delay } from '../shared/utils';
@@ -115,12 +114,16 @@ async function getCommandLineURL(argv: string[]): Promise<string | undefined> {
}
}
const initSentryMain = lodash.once(() => {
const initSentryMain = once(() => {
const dsn =
settings.getSync('analyticsSentryToken') ||
lodash.get(packageJSON, ['analytics', 'sentry', 'token']);
settings.getSync('analyticsSentryToken') || process.env.SENTRY_TOKEN;
SentryMain.init({ dsn, beforeSend: anonymizeSentryData });
SentryMain.init({
dsn,
beforeSend: anonymizeSentryData,
debug: process.env.ETCHER_SENTRY_DEBUG === 'true',
});
console.log(SentryMain.getCurrentScope());
});
const sourceSelectorReady = new Promise((resolve) => {

7
npm-shrinkwrap.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "balena-etcher",
"version": "1.19.16",
"version": "1.19.22",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "balena-etcher",
"version": "1.19.16",
"version": "1.19.22",
"license": "Apache-2.0",
"dependencies": {
"@electron/remote": "^2.1.2",
@@ -88,7 +88,8 @@
},
"optionalDependencies": {
"bufferutil": "^4.0.8",
"utf-8-validate": "^5.0.10"
"utf-8-validate": "^5.0.10",
"winusb-driver-generator": "2.1.2"
}
},
"node_modules/@aashutoshrathi/word-wrap": {

View File

@@ -3,7 +3,7 @@
"private": true,
"displayName": "balenaEtcher",
"productName": "balenaEtcher",
"version": "1.19.16",
"version": "1.19.22",
"packageType": "local",
"main": ".webpack/main",
"description": "Flash OS images to SD cards and USB drives, safely and easily.",
@@ -147,10 +147,11 @@
"node": ">=20 <21"
},
"versionist": {
"publishedAt": "2024-04-26T14:33:19.590Z"
"publishedAt": "2024-07-18T18:12:56.823Z"
},
"optionalDependencies": {
"bufferutil": "^4.0.8",
"utf-8-validate": "^5.0.10"
"utf-8-validate": "^5.0.10",
"winusb-driver-generator": "2.1.2"
}
}

View File

@@ -17,7 +17,7 @@
import type { Configuration, ModuleOptions } from 'webpack';
import { resolve } from 'path';
import { BannerPlugin, IgnorePlugin } from 'webpack';
import { BannerPlugin, IgnorePlugin, DefinePlugin } from 'webpack';
const rules: Required<ModuleOptions>['rules'] = [
// Add support for native node modules
@@ -61,6 +61,13 @@ const rules: Required<ModuleOptions>['rules'] = [
},
];
const injectAnalyticsToken = new DefinePlugin({
'process.env.SENTRY_TOKEN': JSON.stringify(process.env.SENTRY_TOKEN || ''),
'process.env.AMPLITUDE_TOKEN': JSON.stringify(
process.env.AMPLITUDE_TOKEN || '',
),
});
export const rendererConfig: Configuration = {
module: {
rules,
@@ -79,6 +86,7 @@ export const rendererConfig: Configuration = {
banner: '__REACT_DEVTOOLS_GLOBAL_HOOK__ = { isDisabled: true };',
raw: true,
}),
injectAnalyticsToken,
],
resolve: {
@@ -100,4 +108,5 @@ export const mainConfig: Configuration = {
resolve: {
extensions: ['.js', '.ts', '.jsx', '.tsx', '.css', '.json'],
},
plugins: [injectAnalyticsToken],
};