feat: defrag function for FreeList and UnorderedMap

Closes #990
defrag function for FreeList will replace Solt::Empty entries in front of the list with ``Slot::Occupied` entries from back of the list. Please see the issue for detailed description.

@austinabell Did you had time to review the PR? I can make incremental changes to the PR. If you want a conceptually different solution then this is where I stop. I'll close this PR and keep an eye for eventually acceptable solution.


Uploading is very slow when using transparent proxy

Problem Description
When using curl to upload a file through the transparent proxy, the upload speed is very very slow.
When uploading without proxy, or with explicit curl param --proxy localhost:8080, the upload speed is normal, which takes 0.3s to upload 1MB.
When uploading with transparent proxy, it takes 1min to upload 500KB, or 25s for 200KB, or 55mins for 25MB
Steps to reproduce the behavior:

Set up the mitmproxy as transparent proxy with official doc https://docs.mitmproxy.org/archive/v9/howto-transparent/
start the proxy sudo -u nobody mitmdump --set stream_large_bodies=1 --mode transparent
create a 1MB file for uploading dd if=/dev/zero of=myfile bs=1m count=1
upload file with curl to my own server curl -v --request PUT http://xxxx.com/xxxx/xxx  --form "file=@myfile"

System Information
Mitmproxy: 9.0.1
Python:    3.11.3
OpenSSL:   OpenSSL 1.1.1u  30 May 2023
Platform:  macOS-13.4-arm64-arm-64bit
Extra Info
I save the logs with --vvv option on
explicity_proxy.log (work)
tranparent_proxy.log (not work. Note that the request is terminated by myself as taking too log.)
The url in the log are replace to a fake one manually as the original url is not public. The original url scheme is http, which isn't changed.
I notice that the logs are different apparently after line 41.

That's clearly not acceptable performance. Can you reproduce this on mitmproxy 10 (just released)? Can you share more details on your setup?

I tested it with version 10, it still has the problem. My computer is macOS 13
Detail steps to reproduce the problem:
Prepare the proxy, and run as transparent proxy

install mitmproxy with brew or pip3
create a config for pfctl to do redirection on macOS pf_config.txt
sudo pfctl -evf <path_to_the_pf_config_file>,  this will redirect outgoing packages from user root to local 8080, i.e. the proxy
start proxy mitmdump --set stream_large_bodies=1
test run sudo curl bing.com, and confirm the request go to the proxy,  and curl bing.com not to the proxy.

Prepare a demo file server to receive the data

use another computer, as if running the server on the same host, the previous redirection will form a loop.
download the server code main.go.zip, and run with go run main.go
if you don't have golang environment, just run the compiled one server.zip. It will start a web server at port 80, and print the progress of the request body

Reproduce:

on the computer running the proxy
create a 10MB demo file for uploading, dd if=/dev/zero of=myfile bs=1m count=1
uploading the file without the proxy, to the demo server curl -v --request PUT http://<your_server_ip>/file  --form "file=@myfile". The server will print logs when receiving the file. It will work fine and the speed is OK.
uploading with the proxy,  sudo curl -v --request PUT http://<your_server_ip>/file  --form "file=@myfile". It will be very slow. In my case, on the local network

I tested it on Linux. It has no problem. 🤔


Make iOS 15 SDK and runtime available to engine builders

Xcode 13 beta 2 is now available on go/xcode.  Add the iOS 15 SDK and simulator runtime to the Xcode 12a7209 cipd package and reupload.
This will allow the engine to start implementing new iOS features, and to test them on the simulator.
See go/xcode-at-flutter.

Having trouble uploading a second Xcode cipd package with the same version. Filed https://bugs.chromium.org/p/chromium/issues/detail?id=1225115.

Package at https://chrome-infra-packages.appspot.com/p/flutter_internal/ios/xcode/ios/+/gsfABclzstwgjam5sKJoap_tH0pBK4I0_wVPCyUMZUAC
led runs:
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/abdc7d8c1da0462e76acd04576980a18bdaf3bc222ff1c1aed148c20d77cf30d/+/build.proto?server=chromium-swarm.appspot.com
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/4c00e8db75ab7d9c7b6539e748d1c7c5f547aa35f78cf770afabd8211ae18623/+/build.proto?server=chromium-swarm.appspot.com

That package didn't work, it had universal-darwin21/ruby/config.h  instead of the expected universal-darwin19/ruby/config.h

Attempt 2:
https://ci.chromium.org/swarming/task/547c400f28bd2910?server=chromium-swarm.appspot.com
https://ci.chromium.org/swarming/task/547c403e359f1210?server=chromium-swarm.appspot.com

Hmm, the framework is trying to be built with the latest SDK, I guess that isn't pinned to iOS 14 somewhere:
https://logs.chromium.org/logs/flutter/led/magder_google.com/0b941017b4e4bba1a371aeac687eb25a17e9355d321c625defd28e38a95aff3b/+/u/build_ios_debug_sim/stdout
clang++ -shared -isysroot /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator15.0.sdk ...

Which is causing it to hit https://github.com/dart-lang/sdk/issues/46499.

https://github.com/dart-lang/sdk/issues/46499 is fixed, let's see if this passes:
https://luci-milo.appspot.com/raw/build/logs.chromium.org/flutter/led/magder_google.com/04c064813ea2ef0203ec50b74086e113c07fbb53a84ab5fb36548f875e21f0b9/+/build.proto
Next step is to investigate why felt_ios-safari_test isn't finding the expected simulator:
  Failed to load "test/canvaskit/color_filter_golden_test.dart":
  Failed to run Safari: Exception: Safari failed with exit code 148.
  Standard output:
  No devices are booted.
  .
  dev/browser.dart 104:9  new Browser.<fn>

https://luci-milo.appspot.com/raw/build/logs.chromium.org/flutter/led/magder_google.com/5eefc89e563aabdf6e520837b25dce91dccf894274b2ca88de767fc1d6a18e92/+/build.proto

Hmm, they both passed this time.

Double checking by re-downloading the properties and trying again:
https://ci.chromium.org/swarming/task/54bedde72535a910?server=chromium-swarm.appspot.com
https://ci.chromium.org/swarming/task/54bedd6ec723d510?server=chromium-swarm.appspot.com

Those passed.
https://flutter-review.googlesource.com/c/infra/+/15101

Reverted at https://flutter-review.googlesource.com/c/infra/+/15542
Engine build failures:
https://luci-milo.appspot.com/p/flutter/builders/prod/Mac Web Engine/5966
https://luci-milo.appspot.com/p/flutter/builders/prod/Mac Unopt/662
https://luci-milo.appspot.com/p/flutter/builders/prod/Mac iOS Engine/11068
https://luci-milo.appspot.com/p/flutter/builders/prod/Mac iOS Engine Profile/9124
https://luci-milo.appspot.com/p/flutter/builders/prod/Mac iOS Engine Release/9128

Old version of clang can't parse the iOS 15 headers with new _Nullable_result nullability annotation https://reviews.llvm.org/D92495

/opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator15.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSURLSession.h:500:168: error: expected ')'
- (void)readDataOfMinLength:(NSUInteger)minBytes maxLength:(NSUInteger)maxBytes timeout:(NSTimeInterval)timeout completionHandler:(void (^) (NSData * _Nullable_result data, BOOL atEOF, NSError * _Nullable error))completionHandler;

https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket.appspot.com/8841691005180545936/+/u/build_ios_debug_sim_arm64/stdout
/opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator15.0.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:266:74: note: to match this '('
typedef void (^MTLNewComputePipelineStateWithReflectionCompletionHandler)(id <MTLComputePipelineState> __nullable computePipelineState, MTLComputePipelineReflection * _Nullable_result reflection, NSError * __nullable error);

https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket.appspot.com/8841691005230098080/+/u/build_ios_debug_sim_arm64/stdout

New HarfBuzz warning (I wonder why, it should be on the same toolchain as before?) @jason-simmons  says

HarfBuzz worked around this by disabling the Clang range-loop-analysis check (see https://github.com/harfbuzz/harfbuzz/commit/86993c09a1f1d72b972592693ccfb18a5ab28af4)
We can cherry pick that to our branch of HarfBuzz or disable it in the GN build rules

[1610/3970] CXX obj/third_party/harfbuzz/src/harfbuzz_sources.hb-subset.o
In file included from ../../third_party/harfbuzz/src/hb-subset.cc:35:
../../third_party/harfbuzz/src/hb-ot-hdmx-table.hh:110:40: warning: loop variable '_' is always a copy because the range of type 'hb_map_iter_t<hb_range_iter_t<unsigned int, unsigned int>, (lambda at ../../third_party/harfbuzz/src/hb-ot-hdmx-table.hh:126:15), hb_function_sortedness_t::NOT_SORTED, nullptr>' does not return a reference [-Wrange-loop-analysis]
    for (const hb_item_type<Iterator>& _ : +it)
                                       ^
../../third_party/harfbuzz/src/hb-ot-hdmx-table.hh:145:17: note: in instantiation of function template specialization 'OT::hdmx::serialize<hb_map_iter_t<hb_range_iter_t<unsigned int, unsigned int>, (lambda at ../../third_party/harfbuzz/src/hb-ot-hdmx-table.hh:126:15), hb_function_sortedness_t::NOT_SORTED, nullptr>, nullptr>' requested here
    hdmx_prime->serialize (c->serializer, version, it);
                ^
../../third_party/harfbuzz/src/hb-ot-hdmx-table.hh:110:10: note: use non-reference type 'hb_item_type<hb_map_iter_t<hb_range_iter_t<unsigned int, unsigned int>, (lambda at ../../third_party/harfbuzz/src/hb-ot-hdmx-table.hh:126:15), hb_function_sortedness_t::NOT_SORTED, nullptr> >' (aka 'hb_pair_t<unsigned int, hb_map_iter_t<hb_map_iter_t<hb_range_iter_t<unsigned int, unsigned int>, hb_map_t *&, hb_function_sortedness_t::NOT_SORTED, nullptr>, (lambda at ../../third_party/harfbuzz/src/hb-ot-hdmx-table.hh:134:16), hb_function_sortedness_t::NOT_SORTED, nullptr> >')
    for (const hb_item_type<Iterator>& _ : +it)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket.appspot.com/8841691005886643360/+/u/build_ios_debug_sim_arm64/stdout

Simulator app needs to be pegged to older OS?

Running command "xcodebuild -sdk iphonesimulator -scheme IosUnitTests -destination platform='iOS Simulator,name=iPhone 8' test FLUTTER_ENGINE=ios_debug_sim"
2021-07-14 16:37:15.326 xcodebuild[53204:932846] [MT] DVTSDK: Skipped SDK /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.6.sdk; its version (13.6) is below required minimum (14.0) for the iphonesimulator platform.
2021-07-14 16:37:15.328 xcodebuild[53204:932846] [MT] DVTSDK: Skipped SDK /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.6.sdk; its version (13.6) is below required minimum (14.0) for the iphoneos platform.
Command line invocation:
    /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/usr/bin/xcodebuild -sdk iphonesimulator -scheme IosUnitTests -destination "platform=iOS Simulator,name=iPhone 8" test FLUTTER_ENGINE=ios_debug_sim

Build settings from command line:
    FLUTTER_ENGINE = ios_debug_sim
    SDKROOT = iphonesimulator15.0

Fatal error: invalid Xcode.app 'version.plist': invalid content in '/opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/version.plist' - ProductBuildVersion '13A5155e' does not match CFBundleShortVersionString '12.100.3' because their major version numbers differ (13 vs 12).: file XCBCore/Core.swift, line 198
xcodebuild: error: Unable to find a destination matching the provided destination specifier:
		{ platform:iOS Simulator, OS:latest, name:iPhone 8 }

https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket.appspot.com/8841691004871486816/+/u/Host_Tests_for_ios_debug_sim/stdout

felt ios-safari test can't find the expected simulator:

  Failed to load "test/canvaskit/backdrop_filter_golden_test.dart":
  Failed to run Safari iOS: Exception: Safari iOS failed with exit code 148.
  Standard output:
  No devices are booted.
  .
  dev/browser.dart 143:9  new Browser.<fn>

https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket.appspot.com/8841691005349843248/+/u/felt_ios-safari_test/stdout

The Xcode 13 toolchain is available on CI now we should definitely proceed on unblock this as it will hinder use of newer APIs.
@jmagman Do you believe we should file bugs for the individual work issues you identified or are they all minor enough that we someone can attempt to track and fix these in one go?

The Xcode 13 toolchain is available on CI

Do you mean the cipd package I uploaded?  It doesn't work yet, it's missing some simulator runtimes.
We need to keep the builders on a version of clang older than or equal to the version enforced by the flutter_tool, or users will have App Store submission failures related to the bitcode version used to build the engine frameworks.  So this is blocked on https://github.com/flutter/flutter/issues/91634.  Which is blocked on getting the cipd package to also include all the simulator runtimes needed to pass the framework devicelab tests.  I just need to keep banging on it.
This will become much easier once https://github.com/flutter/flutter/issues/91689 is done, right now it takes many hours to validate.

Old version of clang can't parse the iOS 15 headers with new _Nullable_result nullability annotation

This one might go away when I upgrade the builders to the version of clang in Xcode 12.3 https://github.com/flutter/flutter/issues/84453#issuecomment-961599885, I need to check though.

x-ref: https://github.com/flutter/flutter/issues/94078

Staging tests on macOS 12.0.1:
Jazzy failures: https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/192759754f86e1bd0b2bb4a5ae3b473569651f9e7314b9181d3ad14098141ec4/+/build.proto?server=chromium-swarm.appspot.com
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/cca01261118620667b367e1fb5a10eaa0c9f74d18a3051b1854d0b9af7ee4c4e/+/build.proto?server=chromium-swarm.appspot.com
Web engine simulator runtime missing: https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/170ac8115dd6c1738f719e2b3efe6b6e1275fb9ff1e758a9f0dc197672e2a2f1/+/build.proto?server=chromium-swarm.appspot.com

I already have uploaded a package with a fix for the ruby issue, I'm waiting for the old cached version of the package to be cleared out so I can test again.
https://github.com/flutter/flutter/issues/94474

Note to self:
led get-builder 'luci.flutter.prod:Mac iOS Engine' | led edit -d id=build828-m9 | led edit -d pool=luci.flutter.staging | led edit -d os=Mac-12.0.1 | led edit -d device_type= | led edit -p '$flutter/devicelab_osx_sdk={"sdk_version": "13a233"}' | led edit -p '$flutter/osx_sdk={"sdk_version": "13a233"}' | led edit -p 'xcode="13a233"' |  led launch -modernize

led get-builder 'luci.flutter.prod:Mac Unopt' | led edit -d id=build831-m9 | led edit -d pool=luci.flutter.staging | led edit -d os=Mac-12.0.1 | led edit -d device_type= | led edit -p '$flutter/devicelab_osx_sdk={"sdk_version": "13a233"}' | led edit -p '$flutter/osx_sdk={"sdk_version": "13a233"}' | led edit -p 'xcode="13a233"' |  led launch -modernize

Got past the jazzy failure, new one:
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/355a07526ede203cdf1fd176b7fffb6a86037c080eb7dac95af40ecd954a02fb/+/build.proto?server=chromium-swarm.appspot.com
xcodebuild: error: SDK "macosx10.15" cannot be located.

The buildroot SDK finder script is checking directory names, but it would be better to check what's actually installed via xcodebuild -showsdks -json

Filed https://github.com/flutter/flutter/issues/94513

buildroot updated https://github.com/flutter/buildroot/pull/528, testing again.

Getting further.  Past jazzy, past gn:
build ios_debug_sim_arm64
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/c7ee21d3bfaa2de210bcace2cfe3a6e8bce17c4248e474988720cadc7566cf87/+/build.proto?server=chromium-swarm.appspot.com
../../flutter/flow/embedded_views.h:213:3: error: definition of implicit copy assignment operator for 'EmbeddedViewParams' is deprecated because it has a user-declared copy constructor [-Werror,-Wdeprecated-copy]
  EmbeddedViewParams(const EmbeddedViewParams& other) {
  ^
../../flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm:311:40: note: in implicit copy assignment operator for 'flutter::EmbeddedViewParams' first required here
  current_composition_params_[view_id] = EmbeddedViewParams(*params.get());

Updating the unit tests to a common simulator device: https://github.com/flutter/engine/pull/30090

A new clang warning: https://github.com/flutter/flutter/issues/94586

Updating integration tests: https://github.com/flutter/engine/pull/30104

For some reason, the Mac Web Engine builder can't find any iOS simulator runtimes (note unavailable, runtime profile not found):
== Device Types ==
iPhone 4s (com.apple.CoreSimulator.SimDeviceType.iPhone-4s)
...
iPad mini (6th generation) (com.apple.CoreSimulator.SimDeviceType.iPad-mini-6th-generation)
== Runtimes ==
== Devices ==
-- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-13-0 --
    iPhone 8 (19B472BA-C0FF-45EE-8CEF-9C6DDA134F18) (Shutdown) (unavailable, runtime profile not found)
    iPhone 8 Plus (5828F22B-BA3B-443D-B554-76FD75C67AF4) (Shutdown) (unavailable, runtime profile not found)
    iPhone 11 (DF95828D-5A62-4198-9214-67F1E3CE7A07) (Shutdown) (unavailable, runtime profile not found)

https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/b6b2af5e756fd2f481aad07ffaa7d630973d972532a1139e128429a681287595/+/build.proto?server=chromium-swarm.appspot.com
But the devicelab staging builders using the same Xcode cipd bundle, show available runtimes, and tests are passing on simulators:
== Device Types ==
iPhone 4s (com.apple.CoreSimulator.SimDeviceType.iPhone-4s)
...
iPad mini (6th generation) (com.apple.CoreSimulator.SimDeviceType.iPad-mini-6th-generation)
== Runtimes ==
iOS 13.0 (13.0 - 17A577) - com.apple.CoreSimulator.SimRuntime.iOS-13-0
iOS 13.5 (13.5 - 17F61) - com.apple.CoreSimulator.SimRuntime.iOS-13-5
iOS 15.0 (15.0 - 19A339) - com.apple.CoreSimulator.SimRuntime.iOS-15-0
watchOS 5.0 (5.0 - 16R363) - com.apple.CoreSimulator.SimRuntime.watchOS-5-0 (unavailable, The watchOS 5.0 simulator runtime is not supported on hosts after macOS 11.99.0.)
watchOS 6.1 (6.1.1 - 17S445) - com.apple.CoreSimulator.SimRuntime.watchOS-6-1
== Devices ==
-- iOS 13.0 --
    iPhone 8 (B8A23A9E-4189-421B-8AFA-0A5E907840CA) (Shutdown)
    iPhone 8 Plus (2CF97D94-C0F9-42E1-89FB-E1ECEC1674DF) (Shutdown)
    iPhone 11 (79A9EB55-F6BB-44EC-9CCB-45CD7F9F965B) (Shutdown)

https://luci-milo.appspot.com/p/flutter/builders/staging/Mac_ios_staging flavors_test_ios/679
@godofredoc are you aware of any additional Xcode/simulator/caching priming the devicelab recipes do that the engine do not?

The linked task ran on a devicelab machine. Devicelab downloads xcode once and caches them indefinitely. Does running the task on a different devicelab machine works properly?

It's passed on flutter-devicelab-mac-10, flutter-devicelab-mac-26, and flutter-devicelab-mac-30.
https://luci-milo.appspot.com/p/flutter/builders/staging/Mac_ios_staging flavors_test_ios/683?
https://luci-milo.appspot.com/p/flutter/builders/staging/Mac_ios_staging flavors_test_ios/681?
https://luci-milo.appspot.com/p/flutter/builders/staging/Mac_ios_staging flavors_test_ios/679?

@godofredoc When I download the cipd bundle I only see the iOS 15 simulator runtime in Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/ even though the one I uploaded contains iOS 13, 13.6, 14, and 15.
I bet XcodeIOSSimulatorRuntimeRelPath needs to be excluded in the custom go script?
go/flutter-infra-xcode#creating-new-versions-of-the-mac-toolchain
Or we need to do https://github.com/flutter/flutter/issues/91689 to get the necessary runtimes installed.

iOS Engine builds (don't test on simulators) are now passing:

https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/9ccd288e68e619ba91b8701754d19f2c4c5b1cc6ea20d1e5d223ebc9211fe623/+/build.proto?server=chromium-swarm.appspot.com
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/5632726711368d8d810f27f889ab74f01c12923d7ca6aaa5d61d979f9c06a13e/+/build.proto?server=chromium-swarm.appspot.com
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/e1c827b976846b37dd0d46e1442f04795c117870bee4f0f2133587eb9cb3bbdb/+/build.proto?server=chromium-swarm.appspot.com

It's passed on flutter-devicelab-mac-10, flutter-devicelab-mac-26, and flutter-devicelab-mac-30.

Actually that particular test is only building the app, not running tests on the simulator.
module_test_ios is running and passing running tests on a simulator, and only shows the iOS 15 runtime available, which makes sense based on the downloaded cipd package.
Executing: xcrun simctl list runtimes in /opt/s/w/ir/x/w/recipe_cleanup/tmp742h195q/flutter sdk with environment {BOT: true, LANG: en_US.UTF-8}
== Runtimes ==
iOS 15.0 (15.0 - 19A339) - com.apple.CoreSimulator.SimRuntime.iOS-15-0
"xcrun" exit code: 0

https://logs.chromium.org/logs/flutter/led/magder_google.com/ed6964ff8e4b372114f572353080765155c66c27ef0527e7d99454b7b83e55c8/+/u/run_module_test_ios/test_stdout
I don't understand why IosUnitTests can't find a simulator then for -destination "platform=iOS Simulator,name=iPhone 11" since that resolves to iOS 15 SDKROOT = iphonesimulator15.0, and iPhone 11 is available in the downloaded cipd package, and Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/DeviceTypes/ contains iPhone 11.simdevicetype.  The module_test_ios log shows an available iOS 15, iPhone 11 simulator:
{ platform:iOS Simulator, id:608E7473-09A7-4F41-AC12-0E673AEEF710, OS:15.0, name:iPhone 11 }

Filed https://github.com/flutter/flutter/issues/94780

I believe https://github.com/flutter/flutter/issues/91689 is the last piece to getting the tests to pass.  Mac Unopt and Mac Web Engine need to be able to run tests on simulators versions other than the default one (iOS 15) shipped in Xcode 13.

any update? ☺

I believe #91689 is the last piece to getting the tests to pass. Mac Unopt and Mac Web Engine need to be able to run tests on simulators versions other than the default one (iOS 15) shipped in Xcode 13.

Non-default Xcode simulator runtimes are now available https://github.com/flutter/flutter/issues/91689.
Mac iOS Engine
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/34b0add45b8fe97daadbfb8f634b2426c6fdea1e39c03af96488ca5ff59eb6f2/+/build.proto?server=chromium-swarm.appspot.com
Mac Unopt https://luci-milo.appspot.com/raw/build/logs.chromium.org/flutter/led/magder_google.com/15ce71ff15e962e13bb340538339f307495e846c6eba7ec007621015430e011f/+/build.proto
Mac Web Engine
https://ci.chromium.org/raw/build/logs.chromium.org/flutter/led/magder_google.com/9a0597c302a0ba1bf2edb738c803dbdcad105f47a13c5eec62f43f3a5e92cf16/+/build.proto?server=chromium-swarm.appspot.com
Next step is to upgrade the engine builders to macOS 12, and the config to Xcode 13.0 with the iOS 13 and 15 runtimes available to the tests that use them. https://github.com/flutter/flutter/issues/94078
Once that's done, the iOS 15 SDKs will be available.

Any update on this? Reaaalllllyyyyy need https://github.com/flutter/engine/pull/29797 to be able to be merged sometime soon here

We hit an issue running web tests on the version of macOS needed by the newer version of Xcode, working on upgrading the version of Chrome here https://github.com/flutter/flutter/issues/98278.

We hit an issue running web tests on the version of macOS needed by the newer version of Xcode, working on upgrading the version of Chrome here #98278.

looks like it was closed

We hit an issue running web tests on the version of macOS needed by the newer version of Xcode, working on upgrading the version of Chrome here #98278.

looks like it was closed

Yes, we're chipping away at all these issues. The Chrome package issues was blocking https://github.com/flutter/flutter/issues/94078, we're working on that next.

The framework builders have been updated to Xcode 13 as of https://github.com/flutter/flutter/pull/98297
The flutter doctor enforced tool minimum was updated in https://github.com/flutter/flutter/pull/98297 (a dependency to this change to avoid App Store submission failures related to the bitcode version used to build the engine framework)
Found a new clang error introduced since the last time I tested this in January https://github.com/flutter/flutter/issues/99795
We're working on getting the builders to be able to cache multiple versions of the iOS simulator runtimes https://github.com/flutter/flutter/issues/99698
Once all the tests in https://github.com/flutter/engine/pull/31915 pass we can merge it, and that will make the iOS 15 SDK available and will close this issue.

Clang issue resolved.  Now hitting an issue running the web tests in Safari on the simulator https://github.com/flutter/flutter/issues/99885

iOS 15 SDK and simulators are available in the engine as of https://github.com/flutter/engine/pull/31915


feat(ngModel): add public $setModelValue fn to programmatically update model

In regards to my workaround in https://github.com/angular/angular.js/issues/11090#issuecomment-74799429, it would be nice to have a $setModelValue fn in NgModelController which would programmatically update the model.  Instead of having to inject in $parse to my directive, do $parse(attrs.ngModel).assign(scope, newValue), etc, (I've seen code like this in several places, and I've used it a lot in my directives), there should be a public fn to do that work.
The code in NgModelController should be as easy as:
this.$setModelValue = function(value) {
    ngModelSet($scope, value);
};

Or, if all the $viewChangeListeners need to get executed, then perhaps open up this.$$writeModelToScope by changing it so it accepts a model value param, and rename it to this.$setModelValue (and doing the handful of refactors).  I think having $setModelValue would be a nice addition to the ngModel API.

Customizing when  / how the model is set to scope is definitely planned. Btw, $setModelValue is a bit confusing as there's also the $modelValue property on ngModel, and I would expect that this is set from this function.

I've got an implementation in #10764, I just haven't had time to adress the last comment.

+1

Setting the scope model from inside the ngModel controller so that it runs the model > view pipeline again is not good practice. There might be edge cases where it is necessary, but I'd rather have devs use parse and assign in this case, then expose a function on the ngModelController that does it.
For the simple case where you need to re-run the formatters on the modelValue, there will be a function in 1.6.7: https://github.com/angular/angular.js/commit/14519488ce9218aa891d34e89fc3271fd4ed0f04


Cherry pick "Wrap button :focus, :hover and :active styles in :enabled (#584)"

Firefox allows a button to be :disabled and still have :focus, if it was
programmatically disabled while focused. In this case, the :focus styles
would beat the :disabled styles, since they have higher specificity; we
want disabled buttons to always look disabled, though, so wrap all the
other styles in :enabled so they only apply when wanted.
The stylelint rule max-nesting-depth (max depth: 3), which complains
about the change, is disabled – the alternative solutions (combining
selectors together) seem worse to us in this case.
Bug: T304511

Cherry-picks #584.


Enable indexAxis property at chart datasets options level?

Feature Proposal
At the moment, indexAxis property is set at dataset level. In my opinion could be set at chart datasets level, therefore in chart option.
Feature Use Case
In a bar chart, you can have more that 1 datasets and you could correctly set all datasets with a different indexAxis:
datasets: [{
	label: 'Dataset 1',
	backgroundColor: color(window.chartColors.red).alpha(0.5).rgbString(),
	indexAxis: 'y',
	data: [
		....
	]
}, {
	label: 'Dataset 2',
	backgroundColor: color(window.chartColors.blue).alpha(0.5).rgbString(),
	indexAxis: 'x',
	data: [
		....
	]
}]

In this case, I see that the chart takes the first dataset indexAxis property and draws an horizontal bar and does not render the second dataset. Unfortunately the second datasets is anyway present on legend.
Furthermore you should set indexAxis to all datasets (the same) or use the defaults, otherwise if the indexAxis is not aligned with the first one and it's not rendered.

Possible Implementation
The indexAxis property could be set at chart datasets level, something like that:
var ctx = document.getElementById('canvas').getContext('2d');
window.myBar = new Chart(ctx, {
	type: 'bar',
	data: barChartData,
	options: {
		responsive: true,
                datasets: {
                   indexAxis: 'y' // horizontal bar
                },
		legend: {
			position: 'top',
		},
		title: {
			display: true,
			text: 'Chart.js Bar Chart'
		}
	}
});

I had closed it because I was thinking that you could set the indexAxis into chart datasets options.
But I have tested and the option is ignored, therefore it's mandatory to set at dataset level.


Add type definitions?

Hello,
Just a quick question about whether you plan to create typescript/flow type definitions for this package.
Thanks for doing this! Helped a ton.

No. But feel free to add them to the respective centralized type definition repo for everyone to use!

Will look into that, thanks

Hi,
I made a PR to DefinitelyTyped to support types, it got approved yesterday.
https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-router-hash-link
You can add them using npm install --dev @types/react-router-hash-link


feat: Related Dashboards endpoint on Flask app

Summary of Changes
Adds a new endpoint
Tests
Adds API tests
Documentation
What documentation did you add or modify and why? Add any relevant links then remove this line
CheckList
Make sure you have checked all steps below to ensure a timely review.

[ ] PR title addresses the issue accurately and concisely. Example: "Updates the version of Flask to v1.0.2"

In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

[ ] PR includes a summary of changes, including screenshots of any UI changes.
[ ] PR adds unit tests, updates existing unit tests, OR documents why no test additions or modifications are needed.
[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public python functions and the classes in the PR contain docstrings that explain what it does

[ ] PR passes all tests documented in the developer guide

Codecov Report

Merging #467 into master will increase coverage by 1.61%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #467      +/-   ##
==========================================
+ Coverage   78.92%   80.54%   +1.61%
==========================================
  Files         217      175      -42
  Lines        5405     3690    -1715
  Branches      700      541     -159
==========================================
- Hits         4266     2972    -1294
+ Misses       1081      705     -376
+ Partials       58       13      -45

Impacted Files
Coverage Δ

...js/components/DashboardPage/ImagePreview/index.tsx
100.00% <ø> (ø)

amundsen_application/api/utils/request_utils.py

...pplication/proxy/issue_tracker_clients/__init__.py

amundsen_application/api/v0.py

amundsen_application/models/user.py

amundsen_application/base/base_preview.py

...cation/dashboard_preview/preview_factory_method.py

...ation/base/examples/example_announcement_client.py

...n/base/examples/example_superset_preview_client.py

amundsen_application/models/preview_data.py

... and 32 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6da7015...0e58ecf. Read the comment docs.


Document a bit more of the API

I'm adding a bit more documentation here and there as I go through the source code. This is mainly documentation for things that weren't immediately obvious to me.
Still a draft until I feel confident about this.

Closing, since I won't finish this PR in the foreseeable future


Don't open path in new window

When I press ctrl-shift-p, open a path that is, atom opens it in a new window.
Some might want that. I don't. It's annoying when I just want to switch the project that 1) I have to close the old window and 2) I have to wait for the new window to load (which, sadly, takes a little with atom).
I'd at least ask for an option whether to open paths in a new window. But I think that this is not wanted anyways.
Like #1722 but with paths instead of files.

This will be added as part of https://github.com/atom/atom/issues/770


Conditionalize stripping of \\?\ on it actually being present

As far as I know \\?\ is always returned by GetFinalPathNameByHandleW but it’s better to be safe and actually check instead of unconditionally trimming the first 4 characters from the returned path.
See https://github.com/swiftlang/swift-tools-support-core/pull/485#discussion_r1795781075

@swift-ci Please test

@swift-ci Please test

@swift-ci Please test

@swift-ci please test


The smiley face animation get "stuck" when a revealed cell is clicked.

W18 OK 75 points
needs refactor of face animation based on onclick and onclickrleease


Conflict can't be resolved

URL
https://www.openstreetmap.org/edit#map=19/50.07949/34.72675
How to reproduce the issue?
I have two conflicts with user 'retrun'. I've tried to resolve the conflict, but i can't. After resolving editor hangs in infinite loop with message: Uploading changes to OpenStreetMap.  Checking for conflicts...
Screenshot(s) or anything else?

Which deployed environments do you see the issue in?
Released version at openstreetmap.org/edit
What version numbers does this issue effect?
No response
Which browsers are you seeing this problem on?
Firefox

Hi there - can you provide any more information about the conflicts you have with that user? The information right now doesn't provide the ability to reproduce your issue or track down a potential source. Is the issue still occurring?
For triage, this is likely a duplicate of #7199.

Hello, in version 4.4.7 problem still exists.
вт, 27 черв. 2023, 08:38 користувач Nick Santos @.***>
пише:

Hi there - can you provide any more information about the conflicts you
have with that user? The information right now doesn't provide the ability
to reproduce your issue or track down a potential source. Is the issue
still occurring?
For triage, this is likely a duplicate of #7199
https://github.com/openstreetmap/iD/issues/7199.
—
Reply to this email directly, view it on GitHub
https://github.com/openstreetmap/iD/issues/9697#issuecomment-1608829251,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIV4WBKEKLTH5QJRWA7B5YTXNJWUPANCNFSM6AAAAAAZDCE2KU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Could you clarify the version again? The released version of iD is only 2.25.2, so are you referring to the version of something else?
It sounds like the issue is that it never stops searching for conflicts. Can you confirm if issue #7199 describes the same issue you're having?

Ah, sorry, i've confused bug reports with osmand.
I currently can't check the behavior because i've made changes rollback.
And yes, this behavior is similar to #7199
вт, 27 черв. 2023, 08:52 користувач Nick Santos @.***>
пише:

Could you clarify the version again? The released version of iD is only
2.25.2, so are you referring to the version of something else?
It sounds like the issue is that it never stops searching for conflicts.
Can you confirm if issue #7199
https://github.com/openstreetmap/iD/issues/7199 describes the same
issue you're having?
—
Reply to this email directly, view it on GitHub
https://github.com/openstreetmap/iD/issues/9697#issuecomment-1608840176,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIV4WBOC4ERZQNI4LCSRA43XNJYIJANCNFSM6AAAAAAZDCE2KU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Ok, I'm going to close duplicate then since it is tracked in the other issue.


chromedriver: 2.46 -> 75.0.3770.8

Motivation for this change
Updating chromedriver in order have NIX updated to later version
Things done
Just updating chromedriver version.
Sha captured with the help of nix-prefetch-url --unpack --type sha256 https://chromedriver.storage.googleapis.com/75.0.3770.8/chromedriver_linux64.zip

What happened to the Things done checklist in the PR template? Did you test this? Did you do this for selenium, and does selenium work with the updated chromedriver?

addressed by https://github.com/NixOS/nixpkgs/pull/63034


attr.Attribute docs don't exclude the factory parameter

https://github.com/python-attrs/attrs/blob/615054392a18ae5c9c82e845ddaa107f03f160b8/src/attr/_make.py#L1667
except factory...
https://github.com/python-attrs/attrs/blob/615054392a18ae5c9c82e845ddaa107f03f160b8/src/attr/_make.py#L80

Ah yes, that's because factory is just syntactic sugar for default=Factory(...). I've clarified the docs in 06999cda0abc29e761f2476ad4c05dae583406f8. Thanks!


[New Rule] os.path.join() call simplification

Explanation
Explain briefly why you think this makes the code simpler.

This is a common but fun one I have noticed. I have noticed this pattern occur a lot and I believe in most cases it can be simplified to a single function call. I guess this would be kinda of similar to the isinstance checks where people don't realize the function can consume multiple args.

Example
a = "/a"
b = "b"
c = "c"
# Bad
os.path.join(a,os.path.join(b,c))

# Good
os.path.join(a,b,c)

I didn't know that this was possible! I'll add this when I have more time for sure - this should also be easy / have little potential for false-positives. Very nice suggestion!

Side-note: pathlib.Path should be used more often. If a, b, and c were Path objects, you could simply do:
d = a / b / c

Many usages of os.path can be replaced by pathlib.

@MartinThoma True, but there can be performance issues with using Pathlib. For instance, I think the black formatter  removed / reworked a lot of their Pathlib usage back to os.path in their library due to performance issues.

$ astpretty --no-show-offsets /dev/stdin <<< `cat example.txt`
Module(
    body=[
        Expr(
            value=Call(
                func=Attribute(
                    value=Attribute(
                        value=Name(id='os', ctx=Load()),
                        attr='path',
                        ctx=Load(),
                    ),
                    attr='join',
                    ctx=Load(),
                ),
                args=[
                    Name(id='a', ctx=Load()),
                    Call(
                        func=Attribute(
                            value=Attribute(
                                value=Name(id='os', ctx=Load()),
                                attr='path',
                                ctx=Load(),
                            ),
                            attr='join',
                            ctx=Load(),
                        ),
                        args=[
                            Name(id='b', ctx=Load()),
                            Name(id='c', ctx=Load()),
                        ],
                        keywords=[],
                    ),
                ],
                keywords=[],
            ),
        ),
    ],
    type_ignores=[],
)


[SPARK-46759][AVRO] Fix configuration name for spark.sql.avro.xz.level

What changes were proposed in this pull request?

spark.sql.avro.xz.level is wrongly defined as spark.sql.avro.zx.level
Why are the changes needed?

Bugfix
Does this PR introduce any user-facing change?

no, it is not exposed via releases
How was this patch tested?

manually
Was this patch authored or co-authored using generative AI tooling?
no

cc @ulysses-you

Thank you @ulysses-you. Merged to master


EmmyLua type dosen`t work in loop

Describe the bug
---@as type dosen`t work in loop
To Reproduce
    ---@type ExpandUIView
    local a;
    -- ---@type ExpandUIView
    -- local expandUI;
    for index, value in ipairs(nil) do
        ---@type ExpandUIView
        local expandUI;
    end

expandUI type is unkonw
Screenshots

Environment (please complete the following information):

OS: Windows
Client:VSCode
v3.2.3

While different in use, this seems to be the same root issue as #1158
It definitely was working before, and seems to be broken for a month or so (for a rough estimate).


Fix docstirings

Replaced

Technically this is no duplicate, but #110 was - but nevertheless #110 was merged, so this issue should be closed.

Well, sorry! (I don't have access to close issues any more.)


Allow users to skip the eirinifs downloading init container.

In such a case, the user should make sure the /assets/eirinifs.tar file
is there. E.g. by using a bits image that has it included.
Signed-off-by: Dimitris Karakasilis<EMAIL_ADDRESS>

Sibling upstream PR: https://github.com/cloudfoundry-incubator/bits-service-release/pull/41


Place "enqueue" button a bit more prominently on screen

I think it might be a nice idea to place the "enqueue" button somewhere a bit more prominently/accessible on the screen. I think instead of on the bottom bar, it could be places at the bottom right corner. What do you think?

closing because the UI has been re-worked


Improvise text when there are no comments

When there are no comments submitted, it currently says "No records found' and it's not suitable for this section. So, let's improvise it.

We have removed the text https://github.com/Esri/solutions-components/issues/652


Node 12 process.removeListener is not a function

Prerequisites

[x] Checked that your issue hasn't already been filed by cross-referencing issues with the faq label
[x] Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
[x] 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
[x] Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend that you not install Mocha globally.

Description
Running unit tests with "mocha": "6.1.4", on my repository along with Node v12.0.0 results in error process.removeListener is not a function
This error does not occur with Node v10.15.1
Steps to Reproduce
I suspect the error will occur any time you run unit tests with mocha along with Node 12, but here's a way:

Clone my repository:
git clone https://github.com/whyboris/karma-helpful-reporter.git

Install Node v12.0.0 (I'm using nvm to switch back between versions easily)

Then npm run test and see the error.
Note that the error does not occur on Node v10.

Expected behavior: [What you expect to happen]
No error with Node 12
Actual behavior: [What actually happens]
    process.removeListener('uncaughtException', uncaught);
            ^

TypeError: process.removeListener is not a function

Reproduces how often: [What percentage of the time does it reproduce?]
Every time
Versions
"mocha": "6.1.4",
Node v12.0.0

The output of mocha --version and node node_modules/.bin/mocha --version: 6.1.4
The output of node --version: v12.0.0
Your operating system

name and version: Mac OS 10.14.6
architecture (32 or 64-bit): 64bit

Your shell (e.g., bash, zsh, PowerShell, cmd): zsh
Your browser and version (if running browser tests): n/a
Any third-party Mocha-related modules (and their versions): n/a (?)
Any code transpiler (e.g., TypeScript, CoffeeScript, Babel) being used (and its version): TypeScript (?)

Additional Information
Full log:
  1) "after each" hook
/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:917
    process.removeListener('uncaughtException', uncaught);
            ^

TypeError: process.removeListener is not a function
    at Runner.<anonymous> (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:917:13)
    at Runner.emit (events.js:196:13)
    at /Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:903:12
    at done (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:728:16)
    at done (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:732:14)
    at done (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:732:14)
    at done (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:732:14)
    at done (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:732:14)
    at Runner.hookErr (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:575:7)
    at Runner.uncaught (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:857:19)
    at process.uncaught (/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:887:10)
    at process.emit (events.js:196:13)
    at process._fatalException (internal/process/execution.js:146:25)

Node documentation for removeListener:
https://nodejs.org/api/events.html#events_event_removelistener
[edit] - documentation should be here, thank you @plroebuck :
https://nodejs.org/api/events.html#events_emitter_removelistener_eventname_listener

Node documentation link should be to this.
Does this occur with the built-in reporters, or just your custom one?

Thank you @plroebuck for the documentation link and the follow up question.
I suspect the problem will happen with any project that uses Mocha and attempts to run it with Node 12. My reporter does not have any dependencies, just devDependencies:
https://github.com/whyboris/karma-helpful-reporter/blob/karma-helpful-reporter/package.json#L13
🤷♂ sorry I'm not very knowledgeable about all this 😅

@whyboris is this still a pending isssue?

Have you updated your Node version? Which version do you use now?

I'm on Node 12.6.0 and the above screenshot is what I see.

I'm also seeing exactly the same issue with mocha tests in node 12.12.0 and the screenshot above is what I also see.

I just tried to recreate this without success:
$ mocha --version
6.2.2
$ node -v
v12.13.0

Mocha's unit tests are also all run on node 12: https://travis-ci.org/mochajs/mocha/builds/606685504
It doesn't seem to be a problem with the base package, or any of the built-in reporters that are currently being tested.

I can recreate the error by cloning git@github.com:whyboris/karma-helpful-reporter, creating a clean install on node 12.13.0 and running the test suite:
$ npm t

><EMAIL_ADDRESS>test /Users/pbm/git/karma-helpful-reporter
> nyc mocha

[REMOVED SUCCESSFUL TESTS OUTPUT]

  105 passing (1s)

  1) "after each" hook
/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:917
    process.removeListener('uncaughtException', uncaught);
            ^

TypeError: process.removeListener is not a function
    at Runner.<anonymous> (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:917:13)
    at Runner.emit (events.js:210:5)
    at /Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:903:12
    at done (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:728:16)
    at done (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:732:14)
    at done (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:732:14)
    at done (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:732:14)
    at done (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:761:7)
    at next (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:732:14)
    at Runner.hookErr (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:575:7)
    at Runner.uncaught (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:857:19)
    at process.uncaught (/Users/pbm/git/karma-helpful-reporter/node_modules/mocha/lib/runner.js:887:10)
    at process.emit (events.js:210:5)
    at processEmit [as emit] (/Users/pbm/git/karma-helpful-reporter/node_modules/signal-exit/index.js:155:32)
    at process._fatalException (internal/process/execution.js:150:25)

Since we test on node 12 it seems that this code path must be untested. First order of business would be to recreate the bug in a test in a Pull-request we can the iterate on to fix it

I haven't understood what happens exactly. I just have some remarks:

process is a global object created by Node and is an instance of EventEmitter. Every EventEmitter should know the removeListener function. So the error TypeError: process.removeListener is not a function is very strange.
I suppose the process object is overridden somewhere.
the test file "data.types.test.js" is causing the error. I did not study the entire file, but I can see, object is manipulated.

I'm not very experienced in mocking, but I'm shyly passing the ball back to you.
My diagnosis so far: process has been mocked and not reverted to its original state.

@juergba Correct, the tests are stubbing process here and here. Since it's a global object, this altered state is carried over into other test files. If I comment out these lines, process works as expected.

@rgroothuijsen thank you for your confirmation. 👍
@whyboris can I close this issue?

I had this issue with version 6.1.4 -- my tests would generate this error:
  1) "after each" hook
/Users/byakubchik/Desktop/temp/karma-helpful-reporter/node_modules/mocha/lib/runner.js:917
    process.removeListener('uncaughtException', uncaught);
            ^

I updated to 7.1,1  -- now the error is just
1) "after each" hook in "util/shell.js test suite"

It's not clear what the error is, but at least it points to a file in my repository, rather than to mocha
Please feel free to close the issue if you think you've resolved it 👌
I suspect it is fixed, but can't be sure 🤷♂
Cheers 🙂

@whyboris I'm closing this issue.
I think it's your turn now to improve your testing code. Mocha needs the uncaught error handler to process uncaught exception. Overwritting the process object is a severe error in your code. It's your turn.

I recently encountered this error when upgrading Node through v12, and in case anyone else is having trouble with it...
It may relate to the change in v12 of making global.process non-enumerable, so some mocking/injection frameworks when asked to stub process in a module accidentally overwrite the real thing. This will be missing any method not needed for the test, hence the error.
In my case the framework was rewire, and the underlying bug can be found here, where I have suggested a workaround.
If that doesn't apply in your case, then the following may at least ease the symptoms  if not address the root cause:
// global-process-hook.js
const oldProcess = process;

afterEach(() => {
    if (process !== oldProcess) {
        console.error('GLOBAL PROCESS CLOBBERED');
        process = oldProcess;
    }
});

Adding global-process-hook.js to the mocha command-line before the actual test folders allowed me to narrow down the tests that were causing the problem.

@john-perks thank you.
This issue and its reproduction repository are requiring rewire as well.


Support Stream on CosmosStoredProcedure.ExecuteAsync

The CosmosStoredProcedure.ExecuteAsync does not have a stream equivalent.
Describe the solution you'd like
CosmosStoredProcedureCore.ProcessAsync exposes the equivalent but is not accessible
Describe alternatives you've considered
Lot's of low level stuff I want to avoid
Additional context
I am using the Utf8JsonWriter to serialize my documents and batch the data into a stream for processing. Currently you do not allow for a custom CosmosJsonSerializer and even if  you did it would not do what I need because it would take 2 serialization runs. One to calculate the stream size and another in the ExecuteAsync. By consuming a stream in the ExecuteAsync, I can get it all done in one pass.
PS - the tight controls over internal setters in a lot of the API is very frustrating

Stream support for StoredProcedure is a good improvement.
On custom CosmosJsonSerializer part:
Layer wise typed is always treated as on-top of stream. And Stream to T conversion is delegated to  CosmosJsonSerializer. Am not fully clear on two-serialization runs part, @fuocor  can you please elaborate more?

Without direct stream support, if I ran a batch and wanted to keep it within a specific chunk size I would need to serialize once to calculate the batch chunks, and then send the corresponding object collection subset the ExecuteAsync method which would serialize it again.
With direct stream, I can serialize the individual items in the collection, determine where to chunk, and send the payload without the need to reserialize.


Add example plots to metrics

To help explain how the metrics work (particularly the metrics involving CDFs), try to add example plots as part of the auto-generated documentation. Not sure of the exact process, but the idea is to add example code to the function docstrings, which are then run by the doc generation process and stored as part of the HTML doc pages.
If the auto-generation fails, then the backup is trying to add static figures illustrating the main points (either to the SFA docs or the website).

Found an example to illustrate (more or less) what we want:
In the pandas docs, they have a "10 minutes to pandas" tutorial which shows example code and output. In the "Plotting" section, the plot code and output are shown: https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html#plotting

Looking at the source file (https://github.com/pandas-dev/pandas/blob/master/doc/source/getting_started/10min.rst), they seem to use some sort of ipython plugin for the docs:
.. ipython:: python
   :suppress:

   import matplotlib.pyplot as plt
   plt.close('all')

.. ipython:: python

   ts = pd.Series(np.random.randn(1000),
                  index=pd.date_range('1/1/2000', periods=1000))
   ts = ts.cumsum()

   @savefig series_plot_basic.png
   ts.plot()

I've used the ipython directive in the pvlib docs for code and figures. Usually works ok. But I've only used it in standalone rst files rather than as part of a function's doc string.
Here's a random scipy function that includes an image in its doc string:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.fourier_ellipsoid.html#scipy.ndimage.fourier_ellipsoid
https://github.com/scipy/scipy/blob/v1.3.3/scipy/ndimage/fourier.py#L226-L239
Scipy uses the matplotlib plot_directive extension. I don't know how it might differ from the ipython extension for plotting.
One approach could be to add a rst page titled something like "Distributions" that puts all of the relevant examples in one place. Might be a good idea to centralize some information at this point anyways.
I'm less concerned about plots for the other metrics right now.


Rename EMPTY_MASK

I think DEFAULT, EMPTY or smth like this, because Mask::EMPTY, Mask::CLEAN or Mask::INITIAL_STATE are better alternatives.

Please don't break backward compatibility.

@damour We need this improvement to successfully launch our project to the market.

I like EMPTY, as that's what is is. And it's not redundant like using Mask::EMPTY_MASK.
DEFAULT should not be used, as the default value you want to use may be different depending on the application. (e.g. a default set of permissions for a user)
@damour If the version is tagged correctly when released, and your composer.json has the correct version constraint, a breaking change should not affect your application as it should remain on the working version.


Fix #6311

By moving predicate argument position comparison to signature comparison, since the compatibility of isolated predicate comparisons never hinges on argument position equality.
Thoughts? @JsonFreeman @DanielRosenwasser

Edit by @DanielRosenwasser: Fixes #6311

So the idea is that a predicate type will always be assignable to a boolean (and nothing else), but that when relating signatures, that's when we check for any meaning on them. Is that correct?
If so, I think this might be the way to go.

I think this approach is moving in the right direction, which is pushing more of the comparison burden on the signature instead of the type predicate. That said, I am still in favor of completely obliterating the type predicate type, and even doing the comparison of the type predicate's type on the signature basis. I don't understand how it is meaningful to compare type predicates at all, given that their meaning is entirely based on their signature of origin.

I think there are merits to the current approach. Namely:

Representing predicates as types allows inferences to be made from predicates, which can be nice for filter-like functions.
this-based type guards need not be attached to a signature, and that is easier to represent as a type. Keeping the two in sync is generally cleaner.

I agree about the second point, regarding this predicates. I'm not so sure about the first, for two reasons:

I think inferences can still be made from type predicates, even if they live on the signature.
I'm not sure inferences should be made from type predicates, but this boils down to a deeper philosophical question about type argument inference. It's a question of whether you think all positions in the type system are fair game for type argument inference, versus just positions that can be inhabited by values at runtime. For example, clearly the type of a property or a return type is a good thing to infer from. But the type in a type predicate or the type of a parameter is more dubious because those types are invisible at runtime. So I suppose, to your point, as long as we infer from parameters, why should type predicates be any different?

I think you're right that we could continue limiting to signatures, but I'd rather we went our course with how things are now, and revisit if there are other major issues that pop up.

I do agree with @JsonFreeman that predicates do not belong in a type. this is leading to the current behavior. i am not sure i understand why something like this.thisPredicate() === argumentPredicate(a) is not allowed either..

@mhegazy where are you getting that example from? I don't think we ever said that should be an error, and with this change, it shouldn't be considered an error.

I think it would be considered an error even with this change, because the type portions of the type predicates are still being compared.


Only Office could not be loaded if editor is already open

Steps to reproduce

Upload an office file (in my case xlsx)
Click on it -> OnlyOffice opens in new tab
Switch back to file manager, click on the file again or click any other file of the same file type (xlsx)

Expected behaviour
File should be opened again or the tab with the previously opened file should be focused (if this is at all possible)
Actual behaviour
New tab opens with error message "Sorry, editor could not be loaded. Please contact your administrator."
Environment general
https://ocis.ocis-wopi.latest.owncloud.works/
Client configuration
Browser: Firefox 103.0.1
Operating system: MacOS 12.4
Browser log
No errors visible in console
https://user-images.githubusercontent.com/16665512/183595175-30e461ae-6e5d-4b63-b780-ae231111ae4a.mov

Same happens to me when opening the file with two different users.
Logs
ocis-wopiserver-1                 | ERROR:wopiserver:"module": "cs3iface", "msg": "Failed to setlock", "filepath": "d5efa44e-ff1c-4ee3-a9dd-984142b84d0e/Neue Datei.docx", "appname": "OnlyOffice", "value": "opaquelocktoken:797356a8-0500-4ceb-a8a0-c94c8cde7eba c1h4OGVWck9zeEZYMjNjWFRVQ3phZz09", "trace": "51f62c05d18b1c5e8f41f586988bf78e", "code": "12", "reason": "set lock: error: aborted: already locked"
ocis-wopiserver-1                 | {"time": "2022-08-11T09:21:57.844", "host": "dcdeacba2ed2", "level": "ERROR", "process": "wopiserver", "module": "cs3iface", "msg": "Failed to setlock", "filepath": "d5efa44e-ff1c-4ee3-a9dd-984142b84d0e/Neue Datei.docx", "appname": "OnlyOffice", "value": "opaquelocktoken:797356a8-0500-4ceb-a8a0-c94c8cde7eba c1h4OGVWck9zeEZYMjNjWFRVQ3phZz09", "trace": "51f62c05d18b1c5e8f41f586988bf78e", "code": "12", "reason": "set lock: error: aborted: already locked"}
ocis-wopiserver-1                 | ERROR:wopiserver:"module": "wopi", "msg": "Unable to store WOPI lock", "lockop": "Lock", "filename": "d5efa44e-ff1c-4ee3-a9dd-984142b84d0e/Neue Datei.docx", "token": "7mPaZ61FOCJbpKKrIwJs", "lock": "sXx8eVrOsxFX23cXTUCzag==", "error": "set lock: error: aborted: already locked"
ocis-wopiserver-1                 | {"time": "2022-08-11T09:21:57.846", "host": "dcdeacba2ed2", "level": "ERROR", "process": "wopiserver", "module": "wopi", "msg": "Unable to store WOPI lock", "lockop": "Lock", "filename": "d5efa44e-ff1c-4ee3-a9dd-984142b84d0e/Neue Datei.docx", "token": "7mPaZ61FOCJbpKKrIwJs", "lock": "sXx8eVrOsxFX23cXTUCzag==", "error": "set lock: error: aborted: already locked"}
ocis-onlyoffice-1                 | [2022-08-11T09:21:57.850] [ERROR] nodeJS - wopi error LOCK:Error: Error response: statusCode:500; headers:{"content-length":"33","content-type":"text/html; charset=utf-8","date":"Thu, 11 Aug 2022 09:21:57 GMT","server":"waitress"}; body:
ocis-onlyoffice-1                 | I/O Error, please contact support
ocis-onlyoffice-1                 |     at Request._callback (/snapshot/server/build/server/Common/sources/utils.js)
ocis-onlyoffice-1                 |     at Request.callback (/snapshot/server/build/server/Common/node_modules/request/request.js:185:22)
ocis-onlyoffice-1                 |     at Request.emit (events.js:400:28)
ocis-onlyoffice-1                 |     at Request.<anonymous> (/snapshot/server/build/server/Common/node_modules/request/request.js:1154:10)
ocis-onlyoffice-1                 |     at Request.emit (events.js:400:28)
ocis-onlyoffice-1                 |     at IncomingMessage.<anonymous> (/snapshot/server/build/server/Common/node_modules/request/request.js:1076:12)
ocis-onlyoffice-1                 |     at Object.onceWrapper (events.js:519:28)
ocis-onlyoffice-1                 |     at IncomingMessage.emit (events.js:412:35)
ocis-onlyoffice-1                 |     at endReadableNT (internal/streams/readable.js:1317:12)
ocis-onlyoffice-1                 |     at processTicksAndRejections (internal/process/task_queues.js:82:21)

I rember reading docs that mentioned locks and etags but can no longer find them. Hoowever, rereading https://developers.google.com/maps-booking/reference/grpc-api/status_codes I would highlight this:

Use ABORTED if the client should retry at a higher-level, such as when a client-specified test-and-set fails which indicates that the client should restart a read-modify-write sequence.

For me a client-specified test-and-set translates into the http preconditions that the client sents along, which is what WOPI does as well, does it not? That is why I would argue that the GRPC API should use tha ABORTED code.
You could argue that if the client does not send the LockID in the request the serler neets to respond with a PRECONDITION_FAILED code ... but that just means that clients need to handle both cases.
For now I'd make the wopi client treat ABORTED and PRECONDITION_FAILED the same. Which is backwards compatible.
@wkloucek does that explanation help?

hah! In https://cloud.google.com/apis/design/errors#generating_errors you can find:

HTTP
gRPC
Example Error Message

400
FAILED_PRECONDITION
Resource xxx is a non-empty directory, so it cannot be deleted.

409
ABORTED
Couldn’t acquire lock on resource ‘xxx’.

To be clear: when a client sends a request without a condition, eg. please lock file /foo, then the server MUST return a PRECONDITION_FAILED error. The client did not specify a 'test' the server should perform before creating the lock.

I could reproduce if same file opened in collabora and only office [Release 2.0.0-beta.7]
(https://github.com/owncloud/ocis/issues/4425#top)
Steps:

admin creates file.ods
admin shares file.ods to einstein
admin opens file in collabora
einstein opens file in only ofice

or admin opens file first in collabora, second in only office
Actual:

ocis_wopi_onlyoffice log:
[2022-08-25T12:27:42.135] [ERROR] nodeJS - wopi error LOCK:Error: Error response: statusCode:409; headers:{"content-length":"46","content-type":"application/json","date":"Thu, 25 Aug 2022 12:27:42 GMT","server":"waitress","x-wopi-lock":"cool-lockb82b20ff","x-wopi-lockfailurereason":"The file is locked by Collabora"}; body:

{"message": "The file is locked by Collabora"}

    at Request._callback (/snapshot/server/build/server/Common/sources/utils.js)

    at Request.callback (/snapshot/server/build/server/Common/node_modules/request/request.js:185:22)

    at Request.emit (events.js:400:28)

    at Request.<anonymous> (/snapshot/server/build/server/Common/node_modules/request/request.js:1154:10)

    at Request.emit (events.js:400:28)

    at IncomingMessage.<anonymous> (/snapshot/server/build/server/Common/node_modules/request/request.js:1076:12)

    at Object.onceWrapper (events.js:519:28)

    at IncomingMessage.emit (events.js:412:35)

    at endReadableNT (internal/streams/readable.js:1334:12)

    at processTicksAndRejections (internal/process/task_queues.js:82:21)


[Request] Encrypt with passphrase stored as an environment variable

Hello! I’m loving this package and I’m using it in several private repos; though, it would be great if I could implement it in public projects without giving away the security through package.json.
Would it be possible to encrypt using passphrases stored in the .env file or Netlify’s environment variables?

Hey @patrulea that's a neat idea - I won't have time to work on this for a few weeks, I'll try to get to in October. Thanks for the suggestion.

This is now possible through the v2.3 release and this commit https://github.com/robinmoisson/staticrypt/commit/ba24ae42c05f02526a20911a75b54cc3089cb97b.
You can set STATICRYPT_PASSWORD to your password as an env variable or in a .env file, and if you do you don't need to pass the passphrase parameter to the staticrypt command.
Feels a bit clunky to make the second positional argument disappear, v3 will get the password through -p <password> and should be more intuitive but in the meantime this should already work.
Closing this issue, let me know if you have any issue with that solution!


Allow cmd to read external data from env and command line flags

To what extent should environment variables and flags be unified?
How should the cmd command evaluate environmental variables and flags when both are specified.

The tooling layer now supports environment variables.
A general mechanism for injecting values based on command lines flags is now supported through --inject/-t. This is not general command line flags, which may still be considered, but it is actually surprisingly hard to get a nice UX for. So closing this for now until --inject/-t proves insufficient.

This issue has been migrated to https://github.com/cue-lang/cue/issues/159.
For more details about CUE's migration to a new home, please see https://github.com/cue-lang/cue/issues/1078.


app_links_platform_interface: 1.0.1 - method_channel_applinks.dart throws no such method

Device: Android
The following code causes an exception to be thrown
    final _applinks = AppLinks();

    final _initialRoute = await _applinks.getInitialAppLink();

method_channel_applinks.dart throws no such method at
 @override
  Future<String?> getInitialAppLinkString() async {
    final link = await _method.invokeMethod(_getInitialAppLinkMethod);
    return link.isNotEmpty ? link : null;
  }

Did you try to clean your project?
I guess I pushed my pubspec.yaml with relative path.
Don't know if this will help...

Yes. Flutter clean does not solve it.
I did a little deeper debugging. Here's what I found:

I'm not sure why the getInitialAppLink method cannot be found though.

Thank you! No rush. We'll just pin to app_links_platform_interface: 1.0.0 for now :)
Have a wonderful day!

app_links_platform_interface "1.0.2" has been released to fix this null pointer.


[Snyk] Upgrade @lion/ui from 0.0.12 to 0.3.5

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade @lion/ui from 0.0.12 to 0.3.5.
As this is a private repository, Snyk-bot does not have access. Therefore, this PR has been created automatically, but appears to have been created by a real user.
:sparkles: Snyk has automatically assigned this pull request, set who gets assigned.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 17 versions ahead of your current version.
The recommended version was released a month ago, on 2023-07-25.

Release notes

Package name: @lion/ui

0.3.5 - 2023-07-25Patch Changes

5eafa1f: hide overlay arrow from screen readers

0.3.4 - 2023-07-04Patch Changes

b44bfc5: [calendar] updates:

Enables focus to disabled dates to make it more reasonable for screen readers
Do not automatically force selection of a valid date
Add helper functions to find next/previous/nearest enabled date

137a1b6: lion-input-file: added isDragging property

0.3.3 - 2023-06-22Patch Changes

ecf853d: fixed exporting types of lion-input-file

0.3.2 - 2023-06-21Patch Changes

259e0dd: lion-selected-filelist: removed composed: true and bubbles: true and set eventlistener directly on lion-selected-file-list inside lion-input-file

0.3.1 - 2023-06-19Patch Changes

7ec90dc: add CheckboxIndeterminate test suite
1ea5730: [localize] align currency symbol usage for all browsers
33c0ff1: Added vs-code json file to enable auto-completion
dbc3fc2: [combobox] submits form on [Enter]

0.3.0 - 2023-06-08

0.2.2 - 2023-05-17

0.2.1 - 2023-05-02

0.2.0 - 2023-03-20

0.1.5 - 2023-02-28

0.1.4 - 2023-02-20

0.1.3 - 2023-02-13

0.1.2 - 2023-02-10

0.1.1 - 2023-02-01

0.1.0 - 2023-01-24

0.0.14 - 2023-01-23

0.0.13 - 2023-01-16

0.0.12 - 2022-12-16

    from @lion/ui GitHub release notes

Commit messages

Package name: @lion/ui

16d95c6 Merge pull request #2035 from ing-bank/changeset-release/master
f1ef7c1 Version Packages
7a875ef feat: parsing body for failed ajax responses (#2039)
5eafa1f fix(overlays): add aria-hidden to arrow (#2030)
b340fd7 Version Packages (#2032)
ecf6340 Merge pull request #2031 from ing-bank/fix/empty-response
fd93cc0 Create chilly-bananas-talk.md
08b109b fix: avoid JSON.parsing empty responses
14a8f77 Version Packages (#2026)
b44bfc5 feat: enable navigation to, selecting & give accessible message for calendar disabled dates (#1978)
137a1b6 Feat/is dragging prop (#2025)
05fbac7 Merge pull request #2023 from ing-bank/changeset-release/master
38e67f8 Version Packages
ecf853d chore: add changeset for fix of exported types of lion-input-file
0745ce8 Fix/input file types (#2021)
91b582d Merge pull request #2020 from ing-bank/changeset-release/master
7ec183c Version Packages
259e0dd Fix/remove file (#2018)
a19e02c Version Packages (#2008)
7ec90dc chore: add checkboxIndeterminate test suite (#2013)
02e6128 Revert "fix: create exports for test-suites and test-helpers (#2010)" (#2012)
1ea5730 fix(localize): align currency symbol usage for all browsers (#2011)
3cfc9f9 fix: create exports for test-suites and test-helpers (#2010)
dbc3fc2 fix(combobox): submit form on [Enter] (#2005)

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
👩💻 Set who automatically gets assigned
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

https://github.com/tokens-studio/style-dictionary-configurator/pull/51


ben awad sir  please can u talk to me because i am trying to talk to you from 3 months

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

bruh

You can talk to me instead :D

I suggest asking in public, say on Twitter

damn you thristin


[interop] Add 1.64.0 release of grpc-go to interop matrix

cc: @yashykt PTAL

Adhoc Interop Matrix is failing @arvindbr8

Closing. This is handled in : #36755


aws-sdk-cpp: mark as broken on x86_64-darwin

Description of changes
See https://github.com/NixOS/nixpkgs/issues/340087
cc @orivej
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

??? This would literally break nix

What do you mean ?
The package literally does not build right now.
Maybe I am missing something, but, how would this justify not marking a broken package as such ?

Then someone should fix it?

Then someone should fix it?

Absolutely, but it has remained broken for more than a week now and it is quite annoying to deal with when reviewing other PRs.

Where are you getting a week from? I see one failed build on https://hydra.nixos.org/job/nixpkgs/trunk/aws-sdk-cpp.x86_64-darwin that looks like it might just be an overloaded builder. @K900 already restarted it.

Where are you getting a week from?

Sorry, this might have been slightly overestimated. But I have encountered this failure several times those past few days.
Of course, before submitting the build failure issue, I have retried the build several times on the darwin builder.
Maybe this package simply does not build succesfully on the remote darwin builder and I had never noticed it because of it being properly cached on hydra.
Do you actually think this is a false positive ? I unfortunately do now own an x86_64-darwin system to test this.

Sorry, I assumed it was just a Hydra thing and that it hadn’t been reproduced anywhere else.
We can’t really mark this broken but I’ll try to reproduce on my local native x86_64-darwin.

FWIW Hydra just uses Rosetta 2 for x86_64-darwin so if you have aarch64-darwin like the community builder that’s just as good.

FWIW Hydra just uses Rosetta 2 for x86_64-darwin so if you have aarch64-darwin like the community builder that’s just as good.

Yes, I know and maybe this failure is simply caused by the emulation...

We can’t really mark this broken but I’ll try to reproduce on my local native x86_64-darwin.

Ok thank you. We should definitely double-check.
On a more general note, if some package is actually and verifiably not building, is there some reason to not explicitly mark it as broken ?
I ask this, because the time spent at sorting the failures reported by nixpkgs-review between actual regressions and false positive seems very unnecessary to me.
Are there some additional conditions that a package needs to meet before being marked as broken... despite not building ?

aws-sdk-cpp is a dependency of Nix. Marking it brokens means that Nix won’t be available on x86_64-darwin.
Marking packages broke should be a last resort. It’s better to fix them if possible.

On a more general note, if some package is actually and verifiably not building, is there some reason to not explicitly mark it as broken ?

If a package this critical is broken, we can’t just mark it broken and move on. We have to fix it or else drop support for the platform entirely. If stdenv breaks on one of the big platforms, the answer isn’t “mark it broken”, it’s “hey we need to drop everything and fix this right now”. Reverse dependencies of Nix aren’t quite that level of critical, but they’re still vital to basic platform support.
So, in other words, this PR basically equates to “casually drop x86_64-darwin support”, hence the pushback :) I don’t think you did anything wrong here but it’s not a viable path forward unless we truly exhaust every other option.
(I guess merging this package wouldn’t strictly make anything worse. The channel won’t progress if Nix won’t build, anyway. But we’d need to fix it and revert it ASAP.)

If a package this critical is broken, we can’t just mark it broken and move on. We have to fix it or else drop support for the platform entirely. If stdenv breaks on one of the big platforms, the answer isn’t “mark it broken”, it’s “hey we need to drop everything and fix this right now”. Reverse dependencies of Nix aren’t quite that level of critical, but they’re still vital to basic platform support.
So, in other words, this PR basically equates to “casually drop x86_64-darwin support”, hence the pushback :) I don’t think you did anything wrong here but it’s not a viable path forward unless we truly exhaust every other option.
(I guess merging this package wouldn’t strictly make anything worse. The channel won’t progress if Nix won’t build, anyway. But we’d need to fix it and revert it ASAP.)

Thank you for the detailed clarification.

For this package: I didn't know at first that it was somehow linked to nix itself. As it only appeared to fail when nixpkgs-review-ing some PRs but not others, I thought that it was not as critical. I now perfectly understand that fixing it should be a priority.
My question was more general and I was thinking of non-critical packages. Basically, from my understanding, "failing but not marked as broken" is an undesired/temporary state. A package that does not build should "quickly" either be fixed or marked as broken (along with the relevant Build failure issue). There is no advantage in keeping failing packages around, wasting CPU time at trying to build them.
Is this analysis correct or should failing non-critical packages be left as is in some specific situations ?

Right, I think your second bullet point is correct. That’s why we do Zero Hydra Failures every release cycle to try and fix as many packages as possible or mark them broken if we can’t. Though of course we much prefer the former to the latter when possible.

Thanks for all the insights, I will close this PR and leave the issue opened for now :)

FYI, I ran the aws-sdk-cpp build on x86_64-Darwin and it uses enough memory to start pushing into swap. It's possible that the intermittent failures you saw were OOM errors potentially due to concurrent builds.

The test failures in https://github.com/NixOS/nixpkgs/issues/340087#issuecomment-2334830046 don’t seem like OOM to me. But it feels like a weird test failure to be flaky in the first place, so who knows what’s really going on there.


HorizontalPDFReader won't scroll inside LazyColumn

@Candraibra can you provide sample code?

hi, did you integrated this in Jetpack? i am not able to use this in jetpack compose, can you provide me steps how you archived this?


NavigationAdvancedSample - navigating between stacks.

Are there any examples on how to navigate between stacks?
For example, if I want to navigate from the Register screen directly to the Home/About screen how do I do this? Additionally how would I maintain the backstack so that when I hit the back button while on the About screen I would go back to the Register screen instead of the Title Screen.
To put the problem more generically:
If I have bottom nav sections A, B and C, each with fragments, 1, 2 and 3 - How do I nav from Section A Fragment 1 to Section B Fragment 2?

You solved this? also need this

No. Our workaround is to have 2 instances of the same fragment, one in each section.

really need this

What about navigating with deeplink?

Also have similar problem.

I have created a sample that does something like that. You can check it out here https://github.com/St4B/Jalapeno

In our app we did add a custom Navigator that deals with Navigation between tabs.
It is added to each fragment container when setupWithNavgraph is called like this:
navHostFragment.navController.navigatorProvider += bottomNavigationNavigator
bottomNavigationView is passed into it as a constructor parameter
selectedNavController is the live data of the selected navController
We added the ability to also navigate to a destination within that graph, after working with the navigation library for longer now, you probably can improve this code. By checking each graph if they support the destination you want to go to. Similar to the setupDeepLink method.
Essentially it does this:
@Navigator.Name(BOTTOM_NAVIGATION_VIEW_NAVIGATOR)
class BottomNavigationViewNavigator(
    private val bottomNavigationView: BottomNavigationView,
    private val selectedNavController: LiveData<NavController>
) : Navigator<BottomViewDestination>() {
override fun navigate(
        destination: BottomViewDestination,
        args: Bundle?,
        navOptions: NavOptions?,
        navigatorExtras: Extras?
    ): NavDestination? {
        if (destination.tabId != bottomNavigationView.selectedItemId) {
            bottomNavigationView.selectedItemId = destination.tabId
            if (destination.id == destination.tabId) {
                return destination
            }
        }
        destination.navDestinationId?.let { navDestinationId ->
            selectedNavController.value?.navigate(
                navDestinationId,
                args,
                navOptions,
                navigatorExtras
            )
        }
        return destination
    }

override fun createDestination(): BottomViewDestination {
        return BottomViewDestination(R.id.action_tab_0, null)
    }

    override fun popBackStack(): Boolean {
        return false
    }
}

Does anyone get a solution now?

I have created a sample that does something like that. You can check it out here https://github.com/St4B/Jalapeno
It seems not what we want. We want the bottom navigate view switch from A tab to B tab, and the B tab's back stack navigate to specified fragment.


Add Line Stream

Codecov Report

Merging #6 (74c554d) into trunk (8438aa4) will increase coverage by 1.20%.
The diff coverage is 96.15%.

@@            Coverage Diff             @@
##            trunk       #6      +/-   ##
==========================================
+ Coverage   91.71%   92.92%   +1.20%
==========================================
  Files          24       26       +2
  Lines         169      212      +43
==========================================
+ Hits          155      197      +42
- Misses         14       15       +1

Flag
Coverage Δ

unittests
92.92% <96.15%> (+1.20%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

core/include/scanner.hpp
100.00% <ø> (ø)

core/src/scanner.l
84.61% <85.71%> (ø)

core/src/line_stream.cpp
96.00% <96.00%> (ø)

core/include/line_stream.hpp
100.00% <100.00%> (ø)

core/src/parser.y
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8438aa4...74c554d. Read the comment docs.


uv fails to install torch-scatter with ModuleNotFoundError, pip works

i'm running python 3.12 on macOS 14.5 in a uv venv
$ uv pip install torch torch-scatter

# torch installs fine

error: Failed to download and build `torch-scatter==2.1.2`
  Caused by: Failed to build: `torch-scatter==2.1.2`
  Caused by: Build backend failed to determine extra requires with `build_wheel()` with exit status: 1
--- stdout:

--- stderr:
Traceback (most recent call last):
  File "<string>", line 14, in <module>
  File "/Users/janosh/Library/Caches/uv/environments-v0/.tmp8n22Qt/lib/python3.12/site-packages/setuptools/build_meta.py", line 327, in get_requires_for_build_wheel
    return self._get_build_requires(config_settings, requirements=[])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/janosh/Library/Caches/uv/environments-v0/.tmp8n22Qt/lib/python3.12/site-packages/setuptools/build_meta.py", line 297, in _get_build_requires
    self.run_setup()
  File "/Users/janosh/Library/Caches/uv/environments-v0/.tmp8n22Qt/lib/python3.12/site-packages/setuptools/build_meta.py", line 497, in run_setup
    super().run_setup(setup_script=setup_script)
  File "/Users/janosh/Library/Caches/uv/environments-v0/.tmp8n22Qt/lib/python3.12/site-packages/setuptools/build_meta.py", line 313, in run_setup
    exec(code, locals())
  File "<string>", line 8, in <module>
ModuleNotFoundError: No module named 'torch'

meanwhile pip succeeds
$ pip install torch torch-scatter

Requirement already satisfied: torch in /Users/janosh/.venv/py312/lib/python3.12/site-packages (2.3.1)
Collecting torch-scatter
  Downloading torch_scatter-2.1.2.tar.gz (108 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108.0/108.0 kB 4.4 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Requirement already satisfied: filelock in /Users/janosh/.venv/py312/lib/python3.12/site-packages (from torch) (3.15.4)
Requirement already satisfied: typing-extensions>=4.8.0 in /Users/janosh/.venv/py312/lib/python3.12/site-packages (from torch) (4.12.2)
Requirement already satisfied: sympy in /Users/janosh/.venv/py312/lib/python3.12/site-packages (from torch) (1.13.0)
Requirement already satisfied: networkx in /Users/janosh/.venv/py312/lib/python3.12/site-packages (from torch) (3.3)
Requirement already satisfied: jinja2 in /Users/janosh/.venv/py312/lib/python3.12/site-packages (from torch) (3.1.4)
Requirement already satisfied: fsspec in /Users/janosh/.venv/py312/lib/python3.12/site-packages (from torch) (2024.6.1)
Requirement already satisfied: MarkupSafe>=2.0 in /Users/janosh/.venv/py312/lib/python3.12/site-packages (from jinja2->torch) (2.1.5)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in /Users/janosh/.venv/py312/lib/python3.12/site-packages (from sympy->torch) (1.3.0)
Building wheels for collected packages: torch-scatter
  Building wheel for torch-scatter (setup.py) ... done
  Created wheel for torch-scatter: filename=torch_scatter-2.1.2-cp312-cp312-macosx_14_0_arm64.whl size=265133 sha256=5858d50f99b14b323d9dd09a7969aa3dfbe1943c3ca3169729a40be0ef91f5f7
  Stored in directory: /Users/janosh/Library/Caches/pip/wheels/84/20/50/44800723f57cd798630e77b3ec83bc80bd26a1e3dc3a672ef5
Successfully built torch-scatter
Installing collected packages: torch-scatter
Successfully installed torch-scatter-2.1.2

pip install torch torch-scatter --use-pep517 fails in the same way. You'll need to install torch, then install torch-scatter with --no-build-isolation, since torch-scatter doesn't declare torch as a build-time dependency (but does depend on it).

See: https://github.com/astral-sh/uv/issues/2252/.

I'm going to add a custom error for this since it's so common.

thanks for the lightning response. a custom error recommending --no-build-isolation would be great time saver! 👍

I'll keep this open to track that!


Remove expired registrations on send

From time to time, we have invalid device registrations, especially if the app was uninstalled. If an app is no longer registered in the target device and a message is pushed to the device, the GCM returns a NotRegistered error message. It would be convenient if the server could remove those outdated registrations from its database.

I actually have some code I wrote for this, we ran into a similar issue with InvalidRegistrations that must have come from a botched data migration. I'll put something up soon

I am the same issue an another related https://github.com/uniqush/uniqush-push/issues/73

@ItsNotYou Are you running the latest uniqush-push? Hopefully as there hasn't been a release in a while. There is a specific handler to the "NotRegistered" GCM error message which creates an unsubscribe update event and drops it from the Redis DB.
It will generate a message in the logs but it is actually getting dropped from the DB.

The case I handled (and mean to push upstream) is "InvalidRegistration" when somehow an entirely invalid (as reported back by GCM) device token is used. The current uniqush-push won't drop those but it's an easy fix I will push upstream.

I've submitted https://github.com/uniqush/uniqush-push/pull/74

Our version is uniqush-push 1.5.2. Is there a schedule for the next release so we can install, test and give feedback?

@ItsNotYou that's the latest, it should already be dropping expired registrations. My patch deals with invalid registrations -- those that were never valid and never will be. In my case, I happened to batch import some bad device tokens.
Can you paste logs?

Also good point about new version... There's been some unrelated fixes/improvements introduced since 1.5.2 that would be valuable to release. @monnand what's your opinion? Should we go 1.5.3?

1.5.3 was released months ago. Reopen this if there's anything else that still affects the latest release. https://github.com/uniqush/uniqush-push/releases


Add gauge metrics for submaps in pose graph.

Adds a metric family that monitors:

the number of submaps in frozen trajectories
the number of submaps in active trajectories
the number of deleted/trimmed submaps

@wally-the-cartographer merge

Merge requested by authorized user gaschler. Merge queue now has a length of 1.


shinyserver, renv and DESCRIPTION file

When deploying a Shiny application "as a package", the shinyserver fails to launch the application and gives the following error:
*** /var/log/shiny-server//shiny-server-shiny-20240607-152055-44137.log ***
su: ignoring --preserve-environment, it's mutually exclusive with --login
[2024-06-07T15:21:10.364] [INFO] shiny-server - Error getting worker: Error: The application exited during initialization.
Error in loadNamespace(x) : there is no package called ‘jsonlite’
Calls: local ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted

This is despite running renv::restore(), renv::isolate() and jsonlite being present in the lock file.
App deployment
As per mastering shiny deployment and golem's instructions, a root-level app.R controls application launch.
The following fails to launch:
# With DESCRIPTION file, fails to launch
pkgload::load_all(".")
asliApp()

But when removing the DESCRIPTION file, and while sourcing without using pkgload (this demands a DESCRIPTION file), this runs with success.
# Without DESCRIPTION file, launches successfully
source("R/asliApp.R")
source("R/object_store.R")
asliApp()

renv cache
On the development notebook, .libPaths() returns:
[1] "/data/notebooks/rstudio-asliappbackend/.cache/R/renv/library/asliapp-ce9aabba/linux-ubuntu-jammy/R-4.4/x86_64-pc-linux-gnu"
[2] "/data/notebooks/rstudio-asliappbackend/.cache/R/renv/sandbox/linux-ubuntu-jammy/R-4.4/x86_64-pc-linux-gnu/25ebdc09"

On the deployed application:
[1] "/srv/shiny-server/renv/library/linux-ubuntu-jammy/R-4.4/x86_64-pc-linux-gnu"
[2] "/home/shiny/.cache/R/renv/sandbox/linux-ubuntu-jammy/R-4.4/x86_64-pc-linux-gnu/25ebdc09"

and installed.packages() returns:
  [1] "askpass"                      "base64enc"
  [3] "bit"                          "bit64"
  [5] "brew"                         "brio"
  [7] "bslib"                        "cachem"
  [9] "callr"                        "cli"
 [11] "clipr"                        "commonmark"
 [13] "cpp11"                        "crayon"
 [15] "credentials"                  "curl"
 [17] "desc"                         "diffobj"
 [19] "digest"                       "downlit"
 [21] "ellipsis"                     "evaluate"
 [23] "fansi"                        "fastmap"
 [25] "fontawesome"                  "fs"
 [27] "gert"                         "gh"
 [29] "gitcreds"                     "glue"
 [31] "highr"                        "hms"
 [33] "htmltools"                    "htmlwidgets"
 [35] "httpuv"                       "httr"
 [37] "httr2"                        "ini"
 [39] "jquerylib"                    "jsonlite"
 [41] "knitr"                        "later"
 [43] "lifecycle"                    "magrittr"
 [45] "memoise"                      "mime"
 [47] "miniUI"                       "openssl"
 [49] "paws"                         "paws.analytics"
 [51] "paws.application.integration" "paws.common"
 [53] "paws.compute"                 "paws.cost.management"
 [55] "paws.customer.engagement"     "paws.database"
 [57] "paws.developer.tools"         "paws.end.user.computing"
 [59] "paws.machine.learning"        "paws.management"
 [61] "paws.networking"              "paws.security.identity"
 [63] "paws.storage"                 "pillar"
 [65] "pkgbuild"                     "pkgconfig"
 [67] "pkgdown"                      "pkgload"
 [69] "praise"                       "prettyunits"
 [71] "processx"                     "profvis"
 [73] "progress"                     "promises"
 [75] "ps"                           "purrr"
 [77] "R6"                           "ragg"
 [79] "rappdirs"                     "rcmdcheck"
 [81] "Rcpp"                         "readr"
 [83] "rematch2"                     "remotes"
 [85] "renv"                         "rlang"
 [87] "rmarkdown"                    "roxygen2"
 [89] "rprojroot"                    "rstudioapi"
 [91] "rversions"                    "sass"
 [93] "sessioninfo"                  "shiny"
 [95] "sourcetools"                  "stringi"
 [97] "stringr"                      "sys"
 [99] "systemfonts"                  "testthat"
[101] "textshaping"                  "tibble"
[103] "tidyselect"                   "tinytex"
[105] "tzdb"                         "urlchecker"
[107] "usethis"                      "utf8"
[109] "vctrs"                        "vroom"
[111] "waldo"                        "whisker"
[113] "withr"                        "xfun"
[115] "xml2"                         "xopen"
[117] "xtable"                       "yaml"
[119] "zip"                          "base"
[121] "boot"                         "class"
[123] "cluster"                      "codetools"
[125] "compiler"                     "datasets"
[127] "foreign"                      "graphics"
[129] "grDevices"                    "grid"
[131] "KernSmooth"                   "lattice"
[133] "MASS"                         "Matrix"
[135] "methods"                      "mgcv"
[137] "nlme"                         "nnet"
[139] "parallel"                     "rpart"
[141] "spatial"                      "splines"
[143] "stats"                        "stats4"
[145] "survival"                     "tcltk"
[147] "tools"                        "utils"

Also see rstudio/rsconnect#192, rstudio/rsconnect#197 and rstudio/rsconnect#199 - these relate to rsconnect (not shinyserver!) but I suspect it may be related.

Tried following, datalabs/renv documentation written by AV, but no luck

Badly circumvented with a datalabs-specific deployment branch. But can't see how else this could be resolved without internal access. Closing.


Metrics - allow "child_workflow_command" counter to be filtered by namespace

Currently child_workflow_command is incremented each time history service handler StartChildWorkflow command but its not filterable by namespace.
Feature request is to have ability to filter it by ns.

Thank you for your feature request! It's a good idea to be able to filter child_workflow_command by namespace.
Currently, there's no way to filter this metric by namespace. As a workaround, you can consider using custom metrics and tags to track this information. You can use the Temporal metrics API to track the child_workflow_command count for each namespace. You can then use a monitoring tool like Prometheus or Grafana to visualize this data.
Let me know if you have any other questions.

Thank you for your feature request! It’s great to see your interest in enhancing Temporal’s capabilities.
While we don't currently offer direct filtering by namespace for child_workflow_command, you can work around this by using the --namespace flag with the temporal history command to view the history events for a specific namespace. You can then manually filter the events for the desired command.
We appreciate your feedback and will consider your request for future enhancements.

Thank you for your feature request!
Currently, there is no way to filter child_workflow_command by namespace. As a workaround, you can use a custom metric to track child workflows by namespace. You can use the AddMetric API to track these metrics within your workflows.
Please let me know if you have any other questions.