chore(deps): update dependency vite to v3

This PR contains the following updates:

Package
Type
Update
Change

vite
devDependencies
major
2.9.14 -> 3.0.4

Release Notes

vitejs/vite
v3.0.4
Compare Source

fix: VITE_PUBLIC_ASSET__hash in HTML (#9247) (a2b24ee), closes #9247
fix: inline dynamic imports for ssr-webworker (fixes #9385) (#9401) (cd69358), closes #9385 #9401
fix: normalise css paths in manifest on windows (fixes #9295) (#9353) (13e6450), closes #9295 #9353
fix: support stylesheets with link tag and media/disable prop (#6751) (e6c8965), closes #6751
fix: url constructor import asset no as url (#9399) (122c6e7), closes #9399
fix(glob): server perf when globbing huge dirs (#9425) (156a3a4), closes #9425
fix(glob): support static template literals (#9352) (183c6fb), closes #9352
fix(ssr): allow virtual paths on node modules (#9405) (e60368f), closes #9405
chore(deps): update all non-major dependencies (#9347) (2fcb027), closes #9347

v3.0.3
Compare Source

fix: client type error (#9289) (b82ddfb), closes #9289
fix: don't modify config (#9262) (bbc8318), closes #9262
fix: entries in ssr.external (#9286) (d420f01), closes #9286
fix: externalize explicitly configured linked packages (#9346) (c33e365), closes #9346
fix: make resolveConfig() concurrent safe (#9224) (dfaeb2b), closes #9224
fix: scanner and optimizer should skip wasm (#9257) (c616077), closes #9257
fix: ssrLoadModule executes code in non-strict mode, fixes #9197 (#9199) (5866cfb), closes #9197 #9199
fix: support multiline dynamic imports (#9314) (e66cf69), closes #9314
fix: support vite client in safari 13 (#9315) (2415193), closes #9315
fix: worker relative base should use import.meta.url (#9204) (0358b04), closes #9204
fix(glob): handle glob prop access (#9281) (0580215), closes #9281
fix(scan): handle .ts import as .js alias (#9282) (0b083ca), closes #9282
fix(ssr): no external symlink package (#9296) (ea27701), closes #9296
chore: adjust comments/typos (#9325) (ffb2ba3), closes #9325
chore: fix code typos (#9033) (ed02861), closes #9033
docs: fix @rollup/plugin-commonjs name (#9313) (c417364), closes #9313
docs: fix server options link (#9242) (29db3ea), closes #9242
docs: update browser baseline features (#9316) (b82ee5d), closes #9316
feat: supports cts and mts files (#9268) (0602017), closes #9268
feat: worker config call config hook (#9212) (3e510ab), closes #9212
feat(css): use esbuild.log* options when minifying (#9210) (88baa53), closes #9210

v3.0.2
Compare Source

fix: fs serve only edit pathname (fixes #9148) (#9173) (28cffc9), closes #9148 #9173
fix: prevent null pathname error (#9188) (d66ffd0), closes #9188
fix: return 500 on proxy error only if possible (fixes #9172) (#9193) (b2f6bdc), closes #9172 #9193
fix(deps): update all non-major dependencies (#9176) (31d3b70), closes #9176
fix(dev): build.ssr is set during dev, fix #9134 (#9187) (99b0e67), closes #9134 #9187
fix(ssr): strip NULL_BYTE_PLACEHOLDER before import (#9124) (c5f2dc7), closes #9124

v3.0.1
Compare Source

fix: avoid errors when loading the overlay code in workers (#9064) (a52b45e), closes #9064
fix: check server after tsconfig reload (#9106) (d12d469), closes #9106
fix: disable keepNames in vite:esbuild (fixes #9164) (#9166) (e6f3b02), closes #9164 #9166
fix: externalize workspace relative import when bundle config (#9140) (5a8a3ab), closes #9140
fix: mention that Node.js 13/15 support is dropped (fixes #9113) (#9116) (2826303), closes #9113 #9116
fix: resolve drive relative path (#9097) (b393451), closes #9097
fix: respect .mjs .cjs extension in all modes (#9141) (5ea70b3), closes #9141
fix: return 500 on proxy error only if possible (fixes #9172) (#9175) (d2f02a8), closes #9172 #9175
fix: server.proxy ws error causes crash (#9123) (c2426d1), closes #9123
fix: ssr.external/noExternal should apply to packageName (#9146) (5844d8e), closes #9146
fix: use correct require extension to load config (#9118) (ebf682e), closes #9118
fix(esbuild): always support dynamic import and import meta (#9105) (57a7936), closes #9105
feat: allow declaring dirname (#9154) (1e078ad), closes #9154
refactor: always load config with esbuild bundled code (#9121) (a2b3131), closes #9121
docs: update default for optimizeDeps.disabled (#9078) (4fbf9a8), closes #9078
chore: 3.0 release notes and bump peer deps (#9072) (427ba26), closes #9072

v3.0.0
Compare Source
Main Changes

Vite 3 is out!
Read the Vite 3 Annoucement blog post

New docs theme using VitePress v1 alpha: https://vitejs.dev
Vite CLI

The default dev server port is now 5173, with the preview server starting at 4173.
The default dev server host is now localhost instead of <IP_ADDRESS>.

Compatibility

Vite no longer supports Node v12, which reached its EOL. Node 14.18+ is now required.
Vite is now published as ESM, with a CJS proxy to the ESM entry for compatibility.
The Modern Browser Baseline now targets browsers which support the native ES Modules and native ESM dynamic import and import.meta.
JS file extensions in SSR and lib mode now use a valid extension (js, mjs, or cjs) for output JS entries and chunks based on their format and the package type.

Architecture changes

Vite now avoids full reload during cold start when imports are injected by plugins in while crawling the initial statically imported modules (#8869).
Vite uses ESM for the SSR build by default, and previous SSR externalization heuristics are no longer needed.

import.meta.glob has been improved, read about the new features in the Glob Import Guide
The WebAssembly import API has been revised to avoid collisions with future standards. Read more in the WebAssembly guide
Improved support for relative base.
Experimental Features

Build Advanced Base Options
HMR Partial Accept
Vite now allows the use of esbuild to optimize dependencies during build time avoiding the need of @rollup/plugin-commonjs, removing one of the difference id dependency handling between dev and prod.

Bundle size reduction

Terser is now an optional dependency. If you use build.minify: 'terser', you'll need to install it (npm add -D terser)
node-forge moved out of the monorepo to @vitejs/plugin-basic-ssl

Options that were already deprecated in v2 have been removed.

Note
Before updating, check out the migration guide from v2

Features

feat: expose server resolved urls (#8986) (26bcdc3), closes #8986
feat: show ws connection error (#9007) (da7c3ae), closes #9007
docs: update api-javascript (#8999) (05b17df), closes #8999
refactor: opt-in optimizeDeps during build and SSR (#8965) (f8c8cf2), closes #8965
refactor!: move basic ssl setup to external plugin, fix #8532 (#8961) (5c6cf5a), closes #8532 #8961
feat: avoid scanner during build and only optimize CJS in SSR (#8932) (339d9e3), closes #8932
feat: improved cold start using deps scanner (#8869) (188f188), closes #8869
feat: ssr.optimizeDeps (#8917) (f280dd9), closes #8917
feat: support import assertions (#8937) (2390422), closes #8937
feat: accept AcceptedPlugin type for postcss plugin (#8830) (6886078), closes #8830
feat: ssrBuild flag in config env (#8863) (b6d655a), closes #8863
feat: experimental.renderBuiltUrl (revised build base options) (#8762) (895a7d6), closes #8762
feat: respect esbuild minify config for css (#8811) (d90409e), closes #8811
feat: use esbuild supported feature (#8665) (2061d41), closes #8665
feat: respect esbuild minify config (#8754) (8b77695), closes #8754
feat: update rollup commonjs plugin to v22  (#8743) (d4dcdd1), closes #8743
feat: enable tree-shaking for lib es (#8737) (5dc0f72), closes #8737
feat: supports cts and mts config (#8729) (c2b09db), closes #8729
feat: bump minimum node version to 14.18.0 (#8662) (8a05432), closes #8662
feat: experimental.buildAdvancedBaseOptions (#8450) (8ef7333), closes #8450
feat: export esbuildVersion and rollupVersion (#8675) (15ebe1e), closes #8675
feat: print resolved address for localhost (#8647) (eb52d36), closes #8647
feat(hmr): experimental.hmrPartialAccept (#7324) (83dab7e), closes #7324
refactor: type client maps (#8626) (cf87882), closes #8626
feat: cleaner default dev output (#8638) (dbd9688), closes #8638
feat: legacy options to revert to v2 strategies (#8623) (993b842), closes #8623
feat: support async plugins (#8574) (caa8a58), closes #8574
feat: support cjs noExternal in SSR dev, fix #2579 (#8430) (11d2191), closes #2579 #8430
feat(dev): added assets to manifest (#6649) (cdf744d), closes #6649
feat!: appType (spa, mpa, custom), boolean middlewareMode (#8452) (14db473), closes #8452
feat: 500 response if the node proxy request fails (#7398) (73e1775), closes #7398
feat: expose createFilter util (#8562) (c5c424a), closes #8562
feat: better config __dirname support (#8442) (51e9195), closes #8442
feat: expose version (#8456) (e992594), closes #8456
feat: handle named imports of builtin modules (#8338) (e2e44ff), closes #8338
feat: preserve process env vars in lib build (#8090) (908c9e4), closes #8090
refactor!: make terser an optional dependency (#8049) (164f528), closes #8049
chore: resolve ssr options (#8455) (d97e402), closes #8455
perf: disable postcss sourcemap when unused (#8451) (64fc61c), closes #8451
feat: add ssr.format to force esm output for ssr (#6812) (337b197), closes #6812
feat: default esm SSR build, simplified externalization (#8348) (f8c92d1), closes #8348
feat: derive proper js extension from package type (#8382) (95cdd81), closes #8382
feat: ssr build using optimized deps (#8403) (6a5a5b5), closes #8403
refactor: ExportData.imports to ExportData.hasImports (#8355) (168de2d), closes #8355
feat: scan free dev server (#8319) (3f742b6), closes #8319
feat: non-blocking esbuild optimization at build time (#8280) (909cf9c), closes #8280
feat: non-blocking needs interop (#7568) (531cd7b), closes #7568
refactor(cli): improve output aesthetics (#6997) (809ab47), closes #6997
dx: sourcemap combine debug utils (#8307) (45dba50), closes #8307
feat: sourcemap for importAnalysis (#8258) (a4e4d39), closes #8258
feat: spa option, preview and dev for MPA and SSR apps (#8217) (d7cba46), closes #8217
feat: vite connected logs changed to console.debug (#7733) (9f00c41), closes #7733
feat: worker support query url (#7914) (95297dd), closes #7914
feat(wasm): new wasm plugin (.wasm?init) (#8219) (75c3bf6), closes #8219
build!: bump targets (#8045) (66efd69), closes #8045
feat!: migrate to ESM (#8178) (76fdc27), closes #8178
feat!: relative base (#7644) (09648c2), closes #7644
feat(css): warn if url rewrite has no importer (#8183) (0858450), closes #8183
feat: allow any JS identifier in define, not ASCII-only (#5972) (95eb45b), closes #5972
feat: enable generatedCode: 'es2015' for rollup build (#5018) (46d5e67), closes #5018
feat: rework dynamic-import-vars (#7756) (80d113b), closes #7756
feat: worker emit fileName with config (#7804) (04c2edd), closes #7804
feat(glob-import): support { import: '*' } (#8071) (0b78b2a), closes #8071
build!: remove node v12 support (#7833) (eeac2d2), closes #7833
feat!: rework import.meta.glob (#7537) (330e0a9), closes #7537
feat!: vite dev default port is now 5173 (#8148) (1cc2e2d), closes #8148
refactor: remove deprecated api for 3.0 (#5868) (b5c3709), closes #5868
chore: stabilize experimental api (#7707) (b902932), closes #7707
test: migrate to vitest (#8076) (8148f67), closes #8076

Bug Fixes

fix: prevent production node_env in serve (#9066) (7662998), closes #9066
fix: reload on restart with middleware mode (fixes #9038) (#9040) (e372693), closes #9038 #9040
fix: remove ws is already closed error (#9041) (45b8b53), closes #9041
fix(ssr): sourcemap content (fixes #8657) (#8997) (aff4544), closes #8657 #8997
fix: respect explicitily external/noExternal config (#8983) (e369880), closes #8983
fix: cjs interop export names local clash, fix #8950 (#8953) (2185f72), closes #8950 #8953
fix: handle context resolve options (#8966) (57c6c15), closes #8966
fix: re-encode url to prevent fs.allow bypass (fixes #8498) (#8979) (b835699), closes #8498 #8979
fix(scan): detect import .ts as .js (#8969) (752af6c), closes #8969
fix: ssrBuild is optional, avoid breaking VitePress (#8912) (722f514), closes #8912
fix(css): always use css module content (#8936) (6e0dd3a), closes #8936
fix: avoid optimizing non-optimizable external deps (#8860) (cd8d63b), closes #8860
fix: ensure define overrides import.meta in build (#8892) (7d810a9), closes #8892
fix: ignore Playwright test results directory (#8778) (314c09c), closes #8778
fix: node platform for ssr dev regression (#8840) (7257fd8), closes #8840
fix: optimize deps on dev SSR, builtin imports in node (#8854) (d49856c), closes #8854
fix: prevent crash when the pad amount is negative (#8747) (3af6a1b), closes #8747
fix: reverts #8278 (a0da2f0), closes #8278
fix: server.force deprecation and force on restart API (#8842) (c94f564), closes #8842
fix(deps): update all non-major dependencies (#8802) (a4a634d), closes #8802
fix(hmr): set isSelfAccepting unless it is delayed (#8898) (ae34565), closes #8898
fix(worker): dont throw on import.meta.url in ssr (#8846) (ef749ed), closes #8846
fix: deps optimizer should wait on entries (#8822) (2db1b5b), closes #8822
fix: incorrectly resolving knownJsSrcRE files from root (fixes #4161) (#8808) (e1e426e), closes #4161 #8808
fix: /@fs/ dir traversal with escaped chars (fixes #8498) (#8804) (6851009), closes #8498 #8804
fix: preserve extension of css assets in the manifest (#8768) (9508549), closes #8768
fix: always remove temp config (#8782) (2c2a86b), closes #8782
fix: ensure deps optimizer first run, fixes #8750 (#8775) (3f689a4), closes #8750 #8775
fix: remove buildTimeImportMetaUrl (#8785) (cd32095), closes #8785
fix: skip inline html (#8789) (4a6408b), closes #8789
fix(optimizer): only run require-import conversion if require'd (#8795) (7ae0d3e), closes #8795
perf: avoid sourcemap chains during dev (#8796) (1566f61), closes #8796
perf(lib): improve helper inject regex (#8741) (19fc7e5), closes #8741
fix: avoid type mismatch with Rollup (fix #7843) (#8701) (87e51f7), closes #7843 #8701
fix: optimizeDeps.entries transformRequest url (fix #8719) (#8748) (9208c3b), closes #8719 #8748
fix(hmr): HMR_PORT should not be 'undefined' (#8761) (3271266), closes #8761
fix: respect rollupOptions.external for transitive dependencies (#8679) (4f9097b), closes #8679
fix: use esbuild platform browser/node instead of neutral (#8714) (a201cd4), closes #8714
fix: disable inlineDynamicImports for ssr.target = node (#8641) (3b41a8e), closes #8641
fix: infer hmr ws target by client location (#8650) (4061ee0), closes #8650
fix: non-relative base public paths in CSS files (#8682) (d11d6ea), closes #8682
fix: SSR with relative base (#8683) (c1667bb), closes #8683
fix: filter of BOM tags in json plugin (#8628) (e10530b), closes #8628
fix: revert #5902, fix #8243 (#8654) (1b820da), closes #8243 #8654
fix(optimizer): use simple browser external shim in prod (#8630) (a32c4ba), closes #8630
fix(server): skip localhost verbatim dns lookup (#8642) (7632247), closes #8642
fix(wasm): support inlined WASM in Node < v16 (fix #8620) (#8622) (f586b14), closes #8620 #8622
fix: allow cache overlap in parallel builds (#8592) (2dd0b49), closes #8592
fix: avoid replacing defines and NODE_ENV in optimized deps (fix #8593) (#8606) (739175b), closes #8593 #8606
fix: sequential injection of tags in transformIndexHtml (#5851) (#6901) (649c7f6), closes #5851 #6901
fix(asset): respect assetFileNames if rollupOptions.output is an array (#8561) (4e6c26f), closes #8561
fix(css): escape pattern chars from base path in postcss dir-dependency messages (#7081) (5151e74), closes #7081
fix(optimizer): browser mapping for yarn pnp (#6493) (c1c7af3), closes #6493
fix: add missed JPEG file extensions to KNOWN_ASSET_TYPES (#8565) (2dfc015), closes #8565
fix: default export module transformation for vitest spy (#8567) (d357e33), closes #8567
fix: default host to localhost instead of <IP_ADDRESS> (#8543) (49c0896), closes #8543
fix: dont handle sigterm in middleware mode (#8550) (c6f43dd), closes #8550
fix: mime missing extensions (#8568) (acf3024), closes #8568
fix: objurl for type module, and concurrent tests (#8541) (26ecd5a), closes #8541
fix: outdated optimized dep removed from module graph (#8533) (3f4d22d), closes #8533
fix(config): only rewrite .js loader in loadConfigFromBundledFile (#8556) (2548dd3), closes #8556
fix(deps): update all non-major dependencies (#8558) (9a1fd4c), closes #8558
fix(ssr): dont replace rollup input (#7275) (9a88afa), closes #7275
fix: deps optimizer idle logic for workers (fix #8479) (#8511) (1e05548), closes #8479 #8511
fix: not match \n when injecting esbuild helpers (#8414) (5a57626), closes #8414
fix: respect optimize deps entries (#8489) (fba82d0), closes #8489
fix(optimizer): encode _ and . in different way (#8508) (9065b37), closes #8508
fix(optimizer): external require-import conversion (fixes #2492, #3409) (#8459) (1061bbd), closes #2492 #3409 #8459
fix: make array acornInjectPlugins work (fixes #8410) (#8415) (08d594b), closes #8410 #8415
fix: SSR deep imports externalization (fixes #8420) (#8421) (89d6711), closes #8420 #8421
fix: import.meta.accept() -> import.meta.hot.accept() (#8361) (c5185cf), closes #8361
fix: return type of handleHMRUpdate (#8367) (79d5ce1), closes #8367
fix: sourcemap source point to null (#8299) (356b896), closes #8299
fix: ssr-manifest no base (#8371) (37eb5b3), closes #8371
fix(deps): update all non-major dependencies (#8391) (842f995), closes #8391
fix: preserve annotations during build deps optimization (#8358) (334cd9f), closes #8358
fix: missing types for es-module-lexer (fixes #8349) (#8352) (df2cc3d), closes #8349 #8352
fix(optimizer): transpile before calling transformGlobImport (#8343) (1dbc7cc), closes #8343
fix(deps): update all non-major dependencies (#8281) (c68db4d), closes #8281
fix: expose client dist in exports (#8324) (689adc0), closes #8324
fix(cjs): build cjs for loadEnv (#8305) (80dd2df), closes #8305
fix: correctly replace process.env.NODE_ENV (#8283) (ec52baa), closes #8283
fix: dev sourcemap (#8269) (505f75e), closes #8269
fix: glob types (#8257) (03b227e), closes #8257
fix: srcset handling in html (#6419) (a0ee4ff), closes #6419
fix: support set NODE_ENV in scripts when custom mode option (#8218) (adcf041), closes #8218
fix(hmr): catch thrown errors when connecting to hmr websocket (#7111) (4bc9284), closes #7111
fix(plugin-legacy): respect entryFileNames for polyfill chunks (#8247) (baa9632), closes #8247
fix(plugin-react): broken optimized deps dir check (#8255) (9e2a1ea), closes #8255
fix!: do not fixStacktrace by default (#7995) (23f8e08), closes #7995
fix(glob): properly handles tailing comma (#8181) (462be8e), closes #8181
fix: add hash to lib chunk names (#7190) ([c81cedf](https

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
As this PR has been closed unmerged, Renovate will ignore this upgrade and you will not receive PRs for any future 3.x releases. However, if you upgrade to 3.x manually then Renovate will reenable minor and patch updates automatically.
If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.


Set up a first deployment for testing I24 ssx

Closes #27 and closes #29

Have the edm point to the correct scripts/edms
Have a bash script to run extruder/fixed target experiment

Set up two options for running, one using a bash script and the other entry points, one to be removed after testing and discussion with beamline staff.

This looks like it should work but to call it done it needs some user facing documentation somewhere about how to run it and how to change visit etc. Also, because we have fixed paths in the EDMs it will make testing this really hard. I think #32 would be a better solution, what do you think?

That sounds good, although I'm not sure right now how to get a placehoder location to work in the EDM - a question for controls I guess. In any case, it definitely would work better than the set up I have right now - which is a separate branch where I have the EDMs pointing somewhere locally.
As far as documentation goes, would adding a section for serial to the wiki here work or should it go somewhere else?

This looks like it should work but to call it done it needs some user facing documentation somewhere about how to run it and how to change visit etc. Also, because we have fixed paths in the EDMs it will make testing this really hard. I think #32 would be a better solution, what do you think?

That sounds good, although I'm not sure right now how to get a placehoder location to work in the EDM - a question for controls I guess. In any case, it definitely would work better than the set up I have right now - which is a separate branch where I have the EDMs pointing somewhere locally.
As far as documentation goes, would adding a section for serial to the wiki here work or should it go somewhere else?

I don't mean that the placeholder should work, the idea would be to never run the EDMs with the placeholder values but only the deployed ones that have the placeholders changed to dev/prod locations depending on where you deployed them. Yh, docs on here is fine


sdk/go/aws/secretsmanager/secretVersion.go#L82-L92 are incorrectly cast.

What happened?
It looks like after upgrade to terraform 4.42.0 these items were marked as secret, causing them to be incorrectly cast.
Steps to reproduce
Here is the equivalent in a go program and it causes pulumi to panic:
var so pulumi.StringOutput = pulumi.String("foo").ToStringOutput()
var sin pulumi.StringPtrInput = so
var so2 pulumi.StringPtrOutput = pulumi.ToSecret(sin).(pulumi.StringPtrOutput)

Expected Behavior
The type is cast correctly and it works.
Actual Behavior
It panics
Output of pulumi about
No response
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Here is another example, where you can replicate the issue:
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		// Create an AWS resource (S3 Bucket)
		_, err := secretsmanager.NewSecret(ctx, "my-secret", &secretsmanager.SecretArgs{
			Name:                        pulumi.String("my-secret"),
			Description:                 pulumi.String("My secret"),
			ForceOverwriteReplicaSecret: pulumi.Bool(false),
			Replicas: secretsmanager.SecretReplicaArray{
				&secretsmanager.SecretReplicaArgs{
					Region: pulumi.String("us-east-1"),
				},
			},
		})
		if err != nil {
			return err
		}

	      secretsmanager.NewSecretVersion(ctx, "my-secret-version", &secretsmanager.SecretVersionArgs{
				SecretId:     secret.ID(),
				SecretString: pulumi.String("my-secret-value"),
			})
		return nil
	})
}


VS2017 Hosted Agent: SQL Server Data Tools

I've found closed issue 4028, but could you please provide path to SQL Server Data Tools? I've tried following configuration for SqlPackage capability:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130\SqlPackage.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC
C:\Program Files (x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe
C:\Program Files (x86)\Microsoft SQL Server\130\DAC\bin

Build fails with error message: "Unable to find the location of Dac Framework (SqlPackage.exe) from registry on machine TASKAGENT9-0001".

SqlPackage.exe is currently located at "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130\SqlPackage.exe" on the Hosted VS2017 agent.

We have a different issue for the same, I am closing this issue, please follow this issue: https://github.com/Microsoft/vsts-tasks/issues/4338 for updates

I added a cmdline line task with:
cmd: dir
arguments: /s sqlpackage.exe
(advanced)working dir: C:\
I ran the build against the VS2017 queue (under options):
It's output was:
==============================================================================
Task         : Command Line
Description  : Run a command line with arguments
Version      : 1.1.3
Author       : Microsoft Corporation
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=613735)
==============================================================================
dir /s SqlPackage.exe
 Volume in drive C has no label.
 Volume Serial Number is 2C9B-8253
 Directory of c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130
03/01/2017  04:48 PM           143,040 sqlpackage.exe
               1 File(s)        143,040 bytes

Does that help you?

@OrestTkachuk - closing this again.  I just wanted to illustrate how you can use the system itself to answer questions like that.  hth.

@bryanmacfarlane thanks for your response. As I mentioned before, I tried 'c:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130' path and the result was the same. I am waiting for the resolution of the #4338.

@OrestTkachuk - did you pick the VS2017 queue on the options tab?  The hosted pool queue only has 2015 which would be why it didn't find it.

@bryanmacfarlane - I'm using Hosted VS2017 agent queue. I've attached configuration from the options tab and user, system capabilities from agent configuration.

@OrestTkachuk - OK.  SqlPackage is there per my dir /s output.  Also, don't rely on capabilities as sqlpackage isn't registered as a capability.  Have you tried to call it directly to prove it?  I believe the task isn't finding it via registry (issue you reported) which doesn't mean it isn't there :)  You question was where is it and dir /s answers the question but doesn't fix the task.

@bryanmacfarlane - OK, thank you for the explanation and the example of using Command Line build step, it will help me in further development!

Is there any updates on this? I have SSDT 2017 installed on a build server as a private agent. SQLPackage.exe is not added as a capability even though SSDT 2017 is installed. I tried manually adding the sqlpackage.exe location to the PATH system environment variables and that did not help either. Installing SSDT 2015 adds the SQLPackage.exe as a capability, but not SSDT 2017. The above proposed solution does not help as you need the sqlpackage capability for an Azure Database deploy task.

I have private build agents that for some reason just got the "150" DAC tools installed on half of them but not the other half. These agents all have multiple versions of the DAC tools, but the vsts task seems to just pick the newest, even though for the agents with the newest it doesn't work.
Please, please, please add an option to the vsts task to explicitly specify which version of the DAC tools to use. If I have 130, 140, and 150 in the Visual Studio install path, and my DACPAC only deploys successfully with 140, let me specify that!


bug(matMenu): panelClass and overlayPanelClass don't work with matMenu

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description

Reproduction
Add panelClass and overlayPanelClass to matMenu component. Those classes don't appear in html when opening menu
Expected Behavior
panelClass and overlayPanelClass should work with matMenu
Actual Behavior
panelClass and overlayPanelClass don't work with matMenu
Environment

Angular: 15.2.7
CDK/Material: 15.2.7
Browser(s): Chrome
Operating System (e.g. Windows, macOS, Ubuntu): Windows

The same behavior for v.16

Please provide a stackblitz reproduction of your issue

@Yura13 you can use the class input to apply classes:
<mat-menu
  #aboveMenu="matMenu"
  yPosition="above"
  class="red blue"
>
  <!-- #enddocregion menu-position -->
  <button mat-menu-item>Item 1</button>
  <button mat-menu-item>Item 2</button>
</mat-menu>

As for the overlayPanelClass it does not appear to be an @Input of the MatMenu component. If I'm not mistaken it can only be set via MAT_MENU_DEFAULT_OPTIONS so you could do something like this:
import {Component} from '@angular/core';
import {MAT_MENU_DEFAULT_OPTIONS} from '@angular/material/menu'
/**
 * @title Menu positioning
 */
@Component({
  selector: 'menu-position-example',
  templateUrl: 'menu-position-example.html',
  providers: [
    {
      provide: MAT_MENU_DEFAULT_OPTIONS,
      useValue: {
        overlapTrigger: false,
        xPosition: 'after',
        yPosition: 'below',
        backdropClass: 'cdk-overlay-transparent-backdrop',
        overlayPanelClass: 'green'
      }
    }
  ]
})
export class MenuPositionExample {}

@swseverance
Yes, you are right. Thanks!


Notifications

This pull request shows how the introducing notifications process would work. We would need to send the notifications email a few days before we start sending the notification emails.
Notifications introduction email
https://pm-intelligence-tool-pr-26.herokuapp.com/notifications/email
If the user has not yet set prisons they will be intercepted in the course of this journey and needs to set prisons.
Notifications email
This is the email that will be sent on a Monday
https://pm-intelligence-tool-pr-26.herokuapp.com/notifications/email-notifications
Edit notifications
https://pm-intelligence-tool-pr-26.herokuapp.com/notifications/edit

Notifications intro email
ONE -
I think we need to keep the 2 lines as they introduce the whole thing...
So I think we should put back in...
(under Dear [User]) We've updated the prisoner money intelligence tool.
At the moment, you can search for, identify and monitor transactions in one or many prisons. But we’ve added etc etc
TWO -
This bit at the bottom is important for ongoing improvements AND to keep the relationship between us and them going ie, it needs to be signed off form someone.
So I think under the green button, we DO need...
We hope you find the new features useful. Any feedback really helps us improve the tool further.
Kind regards, Prisoner money team
THREE -
The line:
From now on we'll send you an email you every Monday with an overview of the last weeks transactions.
IS FINE but should read...
But, from now on, we'll email you each Monday with an overview of the past week's transactions.

Notifications email - all fine

Edit email notifications - fine.
Could the question, do you want the emails, be less heavy and smaller?
It fights with the heading at the moment?
Otherwise, great.
As assuming this is for starting up the emails again should a user turn them off, then change their mind?

Updated the description to better reflect the current journey


Add table styling support

A tiny minority of statblocks feature tables.  Table styling needs to be implemented.  See unfathomable song for reference.

In order to elegantly support both light and dark modes, the table background (except the header) should be translucent.  Header text should be white (with !important), and normal text should be the standard text color.

Header: rgba(0, 42, 23, 1.0)
Odd rows: rgba(176, 125, 0, 21.6)
Even rows: rgba(173, 123, 0, 12.2)


BNSS related changes

BNSS related changes to include order for Notice, related tasks and modified case workflow
@manimaarans @anirudh-0 @nileshgupta111 please note
@subhashini-egov  for your approval

also files related to CNR and other case numbers are also added to this @nileshgupta111 @manimaarans . Check docs/case/sequencediagrams folder for the same
The logic for generate CNR and CMP can be used to generate numbers for all other entities


v1.12 [RabbitMQ] use metadata from request as header of the published message

Document https://github.com/dapr/components-contrib/pull/2895

duplicate of https://github.com/dapr/docs/issues/3503


path fixed for windows

Picture ID was computed incorrectly on windows (backslashes instead of slashes) producing an upload error.

LGTM. Thanks for the pull request!


Update docsy to v0.8.0

This is a reset on the upstream tag, and the two last commits apply the changes, to have a clean history.
So this is not mergeable as-is. To use this, the master branch will need to be overwritten. If you would prefer to have all the history, I can try to merge the upstream commits into master instead.
matrix-spec PR: https://github.com/matrix-org/matrix-spec/pull/1699.

I've merged v0.8.0 into master: hopefully I've done it correctly!

It looks correct, except it lacks the latest commit to be able to use this as a Hugo module.

ah right. Added, thanks.


Adding my contribution in Mandelbort set

by this program, one can visualize the nth order of mandelbrot set or Multibrot set
https://github.com/sahiljindalthebest/MandelBrot-Set
PS:- Maybe i have entered a wrong link, but this is my first contribution, so pls forgive me :'(

Thank you for this contribution ❤


TabBarIOS icons not positioned in center on iPad

TabBarIOS item icons not positioned correctly on iPad

Setting the width on the TabBarIOS Item doesn't have any effect. So, may be it is an iOS issue as explained in this SO answer: http://stackoverflow.com/questions/23846478/uitabbar-images-and-title-are-not-center-aligned-in-ipad
If this is correct, may be we need to call setItemWidth through TabBarIOS? (just like setTintColor is called for tintColor) Or is there any workaround?

@facebook-github-bot stack-oveflow

Hey @patelsan, we're a small team and rely on the community to send bugfixes for issues that don't affect fb apps.

I don't know about this specific issue but if you know how to improve the TabBarIOS consider sending a pull request.

@facebook-github-bot bugfix

@facebook-github-bot label Help Wanted

@facebook-github-bot label iOS


setEditMode is not a function

I´m using wizardHandler like a service and the function "WizardHandler.wizard().setEditMode(true)", have an error:

i´m using te same sintax in the documentation and the others finctions works perfectly.

If you look at your angular-wizard JS code what version does in say at the banner at the top.

was a version problem, i update to te latest and works, thanks!


How can I expand accordion only click on the arrow icon.

Hi,
I need help how can I expand collapse accordion on click on the arrow icon.
Please help me.
Thanks in advance.

Not sure I understand your problem @abhinav2331
It's already expanding or collapsing if you click on the arrow icon.
Closing for now.

I think the question is expanding the accordion "only" clicking on icon.


Support form-associated custom elements

Currently Evo does not support form-associated custom elements and it should.

Related to issue #41


Packaging question: Keybase installed in /opt

On Linux systems, Keybase is installed in /opt/keybase.
Because of https://github.com/projectatomic/rpm-ostree/issues/233, this makes Keybase currently not installable via the Keybase RPMs on an OS making use of rpm-ostree.
Although this is an issue with rpm-ostree and not Keybase itself, this led me to ask: why is Keybase installed in /opt/keybase rather than /usr/share/keybase ? /usr/share is where Atom and Visual Studio Code put most of their files. Both of them are based on Electron, like keybase; so this would seem like a natural place for Keybase to put its files as well.
Is there a specific reason to put files in /opt ? And if not, would it pose too many problems to move them to /usr/share, because of other things to consider regarding packaging ?

We install the Go binaries (service, CLI, KBFS) in /usr/bin/ but put the Electron/GUI binary in /opt/ because we do not integrate with system electron, if installed, but provide our own electron binary.
For example, in the Arch VSCode package https://aur.archlinux.org/packages/visual-studio-code-bin/?O=10&PP=10, which doesn't depend on the Arch electron package, the vscode binary is installed into /opt/.

I see. The AUR package is unofficial though; the official VSCode deb and rpm packages on the other hand use /usr/share/code, this is where they put their own electron

The version of keybase-gui which is available in the Arch Linux community repository, uploaded by me, does in fact use /usr/share. But I am also taking advantage of the system electron package.
It is pretty common on Linux for applications that install fully relocatable prebuilt binaries in a totally standalone manner, to do so in /opt. Keybase is not unusual in this respect. This seems like a generally broad category of issue which rpm-ostree needs to handle.
Note: There appears to be an existing issue for this at https://github.com/keybase/keybase-issues/issues/3211

I see. The AUR package is unofficial though; the official VSCode deb and rpm packages on the other hand use /usr/share/code, this is where they put their own electron

This is completely and utterly wrong, as /usr/share is arch-independent data and Debian at least has extremely strict rules against this -- it is explicitly incompatible with the entire concept of multi-arch.

How is this utterly wrong ? I can rpm -ql code on my system and I do see it installed in /usr/share/code.
What I mean by "official" is officially released by Microsoft, not officially packaged by distro package maintainers.

Anyway, I'm closing this as it's a duplicate of the issue you mentioned.

Because Debian officially supports multi-arch, which means it is valid to install both the i386 and amd64 packages simultaneously on one root filesystem, and therefore per policy they cannot install conflicting paths on a Debian system.
Arguably this means /opt is just as problematic, but in that case the use of /opt makes it quite plain that the software is not intended to conform to system-integrated packaging guidelines and certainly isn't multi-arch compliant.
It also violates the FHS even if Debian did not have policies about it, which is really a more pertinent point. You're supposed to use /usr/share/${PACKAGE} for arch-independent data files, and /usr/lib/${PACKAGE} for arch-dependent data like binaries.

This was fixed with https://github.com/projectatomic/rpm-ostree/commit/a4c2df0bdfdc554f16ce19b446ae00cd2a60cdbc. On systems using rpm-ostree v2019.3 and onward, /opt will be redirected to /usr/lib/opt during installation; it's been tested with Google Chrome, but it should probably work with anything that's installed in /opt. The only caveat is that packages can't write to /opt at runtime, but Keybase doesn't do any such thing as far as I know.


Error while requesting the Google Analytics API

Hi, I'm trying to get data from Google analytics. This is my code:
using System;
using System.Security.Cryptography.X509Certificates;
using Google.Apis.Analytics.v3;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Auth.OAuth2.Responses;
using Google.Apis.Services;

namespace GoogleIntegration
{
    class Program
    {
        private static string keyFilePath = @"key.p12";
        private static string serviceAccountEmail =<EMAIL_ADDRESS>        private static string keyPassword = "notasecret";
        private static string websiteCode = "123456";
        private static AnalyticsService service = null;

        static void Main(string[] args)
        {
            try
            {
                var certificate = new X509Certificate2(keyFilePath, keyPassword, X509KeyStorageFlags.Exportable);
                var scopes = new[]
                {
                    AnalyticsService.Scope.Analytics, // view and manage your analytics data
                    AnalyticsService.Scope.AnalyticsEdit, // edit management actives
                    AnalyticsService.Scope.AnalyticsManageUsers, // manage users
                    AnalyticsService.Scope.AnalyticsReadonly
                };

                var credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail)
                {
                    Scopes = scopes
                }.FromCertificate(certificate));

                service = new AnalyticsService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credential
                });

                DataResource.GaResource.GetRequest request = service.Data.Ga.Get(
                    "ga:" + websiteCode,
                    DateTime.Today.AddDays(-15).ToString("yyyy-MM-dd"),
                    DateTime.Today.ToString("yyyy-MM-dd"),
                    "ga:sessions");
                request.Dimensions = "ga:year,ga:month,ga:day";
                var data = request.Execute();
            }
            catch (TokenResponseException e)
            {
                Console.WriteLine("Status "+e.StatusCode);
                Console.WriteLine("Error " + e.Error);
                Console.WriteLine("HelpLink " + e.HelpLink);
                Console.WriteLine("InnerException " + e.InnerException);
                Console.WriteLine("Message " + e.Message);
                Console.WriteLine("StackTrace " + e.StackTrace);
                Console.ReadKey();
            }
        }
    }
}

When the query is executed, the following error is returned: Error:"invalid_client", Description:"The OAuth client was not found.", Uri:""
Tell me what I'm doing wrong?

Your service account email<EMAIL_ADDRESS>looks wrong.
This should be the Service Account ID that you can see on the "IAM & admin"/"Service Accounts" page on the console.cloud.google.com for your project.
It will probably end with something like .iam.gserviceaccount.com

Thank you, changed email, everything worked.

:)


Move code copy button to python

Adding this to every code block in python at build time should reduce javascript at runtime.

moved a lot of static DOM manipulation from JavaScript to a new postprocessing module that manipulates the HTML after Sphinx is done with it.


multi GPU: select GPU to use and #to use

in order to use GPUs 3,4 in a system with 4 GPUS, for examples, we would need to change https://github.com/soumith/imagenet-multiGPU.torch/blob/master/models/alexnet_ccn2.lua#L38 to "for i=opt.GPU,nGPU do", right?

Francisco Massa suggest: just use CUDA_VISIBLE_DEVICES=2,3 before launching your script


Compbiomed devel

Modification to moduleHeatmap (now stops when counts is not a matrix and not just NULL)
Added unit tests to StateHeatmap.R and model_performance.R

Pull Request Test Coverage Report for Build 510

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 87.574%

Totals

Change from base Build 507:
0.2%

Covered Lines:
2220

Relevant Lines:
2535

💛  - Coveralls


NTP-client inline sendTo into sendPacket

Inline the sendTo function into sendPacket. (sendPacket is the only user of sendTo).
Handle all IO Exceptions in sendTo and remove SendToException.
This changes how sendPacket works:
If I understand correctly, the old code does the following:

send IPv6 (-> suppose that works OK)
send IPv4 (-> suppose the throws an exception)
try to resend IPv6

Is that the desired behavior ?
The need to resend in the exception handler seems to be an artifact of the way exceptions are handled ?
The new code would (in the These case) to send to IPv6 and IPv4 exactly once,
and trace exceptions but ignore them otherwise.

So there's a slight change of behaviour here right?

No there is a big change because I did not understand the original version at first place.
I hope understand some things better..
The original version would retry infinitely often while the new version never retries.
Original :
IPv6 (fail)
forever : retry IPv4.
Maybe I still have it wrong, but i think the original version first tries to
send with IPv6.. and if this succeeds it still also sends with IPv4
(which is probably not wanted)
At least that is my understanding of Semiring (IO ()).

IMHO there are too many things at once: The existing code, some new code, and what everybody thinks the code should do.
Maybe its an overkill but it would be nice to have a spec of the agreed-on desired behavior.
I just took the existing code as starting point but to me its unclear what it does and its also unclear
if this is what we want the code to do.

There is is test in an other part of the code that counts the number of incoming replies.
(I don't think this is really needed)

@MarcFontaine the IO () semigroup will simply do both IO actions synchroniously:
ghci> putStrLn "a" <> putStrLn "b"
a
b

Thus a foldThese will send both requests: IPv4 and IPv6 one in sequence. If the first IO throws an unhandled exception the other one will never execute.  I think <> is equal >> for IO ().
Do we need to send both IPv6 and IPv4? Maybe it's enough to send one and fallback to the other if there was an error.  It would be also nice to have some retry policy: send next request after some delay.  I would suggest an exponential backoff bounded by 300s.
At the end we would like to have 3 responses from 3 different servers.  The receiver side then picks the median if I remember correctly.


Is my work items are accessible to you or any one?

Is my work items are accessible to anyone outside of my organization?

No, the same as the other tabs on the sprint (Board, Backlog tabs) on your TFS.
It's not sending your data to any remote service.


Show popup on default

Resolves #324
Changes:

popup text
popup default is visible

Please don't merge this yet because it makes the mobile experience worse. I'm rethinking the UI.

We got rid of the alert and instead are explaining more context in the counter.


Double Barrel Trait

In GitLab by @AGulyaev12 on Jun 3, 2022, 01:21
Is there any way to automatically increase damage die for guns with double barrel trait ? Usually you need to go to the charsheet and mess with the gun's characteristcs back and forth.

The new version of PF2e Ranged Combat has now been released!

Double-Barrel implemented in this commit.


"Albeștii Ungureni" is listed in the drop-down menu

Description:
"Albeștii Ungureni" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Albeștii Ungureni" in the search bar.

Expected results
The location is listed in the drop-down menu as "Albeștii Ungureni, Argeș (Albeștii de Argeș)".


[BUG] Force refresh when viewing a game

This is being caused by the bootstrap order for socket connection.


Help Files Needed

The app is very intuitive in many respects and works great. For users coming from Steemit you can guess how it works but for new users especially there is not a lot of help available for example.
Pop up help when you hover over a button would be helpful
A help file that explains the basic navigation such as Tags, Chat, Writing (Who is listed here? is it just people online etc)
How to upload photos, basic markdown etc

It's coming in 2 steps :

Tomorrow or monday we will commit update on the Help page, with detailed FAQ and basics Q&A to help people understand Steem & Busy.
Next few month we plan to work on a redesign so it will basically include a full interface rework, and adding an onboarding process to help new signups to understand the platform and interface with quick tutorials

Any progress on this? @mynameisek

Sorry I have some pain finishing this Help File, because I started 2 differents works and it is actually heavier than expected, at least for the important questions:

one is FAQ with a list of Q&A about Steem/Busy, based on a tremendous work by shenanigator, after I talked with him about writing the Busy FAQ. But finally had a really hard time correcting the answers about Steem blockchain itself because of December HardFork, and constant changing rules

second is a Glossary, a list of terms, vocabulary, definitions on Busy and Steem

both are pretty advanced, I'd say 85% for FAQ and 60% for Glossary, but everytime I start working on it to finish the final 15% I end up rectifying my (not totally satisfying) answers, and it never seems to end as the platform also evolve and I see my non-opened answers could mislead the users..
I allowed myself few more days to improve a little bit more this mess and I'll have to accept to commit a first version soon or later, then we can improve later.
let's say by wednesday/thursday we can have it online, thank you for your patience

I struggle with the same thing all the times (unnecessary maximalism).
I expect continuous changes there, especially in FAQ. I hate to say that but sometimes rough-and-ready is the better choice. (I have never been able to force myself to that, though.) :smiley:
If I had to chose which is more important, I'd chose the Glossary. The most annoying thing when you start something new is when you don't know what others are talking about.

Closing due to inactivity. If you're still having issues please open another issue.


🐛 [Firebase_messaging] There is a delay when send FCM via firebase console, but no delay via Postman use FCM API

Bug report
Describe the bug
I use FCM to send notifications when new messages coming in my flutter app's chat module. In the early implementation, I send FCM manually via firebase console and with whatever I did, there were always nearly 3 - 10 mins delay when receive notifications on my devices (simulator or physical device). I even tried to create a new clean flutter app used for receiving notifications, the delay still exists.
Steps to reproduce
Steps to reproduce the behavior:

Create a new flutter app and new firebase project
Set up firebase messaging on the newly created app
Go to firebase console and send notifications manually
There is a delay between FCM sent in console and received on device

Expected behavior
I have tired FCM early 2022, there is no delay when use firebase console to send FCM, but the delay exist now
Sample project
No sample project
Additional context
Add any other context about the problem here.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand

 flutter doctor -v
[✓] Flutter (Channel stable, 3.0.1, on macOS 12.4 21F79 darwin-arm, locale en-AU)
    • Flutter version 3.0.1 at /Applications/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision fb57da5f94 (3 months ago), 2022-05-19 15:50:29 -0700
    • Engine revision caaafc5604
    • Dart version 2.17.1
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /xxx/xxx/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.69.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.46.0

[✓] Connected device (4 available)
xxx

[✓] HTTP Host Availability
    • All required HTTP hosts are available

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
PASTE OUTPUT INSIDE HERE

@FortySL
Flutterfire doesn't control the behavior / timing of the notifications being sent / received, so you'll need to reach out to Firebase support for further resolution.
Closing from here, as this isn't a plugin issue.


It's still there after delete  rawcontacts, it's wired!

Use this code to delete raw contacts, it returns true.
val contacts = Contacts(mContext)
val blankRawContacts = contacts.accounts().queryRawContacts().where { RawContactsFields.Id `in` request.ids }.find()
val rawContacts = blankRawContacts.mapNotNull { it.toRawContact(contacts) }
val isSuccessful = contacts.delete().rawContacts(rawContacts).commit().isSuccessful

Then use this code to query all raw contacts
   fun getAllContacts(context: Context): List<ContactBasicInfo> {
        val contacts =
            Contacts(context).query().orderBy(ContactsFields.DisplayNamePrimary.asc()).find()

        val rawContacts = mutableListOf<ContactBasicInfo>()

        contacts.forEach { contact ->
            contact.rawContacts.forEach { rawContact ->
                val contactBasicInfo = ContactBasicInfo(
                    id = rawContact.id,
                    contactId = contact.id,
                    displayNamePrimary = rawContact.name?.displayName,
                    phoneNumber = rawContact.phones.sortedByDescending { it.isSuperPrimary }
                        .sortedByDescending { it.isPrimary }
                        .map { it.number }
                        .joinToString(separator = ",")
                )
                rawContacts.add(contactBasicInfo)
            }
        }

        return rawContacts
    }

Returned results still contain the raw contacts deleted.

@yuanhoujun, this sounds like a duplicate of issue #172 that has been fixed since version 0.2.0. What version of the library are you using? If you are not using 0.2.0 or above, could you please upgrade and let me know if the issue persists?

@yuanhoujun, also looking at your code, I see that there are some improvements that can be made 😁
Instead of,
fun getAllContacts(context: Context): List<ContactBasicInfo> {
        val contacts =
            Contacts(context).query().orderBy(ContactsFields.DisplayNamePrimary.asc()).find()

        val rawContacts = mutableListOf<ContactBasicInfo>()

        contacts.forEach { contact ->
            contact.rawContacts.forEach { rawContact ->
                val contactBasicInfo = ContactBasicInfo(
                    id = rawContact.id,
                    contactId = contact.id,
                    displayNamePrimary = rawContact.name?.displayName,
                    phoneNumber = rawContact.phones.sortedByDescending { it.isSuperPrimary }
                        .sortedByDescending { it.isPrimary }
                        .map { it.number }
                        .joinToString(separator = ",")
                )
                rawContacts.add(contactBasicInfo)
            }
        }

        return rawContacts
    }

You could just use a flat map,
fun getAllContacts(context: Context): List<ContactBasicInfo> = Contacts(context)
        .query()
        .orderBy(ContactsFields.DisplayNamePrimary.asc())
        .find()
        .flatMap { it.rawContacts }
        .map { rawContact ->
             ContactBasicInfo(
                    id = rawContact.id,
                    contactId = rawContact.contactId,
                    displayNamePrimary = rawContact.name?.displayName,
                    phoneNumber = rawContact.phones.sortedByDescending { it.isSuperPrimary }
                        .sortedByDescending { it.isPrimary }
                        .map { it.number }
                        .joinToString(separator = ",")
                )
        }

@yuanhoujun, this sounds like a duplicate of issue #172 that has been fixed since version 0.2.0. What version of the library are you using? If you are not using 0.2.0 or above, could you please upgrade and let me know if the issue persists?

0.2.1

@yuanhoujun, also looking at your code, I see that there are some improvements that can be made 😁
Instead of,
fun getAllContacts(context: Context): List<ContactBasicInfo> {
        val contacts =
            Contacts(context).query().orderBy(ContactsFields.DisplayNamePrimary.asc()).find()

        val rawContacts = mutableListOf<ContactBasicInfo>()

        contacts.forEach { contact ->
            contact.rawContacts.forEach { rawContact ->
                val contactBasicInfo = ContactBasicInfo(
                    id = rawContact.id,
                    contactId = contact.id,
                    displayNamePrimary = rawContact.name?.displayName,
                    phoneNumber = rawContact.phones.sortedByDescending { it.isSuperPrimary }
                        .sortedByDescending { it.isPrimary }
                        .map { it.number }
                        .joinToString(separator = ",")
                )
                rawContacts.add(contactBasicInfo)
            }
        }

        return rawContacts
    }

You could just use a flat map,
fun getAllContacts(context: Context): List<ContactBasicInfo> = Contacts(context)
        .query()
        .orderBy(ContactsFields.DisplayNamePrimary.asc())
        .find()
        .flatMap { it.rawContacts }
        .map { rawContact ->
             ContactBasicInfo(
                    id = rawContact.id,
                    contactId = rawContact.contactId,
                    displayNamePrimary = rawContact.name?.displayName,
                    phoneNumber = rawContact.phones.sortedByDescending { it.isSuperPrimary }
                        .sortedByDescending { it.isPrimary }
                        .map { it.number }
                        .joinToString(separator = ",")
                )
        }

Yep, thank you for your advice.

@yuanhoujun, this sounds like a duplicate of issue #172 that has been fixed since version 0.2.0. What version of the library are you using? If you are not using 0.2.0 or above, could you please upgrade and let me know if the issue persists?

0.2.1

I was unable to reproduce the issue on my end just now. I'll have to investigate more tomorrow. Could you please share some logs with me? When you create your Contacts instances, please create them like this;
 Contacts(context, logger = AndroidLogger(redactMessages = true))

Filter the LogCat for "ContactsDebug". Please copy-paste the log output here so I can see a bit more details 🙏

---------------------------- PROCESS ENDED (17615) for package com.youngfeng.android.assistant ----------------------------
---------------------------- PROCESS STARTED (7947) for package com.youngfeng.android.assistant ----------------------------
2022-06-14 13:38:53.409  7947-8090  ContactsDebug           com.youngfeng.android.assistant      D  Query {
                                                                                includeBlanks: true
                                                                                rawContactsWhere: null
                                                                                include: data2, data3, data1, data4, data5, data6, data7, data8, data9, data10, contact_id, lookup, display_name, display_name_alt, contact_last_updated_timestamp, photo_uri, photo_thumb_uri, photo_file_id, has_phone_number, _id, starred, custom_ringtone, send_to_voicemail, is_primary, is_super_primary, mimetype, data14, raw_contact_id
                                                                                where: null
                                                                                orderBy: display_name COLLATE NOCASE ASC
                                                                                limit:<PHONE_NUMBER>
                                                                                offset: 0
                                                                                hasPermission: true
                                                                                isRedacted: true
                                                                                }
2022-06-14 13:38:53.981  7947-8090  ContactsDebug           com.youngfeng.android.assistant      D                     Query.Result {
                                                                                Number of contacts found: 545
                                                                                First contact: Contact(id=110, lookupKey=792i21048505621315840, rawContacts=[RawContact(id=110, contactId=110, addresses=[], emails=[], events=[], groupMemberships=[], ims=[], name=null, nickname=null, note=null, organization=Organization(id=283, rawContactId=110, contactId=110, isPrimary=false, isSuperPrimary=false, company=null, title=****, department=null, jobDescription=null, officeLocation=null, symbol=null, phoneticName=null, isRedacted=true), phones=[], photo=null, relations=[], sipAddress=null, websites=[], customDataEntities={}, isRedacted=true)], displayNamePrimary=****, displayNameAlt=****, lastUpdatedTimestamp=Wed Jan 05 09:51:49 GMT+08:00 2022, options=Options(id=110, starred=false, customRingtone=null, sendToVoicemail=false, isRedacted=true), photoFileId=null, photoUri=null, photoThumbnailUri=null, hasPhoneNumber=false, isRedacted=true)
                                                                                isRedacted: true
                                                                                } (538 milliseconds)
2022-06-14 13:39:24.077  7947-8195  ContactsDebug           com.youngfeng.android.assistant      D  AccountsRawContactsQuery {
                                                                                isProfile: false
                                                                                rawContactsWhere: null
                                                                                where: _id IN ('***')
                                                                                orderBy: _id COLLATE NOCASE ASC
                                                                                limit:<PHONE_NUMBER>
                                                                                offset: 0
                                                                                hasPermission: true
                                                                                isRedacted: true
                                                                                }
2022-06-14 13:39:24.110  7947-8195  ContactsDebug           com.youngfeng.android.assistant      D                     AccountsRawContactsQuery.Result {
                                                                                Number of raw contacts found: 1
                                                                                First raw contact: BlankRawContact(id=110, contactId=110, displayNamePrimary=****, displayNameAlt=****, isRedacted=true)
                                                                                isRedacted: true
                                                                                } (33 milliseconds)
2022-06-14 13:39:24.114  7947-8195  ContactsDebug           com.youngfeng.android.assistant      D  Query {
                                                                                includeBlanks: true
                                                                                rawContactsWhere: null
                                                                                include: data2, data3, data1, data4, data5, data6, data7, data8, data9, data10, contact_id, lookup, display_name, display_name_alt, contact_last_updated_timestamp, photo_uri, photo_thumb_uri, photo_file_id, has_phone_number, _id, starred, custom_ringtone, send_to_voicemail, is_primary, is_super_primary, mimetype, data14, raw_contact_id
                                                                                where: raw_contact_id = '***'
                                                                                orderBy: _id COLLATE NOCASE ASC
                                                                                limit:<PHONE_NUMBER>
                                                                                offset: 0
                                                                                hasPermission: true
                                                                                isRedacted: true
                                                                                }
2022-06-14 13:39:24.172  7947-8195  ContactsDebug           com.youngfeng.android.assistant      D                     Query.Result {
                                                                                Number of contacts found: 1
                                                                                First contact: Contact(id=110, lookupKey=792i21048505621315840, rawContacts=[RawContact(id=110, contactId=110, addresses=[], emails=[], events=[], groupMemberships=[], ims=[], name=null, nickname=null, note=null, organization=Organization(id=283, rawContactId=110, contactId=110, isPrimary=false, isSuperPrimary=false, company=null, title=****, department=null, jobDescription=null, officeLocation=null, symbol=null, phoneticName=null, isRedacted=true), phones=[], photo=null, relations=[], sipAddress=null, websites=[], customDataEntities={}, isRedacted=true)], displayNamePrimary=****, displayNameAlt=****, lastUpdatedTimestamp=Wed Jan 05 09:51:49 GMT+08:00 2022, options=Options(id=110, starred=false, customRingtone=null, sendToVoicemail=false, isRedacted=true), photoFileId=null, photoUri=null, photoThumbnailUri=null, hasPhoneNumber=false, isRedacted=true)
                                                                                isRedacted: true
                                                                                } (56 milliseconds)
2022-06-14 13:39:24.175  7947-8195  ContactsDebug           com.youngfeng.android.assistant      D  Delete {
                                                                                rawContactIds: [110]
                                                                                contactIds: []
                                                                                hasPermission: true
                                                                                isRedacted: true
                                                                                }
2022-06-14 13:39:24.194  7947-8195  ContactsDebug           com.youngfeng.android.assistant      D                     Delete.Result {
                                                                                isSuccessful: true
                                                                                rawContactIdsResultMap: {110=true}
                                                                                contactIdsResultMap: {}
                                                                                isRedacted: true
                                                                                } (20 milliseconds)
2022-06-14 13:39:26.858  7947-8195  ContactsDebug           com.youngfeng.android.assistant      D  Query {
                                                                                includeBlanks: true
                                                                                rawContactsWhere: null
                                                                                include: data2, data3, data1, data4, data5, data6, data7, data8, data9, data10, contact_id, lookup, display_name, display_name_alt, contact_last_updated_timestamp, photo_uri, photo_thumb_uri, photo_file_id, has_phone_number, _id, starred, custom_ringtone, send_to_voicemail, is_primary, is_super_primary, mimetype, data14, raw_contact_id
                                                                                where: null
                                                                                orderBy: display_name COLLATE NOCASE ASC
                                                                                limit:<PHONE_NUMBER>
                                                                                offset: 0
                                                                                hasPermission: true
                                                                                isRedacted: true
                                                                                }
2022-06-14 13:39:27.218  7947-8195  ContactsDebug           com.youngfeng.android.assistant      D                     Query.Result {
                                                                                Number of contacts found: 545
                                                                                First contact: Contact(id=110, lookupKey=792i21048505621315840, rawContacts=[RawContact(id=110, contactId=110, addresses=[], emails=[], events=[], groupMemberships=[], ims=[], name=null, nickname=null, note=null, organization=Organization(id=283, rawContactId=110, contactId=110, isPrimary=false, isSuperPrimary=false, company=null, title=****, department=null, jobDescription=null, officeLocation=null, symbol=null, phoneticName=null, isRedacted=true), phones=[], photo=null, relations=[], sipAddress=null, websites=[], customDataEntities={}, isRedacted=true)], displayNamePrimary=****, displayNameAlt=****, lastUpdatedTimestamp=Wed Jan 05 09:51:49 GMT+08:00 2022, options=Options(id=110, starred=false, customRingtone=null, sendToVoicemail=false, isRedacted=true), photoFileId=null, photoUri=null, photoThumbnailUri=null, hasPhoneNumber=false, isRedacted=true)
                                                                                isRedacted: true
                                                                                } (340 milliseconds)

@yuanhoujun, I also just noticed something that can be improved by the library thanks to your code sample!
val contacts = Contacts(mContext)
val blankRawContacts = contacts.accounts().queryRawContacts().where { RawContactsFields.Id `in` request.ids }.find()
val rawContacts = blankRawContacts.mapNotNull { it.toRawContact(contacts) }
val isSuccessful = contacts.delete().rawContacts(rawContacts).commit().isSuccessful

I created an issue (#220) that will simplify this to,
val contacts = Contacts(mContext)
val blankRawContacts = contacts.accounts().queryRawContacts().where { RawContactsFields.Id `in` request.ids }.find()
val isSuccessful = contacts.delete().rawContacts(blankRawContacts).commit().isSuccessful

That will remove one database query per blankRawContacts, which is done every time it.toRawContact(contacts) is invoked.
I will also work on an existing issue (#158) that I have been planning to work on that will simplify this even more to,
val isSuccessful = Contacts(mContext).delete().rawContactsWhere { RawContact.Id `in` request.ids }.commit().isSuccessful

Yep, I noticed #158, That'll be more natural and better performance. so when will you release this feature?

Yep, I noticed #158, That'll be more natural and better performance. so when will you release this feature?

Because you are interested in it, I will aim to have #158, #220, and this bug you created by end of this week.
I will probably create another release just for these three issues. So, it will be in 0.2.2 =)

---------------------------- PROCESS STARTED (7947) for package com.youngfeng.android.assistant ----------------------------
...

I'll look at these logs tomorrow. @yuanhoujun, could you also please provide me with even more logs? It would help me a lot to see the state of the RawContacts table before and after you commit the delete operation.
Please temporarily install the debug module;
 implementation 'com.github.vestrel00.contacts-android:debug:0.2.1'

Then, log the RawContacts table before and after the delete operation. Also, please log the rawContactIds that should be deleted. So, something like;
Log.d("ContactsDebug", "DELETING RAW CONTACTS WITH IDS: ${request.ids}")
mContext.logRawContactsTable()

val contacts = Contacts(mContext)
val blankRawContacts = contacts.accounts().queryRawContacts().where { RawContactsFields.Id `in` request.ids }.find()
val rawContacts = blankRawContacts.mapNotNull { it.toRawContact(contacts) }
val isSuccessful = contacts.delete().rawContacts(rawContacts).commit().isSuccessful

mContext.logRawContactsTable()

Filter the LogCat with "ContactsDebug" and paste the output here. Please be careful NOT to paste sensitive personal information such as RawContact names. I advise you to use fake test data.

It's really personal, Could you add me on WeChat or Telegram? I can post these logs for you. I'm not sure this problem will appear if I use fake test data or another phone.

My telegram account: ouyangfeng2016, Wechat: ouyangfeng_office

It's really personal, Could you add me on WeChat or Telegram? I can post these logs for you. I'm not sure this problem will appear if I use fake test data or another phone.
My telegram account: ouyangfeng2016, Wechat: ouyangfeng_office

It's not necessary to WeChat or Telegram yet, but I may want to if I can't figure this out tomorrow.
I really only need to answer these questions.

Are the RawContacts represented by request.ids deleted from the RawContacts table?
If they are NOT deleted, what is the value of the deleted column?

Could you do what I suggested in https://github.com/vestrel00/contacts-android/issues/219#issuecomment-1154777614 but instead of pasting the entire RawContacts table, you would just look at it yourself and give me the answers to my two questions above? All you need to do is check if the RawContacts row with ids in request.ids are still there after the call to commit().

@yuanhoujun, based on the logs. I see that the RawContact you are attempting to delete is NOT getting deleted! It is also not even being marked for deletion. I think I know what's going on here.
I noticed that the RawContact you are trying to delete belongs to a com.xiaomi account. I think that this is a read-only RawContact; https://developer.android.com/reference/android/provider/ContactsContract.RawContactsColumns#RAW_CONTACT_IS_READ_ONLY

I was going to ask you to log the value of ContactsContract.RawContacts.RAW_CONTACT_IS_READ_ONLY in the RawContacts table but the query keeps throwing an exception when adding that column 😬
If it is read-only, then we might not be able to delete it at all. The only way these RawContacts can be deleted is from the remote server/service that belongs to the com.xiaomi Account. You can also implement your own SyncAdapters, which is currently out of scope of this library.
BUT before we come to any conclusions, could you try deleting this Contact/RawContact using a different Contacts app?
I'm not sure what Contacts apps are available in your region. I typically use the native AOSP Contacts app that comes pre-installed with most US Android phones. I also use;

Google Contacts: https://play.google.com/store/apps/details?id=com.google.android.contacts
Samsung Contacts: https://samsung-contacts.en.uptodown.com/android

Let me know if you are able to delete the Contact/RawContact using any of those apps (or similar apps) 🙏

I did verify that there is a bug in the delete APIs. The Delete, ProfileDelete, and DataDelete APIs can return success=true even if the delete actually failed. I created a separate issue for this; #223
The best that I might be able to do for this thread is to fix the issue ^ so that val isSuccessful = contacts.delete().rawContacts(rawContacts).commit().isSuccessful will return false instead of true. You will at least be able to tell your users that the contact could not be deleted.
I am willing to help do more but I will wait until you try deleting Contact/RawContact using a different Contacts app.
I'll convert this issue to a discussion for now.


updates descriptions for python support

Besides this change, we should probably not use the 'Fork it' language since people generally just want to use the software (not develop it). Instead, we should say either install with ..., or see the repo for more information.


Fixes for partial sketch serialization

What does this PR do?
This PR fixes two bugs:

During sketch serialization, if MarshalSplitCompress fails after creating some payloads, the failure would cause the fallback codepath to be executed, ignoring those payloads that were created successfully. Fixed by 81157c6dd852beace699e47be67f9409aaf5ab52
If the above failure happens on the last metric, then when serializePayloadProto is called, the SketchSeriesList will be empty, causing the SplitPayloads to be called with an empty payload, leading to a runtime divide-by-zero panic. Fixed by 1e358031cf84ecad8ea0d5a8f9af6bbce2a58033

Motivation
Investigating runtime divide-by-zero panic.
Additional Notes
Two related changes that are not directly bug fixes: renaming a confusingly-named function and extra debug logging that could be useful for future issues are split out into separate commits.
Possible Drawbacks / Trade-offs
Describe how to test/QA your changes
Use lading to submit sketches via dogstatsd. The following lading config is known to reproduce this type of failure without this change. Note that https://github.com/DataDog/datadog-agent/pull/15613 also fixes this and QA for these two are the same.

Clone and build lading from the specified commit
a. git clone git@github.com:DataDog/lading.git
b. cd lading && git checkout 2e8462ab60fff6630d1e8138176735f07a37ce4d
c. cargo build
Using the below configs, run lading against the RC build and ensure that there are no errors in the agent logs and there is no panic during execution.

Lading cmd:
./target/debug/lading --experiment-duration-seconds 400 --config-path=./lading.yaml --target-stderr-path=./stderr.txt --target-stdout-path=./stdout.txt  --target-path ~/dev/datadog-agent/bin/agent/agent -- -c ./agent-under-test-config.yaml run
lading.yaml:
generator:
  - unix_datagram:
      seed: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,
             59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131]
      path: "/tmp/dsd.socket"
      variant: "dogstatsd"
      bytes_per_second: "256 Kb"
      block_sizes: ["256b", "512b", "1Kb", "2Kb", "3Kb", "4Kb", "5Kb", "6Kb"]
      maximum_prebuild_cache_size_bytes: "500 Mb"

blackhole:
  - http:
      binding_addr: "<IP_ADDRESS>:9091"
  - http:
      binding_addr: "<IP_ADDRESS>:9092"

datadog.yaml:
api_key:<PHONE_NUMBER>0000000000000000000000
auth_token_file_path: /tmp/agent-auth-token
hostname: smp-regression
log_level: debug

dd_url: http://<IP_ADDRESS>:9092

confd_path: /etc/datadog-agent/conf.d

# Disable cloud detection. This stops the Agent from poking around the
# execution environment & network. This is particularly important if the target
# has network access.
cloud_provider_metadata: []

dogstatsd_socket: '/tmp/dsd.socket'

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

Thanks for the inline comments, will clean up the error handling a bit here.
As for fixing the wrong problem, I agree with you. The proper fix for why did MarshalSplitCompress fail is in https://github.com/DataDog/datadog-agent/pull/15613

For now I left the fallback codepath if the config option is explicitly turning off the streaming version, with the thought we can give it a release or two for any customers relying on this to speak up.
Does this seem like a reasonable approach @vickenty ? Or do you think that has been the default long enough we can simply remove the fallback codepath from serializer.SendSketch?