Develop the algorithm module by using Python as an interface and C or Fortran as a computation.

I am interesting to be assigned to this issue


Certificate authentication: Enable cert auth and start the shift away from ICredentialProvider.

Enable cert-based authentication of AAD apps. Currently we only support app id + password, but AAD also supports certificates:

To enable this, we start some key refactors after identifying shortcomings of the current model. ICredentialProvider has 2 problems:

It is used for AAD verification and for JwtToken validation, serving 2 purposes that should not necessarily be coupled
It assumes that the authentication is based on password (evident by the GetAppPassowrd() method in the interface)

To overcome this, this is the small first step towards using AppCredentials for AAD verifications, which currently supports Certs or Password, but as-is can simply be extended to support any of the 7 ADAL client flows.
The default paths still use ICredentialProvider and we are enabling AppCredentials for new scenarios. A second iteration will make AppCredentials be the default, but we want to stage that transition to minimize risk.

Pull Request Test Coverage Report for Build 79155

0 of 0   changed or added relevant lines in 0 files are covered.
43 unchanged lines in 4 files lost coverage.
Overall coverage increased (+0.4%) to 81.059%

Files with Coverage Reduction
New Missed Lines
%

/libraries/Microsoft.Bot.Builder.Dialogs/Prompts/OAuthPrompt.cs
1
56.41%

/libraries/Microsoft.Bot.Builder.Azure/CosmosDbStorageOptions.cs
2
50.0%

/libraries/integration/Microsoft.Bot.Builder.Integration.AspNet.Core/ServiceCollectionExtensions.cs
12
77.78%

/libraries/Microsoft.Bot.Builder/BotFrameworkAdapter.cs
28
9.88%

Totals

Change from base Build 79149:
0.4%

Covered Lines:
3535

Relevant Lines:
4361

💛  - Coveralls

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.3.1

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.3.1

And just to set expectations, this change goes from Only App id + password can be done, to 'We natively support password or certificate authentication, but the design allows for simple extension to any other client flow supported by aad apps, only by adding a new AppCredentials subclass without any further modifications to existing abstractions.'

Also, tests exist but not checked in, waiting for us to figure out some build details

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.3.1

This dropped code coverage by 3%. Can you please add relevant tests to get back to the basleine number?

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.3.1


include a variable to check if lang code was missing on initial page load

Hi @martinopic
This is just a tiny helper but very important for my usecase, where I want to set the language based on Meteor.user()

dispatch (and missingLangCodeAction) is not just called on initial page load so how do you know this is an initial page load? Is your use case that of #26  ? In this case I don't think is needed.

In any case I would need the variable to check if there is an initial langKey set or if the user is entering the website without langKey. In our example app
if (!langCode) {
      this.initalLangCodeMissing = true;
(...)

is a time safer and convenient way to see if the should be any Router.setLanguage()calls or not

I think the problem if you have a the missingLangCode if the user opens for example "/" or "/dashboard", you first want to postpone the languageKey look/setting until the user is available. if the visitor of the page is not "loggingin" as there are not credentials available or the loggingin fails you want to continue with navigator lang or the default language.
if there is a langCode available which means the user called directly "/en" , "/de/dashboard" , "/it/la-random-article" you want to set the language to the langcode
i tried to model this in the missingLangCodeAction:

   missingLangCodeAction: function (path) {

//helper to set nav or default
        var setNavigatorLangOrDefault = function () {
          var lang;
          var navLang = navigator.language.split("-")[0];
          if (_.contains(languages, navLang)) {
            console.log("using nav", navLang);
            lang = navLang;
          } else {

            lang = Router.getDefaultLanguage();
            console.log("using default", lang);
          }
          Router.setLanguage(lang);
        };
//set language by user helper
        var setLanguageByUser = function () {
          console.log("setting user lanaguageKey", Meteor.user().languageKey);
          Router.setLanguage(Meteor.user().languageKey);
        };

//====================================================
// here starts the noLangCodeAction
        if (Meteor.loggingIn()) {

          console.log("user logging in");

          Tracker.autorun(function (c) {

            var logginIn = Meteor.loggingIn();
            if (!logginIn && Meteor.user()) {
              setLanguageByUser();
              c.stop();

            } else if (!logginIn) {
              console.log("finished loggingIn in but no user available");
              setNavigatorLangOrDefault()
              c.stop();
            } else {
              console.log("still logging in");// do not stop tracker
            }
          });

        } else if (Meteor.user()) {
          console.log("already logged in");
          setLanguageByUser();
          //Router.go("home");
        } else {

          setNavigatorLangOrDefault();
          //Router.go("home");
        }

      }

This has been solved by introducing Router.getLangCode and Router.isLanguageSet methods in 0.5.2.


Download the manual options

Currently you can only download from the homepage. This should be an option from each phase page as well. Possibly to be included in the footer.

This issue has been resolved


[0.76] npx react-native-macos-init fails

Environment
react-native -v: 0.76.3
npm ls react-native-macos<EMAIL_ADDRESS>node -v: v21.7.1
npm -v: 10.5.0
yarn --version: 4.5.3
xcodebuild -version: Xcode 16.1

Steps to reproduce the bug

Create a new RN project with npx @react-native-community/cli@latest init AwesomeProject --install-pods false
Go to project folder cd AwesomeProject
Init react native macos npx react-native-macos-init

Expected Behavior
The react native macos project to be initialized
Actual Behavior
It fails with this error:

Command failed: npm install --save --silent<EMAIL_ADDRESS>Error: Command failed: npm install --save --silent<EMAIL_ADDRESS>
Reproducible Demo
No response
Additional context
The command error is not descriptive, and gives no info abou what went wrong, but I noticed that it fails if any dependencies versions are not met.

With the latest 0.76.4 RNM release, It tries to install its dependencies with the same version (0.76.4) and fails if not found any.
I needed to pin some dependencies with resolutions for it to work,

"resolutions": {
  "@react-native/assets-registry": "0.76.3",
  "@react-native/codegen": "0.76.3",
  "@react-native/community-cli-plugin": "0.76.3",
  "@react-native/gradle-plugin": "0.76.3",
  "@react-native/js-polyfills": "0.76.3",
  "@react-native/normalize-colors": "0.76.3"
},

Then, it works again: npx react-native-macos-init
This issue do not happen with 0.76.3, so npx react-native-macos-init --version 0.76.3 works as expected

oof, thanks for the report. I'll work on fixing that!

Can you try 0.76.5?

Yes, I tested it and it worked great! 🥳
I created a new project with 0.76.5 and there was no issues running npx react-native-macos-init
I think this is fixed an can be closed,
thank you!


Pods not functioning properly

Hi there, thank you for this library. There is an issue with Pods of the library, when library is imported manually it works fine otherwise if installed through Pods, it fails to recognise ItemView & ItemType. Please provide insight or a fix. Thanks.

@mohsinka
Thank you for your comment.
I fixed it.
Please try to challenge again.


Morph example

[x] UX to drag a single vertex.
[x] Make the granular changes during a drag work well with undo.
[x] Selecting vertices and moving them.
[x] Sub-face selection precision.
[ ] Smoothing.
[ ] Resampling.
[x] Visual feedback on kernel size, vertices being moved, etc.
[ ] Better morph control in 3D (more degrees of freedom instead of only in direction of the normal 😅).
[ ] Morph using mesh slices.

Merging this. I will cover the remaining points in subsequent prs.


Responded only when bot is specifically mentioned

I can't ad this feature to my bot, I using a tokenizer parse to get mentions but I can't get bot ID to compare it.
How can I do this?

I could be wrong, but currently I'm doing something similar, I don't think there is native way to know it. I'm searching on data.content for ("@" + bot.name) in order to detect a bot mention.


Simplify logic of applying colors to the messages

@rynowak I was reading about using struct and disposable pattern and came across following article which says that the the using pattern is optimized for value types where it does not box, but I thought its better to just simplify this
http://ericlippert.com/2011/03/14/to-box-or-not-to-box/
This is not for RC1
Following decompiled code from Telerik JustDecompile which contradicts the above article and is probably wrong

Eric Lippert knows more about the language than your decompiler.

:shipit: - as far as I'm concerned, do whatever you want here. Either of these versions of the code is correct and reasonable.

f6a2f4936161dbabcf6f7fe61373fa7f6f843d6b


tensor shape for conv2 weights on tflite files conflicts with non-quantized graph

In the mobilenet_v1 non-quantized 224 at this link, the filter properties displays the data format as NHWC, and displays  the shape for the first convolution filter as float32[3,3,3,32] in the frozen.pb file
https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md
At the same link is a quantized version of mobilenet v1 224.  Its tflite file does not display a data format, but the weights tensor of the first convolution displays as byte[32,3,3,3].
However this github page say tflite  supports only NHWC... so I would expect both of these models to be using  the same shape for storage.
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/g3doc/tf_ops_compatibility.md
So, is this some error in the way the models are being stored, or is it the viewer?
Thanks...

Can you investigate this further?
node {
  name: "MobilenetV1/Conv2d_0/weights"
  op: "Const"
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 3
          }
          dim {
            size: 3
          }
          dim {
            size: 3
          }
          dim {
            size: 32
          }
        }

0 | MobilenetV1/Conv2d_0/weights | FLOAT32 | [32, 3, 3, 3] | 32 | {}

ok, I investigated further.  It appears to me to be that tflite weight data is being persisted in .tflite with an order that differs from the persistence in the .pb, and the tflite shape is also does not match the weight shape specified in their conv2d documentation.  I added an issue at tensorflow.  I think your viewer is displaying the tflite data as it is specified in the weight's shape parameter.
https://github.com/tensorflow/tensorflow/issues/22540


Add drawer to app

Worked on sidebar navigation and added some mobile changes. Still need to clean up code but wanted everyone to take a look.
Github issue #65

This solution could work. It's better to explore ready-made solutions that require much less customization from us. Let's try to avoid heavily customizing or building these components from scratch, unless we absolutely have to.

Replaced by https://github.com/bcgov/met-public/pull/166 which has conflicts resolved.


Minimal pub-sub example failed to launch:  "Failed to create config since the config file could not be opened."

Required information
Operating system:

Debian trixie-slim container
Linux ------ 5.10.0-20-amd64 #1 SMP Debian 5.10.158-2 (2022-12-13) x86_64 GNU/Linux

Rust version:
rustc 1.80.1
Cargo version:
cargo 1.80.1 (376290515 2024-07-16)
iceoryx2 version:
name = "iceoryx2"
version = "0.3.0"
Observed result or behaviour:
root@------:/host# cargo run -- --pub
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.02s
     Running `target/debug/testio2 --pub`
        0 [D] FileBuilder { file_path: FilePath { value: FixedSizeByteString<4096> { len: 20, data: "config/iceoryx2.toml" } }, access_mode: Read, permission: OWNER_READ | OWNER_WRITE | OWNER_EXEC | OWNER_ALL, has_ownership: false, owner: None, group: None, truncate_size: None, creation_mode: None }
              | Unable to open file since it does not exist.
        1 [D] Config { global: Global { root_path_unix: "/tmp/iceoryx2/", root_path_windows: "C:\\Temp\\iceoryx2\\", prefix: "iox2_", service: Service { directory: "services", publisher_data_segment_suffix: ".publisher_data", static_config_storage_suffix: ".service", dynamic_config_storage_suffix: ".dynamic", creation_
              timeout: 500ms, connection_suffix: ".connection" } }, defaults: Defaults { publish_subscribe: PublishSubscribe { max_subscribers: 8, max_publishers: 2, subscriber_max_buffer_size: 2, subscriber_max_borrowed_samples: 2, publisher_max_loaned_samples: 2, publisher_history_size: 1, enable_safe_overflow: true,
               unable_to_deliver_strategy: Block }, event: Event { max_listeners: 1, max_notifiers: 16, event_id_max_value: 32 } } }
              | Failed to create config since the config file could not be opened.
        2 [W] "Config::get_global_config()"
              | Unable to load default config file, populate config with default values.
        3 [T] FileBuilder { file_path: FilePath { value: FixedSizeByteString<4096> { len: 76, data: "/tmp/iceoryx2/services/iox2_b61bd15e8c3ea16146985e960906a8e125156a73.service" } }, access_mode: ReadWrite, permission: OWNER_READ | OWNER_WRITE | OWNER_EXEC | OWNER_ALL, has_ownership: false, owner: None, group: None, t
              runcate_size: None, creation_mode: Some(CreateExclusive) }
              | created
        4 [T] SharedMemory { name: FileName { value: FixedSizeByteString<255> { len: 94, data: "iox2_305ad9523c6b202364d581359ec3d2c5743e42e7_b61bd15e8c3ea16146985e960906a8e125156a73.dynamic" } }, size: 570, base_address: 0x7fea82b57000, has_ownership: false, file_descriptor: FileDescriptor { value: 4, is_owned: true }
              , memory_lock: None }
              | create
        5 [T] ServiceState { static_config: StaticConfig { uuid: "b61bd15e8c3ea16146985e960906a8e125156a73", service_name: ServiceName { value: FixedSizeByteString<255> { len: 19, data: "My/Funk/ServiceName" } }, messaging_pattern: PublishSubscribe(StaticConfig { max_subscribers: 8, max_publishers: 2, history_size: 1,
              subscriber_max_buffer_size: 2, subscriber_max_borrowed_samples: 2, enable_safe_overflow: true, type_name: "usize", type_size: 32, type_alignment: 16 }) }, global_config: Config { global: Global { root_path_unix: "/tmp/iceoryx2/", root_path_windows: "C:\\Temp\\iceoryx2\\", prefix: "iox2_", service: Service
               { directory: "services", publisher_data_segment_suffix: ".publisher_data", static_config_storage_suffix: ".service", dynamic_config_storage_suffix: ".dynamic", creation_timeout: 500ms, connection_suffix: ".connection" } }, defaults: Defaults { publish_subscribe: PublishSubscribe { max_subscribers: 8, max
              _publishers: 2, subscriber_max_buffer_size: 2, subscriber_max_borrowed_samples: 2, publisher_max_loaned_samples: 2, publisher_history_size: 1, enable_safe_overflow: true, unable_to_deliver_strategy: Block }, event: Event { max_listeners: 1, max_notifiers: 16, event_id_max_value: 32 } } }, dynamic_storage:
               Storage { shm: SharedMemory { name: FileName { value: FixedSizeByteString<255> { len: 94, data: "iox2_305ad9523c6b202364d581359ec3d2c5743e42e7_b61bd15e8c3ea16146985e960906a8e125156a73.dynamic" } }, size: 570, base_address: 0x7fea82b57000, has_ownership: false, file_descriptor: FileDescriptor { value: 4,
              is_owned: true }, memory_lock: None }, name: FileName { value: FixedSizeByteString<255> { len: 40, data: "b61bd15e8c3ea16146985e960906a8e125156a73" } }, _phantom_data: PhantomData<iceoryx2::service::dynamic_config::DynamicConfig> }, static_storage: Storage { name: FileName { value: FixedSizeByteString<255
              > { len: 40, data: "b61bd15e8c3ea16146985e960906a8e125156a73" } }, config: Configuration { path: Path { value: FixedSizeByteString<4096> { len: 22, data: "/tmp/iceoryx2/services" } }, suffix: FileName { value: FixedSizeByteString<255> { len: 8, data: ".service" } }, prefix: FileName { value: FixedSizeByte
              String<255> { len: 5, data: "iox2_" } } }, has_ownership: false, file: File { path: Some(FilePath { value: FixedSizeByteString<4096> { len: 76, data: "/tmp/iceoryx2/services/iox2_b61bd15e8c3ea16146985e960906a8e125156a73.service" } }), file_descriptor: FileDescriptor { value: 3, is_owned: true }, has_owner
              ship: false }, len: 353 } }
              | open service
        6 [T] SharedMemory { name: FileName { value: FixedSizeByteString<255> { len: 99, data: "iox2_0354a209029e7d094a819e2d4030ea331e6caaf0_5332_422444594209983705762963455475712.publisher_data" } }, size: 1454, base_address: 0x7fea82b56000, has_ownership: true, file_descriptor: FileDescriptor { value: 5, is_owned: t
              rue }, memory_lock: None }
              | create

Expected result or behaviour:
https://github.com/eclipse-iceoryx/iceoryx2/tree/v0.3.0?tab=readme-ov-file#publish-subscribe
Conditions where it occurred / Performed steps:
It's just the pub and sub samples from the README combined into a single binary
use std::time::Duration;
use std::env;

use iceoryx2::prelude::*;

const CYCLE_TIME: Duration = Duration::from_secs(1);

fn pub_main() -> Result<(), Box<dyn std::error::Error>> {
  let service_name = ServiceName::new("My/Funk/ServiceName")?;

  let service = zero_copy::Service::new(&service_name)
    .publish_subscribe()
    .open_or_create::<usize>()?;

  let publisher = service.publisher().create()?;

  while let Iox2Event::Tick = Iox2::wait(CYCLE_TIME) {
    let sample = publisher.loan_uninit()?;
    let sample = sample.write_payload(1234);
    sample.send()?;
  }

  Ok(())
}

fn sub_main() -> Result<(), Box<dyn std::error::Error>> {
  let service_name = ServiceName::new("My/Funk/ServiceName")?;

  let service = zero_copy::Service::new(&service_name)
    .publish_subscribe()
    .open_or_create::<usize>()?;

  let subscriber = service.subscriber().create()?;

  while let Iox2Event::Tick = Iox2::wait(CYCLE_TIME) {
    while let Some(sample) = subscriber.receive()? {
      println!("received: {:?}", *sample);
    }
  }

  Ok(())
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
  if env::args().skip(1).any(|e| e == "--pub") {
    pub_main()
  } else {
    sub_main()
  }
}

Ah so [D] are Debug logs, and [T] are Trace logs, which can be ignored?
In fact the publisher and the subscriber seem to work fine, except they produce noisy Debug/Trace logs.
Where can I disable logs below Info level? I can't seem to find config items for log levels under https://docs.rs/iceoryx2/latest/iceoryx2/config/index.html
Maybe I need to enable logger_log and configure the log crate?

You can use these call
use iceoryx2_bb_log::set_log_level;

set_log_level(iceoryx2_bb_log::LogLevel::Info);

@nodakai you are right, they are currently a bit noisy - some left over from the early days. We will release v0.4 next week and there we will turn down the noisyness of the examples a bit.

Thank you both, I guess the tutorial could start with set_log_level(iceoryx2_bb_log::LogLevel::Info) unless you're planning a major overhaul


Deleting trailing whitespaces

Deleting trailing whitespaces

I updated this PR so it can be automerged again!

Thanks for doing that (twice!).
However I have addressed the issue closer to the root by adding a script (scripts/fixTrailingWhitespace.py) that will do this automatically. I just need to remember to run it every now and then (I'll probably call it from the developBuild.py script, actually).
I've run the script now and checked in all the fixed files - so I'm going to close this PR on that basis. If you think I've missed something feel free to re-open or otherwise let me know.


ibazel should uses --curses=yes

ibazel is meant to be used interactively, by humans, where --curses=yes is the desired behavior.
--curses=auto is equivalent to --curses=no, because the bazel invocation is always wrapped by ibazel; and --curses=no is very frustrating to use because it results in something like this:
++ 2023-03-03T13:11:12-0800 ++ ibazel build //[target]
iBazel [1:11PM]: Querying for files to watch...
iBazel [1:11PM]: Building //[target]
INFO: Invocation ID: 4f3bfce8-a8cb-4ebe-8a21-137e69749a18
INFO: Streaming build results to: http://buildbuddy.[target]
Loading:
Loading: 0 packages loaded
Analyzing: target //[target]
INFO: Analyzed target //[target]
 checking cached actions
INFO: Found 1 target...
[0 / 136] [Prepa] BazelWorkspaceStatusAction stable-status.txt ... (4 actions, 1 running)
[193 / 1,176] Compiling src/google/protobuf/util/time_util.cc [for tool]; Downloading external/com_google_protobuf/_objs/protobuf/time_util.d; 0s remote-cache ... (19 actions, 0 running)
[495 / 2,053] Generating proto_library //[target]; Downloading [target]; 0s remote-cache ... (20 actions, 0 running)
INFO: From Generating Descriptor Set proto_library @com_github_cncf_udpa//xds/type/v3:pkg:
xds/type/v3/typed_struct.proto:10:1: warning: Import validate/validate.proto is unused.
[722 / 2,125] Compiling external/envoy_api/envoy/config/core/v3/extension.upbdefs.c; Downloading external/envoy_api/envoy/config/core/v3/_objs/pkg.upbdefs/extension.upbdefs.pic.o; 0s remote-cache ... (18 actions, 0 running)
[1,002 / 3,561] Compiling [target]; Downloading [target]; 0s remote-cache ... (28 actions, 16 running)
[1,100 / 3,699] Compiling [target]; 1s remote-cache, linux-sandbox ... (24 actions, 8 running)
[1,243 / 4,017] Compiling [target]; 2s remote-cache, linux-sandbox ... (21 actions, 2 running)
[1,412 / 4,520] Compiling [target]; 0s remote-cache, linux-sandbox ... (20 actions, 2 running)
[1,584 / 5,432] Compiling [target]; 1s remote-cache, linux-sandbox ... (21 actions, 2 running)
[1,635 / 5,519] Compiling src/google/protobuf/descriptor_database.cc; Downloading external/com_google_protobuf/_objs/protobuf/descriptor_database.pic.o; 1s remote-cache ... (19 actions, 0 running)
[1,741 / 5,626] Compiling src/google/protobuf/descriptor_database.cc; Downloading external/com_google_protobuf/_objs/protobuf/descriptor_database.pic.o; 2s remote-cache ... (17 actions, 0 running)
[1,868 / 5,854] Compiling src/google/protobuf/descriptor.cc; Downloading external/com_google_protobuf/_objs/protobuf/descriptor.pic.o, 3.8 MiB / 7.9 MiB; 2s remote-cache ... (20 actions, 0 running)
[1,970 / 5,854] Compiling [target]; 0s remote-cache ... (19 actions, 0 running)
[2,099 / 5,854] Linking external/com_google_protobuf/libprotobuf.so; Downloading external/com_google_protobuf/libprotobuf.so, 3.8 MiB / 23.9 MiB; 1s remote-cache ... (21 actions, 2 running)
[2,216 / 5,854] Linking external/com_google_protobuf/libprotobuf.so; Downloading external/com_google_protobuf/libprotobuf.so, 7.5 MiB / 23.9 MiB; 2s remote-cache ... (21 actions, 2 running)
[2,329 / 5,854] Linking external/com_google_protobuf/libprotobuf.so; Downloading external/com_google_protobuf/libprotobuf.so, 15 MiB / 23.9 MiB; 3s remote-cache ... (20 actions, 0 running)
[2,474 / 5,854] Compiling lib/doh.c; 0s remote-cache ... (20 actions, 0 running)
[2,584 / 5,854] Compiling handler/crash_report_upload_thread.cc; Downloading external/crashpad/_objs/crashpad/crash_report_upload_thread.pic.o; 0s remote-cache ... (19 actions, 0 running)
[2,648 / 5,854] Compiling minidump/minidump_file_writer.cc; Downloading external/crashpad/_objs/crashpad/minidump_file_writer.pic.o; 0s remote-cache ... (20 actions, 0 running)
[2,721 / 5,854] Compiling snapshot/minidump/process_snapshot_minidump.cc; Downloading external/crashpad/_objs/crashpad/process_snapshot_minidump.pic.o; 1s remote-cache ... (16 actions, 0 running)
[2,831 / 5,854] Linking external/boringssl/libssl.so; Downloading external/boringssl/libssl.so; 0s remote-cache ... (19 actions, 0 running)
[2,961 / 5,854] Linking external/crashpad/libcrashpad.so; Downloading external/crashpad/libcrashpad.so, 7.5 MiB / 21.2 MiB; 1s remote-cache ... (18 actions, 0 running)
[3,091 / 5,854] Linking external/crashpad/libcrashpad.so; Downloading external/crashpad/libcrashpad.so, 15 MiB / 21.2 MiB; 2s remote-cache ... (18 actions, 0 running)
[3,158 / 5,854] Linking external/crashpad/libcrashpad.so; 3s remote-cache ... (20 actions, 0 running)
[3,222 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 3.8 MiB / 48.1 MiB; 1s remote-cache ... (19 actions, 0 running)
[3,301 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 7.5 MiB / 48.1 MiB; 2s remote-cache ... (20 actions, 0 running)
[3,376 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 7.5 MiB / 48.1 MiB; 3s remote-cache ... (18 actions, 0 running)
[3,439 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 11.2 MiB / 48.1 MiB; 4s remote-cache ... (20 actions, 0 running)
[3,522 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 15 MiB / 48.1 MiB; 5s remote-cache ... (19 actions, 0 running)
[3,608 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 18.8 MiB / 48.1 MiB; 6s remote-cache ... (20 actions, 0 running)
[3,656 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 18.8 MiB / 48.1 MiB; 7s remote-cache ... (20 actions, 0 running)
[3,710 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 18.8 MiB / 48.1 MiB; 8s remote-cache ... (20 actions, 0 running)
[3,758 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 18.8 MiB / 48.1 MiB; 9s remote-cache ... (20 actions, 0 running)
[3,831 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 22.5 MiB / 48.1 MiB; 10s remote-cache ... (19 actions, 0 running)
[3,907 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 26.2 MiB / 48.1 MiB; 11s remote-cache ... (20 actions, 0 running)
[3,984 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 30 MiB / 48.1 MiB; 12s remote-cache ... (20 actions, 0 running)
[4,060 / 5,854] Compiling aws-cpp-sdk-s3-crt/source/S3CrtClient.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3-crt/S3CrtClient.pic.o, 41.2 MiB / 48.1 MiB; 13s remote-cache ... (20 actions, 0 running)
[4,151 / 5,854] Compiling aws-cpp-sdk-s3/source/S3Client.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3/S3Client.pic.o, 15 MiB / 47.4 MiB; 3s remote-cache ... (20 actions, 0 running)
[4,267 / 5,854] Compiling aws-cpp-sdk-s3/source/S3Client.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3/S3Client.pic.o, 18.8 MiB / 47.4 MiB; 4s remote-cache ... (20 actions, 0 running)
[4,389 / 5,854] Compiling aws-cpp-sdk-s3/source/S3Client.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3/S3Client.pic.o, 22.5 MiB / 47.4 MiB; 5s remote-cache ... (20 actions, 0 running)
[4,526 / 5,855] Compiling aws-cpp-sdk-s3/source/S3Client.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3/S3Client.pic.o, 30 MiB / 47.4 MiB; 6s remote-cache ... (20 actions, 0 running)
[4,554 / 5,855] Compiling aws-cpp-sdk-s3/source/S3Client.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3/S3Client.pic.o, 33.8 MiB / 47.4 MiB; 7s remote-cache ... (19 actions, 0 running)
[4,572 / 5,855] Compiling aws-cpp-sdk-s3/source/S3Client.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3/S3Client.pic.o, 33.8 MiB / 47.4 MiB; 8s remote-cache ... (20 actions, 0 running)
[4,594 / 5,855] Compiling aws-cpp-sdk-s3/source/S3Client.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3/S3Client.pic.o, 41.2 MiB / 47.4 MiB; 9s remote-cache ... (19 actions, 0 running)
[4,623 / 5,855] Compiling aws-cpp-sdk-s3/source/S3Client.cpp; Downloading external/aws/_objs/aws-cpp-sdk-s3/S3Client.pic.o, 45 MiB / 47.4 MiB; 10s remote-cache ... (20 actions, 0 running)
[4,659 / 5,855] Linking external/aws/libaws-cpp-sdk-s3-crt.so; Downloading external/aws/libaws-cpp-sdk-s3-crt.so, 33.8 MiB / 63.5 MiB; 8s remote-cache ... (18 actions, 0 running)
[4,693 / 5,855] Linking external/aws/libaws-cpp-sdk-s3-crt.so; Downloading external/aws/libaws-cpp-sdk-s3-crt.so, 41.2 MiB / 63.5 MiB; 9s remote-cache ... (20 actions, 0 running)
[4,754 / 5,855] Linking external/aws/libaws-cpp-sdk-s3-crt.so; Downloading external/aws/libaws-cpp-sdk-s3-crt.so, 52.5 MiB / 63.5 MiB; 10s remote-cache ... (20 actions, 0 running)
[4,816 / 5,855] Linking external/aws/libaws-cpp-sdk-s3-crt.so; 11s remote-cache ... (20 actions, 0 running)
[4,856 / 5,855] Linking external/aws/libaws-cpp-sdk-s3.so; Downloading external/aws/libaws-cpp-sdk-s3.so, 18.8 MiB / 62.6 MiB; 4s remote-cache ... (21 actions, 2 running)
[4,901 / 5,855] Linking external/aws/libaws-cpp-sdk-s3.so; Downloading external/aws/libaws-cpp-sdk-s3.so, 26.2 MiB / 62.6 MiB; 5s remote-cache ... (21 actions, 2 running)
[4,957 / 5,855] Linking external/aws/libaws-cpp-sdk-s3.so; Downloading external/aws/libaws-cpp-sdk-s3.so, 33.8 MiB / 62.6 MiB; 6s remote-cache ... (21 actions, 2 running)
[5,011 / 5,855] Linking external/aws/libaws-cpp-sdk-s3.so; Downloading external/aws/libaws-cpp-sdk-s3.so, 45 MiB / 62.6 MiB; 7s remote-cache ... (21 actions, 2 running)
[5,062 / 5,855] Linking external/aws/libaws-cpp-sdk-s3.so; Downloading external/aws/libaws-cpp-sdk-s3.so, 52.5 MiB / 62.6 MiB; 8s remote-cache ... (21 actions, 2 running)
[5,123 / 5,855] Compiling [target]; 5s remote-cache, linux-sandbox ... (21 actions, 2 running)
[5,202 / 5,855] Compiling [target]; 6s remote-cache, linux-sandbox ... (21 actions, 2 running)
[5,263 / 5,855] Compiling [target]; 7s remote-cache, linux-sandbox ... (21 actions, 2 running)
[5,301 / 5,855] Compiling [target]; 8s remote-cache, linux-sandbox ... (21 actions, 2 running)
[5,345 / 5,855] Compiling [target]; 9s remote-cache, linux-sandbox ... (21 actions, 2 running)
[5,395 / 5,855] Compiling [target]; 10s remote-cache, linux-sandbox ... (20 actions, 2 running)
[5,435 / 5,855] Compiling [target]; 11s remote-cache, linux-sandbox ... (21 actions, 2 running)
[5,464 / 5,855] Linking external/com_github_grpc_grpc/libgrpc++_binder.so; Downloading external/com_github_grpc_grpc/libgrpc++_binder.so; 2s remote-cache ... (20 actions, 1 running)
[5,497 / 5,855] Linking external/com_github_grpc_grpc/libgrpc++_binder.so; Downloading external/com_github_grpc_grpc/libgrpc++_binder.so, 3.8 MiB / 9.6 MiB; 3s remote-cache ... (21 actions, 2 running)
[5,532 / 5,856] Linking external/com_github_grpc_grpc/libgrpc++_binder.so; Downloading external/com_github_grpc_grpc/libgrpc++_binder.so, 7.5 MiB / 9.6 MiB; 4s remote-cache ... (21 actions, 2 running)
[5,558 / 5,856] Linking external/com_github_grpc_grpc/libgrpc_base.so; Downloading external/com_github_grpc_grpc/libgrpc_base.so, 11.2 MiB / 14.2 MiB; 4s remote-cache ... (20 actions, 0 running)
[5,575 / 5,856] Compiling [target]; Downloading [target]; 1s remote-cache ... (27 actions, 14 running)
[5,584 / 5,856] Compiling [target]; 2s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,584 / 5,856] Compiling [target]; 3s remote-cache, linux-sandbox ... (40 actions running)
[5,585 / 5,856] Compiling [target]; 5s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,587 / 5,856] Compiling [target]; 7s remote-cache, linux-sandbox ... (40 actions running)
[5,588 / 5,856] Compiling [target]; 8s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,595 / 5,856] Compiling [target]; 9s remote-cache, linux-sandbox ... (37 actions, 36 running)
[5,598 / 5,856] Compiling [target]; 10s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,599 / 5,856] Compiling [target]; 11s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,601 / 5,856] Compiling [target]; 12s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,604 / 5,856] Compiling [target]; 14s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,608 / 5,856] Compiling [target]; 14s remote-cache, linux-sandbox ... (40 actions running)
[5,609 / 5,856] Compiling [target]; 16s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,613 / 5,856] Compiling [target]; 17s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,617 / 5,856] Compiling [target]; 18s remote-cache, linux-sandbox ... (40 actions running)
[5,627 / 5,856] Compiling [target]; 19s remote-cache, linux-sandbox ... (37 actions, 34 running)
[5,643 / 5,856] Compiling [target]; 8s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,649 / 5,856] Compiling [target]; 7s remote-cache, linux-sandbox ... (38 actions, 36 running)
[5,650 / 5,856] Compiling [target]; 8s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,651 / 5,856] Compiling [target]; 8s remote-cache, linux-sandbox ... (40 actions running)
[5,652 / 5,856] Compiling [target]; 9s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,656 / 5,856] Compiling [target]; 8s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,657 / 5,856] Compiling [target]; 9s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,658 / 5,856] Compiling [target]; 11s remote-cache, linux-sandbox ... (38 actions, 36 running)
[5,659 / 5,856] Compiling [target]; 12s remote-cache, linux-sandbox ... (38 actions, 36 running)
[5,663 / 5,856] Compiling [target]; 11s remote-cache, linux-sandbox ... (40 actions running)
[5,664 / 5,856] Compiling [target]; 13s remote-cache, linux-sandbox ... (40 actions running)
[5,665 / 5,856] Compiling [target]; 16s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,666 / 5,856] Compiling [target]; 17s remote-cache, linux-sandbox ... (38 actions running)
[5,667 / 5,856] Compiling [target]; 19s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,667 / 5,856] Compiling [target]; 20s remote-cache, linux-sandbox ... (40 actions running)
[5,668 / 5,856] Compiling [target]; 21s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,669 / 5,856] Compiling [target]; 22s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,673 / 5,856] Compiling [target]; 23s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,675 / 5,856] Compiling [target]; 25s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,677 / 5,856] Compiling [target]; 26s remote-cache, linux-sandbox ... (40 actions running)
[5,678 / 5,856] Compiling [target]; 27s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,680 / 5,856] Compiling [target]; 28s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,682 / 5,856] Compiling [target]; 23s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,682 / 5,856] Compiling [target]; 24s remote-cache, linux-sandbox ... (40 actions running)
[5,683 / 5,856] Compiling [target]; 22s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,685 / 5,856] Compiling [target]; 24s remote-cache, linux-sandbox ... (40 actions running)
[5,686 / 5,856] Compiling [target]; 27s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,687 / 5,856] Compiling [target]; 22s remote-cache, linux-sandbox ... (40 actions running)
[5,688 / 5,856] Compiling [target]; 19s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,690 / 5,856] Compiling [target]; 20s remote-cache, linux-sandbox ... (40 actions running)
[5,690 / 5,856] Compiling [target]; 21s remote-cache, linux-sandbox ... (40 actions running)
[5,693 / 5,856] Compiling [target]; 22s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,694 / 5,856] Compiling [target]; 23s remote-cache, linux-sandbox ... (40 actions running)
[5,695 / 5,856] Compiling [target]; 27s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,695 / 5,856] Compiling [target]; 28s remote-cache, linux-sandbox ... (40 actions running)
[5,696 / 5,856] Compiling [target]; 30s remote-cache, linux-sandbox ... (40 actions running)
[5,698 / 5,856] Compiling [target]; 30s remote-cache, linux-sandbox ... (38 actions running)
[5,701 / 5,856] Compiling [target]; 31s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,701 / 5,856] Compiling [target]; 33s remote-cache, linux-sandbox ... (40 actions running)
[5,704 / 5,856] Compiling [target]; 34s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,706 / 5,856] Compiling [target]; 35s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,707 / 5,856] Compiling [target]; 36s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,708 / 5,856] Compiling [target]; 38s remote-cache, linux-sandbox ... (40 actions running)
[5,710 / 5,856] Compiling [target]; 40s remote-cache, linux-sandbox ... (40 actions running)
[5,711 / 5,856] Compiling [target]; 41s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,716 / 5,856] Compiling [target]; 25s remote-cache, linux-sandbox ... (38 actions, 36 running)
[5,724 / 5,856] Compiling [target]; 26s remote-cache, linux-sandbox ... (37 actions, 34 running)
[5,727 / 5,856] Compiling [target]; 24s remote-cache, linux-sandbox ... (38 actions, 36 running)
[5,730 / 5,856] Compiling [target]; 15s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,730 / 5,856] Compiling [target]; 17s remote-cache, linux-sandbox ... (40 actions running)
[5,731 / 5,856] Compiling [target]; 18s remote-cache, linux-sandbox ... (39 actions, 38 running)
[5,731 / 5,856] Compiling [target]; 20s remote-cache, linux-sandbox ... (40 actions running)
[5,733 / 5,856] Compiling [target]; 20s remote-cache, linux-sandbox ... (40 actions running)
[5,735 / 5,856] Compiling [target]; 22s remote-cache, linux-sandbox ... (40 actions running)
[5,736 / 5,856] Compiling [target]; 25s remote-cache, linux-sandbox ... (39 actions, 38 running)

I think the change as it stands is a good contribution. If you would like to add more let's go it in an additional PR. Thanks for taking the time to contribute! Much appreciated


Azure Active Directory API Deprecated

Make use of the Microsoft Graph API rather than updating the AAD API Endpoint.
You're effectively investing time that's going to be redundant as a rewrite will be required when the Azure AD API reaches EOL.
Learning some Golang atm to contribute but food for thought.

Hi @jdelforno thanks for this issue, but I did not quite understand what you are referring to. Can you be more specific?

Hi @jdelforno thanks for this issue, but I did not quite understand what you are referring to. Can you be more specific?

Hey @ArcturusZhang
The Azure AD Graph API ( https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-graph-api ) has been deprecated by Microsoft.

Important
We strongly recommend that you use Microsoft Graph instead of Azure AD Graph API to access Azure Active Directory (Azure AD) resources. Our development efforts are now concentrated on Microsoft Graph and no further enhancements are planned for Azure AD Graph API. There are a very limited number of scenarios for which Azure AD Graph API might still be appropriate; for more information, see the Microsoft Graph or the Azure AD Graph blog post and Migrate Azure AD Graph apps to Microsoft Graph.

As the code states it's using the Azure AD Graph API (graph.windows.net), it should be mentioned somewhere that a refactor is required against those items that require it and to make use of the MS Graph API in future (https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0).
Otherwise, people may look at the Azure AD API, get it confused with the MS Graph API and draw the wrong conclusions.
Cheers,
John

Hi @jhendrixMSFT could you bring some context about this?

@jdelforno hello!  The contents of this SDK (excluding the ./storage package) are auto-generated from swagger files in the azure-rest-api-specs repo.  If we want to mark the graphrbac package as deprecated it must come from being declared as such in the swagger.
@ArcturusZhang Do we have a swagger for the MS Graph APIs yet?

@jdelforno hello! The contents of this SDK (excluding the ./storage package) are auto-generated from swagger files in the azure-rest-api-specs repo. If we want to mark the graphrbac package as deprecated it must come from being declared as such in the swagger.
@ArcturusZhang Do we have a swagger for the MS Graph APIs yet?

Well, when I search the end point of MS Graph graph.microsoft.com in azure-rest-api-specs, I got nothing. I would say there is no swagger for MS Graph APIs yet

Hi,
I don't know if you can move away swagger for some part of this sdk but may be should have a look at this project : https://github.com/microsoftgraph/MSGraph-SDK-Code-Generator
Looks like this tools is used to generate the code for others sdk, may be it can be used to generate the graph API part of this ?

@phenixdotnet See https://github.com/microsoftgraph/MSGraph-SDK-Code-Generator/issues/53, there is no Golang generator in that project and none has been made yet since it was suggested in 2016.

@sirlatrom yes I know that but if the MSGraph code generator is still the way to go (CF https://github.com/microsoftgraph/msgraph-sdk-design/issues/28), it could be possible to write the necessary t4 to get a go sdk. (actually I have a POC with that by the way).
Just need to be sure the MSGraph code generator is not dead and a PR with go lang support would be accepted.

Given the Odata information is available here: https://graph.microsoft.com/v1.0/$metadata
Can we somehow convert it via: https://github.com/rbeauchamp/Swashbuckle.OData
To create what's required?

The answer to the above was yes, use: https://github.com/oasis-tcs/odata-openapi/blob/master/tools#transformjs-for-nodejs
Which generates an OpenAPI 3.0 document.
Then use autorest from https://github.com/Azure/AutoRest
To start generating Go.
Fingers crossed..

And for your information, there is a community SDK of msgraph in golang here
MSgraph team develops their own code generator but it does not support golang: https://github.com/microsoftgraph/MSGraph-SDK-Code-Generator

AutoRest doesn't really like OpenAPI 3.0 yet it seems. Adding the -o 2.0 switch to the XLST transform. Trying again.
@ArcturusZhang I recognise and acknowledge both points. However, I won't be programming in Go, I'm only be hoping to have the Terraform Azure AD Provider updated.
Which to my knowledge, they won't use anything that's not part of the Azure repo as a whole =)

@jdelforno If you are looking for OpenAPI documents that will work with AutoREST, we have these here https://github.com/microsoftgraph/msgraph-sdk-powershell/tree/dev/openApiDocs that we use for the AutoREST PowerShell generation.
We can generate V2 versions of these if the Go generator requires V2.  We haven't made a commitment to do Go for Graph yet, but we are investing in our code generation tech this semester so Go support is definitely within the realm of possibility.

@jdelforno If you are looking for OpenAPI documents that will work with AutoREST, we have these here https://github.com/microsoftgraph/msgraph-sdk-powershell/tree/dev/openApiDocs that we use for the AutoREST PowerShell generation.
We can generate V2 versions of these if the Go generator requires V2.  We haven't made a commitment to do Go for Graph yet, but we are investing in our code generation tech this semester so Go support is definitely within the realm of possibility.

Hey @darrelmiller , do you have some news about the Go support for SDK generation?
Also, @phenixdotnet, you say you have a POC, could you share it?

Hey everyone 👋
Stumbled on this issue by luck. I'm the main maintainer for the Microsoft Graph Go SDK currently in preview.
Go try it out and don't hesitate to leave feedback over there!

With the Azure Graph deprecation deadline approaching, I'm looking for guidance on how to proceed.
@baywet, was your last comment here addressed to developers or users of azure-sdk-for-go?
I'm not sure whether I'm supposed to abandon azure-sdk-for-go for Microsoft Graph Go SDK, or wait for azure-sdk-for-go to adopt Microsoft Graph Go SDK (or some other solution) under the hood.
@jhendrixMSFT, can you advise?

While I'll defer to @baywet (I don't work on the MS Graph SDK), the MS Graph SDK is to replace our graphrbac package.  So you'd use MS Graph in conjunction with this SDK.

@jhendrixMSFT
Sorry for bringing up this topic again but there is currently no real solution for accessing Azure AD from go. The old azure-sdk is now deprecated, the new azure-sdk doesn't have any AzureAD API support and msgraph-sdk is still in preview and currently not really useable manly due to the package size issue (see https://github.com/microsoftgraph/msgraph-sdk-go/issues/129).
As a developer I'm feeling lost between a deprecated SDK and a not feasible solution for the next months and I'm fearing the deprecation of the Azure AD API "soon".

Unfortunately, I don't have a good answer at present.  I brought this up in our scrum yesterday but nothing concrete has been formed yet.

If helpful, another community SDK can be found here https://github.com/manicminer/hamilton, which is used by the azure ad terraform provider.
(I can’t speak to its relation/strategy to the aforementioned preview go sdk, just have followed the azure ad terraform provider progress to MS Graph)

even if https://github.com/manicminer/hamilton is a good alternative I would be happy if the https://github.com/microsoftgraph/msgraph-sdk-go gets more attention from Microsoft as official product. @baywet is working hard to provide a good sdk.
@jhendrixMSFT
is there any possibility to address this internally to try to get more staff for msgraph-sdk-go? This sdk is as important as azure-sdk-for-go is.

I agree that getting a solid msgraph-sdk-go is the right long-term solution.  While I can't make any promises, I will pass this info along to management in hopes of getting more traction.

Is https://github.com/microsoftgraph/msgraph-sdk-go the way forward? (I see is now on version 1.20.0)

Is https://github.com/microsoftgraph/msgraph-sdk-go the way forward? (I see it is now on version 1.20.0)

Hey everyone,
Sorry, I forgot to revert here.
The Microsoft Graph Go SDK has been generally available since May the 4th 2023. It's the way forward if you're migrating off Azure AD SDK for Go due to the deprecation of the underlying API and will give you access to many more APIs.
We're refreshing the SDK weekly based on added APIs to the service (hence the already high patch number).
Give it a try and reach out on the other repo if you have questions.


i get some confuse

dear sir:
in your define "class StochasticAdapter(nn.Module): "    i saw  the

if embed_dim < r:
self.d = nn.Linear(embed_dim, r, bias=bias)
self.u = nn.Linear(r, embed_dim, bias=bias)
nn.init.xavier_uniform_(self.d.weight)
nn.init.zeros_(self.u.weight)
if bias:
nn.init.zeros_(self.d.bias)
nn.init.zeros_(self.u.bias)
else:
self.f = nn.Linear(embed_dim, embed_dim, bias=bias)
nn.init.zeros_(self.f.weight)
if bias:
nn.init.zeros_(self.f.bias)

but in the "def Rep_AdaptWeight(model, args, eval_scale=0.5):"  i find  the

if adapter_attn.embed_dim > adapter_attn.r:
merged_weight, _ = reparameterize(adapter_attn.d.weight.squeeze().T, adapter_attn.u.weight.squeeze().T)
adapt_attn_weight, adapt_attn_bias = reparameterize(merged_weight.squeeze().T, scale=adapt_attn_scale, do_residual=True)
else:
adapt_attn_weight, adapt_attn_bias = reparameterize(adapter_attn.f.weight.squeeze().T, scale=adapt_attn_scale, do_residual=True)
rep_attn_weight, rep_attn_bias = reparameterize(_.attn.out_proj.weight.T, adapt_attn_weight.T, _.attn.out_proj.bias, adapt_attn_bias)

which cause the

[rank0]: Traceback (most recent call last):
[rank0]:   File "/home/iot/shared_pool_data3/shared_pool_data3/anaconda3/envs/openclip/lib/python3.10/runpy.py", line 196, in _run_module_as_main
[rank0]:     return _run_code(code, main_globals, None,
[rank0]:   File "/home/iot/shared_pool_data3/shared_pool_data3/anaconda3/envs/openclip/lib/python3.10/runpy.py", line 86, in _run_code
[rank0]:     exec(code, run_globals)
[rank0]:   File "/work/shard_pool_data5/R-Adapter-ECCV2024-master/src/main.py", line 359, in
[rank0]:     main(args)
[rank0]:   File "/work/shard_pool_data5/R-Adapter-ECCV2024-master/src/main.py", line 196, in main
[rank0]:     adapt_utils.Rep_AdaptWeight(model.module.model, args)
[rank0]:   File "/work/shard_pool_data5/R-Adapter-ECCV2024-master/clip/loralib/utils.py", line 124, in Rep_AdaptWeight
[rank0]:     merged_weight, _ = reparameterize(adapter_attn.d.weight.squeeze().T, adapter_attn.u.weight.squeeze().T)
[rank0]:   File "/home/iot/shared_pool_data3/shared_pool_data3/anaconda3/envs/openclip/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1931, in getattr
[rank0]:     raise AttributeError(
[rank0]: AttributeError: 'StochasticAdapter' object has no attribute 'd'`

in the  val epoch
If it's really a bug or some other special setting, please let me know,Very much looking forward to your reply!

Thanks for letting me know about this issue!
As I reformulated the code, I might not have checked about the Re-parameterization part to handle rank, r=1.
I will check and debug this issue and commit the new code. Thanks again!

Thanks for letting me know about this issue! As I reformulated the code, I might not have checked about the Re-parameterization part to handle rank, r=1. I will check and debug this issue and commit the new code. Thanks again!

Thank you for your prompt response，please let me know once the update is done！


Is address translation/paging in effective at machine mode?

hi experts,
as far as I know, the satp  register is controlling mmu address translation behavior.
specifically in supervisor mode: if we set the 31th bit to 1, the paging is enabled.
what if an interrupt/exception  is taken back in m-mode later? does m-mode still use address translation to address memory, since satp is not touched?
thanks,
Link

if my understanding is right, in m-mode, addressing is always flat, no address translation is performed.
in s-mode/u-mode, if paging is enabled in csr satp, address translation is always performed.
could someone help correct me please?  I find no answer for this from riscv-spec
thanks,

M-mode does not use address translation by default, but the memory privilege bits in the mstatus register can change the effective translation as described in that section of the manual.
The manual text could be improved to make this clearer, which is why I'm leaving this issue open.

To be more clear, that would be mstatus.MPRV together with .SUM, .SBE, MXR (if MPP==Smode and paging is enabled). Normally, M-code isn't expected to have exceptions, but if MPRV=1, then it could (if that access would have had an exception had the mode been MPP).
Mcode must make provisions for that by saving trap state before executing code with MPRV=1, and restoring it before returning. If I'm correct, that's another thing you might want to make clear.

Hi everyone,
Consider the case where in M-mode, MPRV=1, and MPP=11. Should address translation be the M-mode default i.e no translation, or the effective translation, implying a recursive definition?
An example would be running in S-mode, trapping into M-mode, and setting MPRV=1. Now address translation is the way it was before the trap. Suppose we now set MPP=11. Do we continue using the page tables?


templates.go: Update manifest for Kubernetes 1.6

Not sure what other steps need to be done when we remove "master=true" node selector?
Also I haven't updated the DNS templates, it seems the DNS images we are using now is quite out-of-date (1.9 vs 1.14), do we want to upgrade that too? @aaronlevy

After OOB discussion, I am going to update the dns manifest to the latest. The master=true node selector will be kept for now until new labels are introduced.

tests failing because it looks like the default locks aren't created.
 [   71.809234] bootkube-dev[5]: Error: Failed to grab the flock at "/var/lock/api-server.lock": no such file or directory
[   71.809836] bootkube-dev[5]: Failed to grab the flock at "/var/lock/api-server.lock": no such file or directory

Side question - is this actually failing without the flock, or do you just see multiple restarts of the api-server pod? The multiple restarts have always been the case - so not sure that should block this (but I'm also not opposed to putting in the flock).

Bootkube itself is nearly immediately exiting during  func runCmdStart

I am still investigating. I found the flock doesn't solve the issue yet, hmm.

rktbot run tests

Conformance test looks good after I fixedd the kubelet image. https://jenkins.coreos.systems/job/bootkube-development/164/
So let's wait for #428

rktbot run tests

rktbot run tests

Kicked off conformance test https://jenkins.coreos.systems/job/bootkube-development/171/

@pbx0 @squat I think the bootkube-dev tests failed because the test is using k8s-app label to select for api pods. We should change the test to use component=kube-apiserver && tier=control-plane or just remove the label selector.


Old settings persist in new version

If you had configured anything in a pre-1.0 version of linter (ie. written something to config.cson), then those keys still exist post-1.0. This wouldn't necessarily be an issue, except that Settings View displays inputs and values for those now removed settings, which can make it seem like the new version of linter supports settings that it actually no longer does.
It might be worth adding like, a one-time activation task looking for those config keys and removing them to avoid confusion.

I didn't mean to close this one. My PR was unrelated.

I think it's more of an atom thing than a linter thing.
Closing it for now, feel free to continue the discussion.


#22 explanation of app pages

@antonadamsson Can you fix ktlint and the instrumented android unit tests, then i can review the issue.


Problem: benchmarks tests iter.Push only

Solution: add more fundamental tests

Not so interesting after iter.Pull removal https://github.com/gomoni/it/pull/10 but lets merge those too.


Update package.json

Pls, test<EMAIL_ADDRESS>with your lib and merge if it works => warns from request will be gone.

What are the warns from request?

warning localtunnel > request ><EMAIL_ADDRESS>use uuid module instead
In<EMAIL_ADDRESS>that fixed.

Ah, yes. It would be fantastic if a new patch release could be released. I'm trying to teach developers about how to wisely choose their dependencies and the npm warnings make things... difficult.

Would be great if this could be merged 👍

+1

+1

I was about to do this work. but checked first and found this. is there any issue why this isn't being merged? just asking out of curiosity here.

Hi @defunctzombie
Could you please accept this PR to mute warning:
npm WARN deprecated<EMAIL_ADDRESS>Use uuid module instead

Is there a reason this has been open 7 months? It seems like a pretty straightforward fix.

released 1.8.3 with updated dependencies


[FEATURE] Add an option to not load images, url previews, profile picture and videos from people that I'm not following

Is your feature request related to a problem? Please describe.
Add an option to not load images, url previews, profile picture and videos from people that I'm not following
Describe the solution you'd like
Add an option to not load images, url previews, profile picture and videos from people that I'm not following
Bounty (in Bitcoin sats) offered for the implementation
Additional context

How would you use this? In the global view?

Global view, dms, chat groups


Add pulumi

Adding a prompt support to Pulumi, which shows the stack name if exists under .pulumi/stacks directory

Can you rebase this section against new master?


How to remove color from an image?

Hello, I am working with an D435i and I want to remove a color from my image.
The language that I am using is MATLAB.
I have a RGB matrix nx3 and  my goal is remove certain type of color.
The problem is how can I get an 3D image from that matrix that I changed?
Anyone knows where can I get documentation in order to understand the formation from a matriz to an image?
Thank you.

Hi @jo4omath  It sounds as though you may have already achieved the removal of a certain type of color, but in case you have not I will provide some references below for ways to approach doing so.
A common approach for segmenting a particular color is to use an OpenCV function called inRange.  A tutorial from the official OpenCV documentation at the link below provides example C++ code for doing so.  The page also has Java and Python versions of the code for people who are using those languages.
https://docs.opencv.org/3.4/da/d97/tutorial_threshold_inRange.html
As you were using PCL instructions in your other recent case at https://github.com/IntelRealSense/librealsense/issues/10311#issuecomment-1066076702 then you may prefer a PCL-based approach though.  The PCL instruction conditional_removal may help, as it can be used with a color component in RGB color space or HSI color space.
https://pointclouds.org/documentation/classpcl_1_1_conditional_removal.html
The link below has a scripting example of conditional_removal being used to segment color from an PointXYZRGB point cloud.
https://stackoverflow.com/questions/59974437/pcl-color-filter

Could you provide more information please about the '3D image' that you are attempting to generate, please.

@MartyG-RealSense Thank you for your useful comment.
I would like to ask you if this functions are available  in MATLAB?
What I am trying to do is remove the background. I have some rocks in the image and I want to determine its coordinates and dimensions. I got an image and then I calculated its RGB matrix, what I did was change the points with high red value to [0 0 0](I am supposing that the background is red), I was thinking about transform now the matrix to an image  but for what I read in your first link thats not how it works.

Hi @jo4omath  Do you require further assistance with this case, please?  Thanks!

Hello @MartyG-RealSense  sorry for didnt answer before. The documentation that you provided was helpful, I am working on it.
If any question comes up I will get in touch.
Thank you so much.

You are very welcome, @jo4omath - please do let me know if there is something that I can help you with if you have further questions that arise.  Good luck!

Hi @jo4omath  Do you require further assistance with this case, please?  Thanks!

Hi @MartyG-RealSense, now I can remove a color from an image, thanks for your help! As you know I am trying to get an 3D representation of an object. I have search for documentation but I didnt find one that could help me, could you provide some documentation to do that in matlab? I visited the intel realsense online page that have examples but it did not help me.
Thanks!

Are you attempting to create a 3D pointcloud or generate a solid 3D mesh object from a pointcloud, please?

Given an object I am trying to determine its 3D pointcloud. The main goal is calculate its volume.

Previous research I did about the subject of estimating volume from a pointcloud indicated that the popular opinion is that the point cloud should be converted to a 3D mesh before doing the volume estimation.  The RealSense SDK does not have built-in functions for doing this pointcloud to mesh conversion, as it is best suited to specialized 3D processing libraries such as Open3D and PCL.  The link below discusses doing so with PCL.
https://stackoverflow.com/questions/55629892/2019-point-cloud-volume-estimation-with-c/55681149#55681149
If you wanted to try to perform the volume estimation with a built-in function inside MATLAB itself then the convhull instruction can apparently help to achieve that.
https://www.mathworks.com/matlabcentral/answers/145417-calculate-the-volume-of-shape-descibed-by-3d-points
https://www.mathworks.com/help/matlab/ref/convhull.html

Hi @jo4omath  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


mxnet.ndarray.stack : PLEASE UPDATE DOC

This is not how stack is working. Gives the following error when I execute the example pf stack(x,y):-
AssertionError: Positional arguments must have NDArray type, but got [1, 2]
I am using 1.2.

Can you post the exact instructions you used here?
This is what I got:
>>> import mxnet as mx
>>> a = mx.nd.array([1,2])
>>> b = mx.nd.array([3,4])
>>> mx.nd.stack(a, b)

[[ 1.  2.]
 [ 3.  4.]]
<NDArray 2x2 @cpu(0)>

Maybe what you did was:
>>> import mxnet as mx
>>> a = [1,2]
>>> b = [3,4]
>>> mx.nd.stack(a, b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 39, in stack
AssertionError: Positional arguments must have NDArray type, but got [1, 2]
```?

Yup, I did the second thing, which is exactly mentioned in the doc.

@y12uc231 all arrays in the doc are (obviously) assumed to be NDArrays... It's even mentioned in your screenshot. So, stop yelling in all-caps in the first place, and try again with NDArrays

@y12uc231 Hi, thanks for the feedback. Indeed it's not very clear. And even worse, it's a common problem for all operator examples. The problem is that the example is written once, and shown in python/scala/R documentation, so we tried to make it more language agnostic but unfortunately becomes very misleading...

Thanks @liyujiel, he added a Python example for stack now.  Closing the issue


License not picked up by Vault

When running vault operator init, an error is returned.
# vault operator init
Error initializing: Error making API request.

URL: PUT https://<IP_ADDRESS>:8200/v1/sys/init
Code: 400. Errors:

* cannot initialize storage without an autoloaded license

I've tried:

[X] To export VAULT_LICENSE=xyz"
[X] To source /etc/vault.d/vault.env
[X] To set license_path pointing to a file with the license.
[X] To run VAULT_LICENSE=xyz vault operator init.

Details:
vault status
Key                      Value
---                      -----
Recovery Seal Type       awskms
Initialized              false
Sealed                   true
Total Recovery Shares    0
Threshold                0
Unseal Progress          0/0
Unseal Nonce             n/a
Version                  1.9.3+ent
Storage Type             raft
HA Enabled               true

Fixed by the last commit. (Was working before, reordered at some moment.


[CPDLP-2859] TS1 - Statements endpoint - happy path (show/index)

Context
Ticket: https://dfedigital.atlassian.net/browse/CPDLP-2859
Changes proposed in this pull request

API::V3::StatementsController updated with index and show actions
Tests added

looks great @mooktakim! only last comment would be around the order of params appearing in the API responses, testing locally they are ordered alphabetically not sure if you're also seeing this? any way we can preserve the expected order instead?

I was able to add attributes ordering based on definition 👍


Old namespace syntax for typescript definitions breaks when using ES Modules

Describe the bug
When I try to import Fuse with the latest ES Modules version of Typescript 4.7, I have enormous difficulty working with the old namespace syntax Fuse is currently using.
Version
6.6.2
Is this a regression?
No.
🔬Minimal Reproduction

Create a typescript project with ES Modules (package.json "type": "module" etc) and import Fuse from 'fuse.js';
Additional context

To workaround this for the time being, I created a custom-typings.d.ts file at my src root with the following in it (although there it's inside declare module 'fuse.js' {...} because it's in a global custom-typings.d.ts), an extremely light edit of your existing type definitions, getting rid of the old namespace syntax. It's still imported and used the exact same way, as Fuse.js is still seen as a CommonJS module at runtime.
You are free to use this in Fuse.js of course! I didn't want to go through the hassle of making a pull request if you think this is going to break too many old projects (would it?). But my experience is you are breaking future and current projects already with the old namespace syntax. Thanks for your work on Fuse.js!
  // Type definitions for Fuse.js v6.6.2
  // TypeScript v4.5.4

  export default class Fuse<T> {
    constructor(
      list: ReadonlyArray<T>,
      options?: Fuse.IFuseOptions<T>,
      index?: Fuse.FuseIndex<T>
    );
    /**
     * Search function for the Fuse instance.
     *
     * ```typescript
     * const list: MyType[] = [myType1, myType2, etc...]

     * const options: Fuse.IFuseOptions<MyType> = {
     *  keys: ['key1', 'key2']
     * }
     *
     * const myFuse = new Fuse(list, options)
     * let result = myFuse.search('pattern')
     * ```
     *
     * @param pattern The pattern to search
     * @param options `Fuse.FuseSearchOptions`
     * @returns An array of search results
     */
    search<R = T>(
      pattern: string | Fuse.Expression,
      options?: Fuse.FuseSearchOptions
    ): Fuse.FuseResult<R>[];

    setCollection(docs: ReadonlyArray<T>, index?: Fuse.FuseIndex<T>): void;

    /**
     * Adds a doc to the end the list.
     */
    add(doc: T): void;

    /**
     * Removes all documents from the list which the predicate returns truthy for,
     * and returns an array of the removed docs.
     * The predicate is invoked with two arguments: (doc, index).
     */
    remove(predicate: (doc: T, idx: number) => boolean): T[];

    /**
     * Removes the doc at the specified index.
     */
    removeAt(idx: number): void;

    /**
     * Returns the generated Fuse index
     */
    getIndex(): Fuse.FuseIndex<T>;

    /**
     * Return the current version.
     */
    static version: string;

    /**
     * Use this method to pre-generate the index from the list, and pass it
     * directly into the Fuse instance.
     *
     * _Note that Fuse will automatically index the table if one isn't provided
     * during instantiation._
     *
     * ```typescript
     * const list: MyType[] = [myType1, myType2, etc...]
     *
     * const index = Fuse.createIndex<MyType>(
     *  keys: ['key1', 'key2']
     *  list: list
     * )
     *
     * const options: Fuse.IFuseOptions<MyType> = {
     *  keys: ['key1', 'key2']
     * }
     *
     * const myFuse = new Fuse(list, options, index)
     * ```
     * @param keys    The keys to index
     * @param list    The list from which to create an index
     * @param options?
     * @returns An indexed list
     */
    static createIndex<U>(
      keys: Array<Fuse.FuseOptionKey<U>>,
      list: ReadonlyArray<U>,
      options?: Fuse.FuseIndexOptions<U>
    ): Fuse.FuseIndex<U>;

    static parseIndex<U>(
      index: any,
      options?: Fuse.FuseIndexOptions<U>
    ): Fuse.FuseIndex<U>;
  }

  export class FuseIndex<T> {
    constructor(options?: FuseIndexOptions<T>);
    setSources(docs: ReadonlyArray<T>): void;
    setKeys(keys: ReadonlyArray<string>): void;
    setIndexRecords(records: FuseIndexRecords): void;
    create(): void;
    add(doc: T): void;
    toJSON(): {
      keys: ReadonlyArray<string>;
      records: FuseIndexRecords;
    };
  }

  type FuseGetFunction<T> = (
    obj: T,
    path: string | string[]
  ) => ReadonlyArray<string> | string;

  export type FuseIndexOptions<T> = {
    getFn: FuseGetFunction<T>;
  };

  // {
  //   title: { '$': "Old Man's War" },
  //   'author.firstName': { '$': 'Codenar' }
  // }
  //
  // OR
  //
  // {
  //   tags: [
  //     { $: 'nonfiction', idx: 0 },
  //     { $: 'web development', idx: 1 },
  //   ]
  // }
  export type FuseSortFunctionItem = {
    [key: string]: { $: string } | { $: string; idx: number }[];
  };

  // {
  //   score: 0.001,
  //   key: 'author.firstName',
  //   value: 'Codenar',
  //   indices: [ [ 0, 3 ] ]
  // }
  export type FuseSortFunctionMatch = {
    score: number;
    key: string;
    value: string;
    indices: ReadonlyArray<number>[];
  };

  // {
  //   score: 0,
  //   key: 'tags',
  //   value: 'nonfiction',
  //   idx: 1,
  //   indices: [ [ 0, 9 ] ]
  // }
  export type FuseSortFunctionMatchList = FuseSortFunctionMatch & {
    idx: number;
  };

  export type FuseSortFunctionArg = {
    idx: number;
    item: FuseSortFunctionItem;
    score: number;
    matches?: (FuseSortFunctionMatch | FuseSortFunctionMatchList)[];
  };

  export type FuseSortFunction = (
    a: FuseSortFunctionArg,
    b: FuseSortFunctionArg
  ) => number;

  // title: {
  //   '$': "Old Man's War",
  //   'n': 0.5773502691896258
  // }
  type RecordEntryObject = {
    v: string; // The text value
    n: number; // The field-length norm
  };

  // 'author.tags.name': [{
  //   'v': 'pizza lover',
  //   'i': 2,
  //   'n: 0.7071067811865475
  // }
  type RecordEntryArrayItem = ReadonlyArray<RecordEntryObject & { i: number }>;

  // TODO: this makes it difficult to infer the type. Need to think more about this
  type RecordEntry = {
    [key: string]: RecordEntryObject | RecordEntryArrayItem;
  };

  // {
  //   i: 0,
  //   '$': {
  //     '0': { v: "Old Man's War", n: 0.5773502691896258 },
  //     '1': { v: 'Codenar', n: 1 },
  //     '2': [
  //       { v: 'pizza lover', i: 2, n: 0.7071067811865475 },
  //       { v: 'helo wold', i: 1, n: 0.7071067811865475 },
  //       { v: 'hello world', i: 0, n: 0.7071067811865475 }
  //     ]
  //   }
  // }
  type FuseIndexObjectRecord = {
    i: number; // The index of the record in the source list
    $: RecordEntry;
  };

  // {
  //   keys: null,
  //   list: [
  //     { v: 'one', i: 0, n: 1 },
  //     { v: 'two', i: 1, n: 1 },
  //     { v: 'three', i: 2, n: 1 }
  //   ]
  // }
  type FuseIndexStringRecord = {
    i: number; // The index of the record in the source list
    v: string; // The text value
    n: number; // The field-length norm
  };

  type FuseIndexRecords =
    | ReadonlyArray<FuseIndexObjectRecord>
    | ReadonlyArray<FuseIndexStringRecord>;

  // {
  //   name: 'title',
  //   weight: 0.7
  // }
  export type FuseOptionKeyObject<T> = {
    name: string | string[];
    weight?: number;
    getFn?: (obj: T) => ReadonlyArray<string> | string;
  };

  export type FuseOptionKey<T> = FuseOptionKeyObject<T> | string | string[];

  export interface IFuseOptions<T> {
    /** Indicates whether comparisons should be case sensitive. */
    isCaseSensitive?: boolean;
    /** Determines how close the match must be to the fuzzy location (specified by `location`). An exact letter match which is `distance` characters away from the fuzzy location would score as a complete mismatch. A `distance` of `0` requires the match be at the exact `location` specified. A distance of `1000` would require a perfect match to be within `800` characters of the `location` to be found using a `threshold` of `0.8`. */
    distance?: number;
    /** When true, the matching function will continue to the end of a search pattern even if a perfect match has already been located in the string. */
    findAllMatches?: boolean;
    /** The function to use to retrieve an object's value at the provided path. The default will also search nested paths. */
    getFn?: FuseGetFunction<T>;
    /** When `true`, search will ignore `location` and `distance`, so it won't matter where in the string the pattern appears. */
    ignoreLocation?: boolean;
    /** When `true`, the calculation for the relevance score (used for sorting) will ignore the `field-length norm`. */
    ignoreFieldNorm?: boolean;
    /** Determines how much the `field-length norm` affects scoring. A value of `0` is equivalent to ignoring the field-length norm. A value of `0.5` will greatly reduce the effect of field-length norm, while a value of `2.0` will greatly increase it. */
    fieldNormWeight?: number;
    /** Whether the matches should be included in the result set. When `true`, each record in the result set will include the indices of the matched characters. These can consequently be used for highlighting purposes. */
    includeMatches?: boolean;
    /** Whether the score should be included in the result set. A score of `0`indicates a perfect match, while a score of `1` indicates a complete mismatch. */
    includeScore?: boolean;
    /** List of keys that will be searched. This supports nested paths, weighted search, searching in arrays of `strings` and `objects`. */
    keys?: Array<FuseOptionKey<T>>;
    /** Determines approximately where in the text is the pattern expected to be found. */
    location?: number;
    /** Only the matches whose length exceeds this value will be returned. (For instance, if you want to ignore single character matches in the result, set it to `2`). */
    minMatchCharLength?: number;
    /** Whether to sort the result list, by score. */
    shouldSort?: boolean;
    /** The function to use to sort all the results. The default will sort by ascending relevance score, ascending index. */
    sortFn?: FuseSortFunction;
    /** At what point does the match algorithm give up. A threshold of `0.0` requires a perfect match (of both letters and location), a threshold of `1.0` would match anything. */
    threshold?: number;
    /** When `true`, it enables the use of unix-like search commands. See [example](/examples.html#extended-search). */
    useExtendedSearch?: boolean;
  }

  // Denotes the start/end indices of a match
  //                 start    end
  //                   ↓       ↓
  type RangeTuple = [number, number];

  export type FuseResultMatch = {
    indices: ReadonlyArray<RangeTuple>;
    key?: string;
    refIndex?: number;
    value?: string;
  };

  export type FuseSearchOptions = {
    limit: number;
  };

  export type FuseResult<T> = {
    item: T;
    refIndex: number;
    score?: number;
    matches?: ReadonlyArray<FuseResultMatch>;
  };

  export type Expression =
    | { [key: string]: string }
    | {
        $path: ReadonlyArray<string>;
        $val: string;
      }
    | { $and?: Expression[] }
    | { $or?: Expression[] };

  export const config: Required<IFuseOptions<any>>;

@spicemix Thanks for sharing this solution!

We also ran into this issue. The work around is sufficient, but will get out sync if upstream changes.


Can you tell me a little bit how i am suppose to stored the comments?

So recently I am working a rails project, and thinking about adding a comment function. Then i saw your work there which is super awesome. However, I'm not quite sure how I could save those comments data into the rails database.
It's rails 4 and database should be mysql or sqlite. Can you show me some really basic and simple example if you guys happen to know about that. May be even better if it could be done without son
Thanks

Unfortunately I'm not familiar with rails. What I recommend you to do is to create a REST api for your models. For example, if you have REST api for comments at URL "http://youdomain.com/api/comments", you can post a new comment in the "postComment" callback as follows:
$('#comments-container').comments({
postComment: function(commentJSON, success, error) {
$.ajax({
type: 'post',
url: '/api/comments/',
data: commentJSON,
success: function(comment) {
success(comment)
},
error: error
});
}
});


Change muted_topics data model to be based on stream IDs, not stream names

The current data model for muted_topics is problematic, in that it stores the stream name, not the stream ID.  This means it stops working if a stream gets renamed (in addition to other problems).
I think we can fix this by just:
(1) Refactoring the backend code to store the muted_topics data structure using stream IDs.  I'd try to avoid changing the API at first to contain complexity, but we'll likely want to do that in a future commit.
(2) Doing a migration to update any existing muted_topics.
This will be somewhat complicated code transition (the database migration should be easy).  I'd start by reading the code in zerver/views/messages.py that interacts with muted_topics; it's possible we'll want to do significant preparatory refactoring here.

@timabbott This seems to have been fixed by #6353 right?

Yep, closing.


Android Pin code fail

Hello,
let credentials = await BiometricNative.getItem({key:"credentials"});
this code works with fingerprint but, on Android, if i choose "pin code" instead "fingerprint", the code throw an error
getItem => "Failed to decrypt string"
setItem => "Failed to encrypt string"

#6 fixes this.


Revert "[CMake] Merge Clang's features file with Swift's"

Reverts apple/swift#41547

CC: @bnbarham

@swift-ci please smoke test


upgrade to typescript@^5

* typescript@^5 parses @throws differently from typescript@^4.
directly following a @throws tag, a {@link} tag is parsed as plaintext in stead of a link tag.
there's no real impact code-wise, but the test mocks required updating.

I'll revert my versioning, I wanted to suggest a semver major bump to honor the peerDep also bumping major version semver-wise and so if people are using tsdoc-markdown in a typescript@^4 project, the<EMAIL_ADDRESS>peerdep may be unmet as soon as they update the package, breaking their markdown doc generation...
technically tsdoc-markdown functions across both typescript versions, but it wouldn't be very semantic to say use say:
{
  ...
  "peerDependencies": {
    "typescript": ">=4 ^5"
  },
  ...
}

for the peerdep version.
this is just preference though, so use your best judgment!
I will close this PR, revert my commits, split it up into branches for each topic, and reopen unique PRs for every change.
Stay tuned!

as for the eslint depracation error

0:0 error Parsing error: DeprecationError: 'originalKeywordKind' has been deprecated since v5.0.0 and can no longer be used. Use 'identifierToKeywordKind(identifier)' instead

I am not very versed with eslint, I can attempt to fix this but it might be better if you handle it after the PRs.

Sounds like a plan. Really super cool @mia-riezebos ! Looking forward to the PRs

Hi @mia-riezebos, do you still plan to provide these great addition in separate PRs?
Just asking to get to know because that would be neat.

        I am!Just life getting in between things!.

Super, great to hear you are still motivated 😃.
No rush, I was just wondering. Thanks for the feedback.

Looks like I've caught a bit of a break. I will be able to work on this again tomorrow! Expect to see some activity, and some PRs tomorrow evening!

So cool, looking forward!!!! 🙏

For the record the lint deprecation warning was resolve by bumping eslint dependencies which should also be adapted for typescript v5


client: support balancer in jetcd

etcd has balancer manage etcd client connections. Jetcd should have similar thing.

close via #173


3d output about Leg bending

my operating system   win10
my tensorflow version   1.14
my python version 3.7
I use openpose to generate two kins of Josns (-BODY_25  and COCO_18) with the same video
I use the latest fork of  https://github.com/ArashHosseini/3d-pose-baseline
It can output the correct prediction with the COCO_18 json

but the _BODY_25 ,the legs are bended
like this

I want to used the BODY_25 , Faster and more accurate,
i look through the openpose_3dpose_sandbox_realtime.py, it can support the body_25,but the output is not correct

I use this command to predict real time
python src/openpose_3dpose_sandbox_realtime.py --camera_frame --residual --batch_norm --dropout 0.5 --max_norm --evaluateActionWise --use_sh --epochs 200 --load 4874200 --pose_estimation_json output\

@una-dinosauria

I use this command to redict
python src\openpose_3dpose_sandbox.py --camera_frame --residual --batch_norm --dropout 0.5 --max_norm --evaluateActionWise --use_sh --epochs 200 --load 4874200 --pose_estimation_json output\ --write_gif --gif_fps 24
The predictions are all right about the two kind of jsons

@ArashHosseini

@airobotixs no


Comparing constrained generic types/substitution types to conditional types

When comparing a generic type to a conditional type whose checkType is the same type, we have additional information that we are not utilizing.. for instance:
function f<T extends number>(x: T) {
    var y: T extends number ? number : string;

    // `T` is not assignable to `T extends number ? number : string`
    y = x;
 }

Ignoring intersections, we should be able to take the true branch all the time based on the constraint.
The intuition here is that T in the example above is really T extends number ? T : never which is assignable to T extends number ? number : string.
Similarly, with substitution types, we have additional information that we can leverage, e.g.:
declare function isNumber(a: any): a is number;

function map<T extends number | string>(
    o: T,
    map: (value: T extends number ? number : string) => any
): any {
    if (isNumber(o)) {
        // `T & number` is not assignable to `T extends number ? number : string`
        return map(o);
    }
}

Looking for concrete examples of where this comes up more legitimately

@RyanCavanaugh I think I have one.
interface ControlResult<T> {
	fields: ConvertPrimitiveTo<T, FormControl>;
	controls: T extends any[] ? FormArray : FormGroup;
}

From #23803
I think @mhegazy 's alternative solution there may work though.

Two semi-legitimate examples from #25883:

Existential types
The "generic index" workaround for mapped types that always substitute on indexing

My legitimate (I think 😉 ) use case:
Having a mapped type which tests against undefined with conditional type, can't perform that with constrained generic - see playground

My use case is that I want to have a generic base class that that does full discriminated union checking based on the generic type and then dispatches to an abstract method in a fully-discriminated way.  This makes it so I can write a very simple/trim handler class which is valuable when you have 100s of things to discriminate between.  In this particular case, there are multiple discriminations along the way that need to "aggregate" into a fully narrowed type, which is why we run into this bug.
Note: ClientHandler can further be generalized into something like the following which would allow us to use the same discriminating base class for both Client and Server handlers by just including the direction in the class declaration.  I chose to leave out this generalization in this issue to avoid making things too clouded.
Handler<T extends Message, U extends { direction: 'request' | 'response' }>

Note: While it may not appear so at first glance, the error received here reduces down to this bug.  After deleting code until I had nothing left but the simplest repro case I ended up with #32591, which appears to be a duplicate of this.
Note: The excessive usage of types here is to ensure that we get type checking and it is really hard to create a new request/response pair without properly implementing everything.  The goal is to make it so a developer showing up to the project can create a new class CherryHandler extends ClientHandler<CherryMessage> and then get compile errors until they have done all of the work necessary (including creating all of the necessary types) to make that handler work properly.
interface BaseChannel { channel: Message['channel'] }
interface BaseRequest { direction: 'request' }
interface BaseResponse { direction: 'response' }
type RequestMessage = Extract<Message, BaseRequest>
type ResponseMessage = Extract<Message, BaseResponse>
type Message = AppleMessage | BananaMessage

const isRequestMessage = (maybe: Message): maybe is RequestMessage => maybe.direction === 'request'
const isResponseMessage = (maybe: Message): maybe is ResponseMessage => maybe.direction === 'response'

abstract class ClientHandler<T extends Message> {
    receive = (message: Message) => {
        if (!isResponseMessage(message)) return
        if (!this.isT(message)) return
        // Type 'AppleResponse & T' is not assignable to type 'Extract<T, AppleResponse>'.
        this.onMessage(message) // error
    }

    abstract onMessage: (message: Extract<T, ResponseMessage>) => void
    abstract channel: T['channel']

    private readonly isT = (maybe: Message): maybe is T => maybe.channel === this.channel
}

interface AppleChannel extends BaseChannel { channel: 'apple' }
interface AppleRequest extends BaseRequest, AppleChannel {  }
interface AppleResponse extends BaseResponse, AppleChannel { }
type AppleMessage = AppleRequest | AppleResponse
class AppleHandler extends ClientHandler<AppleMessage> {
    // we'll get a type error here if we put anything other than 'apple'
    channel = 'apple' as const

    // notice that we get an AppleResponse here, because we already fully discriminated in the base class
    onMessage = (message: AppleResponse): void => {
        // TODO: handle AppleResponse
    }
}

interface BananaChannel extends BaseChannel { channel: 'banana' }
interface BananaRequest extends BaseRequest, BananaChannel {  }
interface BananaResponse extends BaseResponse, BananaChannel { }
type BananaMessage = BananaRequest | BananaResponse
class BananaHandler extends ClientHandler<BananaMessage> {
    channel = 'banana' as const
    onMessage = (message: BananaResponse): void => { }
}

This issue keeps biting me over and over in this project.  I wish I could thumbs-up once for each time I suffer from the fact that {a:any} is a valid generic instantiation of T extends {a:'a'}.
Latest is basically this (greatly simplified):
function fun<T extends Union>(kind: T['kind']) {
    const union: Union = { kind } // Type '{ kind: T["kind"]; }' is not assignable to type 'Union'.
}
fun<{kind: any}>({kind: 5}) // it is crazy to me that this line is valid

I want to be able to tell the compiler, "any should be treated as unknown and is not a valid extension of string (or anything else)".

@RyanCavanaugh another legit example of this, I'm creating a rxjs operator that returns an instance of a value if the stream is not an array, or an array of instances if it is. I have to use any in the array branch to make it work. (Observable types were removed, but the main use case, and the problem, still remains)
Playground

I'm having tghe same issues with this and what might help is the below:
function GetThing<T>(value:unknown): T | void {
    if(typeof value === "boolean") return value; // Type 'boolean' is not assignable to type 'void | T'. ts(2322)
}
// OR
function GetThing<T>(value:unknown): T {
    if(typeof value === "boolean") return value;
    // Type 'boolean' is not assignable to type 'T'.
    //  'boolean' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'. ts(2322)

    // etc.
}

Those just simplify the reproduction.
However one of the more interesting ones might be this one:
function GetThing<T>(value:unknown): T {
	if(typeof value === "boolean") return value as {};
    / Type '{}' is not assignable to type 'T'.
    //  '{}' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '{}'.ts(2322)
}

@Gianthra Despite me being the one to refer you to this thread, I think I was mistaken originally and your problem is actually different.  In your case, the problem lies in the fact that T could be a more constrained type than boolean.  This will cause typeof default === 'boolean' to resolve to true, but T may be the type false.

I also stumbled upon another valid use case: dynamic restrictions based on some attribute.
In my particular case, I'm trying to build an UI library based on Command/Handler approach, where we can model actions in form of data that will be later interpreted and executed by a dynamic handler.
Example:
type Action<T extends symbol = any, R extends {} = any> = {
    type: T
    restriction: R
}
type TagR<T extends string> = {tag: T}

Action is the base on which all the others are built, while TagR is a restriction that will allow to use certain actions only on specific html elements. Such an action could be adding an onInput event handler, which only makes sense for input and textarea elements:
const OnInputType = Symbol()
type EventHandler = (ev: InputEvent) => void
type OnInputAction = {
    type: typeof OnInputType,
    handler: EventHandler,
    restriction: TagR<'input' | 'textarea'>
}
const onInput = (handler: EventHandler): OnInputAction => TODO

Please note that now restriction field is set to TagR<'input'|'textarea'>, as we said before.
Next we need an action that model an element:
const ElementType = Symbol()
type ElementAction<T extends string, A extends Action, R extends {}> = {
    type: typeof ElementType,
    tag: T,
    actions: A[]
    restriction: R
}

Action itself is quite dumb, most of the type-level logic will be in the action creator:
const h = <T extends string, A extends Action>(
    tag: T,
    actions: MatchRestr<TagR<T>, A>[]
): ElementAction<T, A, ElemR<A>> =>
    TODO()

type MatchRestr<R, A> =
    A extends Action<any, infer AR>
        ? R extends Pick<AR, Extract<keyof AR, keyof R>> ? A : never
        : never

type ElemR<A extends Action> = UtoI<
   RemoveRestr<TagR<any>, A['restriction']>
>
type RemoveRestr<R, AR> =
    Pick<AR, Exclude<keyof AR, keyof R>>

// From Union to Intersaction: UtoI<A | B> = A & B
type UtoI<U> =
  (U extends any ? (k: U)=>void : never) extends ((k: infer I)=>void) ? I : never;

MatchRestr will ensure that only actions that either matches it or do not require this kind of restriction will be assignable.
RemoveRestr will allow restrictions to bubble up, so that some other action can take care of it, allowing an implementation similar to React Context but much more type-safe.
So, given all this code we now have that:
h('input', [onInput(() => {})])

Works as expected given that restrictions matches
h('div', [
    h('input', [onInput(() => {})]),
    h('br', [])
])

Works too given that the element do not require any constraint and rather remove the onInput one.
h('div', [onInput(() => {})])

This will raise a type error!
So far, so good. The problem arise as soon as we try to abstract some of it. Let's say that we want a wrapper element and it should only receives other children elements:
const wrapper = <E extends Element<any, any, any>>(children: E[]) =>
    h('div', children)

This however will not work:
Argument of type 'E[]' is not assignable to parameter of type 'MatchRestr<TagR<"div">, E>[]'.
  Type 'E' is not assignable to type 'MatchRestr<TagR<"div">, E>'.
    Type 'ElementAction<any, any, any>' is not assignable to type 'MatchRestr<TagR<"div">, E>'.

But this is kind of understandable, so next I tried this:
<E extends ElementAction<any, any, any>>(children: MatchRestr<TagR<any>, E>[]) => ...

And it indeed works, however as soon as I try to add something different it will break again:
h('div', [
    onInput(TODO),
    ...children
])

Type 'MatchRestr<TagR<any>, E>' is not assignable to type 'OnInputAction | MatchRestr<TagR<"input">, MatchRestr<TagR<any>, E>>'.
  Type 'Action<any, {}> & E' is not assignable to type 'OnInputAction | MatchRestr<TagR<"input">, MatchRestr<TagR<any>, E>>'.
    Type 'ElementAction<any, any, any>' is not assignable to type 'OnInputAction | MatchRestr<TagR<"input">, MatchRestr<TagR<any>, E>>'.
      Type 'ElementAction<any, any, any>' is not assignable to type 'MatchRestr<TagR<"input">, MatchRestr<TagR<any>, E>>'.
        Type 'Action<any, {}> & E' is not assignable to type 'OnInputAction'.
          Type 'ElementAction<any, any, any>' is not assignable to type 'OnInputAction | MatchRestr<TagR<"input">, MatchRestr<TagR<any>, E>>'.
            Type 'ElementAction<any, any, any>' is not assignable to type 'MatchRestr<TagR<"input">, MatchRestr<TagR<any>, E>>'.
              Type 'MatchRestr<TagR<any>, E>' is not assignable to type 'OnInputAction'.
                Property 'handler' is missing in type 'Action<any, {}> & ElementAction<any, any, any>' but required in type 'OnInputAction'.
                  Property 'handler' is missing in type 'ElementAction<any, any, any>' but required in type 'OnInputAction'.

Here is it in the Playground

@husnain129 not a correct assumption, Auth<"name" | "admin">("admin", "hello") is a legal call

@husnain129 not a correct assumption, Auth<"name" | "admin">("admin", "hello") is a legal call

@RyanCavanaugh not sure if that's true... I have just tried what you wrote in the playground and it yields an error. Am I missing something?
Playground

Typo, should be
Auth<"user" | "admin">("admin", { name: "" });

I am working on my API hook in nextjs project but facing this kind of issue.
interface User {
  name: string;
}
interface Admin {
  name: string;
  age: number;
}
interface Auth {
  user: User;
  admin: Admin;
}
const Auth = <Name extends keyof Auth>(name: Name, body: Auth[Name]) => {
  if (name == "admin") {
    // here typeof body must be Auth['admin'] but it not give any suggestion .. only gives body.name
  }
};

A 'workaround' would be to use the is keyword.
edited playground

Another simple illustration at this StackOverflow question:
function isFoxy<T>(x: T, flag: T extends object ? string : number) {
    console.log(`hmm, not sure`, x, flag)
}

type Fox = { fox: string }

function foxify<F extends Fox>(fox: F) {
    isFoxy(fox, 'yes')  // ❌ type error here
}

This is a contrived example, obviously, but only slightly less complicated than the real-world one I'm facing.


Configure rabbitMQ HA policy

The OSA policy replicated all queues to all nodes
ultimately leading to performance issues.
A new HA policy limits the queue mirroring to two
nodes allowing for much better scalability
Related-To: rcbops/u-suk-dev#461

Damn it ansible: https://github.com/ansible/ansible/issues/9362

recheck_cit_xenial_deploy_swift