apply fails if the previous helm install command fails

Helm has a bug in helm upgrade --install that causes subsequent runs to fail if the first run fails: https://github.com/helm/helm/issues/3353
I believe that in the plugin, the following path could be taken so that each run of apply is idempotent (suggested here):
helm upgrade --install

if FAIL then

if revision=1

then helm delete --purge

else helm rollback

Ah yes, the "first failure" helm problem. I've thought a bit about this.
Firstly, the provider wouldn't roll back a release that it created during the run of terraform apply. That would disagree with Terraform's philosophy not to roll back in the presence of errors, and would just be a bad idea. I would, in theory, be okay with bulldozing over a failed first deploy when "terraform apply" is called the second time. I wouldn't want this to be the default behavior, but I'd be okay with implementing this under an option in the provider (something like delete_first_failure). However, because of the way Terraform works, there is no way to do this cleanly.
Terraform knows about four operations: create, read, update, and delete. I could perhaps implement helm delete --purge of first-failure operations in the "update" section of the code, but terraform may call the "read" function before it does any updates. This case occurs when the -refresh=true option is given to terraform apply, for example. As coded (and I believe rightly so), when terraform calls "read" on this provider the plugin grabs information from helm, detects that the deployment is in a state of failure, and returns an error to Terraform. Therefore, in order to get an update (terraform apply) to blow away or roll back any prior releases with Revision of 1, the provider would have to "lie" to Terraform and tell it that all is well so that the update can happen, which is just asking for trouble.
I also want to acknowledge this problem, though. I've dealt with it myself, and it is terribly annoying. I just don't see a good way of pushing the logic to deal with that failure state "down" into a terraform provider without violating "trust" with Terraform, something which is one of the main reasons for creating this provider.

Keeping it in line with terraform philosophy makes sense.  Do you know if there is any precedent for automatically taint-ing resources if they fail?  Another course of action could be to taint the helm release, which I believe should then call for the deletion and recreation of the resource on the next apply.  This could be done manually as well, but the experience would be better if it happened automatically.

I apologize for the late response.
Terraform really doesn't like rolling back in the face of errors. To fix this problem in any way would be to roll back in the face of an error.
I feel like the best place to solve this problem isn't in a terraform plugin, nor perhaps in a helm patch, but in the script which you write that runs terraform.
I like the approach of being more terraform-y like what you're doing. I would like to keep trying with you to figure this out so that we can eliminate this pain point.
That said, I do not believe tainting is an option available to us in this fight. To quote the docs:

Forcing the recreation of a resource is useful when you want a certain side effect of recreation that is not visible in the attributes of a resource. For example: re-running provisioners will cause the node to be different or rebooting the machine from a base image will cause new startup scripts to run.
Note that tainting a resource for recreation may affect resources that depend on the newly tainted resource. For example, a DNS resource that uses the IP address of a server may need to be modified to reflect the potentially new IP address of a tainted server. The plan command will show this if this is the case.

The first paragraph makes it clear that tainting exists to clean up configuration drift by re-running provisioners in a cleanly-created environment. The second paragraph makes clear that tainting should not be done lightly, as it may cause updates in other infrastructure. Therefore, tainting should only be done manually.
This seems to be how it was designed; for example, in helper/schema, the library that terraform provides to interact with Terraform from the plugin, there is no way to mark a resource as tainted or even to react to a tainted resource or know that it is tainted.


Update go version to 1.18 and operator-sdk to 1.24.1

Updated go version to 1.18 in driver and operator builder images and for travis builds.
Updated kustomize version to 4.5.7 (old one is not compatible with go 1.18)
Using golangci-lint v1.50.0 for golint, gosec scans.
Note: golint is still deprecated, other linters from golangci-lint can be explored.
Update operator-sdk to 1.24.1
Note: This can only be used for OLM bundle, which is not supported in CSI anymore.

Signed-off-by: amdabhad<EMAIL_ADDRESS>

Private build:
quay.io/amdabhad/csi-driver:go1.18_211022
quay.io/amdabhad/csi-operator:go1.18_211022

Test ran using updated operator yaml

Regressions (remove the .txt from filename to see results in html format) - go1.18_211022.html.txt

Upgrade - upgrade.txt


Frontend UI component Ideas

Here we can share and discuss frontend UI kit.

https://github.com/Developer-DAO/web3-ui

below are the create nft store front tools
https://www.npmjs.com/package/@covalenthq/create-nft-store
https://docs.reservoir.tools/docs/getting-started-self-hosted


with not working with many to many

When I use Post.query().with("tags").get(). Tags will return empty array for many to many

@Uysim Hi! Thank you for the report! Sorry but I need more info on this. The test is passing so I think here's something wrong with either data, or Model schema definition.
Could you provide us a reproducible code for the issue?

@kiaking  Sorry I think it is my mistake. Now it is working fine. Thank you for you time. I'll close this issue

Oh OK. Glad to hear you found a solution! Feel free to open another issue if there's anything 🤝


Switch to setup-micromamba

autoupdate.yml also works, see https://github.com/Quantco/pre-commit-mirrors-black/actions/runs/4860533563/jobs/8664464435?pr=18


[LC_CTRL, FPV] LC transitions in one direction

@NigelScales
As you suggested, it's good to have FPV to ensure LC state transitions in one direction
can you add assertions in the design to check that? Adding these assertions in design is preferred, as they can be reused in chip-level and they're easier to be enabled in FPV. And Cindy will enable those assertion to run in FPV.
cc: @msfschaffner

@weicaiyang
This is included in the RTL by https://github.com/lowRISC/opentitan/pull/12244.
Please ensure this works with the formal tool by temporally adding a loop to the FSM RTL and check this is
detected by the tool.
I have done this for simulation.
`ifdef INC_ASSERT
    //verilog_format: off
    property sec_cm_cfi_linear_p;
      fsm_state_e initial_state;
      // Trigger whenever state changes and stores initial state as initial_state
      // Then thereafter we must never see that state again until reset
      (!$stable(fsm_state_q), initial_state = $past(fsm_state_q)) |->
          always (fsm_state_q != initial_state);
    endproperty
    //verilog_format: on

  `ASSERT(SecCmCFILinear_A, sec_cm_cfi_linear_p)

That's really thoughtful. Thanks @NigelScales


fix(Dropdown): performance issue, useless re-render

Hello,
I'm using Dropdown to render a list of countries( I have 120 countries). And I Have huge performance issues.
After some investigation via "why did you update" npm package I realised the component was re-render even when props did not change. I check on one of your examples (see below) and it seems to be the same problem.
PS: I'm using version 0.70.0
[https://github.com/Semantic-Org/Semantic-UI-React/blob/master/docs/app/Examples/modules/Dropdown/Usage/DropdownExampleAllowAdditions.js]

Dropdown has performance issues and there is issue for this, #1674. Contributions are much appreciated.


Bundlephobia Error: InstallError

I'm hitting this error building a TS library:
InstallError: InstallError
    at Object.installPackage (C:\Users\myuser\mylib\node_modules\package-build-stats\build\utils\installation.utils.js:140:15)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Object.getPackageStats (C:\Users\myuser\mylib\node_modules\package-build-stats\build\getPackageStats.js:78:5)
    at async Object.calculateBundlephobiaStats (C:\Users\myuser\mylib\node_modules\rollpkg\dist\bundlephobiaStats.js:35:30)
    at async Object.progressEstimator (C:\Users\myuser\mylib\node_modules\progress-estimator\src\logger.js:58:27)
    at async rollpkg (C:\Users\myuser\mylib\node_modules\rollpkg\dist\cli.js:164:13) {
  originalError: 'tail: invalid option -- 1\r\n' +
    "Try `tail --help' for more information.\r\n" +
    'npm ERR! code EINVALIDTAGNAME\n' +
    'npm ERR! Invalid tag name "$(npm": Tags may not have any characters that encodeURIComponent encodes.\n' +
    '\n' +
    'npm ERR!      C:\\Users\\l.nardi\\scoop\\persist\\nodejs-lts\\cache\\_logs\\2021-12-29T09_37_57_618Z-debug-0.log\n',
  extra: undefined
}

The offending line ("tail: invalid option -- 1") looks to be this one in the package-build-stats library.
What do you think?
Should I open an issue there?

Yeah that looks like an upstream error. Please open an issue with package-build-stats. Also, what version of node and npm are you using? I'm using node v14.17 and npm v7.12 and I haven't hit this error.

Sorry I forgot to mention that:
node v16.13.1 (LTS)
npm v8.3.0
Anyway, I'll open an issue on package-build-stats, thanks!

I think the node/npm version is causing it, which is unfortunate because you're using LTS. It doesn't look like package-build-stats is maintained too often, so I'll have to remove it from rollpkg if it's not fixed because it should work with LTS.
I'm going to reopen this issue in case other people get this error. If you could link to the package-build-stats issue here that would be great, thanks.

@rafgraph issue opened


E/libc++abi: terminating with uncaught exception of type std::bad_cast: std::bad_cast

Description
As of version 0.62.0, there's a conflict in libc++_shared.so between react-native and tesseract. This issue can be observed with any version of ScanbotSDK, however, it only shows up as of 0.62.0 react-native version.
I already faced SDK linking issues with this version of react-native when I first tried it out. Then found that an additional required step is now adding the following to settings.gradle:
include ':react-native-scanbot-sdk'
project(':react-native-scanbot-sdk').projectDir =
        new File(rootProject.projectDir, '../node_modules/react-native-scanbot-sdk/android/app')

But, as I am posting this, it's still not enough. Workaround and details below.
React Native version:
System:
    OS: macOS 10.15.6
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 3.03 GB / 32.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 12.13.0 - ~/.nvm/versions/node/v12.13.0/bin/node
    npm: 6.12.0 - ~/.nvm/versions/node/v12.13.0/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 13.5, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
    Android SDK:
      API Levels: 26, 28, 29
      Build Tools: 27.0.3, 28.0.3, 29.0.2, 29.0.3
      System Images: android-28 | Google Play Intel x86 Atom
      Android NDK: 21.0.6113669
  IDEs:
    Android Studio: 4.0 AI-193.69<IP_ADDRESS>14223
    Xcode: 11.5/11E608c - /usr/bin/xcodebuild
  npmPackages:
    react: 16.11.0 => 16.11.0
    react-native: 0.62.2 => 0.62.2
  npmGlobalPackages:
    react-native: 0.61.4

Steps To Reproduce

Clone https://github.com/doo/scanbot-sdk-example-react-native/tree/v4.1.0
Change "react-native-scanbot-sdk": "4.1.0-rc2", back to "react-native-scanbot-sdk": "4.1.0-beta10",
react-native run-android
Press Scan MRZ on ID Card
E/libc++abi: terminating with uncaught exception of type std::bad_cast: std::bad_cast

The same can be reproduced with a hello-world app created via npx react-native init AwesomeProject
Expected Results
Well, I'd expect the MRZ Scanner to start. As you can observe when you change "react-native-scanbot-sdk" back to "4.1.0-rc2", where I've implemented the workaround.
Or you can change "react-native" to anything below "0.62", and it will run as expected.
Snack, code example, screenshot, or link to a repository:
Instead of snacking, I'll explain the process and workaround that I found.
First, the issue. When compiling our core with debug symbols attached, I can see that the bad_cast is, in fact, inside tesseract. In a relatively harmless piece of code, nonetheless:
const char* buffer = "NULL 0 NULL 0\n";
std::istringstream stream(buffer);
stream.imbue(std::locale::classic());
// 标 1 0,255,0,255,0,0,0,0,0,0 Han 68 0 68 标  # 标 [6807 ]x
stream >> std::setw(255) >> unichar >> std::hex >> properties >> std::dec;

If I move that same block back into our core, it passes through it with a breeze... but inside tesseract it crashes with the bad_cast exception inside c++ shared library. It cannot find a facet, that should be there in every case.
Well, at this point I was pretty dumbfounded, and cannot debug shared library without debug symbols and with optimizations.
Off to my next adventure: Building the standard library in debug mode. But of course, that cannot be done separately, so I had to download all of Google's monorepo (60gb, woo) and compile the entirety android NDK from source in debug, so I could see what the hell was going on in locale.cpp.
That step was a bit easier than I thought. Just sprinkled some of the following around in different makefiles:
LOCAL_CFLAGS += -O0 -UNDEBUG -g
LOCAL_CPPFLAGS += -O0 -UNDEBUG -g

Now I have the debug build of libc++_shared.so, weighing just shy of 6mb (a bit less than 1mb in release), that I copied to my NDK directory: /Users/$USER/Library/Android/sdk/ndk/19.2.5345600/sources/cxx-stl/llvm-libc++/libs/arm64-v8a
I specifically used the same NDK react-native is compiled with, as described here. And I also built react-native from source, just so I could control every aspect of it and specify which NDK to use in all cases...
And it works. No more crash. Cannot reproduce the issue with the debug build of libc++_shared.so. Well, what now?
So I included the debug build in our SDK and wrote a simple "postinstall" script that copies the binary to project/app/src/main/jniLibs and now the correct c++ standard library is included in the apk.
As you can see, that's still a... well, relatively dirty workaround. Still not sure what exactly changed in react-native builds between versions 0.61 and 0.62 on that level. Anyone?
Thank you for coming to my TED talk

We're experiencing a similar crash in our app after upgrading React Native from 0.61.5 to 0.63.2. While we are not using tesseract, we have our own C++ libraries which have worked fine before. After updating, we are experiencing a std::bad_cast exception in the yaml-cpp library originating from this line, which also uses a basic stringstream operation. In lldb I could verify that key is a valid, null-terminated char array, so the error appears to originate from the standard library itself. The problem persisted after compiling against React Native's NDK version (19.2.5345600).
Interestingly, we were able to 'resolve' the issue by statically linking against the stl (setting the CMake parameter ANDROID_STL=c++_static), after which no exception is thrown and our code appears to run as expected.

I am also facing the same issue on 0.62 and above. Although it seems to be working on 0.61.5 as commented above. I am using an android library which also contains the native libC++_shared.so. I have also checked with the latest NDK, but that does not solve the issue with 0.62 and above.
Waiting for a solution on this.

Hi,
Also experiencing similar issues. Using std such as stringstream stopped working, and causing crashes.
It was working fine when using 0.61.
Hoping to get this fixed.
Thank you.

Any update about this issue?
I get the same issue with "react-native": "0.62.2", anyone can help me resolve this issue?
Thank you!

@Nikituh Can you share your script, file and steps to fix this issue at the moment?

FYI, I can confirm that for us statically linking against the STL (by passing the CMake parameter ANDROID_STL=c++_static) solved the issue for us in simulator and on-device.

@TheLartians Can you give me more detail? I mean steps to do it to resolve this issue. Thank you

Sure, though I'm not sure if this will be of much use to you, as we fixed the issue for our own self-maintained C++ library and don't use tesseract or similar. We simply added the following line to the gradle script, which is responsible for calling CMake.
    externalNativeBuild {
      cmake {
        arguments.add("-DCMAKE_BUILD_TYPE=Release")
+       arguments.add("-DANDROID_STL=c++_static")
        targets.add("path/to/CMake/project")
      }
    }

By statically linking against the STD, our library will not use the libc++_shared.so that is used by React Native, which fixed the crash for us. I guess a similar patch could temporarily fix tesseract as well, but I don't really know how it's built for React Native.

@TheLartians Thank you, I had to try it, it's no more crash but the app always reopens and not work as well. I think I'll downgrade to RN 0.61 and waiting for RN fix this problem!

@minhchienwikipedia I wouldn't count on the RN team addressing this issue any time soon. Not because I do not have faith in them, but simply because it's very difficult to even diagnose what exactly is causing this issue. My best guess is it'll happen when they upgrade the NDK.
Anyway, everything I did, with the jnilibs directory and custom libc++_shared.so build, is openly available within the package: https://www.npmjs.com/package/react-native-scanbot-sdk 😄

@Nikituh I resolved this issue by custom libc++_shared.so, thank you so much :D

Having the same problem with react-native 0.63.2

This issue is preventing me upgrading from 0.61

It seems to be a problem caused by the flipper library, and the restoration of the 0.61.0 flipper integration method seems to take effect
If it goes back to 0.61.0, it seems that the picture is not rendered on ios 14.x devices?

Hi,
Any expected date to fix this issue? Hoe can we get the React-Native team to respond?
This issue was opened on July 15 and I have yet see any response from the react team....

Any updates?

Any updates?

Any updates?

I got this issue when implementing latest ZoomSDK. Please fix this.

将Android NDK中C++ STL库动态链接改为静态链接
externalNativeBuild {
cmake {
cppFlags ""
arguments "-DANDROID_STL=c++_static" //c++_shared
}
}

将Android NDK中C ++ STL库动态链接 替换为静态链接
externalNativeBuild {
cmake {
cppFlags“”
参数“ -DANDROID_STL = c ++ _ static” // c ++ _ shared
}
}

可解决.so库冲突问题

Having the same issue when using the HERE map sdk.

Having Same issue with react-native v.0.63.3 with ArcGIS SDK v100.10.0 on Android
Please Check Below repository for reproducing this issue.
https://github.com/bibinprathap/ReactNative0.63.xarcgis

After upgrading to react-native v0.64.0 , ArcGIS SDK v100.10.0 is working fine on android

@minhchienwikipedia I wouldn't count on the RN team addressing this issue any time soon. Not because I do not have faith in them, but simply because it's very difficult to even diagnose what exactly is causing this issue. My best guess is it'll happen when they upgrade the NDK.
Anyway, everything I did, with the jnilibs directory and custom libc++_shared.so build, is openly available within the package: https://www.npmjs.com/package/react-native-scanbot-sdk 😄

I would just like to say you are a life saver!

I must say, having someone on GitHub tell me I'm a lifesaver is very humbling. Some day I'm going to tell my grandchildren about this.
Anyway, I also tried it out and, as @bibinprathap mentioned, this does, indeed, appear to be solved in v0.64.0. However, I'm reluctant to remove my workaround without a proper explanation of what the hell was going on.

I am running v0.64.0 and it wasn't working for me until I added your files. However, my use case is a bit different. I am integrating OpenCV Android SDK v4.5.2 with React Native

For my test, upgraded based on the guide here: https://react-native-community.github.io/upgrade-helper/?from=0.63.4&to=0.64.0
And I believe, specifically, the following line that forces a specific ndk version may be relevant:
ndkVersion = "20.1.5948944"

That could be it. I had updated my NDK version to 22.1.7171670 prior to finding this solution. And the project I created, was already on v0.64.0. No need to upgrade RN version for me.

We regularly update NDK version used in RN, and Android NDK deprecated libstdc++, then switched to libc++, so we had to switch from to libc++. See https://developer.android.com/ndk/guides/cpp-support
Also there is a notice for library developers.

Caution: JNI libraries distributed with Java AARs must not use the shared runtime to avoid conflicting with other libraries and the app. The warnings below still apply. See the documentation for Middleware Vendors for more information.

So I think it's best to file an issue to third party library provider

The problem may come from conflict version of libc++_shared.so (between r20 and r21)
scanbot sdk bundled libc++_shared.so with ndk r21.
checked from the sdk 1.70.1 here
react native 0.62/0.63 bundled with ndk r20
some suggestion to add packagingOptions.pickFirst in build.gradle, but the reality is that which libc++_shared.so to be picked is uncertain.
that's why i proposed to remove packagingOptions.pickFirst in react native template after 0.63.
even as far as i know, ndk maintains ABI stability well between updates.
don't know what happened between ndk r20 and r21.
the formal solution might be to build react native from source with ndk r21 + pickFirst (assuming scanbot sdk cannot build from source).
but if what @Nikituh mention that react native 0.64 fixed the problem, maybe ndk fixed the compatibility issue after r20b (react native 0.64 bump ndk to r20b)

Hi,
In the past weeks, I tried to investigate the issue, and apparently, the only solution for it (unless Facebook solves the issue before) is to build your native code using the static version of libc++.
In addition, I kept looking for workarounds, and today I found a one, which some of you (including me) will call dirty or nasty - but it works.
I am sharing it with you so can provide your opinions on it (and maybe use it too...).
In the method onCreate() of the RN's class MainApplication.java was changed so its first action is loading libc++_shared.so to the app's memory before any other library RN's code loads:
From:
@Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
    initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
  }

To:
@Override
  public void onCreate() {
    System.loadLibrary("c++_shared");
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
    initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
  }

The reason I took the liberty to make this change is that this class must change whenever a Native module is added to the RN class (See RN's documentation https://reactnative.dev/docs/0.61/native-modules-android#register-the-module) ...
In order to test the change, I used two examples:

The sample code that fails, which is included in the issue's description (with some minor adaptations...) -
(Verified that the substring "NULL" from buffer is no successfully assigned to unichar)

const char* buffer = "NULL 0 NULL 0\n";
std::istringstream stream(buffer);
stream.imbue(std::locale::classic());
// 标 1 0,255,0,255,0,0,0,0,0,0 Han 68 0 68 标  # 标 [6807 ]x
stream >> std::setw(255) >> unichar >> std::hex >> properties >> std::dec;

A conversion from a string to a number, which failed In my company's code:

std::string in_str_ = "1234";
   double out_number_ = 0.0;
   std::istringstream iss(in_str_);
   iss >> out_number_;

Thanks
Shay

Hi @Kudo,
Last week I found a workaround to the above failure - by explicitly loading libc++_shared.so before RN loads its own Native Shared Libraries.
This change does not require any other change and was verified on different RN apps.
If the issue is still relevant for you, I will be more than happy to have your comments on it.
Thanks
Shay

@Zshay2203 , you're a rockstar. Though I am still struggling to figure out the future impacts with react native after applying this fix. Do you have any updates on this?

 Though I am still struggling to figure out the future impacts with react native after applying this fix. Do you have any updates on this?

@murtazabeans, You've got me, I am actually Elvis Presley ...
Thanks for the compliment!
Regarding your question, a couple of customers of the company I am working for have applied the workaround in their app without any side effects.
Thinking logically, I really don't think this fix should have any side effect on RN's functionality for the following reasons:

As stated in the issue's description, a call to a steam's ">>" operator fails due to a missing facet. Using Android
Studio's debugger, I reached the point of failure: Attempt to read an invalid value, which is stored in _Facet::id -
in the file: __locale under /sources/cxx-stl/llvm-libc++/include:

template <class _Facet>
inline _LIBCPP_INLINE_VISIBILITY
const _Facet&
use_facet(const locale& __l)
{
    return static_cast<const _Facet&>(*__l.use_facet(_Facet::id));
}

My 100% guess is that RN's c++ code sets a locale with it starts when it does not have a specific value, and probably deallocates but its reference is stored in _Facet::id.

Since the failure lies deep inside a commonly used C++ STL code and ONLY the C++ of RN Bridges is affected by it and not a C++ code of RN then I can conclude that RN does not use it at all.

It would be great if one of RN's developers could comment on that.
thanks again
Shay

@Zshay2203 , I think react native team should update the NDK. Currently the ndk used by react native is 20.1.5948944 which is marked as Unsupported type. It will resolve the problem if the ndk is updated sometime in future.
I have opened a bug on their team for this - https://github.com/facebook/react-native/issues/31701

Here still waiting for the fix from RN. I have issue with amazon-chime-sdk


No Javavi library classes found

when I open vim, There is a error.
No Javavi library classes found, it means that we couldn't compile it. Do you have JDK8+ installed?
I'm sure that my centos system has java8.

OS: Centos 7
Vim version: 8.0

Where there is wrong?

#220 #165

thank you for your help. this issue has been resolved according to #165

Nice, can we close it?


Event based system

Poll memory less often by moving to an event based system. This will increase performance when using speed-up and make development easier going forward.

Implemented in ae11d936b073a1861594b1773c8ce773f12162ce


Possible interaction between referential actions and raw queries?

Hi Prisma Team! My Prisma Client just crashed. This is the report:
Versions

Name
Version

Node
v14.17.1

OS
debian-openssl-1.1.x

Prisma Client
2.26.0

Query Engine
query-engine 9b816b3aa13cc270074f172f30d6eda8a8ce867d

Database
undefined

Description
It seems there might be an unexpected interaction between FK violation and raw queries?
It's the Error in PostgreSQL connection: Error { kind: Closed, cause: None } again which I didn't see for a while since I use a retry middleware.
Logs
0T08:21:09.726Z prisma:client Prisma Client call:
prisma:client prisma.queryRaw(
    SELECT
      start_ts AS timestamp,
      COUNT(ticket.id) AS value
    FROM
      generate_series($1::TIMESTAMP, $2::TIMESTAMP, $3::TEXT::INTERVAL) AS start_ts
      ... --Private part
    GROUP by start_ts
    ORDER BY start_ts
  , [{"prisma__type":"date","prisma__value":"2021-03-01T06:00:00.000Z"},{"prisma__type":"date","prisma__value":"2021-07-11T05:00:00.000Z"},"1 day",29,"1 day"])
prisma:client Prisma Client call:
prisma:client prisma.queryRaw(
    SELECT
      start_ts AS timestamp,
      COUNT(ticket.id) AS value
    FROM
      generate_series($1::TIMESTAMP, $2::TIMESTAMP, $3::TEXT::INTERVAL) AS start_ts
       ... --Private part
    GROUP by start_ts
    ORDER BY start_ts
  , [{"prisma__type":"date","prisma__value":"2021-03-01T06:00:00.000Z"},{"prisma__type":"date","prisma__value":"2021-07-11T05:00:00.000Z"},"1 day",2266,29,"1 day"])
prisma:client Prisma Client call:
prisma:client prisma.queryRaw(
    SELECT
      start_ts AS timestamp,
      COUNT(ticket.id) AS value
    FROM
      generate_series($1::TIMESTAMP, $2::TIMESTAMP, $3::TEXT::INTERVAL) AS start_ts
       ... --Private part
    GROUP by start_ts
    ORDER BY start_ts
  , [{"prisma__type":"date","prisma__value":"2021-03-01T05:00:00.000Z"},{"prisma__type":"date","prisma__value":"2021-07-11T04:00:00.000Z"},"1 day",359,"1 day"])
prisma:client Prisma Client call:
prisma:client prisma.queryRaw(
    SELECT
      start_ts AS timestamp,
      COUNT(ticket.id) AS value
    FROM
      generate_series($1::TIMESTAMP, $2::TIMESTAMP, $3::TEXT::INTERVAL) AS start_ts
       ... --Private part
    GROUP by start_ts
    ORDER BY start_ts
  , [{"prisma__type":"date","prisma__value":"2021-03-01T05:00:00.000Z"},{"prisma__type":"date","prisma__value":"2021-07-11T04:00:00.000Z"},"1 day",382,"1 day"])
prisma:client Prisma Client call:
prisma:engine {
  error: Error: Error occurred during query execution:
  ConnectorError(ConnectorError { user_facing_error: Some(KnownError { message: "Foreign key constraint failed on the field: `ticket_refund_refund_id_fkey (index)`", meta: Object({"field_name": String("ticket_refund_refund_id_fkey (index)")}), error_code: "P2003" }), kind: ForeignKeyConstraintViolation { constraint: Index("ticket_refund_refund_id_fkey") } })
      at /app/node_modules/.prisma/client/runtime/index.js:28009:19
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:95:5)
}
prisma:engine {
  error: Error: Error occurred during query execution:
  ConnectorError(ConnectorError { user_facing_error: Some(KnownError { message: "Foreign key constraint failed on the field: `ticket_refund_refund_id_fkey (index)`", meta: Object({"field_name": String("ticket_refund_refund_id_fkey (index)")}), error_code: "P2003" }), kind: ForeignKeyConstraintViolation { constraint: Index("ticket_refund_refund_id_fkey") } })
      at /app/node_modules/.prisma/client/runtime/index.js:28009:19
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:95:5)
}
prisma:engine {
  error: Error: Error occurred during query execution:
  ConnectorError(ConnectorError { user_facing_error: Some(KnownError { message: "Foreign key constraint failed on the field: `ticket_refund_refund_id_fkey (index)`", meta: Object({"field_name": String("ticket_refund_refund_id_fkey (index)")}), error_code: "P2003" }), kind: ForeignKeyConstraintViolation { constraint: Index("ticket_refund_refund_id_fkey") } })
      at /app/node_modules/.prisma/client/runtime/index.js:28009:19
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:95:5)
}

Hmm, let me know if you saw this again after this. The information provided and the log trace aren't enough to narrow this down.

Yeah I need to try to create a repro, its on my todo for this week. Thanks for the reminder!

6 months later no further information, so I think we can consider this solved.
If this ever happens again, please comment here or even better - create a new issue. Thanks.


Testing

New tests, that fail for now.
However we should make them work as they're testing cases we have to handle.
See #21
Note: this PR should be closed without merging if #20 is merged, as some functions have been renamed

Just go ahead and merge the stream implementation as I will not rework the other implementation for now.

Closed because #20 have been merged


Code style enforcement, linting, package metadata

Noticed that the PyPI page for the current release is completely empty (not entirely sure why, but the sdist metadata is basically empty, aside from a curious link to LICENSE.txt, which was not shipped with the sdist; I didn't try to reproduce the problem, but building an sdist and wheel sets the metadata correctly for me now) and ended up copypasting most of the Python-related code quality stuff from the Substrait validator over to jdot.

Add formatting using black (CI + pre-commit)
Add linting using flake8 (CI + pre-commit)
Add license headers + check thereof (CI)
Add a bit more metadata to the package (trove classifiers etc)
Hopefully fix the complete lack of metadata on PyPI by explicitly including it and LICENSE.txt using MANIFEST.in

I didn't try to reproduce the problem, but building an sdist and wheel sets the metadata correctly for me now)

The setup.py was missing the relevant metadata! I noticed after having shipped to PyPi. Added it in for the next release.

But of course that this is now failing and delaying the merge is half of why I don't like black :)

To be honest, I only use it because the VD Python guidelines tell me to, and because I do think some level of style enforcement is good in open source. I never use it in my own projects.
There's also a pre-commit hook for it that should be pinned to exactly the same version, so you don't need to rely on CI telling you it doesn't like a blank line somewhere. Should hopefully ease the pain a little :)


Rename script to fix mypy linting

Mypy has a really awkward error when two files with the same name exist, so just rename this file.

Looks good to me


Istio upgrade from 1.4 to 1.5: failed to generate IOPS from file, error: could not overlay user config over base

We are trying to upgrade Istio from 1.4.5 to 1.5.4. Below are the steps that we have followed:

Installed 1.4.5 with SDS enabled:

istioctl manifest apply \
  --set values.gateways.istio-ingressgateway.sds.enabled=true \
  --set values.global.k8sIngress.enabled=true \
  --set values.global.k8sIngress.enableHttps=true \
  --set values.global.k8sIngress.gatewayName=ingressgateway > $HOME/generated-manifest.yaml

Deleted the istio-ingressgateway deployment, added our application-specific container to the deployment and re-deployed this pod.
Deployed the applications in the cluster.
Downloaded Istio 1.5.4
Since SDS was enabled, we generated the new YAML as below (and added the application-specific container in the Deployment of istio-ingressgateway)

istioctl manifest generate \
--set values.gateways.istio-egressgateway.enabled=false \
--set values.gateways.istio-ingressgateway.sds.enabled=true > \
$HOME/istio-ingressgateway_new.yaml

On trying to upgrade, we are facing the below error:
istioctl upgrade -f istio-ingressgateway_new.yaml
2020-07-05T09:50:44.152116Z     info    Error: failed to generate IOPS from file [istio-ingressgateway_new.yaml], error: could not overlay user config over base: json merge error (Invalid JSON Patch) for base object:
	{"apiVersion":"install.istio.io/v1alpha1","kind":"IstioOperator","metadata":{"namespace":"istio-system"},"spec":{"addonComponents":{"grafana":{"enabled":false,"k8s":{"replicaCount":1}},"istiocoredns":{"enabled":false},"kiali":{"enabled":false,"k8s":{"replicaCount":1}},"prometheus":{"enabled":true,"k8s":{"replicaCount":1}},"tracing":{"enabled":false}},"components":{"base":{"enabled":true},"citadel":{"enabled":false,"k8s":{"strategy":{"rollingUpdate":{"maxSurge":"100%","maxUnavailable":"25%"}}}},"cni":{"enabled":false},"egressGateways":[{"enabled":false,"k8s":{"env":[{"name":"ISTIO_META_ROUTER_MODE","value":"sni-dnat"}],"hpaSpec":{"maxReplicas":5,"metrics":[{"resource":{"name":"cpu","targetAverageUtilization":80},"type":"Resource"}],"minReplicas":1,"scaleTargetRef":{"apiVersion":"apps/v1","kind":"Deployment","name":"istio-egressgateway"}},"resources":{"limits":{"cpu":"2000m","memory":"1024Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"service":{"ports":[{"name":"http2","port":80},{"name":"https","port":443},{"name":"tls","port":15443,"targetPort":15443}]},"strategy":{"rollingUpdate":{"maxSurge":"100%","maxUnavailable":"25%"}}},"name":"istio-egressgateway"}],"galley":{"enabled":false,"k8s":{"replicaCount":1,"resources":{"requests":{"cpu":"100m"}},"strategy":{"rollingUpdate":{"maxSurge":"100%","maxUnavailable":"25%"}}}},"ingressGateways":[{"enabled":true,"k8s":{"env":[{"name":"ISTIO_META_ROUTER_MODE","value":"sni-dnat"}],"hpaSpec":{"maxReplicas":5,"metrics":[{"resource":{"name":"cpu","targetAverageUtilization":80},"type":"Resource"}],"minReplicas":1,"scaleTargetRef":{"apiVersion":"apps/v1","kind":"Deployment","name":"istio-ingressgateway"}},"resources":{"limits":{"cpu":"2000m","memory":"1024Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"service":{"ports":[{"name":"status-port","port":15020,"targetPort":15020},{"name":"http2","port":80,"targetPort":80},{"name":"https","port":443},{"name":"kiali","port":15029,"targetPort":15029},{"name":"prometheus","port":15030,"targetPort":15030},{"name":"grafana","port":15031,"targetPort":15031},{"name":"tracing","port":15032,"targetPort":15032},{"name":"tls","port":15443,"targetPort":15443},{"name":"tcp","port":31400}]},"strategy":{"rollingUpdate":{"maxSurge":"100%","maxUnavailable":"25%"}}},"name":"istio-ingressgateway"}],"nodeAgent":{"enabled":false},"pilot":{"enabled":true,"k8s":{"env":[{"name":"POD_NAME","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"metadata.name"}}},{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"metadata.namespace"}}}],"readinessProbe":{"httpGet":{"path":"/ready","port":8080},"initialDelaySeconds":5,"periodSeconds":5,"timeoutSeconds":5},"resources":{"requests":{"cpu":"500m","memory":"2048Mi"}},"strategy":{"rollingUpdate":{"maxSurge":"100%","maxUnavailable":"25%"}}}},"policy":{"enabled":false,"k8s":{"env":[{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"metadata.namespace"}}}],"hpaSpec":{"maxReplicas":5,"metrics":[{"resource":{"name":"cpu","targetAverageUtilization":80},"type":"Resource"}],"minReplicas":1,"scaleTargetRef":{"apiVersion":"apps/v1","kind":"Deployment","name":"istio-policy"}},"strategy":{"rollingUpdate":{"maxSurge":"100%","maxUnavailable":"25%"}}}},"sidecarInjector":{"enabled":false,"k8s":{"replicaCount":1,"strategy":{"rollingUpdate":{"maxSurge":"100%","maxUnavailable":"25%"}}}},"telemetry":{"enabled":false,"k8s":{"env":[{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"metadata.namespace"}}},{"name":"GOMAXPROCS","value":"6"}],"hpaSpec":{"maxReplicas":5,"metrics":[{"resource":{"name":"cpu","targetAverageUtilization":80},"type":"Resource"}],"minReplicas":1,"scaleTargetRef":{"apiVersion":"apps/v1","kind":"Deployment","name":"istio-telemetry"}},"replicaCount":1,"resources":{"limits":{"cpu":"4800m","memory":"4G"},"requests":{"cpu":"1000m","memory":"1G"}},"strategy":{"rollingUpdate":{"maxSurge":"100%","maxUnavailable":"25%"}}}}},"hub":"docker.io/istio","tag":"1.5.4","values":{"clusterResources":true,"galley":{"enableAnalysis":false,"image":"galley"},"gateways":{"istio-egressgateway":{"autoscaleEnabled":true,"name":"istio-egressgateway","secretVolumes":[{"mountPath":"/etc/istio/egressgateway-certs","name":"egressgateway-certs","secretName":"istio-egressgateway-certs"},{"mountPath":"/etc/istio/egressgateway-ca-certs","name":"egressgateway-ca-certs","secretName":"istio-egressgateway-ca-certs"}],"type":"ClusterIP"},"istio-ingressgateway":{"applicationPorts":"","autoscaleEnabled":true,"debug":"info","domain":"","meshExpansionPorts":[{"name":"tcp-pilot-grpc-tls","port":15011,"targetPort":15011},{"name":"tcp-istiod","port":15012,"targetPort":15012},{"name":"tcp-citadel-grpc-tls","port":8060,"targetPort":8060},{"name":"tcp-dns-tls","port":853,"targetPort":853}],"name":"istio-ingressgateway","sds":{"enabled":false,"image":"node-agent-k8s","resources":{"limits":{"cpu":"2000m","memory":"1024Mi"},"requests":{"cpu":"100m","memory":"128Mi"}}},"secretVolumes":[{"mountPath":"/etc/istio/ingressgateway-certs","name":"ingressgateway-certs","secretName":"istio-ingressgateway-certs"},{"mountPath":"/etc/istio/ingressgateway-ca-certs","name":"ingressgateway-ca-certs","secretName":"istio-ingressgateway-ca-certs"}],"type":"LoadBalancer","zvpn":{"enabled":false,"suffix":"global"}}},"global":{"arch":{"amd64":2,"ppc64le":2,"s390x":2},"certificates":[],"configValidation":true,"controlPlaneSecurityEnabled":true,"defaultNodeSelector":{},"defaultPodDisruptionBudget":{"enabled":true},"defaultResources":{"requests":{"cpu":"10m"}},"disablePolicyChecks":true,"enableHelmTest":false,"enableTracing":true,"imagePullPolicy":"IfNotPresent","imagePullSecrets":[],"istioNamespace":"istio-system","istiod":{"enabled":true},"jwtPolicy":"third-party-jwt","k8sIngress":{"enableHttps":false,"enabled":false,"gatewayName":"ingressgateway"},"localityLbSetting":{"enabled":true},"logAsJson":false,"logging":{"level":"default:info"},"meshExpansion":{"enabled":false,"useILB":false},"meshNetworks":{},"mountMtlsCerts":false,"mtls":{"auto":true,"enabled":false},"multiCluster":{"clusterName":"","enabled":false},"network":"","omitSidecarInjectorConfigMap":false,"oneNamespace":false,"operatorManageWebhooks":false,"outboundTrafficPolicy":{"mode":"ALLOW_ANY"},"pilotCertProvider":"istiod","policyCheckFailOpen":false,"priorityClassName":"","proxy":{"accessLogEncoding":"TEXT","accessLogFile":"","accessLogFormat":"","autoInject":"enabled","clusterDomain":"cluster.local","componentLogLevel":"misc:error","concurrency":2,"dnsRefreshRate":"300s","enableCoreDump":false,"envoyAccessLogService":{"enabled":false,"host":null,"port":null},"envoyMetricsService":{"enabled":false,"host":null,"port":null,"tcpKeepalive":{"interval":"10s","probes":3,"time":"10s"},"tlsSettings":{"caCertificates":null,"clientCertificate":null,"mode":"DISABLE","privateKey":null,"sni":null,"subjectAltNames":[]}},"envoyStatsd":{"enabled":false,"host":null,"port":null},"excludeIPRanges":"","excludeInboundPorts":"","excludeOutboundPorts":"","image":"proxyv2","includeIPRanges":"*","includeInboundPorts":"*","kubevirtInterfaces":"","logLevel":"warning","privileged":false,"protocolDetectionTimeout":"100ms","readinessFailureThreshold":30,"readinessInitialDelaySeconds":1,"readinessPeriodSeconds":2,"resources":{"limits":{"cpu":"2000m","memory":"1024Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"statusPort":15020,"tracer":"zipkin"},"proxy_init":{"image":"proxyv2","resources":{"limits":{"cpu":"100m","memory":"50Mi"},"requests":{"cpu":"10m","memory":"10Mi"}}},"sds":{"enabled":false,"token":{"aud":"istio-ca"},"udsPath":""},"sts":{"servicePort":0},"tracer":{"datadog":{"address":"$(HOST_IP):8126"},"lightstep":{"accessToken":"","address":"","cacertPath":"","secure":true},"stackdriver":{"debug":false,"maxNumberOfAnnotations":200,"maxNumberOfAttributes":200,"maxNumberOfMessageEvents":200},"zipkin":{"address":""}},"trustDomain":"cluster.local","useMCP":false},"grafana":{"accessMode":"ReadWriteMany","contextPath":"/grafana","dashboardProviders":{"dashboardproviders.yaml":{"apiVersion":1,"providers":[{"disableDeletion":false,"folder":"istio","name":"istio","options":{"path":"/var/lib/grafana/dashboards/istio"},"orgId":1,"type":"file"}]}},"datasources":{"datasources.yaml":{"apiVersion":1,"datasources":null}},"env":{},"envSecrets":{},"image":{"repository":"grafana/grafana","tag":"6.5.2"},"ingress":{"annotations":null,"enabled":false,"hosts":["grafana.local"],"tls":null},"nodeSelector":{},"persist":false,"podAntiAffinityLabelSelector":[],"podAntiAffinityTermLabelSelector":[],"security":{"enabled":false,"passphraseKey":"passphrase","secretName":"grafana","usernameKey":"username"},"service":{"annotations":{},"externalPort":3000,"loadBalancerIP":null,"loadBalancerSourceRanges":null,"name":"http","type":"ClusterIP"},"storageClassName":"","tolerations":[]},"istiocoredns":{"coreDNSImage":"coredns/coredns","coreDNSPluginImage":"istio/coredns-plugin:0.2-istio-1.1","coreDNSTag":"1.6.2"},"kiali":{"contextPath":"/kiali","createDemoSecret":false,"dashboard":{"grafanaInClusterURL":"http://grafana:3000","grafanaURL":null,"jaegerInClusterURL":"http://tracing/jaeger","jaegerURL":null,"passphraseKey":"passphrase","secretName":"kiali","usernameKey":"username","viewOnlyMode":false},"hub":"quay.io/kiali","ingress":{"annotations":null,"enabled":false,"hosts":["kiali.local"],"tls":null},"nodeSelector":{},"podAntiAffinityLabelSelector":[],"podAntiAffinityTermLabelSelector":[],"prometheusNamespace":null,"security":{"cert_file":"/kiali-cert/cert-chain.pem","enabled":false,"private_key_file":"/kiali-cert/key.pem"},"tag":"v1.15"},"mixer":{"adapters":{"kubernetesenv":{"enabled":true},"prometheus":{"enabled":true,"metricsExpiryDuration":"10m"},"stackdriver":{"auth":{"apiKey":"","appCredentials":false,"serviceAccountPath":""},"enabled":false,"tracer":{"enabled":false,"sampleProbability":1}},"stdio":{"enabled":false,"outputAsJson":false},"useAdapterCRDs":false},"policy":{"adapters":{"kubernetesenv":{"enabled":true},"useAdapterCRDs":false},"autoscaleEnabled":true,"image":"mixer","sessionAffinityEnabled":false},"telemetry":{"autoscaleEnabled":true,"env":{"GOMAXPROCS":"6"},"image":"mixer","loadshedding":{"latencyThreshold":"100ms","mode":"enforce"},"nodeSelector":{},"podAntiAffinityLabelSelector":[],"podAntiAffinityTermLabelSelector":[],"replicaCount":1,"reportBatchMaxEntries":100,"reportBatchMaxTime":"1s","sessionAffinityEnabled":false,"tolerations":[]}},"nodeagent":{"image":"node-agent-k8s"},"pilot":{"appNamespaces":[],"autoscaleEnabled":true,"autoscaleMax":5,"autoscaleMin":1,"configMap":true,"configNamespace":"istio-config","cpu":{"targetAverageUtilization":80},"deploymentLabels":null,"enableProtocolSniffingForInbound":false,"enableProtocolSniffingForOutbound":true,"env":{},"image":"pilot","ingress":{"ingressClass":"istio","ingressControllerMode":"STRICT","ingressService":"istio-ingressgateway"},"keepaliveMaxServerConnectionAge":"30m","meshNetworks":{"networks":{}},"nodeSelector":{},"podAntiAffinityLabelSelector":[],"podAntiAffinityTermLabelSelector":[],"policy":{"enabled":false},"replicaCount":1,"tolerations":[],"traceSampling":1},"prometheus":{"contextPath":"/prometheus","hub":"docker.io/prom","ingress":{"annotations":null,"enabled":false,"hosts":["prometheus.local"],"tls":null},"nodeSelector":{},"podAntiAffinityLabelSelector":[],"podAntiAffinityTermLabelSelector":[],"provisionPrometheusCert":true,"retention":"6h","scrapeInterval":"15s","security":{"enabled":true},"tag":"v2.15.1","tolerations":[]},"security":{"dnsCerts":{"istio-pilot-service-account.istio-control":"istio-pilot.istio-control"},"enableNamespacesByDefault":true,"image":"citadel","selfSigned":true},"sidecarInjectorWebhook":{"enableNamespacesByDefault":false,"image":"sidecar_injector","injectLabel":"istio-injection","objectSelector":{"autoInject":true,"enabled":false},"rewriteAppHTTPProbe":true,"selfSigned":false},"telemetry":{"enabled":true,"v1":{"enabled":false},"v2":{"enabled":true,"prometheus":{"enabled":true},"stackdriver":{"configOverride":{},"enabled":false,"logging":false,"monitoring":false,"topology":false}}},"tracing":{"ingress":{"annotations":null,"enabled":false,"hosts":null,"tls":null},"jaeger":{"accessMode":"ReadWriteMany","hub":"docker.io/jaegertracing","memory":{"max_traces":50000},"persist":false,"spanStorageType":"badger","storageClassName":"","tag":"1.16"},"nodeSelector":{},"opencensus":{"exporters":{"stackdriver":{"enable_tracing":true}},"hub":"docker.io/omnition","resources":{"limits":{"cpu":"1","memory":"2Gi"},"requests":{"cpu":"200m","memory":"400Mi"}},"tag":"0.1.9"},"podAntiAffinityLabelSelector":[],"podAntiAffinityTermLabelSelector":[],"provider":"jaeger","service":{"annotations":{},"externalPort":9411,"name":"http-query","type":"ClusterIP"},"zipkin":{"hub":"docker.io/openzipkin","javaOptsHeap":700,"maxSpans":500000,"node":{"cpus":2},"probeStartupDelay":200,"queryPort":9411,"resources":{"limits":{"cpu":"300m","memory":"900Mi"},"requests":{"cpu":"150m","memory":"900Mi"}},"tag":"2.14.2"}},"version":""}}}
	 override object:
	null

Tried again by removing our application container and generated a new file with only SDS enabled for istio-ingressgateway pod. On re-running the command, we faced the same error again. We also tried to upgrade using --force option, but it did not work.
istioctl version
client version: 1.5.4
control plane version: 1.4.5
data plane version: 1.4.5 (39 proxies)

kubectl version
Client Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.7-eks-fa4c70", GitCommit:"fa4c703fa1706fac99d00d7f1f2080e9d4cc7eed", GitTreeState:"clean", BuildDate:"2019-07-23T03:14:24Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14+", GitVersion:"v1.14.10-gke.36", GitCommit:"34a615f32e9a0c9e97cdb9f749adb392758349a6", GitTreeState:"clean", BuildDate:"2020-04-06T16:33:17Z", GoVersion:"go1.12.12b4", Compiler:"gc", Platform:"linux/amd64"}

Environment: GKE
OS: ubuntu

maybe you can try this:
istioctl upgrade \
--set values.gateways.istio-egressgateway.enabled=false \
--set values.gateways.istio-ingressgateway.sds.enabled=true

istioctl upgrade -f only take a IstioOperator file as input. Here is an example: https://github.com/istio/istio/blob/release-1.5/operator/data/profiles/minimal.yaml. See more here: https://istio.io/latest/docs/setup/install/istioctl/#customize-istio-settings-using-the-helm-api

Sorry for the delay in response! So here is what we tried:
Downloaded and installed Istio 1.5.4
istioctl version:
client version: 1.5.4
control plane version: 1.4.5

Then ran the below command
istioctl upgrade \
--set values.gateways.istio-egressgateway.enabled=false \
--set values.gateways.istio-ingressgateway.sds.enabled=true

Got the below error:
Control Plane - citadel pod - istio-citadel-58bb67f9b8-k84gc - version: 1.4.5
Control Plane - ingressgateway pod - istio-ingressgateway-6c6798bb48-9zmhn - version: 1.4.5
Control Plane - policy pod - istio-policy-8497c5dcb-5ttvk - version: 1.4.5
Control Plane - sidecar-injector pod - istio-sidecar-injector-774969d686-h9crx - version: 1.4.5
Control Plane - telemetry pod - istio-telemetry-7dc697b9d5-hf6wq - version: 1.4.5

Upgrade version check passed: 1.4.5 -> 1.5.4.

2020-07-14T12:31:15.070999Z     info    Error: failed to generate IOPS from file: [] for the current version: 1.4.5, error: chart minor version 1.4.5 doesn't match istioctl version 1.5.0, use --force to override

Error: failed to generate IOPS from file: [] for the current version: 1.4.5, error: chart minor version 1.4.5 doesn't match istioctl version 1.5.0, use --force to override

So we retried by adding --force to the command. This worked. But when we checked the version using istioctl version, this is what we got:
client version: 1.5.4
ingressgateway version: 1.4.5
ingressgateway version: 1.5.4
pilot version: 1.5.4
data plane version: 1.5.4 (2 proxies), 1.4.5 (12 proxies)

And on querying kubectl get pods -n istio-system, we can see that there are 2 istio-ingressgateway pods
NAME                                    READY   STATUS    RESTARTS   AGE
istio-ingressgateway-6c6798bb48-9zmhn   2/2     Running   0          21h
istio-ingressgateway-7c6759fd94-rtzn9   0/1     Running   0          35m
istiod-5946699c7f-lmcnq                 1/1     Running   0          36m
prometheus-bcd6cf48d-v99mb              2/2     Running   0          35m

This does not seem to be correct and the output of istioctl version  also shows some differences.


[Chore] Revisit dependabot reviewer assignments for Meshery Components

Current Behavior
Stale or missing reviewer assignments in some of the components.
Desired Behavior
Identify ideal reviewer. Confirm assignment with them. Update assignment.

Contributor Guides and Resources

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation

Meshery documentation site and source

🎨 Wireframes and designs for Meshery UI in Figma
🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack

@meshery/adapter-maintainers let's divide and conquer the responsibilities here. Who would like to responsible for dependency updates on which adapter(s)?

Hi @Aisuko I'm responsible for linkerd2 and osm. And If there any other adapter need to support. You can assign me directly.

@Aisuko awesome. 💪

@leecalcote oh, right. If I remember right we can add the Owner file to the project and related the permission to the team name. Some like
https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-syntax

Right on. In this case, in dependabot.yml

Oh, dependabot.yaml looks the best for this situation.

@DelusionalOptimist will this continue to be you? https://github.com/meshery/meshery-operator/blob/master/.github/dependabot.yml

@navendu-pottekkat @hexxdump @piyushsingariya?

@leecalcote Please add me to the operator project. I'd like to add the suit_test for the operator project in this month.

I can take any docs dependency updates or any jekyll related updates. For layer5io, if @Nikhil-Ladha is okay with it, he and I can take that up.

I can take any docs dependency updates or any jekyll related updates. For layer5io, if @Nikhil-Ladha is okay with it, he and I can take that up.

Sure Aditya, please do that.


Go to definition, but how to go back quickly? any short key?

Go to definion, but how to go back quickly? any short key?
Press F12 or CTRL +click will go to the definition. but we want go back quickly.
such as CTRL+ALT+backspace?

There is a Back command in the Goto menu which goes back to the last cursor position. I think it defaults to alt+leftarrow.

Thanks, but the right key was CTRL+ALT+-


java.lang.NoClassDefFoundError: rx.schedulers.Schedulers

compile 'com.j256.ormlite:ormlite-android:4.48'
compile 'com.j256.ormlite:ormlite-core:4.48'
compile 'io.reactivex:rxandroid:1.1.0'
compile 'io.reactivex:rxjava:1.1.0'
For a strange cause, I am getting "java.lang.NoClassDefFoundError: rx.schedulers.Schedulers" when I try to compile in a device with Android 4.4.4, api 19 and ORMLite.
I don't have such problem without ORMLite nor in device with api 23.
Some one know why my "reactive package" is bing excluded from my apk ?

I am facing same issue with LoogerFactory class.
Caused by: java.lang.NoClassDefFoundError: com.j256.ormlite.logger.LoggerFactory
Anyone what is the solution to this issue?
Sincerely,
Shreyash

This is a different issue @ShreyashPromact .  You are most likely missing the core library.  RTFM.

@j256
I have added core library in the project. Anyway, The issue is because of the multi dex. I have import the project from eclipse to Android studio and then I got this issue. When I have added multi dex properly and it is resolved now.
Thanks.

NoClassDefFoundError often happens when the build tools and/or hot-swapping fails to update after changing dependencies.
Try a Build > Clean Project and then run again.

@mateushenriquebrum  Try custom the public class MyApplication extends MultiDexApplication

I don't think this a ORMLite issue.


Change FantasyLand to a peer dependency

According to the how to add Fantasy Land compliance section of their README, FantasyLand is meant to be a Peer Dependency. Currently FantasyLand is incorrectly included as a hard dependency.

Related: https://gitter.im/fantasyland/fantasy-land?at=57a32d2fc915a0e426bbd412


Use Retrolambda

As this project is using Rx, to reduce the verbosity of the code I propose to use Retrolambda to backport lambda expressions.

I've had this thought too so if you want to do this in combination with #1046 feel free to do so. If not I'd say we hold off on it for a while.

Lambda expressions can be used for things that aren't just related to RxJava though, for example OnClickListener. My proposal would be that once I have completed #1046, then I could make a separate PR relating to Retrolambda.

I do know we can use it for more then just RxJava but I still think I rather get #1046 in first. After that we can do the rest.


Old and new interfaces produces different problems in the same setup

What is the current behavior?
New interfaces
from qiskit.optimization import QuadraticProgram

if __name__ == '__main__':
    qp = QuadraticProgram()
    qp.continuous_var(name="x", lowerbound=0, upperbound=10)
    qp.objective.quadratic = [[1]]
    print(qp.print_as_lp_string())

Output:
\ This file has been generated by DOcplex
\ ENCODING=ISO-8859-1
\Problem name: CPLEX

Minimize
 obj: [ 2 x^2 ]/2
Subject To

Bounds
       x <= 10
End

Old interfaces
from qiskit.optimization import QuadraticProgram
from qiskit.optimization.problems.variables import CPX_CONTINUOUS

if __name__ == '__main__':
    qp = QuadraticProgram()
    qp.variables.add(names=["x"], types=[CPX_CONTINUOUS], lb=[0.], ub=[10.])
    qp.objective.set_quadratic_coefficients(0, 0, 1)
    qp.write("quad.lp")

Ouput:
\ENCODING=ISO-8859-1
\Problem name:

Minimize
 obj1: 0 x + [ x ^2 ] / 2
Bounds
 0 <= x <= 10
End

What is the expected behavior?
The output should be the same

the new interface is correct and in sync with docplex (rather than with Cplex) API.


Use ExDoc only in :docs env

Since we have:
defp elixirc_paths(:dev), do: ["lib", "test/support"]

The fixture modules are leaking to the docs: https://hexdocs.pm/ecto_morph/SteamedHams.html.
This means however that when releasing a new version you'd have to remember to do: MIX_ENV=docs mix hex.publish. Another small benefit is users cloning the repo to play with it won't need to compile ExDoc and its deps which by far take the most time in compiling this project :)

Ah this is great thanks so much! TIL


Parameter of the from function should be an array

Hi, the middleware documentation says :
    apollo.create({
      link: from(authMiddleware, otherMiddleware, http),
    });

I think it should rather be from([authMiddleware, otherMiddleware, http]), since the from signature is export const from = (links: ApolloLink[]): ApolloLink => {…};
Correct ?

PR #433 fix it


feat: support bulk backup backing images

What this PR does / why we need it

[x] Allow to bulk backup backing images to different backup target

Issue
[UI][FEATURE] Multiple backup stores support #8647
Test Result

Go to the Backing Image page
Select multiple backing images and click the bulk action Backup
When the modal pop up, select a target and click Backup

The backups should be created successfully.

Additional documentation or context
Test with LONGHORN_MANAGER_IP=http://<IP_ADDRESS>:30001/ npm run dev

Summary by CodeRabbit

New Features

Introduced a backup modal with enhanced user interaction for bulk actions.
Added support for selecting backup targets in the backup process.

Bug Fixes

Improved state management and organization of action handling within the bulk actions component.

Style

Updated styles for bulk action buttons and the backup modal for better responsiveness and visual clarity.

Documentation

Enhanced PropTypes validation to ensure required props are passed to components.

All are good. But I can't backup any backing image in cifs backup target.

POST /v1/backingimages/parrot?action=backupBackingImageCreate return 200 ok.
GET /v1/backupbackingimages has below error in data.
cc @ChanYiLin
rpc error: code = Unknown desc = failed to create backup parrot: cannot mount CIFS share longhorn-test-cifs-svc.default/backupstore, options [soft]: mount failed: exit status 32\nMounting command: mount\nMounting arguments: -t cifs -o soft,<masked>,<masked> //longhorn-test-cifs-svc.default/backupstore /var/lib/longhorn-backupstore-mounts/longhorn-test-cifs-svc_default/backupstore\nOutput: mount: /var/lib/longhorn-backupstore-mounts/longhorn-test-cifs-svc_default/backupstore: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.\n       dmesg(1) may have more information after failed mount system call.\n

@mergify backport v1.8.x


Idea: show type signature at the top of all terms with docs

I’ve got a few ideas for how to improve the API doc viewing experience. First, take a look at https://share.unison-lang.org/@blj1mhqin19isesr8sn1648nhi061kt8urt8eg6nui2arvq1ga1pe617ukq9r4l7trlau21h3eldq5m7n8rvud88686u0qa71jerk40/terms/base/Random/natIn
When you’re reading API docs in a typed language, you almost always want to know the type signature, as that gives you context to understand the prose which fills in more details. Right now, you have to jump down to where the source code is to see the signature. I find myself jumping down there and then back to read the rest of the docs, which is not a good experience.
Note that while users can manually include type signatures in their docs, I think it’s better to standardize on the API doc viewing experience rather than relying on everyone following the same convention.
Originally we elided the signature from the top of the definition because it was redundant with the signature included with the source code. With docs, there’s often quite a bit of spacing between the docs and the signature so I think it makes sense to include it at the top.
One idea that might be worth exploring - include the source code at the top, but folded so only the signature is shown. Immediately below that is the docs. 95% of the time, when browsing API docs I don’t need to see the source code (if the docs are good, anyway).
Regardless of where the signature is or if it’s included in two places, I suspect Share should start out with the source code folded.

I think we can pull off what you suggest with some intricate default fold rules and this ticket: https://github.com/unisonweb/codebase-ui/issues/187
I'll mock up a few examples.

Suggested folding rules with source on top:

If the definition has docs, show source as folded
Without docs, always default to open source
If the docs are longer than X, truncate with an expand button

With this i'm not sure we even need special rules for Share vs Local. @pchiusano what do you think?

@pchiusano how's this?


Feature_Request | Optimize the functionality

Is your feature request related to a problem? Please describe.
After Submitting the rating and review the user needs to click the button to return to home page. Instead of Clicking the button we can enhance this feature dynamically.
Describe the solution you'd like

Instead of having two buttons we can combine this feature into one button and when the user clicks submit after successful submission it automatically moves to the home page
Demo Video/Screenshot (Mandatory )

Are you contributing under any open-source program ?
I am open source contributor in Gssoc 24

@GnanariddhikaRavikumar you are assigned.good issue.

Can I work on the same fork which was created before for the first issue a week ago @apu52

Can I work on the same fork which was created before for the first issue a week ago @apu52

yes .you can work .Just make a new branch on the forked repo & Sync the fork (update the branch) so that it will not face any merge conflicts . Make all the changes in that branch & make a PR

Hi @apu52 , I have reviewed the requirements for optimizing the functionality of the rating and review submission process. I would like to work on this enhancement. Please assign this issue to me. Thank you!

Can you assign this to me


[network] Remove NetworkProvider.

Remove the intermediate NetworkProvider channels and tasks forwarding between channels. This reduces the number of tasks per peer to 2 (Peer actor, Peer writer task).

Replace the Peer{Request,Notification} types with Network{Request,Notification}. Then rename Network{Request,Notification} to Peer{Request,Notification}.

Remove NetworkProvider and interface module. Just use the Peer constructor directly.

Move peer shutdown logic into separate method.

/land

/land

/cancel

/cancel

/land

/land

:lock: Merge Conflict

:lock: Merge Conflict

/land

/land

/land

/land

@phlip9 :bulb: This PR is already queued for landing

@phlip9 :bulb: This PR is already queued for landing

/cancel

/cancel

/land

/land


ScrollView inside a FlatList causes jittery scrolling

I am making a component that scrolls to the next row in the ListView programatically. Each row in the list view is 100% of the width and height of the ListView's parent container (so you only see one row at a time).
I want the content inside the row to be scrollable (in case it is taller than the height of the parent). This code renders properly but causes a jittery effect when scrolling the ScrollView. I think this is because the ScrollView is scrolling and then scrollEnabled={false} of ListView overrides the ScrollView.
How do I solve this or do I have to use the Animated API and essentially build my own ListView?
_onLayout(event) {
   const { width, height } = event.nativeEvent.layout
   this.setState({ width, height });
}

render() {

   return (
     <FlatList style={{ flex: 1 }} data={data} scrollEnabled={false}
       onLayout={this._onLayout.bind(this)}
       renderItem={item => {

         <ScrollView style={{ height: this.state.height}} contentContainerStyle={{ flex: 1 }}>
           <Text>yoyoyo</Text>
         </ScrollView>

       }} />
   );

}

Related: https://github.com/facebook/react-native/issues/2250

A ha! react-native is totally fine. My issue was I had it wrapped in a GestureRecognizer from react-native-swipe-gestures which was overriding the scrolling. Removing that solved the problem.


[feature request] Make transforms.functional_tensor functions differential w.r.t. their parameters

🚀 The feature
Make operations in torchvision.transforms.functional_tensor differential w.r.t. hyper-parameters, which is helpful for Faster AutoAugment search (hyper-parameters are learnable parameters via backward). (while keeping the backward compatibility to previous codes)
Some operations are not differential (e.g., Posterize), which might require users to write their own implementations.
Motivation, pitch
The main motivation is for research purpose. Faster Autoaugment proposes to search for augment architectures using a DARTS-like framework, and all magnitudes and weights are trainable parameters. This requires all operations to have gradients w.r.t. magnitudes. This idea provides a faster search strategy as state-of-the-art AutoAugment policy search algorithms.
This work has been maintained by autoalbument and applied on some industrial scenarios from their document claims.
I think adding the backward feature wrt magnitudes would be more convenient and support future research as well.
Alternatives
No response
Additional context
Linked PR: #4995
cc @vfdev-5 @datumbox

Probably the biggest issue will face here is JIT scriptability. If we manage to achieve it without BC breaking changes, we could implement this.


runtime: add a debug flag that force runtime debug logs are sent to stdout rather than stderr

What version of Go are you using (go version)?

$ go version
go version go1.13.1 linux/amd64

Does this issue reproduce with the latest release?
yes.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
not relevant

What did you do?
I've just enabled the gctrace and found all the debug logs are sent to stderr by print function.
src/runtime/mgc.go:
if debug.gctrace > 0 {
printlock()
print("gc ", memstats.numgc,
" @", string(itoaDiv(sbuf[:], uint64(work.tSweepTerm-runtimeInitTime)/1e6, 3)), "s ",
util, "%: ")
// write to goroutine-local buffer if diverting output,
// or else standard error.
func gwrite(b []byte) {
if len(b) == 0 {
return
}
recordForPanic(b)
gp := getg()
// Don't use the writebuf if gp.m is dying. We want anything
// written through gwrite to appear in the terminal rather
// than be written to in some buffer, if we're in a panicking state.
// Note that we can't just clear writebuf in the gp.m.dying case
// because a panic isn't allowed to have any write barriers.
if gp == nil || gp.writebuf == nil || gp.m.dying > 0 {
writeErr(b)
return
}
n := copy(gp.writebuf[len(gp.writebuf):cap(gp.writebuf)], b)
gp.writebuf = gp.writebuf[:len(gp.writebuf)+n]

}
What did you expect to see?
i'm happy to see the debug logs puts to stdout with some debug flag like:
debug.out=1
What did you see instead?
all debug logs were treated as error by log server.

Issue #42888 seems related and appears more favorably received, too.


[action-bar/advanced-search] Behaviour update

[action-bar/advanced-search] : Behaviour update
Description
Patch

Fixes #1131

There, i hide the checkbox when it's not need, when the isSelection is set to false
This is interesting, for example, an order button as in the issue. But if you don't have anything, you'll have this :

So we gotta think about the logic. What do we want to display when there is no other button in the action bar

@GuenoleK  can your rebase this PR?.


Implement React based drag and drop for reordering elements in the editor

In elemental <= 3.x the GridField sortable component is used to allow reordering elements.
In the React equivalent editor (not using GridField components) we'll need to add a React component to allow this.
Acceptance Criteria

[ ] Styling as per: Updated styling: https://projects.invisionapp.com/share/U3NJW9YS46X#/screens
[ ] Blocks can be dragged up or down the hierarchy of the blocks on a page, both collapsed or expanded blocks can be dragged.
[ ] On hover content blocks have a ‘drag handle’ icon that is visible for mouse operated UI’s which can be used to click and drag, as well as showing an icon on hover, there is a shadow below the block as per designs.
[ ] Dragging can be activated anywhere on the block where there isn’t another action and the block is pressed for x time (use smart defaults from drag-drop library). If dragging is in process (On “click-and-hold” or “touch-and-hold”) of a block, the drag handle and shadow beneath the block appears.
[ ] I receive an indication from the interface as to where I can drop the block. Highlighted by an indicator line
[ ] Re-ordered blocks will become “modified” if previously published, the block will require publishing for the effects of re-ordering to be visible on the live site.

Options:

https://github.com/react-dnd/react-dnd: already used in silverstripe/asset-admin
https://github.com/atlassian/react-beautiful-dnd

The handling of the reordering could be done with a GraphQL mutation on ElementalArea, providing the list of element IDs in the desired new sort order after a drop is completed. This could be a GraphQL type like ElementIDList, but might be a little unstructured in terms of what GraphQL expects.
Another option might be to put the mutation directly into the element that is dragged and dropped, providing a mutation signature like this:
mutation updateElementSortOrder($id:ID!, $before:ID, $after:ID) {
  setElementSortOrder(Input: {
    ID: $id
    MoveAfter: $after
    MoveBefore: $before
  }) {
    ID
  }
}

In this case the element would need to set its sort order to +1 or -1 of the MoveAfter/MoveBefore element, then set new sort orders for all elements in the list to respect the updates.
Just possible ideas at this stage.

@newleeland can you please confirm this is the correct wireframe? There's a similar DnD wireframe not included here

Refer to asset-admin DnD styling for this

Updated designs with the two different approaches for consideration in top comment. Link to enlarge the preview is below the design.

I've almost finished this. I need some feedback for UX though (cc @clarkepaul @newleeland).
I've implemented the designs on the right hand side, including a little blue bar for the intended drop location. The problem is that we can't have the dot appear outside of the container (like the designs). Would you like to update the design for that?
I can't allow dragging and dropping of elements that have the form visible. It's a bunch of extra work and there's no easy way to maintain form state when moving the block (ie. all your content will be reset after dragging). How should this look? My plan is if the block is expanded and the in-line form is visible then the drag handle will never appear. You would still be able to drag around blocks that haven't been expanded though. Maybe we should chat about this, it's a little complicated.

Great I've had @newleeland look into updating the designs a few days ago, so I'll see where thats at. Yeah I think we need to chat about the dragging as thats a bit of a sticky topic.

Ok I have raised a PR on admin that fixes dragging around forms:
silverstripe/silverstripe-admin#654
There are still a few issues with the feature which lives here: https://github.com/creative-commoners/silverstripe-elemental/tree/pulls/4/dnd-brb-implementing-dnd :

Dragging a form with TinyMCE in it still doesn't work. The block moves correctly and the form still works but the isDragging prop seems to not be reset. Something weird is going on with TinyMCE and ReactDND.
Dragging outside of the elemental area is not very UX friendly:

Dragging outside of the area cancels the drag - this is okay but the area isn't really big enough (especially at the top)
Dragging outside of the area still indicates that it can be dropped with a little blue bar indicator. This should really not show

Nice to have: The blue bar really shouldn't show if the element will be dropped in its existing location.

Ensure Aria label is hidden for DnD as it won't be possible for accessibility users

@clarkepaul Did you realise there would be a server call before a block can be added? Even on a vanilla website demo there's around a second delay, without any loading indication. I would suggest that you create a "shadow block" in the correct position, add a loading indicator there, and then replace it with the actual block once it's loaded. The status quo is particularly confusing because there's no other indication on what block is "new" (fading highlight etc), so if you have a few similar looking blocks you have to really pay attention to notice the changes.

@chillu

I would suggest that you create a "shadow block" in the correct position
I've raised #454 to track this.

@clarkepaul Did you realise there would be a server call before a block can be added? Even on a vanilla website demo there's around a second delay, without any loading indication. I would suggest that you create a "shadow block" in the correct position, add a loading indicator there, and then replace it with the actual block once it's loaded. The status quo is particularly confusing because there's no other indication on what block is "new" (fading highlight etc), so if you have a few similar looking blocks you have to really pay attention to notice the changes.

Is this for adding? Sorting optimistically updates meaning the feedback is instant.

Is this for adding? Sorting optimistically updates meaning the feedback is instant.

In the demo just before it didn't appear instantaneous to me, there was a >500ms lag that I don't think would be attributed to the video conference connection. If it's adding the block before the server requrest finishes, then there's no need for a loading indicator.

Ok - Adding in-line has that delay. I'm not sure that drag and drop was actually demo-ed - I missed the first 10 minutes of the demo. The drag and drop PR has no delay while re-ordering. Anyway - I have some ideas for this "add" delay which I noted in the other issue that @brynwhyman has raised.


Emoji support

It doesn't show emoji
How can I use emoji in markdown??

You can use react-native-markdown-display here: https://github.com/iamacup/react-native-markdown-display.
You will need to implement it using a markdown-it plugin, how to do that is documented in the Plugins and Extensions section of the readme with an example for a video plugin.
Someone has done this before, some info about it here: https://github.com/iamacup/react-native-markdown-display/issues/66

Man, I'm so grateful that you're taking the effort to monitor this project's repository, @iamacup.
Please @mientjan: consider updating this repository to clearly message the fact that you will no longer be maintaining it. Archiving the repo is the easiest thing you might consider doing, but I would encourage your updating the README to clearly message that AND to direct people to the actually-maintained react-native-markdown-display. Ideally, you would also publish one more update to npm which includes install-time messaging about the deprecation and directs users to the module that replaces it.
In case you're super busy, I'd be happy to submit a PR with the needed changes.


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-k8s-27-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3841

Questions ?
Please refer to the Backport tool documentation


harsh: init at 0.8.28

Description of changes
Added the cli based habit tracker harsh (https://github.com/wakatara/harsh)
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Please rebase your changes into two commits, one for adding yourself to the maintainer list and one for the package.

Please rebase your changes into two commits, one for adding yourself to the maintainer list and one for the package.

Since I am pretty new to git and my commit history is a mess rn, I will create new pull request with the commits split


Scale radius too large at high zoom

Just a minor suggestion.
My application requires I operate at very high (maximum) map zoom levels (using leaflet plugin).
Thing is that if I set scale Radius to true the scale = Math.pow(2, zoom); line in the code causes the scale factor to explode, leading to a massive radius. And depending your data it may appear that the heatmap is not showing at all. Thats not the case, you just have to zoom out enough.
Using a fixed radius works around this, though a better scaling would be nice.

I, too, am experiencing this issue. At close zoom levels, with very large numbers of documents, my radii explode, basically leaving a large red overlay over empty portions of the map.

For my app, I use scale=zoom; instead...


Camera fixes to SDF to USD converter

Signed-off-by: ahcorde<EMAIL_ADDRESS>🦟 Bug fix
Summary
Fixes camera orientation
Checklist

[ ] Signed all commits for DCO
[ ] Added tests
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge

I converted this file https://app.ignitionrobotics.org/OpenRobotics/fuel/models/SOPHISTICATED_ENGINEERING_X2_SENSOR_CONFIG_1 and cameras are in the right poses


Add Router Support  for std::function

I do a lot of passing lambdas around.   I've added the following to router.h, could/should this be included in the official release?
`
template<typename Result, typename...Args>
Route::Handler bind(std::function<Result(Args...)> func) {
details::static_checks<Args...>();
return [=](const Rest::Request& request, Http::ResponseWriter response) {
		func(request, std::move(response));

		return Route::Result::Ok;
};

}
`

Sure.  I have no problem with that.  Please add a small unit test to exercise the code though, and consider also updating the documentation (all in the same PR).

Sounds good.  I'll do it next chance I get.


how to save the obj file?

I run
python launch.py
--config configs/isotropic3d-shading.yaml
--train
--gpu 0
system.guidance.cond_image_path=assets/wolf_rgba.png
That just save png, gif and mp4 files.
I want to get obj files.
So, I add
"""
exporter_type: "mesh-exporter"
exporter:
fmt: obj
save_uv: false
context_type: cuda
""" this code in isotropic3d-shading.yaml.
But, no save obj file.
How to solve this issue?

Hi @pkunliu is there any option to export .obj file please let us know.
Thanks

Thank you for your interest! Mesh can be exported after training.

Download the load folder from our repository, and run python launch.py --config path/to/trial/dir/configs/parsed.yaml --export --gpu 0 resume=path/to/trial/dir/ckpts/last.ckpt system.exporter_type=mesh-exporter
For more details, please refer to README.md.

@pkunliu  Thank you:)


Ansible: Add CoreOS Support

I would like to add CoreOS support to the contrib/ansible project. I have a working implementation at [1]. Keep in mind [1] is very rough and still needs a lot of work before submitting a PR. It would be helpful to discuss design decisions with the project maintainer before submitting PRs. Your feedback would be greatly appreciated.
[1] https://github.com/danehans/contrib/tree/coreos

@eparis Can this be closed now that coreos is merged?


BFT-457: Simplify batch signature

What ❔
Removes the AggregateSignature types from attester and secp256k1 and adds a map into the attester::Batch instead, with signatures exclusively over the same message everyone signed.
Why ❔
Because sepc256k1::AggregateSignature required O(n^2) work in verification, due to losing the information in which order the signatures were added and who they belong to. Since the ability to aggregate signatures over different messages isn't needed for attesters, storing signatures together with the corresponding public key simplifies verification and will make it easier to submit the data to Solidity as well.

@aakoshh can we have keep the AggregatedSignature, so that moving between bls and ecdsa is just swapping implementations?

I assume you wish to keep the attester::AggregateSignature, but the secp256k1::Aggregatedignature can go, right? For example there is no ed25519::AggregatedSignature either.
We can keep it, sure. I'm wondering if the bitmap could be moved into it, though, so that it's a bit more self contained? So you would have e.g. bls12_381::AggregateSignature which is just a signature, but unlike how it is in validator::AggregateSignature, the attester::AggregateSignature would contain the Signers bitvector. That way the Batch could have 1 field for this in both cases.
I am guessing you don't want this kind of dissonance though, so, never mind.

I'm asking because "just swapping" implementation isn't exactly true if the signers field has to be added back to the Batch, which means further changes in its methods to count weights, etc. Perhaps I can create wrappers around the BTreeMap and move more functionality there, to achieve functional parity (e.g. the aforementioned weight sum), but it would mean the protobuf will not go back to its original format either.

I'd also not keep the ability to verify different messages on the attester::AggregateSignature as it's not a real use case for them, if that's okay.

I mean, yeah, protobuf will contain different data for different signature schemes.
Yes, I meant the attesters::AggregatedSignature, not the secp one, where it doesn't make sense.
Yes, having all signatures for the same message is a way to go.
Signers cannot really go into bls12_381::AggregateSignature because that would require Genesis to be leaked (in some form) to the crypto crate. All that I'm asking is to keep the attesters::AggregatedSignature type (with guts replaced as needed) and keep the API of that type roughly the same as it would be with the bls aggregation.

I added the following:

MultiSig for the current thing
AggregateSignature wrapping a bls12_381 (at least as a placeholder; EIP-2537 says this is the one)
AggregateMultiSig pairing up Signers and AggregateSignature
Both of the aggregates only verify a single message

This doesn't follow the pattern of e.g. CommitQC where the Signers and the AggregateSignature are next to the thing they signed, but I think it makes sense to call this a BLS multi-sig. Easy to drop anyway.
As a side note: since the aggregate_signature module uses Batch, it might as well use Committee, and then the responsibility of checking whether the keys are present in the committee and the sum-of-weights could be moved into the multisig implementations, to unify their API. In practice I expect the simple MultiSig to be dropped when BLS is ready, so it doesn't matter that much.


Options type error (Issue #13)

Problem
Test in the options exercise throws an error because the test expects a Float instead of a Double from the user
Solution
Change type of argument to Doube

@idarlington Contribution looks great but the OptionSpec that checks for successful test run needs to be fixed to use Double too :)

LGTM! thanks for your contribution!
Fixes #13

Thanks, @raulraja would love to be part of this.


Implementing http endpoint to query the backend

E2E testcases for session affinity check for the type of backend i.e ipvs or iptable. This check is to decide the expiry time of session affinity. For IPVS , the minimum time is 120sec.

/approve

Looks good to me can you link us to the e2e that checks this ? Interesting

/lgtm
/approve


mod_proxy_html recipe should install libapache2-mod-proxy-html

On debian 7.5 , using apache2 2.2.22-13+deb7u3 I used recipe mod_proxy_html but then I still needed to install libapache2-mod-proxy-html. Since the recipe mod_php5 installs libapache2-mod-php5, the recipe mod_proxy_html should install  libapache2-mod-proxy-html.
After that, when restarting apache2 service I got an error:
vagrant@host:~$ sudo service apache2 restart
apache2: Syntax error on line 106 of /etc/apache2/apache2.conf:
Syntax error on line 1 of /etc/apache2/mods-enabled/proxy_html.load:
Cannot load /usr/lib/apache2/modules/mod_proxy_html.so into server:
/usr/lib/apache2/modules/mod_proxy_html.so: undefined symbol: htmlFreeParserCtxt
Action 'configtest' failed.
The Apache error log may have more information.
failed!

The solution for me was to add to /etc/apache2/mods-available/proxy_html.load file this line (as the first line):
LoadFile libxml2.so.2

It could also be dealt with in mod_proxy_html recipe.

HI @xmik,
Thank you for using the cookbook and filing your report.
The debian package for libapache2-mod-proxy-html is no longer used with apache 2.4 (see jesse), so this would be change that is only applicable to apache 2.2.
The requirement to load libxml2 seems to be an issue that should be filed upstream if it isn't there already. That is more related to incomplete dependencies for a package.

@xmik any thoughts on what I said above?

@svanzoest, I understood that you won't correct the apache2 cookbook because the issue is not in the cookbook but in the apache2 debian package. I thought it is your approach (not to provide patches for each apache2 package, but to provide a general usage for all package version; seems ok) so I did not comment back. I use apache2 cookbook wrapper, works for me.
However, if your approach is to make a working cookbook for many apache2 package versions, you could just install libapache2-mod-proxy-html and edit /etc/apache2/mods-available/proxy_html.load for those apache2 package versions that need it or at least display some warning about additional work that must be done for those package versions (e.g. a log to read this issue if package version is <2.4).

I added the dependency on libapache2-mod-proxy-html, so that should help some folks still on apache 2.2. Thanks for the report.


detect OTP >= 18 to use new time correction

erlang:now/0 is deprecated BIF.
See the "Time and Time Correction in Erlang" chapter of the ERTS User's Guide for more information.

Hi, could you just file a matching JIRA ticket please?


Integrate feature of increasing the data size with benchmark test script

Is your feature request related to a problem? Please describe
The benchmark test script can be used as a convenient automated script to run performance test locally. I'd like to have it integrate the existing feature of opensearch-benchmark to expand the workload data size.
Document for the feature: https://github.com/opensearch-project/opensearch-benchmark-workloads/tree/2/http_logs#beta-feature-increasing-the-size-of-the-data-corpus
Describe the solution you'd like
May be achieved by modifying the code around this line, which executing the openserch-benchmark command.
Here are more documents:
https://github.com/opensearch-project/opensearch-benchmark/blob/1.0.0/docker/README.md?plain=1#L20
https://github.com/opensearch-project/opensearch-benchmark/blob/1.0.0/scripts/expand-data-corpus.py#L22
Here is the code I wrote to make it possible https://github.com/tlfeng/opensearch-build/commit/e8342506ee8e9ac1cdf020cbd5f06a96b1550d02, and it can be a reference for anyone has the same demand.
Describe alternatives you've considered
No response
Additional context
No response

Thanks for sending the issue, @tlfeng .
@rishabh6788 , pls have a look and provide your feedback..
thanks ,


resolve the conflict

SourceCode/2024/May 2024/Projects/Bhimendhar/DB with Re Framework/project.json
GetTransactionData.xaml

Duplicate display names for activities: Get transaction item display name is defined many times.

Suggestion: Rename these activities to something more descriptive and unique, such as "GetTransactionItem1" and "GetTransactionItem2".

SetTransactionStatus.xaml

Duplicate display names for activities: Set Transaction Status (Business Exception) display name is defined many times.

Suggestion: Rename these activities to something more descriptive and unique, such as "SetTransactionStatusBusinessException1" and "SetTransactionStatusBusinessException2".

Log Message.xaml

Duplicate display names for activities: Log message (Screenshot not taken) display name is defined many times.

Suggestion: Rename these activities to something more descriptive and unique, such as "LogMessageScreenshotNotTaken1" and "LogMessageScreenshotNotTaken2".

Process.xaml

Default names for activities:

Suggestion: Add more descriptive titles for these activities, such as "ThrowException", "CheckCondition", "AssignValue", "WriteTextToFile", and "UploadStorageFile".

InitAllSettings.xaml

Duplicate display names for activities: If asset name is specified, but it cannot be retrieved display name is defined many times.

Suggestion: Rename these activities to something more descriptive and unique, such as "InitAssetNameSpecification1" and "InitAssetNameSpecification2".

Report.xaml

Redundant sequence: The sequence Sequence is redundant.

Suggestion: Remove the redundant sequence using the Context Menu in UiPath Studio.

Overall suggestions:

Rename duplicate display names for activities to something more descriptive and unique.
Add more descriptive titles for default-named activities.
Remove redundant sequences.

SourceCode/2024/May 2024/Projects/Bhimendhar/Project 7_Using Linq queries/project.json
Linq with Database.xaml
Add a more descriptive title to the Activity Build Data Table and Activity Log Message. This will make it clearer what each activity is doing.
NoFile
In your project settings, please add the missing Automation Hub URL. This information is required by your organization.
Main.xaml
Add a more descriptive title to the Activity Assign and Activity Log Message. This will make it clearer what each activity is doing.
Dependency packages
Please remove unused packages:

UiPath.Excel.Activities
UiPath.Mail.Activities
UiPath.Testing.Activities
UiPath.UIAutomation.Activities
UiPath.WebAPI.Activities

This will improve the process execution time by removing unnecessary dependencies.
Score: 5/5

SourceCode/2024/May 2024/Projects/Bhimendhar/Project Task 5/project.json
This is a list of error messages from a workflow management system, likely Microsoft Power Automate (formerly Microsoft Flow) or another similar tool.
The errors are related to naming conventions and consistency in activity names within the workflows. Specifically:

Duplicate names: Some activities have duplicate names, which can cause confusion and make it difficult to understand what each activity does.
Default names: Many activities have default names that are too generic and don't provide enough information about their purpose.
Inconsistent naming conventions: The error messages suggest that the names of activities should give a clear indication of how they are being used, but there is no consistent naming convention followed across the workflows.

To resolve these errors, you can follow these steps:

Review each activity and rename it to provide a more descriptive title that indicates its purpose.
Ensure that all activities have unique names to avoid confusion.
Use consistent naming conventions throughout the workflows to make them easier to understand and maintain.

Additionally, the error message about "NoFile: Your organization requires your project to have an Automation Hub URL defined" suggests that you need to configure a missing setting in your project settings to resolve this issue.

SourceCode/2024/May 2024/Projects/Bhimendhar/Task 10_API Calls/project.json
Main.xaml
Log Message not used in workflow Main.
It's great that you're considering using log messages! They are super helpful for understanding the flow path during development and after release. It's easy to add them, and they can make maintenance and error debugging a lot easier. Please make sure to use log messages throughout your workflow to get the most out of this feature.
Score: 5/5
NoFile
Your organization requires your project to have an Automation Hub URL defined.
This is just a minor thing, but please make sure to add the required information in your Project Settings. It's easy and only takes a minute!
UiPath.Excel.Activities, UiPath.Mail.Activities, UiPath.Testing.Activities, UiPath.UIAutomation.Activities
Dependency packages not used: Remove unused packages in order to improve process execution time.
These dependencies are not being used anywhere in your project. It's a good idea to remove them to keep things clean and organized. This will also help speed up your workflow by avoiding unnecessary overhead.
Score: 5/5
Serialize JSON, Write Text File
Activity names could be more descriptive.
For the Serialize JSON and Write Text File activities, you have default names that might not give a clear idea of what they do. Please consider adding more descriptive titles to make it easier for others (and yourself!) to understand what these activities are intended for.
Score: 5/5
Overall Score: 20/25


Setting selected day label color

Hi.
I'm trying to set custom selection behaviour for my calendar in app, and I struggle with making the labels to stay the same and make a small ring around it appear. I've managed to set selection color to transparent, but the label also turns white and it's invisible like this.
Is there any way to set selected day label color?

Having the same issue.

Ah. So the solution that worked for me was to add view.addSpan(new ForegroundColorSpan(Color.BLACK)) to my decorator.

You can just provide your own text appearance for the cells:
app:mcv_dateTextAppearance="@style/CustomTextAppearance"

with
    <style name="CustomTextAppearance" parent="TextAppearance.AppCompat.Medium">
        <item name="android:textColor">@color/mcv_text_date_light</item>
        <item name="fontFamily">@font/shirkhand</item>
    </style>

and mcv_text_date_light.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:enterFadeDuration="@android:integer/config_shortAnimTime"
    android:exitFadeDuration="@android:integer/config_shortAnimTime">

    <item android:state_checked="true"
        android:color="@android:color/white" />

    <item android:state_pressed="true"
        android:color="@android:color/white" />

    <item android:state_enabled="false"
        android:color="#808080" />

    <item android:color="@android:color/black" />
</selector>

And we need to put mcv_text_date_light.xml in color directory of res res/color/mcv_text_date_light.xml of project.

I want to set a ForegroundSpan to a day (only today) and make it white when selected. Setting text appearance doesn't seem to work in this case. Is it possible?


feat(Loading): add dark mode

Overview

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: ABC-123
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.51-alpha.e71523.0@codecademy/gamut-labs@29.3.0-alpha.e71523.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://61f80dd69ce76ef70e8ef0a0--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.59-alpha.7f9075.0@codecademy/gamut-labs@29.3.0-alpha.7f9075.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://62016079324be72c26c05832--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.51-alpha.3f6d9a.0@codecademy/gamut-labs@29.3.0-alpha.3f6d9a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://620172e83eada94eba9a6a80--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.59-alpha.bcc61c.0@codecademy/gamut-labs@29.3.0-alpha.bcc61c.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6202a6dcaf895d2e63d7e028--gamut-preview.netlify.appDeploy Logs


Issue 755 Replace Lena

Fixes #755.
Changes proposed in this PR:

Replace lena with peppers

The Github checks are expected to fail until https://github.com/oceanprotocol/c2d-examples/pull/2 is merged.

@DMats I cherry-picked your original commit in https://github.com/oceanprotocol/ocean.py/pull/761, which is properly passing. Let's merge that in instead. I don't know why, but somehow merging v4main is broken.