error NU3004

I started getting the following error:
error NU3004: Package 'MSTest.TestAdapter 1.1.18' from source 'https://api.nuget.org/v3/index.json': This repository indicated that all its packages are repository signed; however, this package is unsigned
My guess is that it is related to this: https://docs.microsoft.com/en-us/nuget/api/repository-signatures-resource.
Is there a way to ignore the signatures? Or, in general, what's the suggested solution?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0b256dc4-c4ad-c115-f4e2-40310bc3505a
Version Independent ID: 0b993779-65a2-6092-4047-2fc2ec16170b
Content: dotnet restore command - .NET Core CLI
Content Source: docs/core/tools/dotnet-restore.md
Product: dotnet-core
Technology: dotnet-cli
GitHub Login: @mairaw
Microsoft Alias: mairaw

Any news?

Running again in the same issues from an Azure DevOps pipeline. I would appreciate an update, at least understanding if it is a real problem or just an error from my side.

Kindly, I have the same issue through Azure DevOps. any suggestion ?

Sorry for the delay.
This is covered in this Stack Overflow post. Does this help?
https://stackoverflow.com/questions/57073996/dotnet-restore-error-error-nu3004-the-package-is-not-signed
@KathleenDollard @dsplaisted should we add something about this in the dotnet restore docs?

I think there should be a NuGet doc page on this if there isn't already, and if necessary we should link to it from the dotnet restore docs.  However, since it can happen with pretty much any CLI operation, I'm not sure if the link will be necessary.  A page in the NuGet docs with the error code might be enough for people to find it.

A page in the NuGet docs with the error code might be enough for people to find it.

There is a page in the NuGet docs:  https://docs.microsoft.com/nuget/reference/errors-and-warnings/nu3004


Crawlutils cleanup and tests

Cleaned up crawlutils.py (and some modules surrounding it) and added unit and functional tests. While doing that, got rid of some unused functionality.
Signed-off-by: Ricardo Koller<EMAIL_ADDRESS>

Current coverage is 90.80% (diff: 86.36%)

Merging #135 into master will increase coverage by 3.00%

@@             master       #135   diff @@
==========================================
  Files            22         22
  Lines          2450       2337   -113
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits           2151       2122    -29
+ Misses          299        215    -84
  Partials          0          0

Powered by Codecov. Last update a3b68cd...e876dad


add buttons for navigation

Add buttons for navigation through the stories would be helpful. Prev/next/exit, I think they are enough
And, what do you think about auto-switch between stories?
Removing the color-border around the profile pic when the story is already viewed.
I'm learning more about chrome extensions and I'll try to help with these things!

Added next/previous buttons in https://github.com/CaliAlec/ChromeIGStory/commit/69b8c3b6f77923e60717be6a0b67737e534a7ced and removed the color-border for viewed stories in https://github.com/CaliAlec/ChromeIGStory/commit/7cfb365ee0447d291a72cf9832d254d6e986a4d6


Move rpc and rpc_id implementations back to header

Fixes this concern: https://github.com/godotengine/godot/pull/63049#discussion_r935040502
StackOverflow on why this is needed (TL;DR templates must be in header): https://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file

I think the reason why this wasn't causing much issues in the engine is right now there are no engine components that use RPCs.

Thanks!


Nuxt 3.7.0 slow initialization in DEV mode

Environment

Operating System: Windows_NT
Node Version:     v18.14.0
Nuxt Version:     3.7.0
CLI Version:      3.7.3
Nitro Version:    2.6.2
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      -
Runtime Modules:  -
Build Modules:    -

Reproduction
https://github.com/AloisSeckar/demos-nuxt/tree/main/nuxt-simple
Describe the bug
After updating package.json dependency to "nuxt" : "3.7.0" my projects immedately start suffering from extremly long loading times when dev server is restarting or after refreshing the page in browser.
I linked my simple Nuxt starter, where it is happening as well. But so far I experienced the very same behavior in every project (4 different on 2 machines).
This is how my localhost:3000 gets rendered with 3.6.5:

And this is the very same simple site after I just change Nuxt verson to 3.7.0:

No errors or messages in the console nor the terminal (I am using VS Code for development). It just takes much, much longer to render the page.
I have noticed https://github.com/nuxt/cli/issues/109 but trying to run npm run dev --host <IP_ADDRESS> (or any other suggested --host option) I ended up with only NuxtWelcome component rendered instead of my actual application. Also announced fix in CLI 3.7.3 doesn't seem to fix things for me :(
Additional context
No response
Logs
No response

too slow for dev building.
Nuxi 3.6.5                                                                                08:55:06
Nuxt 3.6.5 with Nitro 2.6.0                                                                                08:55:06
                                                                                08:55:11

                                                                                08:55:35

 WARN  warning:                                                                                08:55:35
D:/workspace/go/src/snowdream.tech/vue-nuxt-element-template/components/Sidebar.vue
10 |  import { useAppStore } from "@/stores/app";
11 |  import { useSettingsStore } from "@/stores/settings";
12 |  import variables from<EMAIL_ADDRESS>   |                         ^                                                                                08:55:35
13 |  const _sfc_main = /* @__PURE__ */ _defineComponent({
14 |    __name: "Sidebar",
Default and named imports from CSS files are deprecated. Use the ?inline query instead. For example: import variables from "@/styles/variables.scss?inline"
  Plugin: vite:import-analysis
  File: D:/workspace/go/src/snowdream.tech/vue-nuxt-element-template/components/Sidebar.vue

✔ Nitro built in 51288 ms                                                                                nitro 08:56:35
ℹ ✨ new dependencies optimized: msw/node                                                                                08:56:37
ℹ ✨ optimized dependencies changed. reloading                                                                                08:56:37
ℹ Vite client warmed up in 71019ms                                                                                08:56:38


bzip3: 1.2.0 -> 1.2.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/kspalaiologos/bzip3/releases.
meta.description for bzip3 is: "A better and stronger spiritual successor to BZip2"
meta.homepage for bzip3 is: "https://github.com/kspalaiologos/bzip3"
meta.changelog for bzip3 is: "https://github.com/kspalaiologos/bzip3/blob/1.2.1/NEWS"
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.2.1 with grep in /nix/store/cqxcy750wcxmjsr8833yn801hp6wnjsj-bzip3-1.2.1-bin
found 1.2.1 in filename of file in /nix/store/cqxcy750wcxmjsr8833yn801hp6wnjsj-bzip3-1.2.1-bin

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
bzip3

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/cqxcy750wcxmjsr8833yn801hp6wnjsj-bzip3-1.2.1-bin \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A bzip3 https://github.com/r-ryantm/nixpkgs/archive/5f2711efbb9adf90ee139acf03e9690fcef8284d.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/cqxcy750wcxmjsr8833yn801hp6wnjsj-bzip3-1.2.1-bin
ls -la /nix/store/cqxcy750wcxmjsr8833yn801hp6wnjsj-bzip3-1.2.1-bin/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

bzip3

Maintainer pings
cc @dotlambda for testing.

Result of nixpkgs-review pr 200608 run on x86_64-linux 1

1 package built:

bzip3


Fix devcontainer dependency issue

This error shows when trying to open the devcontainer:
#0 29.70   Attempting uninstall: distlib
#0 29.71     Found existing installation: distlib 0.3.3
#0 29.71 ERROR: Cannot uninstall 'distlib'. It is a distutils installed project
and thus we cannot accurately determine which files belong to it which would lea
d to only a partial uninstall.
------
failed to solve: executor failed running [/bin/sh -c python3 -m pip install --up
[2022-08-10T17:31:59.138Z]
grade pip &&     pip install pre-commit]: exit code: 1

Not sure what changed to cause this, but it seems like something external to our code. To fix this, we could try using a virtual environment within the Docker container or redoing the container setup to be based on a different image.

I noticed the same issue in MobiMart, hence why I previously activated a venv.
Moving to the python:3.10 image and just installing ruby/Jekyll in there seemed... cleaner?


What to do with Admin Interface of token?

As we've previously discussed in https://github.com/stellar/rs-soroban-sdk/pull/1012#discussion_r1240471802, the admin interface for the stellar asset contract bleeds into the token interfaces defined in the SDK. In #1012 we split the admin interface into a separate trait, but it is still present and blurs the line between what is the standard token interface and what is not.

On the one hand this is extremely convenient to have the admin interface since most tokens are likely to be stellar asset contracts, at least for a while. We could keep it as it is.

We could distinguish it by changing the AdminInterface's name to StellarAssetAdminInterface.

For example:

https://github.com/stellar/rs-soroban-sdk/pull/1015


Bug Report: 1.1.0 windows portable version download, virus detected

Describe the bug
Downloading the 1.1.0 windows portable version is detected as virus.
To Reproduce

Go to Releases
Go to 1.1.0
Click to download Pomatez-v1.1.0-portable.exe

Expected behavior
The executable downloads without issue
Actual behaviour
The download fails because of virus detection
Screenshots

Desktop (please complete the following information):

Browser: Chrome 95.0.4638.69 (Official Build) (64-bit)
OS: Windows 10
Antivirus software: Kesperky Security Cloud <IP_ADDRESS>1 (g) [with up to date virus definitions, can't find a version for that, download attempt time: 2021.11.17. 12:14]

yes, Emsisoft says the same. Confirming it. Scary to use :)

Will take a look into that. We may need to update the installer libs e.g. electron builder as it may be old code from those being detected.

Is this still the case? I believe this was due to a tool inside electron builder.


Reorganized codebase & added draft 10 support

In order to be able to extend this websocket protocol implementation in the future at all i took all the draft specific code and put it into the package net.tootallnate.websocket.drafts
The rest of the library only deals with generalized classes like
Handshakedata, HandshakeBuilder or Framedata
That means that for every new draft only one class has to be touched!
Unfortunately some of the draft specific code could not be directly moved so that the older drafts 75 and 76 are not usable without fuhrer work.
However i added the draft 10 implementation including full framing support.
I tested with latest Crome and Firefox using my own js scripts and http://websocket.org/echo.html

Hey @Davidiusdadi! This looks nice. I would like to do some testing and then I will merge. Thanks!

Hey thanks again. Merged!


[Log View] Filter parameters should be stored in user tags

This issue covers the following requirements:

[REQ_LOGS_019] Filter parameters should be stored in user tags

For user undefined NAN in calendars.

After logout/login the filters ate not saved.
Steps:

Login by user
Go to VMs logs and set vm filter
Logout and Login one more time

Expected: vm is selected
Actual: no vm selected


Should we permit top-level definitions with 'let'?

In OCaml and F#, top-level definitions are made with let:
let pi = 3.14159265358979323846264338327950288419716939937510
let gauss x = exp(- 0.5 *. x *. x) /. sqrt(2. *. pi)

In Futhark, we use val for values and fun for functions.  This works OK for now, but will become confusing once we get higher-order functions, as suddenly you can define functions with val too.
Should we support add OCaml/F#-like let declarations at top-level?

Can "let" be elided altogether?
On Fri, Mar 10, 2017 at 1:17 PM, Troels Henriksen<EMAIL_ADDRESS>wrote:

In OCaml and F#, top-level definitions are made with let:
let pi = 3.14159265358979323846264338327950288419716939937510
let gauss x = exp(- 0.5 *. x *. x) /. sqrt(2. *. pi)
In Futhark, we use val for values and fun for functions. This works OK
for now, but will become confusing once we get higher-order functions, as
suddenly you can define functions with val too.
Should we support add OCaml/F#-like let declarations at top-level?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/HIPERFIT/futhark/issues/316, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAo8j8gW68grxFz7j5kQ9QKN7Jl6UNdYks5rkT9PgaJpZM4MZUhl
.

No, that would cause ambiguities.  Should
f x = x
g x = y

be seen as a definition of functions f x = x and g x = y, or a function f x = x g and value x = y?
This can be resolved by requiring declarations to be terminated with some symbol - linebreaks or semicolons, for example.  I'm not particularly interested in making Futhark whitespace-sensitive, and I don't see semicolons as more readable than let.

What happend to ";" and other punctuation?  Has programming gone the
Hemmingway?
On Fri, Mar 10, 2017 at 4:22 PM, Troels Henriksen<EMAIL_ADDRESS>wrote:

No, that would cause ambiguities. Should
f x = x
g x = y
be seen as a definition of functions f x = x and g x = y, or a function f
x = x g and value x = y?
This can be resolved by requiring declarations to be terminated with some
symbol - linebreaks or semicolons, for example. I'm not particularly
interested in making Futhark whitespace-sensitive, and I don't see
semicolons as more readable than let.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/HIPERFIT/futhark/issues/316#issuecomment-285696376,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAo8jxu4CiKplaMdSXXVzXKTHVnfylm_ks5rkWrHgaJpZM4MZUhl
.

Futhark is more of an e e cummings language, really.

e e cummings wouldn't use val, fun or let.  He'd use punctuation: blank
spaces, aka layout rules. COBOL, Haskell, Python any one?  I prefer visible
punctuation, with short and as such generally recognizable punctuation such
as ";" rather than unusual one such as "let" camouflaged as pidgin English.
(As for the latter, much can be learned from COBOL, I believe.  Then again,
I have followed research in concrete syntax usability only on an ad hoc
basis since the 80s, and there is precious little the last 20 years.)
On Fri, 10 Mar 2017 at 23.15, Troels Henriksen<EMAIL_ADDRESS>wrote:

Futhark is more of an e e cummings language, really.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/HIPERFIT/futhark/issues/316#issuecomment-285799812,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAo8j_b1Cij4hBFhkuI9EwnxODE9Ns7tks5rkct6gaJpZM4MZUhl
.

There is also the option of mild white-space sensitivity, by introducing eol as a token.

Such that every declaration must be eol-terminated?  It's an interesting idea, but very awkward to express in the grammar, as we must now permit eol between terms.  This is the reason we use lexers in the first place.

Oleks is rarely, but evidently not never, in a humorous mood!?
On Sat, 11 Mar 2017 at 11.25, Troels Henriksen<EMAIL_ADDRESS>wrote:

Such that every declaration must be eol-terminated? It's an interesting
idea, but very awkward to express in the grammar, as we must now permit
eol between terms. This is the reason we use lexers in the first place.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/HIPERFIT/futhark/issues/316#issuecomment-285857999,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAo8j8Tr0oZ22DzVAMeC11mIfekG2rSLks5rknaDgaJpZM4MZUhl
.


GFastats module causing 0's

Description of the bug
GFastats module is causing 0's to make up all the output data, looks like it is caused primarily by the --out_format flag
Command used and terminal output
No response
Relevant files
No response
System information
No response

Seems to be a bug in the actual tool it self, --output-format seems to delete all the input data and prematurely kill the tool with out error. Edited the module to remove this flag.


Remove self assignment

_nextProjectId is assigned to itself. I assume the += was just a + at one time.

:shipit:


css-loader issues when using modules

Hey folks! Not sure if this is a known issue or if I missed something but when trying to use css modules, I get the following error:
../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[5].use[1]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[5].use[2]!../../node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[2].oneOf[5].use[3]!../../node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[2].oneOf[5].use[4]!../../node_modules/@module-federation/nextjs-mf/src/loaders/patchDefaultSharedLoader.js!./pages/index.module.scss
SassError: expected "{".
  ╷
2 │ require("../../../node_modules/@module-federation/nextjs-mf/src/include-defaults.js");
  │                                                                                ^
  ╵
  apps/mf/pages/index.module.scss 2:86  root stylesheet

This always happens if I have a file like index.module.scss or anything similar. Without it, everything works fine. Works with normal css as well, or if I remove the NextFederationPlugin from the config.
My next.config.js:
//@ts-check

// eslint-disable-next-line @typescript-eslint/no-var-requires
const { withNx } = require('@nrwl/next/plugins/with-nx');
const NextFederationPlugin = require('@module-federation/nextjs-mf');

/**
 * @type {import('@nrwl/next/plugins/with-nx').WithNxOptions}
 **/
const nextConfig = {
  nx: {
    // Set this to true if you would like to to use SVGR
    // See: https://github.com/gregberge/svgr
    svgr: false,
  },

  webpack(config, options) {
    const { isServer } = options;
    const remotes = {
      main: `main@http://localhost:3000/_next/static/${
        isServer ? 'ssr' : 'chunks'
      }/remoteEntry.js`,
    };

    if (!isServer) {
      config.plugins.push(
        // @ts-ignore
        new NextFederationPlugin({
          name: 'mf',
          filename: 'static/chunks/remoteEntry.js',
          remotes: {
            main: remotes.main,
          },
          exposes: {},
          shared: {},
          extraOptions: {
            exposePages: true,
            enableImageLoaderFix: true,
            enableUrlLoaderFix: true,
            skipSharingNextInternals: false,
            automaticPageStitching: true,
          },
        })
      );
    }

    return config;
  },
};

module.exports = withNx(nextConfig);

Versions:
"@module-federation/nextjs-mf": "^5.9.16",
    "@nrwl/next": "15.0.0",
    "core-js": "^3.6.5",
    "next": "12.3.1",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "regenerator-runtime": "0.13.7",
    "tslib": "^2.3.0",
    "webpack": "^5.74.0"

Using a fresh install of NX

I'm also encountering the same issue when i have any *.module.css files in /pages. Any guidelines on how to best handle without removing those *.module.css files?

So I'm pretty sure you're not supposed to have any .css in your /pages folder. Once I moved those files over to a different folder, it worked fine. Hope that helps.

Basically just move the .css or whatever styling files you have into a different folder and simply import them on your pages. That solved my issue.

Actually, I'm not sure, next.js sample app has css files imported in _app
I know it started to happen since version 5.9.11
So I suggest you downgrade until it will be resolved

Yea no worries! What I meant is that as long as you don't have the files created in the /pages folder, it is fine.
In the current example I'm looking at here, the css file is created in a component folder and not the pages.

https://github.com/module-federation/nextjs-mf/pull/338


[Internal] Query: Refactors certain ODE tests to return the new expected output

Pull Request Template
Description
With the old emulator, certain ODE tests required their output to be made different to pass. With the emulator being updated, we can now fix the output to show the correct output.
Type of change
Please delete options that are not relevant.

[] Bug fix (non-breaking change which fixes an issue)
[] New feature (non-breaking change which adds functionality)
[] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[] This change requires a documentation update

Closing issues
To automatically close an issue: closes #IssueNumber

I would be tempted to include Index Utilization tests as part of this as well.

@leminh98 as FYI.

In reply to:<PHONE_NUMBER>

@akotalwar is the regression with new emulator even with-out ODE?
If so, then let's update emulator team and get it reverted. It will impact external CX also, right?

@kirankumarkolli this is a test only fix. This is not a regression in Emulator (or product code), but rather the tests were stale.

@akotalwar is the regression with new emulator even with-out ODE? If so, then let's update emulator team and get it reverted. It will impact external CX also, right?

@v1k1 from Emulator team, already reported these Test failures, before releasing the emulator.


[Bug][iOS] No longer working

Hi,
About 1-2 months ago, I had used this library to enforce SSL pinning in my company's app on a PoC branch, which worked as expected.
And just today, I tried to install and apply the library again in a new branch, but now it does not block any request to pinned domain when using invalid keys.
Already run cd ios && pod install then expo run:ios
UPDATE:

Also opened an issue in TrustKit repo.
Tried with Android and it shows Certificate pinning failure! error message as expected.

Configuration
(Testing invalid keys case)
{
  "some-service.tech": {
    "includeSubdomains": true,
    "publicKeyHashes": [
      "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
      "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB="
    ]
  }
}

Logs
(iOS to MacOS Console log)
=== TrustKit: Successfully initialized with configuration {
    TSKPinnedDomains =     {
        "some-service.tech" =         {
            TSKDisableDefaultReportUri = 1;
            TSKEnforcePinning = 1;
            TSKIncludeSubdomains = 1;
            TSKPublicKeyHashes = "{(\n    {length = 32, bytes = 0x00000000 00000000 00000000 00000000 ... 00000000 00000000 },\n    {length = 32, bytes = 0x04104104 10410410 41041041 04104104 ... 04104104 10410410 }\n)}";
            kSKExcludeSubdomainFromParentPolicy = 0;
        };
    };
    TSKSwizzleNetworkDelegates = 0;
}

Versions

react-native-ssl-public-key-pinning: 1.1.3
TrustKit: 3.0.3
Axios: 0.25.0
Expo: 49.0.13
RN: 0.72.6
CocoaPods: 1.14.3
iOS: 16.2 (iPhone Simulator)

Thanks!

Hello @quaos , I am reviewing this library to implement it within my project and I am having the same problem on iOS. But in this case, after some testing with the project inside the library, I found the following:
Test 1 When initializing the truskit of a domain with invalid keys and making a request, the validation is done correctly
a. Initialization

=== TrustKit: Loaded 6 SPKI cache entries from the filesystem
=== TrustKit: Successfully initialized with configuration { TSKPinnedDomains = { "google.com" = { TSKDisableDefaultReportUri = 1; TSKEnforcePinning = 1; TSKIncludeSubdomains = 1; TSKPublicKeyHashes = "{(\n {length = 32, bytes = 0x762195c2 25586ee6 c0237456 e2107dc5 ... bd515913 cce68332 },\n {length = 32, bytes = 0x0b9fa5a5 9eed715c 26c1020c 711b4f6e ... 7a39dad3 01c5afc3 }\n)}"; kSKExcludeSubdomainFromParentPolicy = 0; }; }; TSKSwizzleNetworkDelegates = 0; }
b. Validation

=== TrustKit: Checking includeSubdomains configuration for google.com === TrustKit: Applying includeSubdomains configuration from google.com to www.google.com (new best match of 7 chars) === TrustKit: Checking certificate with CN: GTS Root R1 === TrustKit: Subject Public Key Info hash was found in the cache === TrustKit: Testing SSL Pin {length = 32, bytes = 0x871a9194 f4eed5b3 12ff40c8 4c1d524a ... 8cf81f68 0a7adc67 } === TrustKit: Checking certificate with CN: GTS CA 1C3 === TrustKit: Subject Public Key Info hash was found in the cache === TrustKit: Testing SSL Pin {length = 32, bytes = 0xcc24e77c bc0b29b4 bd4b6b1b a7eb85cf ... 574e827b d3b9336c } === TrustKit: Checking certificate with CN: www.google.com === TrustKit: Subject Public Key Info hash was found in the cache === TrustKit: Testing SSL Pin {length = 32, bytes = 0x3973ad02 3004f33d 10ffb162 56d3ee72 ... a1e9a357 8d3962cd } === TrustKit: Error: SSL Pin not found for www.google.com === TrustKit: Pin validation failed for www.google.com
Test 2
But now the problem arises when I initialize the trukit with valid keys, the initialization is done correctly and the first validation is done correctly. as can be seen in the following images and traces:
Initialization

=== TrustKit: Successfully initialized with configuration { TSKPinnedDomains = { "google.com" = { TSKDisableDefaultReportUri = 1; TSKEnforcePinning = 1; TSKIncludeSubdomains = 1; TSKPublicKeyHashes = "{(\n {length = 32, bytes = 0x871a9194 f4eed5b3 12ff40c8 4c1d524a ... 8cf81f68 0a7adc67 },\n {length = 32, bytes = 0x4179edd9 81ef7474 77b49626 408af43d ... 1060f840 96774348 },\n {length = 32, bytes = 0x08b3a633 5fce5ef4 8f8f0e54 3986c07f ... 864bbd5b dd1f1cc9 },\n {length = 32, bytes = 0x9847e565 3e5e9e84 7516e5cb 818606aa ... 6d506988 e8d84347 },\n {length = 32, bytes = 0x55f77de4 1c037924 28f8d518 c5510422 ... 28ad653e 1ccec7bf }\n)}"; kSKExcludeSubdomainFromParentPolicy = 0; }; }; TSKSwizzleNetworkDelegates = 0; }
Validation

=== TrustKit: Checking includeSubdomains configuration for google.com === TrustKit: Applying includeSubdomains configuration from google.com to www.google.com (new best match of 7 chars) === TrustKit: Checking certificate with CN: GTS Root R1 === TrustKit: Subject Public Key Info hash was found in the cache === TrustKit: Testing SSL Pin {length = 32, bytes = 0x871a9194 f4eed5b3 12ff40c8 4c1d524a ... 8cf81f68 0a7adc67 } === TrustKit: SSL Pin found for www.google.com === TrustKit: Pin validation succeeded for www.google.com
but now if I initialize the trukit again with invalid keys and make a new request, the validation of the keys is not done and the request comes out as successful.
initialization invalid keys

=== TrustKit: Successfully initialized with configuration { TSKPinnedDomains = { "google.com" = { TSKDisableDefaultReportUri = 1; TSKEnforcePinning = 1; TSKIncludeSubdomains = 1; TSKPublicKeyHashes = "{(\n {length = 32, bytes = 0x762195c2 25586ee6 c0237456 e2107dc5 ... bd515913 cce68332 },\n {length = 32, bytes = 0x0b9fa5a5 9eed715c 26c1020c 711b4f6e ... 7a39dad3 01c5afc3 }\n)}"; kSKExcludeSubdomainFromParentPolicy = 0; }; }; TSKSwizzleNetworkDelegates = 0; }
validation with invalid keys

After performing several tests and researching various forums, I found the following:
When the request is made to any domain even without initializing trustkit, it seems that NSURLSession maintains its own TLS session cache. This means that if I initialize trustkit again, this configuration will not be taken and the new validation will not be done with my new keys.
The test done to determine this was:

Request without initializing trustkit.

Initialize trustkit.

Request to the same domain. In this case, truskit does not validate that connection again.

@cristian1206
Thanks for the investigation into the issue. Indeed, iOS maintains a session cache, which re-uses connections if they've been made successfully before. This is detailed in the Known Issues section in the README:
https://github.com/frw/react-native-ssl-public-key-pinning?tab=readme-ov-file#known-issues

On iOS, SSL/TLS sessions are cached. If a connection to your site previously succeeded, setting a pinning configuration that should fail the following request would not actually fail it since the previous session is used. You will need to restart your app to clear out this cache.

The main workaround would be to ensure you initialize the pinning before any network requests are made.
@quaos are you still facing an issue with the pinning, taking this into consideration?

Hello @frw , thank you very much for your prompt response, what a shame I didn't see the known issues section. In my case I am reviewing the issue of updating keys since I was trying to implement a request at the beginning that would bring me the new keys but with this issue that is presented in iOS I think it is going to be an inconvenience, I am going to review the updates via OTA Let's see if I can find something on that side. Thank you very much again for your response.

@cristian1206
In terms of security, I would highly recommend the OTA update option since you can sign the OTA bundle (CodePush, Expo Updates), ensuring that they are from a trusted source.
If you're updating your keys via an unpinned network request during startup, I believe you will be exposing a potentially security hole, since a bad actor would be able to perform a MitM attack and thus would be able to serve whatever keys they wish.

@cristian1206
Thanks for the investigation into the issue. Indeed, iOS maintains a session cache, which re-uses connections if they've been made successfully before. This is detailed in the Known Issues section in the README: https://github.com/frw/react-native-ssl-public-key-pinning?tab=readme-ov-file#known-issues

On iOS, SSL/TLS sessions are cached. If a connection to your site previously succeeded, setting a pinning configuration that should fail the following request would not actually fail it since the previous session is used. You will need to restart your app to clear out this cache.

The main workaround would be to ensure you initialize the pinning before any network requests are made.
@quaos are you still facing an issue with the pinning, taking this into consideration?

@cristian1206 @frw Thanks! I'd try applying the pins at the first entrypoint of application and see if that works.
(I'm also suspecting some 3rd party SDKs that 'd get initialized in AppDelegate.mm might cause networking resources to be set up before pinning.)

@quaos For further debugging, you can also check this thread for breakpoints you can use to see if the library is functioning properly: https://github.com/frw/react-native-ssl-public-key-pinning/issues/220#issuecomment-1884736193

@frw @cristian1206
UPDATE
Here is my latest attempt to fix this:

Call initializeSslPinning in the very entrypoint of the app (index.ts), before calling Expo registerRootComponent
Share the state to App component via hookstate store to tell  the component that the app  is  ready to render.

Still the requests to pinned domains do not get blocked. Here are the related event logs:
JS Console logs
BEFORE TrustKit init
# Debug log from AppDelegate.mm
[myapp-staging] AppDelegate.didFinishLaunchingWithOptions: {
UIApplicationLaunchOptionsURLKey = "myapp://expo-development-client/?url=http%3A%2F%2F<IP_ADDRESS>%3A8081";
}

iOS Bundling complete 12349ms

# Braze SDK with mock endpoint URL  in staging
[myapp-staging] HTTP URL error:
- code: -1003
- description: "A server with the specified hostname could not be found."
- url: [POST] https://mock.end.point/api/v3/data
# ...

 INFO  Initializing react-native-branch v. 5.6.2

TrustKit init
 DEBUG  2024-01-11T16:50:18.712+0700 setupSslPinning: {"some-service.tech": {"includeSubdomains": true, "publicKeyHashes": ["AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB="]}}

 DEBUG  2024-01-11T16:50:18.949+0700 SslPinningState: setIsReady: true
 DEBUG  2024-01-11T16:50:18.950+0700 SslPinningState: setErrorSubscription: {"remove": [Function remove]}
 DEBUG  2024-01-11T16:50:18.981+0700 App.tsx: isSslPinningReady: true

AFTER TrustKit init
# Request to baseURL: https://some-service.tech/api
 DEBUG  2024-01-11T16:50:20.276+0700 postRequest: {"url": "/v1.0/event-log"}
# success ❌

iOS Simulator -> MacOS Console logs
BEFORE TrustKit init
default 16:49:59.396897+0700  myapp-staging  AppDelegate.didFinishLaunchingWithOptions: {
    UIApplicationLaunchOptionsURLKey = "myapp://expo-development-client/?url=...:8081";
}

default 16:49:59.577024+0700  myapp-staging  networkd_settings_read_from_file initialized networkd settings by reading plist directly

default 16:50:00.057622+0700  myapp-staging  10.17.0 - [FirebaseMessaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. ... blah blah blah ...

default 16:50:00.084090+0700  myapp-staging  10.17.0 - [FirebaseAnalytics][I-ACS023007] Analytics v.10.17.0 started

default 16:50:00.134980+0700  myapp-staging  Initializing Braze SDK 5.9.1 with configuration:
- api
  - key: mock-api-key
  - endpoint: mock.end.point
  # ...

default 16:50:00.708172+0700  myapp-staging  🟡 {"code":"JSRuntimeError","message":"EXUpdates: Could not emit event: name = Expo.nativeUpdatesStateChangeEvent, type = restart. Event will be emitted when the bridge is available","timestamp":1704966600000,"level":"warn"}

default 16:50:01.094304+0700  myapp-staging  Connection 1: starting, TC(0x0)
default 16:50:01.137934+0700  myapp-staging  [C1 12592B3C-88FE-4F8B-AAD2-0ACFB1E7B780 api2.branch.io:443 tcp, url hash: 209309af, tls, definite, attribution: developer, context: com.apple.CFNetwork.NSURLSession.{0172C748-DDF2-4629-9790-04E46EED31FD}{(null)}{Y}{2} (private), proc: DD1561F6-1434-3284-9849-FE087737480A] start

default 16:50:01.185426+0700  myapp-staging  Connection 2: starting, TC(0x0)
default 16:50:01.185468+0700  myapp-staging  [C2 80EBA4FA-6096-4BD4-87CE-1671466F941D mock.end.point:443 tcp, url hash: 5686465a, tls, definite, attribution: developer, context: com.apple.CFNetwork.NSURLSession.{7984BC31-B678-439F-B199-CABC71ED82E7}{(null)}{Y}{2} (private), proc: DD1561F6-1434-3284-9849-FE087737480A] start

error 16:50:01.286103+0700  myapp-staging  Connection 2: failed to connect 12:8, reason -1
default 16:50:01.288589+0700  myapp-staging  [C2 mock.end.point:443 tcp, url hash: 5686465a, tls, definite, attribution: developer] cancelled

default 16:50:01.299774+0700  myapp-staging  nw_flow_connected [C1.1.1 45241955:443 in_progress socket-flow (satisfied (Path is satisfied), interface: en0[802.11])] Transport protocol connected (socket)
# SSL pinning for domain "*.branch.io" is not configured in this app

error 16:50:17.897809+0700  myapp-staging  HTTP URL error:
- code: -1003
- description: "A server with the specified hostname could not be found."
- url: [POST] https://mock.end.point/api/v3/data
  # ...

TrustKit init
default 16:50:18.737565+0700  myapp-staging  === TrustKit: Successfully initialized with configuration {
    TSKPinnedDomains =     {
        "some-service.tech" =         {
            TSKDisableDefaultReportUri = 1;
            TSKEnforcePinning = 1;
            TSKIncludeSubdomains = 1;
            TSKPublicKeyHashes = "{(\n    {length = 32, bytes = 0x00000000 00000000 00000000 00000000 ... 00000000 00000000 },\n    {length = 32, bytes = 0x04104104 10410410 41041041 04104104 ... 04104104 10410410 }\n)}";
            kSKExcludeSubdomainFromParentPolicy = 0;
        };
        # ... domains with invalid keys ...
    };
    TSKSwizzleNetworkDelegates = 0;
}

AFTER TrustKit init
NOTE: The log lines streamed to MacOS console keep streaming even after I pressed Pause button, and the logs from a few minutes ago was lost

Hello @quaos . I have the following questions:

If you do not initialize truskit and make a request to the domain that does not work (https://some-service.tech/api), is the request made correctly?

If you request with truskit enabled for a known domain (github.com, google.com...) with and without the keys for each domain embedded in truskit, do both requests work for you?

Do you have the xcode console log when you make the request to your domain and it fails, that is, after initializing truskit?

@cristian1206

Hello @quaos . I have the following questions:

If you do not initialize truskit and make a request to the domain that does not work (https://some-service.tech/api), is the request made correctly?

Yes. It can make requests to the domain and get responses.

If you request with truskit enabled for a known domain (github.com, google.com...) with and without the keys for each domain embedded in truskit, do both requests work for you?

I also added pins for *.google.com, maps.googleapis.com, fcm.googleapis.com, etc. The  request worked whether I used correct or incorrect pinning keys for them.

Do you have the xcode console log when you make the request to your domain and it fails, that is, after initializing truskit?

Currently when I open ios/myapp.xcodeproj in Xcode and try to build/run/debug the project I got build errors:
No such module 'ExpoModulesCore'

I get the project to run using expo run:ios for now.

UPDATE
I've created a test repo in attempt to reproduce the issue, but still can't:
test-expo-ssl-pinning-1
However,  I could successfully run the original project with debugging in XCode (it stops at breakpoints as expected), and this is my latest findings:

TrustKit.TSKPinningValidator instance has been initialized, but the method evaluateTrust did not get called.
TrustKit.ssl_pin_verifier.verifyPublicKeyPin did not get called neither.
react-native-ssl-public-key-pinning.SslPublicKeyPinning.completionHandler did not get called neither.
In MacOS console streamed from iOS Sim, there are only boringssl_context_* logs showing up relating to HTTPS/SSL handshake activity.

UPDATE
Here are the latest log and stacktraces, showing that in the original repo the app execution does not enter TrustKit validator methods at all:
Test Repo (entering TrustKit methods ✅)
JS log
 DEBUG  useApiClient.query: GET undefined {"baseUrl": "https://quaos-portfolio.netlify.app/data/portfolio.json"}

XCode Debug stack trace
Thread 47 Queue : com.facebook.react.NetworkingQueue (serial)
#0	0x0000000104953d00 in -[RCTHTTPRequestHandler sendRequest:withDelegate:] at /Users/chakrit/Projects/test-expo-ssl-pinning-1/node_modules/react-native/Libraries/Network/RCTHTTPRequestHandler.mm:71
#1	0x0000000104960d7c in -[RCTNetworkTask start] at /Users/chakrit/Projects/test-expo-ssl-pinning-1/node_modules/react-native/Libraries/Network/RCTNetworkTask.mm:75
#2	0x000000010495c8d8 in -[RCTNetworking sendRequest:responseType:incrementalUpdates:responseSender:] at /Users/chakrit/Projects/test-expo-ssl-pinning-1/node_modules/react-native/Libraries/Network/RCTNetworking.mm:652
#3	0x000000010495ed98 in __38-[RCTNetworking sendRequest:callback:]_block_invoke at /Users/chakrit/Projects/test-expo-ssl-pinning-1/node_modules/react-native/Libraries/Network/RCTNetworking.mm:721
#4	0x0000000104959960 in __46-[RCTNetworking buildRequest:completionBlock:]_block_invoke_2 at /Users/chakrit/Projects/test-expo-ssl-pinning-1/node_modules/react-native/Libraries/Network/RCTNetworking.mm:351

Thread 48 Queue : com.facebook.react.NetworkingQueue (serial)
#0	0x0000000104c8d9e0 in verifyPublicKeyPin at /Users/chakrit/Projects/test-expo-ssl-pinning-1/ios/Pods/TrustKit/TrustKit/Pinning/ssl_pin_verifier.m:24
#1	0x0000000104c94290 in -[TSKPinningValidator evaluateTrust:forHostname:] at /Users/chakrit/Projects/test-expo-ssl-pinning-1/ios/Pods/TrustKit/TrustKit/TSKPinningValidator.m:126
#2	0x0000000104c94774 in -[TSKPinningValidator handleChallenge:completionHandler:] at /Users/chakrit/Projects/test-expo-ssl-pinning-1/ios/Pods/TrustKit/TrustKit/TSKPinningValidator.m:202
#3	0x0000000104d5dc38 in -[RCTHTTPRequestHandler(SslPublicKeyPinning) URLSession:task:didReceiveChallenge:completionHandler:] at /Users/chakrit/Projects/test-expo-ssl-pinning-1/node_modules/react-native-ssl-public-key-pinning/ios/SslPublicKeyPinning.mm:108
#4	0x0000000183e10bcc in ___lldb_unnamed_symbol2730 ()
#5	0x0000000180b9a8e8 in __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ ()
# ...
Enqueued from com.apple.NSURLSession-work (Thread 48) Queue : com.apple.NSURLSession-work (serial)

iOS -> MacOS console log
(hard to capture, it flows non-stop and won't pause)
default	15:02:39.277090+0700	testexposslpinning1	=== TrustKit: Loaded 6 SPKI cache entries from the filesystem
default	15:31:35.878371+0700	testexposslpinning1	=== TrustKit: Successfully initialized with configuration {
    TSKPinnedDomains =     {
        "firebaseremoteconfig.googleapis.com" =         {
          // ...
        };
        "google.com" =         {
          // ...
        };
        "quaos-portfolio.netlify.app" =         {
            TSKDisableDefaultReportUri = 1;
            TSKEnforcePinning = 1;
            TSKIncludeSubdomains = 1;
            TSKPublicKeyHashes = "{(\n    {length = 32, bytes = 0xaff98890 6dde1295 5d9bebbf 928fdcc3 ... 1c8941ca 26e20391 },\n    {length = 32, bytes = 0x59e738e6 74221702 af1edb87 c5200c1a ... 265124c6 1bd83c79 }\n)}";
            kSKExcludeSubdomainFromParentPolicy = 0;
        };
    };
    TSKSwizzleNetworkDelegates = 0;
}

default	15:44:34.968784+0700	testexposslpinning1	boringssl_context_evaluate_trust_async(1635) [C<IP_ADDRESS>:2][0x1503151b0] Performing external trust evaluation
default	15:44:34.969041+0700	testexposslpinning1	boringssl_context_evaluate_trust_async_external(1620) [C<IP_ADDRESS>:2][0x1503151b0] Asyncing for external verify block
default	15:45:08.189121+0700	testexposslpinning1	=== TrustKit: Testing SSL Pin {length = 32, bytes = 0x59e738e6 74221702 af1edb87 c5200c1a ... 265124c6 1bd83c79 }
default	15:45:08.189281+0700	testexposslpinning1	=== TrustKit: SSL Pin found for quaos-portfolio.netlify.app
default	15:45:08.189379+0700	testexposslpinning1	=== TrustKit: Pin validation succeeded for quaos-portfolio.netlify.app
default	15:45:08.204597+0700	testexposslpinning1	boringssl_context_evaluate_trust_async_external_block_invoke(1608) [0x0] Cancelled during verify block

Original Repo (not entering TrustKit methods ❌)
JS log
 DEBUG  2024-01-26T07:44:38.461Z getRequest: {"url": "https://some-service.tech/api/v1.0/product"}

XCode Debug stack trace
Thread 91 Queue : com.facebook.react.NetworkingQueue (serial)
#0	0x0000000103718d64 in -[RCTHTTPRequestHandler sendRequest:withDelegate:] at /Users/chakrit/Projects/myapp/node_modules/react-native/Libraries/Network/RCTHTTPRequestHandler.mm:71
#1	0x0000000103725de0 in -[RCTNetworkTask start] at /Users/chakrit/Projects/myapp/node_modules/react-native/Libraries/Network/RCTNetworkTask.mm:75
#2	0x000000010372193c in -[RCTNetworking sendRequest:responseType:incrementalUpdates:responseSender:] at /Users/chakrit/Projects/my-app/node_modules/react-native/Libraries/Network/RCTNetworking.mm:652
#3	0x0000000103723dfc in __38-[RCTNetworking sendRequest:callback:]_block_invoke at /Users/chakrit/Projects/my-app/node_modules/react-native/Libraries/Network/RCTNetworking.mm:721
#4	0x000000010371e9c4 in __46-[RCTNetworking buildRequest:completionBlock:]_block_invoke_2 at /Users/chakrit/Projects/my-app/node_modules/react-native/Libraries/Network/RCTNetworking.mm:351
#5	0x000000010e82c594 in _dispatch_call_block_and_release ()

iOS -> MacOS console log
(hard to capture, it flows non-stop and won't pause)
default	16:08:30.082662+0700	myapp	=== TrustKit: Loaded 0 SPKI cache entries from the filesystem
default	16:08:57.250258+0700	myapp	=== TrustKit: Successfully initialized with configuration {
    TSKPinnedDomains =     {
        "some-service.tech" =         {
            TSKDisableDefaultReportUri = 1;
            TSKEnforcePinning = 1;
            TSKIncludeSubdomains = 1;
            TSKPublicKeyHashes = "{(\n    {length = 32, bytes = 0x00000000 00000000 00000000 00000000 ... 00000000 00000000 },\n    {length = 32, bytes = 0x04104104 10410410 41041041 04104104 ... 04104104 10410410 }\n)}";
            kSKExcludeSubdomainFromParentPolicy = 0;
        };
    };
    TSKSwizzleNetworkDelegates = 0;
}

default	16:17:39.503190+0700	myapp	boringssl_context_evaluate_trust_async(1635) [C<IP_ADDRESS>:2][0x15b241600] Performing external trust evaluation
default	16:17:39.503268+0700	myapp	boringssl_context_evaluate_trust_async_external(1620) [C<IP_ADDRESS>:2][0x15b241600] Asyncing for external verify block
default	16:17:39.520363+0700	myapp	boringssl_context_evaluate_trust_async_external_block_invoke_3(1576) [C<IP_ADDRESS>:2][0x15b241600] Returning from external verify block with result: true
default	16:17:39.520441+0700	myapp	boringssl_context_certificate_verify_callback(1797) [C<IP_ADDRESS>:2][0x15b241600] Certificate verification result: OK

UPDATE
Upon deeper investigation, I found that NONE of these network delegate methods existing in the original repo is getting called:

react-native-ssl-public-key-pinning > SslPublicKeyPinning.m > RCTHTTPRequestHandler (SslPublicKeyPinning).didReceiveChallenge
GoogleUtilities/Network > GULNetworkURLSession.m > GULNetworkURLSession.didReceiveChallenge

Notes
Might be related to: https://github.com/expo/expo/issues/24096

Seems like it is caused by expo-dev-client. I'm taking a look around the expo-dev-client code and I'm noticing that Expo is swizzling the URLSessionConfiguration and intercepting network requests, which might be why the pinning configuration is getting ignored when expo-dev-client is used.
Let me see what options are available to hook into Expo's URLSession so we can enable pinning even when using expo-dev-client

Seems like it is caused by expo-dev-client. I'm taking a look around the expo-dev-client code and I'm noticing that Expo is swizzling the URLSessionConfiguration and intercepting network requests, which might be why the pinning configuration is getting ignored when expo-dev-client is used.
Let me see what options are available to hook into Expo's URLSession so we can enable pinning even when using expo-dev-client
Otherwise, it seems like expo-dev-client only intercepts network requests in development mode, so you should be fine if you're building your app for production. Could you try building your app for production with the wrong keys and see if pinning is working fine?

Thanks! I've built the original app for iOS simulator using EAS, and when running the build on simulator, SSL pinning is enforced as designed. So this should work correctly on production.

do you working to fix this ? @frw

@oottoohh Yes I will try to fix this issue, though I will need to do a little bit of digging around to see how I can make it work nicely with expo-dev-client.

I've taken a look around and I think the easiest solution is to disable the expo-dev-client's network inspector while you're testing out your pinning configuration on development builds. I've added the instructions for doing so to the README, hope they're easy enough to follow along:
https://github.com/frw/react-native-ssl-public-key-pinning/blob/main/README.md#expo-managed-workflow
Let me know if you come across any issues with it!

thankyou for quick response @frw, when i try it still not working with my own project, i already try set false for expo-dev-client. btw im using this for my template project https://github.com/infinitered/ignite

@oottoohh The instructions only apply for the Expo managed workflow. Looking at the template, it seems like it's a regular React Native library that uses some Expo modules.
In this case, could you try adding
ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = 'false'

to the top of your Podfile and then rerunning pod install?

@frw  yeah its already there in my podfile. but let me try again after looking your example maybe i need change the way of my implement.

@oottoohh Could you post your app.json and Podfile actually?
It seems like the boilerplate you're using does use the Expo managed workflow, and already has expo-build-properties included:
https://github.com/infinitered/ignite/blob/master/boilerplate/app.json#L58-L69
So there's no need to edit your Podfile at all.

App.json :
{
  "name": "myProjectName",
  "displayName": "myProjectName",
  "expo": {
    "name": "myProjectName",
    "slug": "myProjectName",
    "owner": "myProjectName",
    "scheme": "myProjectName",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/images/app-icon-all.png",
    "splash": {
      "image": "./assets/images/splash-logo-all.png",
      "resizeMode": "contain",
      "backgroundColor": "#191015"
    },
    "updates": {
      "enabled": false,
      "fallbackToCacheTimeout": 0
    },
    "jsEngine": "hermes",
    "assetBundlePatterns": ["**/*"],
    "android": {
      "icon": "./assets/images/app-icon-android-legacy.png",
      "package": "secret",
      "adaptiveIcon": {
        "foregroundImage": "./assets/images/app-icon-android-adaptive-foreground.png",
        "backgroundImage": "./assets/images/app-icon-android-adaptive-background.png"
      },
      "splash": {
        "image": "./assets/images/splash-logo-android-universal.png",
        "resizeMode": "contain",
        "backgroundColor": "#191015"
      },
      "googleServicesFile": "./app/services/googleServices/Development/google-services.json"
    },
    "ios": {
      "icon": "./assets/images/myicon.png",
      "supportsTablet": true,
      "bundleIdentifier": "isecret",
      "splash": {
        // "image": "./assets/images/splash-logo-ios-mobile.png",
        "image": "",
        "tabletImage": "",
        "resizeMode": "contain",
        "backgroundColor": "#FFFFFF"
      },
      "googleServicesFile": "./app/services/googleServices/Development/GoogleService-Info.plist"
    },
    "web": {
      "favicon": "./assets/images/app-icon-web-favicon.png",
      "splash": {
        "image": "./assets/images/splash-logo-web.png",
        "resizeMode": "contain",
        "backgroundColor": "#191015"
      },
      "bundler": "metro"
    },
    "plugins": [
      "expo-localization",
      "@react-native-firebase/app",
      "@react-native-firebase/perf",
      "@react-native-firebase/crashlytics",
      "@react-native-google-signin/google-signin",
      [
        "react-native-fbsdk-next",
        {
          "appID": "secret",
          "clientToken": "secret",
          "displayName": "secret",
          "scheme": "secret",
          "advertiserIDCollectionEnabled": false,
          "autoLogAppEventsEnabled": false,
          "isAutoInitEnabled": true,
          "iosUserTrackingPermission": "This identifier will be used to deliver personalized ads to you."
        }
      ],
      [
        "expo-location",
        {
          "locationAlwaysAndWhenInUsePermission": "$(PRODUCT_NAME) would like to get your location to update price and products with your current location and find Outlets and Workshops nearby.",
          "locationAlwaysPermission": "$(PRODUCT_NAME) would like to get your location to update price and products with your current location and find Outlets and Workshops nearby.",
          "locationWhenInUsePermission": "$(PRODUCT_NAME) would like to get your location to update price and products with your current location and find Outlets and Workshops nearby."
        }
      ],
      [
        "expo-build-properties",
        {
          "ios": {
            "newArchEnabled": false,
            "useFrameworks": "static",
            "networkInspector": false
          },
          "android": {
            "newArchEnabled": false
          }
        }
      ]
    ],
    "experiments": {
      "typedRoutes": true,
      "tsconfigPaths": true
    },
    "extra": {
      "eas": {
        "projectId": "secret"
      }
    }
  },
  "ignite": {
    "version": "9.4.0"
  }
}

podfile :
require File.join(File.dirname(node --print "require.resolve('expo/package.json')"), "scripts/autolinking")
require File.join(File.dirname(node --print "require.resolve('react-native/package.json')"), "scripts/react_native_pods")
require 'json'
podfile_properties = JSON.parse(File.read(File.join(dir, 'Podfile.properties.json'))) rescue {}
ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'
ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR']
platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'
install! 'cocoapods',
:deterministic_uuids => false
prepare_react_native_project!
If you are using a react-native-flipper your iOS build will fail when NO_FLIPPER=1 is set.
because react-native-flipper depends on (FlipperKit,...), which will be excluded. To fix this,
you can also exclude react-native-flipper in react-native.config.js

```js
module.exports = {
dependencies: {
...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
}
}
```
flipper_config = FlipperConfiguration.disabled
if ENV['NO_FLIPPER'] == '1' then
Explicitly disabled through environment variables
flipper_config = FlipperConfiguration.disabled
elsif podfile_properties.key?('ios.flipper') then
Configure Flipper in Podfile.properties.json
if podfile_properties['ios.flipper'] == 'true' then
flipper_config = FlipperConfiguration.enabled(["Debug", "Release"])
elsif podfile_properties['ios.flipper'] != 'false' then
flipper_config = FlipperConfiguration.enabled(["Debug", "Release"], { 'Flipper' => podfile_properties['ios.flipper'] })
end
end
abstract_target 'common' do
put common target configuration here
use_expo_modules!
config = use_native_modules!
use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']
use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']
$RNFirebaseAsStaticFramework = true
pod 'CocoaDebug', :configurations => ['Debug']
pod 'GoogleSignIn', '~> 6.2.2'
pod 'Google-Maps-iOS-Utils', :git => 'https://github.com/Simon-TechForm/google-maps-ios-utils.git', :branch => 'feat/support-apple-silicon'
rn_maps_path = '../node_modules/react-native-maps'
pod 'react-native-google-maps', :path => rn_maps_path
pod 'GoogleUtilities', :modular_headers => true
pod 'MoEngageGeofence'
pod 'ReactNativeMoEngage', :path => '../node_modules/react-native-moengage'
pod 'TrustKit', '~> 2.0.1'
Flags change depending on the env values.
flags = get_default_flags()
use_react_native!(
:path => config[:reactNativePath],
:hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',
:fabric_enabled => flags[:fabric_enabled],
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/..",
# Note that if you have use_frameworks! enabled, Flipper will not work if enabled
:flipper_configuration => flipper_config
)
post_install do |installer|
react_native_post_install(
installer,
config[:reactNativePath],
:mac_catalyst_enabled => false
)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
# This is necessary for Xcode 14, because it signs resource bundles by default
# when building for devices.
installer.target_installation_results.pod_target_installation_results
  .each do |pod_name, target_installation_result|
  target_installation_result.resource_bundle_targets.each do |resource_bundle_target|
    resource_bundle_target.build_configurations.each do |config|
      config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
    end
  end
end

end
post_integrate do |installer|
begin
expo_patch_react_imports!(installer)
rescue => e
Pod::UI.warn e
end
end
target 'scheme' do
end
target 'scheme-Development' do
end
target 'scheme-Staging' do
end
end
implement ssl pinning using trustkit with native code before so i using trustkit 2.0.1, is it problem ?

i try with new implementation, based on your example approach its successfully,

That's great to hear that your setup works properly now!
Depending on TrustKit 2.0.1 shouldn't be a problem, but I would advise you to update to the latest version by removing pod 'TrustKit', '> 2.0.1' and then doing pod update since TrustKit is now at version 3.0.3 and there may have been bugfixes in between.


Fix scriptname

What:
Handle missing scripts gracefully
Add test cases to cover the same.
Why:
Fix #145
How:
Add || {} , to prevent destructuring on undefined.

Codecov Report

Merging #147 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #147   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          10     10
  Lines         315    315
=====================================
  Hits          315    315

Impacted Files
Coverage Δ

src/index.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Time Field

Hey
For the life of me i cant figure out whats the best way to implement a simple Time field...
all i want is a just a simple appointment time field. What is the preferred column type in sql server and how to implement in serene?
I have Time column on my database. (i can change this if need be)
I tried TimeSpan field but when updating the form i get conversion error.
What am i missing here?
Thanks!

Try to use datetime on DB and then choose TimeEditor as default editor.

thanks for the tip.. ill give it a try tomorrow!


PACSign: add standalone deb packaging

Signed-off-by: Tim Whisonant<EMAIL_ADDRESS>

Coverage increased (+0.03%) to 65.346% when pulling 96aa6d210bdfa2d03ff592905e167284ce611291 on tswhison/pacsign_deb into f18f253dd17716a09051c26731e0ba184d08eabf on master.


weired display on anaconda.org

Comment:
When I open https://anaconda.org/conda-forge/openjdk
the description reads: GraalPy is a high-performance Python implementation on GraalVM. See https://conda-forge.org/blog/posts/2020-03-10-pypy for more information about using it in conda, replacing PyPy/pypy/pp with GraalPy/graalpy/gp in commands.
Also the link is wrong.
Files look good (but I have not tested.
Looks fishy to me....

This is because both this feedstock and https://github.com/conda-forge/graalpy-feedstock have an output that's called openjdk, and only one (the most recent uploader?) gets to set the description of the package on https://anaconda.org/conda-forge/openjdk.
It's nothing to worry about, but I'll open an issue there so they can set the same about: for that output.

Excellent 👌


📊 wb: Create 1000 bins distribution dataset

Create a dataset based on 1000 Binned Global Distribution, a distributional dataset that will potentially replace the need to extract filled (inter/extrapolated) data from the World Bank PIP API.
For now I am keeping a garden dataset to be combined with other datasets in the future.

Thanks @spoonerf! Actually, the negative avg values is a good point. Distributions usually have this but they are also often bottom coded to start from 0. I think I will do the same.


main.py

#338   model = model.load_state_dict(state_dict) 语法似乎错误，该改为model.load_state_dict(state_dict)

Solved. Thanks for raising this.


pandas.errors.EmptyDataError: No columns to parse from file

What happened?
I'm re-processing some data (originally processed using version 20.2.0), and am hitting this error during the acompcor confounds renaming procedure. This appears to be the same error as #2659.

Singularity
Is your data BIDS valid?
Yes
Are you reusing any previously computed results?
No
Please copy and paste any relevant log output.
Node: fmriprep_wf.single_subject_10_wf.func_preproc_task_lost_run_3_wf.bold_confounds_wf.rename_acompcor
Working directory: /N/scratch/dlevitas/fmriprep-21.0.1_temp/sub-10/fmriprep_wf/single_subject_10_wf/func_preproc_task_lost_run_3_wf/bold_confounds_wf/rename_acompcor

Node inputs:

components_file = <undefined>
metadata_file = <undefined>

Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/site-packages/nipype/pipeline/plugins/legacymultiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/opt/conda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 516, in run
    result = self._run_interface(execute=True)
  File "/opt/conda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 635, in _run_interface
    return self._run_command(execute)
  File "/opt/conda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 741, in _run_command
    result = self._interface.run(cwd=outdir)
  File "/opt/conda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 428, in run
    runtime = self._run_interface(runtime)
  File "/opt/conda/lib/python3.8/site-packages/fmriprep/interfaces/confounds.py", line 139, in _run_interface
    components = pd.read_csv(self.inputs.components_file, sep='\t')
  File "/opt/conda/lib/python3.8/site-packages/pandas/io/parsers.py", line 610, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/opt/conda/lib/python3.8/site-packages/pandas/io/parsers.py", line 462, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "/opt/conda/lib/python3.8/site-packages/pandas/io/parsers.py", line 819, in __init__
    self._engine = self._make_engine(self.engine)
  File "/opt/conda/lib/python3.8/site-packages/pandas/io/parsers.py", line 1050, in _make_engine
    return mapping[engine](self.f, **self.options)  # type: ignore[call-arg]
  File "/opt/conda/lib/python3.8/site-packages/pandas/io/parsers.py", line 1873, in __init__
    self._reader = parsers.TextReader(self.handles.handle, **kwds)
  File "pandas/_libs/parsers.pyx", line 521, in pandas._libs.parsers.TextReader.__cinit__
pandas.errors.EmptyDataError: No columns to parse from file

Additional information / screenshots
This error has [currently] only occurred for a specific subject's run. The other subject's runs, and other subjects in general, are not hitting this error, though I will update if that becomes the case. I can't discern anything idiosyncratic about this run, so I'm unsure why it's failing here specifically.

Is this data multi-echo?
I believe it's a masking issue. If you have a subject that reliably hits this, would you be willing to share their data privately?

Not multi-echo, but it has a MultibandAccelerationFactor of 8.
Yes, if the issue persists I can share it privately

Downgraded fmriprep version to 20.2.3 for now, but will reopen if I encounter this error again.


Follow-up: Creation of empty UTF-8 (String) arrays will fail

A follow-up to https://github.com/eclipse/deeplearning4j/issues/9540, as it looks like the described issue is present in 8 more of the various create methods in Nd4j.
Wouldn't it make sense to change the other methods as well, where Nd4j.scalar([dataTypeAsGivenByVariableOrMethod], 0.0) is returned in case shape.length == 0? I assume, these will lead to the same issue in different contexts, if the data structure is empty and the type is UTF-8.
Version Information

Deeplearning4j/Nd4j version: 1.0.0-M1
Platform information: Ubuntu 18.04.6 LTS
CUDA version: 11.5
NVIDIA driver version: 495.29.05

@cbr-bsi just wanted to ack this as I was doing issue cleanup. Could you clarify what you mean a bit? I did a quick scan of Nd4j.create(..) and most of them are numerical.  Are you talking about scalar string creation? Many times in Nd4j.create(..) we require a databuffer. An emptyy ndarray isn't an ndarray with a databuffer. It usually has no data or can be zero length and so it varies a bit. I'll try to do a pass on this weekend if you can clarify a bit. Thanks!

On line 4279 org.nd4j.linalg.factory.Nd4j#create(org.nd4j.linalg.api.buffer.DataType, long[], long[], char) a fix was applied in #9540 : https://github.com/eclipse/deeplearning4j/blob/284d0c488f4a1ebc74c9fba03f2e3954acb6fc77/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/Nd4j.java#L4279
Depending on how it's called, I assume line 4296 org.nd4j.linalg.factory.Nd4j#create(org.nd4j.linalg.api.buffer.DataType, long[], char) will have the same issue, as the method could be called with dataType being UTF8: https://github.com/eclipse/deeplearning4j/blob/284d0c488f4a1ebc74c9fba03f2e3954acb6fc77/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/Nd4j.java#L4296
The following are most likely fine, as they get the data type from context within Nd4j.dataType(), where ultimately it is loaded in org.nd4j.linalg.api.buffer.util.DataTypeUtil#getDtypeFromContext(java.lang.String) which, in turn, also does not consider String to be possible (it lists all numerical types loaded from a context definition):

org.nd4j.linalg.factory.Nd4j#create(int[], int[], char)
org.nd4j.linalg.factory.Nd4j#create(long[], long[], char)
org.nd4j.linalg.factory.Nd4j#create(int[], char)
org.nd4j.linalg.factory.Nd4j#create(long[], char)
org.nd4j.linalg.factory.Nd4j#createUninitialized(int...)
org.nd4j.linalg.factory.Nd4j#ones(int...)
org.nd4j.linalg.factory.Nd4j#ones(long...)

Also the following shoud be fine. They could be called with Type UTF8, however, doing so will not make sense from the context, since they do initialize to a numerical value (zeros, ones...):

org.nd4j.linalg.factory.Nd4j#zeros(org.nd4j.linalg.api.buffer.DataType, long...)
org.nd4j.linalg.factory.Nd4j#ones(org.nd4j.linalg.api.buffer.DataType, long...)


autoFocus is lost after switching camera facing

OMG...
In updateAutoFocus(), mAutoFocus is set to false if the camera does not support autoFocus.
So:
(1) mAutoFocus is now true
(2) Switch to front camera, which does not support auto focus
(3) mAutoFocus is now false
(4) Switch back to back camera
(5) in updateAutoFocus, since mAutoFocus is false, the camera is directly set to not auto focus.
The best approach to solve this problem is to separate autoFocus from setting, and whether we need to auto focus now.

For those who want to solve this problem, you may take a look at my commits. Just 4 line of code to change in total:
https://github.com/siralam/CameraViewPlus/commit/8890f5f9e84a77c63122649fac16b3150509113b
https://github.com/siralam/CameraViewPlus/commit/5e1d4a83681a3cf689982c943358cea0f6dee59b


Generate proper constructors for fixed-size arrays

Summary
as you can see here

the ctor for ClearColorValue does not work with float values.
this stems from the fact that some of the fields occupy the the same location, but get initialized with, for example uint_0 = default, AFTER other fields at the same location, essentially overriding them with default.
for me it works when i use the last fields (the uint ones) but for everything else the values get zeroed out.
Steps to reproduce

Platform: Desktop
Framework Version: .NET Core 3
i don't know if this is platform specific, i'm not that familiar with the net core spec

A solution
would be to split up the ctor into separate ones that initialize base and then override the correct fields:
 public ClearColorValue(float float32_0 = default, float float32_1 = default, float float32_2 = default, float float32_3 = default)
  : this() {
  Float32_0 = float32_0;
  Float32_1 = float32_1;
  Float32_2 = float32_2;
  Float32_3 = float32_3;
 }
public ClearColorValue(int int32_0 = default, int int32_1 = default, int int32_2 = default, int int32_3 = default)
 : this() {
  Int32_0 = int32_0;
  Int32_1 = int32_1;
  Int32_2 = int32_2;
  Int32_3 = int32_3;
}
public ClearColorValue(uint uint32_0 = default, uint uint32_1 = default, uint uint32_2 = default, uint uint32_3 = default)
 : this() {
  Uint32_0 = uint32_0;
  Uint32_1 = uint32_1;
  Uint32_2 = uint32_2;
  Uint32_3 = uint32_3;
}

i didn't create a pr for two main reasons:

this is more of a design decision, i don't want to take that away
i suspect this ctor is generated, if so i guess it wouldn't even as simple as just changing it in a pr. again: i don't know too much how this project works under the hood, i just know suff about c#

another solution would be to do some pointer arithmetic in the ctors so you don't need to invoke the empty ctor, but i think the first suggestion would be cleaner.
btw this took me ~5h to figure out with RenderDec ...  was the last thing i suspected.
ofcourse you can always just use it the c way by first calling the empty ctor and then setting the fields, but i prefer a propper ctor.

Yeah our treatment of unions and structs contianing fixed-size arrays hasn't always been great. Luckily in 2.0 I intend to implement #163 which will make using these types a lot nicer, and I will try and make sure to implement an appropriate constructor for it as well. In the meantime, you'll probably just have to use the empty ctor. Sorry about this :( it'll be fixed in the next breaking release.

ah well, glad you at least know about this and are planing on doing something to fix it.

Resolved in #340, will be part of 2.0 Preview 3. All struct constructor parameters are nullable, and fields will only be set if you pass in a value that is not null. Example:
namespace Silk.NET.Vulkan
{
    [NativeName("Name", "VkSamplerCustomBorderColorCreateInfoEXT")]
    public unsafe partial struct SamplerCustomBorderColorCreateInfoEXT
    {
        public SamplerCustomBorderColorCreateInfoEXT
        (
            StructureType? sType = StructureType.SamplerCustomBorderColorCreateInfoExt,
            void* pNext = null,
            ClearColorValue? customBorderColor = null,
            Format? format = null
        ) : this()
        {
            if (sType is not null)
            {
                SType = sType.Value;
            }

            if (pNext is not null)
            {
                PNext = pNext;
            }

            if (customBorderColor is not null)
            {
                CustomBorderColor = customBorderColor.Value;
            }

            if (format is not null)
            {
                Format = format.Value;
            }
        }

///
        [NativeName("Type", "VkStructureType")]
        [NativeName("Type.Name", "VkStructureType")]
        [NativeName("Name", "sType")]
        public StructureType SType;
///
        [NativeName("Type", "void*")]
        [NativeName("Type.Name", "void")]
        [NativeName("Name", "pNext")]
        public void* PNext;
///
        [NativeName("Type", "VkClearColorValue")]
        [NativeName("Type.Name", "VkClearColorValue")]
        [NativeName("Name", "customBorderColor")]
        public ClearColorValue CustomBorderColor;
///
        [NativeName("Type", "VkFormat")]
        [NativeName("Type.Name", "VkFormat")]
        [NativeName("Name", "format")]
        public Format Format;
    }
}


Icon size x can now be initialised with a number

Icon size can now be passed as a single numeric as well as the [x, y].  Additional tests added to cover new parameter option.
Fixes #3185

Not sure about this. I'd rather extend the L.point factory method to allow single-parameter instantiation everywhere if we're gonna allow this.

@IvanSanchez I'm not in favor of L.point accepting a single number because it can be a source of subtle, hard to track bugs.


psuedo-selectors doc doesn't display correctly

Hi there!
I was messing around with the language server and noticed the doc doesn't work quite right! Here's a screenshot:


System hybrid worker groups

Does this mean that if you are only using System hybrid worker groups for Update Management, there is nothing to do here?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: e46cfd4e-9663-145f-dd23-28effd108738
Version Independent ID: f5126582-7211-65c9-0817-cef899f6aee5
Content: Migrate an existing agent-based hybrid workers to extension-based-workers in Azure Automation
Content Source: articles/automation/migrate-existing-agent-based-hybrid-worker-to-extension-based-workers.md
Service: automation
Sub-service: process-automation
GitHub Login: @SnehaSudhirG
Microsoft Alias: sudhirsneha

@chris-tout-6dg Thanks for your question. That indeed right. If you are using System hybrid worker groups, you don't have to do anything.
As there is no request for documentation change, we will close the issue for now. If there are further questions, please revert and we will be glad to assist you.


fresco loader dont play gif file

Any updates on this? I am having the same issue (with glide)

@tt-aali Could you please try the same url with demo project?

Closing it now, feel free to reopen it if necessary.


st2ctl reload --register-policies doesn't remove stale policies

SUMMARY
When registering polices with st2ctl reload --register-policies  while you have removed the actual policy file are still registered.
STACKSTORM VERSION
Paste the output of st2 --version: st2 3.6.0, on Python 3.6.8
OS, environment, install method
OL7 all-in-one st2 server installed on bare VM
Steps to reproduce the problem
Created an attr policy to cancel with a threshold of 2
name: "test my loop policy"
description: ""
enabled: true
resource_ref: "examples.loop_test"
policy_type: "action.concurrency.attr"
parameters:
    action: "cancel"
    threshold: 2
    attributes:
      - cmd

Then registered the pack.
<node> policies # st2ctl reload --register-policies
Registering content...[flags = --config-file /etc/st2/st2.conf --register-policies]
...
2021-12-01 22:38:10,199 INFO [-] =========================================================
2021-12-01 22:38:10,199 INFO [-] ############## Registering policy types #################
2021-12-01 22:38:10,199 INFO [-] =========================================================
2021-12-01 22:38:10,225 INFO [-] Registered 3 policy types.
2021-12-01 22:38:10,225 INFO [-] =========================================================
2021-12-01 22:38:10,225 INFO [-] ############## Registering policies #####################
2021-12-01 22:38:10,225 INFO [-] =========================================================
2021-12-01 22:38:10,318 INFO [-] Registered 1 policies.
##### st2 components status #####
...
<node> policies # st2 policy list
+------------------------------+--------------------+-------------------------+---------+
| ref                          | resource_ref       | policy_type             | enabled |
+------------------------------+--------------------+-------------------------+---------+
| examples.test_my_loop_policy | examples.loop_test | action.concurrency.attr | True    |
+------------------------------+--------------------+-------------------------+---------+

Delete or remove the policy file and register the pack.
<node> policies # mv loop_policy.yaml ~
<node> policies # st2ctl reload --register-policies
Registering content...[flags = --config-file /etc/st2/st2.conf --register-policies]
...
2021-12-01 22:40:35,988 INFO [-] =========================================================
2021-12-01 22:40:35,988 INFO [-] ############## Registering policy types #################
2021-12-01 22:40:35,988 INFO [-] =========================================================
2021-12-01 22:40:36,015 INFO [-] Registered 3 policy types.
2021-12-01 22:40:36,015 INFO [-] =========================================================
2021-12-01 22:40:36,015 INFO [-] ############## Registering policies #####################
2021-12-01 22:40:36,015 INFO [-] =========================================================
2021-12-01 22:40:36,099 INFO [-] Registered 0 policies.
##### st2 components status #####
...
<node> policies # st2 policy list
+------------------------------+--------------------+-------------------------+---------+
| ref                          | resource_ref       | policy_type             | enabled |
+------------------------------+--------------------+-------------------------+---------+
| examples.test_my_loop_policy | examples.loop_test | action.concurrency.attr | True    |
+------------------------------+--------------------+-------------------------+---------+

Expected Results
Removed policy file should be unregistered.
Actual Results
Removed policy file was not unregistered.

This behaviour is intentional, if the policy is created by hand it needs to be deleted by hand.
st2 policy delete ...

Right. Closing in favor of existing aggregated issue: https://github.com/StackStorm/st2/issues/3313

This behaviour is intentional, if the policy is created by hand it needs to be deleted by hand.
st2 policy delete ...

What do you mean if a policy is created by hand?
In my mind creating a policy by hand is st2 policy create ... not when done via yaml files. The yaml files are supposed to be the source of truth for managing a pack as they will always overwrite any changes made with the CLI tool or the UI.
Anyways, I guess it doesn't matter as I didn't see #3313 when searching for this issue.
Thanks.

For people that find this issue through searches:
"creating by hand" is any process used to modify pack content that is not st2 pack install ... / st2 pack remove ...

So why are polices required to be shipped with packs if its still considered by hand? Shouldn't the pack install also include the policies?


sshnp/npt automatic retry and persistence

Is your feature request related to a problem? Please describe.
sometimes TCP connections fail and that means sshnp/npt have to be re run. It would be great to have a flag to automatically retry if a connection fails.
This would work well with client applications that auto retry as well for example RDP and OpenVPN, less so ssh
Describe the solution you'd like
--retry if connection drops re establish it
This would likely require a -l to also be in place so client applications "know" how to reconnect
Describe alternatives you've considered
Having a --listen option
A port would listen for a connection and establish it on demand. This would prevent constant retry and no connection locally being established and the npt/sshnp constantly connecting and disconnecting as no client app connected to the listening socket. So perhaps a max number of consecutive timeouts being a configurable limit ?
I like this solution too, but perhaps a combination is worth thinking about.
Additional context
No response

To emulate this in production I have used a simple shell loop..

@gkc I took a run through the code and I think I like the idea of exposing the scoket_connector defaultTimeout which currently is a static const.
Then enabling srv to set the timeout of the listening socket and add that option to npt and perhaps sshnp.
Thoughts welcome.
@cconstab

Have started work on this

Implemented in PR #1110 and tagged @cconstab as reviewer ... hopefully not much more to do here, the impl works fine for all of my test scenarios and shows no backwards compatibility issues in the e2e tests. Reducing to 0 SP for this sprint


release

It would be great to get a new release of this component. I want to use the empty option on the test control, but it was added after the last release and I'm having issues building this myself as I'm new to angular apps

My bad there is a newer release, just not on github.


cli: update fitprint

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (157ec35) to head (a61f5b9).

Additional details and impacted files
@@            Coverage Diff            @@
##            master      #200   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           42        42
  Lines         3572      3572
=========================================
  Hits          3572      3572

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Create Collection from Custom Query

Add a feature to prepare and test a custom WQL Query and then use it to create a new Collection

Interest doesn't seem to be behind this feature


Remove SubnetName and VnetName flags from azure provider

Tiny cleanup, there are a few properties and flags that are redundant/unused.

Thank you very much for contributing this patch.
Could you follow the commit message format described here?
https://github.com/kata-containers/community/blob/main/CONTRIBUTING.md#main-patch

@mkulke same comment as https://github.com/confidential-containers/cloud-api-adaptor/pull/219#issuecomment-1246241645
Rest it looks good.


Upgrade EDTF to 3.0

Upgrades the edtf gem and locks to the most recent major version.
The new version was released over the weekend.

Needs a rebase.

Rebased.


Blocking main thread while endRefreshing()

Hello,
If I triggered a pull-to-refresh request and then immediately start scrolling while the app fetches the new data, the table view will hang for a second or so once the endRefreshing() gets called. This provides a very bad indication to the user.

Also, the endRefreshing's animation should not be played if the user already made some scrolling (in other words, when scroll view's offset is not zero)


Ability to deploy a helm chart via scaffolder or other plugin

Summary

I think that Backstage is missing a key value that could be deploying a helm chart with the templated values to a Kubernetes cluster.
Right now there is a Kubernetes plugin that fetches resources on a cluster, but it doesn't allow to deploy them.
Project website (if applicable)

Context

Realised I commented on this the wrong way round, so copying the quote from the other PR.

Hey @braghettos, thinking that maybe helm should be it's own plugin and not really tied to the k8s underlying API.
Helm is an abstraction on the top of k8s, so I think it deserves it's own space to manage this. But it might depend on the k8s >api to talk to tiller or what have you.

Realised I commented on this the wrong way round, so copying the quote from the other PR.

Hey @braghettos, thinking that maybe helm should be it's own plugin and not really tied to the k8s underlying API.
Helm is an abstraction on the top of k8s, so I think it deserves it's own space to manage this. But it might depend on the k8s >api to talk to tiller or what have you.

Thank you @benjaminr ! Are there any insights regarding a development of a plugin for helm chart deployment from the Backstage core team?

Thank you @benjaminr ! Are there any insights regarding a development of a plugin for helm chart deployment from the Backstage core team?

FYI. We are currently in the process of developing a service aimed at deploying "stuff". (it is working on a high level of abstraction, so deploying helm charts to a k8s cluster is just one of many possible use cases.)
There will be a backstage plugin for it to leverage everything backstage. We plan to release it as open source later this year, hopefully by the summer there will be a version you can try out.

@braghettos sorry, I've just seen this, It appeared that you tagged the wrong user!
There's nothing ongoing from the core team but contributions would of course be welcome to contributions.
I think that some of the work around #3745 might be of interest to you, as we're changing how to define steps for the scaffolder. So it's making it much easier to add new functions and chain them together, and maybe write a new function to handle deploying some helm chart somewhere.
However, this really maybe isn't something that really the scaffolder should be concerned with. It wont have any permissions to any clusters or anything, and thinking that a better place for this logic should be in the CI build after the scaffolder has created the repository.

@braghettos Backstage out of the box uses cookiecutter as its templating engine which is very popular where you can find tons of cookiecutter helm templates on GitHub. Cookiecutter uses Jinja2 syntax to replace or customize folder and file names, as well as file content, here’s some sample cookiecutter helm templates:
https://github.com/michalvanco/gdc-k8s-templates

@braghettos wondering if we can close this issue now?

Hi @benjaminr , we can definitely close the issue, I used cookiecutter to template an helm chart.


Failed when try to place an order

when I try to place an order, it returns
binance.exceptions.BinanceAPIException: APIError(code=-1013): Filter failure: PERCENT_PRICE_BY_SIDE
by using the code like :
from binance.enums import *
order = client.create_order(
symbol='BNBBTC',
side=SIDE_BUY,
type=ORDER_TYPE_LIMIT,
timeInForce=TIME_IN_FORCE_GTC,
quantity=100,
price='0.00001')
could you help me with that? thx

Hello @Zhongkai939,
That error means you're using a price that is outside of the range for prices the exchange allows. (it's too far from the current price)


fixed relative url to http url

Github markdown treated the url without the http prefix as a relative link. Added the http prefix.

Thanks very much for this, it was fixed on the develop branch a couple of weeks ago (236f082 Documentation Tweaks) and is now in master.


Add a regex for $this and $this.parent etc etc to highlight it in preview.ts

Description
Add regex /(\$this(\.parent)*)/g and replace it with $1", and set innerHTML instead of textContent.

Issue(s)
Fixes #1198

The bad thing about this is that it allows the admins to type html into the inputs and it'll render it on the right hand side. Is there a cleaner way to do this?

Is it possible to auto-escape the user's inputted text (so <> becomes <>, etc) before applying the regex to apply highlighting formatting?

Just for context for anyone reading this PR: @kendrickt 's comment about allowing the admins to type html into the inputs is no longer relevant or an issue!


Cocoapods and CoreData support

Original request:

How to use it in conjunction with CoreData to directly convert JSON data into a new CoreData Entity or update the original Entity. And hope to support CocoaPods

Hey @HelloRyanCR7 thank you for interest in Kodable.
Short answer is: There's no support for CoreData nor Cocoapods at the moment.
Cocoapods
There are no plans to support it, in fact it was not added on purpose. Moving forward, I believe SPM with be the main source for 3rd party libraries, thus adding support for Cocoapods is not on the roadmap. In any case, you can use SPM and Cocoapods in the same project :) So you can still use Kodable.

Supporting CoreData (or any other ORM/database) is a bit out of scope of this library. You can probably build your own add on to achieve that functionality. If I recall correctly, CoreData support the set(value: forKey:) api. With a bit of work, perhaps with the help of some reflection libraries, you can get to this functionality, where any Codable object can be converted in a CoreData Object.
Given the aforementioned reasons, I'll be closing the issue.
Nevertheless, any questions are welcomed!
Thank you