Add Matter client example for webOS OSE

Problem

There is no support of taking advantage of Matter on webos.

Change overview

Adding cross compile support of Matter on webOS OSE along with client example.
Include Matter client example for webOS OSE (So far, only device discovery API works on webOS OSE. Still implementing the feature)
Introduce webos as a individual platform layer. (Original source is forked from src/platform/Linux to src/platform/webos)
BLE and Wi-Fi support will be done later by using the webos platform API.

Testing
How was this tested? (at least one bullet point required)

If new unit tests are not added, why not?
Unit tests are not support as of now and will be covered as part of next release update

If new integration tests are not added, why not?
Integration and CI build support will be added as part of next update

If manually tested, what platforms controller and device platforms were manually tested, and how?
chip-tool is cross-compiled for webOS OSE and tested.
chip-tool works as expected regarding discovery, pairing, commissioning window operation,read/write attribute.

Build of chip-tool for webOS OSE can be done by executing below script.
$ . scripts/examples/webos_example.sh

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Dear Reviewers,
This is Sungmok Shin from LG Electronics Korea.
This pull request is about introducing Matter build and application testing environment on opensource platform called "webOS OSE".
You can check more about webOS OSE on below url.

https://www.webosose.org/

Currently, we have port Matter on webOS OSE, and implement the simple background service that provides device discovery functionality via IPC mechanism called "luna-service2" used on webOS OSE.
Our objective is to introduce more API on this service for webOS application developer to use this API to implement their own Matter IoT application on webOS OSE.
I understand that there are still lots of things that needs to be fixed for this PR to be merged due to lack of my short experiences.
Think of this PR as a rough start for our contribution.
I would like you guys to review this at any point. Any reviews are welcomed.
Thank you
Sungmok Shin

Dear Reviewers,
Could someone could shine on my problem regarding processing this PR?
I have a 2 questions as follows.

22 workflows awaiting approval
It seems like there are testing job "Waiting for status to be reported" such as Ameba, Build Android, Build Darwin etc.
Is this job started when time passes? or someone with authorization should trigger this?
Last time, notification mail has been sent to me that those jobs are failed due to my PR. So, I fixed it and added additional commits on this PR. So, I wanna see if my PR still break the existing build or not.

pullapprove added "review - pending" label 12 ago.
Does this mean that peer review is not on progress? (ex) reviewer is not able to review this until further action.)
Or this is because of "Unresolved conversations" not resolved yet?
I wish I could knew if peer review is still on going.

Thank you
Sungmok Shin

Dear Reviewers,
Currently, workflow on this PR it not run but skipped all the time.
I suspect that I might not able to run workflow due to below rules.
"GitHub Actions: Maintainers must approve first time contributor workflow runs"
Could someone please approve the workflow run for me?
Thank you.

@bzbarsky-apple
I appreciate your help running the workflow.

@mspang @bzbarsky-apple @jmeg-sfy @andy31415
Could you plz review this?
Thank you in advance.

@mspang @bzbarsky-apple @jmeg-sfy @andy31415 Could you plz review this? Thank you in advance.

We are  under one week from feature freeze and being asked to review a PR with 11K delta lines ....

@mspang @bzbarsky-apple @jmeg-sfy @andy31415 Could you plz review this? Thank you in advance.

We are under one week from feature freeze and being asked to review a PR with 11K delta lines ....
I'm sorry for asking you guys to review a PR with hugh delta.

Actually, I think problem for reviewing might be the resources under src/platform.
Rest of the build script change might be simple to review.
For your information, as you already saw, all the stuffs under src/platform/webos is copy&paste from src/platform/Linux.
It is because we are working on platform adaptation layer for webOS by replicating and modifying the src/platform/Linux to src/platform/webos.
Those changes are not done yet. So, I created first PR with just copying the src/platform/Linux to src/platform/webos.
You can think of this commit as the initial commit for webOS Port.
Let me first fix your reviewed point.
Also let me try reusing the existing resource and remove the unnecessary stuff under src/platform/webos.
If it is not too much trouble, could you plz suggest how we can minimize the reviewing effort of src/platform/webos?
Thank you.

Approving, and fast tracking, given > 3 days for review, and these are mostly platform changes. @cabin15 please follow up with some CI to verify that this platform builds?

Approving, and fast tracking, given > 3 days for review, and these are mostly platform changes. @cabin15 please follow up with some CI to verify that this platform builds?

Dear Justin,
I really appreciate your approval and fast tracking.
Yes, I'm planning to add CI for webos platform build verification as well as other platform.
(Also, as @andy31415 suggested, I should come up with webos docker image things).
If you don't mind, can I work for CI in the next PR since this PR is getting bigger and bigger?
Thank you
Sungmok Shin

Approving, and fast tracking, given > 3 days for review, and these are mostly platform changes. @cabin15 please follow up with some CI to verify that this platform builds?

Dear Justin,
I really appreciate your approval and fast tracking.
Yes, I'm planning to add CI for webos platform build verification as well as other platform. (Also, as @andy31415 suggested, I should come up with webos docker image things). If you don't mind, can I work for CI in the next PR? I'm afraid that this PR is getting bigger and bigger which give reviewers a hard time checking too many deltas.
Thank you Sungmok Shin

I stand by my blocking of the PR as long as it uses a private IP address to download a script and execute.
please create a separate SDK docker image and have appropriate commands - I imagine webos should have some public way to download SDKs (or if it does not  have one, one should be created).
We have a requirement in matter that officially supported builds (i.e. things in the main tree) are available for use by all developers, not behind an NDA and stable (hence docker images).

Approving, and fast tracking, given > 3 days for review, and these are mostly platform changes. @cabin15 please follow up with some CI to verify that this platform builds?

Dear Justin,
I really appreciate your approval and fast tracking.
Yes, I'm planning to add CI for webos platform build verification as well as other platform. (Also, as @andy31415 suggested, I should come up with webos docker image things). If you don't mind, can I work for CI in the next PR? I'm afraid that this PR is getting bigger and bigger which give reviewers a hard time checking too many deltas.
Thank you Sungmok Shin

I stand by my blocking of the PR as long as it uses a private IP address to download a script and execute. please create a separate SDK docker image and have appropriate commands - I imagine webos should have some public way to download SDKs (or if it does not have one, one should be created).
We have a requirement in matter that officially supported builds (i.e. things in the main tree) are available for use by all developers, not behind an NDA and stable (hence docker images).

@andy31415
Your review is always appreciated.
I replaced private IP address with public url where everyone can download webOS NDK.
It has been verified that script works as expected on public network as well.
Now the remaining work seems like,

Integrate webos_example.sh to build_examples.py
Prepare webOS docker image for testing
Cleaning up the webos platform folder

If it is not too much trouble, I wonder if I can work on above items once this PR could be merged.
Like you mentioned eariler, this PR has too many deltas which waste reviewers valuable times.
As most of those deltas are on webos platform folder which does not break the CI, I wonder if this PR could be approved for now so that remaining work could continue confortably.
Me and my colleague is working on BLE and Wi-Fi adaptation for webos platform layer.
Sooner or later, there will be major changes on src/platform/webos which includes cleaning up this folder.
If you think those 1)~3) items are blocker, let me know. I would be glad to fix those with best effort.
Thank you.
Sungmok Shin

@mspang
Could you plz check if your review is fixed in the latest?
Thank you.

It’s fine to follow up with CI, we’ve done the same for previous platforms

It’s fine to follow up with CI, we’ve done the same for previous platforms

I appreciate your understanding. Let me follow up with CI in the next PR.

Note still needs changes requested to be resolved, or we need sufficient time for @andy31415 and @mspang to respond.

Note still needs changes requested to be resolved, or we need sufficient time for @andy31415 and @mspang to respond.

@woody-apple
Thank you for your comment.
I think I should fix the "changes requested" first by any means.
Let me get back to here once I resolve the changes requested.
Thank you.

Note still needs changes requested to be resolved, or we need sufficient time for @andy31415 and @mspang to respond.

@woody-apple Thank you for your comment. I think I should fix the "changes requested" first by any means. Let me get back to here once I resolve the changes requested. Thank you.

Thank you for your contributions!

@andy31415
I pushed the "clean-up" commit which resolved your review.
As you suggested, I removed the copy&pasted file and re-use the one from Linux.
Other than the file you pointed, I also remove the platform resources which could be re-used on Linux.
Also, on BLE and Connectivity related files, I removed the whole body and added "NOT IMPLEMENTED" return for future implementation.
There are still many deltas, but much more smaller.
Could you plz review this PR again?
Thank you.

Hope zap failure in zap generation and restyling has nothing to do with this PR.

Could anyone trigger CI job for this PR? since I'm not authorized to do it.
I just wanna make sure that CI is not broken. :)

@andy31415 @jmeg-sfy
I appreciate your reviews.
Let me go through each every one and fix those.
Thank you.

@andy31415 @jmeg-sfy I appreciate your reviews. Let me go through each every one and fix those. Thank you.

Please ping me once done

@andy31415
Thank you for dismissing the stale review.
As you mentioned, it is already fixed.

@andy31415
Thank you for triggering the CI.
Build Android failed due to "No space left on device" which seems not relevant with this PR.
I think failure on Line Code Base should be fixed.
Let me double check this.
Thank you.

Failure of Lint check is fixed on:

https://github.com/project-chip/connectedhomeip/pull/13292/commits/fcd9b88ed623a8fe7bab0e854353d829aedf739a

Conflict on .gitmodules (due to the add of perfecto) is resolved.

It would so kind if someone could run the CI. :)

Regarding 3 failed CI, I'm trying to see if this PR has anything to do with this.

Build Android -
INFO    /opt/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: final link failed: No space left on device
--> It seems not relevant with this PR. But I have idea why Build Android succeeded on other PR.

Test Suites Darwin
2022-02-08 17:17:11.907 ERROR   17:17:11.544 - TEST OUT  : [1644340631543] [9491:57923] CHIP: [TOO]  ***** Test Failure: currentLevel value mismatch: expected 128 but got 114
--> It seems like the failure during run time testing.

Build Darwin.
Failed during "Run Framework Tests".
--> Seems like not relevant.

Could someone shine on me with this?
Is this just the problem on the CI of other platform? or this PR has anything to do with this?
Thank you in advance.

Let me fetch the latest upstream to see if broken CI succeeds.

@andy31415 @woody-apple @jmeg-sfy ,
I started to wonder if thia PR intorduces the Android CI failure by adding webos sdk as submodule which exceeds the space for Android CI.
https://github.com/project-chip/connectedhomeip/runs/5126795951?check_suite_focus=true
Would this be a blocker for merging this?
If so, could you plz guide me how to fix this?
Forgive me since I'm new to CI things.

@andy31415 @woody-apple @jmeg-sfy
Android CI had failed since webos_sdk is added on submodule list.
Android CI failure log is at:

https://github.com/project-chip/connectedhomeip/runs/5126795951

{code}
INFO    [938/940] ld -shared lib/jni/arm64-v8a/libCHIPController.so
INFO    FAILED: lib/jni/arm64-v8a/libCHIPController.so lib/jni/arm64-v8a/libCHIPController.map
INFO    /opt/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++ -Wl,--gc-sections -march=armv8-a -O0 -fPIC -Werror -Wl,--fatal-warnings -Wl,-z,defs -fdiagnostics-color -Wl,-Map,lib/jni/arm64-v8a/libCHIPController.map -Wl,--gc-sections @lib/jni/arm64-v8a/libCHIPController.so.rsp -o lib/jni/arm64-v8a/libCHIPController.so -shared
INFO    /opt/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: final link failed: No space left on device
INFO    clang++: error: linker command failed with exit code 1 (use -v to see invocation)
{code}
It keeps displaying "No space left on device" which I believe because of additional submodule added by this PR.
For testing purpose, I removed webos_sdk on the submodule, and Android CI succeeded.
It seems like docker size limit for Android CI introduces this.
At this point, I have no clear solution to fix this error with maintaining webos_sdk on submodule.
So, for now, I removed webos_sdk on the submodule and let scripts/examples/webos_example.sh to check out the webos sdk repo when building webos application.
It would be so kind if anyone trigger the CI again.
Also, could you plz let me know if above change would be fine?
If so, it would be so happy if you guys could go over this PR for merging.
Always I appreciate your help.

@andy31415 @woody-apple @jmeg-sfy Android CI had failed since webos_sdk is added on submodule list.
Android CI failure log is at:

https://github.com/project-chip/connectedhomeip/runs/5126795951

{code} INFO [938/940] ld -shared lib/jni/arm64-v8a/libCHIPController.so INFO FAILED: lib/jni/arm64-v8a/libCHIPController.so lib/jni/arm64-v8a/libCHIPController.map INFO /opt/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++ -Wl,--gc-sections -march=armv8-a -O0 -fPIC -Werror -Wl,--fatal-warnings -Wl,-z,defs -fdiagnostics-color -Wl,-Map,lib/jni/arm64-v8a/libCHIPController.map -Wl,--gc-sections @lib/jni/arm64-v8a/libCHIPController.so.rsp -o lib/jni/arm64-v8a/libCHIPController.so -shared INFO /opt/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: final link failed: No space left on device INFO clang++: error: linker command failed with exit code 1 (use -v to see invocation) {code}
It keeps displaying "No space left on device" which I believe because of additional submodule added by this PR.
For testing purpose, I removed webos_sdk on the submodule, and Android CI succeeded.
It seems like docker size limit for Android CI introduces this. At this point, I have no clear solution to fix this error with maintaining webos_sdk on submodule. So, for now, I removed webos_sdk on the submodule and let scripts/examples/webos_example.sh to check out the webos sdk repo when building webos application.
It would be so kind if anyone trigger the CI again.
Also, could you plz let me know if above change would be fine? If so, it would be so happy if you guys could go over this PR for merging. Always I appreciate your help.

Woody and Andrei are the persons taking care of the CI.  This would be nice to understand why there is No space left on device indeed.
May be your archive contains many unused stuffs . i can see your are pulling toolchains for neon ...  what about the one already available on the SDK , those might work !? ... does a LG tv compile on a specific toolchains only.. ?

Also, could you plz let me know if above change would be fine? If so, it would be so happy if you guys could go over this PR for merging. Always I appreciate your help.

Woody and Andrei are the persons taking care of the CI. This would be nice to understand why there is No space left on device indeed. May be your archive contains many unused stuffs . i can see your are pulling toolchains for neon ... what about the one already available on the SDK , those might work !? ... does a LG tv compile on a specific toolchains only.. ?

@jmeg-sfy
Thank you for your opinion.
As a matter of fact, I'm already investigating this by running the android CI locally to reproduce this.
Like you said, this would be a good opportunity yo undetstand how CI works on this repo.
Let me investigate this and get back to here.

@mspang
Thank you for your review.
I will fix those and get back.
BTW, it would be so helpful if you could approve and run the ci for this PR so that I could recognize the current status.

@mspang
Your reviews are resolved in the latest commit.
https://github.com/project-chip/connectedhomeip/pull/13292/commits/4b21399d7e02262266a658765e9e31e768a5ba4a
Could you plz continue reviewing this?
I appreciate your review effort.

@andy31415 @woody-apple @jmeg-sfy @mspang
Gentle reminder for continuing review this PR.
Thank you in advance.

Latest conflict has been resolved.

@andy31415 @woody-apple @jmeg-sfy @mspang
It would be so kind if you let me know what I have to do next to get this PR merged.
Should I wait for extra approval

It would be so kind if anyone could trigger the CI for me.

@jmeg-sfy
Thank you for triggering the CI. 👍
@andy31415 @woody-apple @mspang @jmeg-sfy
It would be so kind if you could consider merging this PR, so that I could move on.

@andy31415
Gentle reminder for checking this PR for next step.
Thank you.

/rebase

/rebase

@andy31415
Rebase is done. Thank you.


Migrate to OpenID Connect

Specification could be found here http://openid.net/connect/
Libraries and tools http://openid.net/developers/libraries/
According to http://connect2id.com/products/nimbus-oauth-openid-connect-sdk/openid-connect-providers currently supported providers are:

Google
Microsoft
Yahoo
PayPal
Amazon
SalesForce

Some resourcess say Heroku also supports it
Currently this piece of software is barely usable.

There is a javascript library oidc-client targeting web browsers (and possibly Cordova style applications), however it is 420+ Kb minified and requires node/npm for building (here are the docs). Maybe it's not a bad idea to wrap everything to be built by grunt (or gulp) - there is closure part already that requires special handling.

I think I overcomplicating things (most likely there's no need to invent the wheel) - initially my aim was to update this library with latest changes, update icons/providers/etc, and use it later for Redmine plugin (Redmine it is used historically for some of my projects). Previously (before their discontinuation) I used pip.verisignlabs.com and StartSSL providers.


When traffic data is enabled on the Google Maps Flutter. The areas without traffic have a green line

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
I am using google_maps_flutter on my flutter app. But the areas without traffic have green polylines.

Can they be removed entirely ?
Can they be edited out using the map styles ?(If true, how can I remove them ?)

Proposal
Remove them entirely by either mapstyles or give a choice of selecting the color

@wazini-john
Can you provide an example using code sample that shows point number 1 and 2 as you mentioned (with screenshots) and what exactly are you  expecting  to happen ?


Optional Parms extra return

Optional parms are building with an extra return i cant seem to track down were in the template its coming from.
$optParams = array(

  //'acknowledgeAbuse' => '[YourValue]',  //Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when alt=media.

  //'supportsTeamDrives' => '[YourValue]',  //Whether the requesting application supports Team Drives.
  'fields' => '*'
);

https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtReference/management/webPropertyAdWordsLinks/insert


Switch from http to https, fix typo

Switch everything from http to https. Also fix a typo.

Have you tested if it actually works?
gawk does not have built-in support for TLS. AFAIK simply changing port 80 to 443 in the TCP header will not work.

The https thing aside, the spelling fix looks very reasonable to me. Could you open a separate PR (only for the 2nd commit)?

I haven't tested it indeed.
I didn't consider that translate-shell itself would implement enough of
HTTP in awk to be able to connect to these services, I thought that all
the plugins would be calling curl as at least one of them does.
At some point not being able to use a modern HTTP implementation might
become a liability, for example if some of the APIs started to require
HTTPS or HTTP/2 or HTTP/3 then you would have to switch anyway.
Would you be open to switching all the plugins to use curl?
--
bye,
pabs
https://bonedaddy.net/pabs3/

curl is used whenever gawk cannot handle a request (such as the HTTPS ones), but as it is an external process there is a performance overhead.
I think the best way to implement this is to have an option --secure to force the usage of curl (hence HTTPS) for all requests; defaults to plain HTTP/1.1 otherwise.
If Google Translate starts to require HTTPS one day in the future and gawk can't handle it, maybe it's then time to rewrite trans in a more modern language with a decent standard library. (Requiring HTTP/2 or HTTP/3 is a bit too radical at this point, though)

That sounds like a reasonable way to go, I'll try to take a look at
implementing it over the weekend.
--
bye,
pabs
https://bonedaddy.net/pabs3/

I've dropped the problematic parts of my patch, please merge the
remaining changes and I will submit a new PR for the --secure feature,
once I have time to work on it.
--
bye,
pabs
https://bonedaddy.net/pabs3/


Followed the steps outlined in Readme.md, but it doesn't work

I need to create a table where the pk will be a uuid. It seems like this package is just what I need. I tried all the steps listed in Readme.md, but I get the following error:
 [ErrorException]
  Class 'SchemaExtended\Schema' not found

Following is my migration file that tries to create a table with a binary(16) primary key column:
  public function up()
  {
      Schema::create('test_binary', function (Blueprint $table) {
          $table->binary('uuid', 16)->primary();
          $table->timestamps();
      });
  }

I do not see the folder SchemaExtended on my source code folder either. Where is it supposed to install?
Sorry about bothering you with this request. There didn't seem any other way of getting in touch with you.

After you add something to composer.json, you need to run composer install. It should install package to vendor/rafis/schema-extended and update composer's autoloader so it can find SchemaExtended\Schema class.


SP1 version is not pinned when running cargo prove new, leading to errors

SP1 version is not pinned when running cargo prove new, and uses the current version of main.
This is leading to compilation errors right now when following the tutorial. Manually pinning the sp1-zkvmmakes it work again. Maybe it should be pinned by default.

Hi! We've added testing for this such that it should always work on main, but thank you for flagging.


areObjectShallowEqual does not handle edge case where objectA or objectB are null or undefined.

Thanks for taking the time for reporting an issue!
If you are having trouble sending data from the SDK but don't see any error, please reach out first through our support team.
Describe what happened
Include any error message or stack trace if available.

TLDR: We have a proposed fix below, at the end of this issue.
The Datadog React Native SDK internally overrides React.memo, and the areObjectShallowEqual method used to compare props between invocations is not safe against arguments being undefined or null. Under certain circumstances, even if it is not supposed to happen, memoized hooks can uninitialized values, so the memo comparison between a setState or similar setter will throw an error:
 DEBUG  DATADOG: Tracking error log “Cannot convert null value to object”

Steps to reproduce the issue:

In our use case, we are using Datadog to instrument our React Native application, with Recoil for state management, and LaunchDarkly for feature flag management.
Please note, because of the combination of these three libraries, we are probably creating a rare and unexpected edge case.
Internally, Recoil uses React Context to manage state, and useRecoilState is essentially a wrapper for useState. You can supply a default value. LaunchDarkly needs to be initialized asynchronously, similar to Datadog, and the client must be connected to poll / listen for flag status changes. An example configuration might look like this:
import { useEffect } from 'react';
import { atomFamily, useRecoilState } from 'recoil'
import LDClient, { LDConfig } from 'launchdarkly-react-native-client-sdk';

const ldConfig: LDConfig = {};
const ldUser = {};
const launchDarklyClient: LDClient = new LDClient();
let isReady = false;

async function getLaunchDarklyClient() {
  if (!isReady) {
    try {
      await launchDarklyClient.configure(ldConfig, ldUser);
      isReady = true;
    } catch (err) {
      console.error(err, 'Error initializing LaunchDarkly Client');
   }
}

const featureFlagCache = atomFamily({
  key: 'feature-flag-cache',
  // This is to allow for the scenario where the feature flag default could be set to anything, including undefined - no default value is a valid outcome
  default: () => undefined,
});

// For purpose of the bug, we are only dealing with boolean flags, but we could have various flag types
export function useBooleanFeatureFlag(flagName: string, defaultFlagValue: boolean): boolean {
  const [flagValue, setFlagValue] = useRecoilState(flagCache(flagName));

  useEffect(() => {
    const updateFlags = async (flagKey: string) => {
      const client = await getLaunchDarklyClient();
      // This asynchronously resolves to a valid value, or the default if provided
      const newFlagValue = await client.boolVariation(flagKey, !!defaultFlagValue);
      // This is where things get weird; behind the scenes, Recoil might backfill the default: () => undefined as the state while consumers get set to newValue, breaking Datadog's React.memo override
      setFlagValue(newFlagValue);
    };
    void updateFlags(flagName);
  }, [defaultFlagValue, flagName, setFlagValue]);

  return flagValue;
}

Then, in our entry, a bare-bones Datadog integration:
// App.tsx
import {
  DdSdkReactNative,
  DdSdkReactNativeConfiguration,
  TrackingConsent,
  SdkVerbosity,
} from '@datadog/mobile-react-native';
import React from 'react';
import { RecoilRoot } from 'recoil';
import { BaseApp } from './BaseApp';

const DdConfig = new DdSdkReactNativeConfiguration(
  Config.DATA_DOG_CLIENT_TOKEN,
  Config.ENVIRONMENT,
  Config.DATA_DOG_APPLICATION_ID,
  true, // track user interactions (such as a tap on buttons)
  true, // track XHR resources
  true, // track errors
  TrackingConsent.GRANTED,
);

DdSdkReactNative.initialize(DdConfig);

export function App() {
  return (
    <RecoilRoot>
      <BaseApp />
    </RecoilRoot>
  );
}

While this isn't a common setup, it raises the edge case where an internally React.memo'd method call (setRecoilState -> setState) can be called where one of the previous or next memoized parameters might be undefined, null, or even simply "missing" due to asynchronous behavior.

Describe what you expected:

In normal operation, this works fine. It's simply once integrating Datadog that this breaks down and throws the error.

Additional context

Version of the SDK: 1.4.0
package.json:

{
  "dependencies": {
    "@datadog/mobile-react-native": "^1.4.0",
    "@datadog/mobile-react-native-code-push": "^1.4.0"
  },
  "devDependencies": {
    "@datadog/datadog-ci": "^2.5.1"
  }
}

Podfile and Podfile.lock:

PODS:
  - DatadogSDK (1.15.0)
  - DatadogSDKCrashReporting (1.15.0):
    - DatadogSDK (= 1.15.0)
    - PLCrashReporter (~> 1.11.0)
  - DatadogSDKReactNative (1.4.0):
    - DatadogSDK (~> 1.15.0)
    - DatadogSDKCrashReporting (~> 1.15.0)
    - React-Core

android/build.gradle and android/app/build.gradle: N/A

Proposed Fix
The fix we implemented locally was to use patch-package to inject some additional comparisons and checks in areObjectShallowEqual. We suggest applying this here, as it should not break any existing functionality, but rather, ensure that if for any reason objectA or objectB are null or undefined, the comparison does not throw an error.
---<EMAIL_ADDRESS>+++<EMAIL_ADDRESS>@@ -11,6 +11,23 @@ export const areObjectShallowEqual = (
     objectA: Record<string, unknown>,
     objectB: Record<string, unknown>
 ): boolean => {
+
+    if (typeof objectA !== typeof objectB) {
+        return false;
+    }
+
+    if (objectA === undefined) {
+        return objectB === undefined;
+    }
+
+    if (objectA === null) {
+        return objectB === null;
+    }
+
+    if (objectB === undefined || objectB === null) {
+        return false;
+    }
+
     const keys = Object.keys(objectA);
     if (keys.length !== Object.keys(objectB).length) {
         return false;

Hi @jackson-allio, thanks for reaching out and for the comprehensive explanation!
I think your fix could be brought in, but before that I would also like to make sure we cover your case in our unit tests so it's not broken by accident in later releases.
If you don't mind, could you clarify why and how you're using React.memo on a method call? I've been looking for such a use case, and I could only find examples of React.memo being called to memoized React components, not method calls.
If you can include a simple example of such a use case that would also be very helpful.
Thanks a lot!

@louiszawadzki We're not using React.memo on a method call, only on components - though, it's my understanding that  useCallback, useEffect internally rely on memoization or an adaptation of it via the dependency array. However, when a setState or setRecoilState is modifying a prop consumed by a React.memo'd component, we're interacting with React.memo and potentially creating the scenario were props (or at least, whatever is being passed to the overridden React.memo) are null or undefined.
I'm not entirely sure "why" the props end up null or undefined, but it's a potential edge case we're encountering one way or another. We aren't using any custom compare method instead our memoized components, so the React.memo override here is taking precedence.
I suspect Suspense mode may have something to do with it, since our use case does involve some async behavior. If not, I'm unsure.

Hi @jackson-allio, thanks for coming back with more details!
This is indeed a specific edge case, so I'd very much to have a unit test in place before fixing it, to make sure we don't accidentally break it in the future.
To help us properly fix this and test our fix faster, could you maybe share a short reproducible example? Even a failing unit test with a small component using testing-library would be enough :)
Alternatively you can reach out through our support team (https://www.datadoghq.com/support/), so you can securely share concrete examples from your app.
Thanks a lot!

@louiszawadzki Sorry for the delay.
A full reproducible example is available in this repo: https://github.com/jackson-allio/dd-sdk-reactnative-issues-419
To further drill down into the issue, I suspect that the problem is occurring if a props are changing on a component that is suspended. While suspended, memoization appears to break down and props are temporarily null. This means that  objectA in areObjectShallowEqual is null, throwing a [TypeError: Cannot convert undefined or null to object] when trying to call Object.keys(objectA).
In the repo / reproducible example, I've included the current source code for areObjectShallowEqual and a lightweight stub of the Datadog SDK's override of React.memo causing the problem. The unit tests and associated mocks should highlight the issue clearly. Hopefully this addresses your concerns?
function App() {
  const [prop, setProp] = useState(false);

  useEffect(() => {
    setProp(true);
  }, []);

  return (
    <Suspense fallback={<ActivityIndicator />}>
      <Component prop={prop} />
    </Suspense>
  )
}

Hi @jackson-allio, thank you very much for taking the effort to provide us with an example 🙇
I will look into it to see if we can produce a good unit test and and keep you updated!

Hey @louiszawadzki, just checking if there is any update on this? The unit tests I provided in the sample repo should provide a good baseline for reproducing & testing the issue.

@louiszawadzki Any movement on this?

Hi @jackson-allio,
Sorry we've been pushing this for other topics with higher priority, I will try to fit it in the next minor release.


Add GAL token

Please check the following to ensure a successful verification of Token Profile
.json and .png document checklists

[x] logo dimensions: 120*120 px
[x] logo background: Transparent
[x] At least one transaction on the token contract
[x] For ERC-20 project teams: Upper and lower capitalized alphabets in token address (For checksum purposes)
[x] Same document name for both .json and .png (Including capitalization)

Project background:
Official announcement:
https://twitter.com/ProjectGalaxyHQ/status/1519590266369417216
Project team background:

Harry Zhang, Co-Founder & Project Lead of Project Galaxy

Prior to founding Project Galaxy, Harry was the Co-Founder & COO of Lino Network and Co-Founder of Dlive.tv (merged into BitTorrent ecosystem in 2019). At Lino and DLive, Harry led the team and built the product that served more than 10 million monthly active users. Prior to that, Harry was the Head of Data Product at Club Factory (No.3 ecommerce platform in India at the time), where Harry designed a data-centric supply chain and recommendation system from the ground up. Harry holds a bachelor's degree of Computer Science and Statistics from UC Berkeley. He was also the President of Associate of Chinese Entrepreneurs (ACE) at Berkeley from 2016 to 2017.

Charles Wayn, Co-Founder & Strategy Lead of Project Galaxy

Prior to founding Project Galaxy, Charles was the Co-Founder & CEO of DLive.tv. After DLive merged into BitTorrent in 2019, Charles became the VP of Interactive Entertainment at BitTorrent, managing multiple streaming business units including DLive.tv, DLive Protocol, and the Two App. Charles holds a bachelor's degree of Economics from UC Berkeley. He was also the President of Associate of Chinese Entrepreneurs (ACE) at Berkeley from 2017 to 2018.
Project basic information:
Project Galaxy is the largest Web3 credential data network in the world.Project Galaxy helps developers and organizations leverage NFTs and digital credential data to build better products and communities in Web3.
Credentials live in our day-to-day life. An example of an on-chain credential would be the record that you borrowed money from DeFi lending protocols but were never liquidated.  All of your behavioral data in Web2 counts towards your credentials, companies like Google and Facebook run algorithms on your credentials so that they can send you targeted advertisements. Credentials are important due to the high use case they provide. Application developers can use your credentials to calculate credit scores, find target audiences, reward community contributors, etc. With the advance of Web3 and DAOs, there will be an explosion of behavioral data generated by waves of new users. Project Galaxy will provide the necessary infrastructure to help these new users build digital credentials that will be of paramount importance.
Credential data today are segregated across closed databases that are owned and permissioned by applications, government organizations, and financial and credit institutions. This has led to a fractured landscape that is not open to the individuals who should own that data or the applications that need it. Project Galaxy aims to solve this problem using an open and collaborative credential data network which will help Web3 developers leverage credential data and NFTs to build better products and more engaging communities.
Project Galaxy provides the infrastructure for community members to curate and contribute digital credentials to the Galaxy Credential Data Network. The infrastructure supports curating credentials through multiple data sources. Curators can contribute data from 7 different chains with subgraph queries or snapshots for on-chain credentials. They can also provide data from Twitter, Discord, Github, or offline events for off-chain credentials.
Project Galaxy also provides Application Modules, Credential API, and a Credential Oracle Engine to help developers leverage credential data. Use cases of the Application Modules include Galaxy OATs (On-chain Achievement Tokens), NFT loyalty programs, growth hacking campaigns, gated community, and customized governance. Developers can also utilize the Credential Oracle Engine and Credential API for enhanced customized use cases such as credit scoring and Sybil attack prevention algorithms.
Media publications:

https://www.coindesk.com/layer2/2022/05/05/smart-money-wallets-accumulate-gal-and-decrease-ape-holdings-nansen-data/
https://www.odaily.news/post/5178417
https://www.cryptopolitan.com/binance-coinbase-support-project-galaxy/
https://www.gfinityesports.com/cryptocurrency/project-galaxy-token-gal-buy/
https://coinjournal.net/news/project-galaxy-coin-rises-on-multiple-listings-heres-where-to-buy-project-galaxy/
https://www.theblockbeats.info/en/news/28871
https://www.defidaonews.com/article/6748134
https://lunarcrush.com/influencers/ProjectGalaxyHQ

Tradeable exchanges:
Binance
Binance TR
Huobi Global
Gate.io
KuCoin
Bybit
FTX
Coinbase Exchange
Coinlist Pro
MEXC
PancakeSwap (V2)
Uniswap (V3)
WOO Network
BitMark
BitGet
For more: https://coinmarketcap.com/currencies/project-galaxy/markets/
Recommended Gas Limit (For ERC-20 project teams) for transaction: (Default is 60,000)
60,000 should be fine

@shahngah what's the status of the review process? Just curious whether we can merge the PR now :P. Thanks!

Can somebody help me deploy my tokens there on Binance They're called world credit tokens I'm having a problem deploying them and running them I need some help thank you

They're cold World credit symbol is world

I am the creator this is how you can find them on the Binance smart test 0xA901Cf8023D4a644aCC27582232EB70E9222F2e8


Trello-386: workaround 500's on smartanswers

Since migrating the content-store to AWS, we are seeing timeouts on
some requests on smartanswers when it makes calls to retrieve content items.
The latency has increased since the migration so we need to temporarily
increase the timeout time for the calls to the content-store.
The default timeout is 4 seconds we are doubling it to 8 seconds until
the frontends are migrated to AWS.
More info here: https://github.com/alphagov/gds-api-adapters/blob/a83d405df57f84fbf7080903a485d562a1350543/README.md#setting-the-timeout
Here the timeout exceptions are being rescued as 503's: https://github.com/alphagov/smart-answers/blob/09c7f542e758c307f282dba349ee620a0ffd3cc0/app/controllers/application_controller.rb
Pair: @ronocg<EMAIL_ADDRESS>@karlbaker02<EMAIL_ADDRESS>

Closing this, we will make the change on gds-api-adapters


It seems like Packit isn't triggering on PRs from contributors?

In https://github.com/fedora-iot/zezere/pull/37, a contributor submitted a new PR and Packit never seems to have started, nor did it supply a comment with why not.

IMHO the same cause as in #482

@jpopelka Except that this issue was 4 days ago, and not today. And it seems like Packit never even set the Pending status with links, which it did on the issues affected by #482?

So the use case is that a contributor submitted a PR and packit did not set any statuses on the PR. As far as I could tell while looking at the PR, the contributor did not have commit rights in repo.
@lachmanfrantisek could this be related to your giant refactor work?

@lachmanfrantisek could this be related to your giant refactor work?

Anything can be related...;) It's possible that I've removed the setting of the error status.
In the meantime, there were some changes related to this. Some rewording of messages and also the code changes (@csomh sent those changes if I remember correctly).

Was #445

@TomasTomecek Yeah, at the time he submitted the PR (and Packit did not take action), the contributor did indeed not have write access to the repository.
After I ran "/packit build", it did get triggered, so I guess the issue comes down to that it didn't tell me I needed to run that :).

OK
So what can we do to improve that?

Mention the /packit build in the comment if someone triggered the build via comment.
On push, we show only a status:

Can we easily show that info there? (The length is very limited.)
Can we add a static URL (to docs?) with the instructions?
Creating comments also for this would be too spammy I think.

  * Can we add a static URL (to docs?) with the instructions?

Sounds good, I'd do that.

Still needs a documentation update.

  * Can we add a static URL (to docs?) with the instructions?

Sounds good, I'd do that.

@TomasTomecek Have you done that?
I see that we are using FAQ_URL = "https://packit.dev/packit-as-a-service/#faq" for whitelisting problems and no url for user permissions:
https://github.com/packit-service/packit-service/blob/aba85da2b1cd879d7df6c3b83ee57caf1f09490d/packit_service/worker/whitelist.py#L256-L259
https://github.com/packit-service/packit-service/blob/211fcb2333a58a718df5764d24c233e1429a7867/packit_service/worker/handlers/github_handlers.py#L270-L276

  * Can we add a static URL (to docs?) with the instructions?

Sounds good, I'd do that.

@TomasTomecek Have you done that?

I haven't :D
In this context, "I'd do that" meant that "I share your opinion and agree with it", not that "I'm going to do that". Will try to write more clearly next time.
Anyway, I'm going to send a PR right now.

In this context, "I'd do that" meant that "I share your opinion and agree with it", not that "I'm going to do that". Will try to write more clearly next time.

@TomasTomecek thanks. I did read that as I'll not I'd...;) Probably I wanted to see that.;)

Since the response has been improved by Tomáš and the code changed a lot since March, I am going to close this issue.
Please, create a new issue if you hit that problem again.
Thanks for letting us know about the issue!


Add GitHub Actions, flake8, fix lint errors

@boris-dimitrov I have disabled the linter rules for the issues you mentioned.
flake8 is the de facto standard Python linter. In the future I would appreciate it if any divergences from its style guidance were documented up front in a team-wide style guide. Otherwise we run the risk of conflicts and wasted efforts stemming from surprising deviations from standard practice.
To be clear, I'm only making this codebase linter compliant because it is in a dangerous state with no linting, no testing, and no release management. I expect that I can't safely make changes to it without a linter, so I have to first bring it into a state where a linter can run on it.


InputType.Decimal?

I want to open a Prompt popup with a decimal field, is it possible?

InputType.DecimalNumber

Ah, ok, thanks!


Typescript

if you want to submit a types.d.ts that would be cool but i really dont think this 1-file 50-line script whose most common type is unknown[] is worth converting to typescript and having to bring in a compiler and dealing with generated code


fix(referrer prop) restrict referrer prop to web only

Fix
This small fix ensures that the referrer prop will only work when used in web apps and will be ignored in native apps (iOS/Android).
Signed-off-by: Sam Apter<EMAIL_ADDRESS>

This won't work with RNW either, as we aren't using the JS SDK.  In order to enable web support, we recently added a prop that encourages you to use a proxy server, so using the referrer prop will not help us there either.   At this point, it probably makes sense to remove the referrer prop.

Maybe wait for the the author https://github.com/FaridSafi/react-native-google-places-autocomplete/pull/526 to chime in. I just don't see what harm is there in keeping it for those who use the library in a web setting in which it works and rely on developers' common sense to not use it in settings where it doesn't work.

I will definitely wait on the original PR author for input.  I don't know how you can use this library on the web because of CORS issues.  Using a proxy server won't help either.  That is why I am inclined to remove it...

And to be fair, https://github.com/FaridSafi/react-native-google-places-autocomplete/pull/526 really wanted to fix the incorrect way we were setting the Referrer header based on this.props.query.origin which has nothing to do with referrer

And you're probably right about the CORS issues. I never tried using it myself but knew that setting referrer based on origin was a serious bug.

I'll give it another day to hear back, otherwise I am going to revert the PR.
The long and short of it is, Restricted API key are not going to work with the Library.  Until RN officially supports the web, I am not so inclined to add more features that only service web support (which is a hack right now anyways, because we require a proxy server.
Thanks for your input in all of this, I really appreciate it!

If you revert that PR you still need to fix the main issue there: setting referrer based on the origin prop. That is a serious bug. If you just revert it, anyone passing in a query.origin prop will still set the Referrer header. That is very incorrect.

Working on it now, I am going to remove setting a refferrer header.  Draft PR #562


Does ON in PyTorch require that batch_size > 1?

I test the code with setting norm_mode="online" and batch_size=1. It told me
Traceback (most recent call last):
  File "/home/zhaoshuai/github/online_bn/experiments/resnet/cifar10_main.py", line 148, in <module>
    main(args)
  File "/home/zhaoshuai/github/online_bn/experiments/resnet/cifar10_main.py", line 143, in main
    main_worker(train_loader, val_loader, NUM_CLASSES, args, cifar=True)
  File "/home/zhaoshuai/github/online_bn/experiments/resnet/utils.py", line 97, in main_worker
    train(train_loader, model, criterion, optimizer, epoch, device, args)
  File "/home/zhaoshuai/github/online_bn/experiments/resnet/utils.py", line 138, in train
    output = model(input)
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/zhaoshuai/github/online_bn/experiments/resnet/model/model.py", line 211, in forward
    x = self.bn1(x)
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/zhaoshuai/github/online_bn/experiments/resnet/online_norm_pytorch/online_norm_2d.py", line 580, in forward
    out = self.ctrl_norm(input)
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/zhaoshuai/github/online_bn/experiments/resnet/online_norm_pytorch/online_norm_2d.py", line 486, in forward
    return self.normalizer(input)
  File "/home/zhaoshuai/github/online_bn/experiments/resnet/online_norm_pytorch/online_norm_2d.py", line 409, in forward
    momentum_pow, momentum_batch)
  File "/home/zhaoshuai/github/online_bn/experiments/resnet/online_norm_pytorch/online_norm_2d.py", line 212, in lin_momentum
    input = torch.cat([mu_prev[1:], mu_curr]).transpose(0, 1).unsqueeze(1)
RuntimeError: invalid argument 0: Tensors must have same number of dimensions: got 1 and 2 at /opt/conda/conda-bld/pytorch_1556653099582/work/aten/src/THC/generic/THCTensorMath.cu:62

The relevant code is
https://github.com/Cerebras/online-normalization/blob/84895855fb8b099ad8c1266dc325bec41d72ecf5/online-norm/pytorch/online_norm_pytorch/online_norm_2d.py#L212 .
But the code works normally with norm_mode="online" and batch_size=2.
So I want to know, does ON in PyTorch require that batch_size > 1?

Sorry for the super response.
Online Normalization is created as a batch size = 1 normalization technique which uses a time evolving process to estimate the mean and standard deviation for normalization. This means that the samples are processed in order, sequentially. To process the data in order  and sequentially requires a for loop which launches a bunch of really small kernels and the kernel launch time becomes the bottleneck during training. There are 3 ways to get around this issue:

concede to running slow code, really slow, like GPU training at batch size 1 slow.
write a CUDA kernel which absorbs the loop.

fast, efficient but takes engineering hours to get it perfect.
I've written a first draft of this, but for the time being we are not releasing that code.

realize that this sequential processing can be modeled using convolutions.

allows us to linearize the loop and perform it using a cuda call.

We originally chose to do option 3 and that is the code you are trying to run. The mathematics behind the linearization process can be found in Appendix E of Online Normalization for Training Neural Networks. This method does require that you use a batch size > 1.
The slow loop version is implemented here:
https://github.com/Cerebras/online-normalization/blob/84895855fb8b099ad8c1266dc325bec41d72ecf5/online-norm/pytorch/online_norm_pytorch/online_norm_2d.py#L54
When you initialize OnlineNormalization, you can pass the above implementation as the ctrl_norm arg. The loop version will be able to do training at any batch size, but is really slow for larger batch sizes.

updt: kernel written for ON. see discussion here https://github.com/Cerebras/online-normalization/pull/1#issuecomment-588330729


Fixing Annotated Query select * with no where but with a sort.

Description
Fixes issue #40018
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[ ] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.

/azp run java - spring - tests

/azp run java - spring - tests


FileTransfer Dependency is Deprecated and Throws Error in XCode Build on cordova-ios v6

Issue Type

[ ] Bug Report
[ ] Feature Request
[x] Support Question

Description
Upon upgrading to cordova-ios 6.1.0, and then proceeding to build my application in XCode, the following error is thrown from the cordova-plugin-file-transfer code:

cordova-plugin-camera still installs cordova-plugin-file-transfer as a dependency even though it has been deprecated since 2017 (https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html), thus we have no recourse to address this error.
This will need to be resolved soon as upgrading to cordova-ios version 6 will be required in iOS applications because of Apple's new WKWebView requirement: https://developer.apple.com/documentation/uikit/uiwebview.
Users will likely be forced off of this camera plugin otherwise.
Information

Command or Code

Environment, Platform, Device

Version information
cordova-ios 6.1.0
cordova-plugin-camera 4.1.0
Checklist

[x] I searched for already existing GitHub issues about this
[x] I updated all Cordova tooling to their most recent version
[x] I included all the necessary information above

The camera plugin does not define cordova-plugin-file-transfer as a dependency, which is observable by looking at its plugin.xml file under the 4.1.0 release tag.
You likely still have a lingering reference of cordova-plugin-file-transfer in your config.xml or in your package.json. A cordova plugin remove cordova-plugin-file-transfer should clean everything up


Enhancement: Add new field property - conditions

The conditions property should control the field visibility. The field will be displayed only if the conditions are met.
Usage:
"fields": [
	{
		type: "switch",
		label: "Some field",
		textOn: "Yes",
		textOff: "No",
		multi: true,
		default: false,
		model: "some_field"
	}, {
		type: "input",
		inputType: "text",
		label: "Dependent field",
		model: "dependent_field",
		"conditions": [
			{
				"field": "some_field",
				"compare": "===",   // ===, !==, >, <, >=, ......
				"value": true,
				"display": "show"   // show, hide, disable, readonly
			}
		]
	}
]

In this example, the second field will be displayed only if the first field equals true.

You can do it with visible(model) { ... }

I think that idea is far too complicated an limiting. Instead replace the attribute value you want to control  visible, readOnly ... with a function that evaluates the truthiness of the condition. Then it can control anything.


advertise Stream 9 more

let's put Stream 9 into our sample configs to advertise it since it's now available as a build and test target

we definitely have some stream examples in our configs, so closing this


Please update  '/consumers/'  to 'consumers' in Services/Consumer.php

updated '/consumers/' to 'consumers' .This makes it more flexible to use the kong admin url in a secure manner. The '/' in front of consumers overrides the admin uri path.

This is actually true of all the Services.


Add tasks for poisoning and checking for poison in packages.

Still having some build errors locally, so I want to see what this does on all legs.

@dagood and @dseefeld - this isn't completely ready yet, I'm still adding usage of the tasks to the build, but the tasks should be ready for a first look if you have time.

@dseefeld I think I've addressed most of Davis' comments if you want to take another look.

@dotnet-bot test OSX10.12 Release please (java.nio.channels.ClosedChannelException)


Upgrade to latest version of snapshot for the jwt-authorizer and add debug statements

 Upgrade to latest version of snapshot for the jwt-authorizer and add debug statements light-aws-lambda master


Clicking Plus causes open/close immediately

Because you have the onclick event for both the span and the icon it causes a double-click essentially. I would just leave the one on the span
For Reference
@inherits BlazoredSubMenuBase

    @Icon @Header

        @ChildContent

Fixed


Raspbian role fix

Running raspbian 5.4.51+ and getting the error:
FAILED! => {"msg": "The conditional check 'raspbian is true' failed. The error was: template error while templating string:
no test named 'true'. String: {% if raspbian is true %} True {% else %} False {% endif %}\n\nThe error appears to be in '/root/k3s-ansible/roles/raspbian/tasks/main.yml': line 11, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Activating cgroup support\n  ^ here\n"}
This proposed change fixes the playbook in my instance.

Overridden by https://github.com/k3s-io/k3s-ansible/pull/79


How to visualization of loss curve？

hi,could you tell me how to visualization the loss curve？TKS！ @jnhwkim @cclauss @temerick @severian

@jwyang

i have done it!

您好 请问您是如何做的


IndexError: list index out of range when running GP on OpenSuse

The problem is in the RV fortran models; both Keplerian and N-body. For some unknown reason the model hangs when the "return RV/RVo-c", flag is passed. But the GP needs the RVo-c, and thus one gets the error:
gps[i].log_likelihood(fit_results.o_c[fit_results.idset==i])
IndexError: list index out of range

Strangely, it works perfectly fine when the model is executed form the shell, while this problem does not exist on Ubuntu.

I cannot reproduce this problem anymore.... Closing


Changed divs to span to be WCAG complaint

Fix for #225

We'll need to see if this breaks CSS styling. Some common styles may be rely on the div within a span. This will decide whether we need to increment the major or minor version number to do the right thing by semantic versioning standards.


RuntimeError importing synthea dataset locally

Report
Running adata = ep.dt.synthea_1k_sample(encoded=True) or adata = ep.dt.synthea_1k_sample(encoded=False) gives
RuntimeError:
An attempt has been made to start a new process before the current process has finished its bootstrapping phase.
This probably means that you are not using fork to start your child processes and you have forgotten to use the proper idiom in the main module:
        if __name__ == '__main__':
            freeze_support()
            ...

    The "freeze_support()" line can be omitted if the program
    is not going to be frozen to produce an executable.

System: macOS Ventura 13.2.1 (22D68)
Version information
No response

Full error:
synthea.txt

This issue only occurs on MacOS. We're not sure why

Remove the whole data loader


某些特定词汇返回503？ 比如 announce

翻译的句子里 带有 announce  announcement 直接返503
这是啥奇怪问题

course:#- Advanced Topics in Modeling Health Care Decisions -  也会报错
随机拿走一个 Topics就能不会。。。

I tried it and it seems to be caused by your ** :#- **. Just remove it.


[Event Request] table 5902 "Service Line" - Event for trigger OnLookup() Field "No."

Can we change the following event for the "Service Line" table: OnOnLookup
            ///
            trigger OnLookup()
            begin
                OnOnLookup(Rec);
            end;
            ///-``

   [IntegrationEvent(false, false)]
    local procedure OnOnLookup(var Rec: Record "Service Line")
    begin
    end;

We cannot add a Lookup trigger because it disables the internal lookup defined by the table relation.
There are 2 alternative ways to have your own lookup:
•	extend page by adding lookup trigger
•	extend table relation property of the field to get needed lookup


nvarchar(MAX) gets truncated

nvarchar(MAX) field gets truncated to 2 characters.

ODBC call SQLGetData returned non-success: success with info (1)
state = '01004' (err=0) message = '[Microsoft][SQL Server Native Client 11.0]String data, right truncation'

Hi @heigos, this should be fixed with the latest version. Let me know if you have any further issues!

hi!
nvarchar(4000) works fine, but when I change that same column to nvarchar(MAX), it fails at executeFetch:

\tests\odbc.nim(335) executeFetch
\tests\odbc.nim(307) setupColumns
\tests\odbc.nim(295) getColDetails
\nim\lib\system\fatal.nim(49) sysFatal
Error: unhandled exception: value out of range [RangeDefect]


auto get monitor address online

Pull Request Test Coverage Report for Build 1242

0 of 0   changed or added relevant lines in 0 files are covered.
3 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.6%) to 62.595%

Files with Coverage Reduction
New Missed Lines
%

core/loadbalancer/filter.go
1
76.6%

core/config/cd_config.go
2
60.0%

Totals

Change from base Build 1241:
0.6%

Covered Lines:
4863

Relevant Lines:
7769

💛  - Coveralls


Remove workerGroup in registry

Purpose of the pull request
close #12157
Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Codecov Report

Merging #12217 (79aa27c) into dev (1a4d7a8) will increase coverage by 0.08%.
The diff coverage is 32.50%.

@@             Coverage Diff              @@
##                dev   #12217      +/-   ##
============================================
+ Coverage     39.44%   39.53%   +0.08%
+ Complexity     4142     4138       -4
============================================
  Files          1011     1011
  Lines         37845    37727     -118
  Branches       4345     4317      -28
============================================
- Hits          14929    14914      -15
+ Misses        21185    21082     -103
  Partials       1731     1731

Impacted Files
Coverage Δ

...uler/server/master/registry/ServerNodeManager.java
1.19% <0.00%> (+0.13%)
:arrow_up:

...phinscheduler/service/registry/RegistryClient.java
1.06% <0.00%> (+0.14%)
:arrow_up:

...inscheduler/server/worker/config/WorkerConfig.java
0.00% <0.00%> (ø)

...eduler/server/worker/task/WorkerHeartBeatTask.java
81.25% <71.42%> (+3.69%)
:arrow_up:

...r/server/worker/registry/WorkerRegistryClient.java
62.06% <80.00%> (+15.40%)
:arrow_up:

...duler/api/service/impl/WorkerGroupServiceImpl.java
60.83% <85.00%> (+14.51%)
:arrow_up:

...erver/master/processor/queue/TaskEventService.java
75.00% <0.00%> (-5.36%)
:arrow_down:

...eduler/api/dto/schedule/ScheduleCreateRequest.java
83.33% <0.00%> (-2.39%)
:arrow_down:

...dolphinscheduler/remote/future/ResponseFuture.java
81.96% <0.00%> (-1.64%)
:arrow_down:

...che/dolphinscheduler/common/utils/HadoopUtils.java
15.94% <0.00%> (-0.73%)
:arrow_down:

... and 20 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@DarkAssassinator @caishunfeng PTAL.

Hi @ruanwenjun  please add the details of pr description.


App force close on 7.1.2 Dirty Unicorns. Honor 5x

@75py  the bug can easily created. All permission were given to the app. First time app worked perfectly fine. But on the second time as video shows have error. The phone was dual sim and the option to ask for which sim is required to call was selected. logcat is attached.
beginning of crash
[ 07-17 14:51:33.578  5911: 5911 E/AndroidRuntime ]
FATAL EXCEPTION: main
Process: com.nagopy.android.callconfirm, PID: 5911
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nagopy.android.callconfirm/com.nagopy.android.callconfirm.view.ConfirmActivity}: java.lang.RuntimeException: phoneNumber contains illegal chars
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2684)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2745)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1492)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6208)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
Caused by: java.lang.RuntimeException: phoneNumber contains illegal chars
at com.nagopy.android.callconfirm.d.a.a(Unknown Source)
at com.nagopy.android.callconfirm.view.ConfirmActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:6684)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2637)
... 9 more
[ 07-17 14:51:34.973   356:  638 E/         ]
tfa98xx_open
[ 07-17 14:51:34.975   356:  638 E/         ]
tfa98xx_open 1 rev = 18, error = 0
[ 07-17 14:51:34.976   356:  638 E/         ]
tfa98xx_open 2 rev = 18, error = 0
[ 07-17 14:51:34.976   356:  638 E/         ]
Tfa98xx_Open err= 0
[ 07-17 14:51:34.979   356:  638 E/         ]
TFA98XX_STATUSREG status = d05f
[ 07-17 14:51:34.986   356:  638 E/         ]
TFA98XX_STATUSREG status = d05f
[ 07-17 14:51:34.992   356:  638 E/         ]
TFA98XX_STATUSREG status = d05f
[ 07-17 14:51:34.998   356:  638 E/         ]
TFA98XX_STATUSREG status = d05f
[ 07-17 14:51:35.006   356:  638 E/         ]
TFA98XX_STATUSREG status = d05f
[ 07-17 14:51:35.012   356:  638 E/         ]
TFA98XX_STATUSREG status = c05f
[ 07-17 14:51:35.013   356:  638 E/         ]
tfa98xx_close
[ 07-17 14:51:35.013   356:  638 E/         ]
tfa98xx_close handle = 0
[ 07-17 14:51:35.013   356:  638 E/tfa98xx  ]
device goes to stop success
[ 07-17 14:51:46.115  6083: 6083 E/AndroidRuntime ]
FATAL EXCEPTION: main
Process: com.nagopy.android.callconfirm, PID: 6083
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nagopy.android.callconfirm/com.nagopy.android.callconfirm.view.ConfirmActivity}: java.lang.RuntimeException: phoneNumber contains illegal chars
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2684)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2745)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1492)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6208)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
Caused by: java.lang.RuntimeException: phoneNumber contains illegal chars
at com.nagopy.android.callconfirm.d.a.a(Unknown Source)
at com.nagopy.android.callconfirm.view.ConfirmActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:6684)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2637)
Video error.zip

@sachoosaini Thank you for reporting.
I tried this bugfix but cannot reproduce it.
I don't know how to emulate a dual sim card device...
Anyway, I modified phone numbers validation. #9
Could you retry it in version 0.2.0?

Yes I will.... Changed ROM though... Will check
On Sat, Jul 22, 2017, 5:47 PM 75py<EMAIL_ADDRESS>wrote:

@sachoosaini https://github.com/sachoosaini Thank you for reporting.
I tried this bugfix but cannot reproduce it.
I don't know how to emulate a dual sim card device...
Anyway, I modified phone numbers validation. #9
https://github.com/75py/CallConfirm/pull/9
Could you retry it in version 0.2.0?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/75py/CallConfirm/issues/5#issuecomment-317179886, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AKdkGv1XEsW-IFUKiGwrZIuPuL2ThLg4ks5sQehEgaJpZM4OZvV3
.


A few fixes

point SourceFileResolver to current working directory, this way we won't fail on load resolution when running dotnet exec from other locations
suppress CS1701 and related diagnostics (see: https://github.com/dotnet/roslyn/issues/5501)
removed dead DLLs
when using scriptProjectProvider, use netcoreapp1.0 for the time being

Nice work 👍  I'm merging this if that is okay with you?

thanks


feat(tab): allow active index string

Allow Tab index to be a string
Closes #5687
Closes #5577

There are two other isNumber checks in the tabs component which did not have isString checks added from the pull request I started with.
@wesleycho, did we need to add some is string checks there as well?

Here is the plunker forked with the fix
I haven't been following along really, but I'm not sure it is actually working. Was the previous PR ready to go besides test, or should I dig into this deeper?

@deeg I created a PR to demo my thoughts on how to approach this is it was easier than trying to write it out.  Here is a plunk with the changes in action.

@RobJacobs, sweet thanks for doing that!

@wesleycho, @RobJacobs, is everyone good with Rob's solution in the commit referenced on this PR?
If so I can incorporate his changes into this PR to get this closed.

@deeg Like I mentioned, in the uibTab directive - link function where we try and add an index if none is defined needs to be re-worked.  Right now, it is assumed the indexes are numbers, but we may want to generate a random string (4 char?) and check that it is not already assigned to another tab index.  Or if you can think of a better way?

@Foxandxss, @wesleycho, i don't want to lose momentum on this PR - do you guys have any thoughts to add here regarding dynamic ID generation?  We do this already in other components (datepicker and accordion).

+1

@mathielen please do not just +1 issues.  It adds no intrinsic value and only clutters up the thread.  If you would like to show your support for an issue please use GitHub's emoji feature.  It's the smiley icon next to the pencil in the upper right corner.
This is a work in progress and is nearly complete.

@deeg can you make the needed adjustments and answer my question above?
With #5732, the 1.3 release work is complete, so if we want this in, it needs to be ready soon.

@wesleycho, this PR wasn't working. I can make the changes you asked for and incorporate @RobJacobs's changes which are better and actually work, but there was still one outstanding question.
I believe it was about the auto generation of the index. Barring that answer, I don't mind cleaning all this up and getting it ready to go.

@deeg, were you still working on a fix for this or did we abandon this feature?

@icfantv I thought I was still waiting on a decision. I'm happy to wrap this up, but @RobJacobs had a branch with a better fix and a question, and I thought we were waiting for feedback.

oh.  hmmm.  ok.  @RobJacobs do you recall what, if anything, we're waiting for?  thanks.

Just wanted some feedback on what would be the best approach for the indexes the directive auto generates.  Use case is if no index is defined on the tab, the tabset will never set it to active.  Previously, the auto generated tab index made the assumption the index would be a number and found the max number in the index collection and added 1.  Now with index as a string, that won't work...

Sorry I didn't mean to close this, I deleted the branch by mistake. Will re-open once we decide on a path forward.

it might be too late for this, but in the ng2 port we're going to use the actual tab reference as the "index" - what do you think about that instead or in addition to?


More unit tests for piped around kubernetes deployment

What would you like to be added:
Why is this needed:

/assign @nakabonne


Main

Hi! I'm a 15 year old engineer. I really like your project & passion for this project. Appreciate your work buddy.. I too have a Game engine, Hexa, which I wrote in Python but now I'm moving it to C++. I just wanna say thanks to you cuz your project may help me as I'm new to SDL2. Best of luck for your future endeavours.

Hi! I'm a 15 year old engineer. I really like your project & passion for this project. Appreciate your work buddy.. I too have a Game engine, Hexa, which I wrote in Python but now I'm moving it to C++. I just wanna say thanks to you cuz your project may help me as I'm new to SDL2. Best of luck for your future endeavours.

Hi, thank you for your feedback, it gives me motivation! I saw your project and your programming language Glass, will look forward for it. You can try reaching me out if you need some help with SDL2. Wish you luck with your current project and your next projects! (BTW: I'm a 13 year old game developer)

Hi! I'm a 15 year old engineer. I really like your project & passion for this project. Appreciate your work buddy.. I too have a Game engine, Hexa, which I wrote in Python but now I'm moving it to C++. I just wanna say thanks to you cuz your project may help me as I'm new to SDL2. Best of luck for your future endeavours.

Hi, thank you for your feedback, it gives me motivation! I saw your project and your programming language Glass, will look forward for it. You can try reaching me out if you need some help with SDL2. Wish you luck with your current project and your next projects! (BTW: I'm a 13 year old game developer)

Cool!


Update vite_rails.gemspec to support Rails 8

Description 📖
This pull request
Background 📜
This was happening because
The Fix 🔨
By changing
Screenshots 📷

Addressed in this commit.
I'd like to avoid open-ended requirements. A breaking change in railties for the APIs this gem uses seems unlikely, but it's possible.


Fix timestamp issues in V2 UI modals

Problem:
Comparing the V1 to V2 view of an SRKW sighting that came in around 13:00 (GMT-800) on 20 Nov 24--

and then examining the created and ssemmi_date_added fields for that sighting in the API response to GETTING the recent sightings --
{"ssemmi_id":"SPOTTER 213564",
"data_source_name":"Spotter-API",
"data_source_entity":"Conserve.io",
"data_source_id":213564,
"created":"2024-11-20 20:50:00",
"photo_url":"",
"no_sighted":6,
"latitude":47.59644,
"longitude":-122.47228,
"type":"Orca",
"data_source_witness":"cascadiaWebMap",
"trusted":1,
"data_source_comments":"[Orca Network] 5-8 orcas southbound (Amy Fowler)",
"profile":{"name":"spotter"},
"entry_id":"d89bb673-23f0-44d0-ad4b-c63bf7db692e",
"ssemmi_date_added":"Wed Nov 20 2024 21:02:40 GMT+0000 (Coordinated Universal Time)",
"submitter_did":"did:ethr:0x20fd1096eaafb242a88272e20d7a77b552fa6cd8",
"signature":{"r":"f202631b1c740c9fa963a256ace48862063c71be81a0fc5bbc92f6f31c88ab8e",
                      "s":"300e6a5f5666dd9891e080e8b64ef76cb95e40166a7675667a50f4d086f4fba0"}}

I have some suggestions and identify two likely bugs and a typo:

Rather than Time of sighting I prefer the less specific Time of observation or more briefly Observation time -- mainly because Acartia aggregates acoustic occurrences ("hearings") in addition to visual observations ("sightings"). Plus there are likley other types of occurrence observations coming, e.g. thermal camera and radar detections...

The modal should display the "created":"2024-11-20 20:50:00" value at the top since that is the time the observation of Nature was made. Instead, it seems the modal is displaying the "ssemmi_date_added":"Wed Nov 20 2024 21:02:40 GMT+0000 (Coordinated Universal Time)" value -- which is fine to display, but is of secondary importance. (If there aren't other strong opinions from the UX/design team, @robert-ohurley, I'd recommend putting the created datetime near/at the top as an Observation time: and the ssemmi_date_added datetime near the bottom as a Date added: value.

Rather than (PT), the ideal way to indicate that a timestamp is local would be to either type (PDT/PST) or better yet (GMT -800) or (GMT-700) depending on whether Seattle is under daylight-savings time or not, seasonally.

The time conversion to local time seems to be off by 4 hours? (In this example the modal phrase Time of Sighting (GMT): 2024-11-20 21:02:40 was accurate and optimal (except I'd prefer Observation time (GMT)), but the modal phrase Time of Sighting (PT): Thu, 21 Nov 2024 09:02:40 should have displayed the local time 13:02:40 instead of 09:02:40.

Proposed solution

Okay, to summarise, is this correct?

Time of sighting renamed to Observation time
Observation time reflecting the created field (positioned at the top).
Date added reflecting the ssemmi_date_added field (positioned at the bottom).
Indicate that a timestamp is local with (PDT/PST)
Additionally, in adding Observation time (GMT) to the popup, would this just be the created field + a 8 hour offset?

@robert-ohurley 1-3 are correct
Re 4-5 -- my understanding is that all datetime stamps in Acartia are stored in UTC. Do you concur @aalaydrus ?
If so, then it would be ideal to change your summarization of 4 and 5 thusly:

To display the local time (per number 2), first use a Python library like pytz to convert from UTC to the Pacific time zone. This is better than just subtracting 8, because part of the year in the Pacific time zone in Seattle you should instead subtract 7... Having allowed the library to figure out when you should account for daylight savings or not, display the resulting local datetime stamp with the relevant zone annotation. You could use PDT or PST as you suggested, but I'd also be happy with you appending GMT-0800 or GMT-0700.

Yes, but you should be able to just write the datetime from the database without conversion, and then clarify it is in GMT or append a Z


exp/services/ledgerexporter: Guide to installing and running ledger exporter

PR Checklist
PR Structure

[ ] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[ ] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[ ] This PR's title starts with name of package that is most changed in the PR, ex.
services/friendbot, or all or doc if the changes are broad or impact many
packages.

Thoroughness

[ ] This PR adds tests for the most critical parts of the new functionality or fixes.
[ ] I've updated any docs (developer docs, .md
files, etc... affected by this change). Take a look in the docs folder for a given service,
like this one.

Release planning

[ ] I've updated the relevant CHANGELOG (here for Horizon) if
needed with deprecations, added features, breaking changes, and DB schema changes.
[ ] I've decided if this PR requires a new major/minor version according to
semver, or if it's mainly a patch change. The PR is targeted at the next
release branch if it's not a patch change.

What
This PR is part of hubble-382 which includes adding instructions on how to run the ledger exporter and explaining the command line options to the public docs. Currently, I am adding the installation and running guide to the README with the goal of keeping all necessary documentation for setting up and running the ledger exporter close to the code.
Additional docs, such as a developer guide is included in a separate PR. There will also be a guide for creating consumer apps using the data exported by the ledger exporter. Once all the documentation is in place, we can discuss and decide what information should be included in the public documentation and what can remain in the github repo.
Why
HUBBLE-382
Known limitations
N/A

In the CLI section I like how you have added sections describing the usage and arguments for each command. However, I think the descriptions for the fill-gaps and append commands would be better left as is. There is a lot of detail in the command descriptions that @sreuland wrote in #5335 that appears to be edited away in this PR.
For example, the original description for append mode mentions the precondition for resumability:

This feature requires ledgers to be present on the remote data store for some (possibly empty) prefix of the requested range and then absent for the (possibly empty) remainder.

I think it's important we keep this info in the readme because that is the only place where we communicate the prerequisite

You're right, It does leave out the following points for the append  mode because and mainly because I was unsure of its meaning:
- This feature requires ledgers to be present on the remote data store for some (possibly empty) prefix of the requested range and then absent for the (possibly empty) remainder.
What does this precondition mean? Does it mean that append mode cannot be used if there is no pre-existing data?
- It’s guaranteed that ledgers exported during appendmode fromstartand up to the last logged ledger fileUploaded {ledger file name} were contiguous, meaning all ledgers within that range were exported to the data lake with no gaps or missing ledgers in between.
Regarding the phrase “and up to the last logged ledger file Uploaded {ledger file name},” does this refer to the console logs? Also, if there are no gaps then why is the scan-and-fill command required?
It might be more useful to provide guidelines on when to use each mode for the user but I am not entirely clear on them myself.  Perhaps you or @sreuland  could provide more insights into this? Thanks!

What does this precondition mean? Does it mean that append mode cannot be used if there is no pre-existing data?

Running append on the range [s, e] (where s <= e) will efficiently export all the ledgers in the range by skipping ahead to the last exported ledger in the range. For example if the range is [2, 100] and we have already exported [2, 50], append will skip ahead to ledger 51 and start the export process from that point.
However, append is only guaranteed to export export all the ledgers in the requested range if the data lake satisfies the following precondition:

This feature requires ledgers to be present on the remote data store for some (possibly empty) prefix of the requested range and then absent for the (possibly empty) remainder.

I mentioned an example above where the requested range is [2, 100] and we have already exported [2, 50]. In this example, the already exported prefix is [2, 50] and the absent remainder is [51, 100], thus the precondition is satisfied.
Here are some other scenarios where the precondition is satisfied:

the data lake is empty. The already exported prefix is empty because the data lake has no ledgers. The absent remainder is [2, 100] because all the ledgers from the requested range are missing from the data lake.
the data lake already contains ledgers [2, 100]. The already exported prefix is the entire requested range [2, 100]. The absent remainder is empty because all the ledgers have already been exported.

Here are some scenarios where the precondition is not satisfied:

the data lake contains ledgers [10, 70]. [10, 70] is not a prefix of [2, 100]. A prefix of [2, 100] must start at ledger 2.
the data lake contains ledgers [2, 70] and [95, 100]. [2, 70] is a prefix of [2, 100]. However, all the ledgers following the prefix must be absent in order for the precondition to be satisfied ("...and then absent for the (possibly empty) remainder"). The remainder [71, 100] is not absent because the data lake contains ledgers [95, 100].

Because the precondition is not satisfied in the 2 cases above, we cannot guarantee that append will export all the ledgers in the requested [2, 100] range. However, scan-and-fill will be able to guarantee that all the ledgers in the requested [2, 100] range will be exported because it will always iterate through every ledger in the requested range checking to see if each one is present.

Regarding the phrase “and up to the last logged ledger file Uploaded {ledger file name},” does this refer to the console logs? Also, if there are no gaps then why is the scan-and-fill command required?

That part of the documentation is essentially stating that, given a requested ledger range [s, e], if the append precondition was satisfied on [s, e] before running append --start s --end e, it is guaranteed that [s, e] will still satisfy the  append precondition after running append no matter how ledger exporter terminates. In other words, even if append crashes unexpectedly at any point during the export process, it will never introduce any gaps that would violate the append precondition.

Also, if there are no gaps then why is the scan-and-fill command required?

This property of append only guarantees that the append precondition is maintained if the append precondition was satisfied before running append. There are many scenarios where scan-and-fill is not needed. But it's still possible to modify a data lake in such a way that the append precondition is not satisfied. For example:

Manually deleting a prefix of [s, e] ledgers from the data lake would break the precondition.
Manually deleting ledger(s) in the middle of [s, e] would break the precondition.
If you run append on [2, 100] and then on [150, 200], we know that the precondition is satisfied on  [2, 100] and [150, 200]. However, if you consider the range [2, 200] the precondition is not satisfied because there is going to be a gap in the middle.

What does this precondition mean? Does it mean that append mode cannot be used if there is no pre-existing data?

Running append on the range [s, e] (where s <= e) will efficiently export all the ledgers in the range by skipping ahead to the last exported ledger in the range. For example if the range is [2, 100] and we have already exported [2, 50], append will skip ahead to ledger 51 and start the export process from that point.
However, append is only guaranteed to export all the ledgers in the requested range if the data lake satisfies the following precondition:

This feature requires ledgers to be present on the remote data store for some (possibly empty) prefix of the requested range and then absent for the (possibly empty) remainder.

I mentioned an example above where the requested range is [2, 100] and we have already exported [2, 50]. In this example, the already exported prefix is [2, 50] and the absent remainder is [51, 100], thus the precondition is satisfied.
Here are some other scenarios where the precondition is satisfied:

the data lake is empty. The already exported prefix is empty because the data lake has no ledgers. The absent remainder is [2, 100] because all the ledgers from the requested range are missing from the data lake.
the data lake already contains ledgers [2, 100]. The already exported prefix is the entire requested range [2, 100]. The absent remainder is empty because all the ledgers have already been exported.

Here are some scenarios where the precondition is not satisfied:

the data lake contains ledgers [10, 70]. [10, 70] is not a prefix of [2, 100]. A prefix of [2, 100] must start at ledger 2.
the data lake contains ledgers [2, 70] and [95, 100]. [2, 70] is a prefix of [2, 100]. However, all the ledgers following the prefix must be absent in order for the precondition to be satisfied ("...and then absent for the (possibly empty) remainder"). The remainder [71, 100] is not absent because the data lake contains ledgers [95, 100].

Because the precondition is not satisfied in the 2 cases above, we cannot guarantee that append will export all the ledgers in the requested [2, 100] range. However, scan-and-fill will be able to guarantee that all the ledgers in the requested [2, 100] range will be exported because it will always iterate through every ledger in the requested range checking to see if each one is present.

Regarding the phrase “and up to the last logged ledger file Uploaded {ledger file name},” does this refer to the console logs? Also, if there are no gaps then why is the scan-and-fill command required?

That part of the documentation is essentially stating that, given a requested ledger range [s, e], if the append precondition was satisfied on [s, e] before running append --start s --end e, it is guaranteed that [s, e] will still satisfy the append precondition after running append no matter how ledger exporter terminates. In other words, even if append crashes unexpectedly at any point during the export process, it will never introduce any gaps that would violate the append precondition.

Also, if there are no gaps then why is the scan-and-fill command required?

This property of append only guarantees that the append precondition is maintained if the append precondition was satisfied before running append. There are many scenarios where scan-and-fill is not needed. But it's still possible to modify a data lake in such a way that the append precondition is not satisfied. For example:

Manually deleting a prefix of [s, e] ledgers from the data lake would break the precondition.
Manually deleting ledger(s) in the middle of [s, e] would break the precondition.
If you run append on [2, 100] and then on [150, 200], we know that the precondition is satisfied on  [2, 100] and [150, 200]. However, if you consider the range [2, 200] the precondition is not satisfied because there is going to be a gap in the middle.

Oh, so the precondition is not necessarily for running in append mode; it's a precondition for guaranteeing an export without gaps. The phrase "This feature requires ledgers to be present" confused me into thinking that unless the condition is met, you cannot run in append mode. Now it makes sense. Thanks for explaining it in depth 🙏  I'll add the original description back.


Cache improvements

This PR

uses the matching rules for restore_keys to be able to update the cache and thus fixes #104.
It also adds caching for the conda environment (which uses mamba now) in a separate cache, thereby speeding up the environment creation.
I thereby removed the python version from the build matrix, because mamba update seems to care only about what's written in environment.yml and we likely won't build the thing with different python versions concurrently.
This change only upload the html part of the build output, which speeds up artifact creation and reduces required disk space. I don't think we ever used anything else, so it seems to be a more sensible choice.

In total, a build which fully utilizes the cache is now below 2 minutes or so and this number will often only increase by the amout required to execude the changed notebooks.

As we ar currently struggling to run just one copy of the book, I guess testing multiple versions is still quite a bit away. If we'd want to combine testing multiple versions with caching properly, we likely would also have to pin all the dependency versions (currently it could happen that some cached notebook content has been executed using a different version of some libraries than newly executed content). I guess the current behaviour is quite ok though. At least we are checking that the notebooks work in principle. And if they break, the most likely reason is, that data moved away...
For the environment.yml, it currently says python>=3.9, which mamba interprets as "get the newest".
Thanks for reviewing! 😄


[FeatureRequest] Create a markov-chain generator for vilebot

Vilebot will feed on what people has said before in channels to generate phrases using a markov-chain.

Whoa forgot to close this issue.

re-opening, we want the markov-chains!!!

:+1:  VileBot has markov chains now. They can be accessed with the !speak command. I just haven't pulled them from my fork yet.

If it's not in the public repo it doesn't exist, feel free to close the issue ones it's been merged.

Markov features have been merged into oldterns/VileBot.


fix: force library bundling for iOS and macOS in release mode

Hi, I just noticed that in release mode the static library was getting stripped for iOS and macOS.
I can't quite explain why, but this exact change with separating a method from a variable seems to do the trick. Note: setting the variable directly to the result of dummy_... does not work.

I think so, the previous method may still be stripped if the compiler is smart (or silly) enough ;)


Stepchain: sort out duplicate outputModules

As Stepchain is now, it does not support KeepOutput:True for different steps using exactly the same outputModule (not matter the datatier used). The problem is that merge jobs are created for all files created under a specific outputModule (including all datatier).

How can different steps have exactly the same output ?

not the same output, the same output module (e.g. RAWSIMoutput). This template simulates this problem:
https://github.com/dmwm/WMCore/blob/master/test/data/ReqMgr/requests/DMWM/StepChain_MC.json

Ah, so it's a naming issue in the CMSSW configuration ?

Well, WMCore reuses the names internally. Can we somehow attach the step name in the identifiers WMCore uses ? Only other solution I see is to tell people that configs in stepchains need unique output identifier across all steps, which I don't think will fly.

No, it's a problem on our end. I still have to investigate it further, but quickly explaining what happened in my tests.

The wmbs subscriptions are created for Task+outputModule (remember, stepchains have only one processing/production task)
Step1 produces output files "for" RAWSIMoutput, with GEN-SIM tier
Step2 produces output files "for" RAWSIMoutput too, however with GEN-SIM_RAW tier
the agent then, creates merge job(s) for that subscription, and the files available for it belong both to the GEN-SIM and GEM-SIM-RAW tiers (!! crash !!)

Ok, so the agent only used the name of an output module, as I expected. Solutions still stand. Either we change that to also take into account step name or we enforce unique output identifier across all steps.

Can we somehow attach the step name in the identifiers WMCore uses ?

If I answer this, then I have a fix, which I don't yet :-)

Only other solution I see is to tell people that configs in stepchains need unique output identifier across all steps, which I don't think will fly.

Nope, it did not fly! Folks have tagged already StepChain as incomplete...

maybe you want to lower this down from high priority, as it was agreed that we will not get this working.

 Stepchain: sort out duplicate outputModules

And for my information, the reason jobs from different datatiers ran under the same merge job is that they were associated to the same fileset, since the fileset follows the taskName + outputModule convention, like
['/TestWorkload/GENSIM/DIGIMergeRAWSIMoutput/merged-Merged',
 '/TestWorkload/GENSIM/DIGIMergeRAWSIMoutput/merged-logArchive',
 '/TestWorkload/GENSIM/GENSIMMergeRAWSIMoutput/merged-Merged',
 '/TestWorkload/GENSIM/GENSIMMergeRAWSIMoutput/merged-logArchive',
 '/TestWorkload/GENSIM/RECOMergeAODSIMoutput/merged-Merged',
 '/TestWorkload/GENSIM/RECOMergeAODSIMoutput/merged-logArchive',
 '/TestWorkload/GENSIM/RECOMergeRECOSIMoutput/merged-Merged',
 '/TestWorkload/GENSIM/RECOMergeRECOSIMoutput/merged-logArchive',
 '/TestWorkload/GENSIM/unmerged-AODSIMoutput',
 '/TestWorkload/GENSIM/unmerged-RAWSIMoutput',
 '/TestWorkload/GENSIM/unmerged-RECOSIMoutput',
 '/TestWorkload/GENSIM/unmerged-logArchive',
 'TestWorkload-GENSIM-1c749bf27f4b19a3b443e91e3cf25363']

where we - of course - cannot create two:
 '/TestWorkload/GENSIM/unmerged-RAWSIMoutput',
thus the only way forward is changing how the fileset naming is created. I have a "almost working version" which also adds the datatier to the fileset name.
Other possibility would be adding the cmsRun step (cmsRun1, cmsRun2), adding the stepname would be complicated because that's only available for StepChains...
@ticoann @ericvaandering if you have an strong opinion about any of those, please let me know before it's too late :)

Fileset names are just arbitrary placeholders in WMBS, right? From what I've seen on what I'm working on, if you don't name them they just get a UUID.
I don't understand how adding the data tier helps. It's already there in GENSIM, right?

Not really, filesets are named after workflow + task name + (merge or unmerge) + output module.
Only the top level fileset is named with a UUID (if there is not input data), otherwise the block name is appended to it (or the dataset?)
GENSIM in the example above is just my task name (actually, StepName for the first step (Step1)).


Implement tab reload on token message

When the token is sent from the website to the extension, reload all the eksi sozluk pages so that the button is appended to the DOM.
source
As simple as 👇
chrome.tabs.query({'url': 'https://eksisozluk.com/*'}).then(tabs => tabs.forEach(tab => chrome.tabs.reload(tab.id)))

Requires tabs permission.

Done in #3


Intent Classification with Rasa and Spacy

Proposed title of article
Intent Classification with Rasa and Spacy
Introduction paragraph (2-3 paragraphs):
Intent classification is the automated categorization of text data based on customer goals. Intent classification uses machine learning and natural language processing to automatically associate words or expressions with a particular intent. For example, a machine learning model can learn that words such as buy or acquire are often associated with the Intent to Purchase.
Intent recognition forms an essential component of chatbots and finds use in sales conversions, customer support. This has been applied in many chatbot systems to engage customers thus knowing the needs of customers. Within a chatbot, intent refers to the goal the customer has in mind when typing in a question or comment.
In this tutorial, we shall use Rasa and Spacy in building our model.
Rasa is a tool to build custom AI chatbots using Python and natural language understanding (NLU). Rasa provides a framework for developing AI chatbots that uses natural language understanding (NLU). It also allows the user to train the model and add custom actions
Key takeaways:

What is Intent Classification.
Difference between NLU and NLP.
Installing Rasa and Spacy.
Building our customer-specific model.

References:
Please list links to any published content/research that you intend to use to support/guide this article.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Good afternoon and thank you for submitting your topic suggestion. @kelvinkimani501
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

Great topic 🚀 , make sure it matches the following:

Adds value beyond what is in the official docs and what is covered in other blog sites.
To avoid potential article closure, it should not overlap with existing EngEd articles or incoming topic suggestions.

Please reference any relevant EngEd articles in yours and build a unique project - Approved. @kelvinkimani501

Closed #3632 via #3790


Add brucewilcoxii's file

created a branch, created a file and made a commit, and opened a pull request

Your text