[FLINK-1954] [FLINK-1636] [runtime] Improve partition not found error handling

Problem: cancelling of tasks sometimes leads to misleading error messages about "not found partitions". This is an artifact of task cancelling. If a task (consumer) consumes data from another remote task (producer), its sends a partition request over the network. If the producer fails concurrently with this
request, the request returns with a PartitioNotFoundException to the consumer. If this error message is received before the consumer is cancelled (as a result of the failing producer), you see the misleading error being attributed to the consumer. This makes it hard to trace the root cause of the problem (the
failing producer).
Solution: when a consumer receives a remote PartitionNotFoundException, it asks the central job manager whether the producer is still running or has failed.
If the producer is still running, the partition request is send again (using an exponential back off with default max back off of 3s). If the following requests fail again, the consumer fails with a PartitionNotFoundException.
If the producer has failed, the consumer is cancelled.
If the producer is not running and has not failed, there is a bug either in the consumer task setup (e.g. requesting a non-existing result) or in the network stack (e.g. unsafe publication of produced results), in which case the error is attributed to the consumer.

The new Akka messages introduced with this change are only exchanged in error cases and don't affect normal operation.
Normal operation (not affected by this change):
TM1 => TM2: request result
TM2 => TM1: result

Error case:
TM1=>TM2: request result
TM2=>TM1: PartitionNotFoundException
TM1=>JM: check partition state
JM=>TM1: retrigger request -OR- cancel consumer

I think this looks good.
+1 to get it in fast and give it a bit of exposure before the release.

I've removed the configuration constants and Travis passed after the rebase (modulo KafkaITCase). I'm merging this...


docs: Use the print() function instead of the built-in

This is compatible with python2 and python3 so the examples don't
throw a SyntaxError when trying them with python 3.
Closes #329

Hey! I am hosting a new master branch for this repo since the old creator has been MIA for 2 years. Hoping to get this repo back on it's feet and in good standing. I've been working on updating tests and adding all new functionality and have merged some of the PR's that I thought were sufficient for merging. If your PR didn't make it, resubmit it please.
Thanks!
https://github.com/Harrison97/spotipy

@Harrison97 hey. do you have the permissions to upload to the pypi project, too? If not, I wonder if a rename of the project would make sense..

@toabctl I am in the process right now of getting access to the current name. If I can't then I will create a new name.

I don't plan to work on this. Closing.


What is the procedure to backup messages from company communicator app?

Hello, I have a public sector customer that is trying to migrate their company communicator app to the new application, however before working on that they need to backup their messages because of the audit process they need to present.

Hi @disana8131 ,
Thanks for raising the query.

What is the current version of the application?
If the migration is going to be done from existing version to the latest version, old data will be preserved and no data loss observed.

Hello, please see below my comments:

Version 4.0
The idea is to migrate to viva amplify

Hi @disana8131 ,
If it is going to be fresh deployment due to the old version has some issues then moving the history of data from older version to new version is a tedious task which may have some bad consequences. We are of no use in this scenario here as we have not done  it till now. We recommend you to try it on your own.
Thank you.

Thanks a lot for this information, however the customer wants to try this activity, is it possible you can send me the steps require to execute the backup? even know this is not recommend it?

Thanks a lot for this information, however the customer wants to try this activity, is it possible you can send me the steps require to execute the backup? even know this is not recommend it?

Normally keeping the storage account untouched in a resource group would be the best option but please check it out from your end and we can't comment much here. Thank you


suggest making Array.prototype.random and Array.prototype.randomize non-enumerable.

i.e.
Object.defineProperty(Array.prototype, 'random', {
enumerable: false
});
Object.defineProperty(Array.prototype, 'randomize', {
enumerable: false
});

Good idea!

@ondras will you accept a PR, I can add this. Got an issue yesterday when the other library failed to run because it uses for..in on Array. Need to use a hack to temporarily remove the polluted properties while executing function from the other library.

@ondras will you accept a PR, I can add this.

Yes, please. I am completely out of time these days :-(

I've already added PR that that library to add hasOwnProperty.

A better solution IMHO would be to stop iterating arrays with for..in and use other looping approaches.

A better solution IMHO would be to stop iterating arrays with for..in and use other looping approaches.
Yes, but this is not my code that does that.

I think that this is no longer valid. The library doesn't pollute Array prototype anymore. In my case, I was using an older version of the library.
I think this can be closed.

I think that it got removed when the project was migrated to TS. Because the last commit that had Array.prototype is 2392039cecc8de3a97c09ec94d2bf6286e130fc0 cleanup when _old file was deleted.


colab

Is there any method to run the same thing on colab for training purpose?

For the current implementation, the deployment is done using docker and on-premise with no support for Colab. The training logic is based on TF2 object detection API and thus the training functionality can be adopted to be used on Colab with modifications.

For hackathon purpose it would be tough for those who lack with gpu architecture adding colab feature would open the whole project in new dimention I tried to run the repo on colab but after all procedure done I was unable to run "docker-compose -f run_gpu.yml up" also keeping the whole project for Ubuntu 18.04 specifically irrittates somewhat . Please add some mobility to this app for the sake of poartability.

Unfortunately, the requested feature contradicts the solution purpose as a centrally deployed GUI. Adapting the solution to run on colab will change the application identity and purpose. Our application is targeted to non-professionals in addition to pro users and making it runnable on colab will remove the GUI idea completely and changes the scope of the application.
In case you're seeking to run the Tensorflow object detection API v2 on colab, TF2 has multiple jupyter notebooks for this reason, you can find them on: https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/index.html


Automatically fetch contributor info

This is my first ever pull request! I hope everything is in order. I had a little trouble organizing git stuff on my end, but I think I got it figured out.

Here are some screenshots with the different options. I've included one showing the names without modification for completeness.
As-is

Capitalize

Uppercase

Personally, I think the capitalize version looks the best. It provides contrast to the contributions which are uppercase, while providing uniformity which is not present in the as-is version. I'm so new to this though that I would defer to your (or anyone else's) opinion!

Agreed.  The all caps version looks best. Thank you for your help!

I meant the Capitalize version. Thanks!

Ok great! I've pushed the commit to the update-contributors branch of my fork. Do I need to submit a new PR?

I created the PR on your behalf.  It's live now! thanks

@all-contributors add @Scott2bReal for code

Amazing, glad I was able to contribute! Thanks for making that PR


Benchmark results (kind of) for the Raspberry Pi4

I have compiled the latest version and running it with Tensorflow-Lite 3.11 on a Raspberry Pi4.
Below are the results of the different samples wav files.
mycroft@OpenVoiceOS-e3830c:~/whisper $ minimal whisper.tflite jfk.wav

n_vocab:50257

mel.n_len3000

mel.n_mel:80
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
Inference time 7 seconds

[_SOT_][_NOT_] And so my fellow Americans ask not what your country can do for you, ask what you can do for your country.

mycroft@OpenVoiceOS-e3830c:~/whisper $ minimal whisper.tflite test.wav

n_vocab:50257

mel.n_len3000

mel.n_mel:80
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
Inference time 12 seconds

[_SOT_][_NOT_] Bili always listens to his mother. He always does what she says.  His mother does not have to ask him again. She asks him to do something one time and she does not ask agai

mycroft@OpenVoiceOS-e3830c:~/whisper $ minimal whisper.tflite test_1.wav

n_vocab:50257

mel.n_len3000

mel.n_mel:80
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
Inference time 11 seconds

[_SOT_][_NOT_] David lost his yellow pencil. He could not find it. Where is my yellow pencil? Yes his sister. His sister did not know. I don't know where your pencil is. She said David thought about it. He thought and thought. He used his yellow pencil before lunch. He used it to write a note to his teacher. The notes said, dear teacher, thank you for helping me, David. He put the note in the envelope where was the envelope?

Considering the first wav file is 11 seconds and the other two exactly 30 seconds, it looks like it is possible for realtime encoding on a RPI4. It also runs on 1 CPU, so not bad. Not bad at all!
Great work.

Please use the below patch and it may enable multithreading
diff --git a/tflite_minimal/minimal.cc b/tflite_minimal/minimal.cc
index cd045e0..e059b05 100644
--- a/tflite_minimal/minimal.cc
+++ b/tflite_minimal/minimal.cc
@@ -200,6 +200,10 @@ int main(int argc, char* argv[]) {
else if (argc == 3) {
memcpy(input, mel.data.data(), mel.n_melmel.n_lensizeof(float));
}

interpreter->SetNumThreads(-1);
// Fill input buffers
// TODO(user): Insert code to fill input tensors.
// Note: The buffer of the input tensor with index i of type T can

//For more details refer this link
Sets the number of threads used by the interpreter and available to CPU kernels. If not set, the interpreter will use an implementation-dependent default number of threads. Currently, only a subset of kernels, such as conv, support multi-threading. num_threads should be >= -1. Setting num_threads to 0 has the effect to disable multithreading, which is equivalent to setting num_threads to 1. If set to the value -1, the number of threads used will be implementation-defined and platform-dependent.

Ok, will give -1 a go and if it does not work use 4 as that works with the python wrapper if tflite.

Btw, as I installed the tflite as system lib I compiled it by addibg a quick and dirty cmake file instead of pulling in tflite sources again.
https://github.com/OpenVoiceOS/ovos-buildroot/blob/117556f85e79f2f128041a8f603e49df14f67a2d/buildroot-external/package/whisper-tflite/0001-Add-CMakeLists.txt.patch

You may want to try stream on Raspberrry Pi4
https://github.com/usefulsensors/openai-whisper/tree/main/stream

Will look into that next and report back to you.

with -1 as multithread, it apears to still use 1 thread. So recompiled with 4
below the results using 4 threads.
mycroft@OpenVoiceOS-e3830c:~/whisper $ minimal whisper.tflite jfk.wav

n_vocab:50257

mel.n_len3000

mel.n_mel:80
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
Inference time 5 seconds

[_SOT_][_NOT_] And so my fellow Americans ask not what your country can do for you, ask what you can do for your country.

mycroft@OpenVoiceOS-e3830c:~/whisper $ minimal whisper.tflite test.wav

n_vocab:50257

mel.n_len3000

mel.n_mel:80
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
Inference time 9 seconds

[_SOT_][_NOT_] Bili always listens to his mother. He always does what she says. If his mother says, brush your teeth, Bili brush his teeth.  Bili is a very good boy, a good boy listens to his mother. His mother does not have to ask him again. She asks him to do something one time and she does not ask again. Bili is a good boy. He does what his mother asks the first time. She does not have to ask again.

mycroft@OpenVoiceOS-e3830c:~/whisper $ minimal whisper.tflite test_1.wav

n_vocab:50257

mel.n_len3000

mel.n_mel:80
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
Inference time 8 seconds

[_SOT_][_NOT_] David lost his yellow pencil. He could not find it. Where is my yellow pencil? Yes his sister. His sister did not know. I don't know where your pencil is. She said David thought about it. He thought and thought. He used his yellow pencil before lunch. He used it to write a note to his teacher. The notes said, dear teacher, thank you for helping me, David. He put the note in the envelope where was the envelope?

Perhaps for the future it would be nice to add a "-t " flag just as whispercpp does.
Will check out the streaming binary and report back.

tf.lite.Interpreter(
    model_path=None,
    model_content=None,
    experimental_delegates=None,
    num_threads=2

As an example let me know how you go as I have found tflite doesn't scale that well or didn't with the models I tried.
My memory stinks but settled for x2 threads and think it scaled but not at x2 level and above that the diminishing returns just didn't seem worth it.
Interested how it goes as guess its process length vs inter-process comms time is a fight to how it scales and with a bigger model like whisper maybe it scales much better than the smaller image based models I have tried.

Took a better look at the -1 option for multithread and indeed it looks like it uses 2 threads however only one if them reaches 100% cpu usage. The other thread doesn't.
So guess setting it to -1 and let the ststemd figure it out itself appears to be the better way forward.
haven't build the streaming binary yet.

Just for completeness-sake, below the same results for a Raspberry Pi 3b+
mycroft@OpenVoiceOS-9f5e16:~/.local/state/mycroft/whisper $ /usr/bin/time minimal whisper.tflite jfk.wav

n_vocab:50257

mel.n_len3000

mel.n_mel:80
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
Inference time 12 seconds

[_SOT_][_NOT_] And so my fellow Americans ask not what your country can do for you, ask what you can do for your country.

24.83user 0.55system 0:19.71elapsed 128%CPU (0avgtext+0avgdata 238584maxresident)k
0inputs+0outputs (0major+62031minor)pagefaults 0swaps

Strange thing is. The other two WAV files get's cutted off at ~12 seconds?

Thanks @j1nx


Add read-only option for session

Summary of the new feature/enhancement
An option should be added as a preference variable to set the session to read-only. While this is set, nothing outside local variables can be modified. Examples would be deleting a file off the file system or changing a system setting.
Feature is not meant to be a security feature, but to protect against accidents. Think of it as a "prevent accidental deletion/modification". As mentioned below, it adds another benefit to using official/built-in/proper functions.
Proposed technical implementation details (optional)
This would target built-in PS functions, but possibly 3rd party. It would utilize approved PS verbs. If you call a function with a verb that means to modify/delete (e.g. Set-Content vs Get-Content), it will throw an exception.

@tmontney You could use Language mode https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_language_modes?view=powershell-6
and JEA https://docs.microsoft.com/en-us/powershell/jea/overview


Ununderstood example code

Describe the bug
Ununderstood example code .
To Reproduce
Steps to reproduce the behavior:

Go to 'http://pulsar.apache.org/docs/en/schema-understand'
Click on 'Understand schema'
Scroll down to 'Complex type>Example'

Expected behavior
this  example code is for java or other?
Screenshots

Additional context
For JAVA , Schema>  means  Schema<KeyValue<Integer, String>>,right?

@huangdx0726 the example is written in Java. I guess there are typos when we put up the documentation.

Thanks @huangdx0726 for the help


Copy pasting a json code of a logic app, removes the possibility to use the visual editor

If I take the json code of a previouly coded logic app from azure, and I then copy paste it in a logic app project, i miss the possibility to look at it with the visual designer within visual studio

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

ID: a4e4c182-ccd7-0ee5-a993-9f4b4febf8d5
Version Independent ID: a02db181-a2e8-2a13-5932-d93dadacbae9
Content: Create automated workflows with Visual Studio - Azure Logic Apps
Content Source: articles/logic-apps/quickstart-create-logic-apps-with-visual-studio.md
Service: logic-apps
GitHub Login: @ecfan
Microsoft Alias: estfan

the structure of the code of the VisualStudio project is slightly different from the one on the Azure portal: I solved by copy pasting only the content of the "definition" property of the logic app json I've already had, within the "definition" property of an empty logic app created from within visual studio

Hi @LValla Thank you for your feedback! We will review and update as appropriate.

@ecfan can you please help here?

In Visual Studio, the empty LogicApp.json file is structured differently from what you see in the Azure portal because the .json file is actually an Azure Resource Manager template, which includes the corresponding information that you'd use for automated deployment. Also, if your logic app uses connectors, the .json file also requires the information about those connections, but parameterizes those values that you'd likely change in deployment. See below for an example when your logic app includes connections.
If you just want to work on your logic app inside Visual Studio, the easiest way to port your logic app from the Azure portal into Visual Studio is to open the logic app from the Cloud Explorer window in Visual Studio:

Connection information differences
In the Azure portal, you have this section, which describes the connections used in your logic app and appears outside the "definition" property (personal info replaced with placeholders here). The trigger and actions defined inside the "definition" property references this information:
"$connections": {
   "value": {
      "gmail": {
         "connectionId": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group-name}/providers/Microsoft.Web/connections/gmail",
         "connectionName": "gmail",
         "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/westus/managedApis/gmail"
      },
       "office365": {
         "connectionId": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group-name>/providers/Microsoft.Web/connections/office365",
           "connectionName": "office365",
           "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/westus/managedApis/office365"
      }
}

However, in Visual Studio, the template uses this parameterized version, which appears inside the "parameters" property, which is part of the resource definition for your logic app and outside the "definition" property, which includes the trigger and actions in your workflow:
"$connections": {
   "value": {
      "gmail": {
         "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'gmail')]",
         "connectionId": "[resourceId('Microsoft.Web/connections', parameters('gmail_1_Connection_Name'))]",
         "connectionName": "[parameters('gmail_1_Connection_Name')]"
      },
      "office365_1": {
         "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('logicAppLocation'), '/managedApis/', 'office365')]",
         "connectionId": "[resourceId('Microsoft.Web/connections', parameters('office365_1_Connection_Name'))]",
         "connectionName": "[parameters('office365_1_Connection_Name')]"
      }
   }
}

@LValla Checking in to see if the above post helped answering your question.

@LValla Since there is no doc update required at the moment, we will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Make Step 0 visible again

Summary

Step 0 is invisible now.
Changes

Same as github-education-resources/primer-copilot#13
I have cherry-picked all changes. Please review and merge this PR now.

Task list

[x] For workflow changes, I have verified the Actions workflows function as expected.
[x] For content changes, I have reviewed the style guide.

@arelia I would appreciate it if you could review this PR as soon as possible.


The automatic build with webpack doesn't work where the project is in the workspace!

VSCode Version:1.18.1
OS Version:Ubuntu  16.04 lts

Steps to Reproduce:
1.When I run code in the nodejs + webpack + react + vscodeworkspace . I typed the npm run dev start nodejs server with  webpack plugin ''webpack-hot-middleware'' that can detect the file changes and automatically  build project .  But it seems that it doesn't work at all when I changed files and save. And when I process the project by a singe project rather than in a workspaces, It works well. SO.. I don't know whether this is a bug or not, and give this issue..
2.

Reproduces without extensions: Yes/No

It's very hard to understand. What is the specific issue with VS Code that you are facing?

@joaomoreno
I'm so sorry to my poor English !
I mean that when I run the  react code with the VSCDOE's new feature Multi-root workspaces.
The express plugin "webpack-hot-middleware" which can detect the changes on the files and auto publish  doesn't work. But when I run code without Multi-root workspaces, the plugin works well...

This sounds to me like an issue with webpack not VS Code. Closing.


Use ESM for CLI

Fixing deprecation warnings in vite 5
The CJS build of Vite's Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.

Putting back into draft, this seems to increase the integration test run time consistently by a minute or so


UND-1080-code-level-improvements

code-level-improvements

old files PR does not need to merge, work done in another PR so closing it


Ability to edit the endpoint colors

When I want a specific color to be on one of the endpoints, it’s very hard to set it with the current method. It would be awesome if I could explicitly set them somehow (eg. double clicking on an endpoint maybe?)

It's a good idea.  I've talked it over with the designer and we are considering this.

Just tracking a decision: We want to add "double clicking" to any end point to change the color.  This should only be possible when no tool is selected.

And artist should be able to enter RGB, HEX, or HSL values

That sounds exactly what i had in mind, yes!


Error: Cannot read properties of undefined (reading 'flatMap')

We're getting an error in CI/CD from this piece of code. Unfortunately I can't reproduce it locally so I don't have additional information about what the original exception was. Can we have some fallback behavior for when the exception doesn't have an errors property? Apparently it's possible.

What's the error in your CI/CD logs?

Trace: TypeError: Cannot read properties of undefined (reading 'flatMap')
    at Object.build (file:///opt/atlassian/pipelines/agent/build/node_modules/sst/runtime/handlers/node.js:186:43)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async task (file:///opt/atlassian/pipelines/agent/build/node_modules/sst/runtime/handlers.js:34:31)
    at async Object.build (file:///opt/atlassian/pipelines/agent/build/node_modules/sst/runtime/handlers.js:78:23)
    at async file:///opt/atlassian/pipelines/agent/build/node_modules/sst/constructs/Function.js:193:32
    at process.<anonymous> (file:///opt/atlassian/pipelines/agent/build/node_modules/sst/cli/sst.js:58:17)
    at process.emit (node:events:525:35)
    at process.emit (node:domain:489:12)
    at process._fatalException (node:internal/process/execution:149:25)
    at processPromiseRejections (node:internal/process/promises:279:13)
    at processTicksAndRejections (node:internal/process/task_queues:97:32)

Juse released #2606 which should at least properly print out this error - can you give it a try?

Actually we ran into #2587 immediately after getting this error. And now that #2587 is fixed I can't reproduce this error. But I appreciate the logging fix in case we see it again. Thank you!


Oscillating reconciles for aggregated clusterroles

After upgrading Flux from version 2.1.2 to 2.2.1 (kustomize-controller from version 1.1.1 to 1.2.1), we observe oscillating reconciles for all our aggregated clusterroles. I asked on Slack about this but haven't gotten anything back yet.
This happens for all our aggregated clusterroles originating from Kyverno and Crossplane Helm chart. Note: even if the resource examples indicate that we are using Helm, this is untrue. We inflate all Helm charts into YAML manifests using kustomize (CLI) and use a Flux Kustomization to provision. I will use one of the Kyverno aggregated clusterroles as an example, but the symptom is the same for all aggregated clusterroles in our Flux installation.
Expected behavior (Flux 2.1.2):  When Flux reconciles a Kustomization containing an aggregated clusterrole (without any rules in source), the SSA should be a no-op and don't create any update event.
Actualt behavior (Flux 2.2.1):  When Flux reconciles a Kustomization containing an aggregated clusterrole (without any rules in source), it seems like the SSA performed by Flux is resetting the rules field creating an update event for each aggregated clusterrole. The rules field is immediately populated by the aggregated clusterrole controller. So the next time Flux performs a reconcile, this happens again....
Example clusterrole in source:
aggregationRule:
  clusterRoleSelectors:
  - matchLabels:
      app.kubernetes.io/component: reports-controller
      app.kubernetes.io/instance: kyverno
      app.kubernetes.io/part-of: kyverno
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: reports-controller
    app.kubernetes.io/instance: kyverno
    app.kubernetes.io/part-of: kyverno
    app.kubernetes.io/version: 3.1.1
  name: kyverno:reports-controller

Resulting clusterrole in one of our clusters (note the timestamps on the managed fields)
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: 'kyverno:reports-controller'
  uid: 435e6c86-269e-41a6-abc7-f621d70a0e3a
  resourceVersion: '845187637'
  creationTimestamp: '2023-08-10T11:22:40Z'
  labels:
    app.kubernetes.io/component: reports-controller
    app.kubernetes.io/instance: kyverno
    app.kubernetes.io/part-of: kyverno
    app.kubernetes.io/version: 3.1.1
    kustomize.toolkit.fluxcd.io/name: kyverno
    kustomize.toolkit.fluxcd.io/namespace: flux-system
  managedFields:
    - manager: clusterrole-aggregation-controller
      operation: Apply
      apiVersion: rbac.authorization.k8s.io/v1
      time: '2023-12-21T13:53:25Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:rules': {}
    - manager: kustomize-controller
      operation: Apply
      apiVersion: rbac.authorization.k8s.io/v1
      time: '2023-12-21T13:53:25Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:aggregationRule':
          'f:clusterRoleSelectors': {}
        'f:metadata':
          'f:labels':
            'f:app.kubernetes.io/component': {}
            'f:app.kubernetes.io/instance': {}
            'f:app.kubernetes.io/part-of': {}
            'f:app.kubernetes.io/version': {}
            'f:kustomize.toolkit.fluxcd.io/name': {}
            'f:kustomize.toolkit.fluxcd.io/namespace': {}
rules:
  - verbs:
      - get
      - list
      - watch
    apiGroups:
      - '*'
    resources:
      - '*'
  - verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
      - deletecollection
    apiGroups:
      - kyverno.io
    resources:
      - admissionreports
      - clusteradmissionreports
      - backgroundscanreports
      - clusterbackgroundscanreports
  - verbs:
      - create
      - delete
      - get
      - list
      - patch
      - update
      - watch
      - deletecollection
    apiGroups:
      - wgpolicyk8s.io
    resources:
      - policyreports
      - policyreports/status
      - clusterpolicyreports
      - clusterpolicyreports/status
  - verbs:
      - create
      - patch
    apiGroups:
      - ''
      - events.k8s.io
    resources:
      - events
aggregationRule:
  clusterRoleSelectors:
    - matchLabels:
        app.kubernetes.io/component: reports-controller
        app.kubernetes.io/instance: kyverno
        app.kubernetes.io/part-of: kyverno

As a workaround, you can add the following annotation for Flux to stop reconciling the cluster roles kustomize.toolkit.fluxcd.io/ssa: IfNotPresent.
I suspect this change https://github.com/fluxcd/pkg/pull/658 is the root cause, the change @hiddeco made to SSA is to normalize all objects, and I guess  that the rules filed is now added to the objects, resulting in a fully wipe of all existing rules.
Can you please post here the output of flux diff kustomization.

$ flux diff kustomization kyverno --path infrastructure/kyverno/default/
✓  Kustomization diffing...
► ClusterRole/kyverno:admission-controller drifted

rules
  ± type change from list to <nil>
    - - apiGroups:
        - admissionregistration.k8s.io
        resources:
        - mutatingwebhookconfigurations
        - validatingwebhookconfigurations
        verbs:
        - create
        - delete
        - get
        - list
        - patch
        - update
        - watch
        - deletecollection
      - apiGroups:
        - rbac.authorization.k8s.io
        resources:
        - roles
        - clusterroles
        - rolebindings
        - clusterrolebindings
        verbs:
        - list
        - watch
      - apiGroups:
        - kyverno.io
        resources:
        - policies
        - policies/status
        - clusterpolicies
        - clusterpolicies/status
        - updaterequests
        - updaterequests/status
        - admissionreports
        - clusteradmissionreports
        - backgroundscanreports
        - clusterbackgroundscanreports
        verbs:
        - create
        - delete
        - get
        - list
        - patch
        - update
        - watch
        - deletecollection
      - apiGroups:
        - wgpolicyk8s.io
        resources:
        - policyreports
        - policyreports/status
        - clusterpolicyreports
        - clusterpolicyreports/status
        verbs:
        - create
        - delete
        - get
        - list
        - patch
        - update
        - watch
        - deletecollection
      - apiGroups:
        -
        - events.k8s.io
        resources:
        - events
        verbs:
        - create
        - update
        - patch
      - apiGroups:
        - authorization.k8s.io
        resources:
        - subjectaccessreviews
        verbs:
        - create
      - apiGroups:
        - "*"
        resources:
        - "*"
        verbs:
        - get
        - list
        - watch
    + <nil>

► ClusterRole/kyverno:cleanup-controller drifted

rules
  ± type change from list to <nil>
    - - apiGroups:
        -
        resources:
        - namespaces
        verbs:
        - delete
        - get
        - list
        - watch
      - apiGroups:
        - admissionregistration.k8s.io
        resources:
        - validatingwebhookconfigurations
        verbs:
        - create
        - delete
        - get
        - list
        - update
        - watch
      - apiGroups:
        -
        resources:
        - namespaces
        verbs:
        - get
        - list
        - watch
      - apiGroups:
        - kyverno.io
        resources:
        - clustercleanuppolicies
        - cleanuppolicies
        verbs:
        - list
        - watch
      - apiGroups:
        - kyverno.io
        resources:
        - clustercleanuppolicies/status
        - cleanuppolicies/status
        verbs:
        - update
      - apiGroups:
        -
        resources:
        - configmaps
        verbs:
        - get
        - list
        - watch
      - apiGroups:
        -
        - events.k8s.io
        resources:
        - events
        verbs:
        - create
        - patch
        - update
      - apiGroups:
        - authorization.k8s.io
        resources:
        - subjectaccessreviews
        verbs:
        - create
    + <nil>

► ClusterRole/kyverno:reports-controller drifted

rules
  ± type change from list to <nil>
    - - apiGroups:
        - "*"
        resources:
        - "*"
        verbs:
        - get
        - list
        - watch
      - apiGroups:
        - kyverno.io
        resources:
        - admissionreports
        - clusteradmissionreports
        - backgroundscanreports
        - clusterbackgroundscanreports
        verbs:
        - create
        - delete
        - get
        - list
        - patch
        - update
        - watch
        - deletecollection
      - apiGroups:
        - wgpolicyk8s.io
        resources:
        - policyreports
        - policyreports/status
        - clusterpolicyreports
        - clusterpolicyreports/status
        verbs:
        - create
        - delete
        - get
        - list
        - patch
        - update
        - watch
        - deletecollection
      - apiGroups:
        -
        - events.k8s.io
        resources:
        - events
        verbs:
        - create
        - patch
    + <nil>

► ClusterRole/kyverno:background-controller drifted

rules
  ± type change from list to <nil>
    - - apiGroups:
        - kyverno.io
        resources:
        - policies
        - clusterpolicies
        - policyexceptions
        - updaterequests
        - updaterequests/status
        verbs:
        - create
        - delete
        - get
        - list
        - patch
        - update
        - watch
        - deletecollection
      - apiGroups:
        -
        resources:
        - namespaces
        - configmaps
        verbs:
        - get
        - list
        - watch
      - apiGroups:
        -
        - events.k8s.io
        resources:
        - events
        verbs:
        - create
        - get
        - list
        - patch
        - update
        - watch
      - apiGroups:
        -
        resources:
        - serviceaccounts
        verbs:
        - get
        - list
        - watch
      - apiGroups:
        -
        resources:
        - serviceaccounts
        verbs:
        - create
        - delete
        - get
        - list
        - patch
        - update
        - watch
        - deletecollection
      - apiGroups:
        -
        resources:
        - namespaces
        - serviceaccounts
        verbs:
        - create
        - delete
        - get
        - list
        - patch
        - update
        - watch
        - deletecollection
      - apiGroups:
        - rbac.authorization.k8s.io
        resources:
        - rolebindings
        verbs:
        - create
        - delete
        - get
        - list
        - patch
        - update
        - watch
        - deletecollection
      - apiGroups:
        - rbac.authorization.k8s.io
        resourceNames:
        - admin
        - edit
        - view
        resources:
        - clusterroles
        verbs:
        - bind
    + <nil>
⚠ identified at least one change, exiting with non-zero exit code

Ok thanks for posting, we'll need to decide how to fix this, we can either ship normalisation for ClusterRoles but it may be that we have broken many other Kubernetes native kinds with pointer fields... Maybe the best way is to rollback the changes made in https://github.com/fluxcd/pkg/pull/658.
@erikgb for now please add the kustomize.toolkit.fluxcd.io/ssa: IfNotPresent annotation, we'll discuss this issue next year.

Thanks @stefanprodan. I was a bit surprised to see that the rules field in ClusterRole didn't have omitempty in the json serialization markers, but there might be a reason for this?
https://github.com/kubernetes/kubernetes/blob/bfcf8d3966e86e65439069ddb3a027aa54045ef5/staging/src/k8s.io/api/rbac/v1/types.go#L183-L186

Given that the rules field has the // +optional Go comment, I would say this is a bug in Kubernetes, they missed adding omitempty. I have no hope this will ever be fixed as RBAC is v1 GA. So we need to fix it in Flux.


code folding

Code folding for procedure decls, comments, and perhaps record types.

Initial folding complete. We still need folding for several major constructs including type models, type representations, and facility decls (with enhancements)

Added folding for type models, type representations and facility decls (enhancements get folding inside, showing only Facility NAME... currently)

kool

Initial version added with a good number (basically all constructs) supported. Missing constructs can now be addressed by individual issues/bug reports.


Incorrect reference doi in seurat.ipynb

Hi there,
Thank you for the nice tutorials.
I was just going through the seurat.ipynb tutorial and found that one of the reference links seems to be broken.
In the "Clustering the graph" Section, the first reference ("Levine et al. (2015)") should point to https://doi.org/10.1016/j.cell.2015.05.047
Currently it produces an DOI not found Error (seems like the last character from the URL is missing in the notebook).

Thank you, will be resolved in the next version of the tutorial.


Matrix operators

|+, |-, |*, |/, |** will return an instance of Matrix, no matter what. Any feedback on the API?

Codecov Report

Merging #398 (75c7aa8) into master (11e738f) will increase coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #398      +/-   ##
==========================================
+ Coverage   80.61%   80.62%   +0.01%
==========================================
  Files         145      145
  Lines       12451    12451
  Branches     1676     1676
==========================================
+ Hits        10037    10039       +2
+ Misses       1902     1901       -1
+ Partials      512      511       -1

Impacted Files
Coverage Δ

...rces/AngouriMath/Functions/InternalAMExtensions.cs
71.32% <0.00%> (+0.49%)
:arrow_up:

Continue to review full report at Codecov.

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

Moving PeterONumbers from 1.7.4 to 1.8 broke a couple of tests, 🦆


CanCoGen-vocabulary-fix branch Field Testing

Software version number fields
Branch: CanCoGen-vocabulary-fix
consensus sequence method version only accepts numbers with a single period.

Example: "1" or "1.0", does not accept "1.0.1" and so forth.

Not the end of the world, people can put "101" instead - but if they need to do so we should include that in the guidance.
Also, this is in contrast to lineage/clade analysis software version which is able to accept "1.0.1", the downside is that it also accepts non-numbers. Whatever solution is chosen it is probably best to make these version fields consistent in their implementation.

Attachments:
DH-Test_2021-02-19 (CanCOGeN vocabulary fix).zip

General
Tested the following fields and found they behaved as expected (appropriate valid and invalid feedback based on requirements of field and data types).

sample received date
purpose of sampling
host residence geo_loc name (country)
host vaccination status
vaccine name
number of vaccine doses received
exposure contact level
amplicon size
library preparation kit
flow cell barcode
amplicon pcr primer scheme
raw sequence data processing method
dehosting method
depth of coverage threshold
lineage/clade name
lineage/clade analysis software name
lineage/clade analysis software version
variant designation
variant evidence
gene name 3
diagnostic pcr protocol 3
diagnostic pcr Ct value 3

Required Field
sample collection date precision behaved as expected but should be a required field.
Auto-Date Formatting
The following fields have the auto-date formatting to ensure there are value for year, month, and day - but doesn't have a paired precision date column to clarify that these are not actually dated "YYYY-01-01". Is this necessary for non-mandatory fields? NOTE: This has also being discussed in #137

symptom onset date
vaccination date
most recent travel departure date
most recent travel return date
sequencing date

Misc
Changed number of base pairs seequenced to number of base pairs sequenced in the DataHarmonizer CanCoGen COVID template.

Attachments:
DH-Test_2021-02-21 (CanCOGeN vocabulary fix).zip

I think "consensus sequence method version" has been renamed "consensus sequence software version" ?  The only way to enable multi-dot versioning is to convert this field from a decimal data type to a string. I have done that.
"sample collection date precision" is now required.
The auto-date formatting issue has been solved.


hub pull-request not using git config correctly

% git config --get user.email
<my email>
% git pull-request
git config user.email required

This happens because user.email is defined via an include; it works if I move it directly into ~/.gitconfig. My ~/.gitconfig contains lines like:
[include]
  path = ~/etc/git-config-aliases
  path = ~/etc/git-config-auth
  path = ~/etc/git-config-core

This suggests hub is manually dredging the file for config values, which needlessly duplicate's git's logic to the extent that it works and needlessly doesn't work to the extent that it doesn't.

I see it's somewhat worse than I had supposed: hub wants to think ~/.gitconfig is a TOML file, and TOML doesn't have includes. This would seem an utterly inexplicable decision in the official github command line client had I not also discovered that the TOM in TOML is the founder of github.
Minimal is a wonderful ambition but it shouldn't be a point of pride when it translates to "doesn't work." .gitconfig isn't a TOML file, it's a git config file. There is a supported interface for obtaining config values from git which is far simpler than introducing a dependency on the wrong configuration language. git config --get.
I apologize if my tone is not well received, which seems likely. But this is by all appearances the worst kind of NIH. If there is some justification for it, I hope you will present it.

We switched from TOML a while ago, and we only used it for a brief period for reading ~/.config/hub and never read ~/.gitconfig manually. We read git configuration by querying git config.
First of all, have you upgraded to latest version of hub?
Second, I don't understand what happens in your original report. Is the creation of pull request aborted with this error message:
git config user.email required

@jingweno Do you have an idea where this might be coming from?

It's the current homebrew hub.
% hub version
git version 2.3.1
hub version 2.2.0

I tried to figure out where the message was coming from originally once I saw it was likely a dependency, but I failed. I used "Godeps/Godeps.json" as as my list of dependencies - I don't know any go so maybe this is misguided. It was here that I got the idea you were parsing .gitconfig as TOML because you have this dependency
		{
			"ImportPath": "github.com/BurntSushi/toml",
			"Comment": "v0.1.0-9-g3883ac1",
			"Rev": "3883ac1ce943878302255f538fce319d23226223"
		},

...and since my includes weren't being recognized and that's approximately a git-config parser minus includes, it's pretty strong circumstantial evidence. Sorry for my apparently mistaken conclusion.
To your second question, yes the creation of the pull request was aborted with the error message "git config user.email required", emphasis on was. At the moment I'm not able to reproduce it. Still investigating.

@paulp We wanted to use Toml but it's never enabled - YAML is used instead and it's always been YAML. I'm not familiar with your error message. Is it from other programs or git aliases?

Found it. Pretty unfortunate. After alias git=hub, "git pull-request" is hub but in the absence of the alias it invokes in my case a program called "git-pull-request" from homebrew's git-extras formula. That's where the message comes from.
I think I invoked git pull-request in a shell older than the addition of "alias git=hub" thus falling through to the unexpected git-pull-request.
There's a lot wrong with this sequence but none of it is hub's doing. My sincere apologies for the unfounded indignation regarding your only-in-my-head usage of a TOML parser.

(So, closing as invalid.)


⚠ Processors has degraded performance

In 09103c7, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 67 ms

Resolved: Processors performance has improved in caedeac.


convert seconds to milliseconds when configure XmlRpcClientConfigImpl

HI @bsorrentino
I believe #256 should be fixed in this way, because parameters
"confluence.timeout.connect.secs" and "confluence.timeout.write.secs" and  "confluence.timeout.read.secs"
defined in seconds

Hi @qwazer  thanks for feedback
Really my update was correct the bug is on the getXXXTimeout() implementation  in ConfluenceService
Instead to return
TimeUnit.SECONDS.convert(seconds, timeUnit)

We must return
return timeUnit.convert( seconds, TimeUnit.SECONDS);

This will allow to get the timeout values in whatever format you need that was the real intention of timeUnit parameter.
I'm arranging a bug fix on the 7.3.2 release

@bsorrentino Thanks, you are right.
I updated my PR, but feel free to close it w/o merge and fix it yourself.

fixed in 7.3.2` release


Lesson 6: ValueError: execution reverted: VM Exception while processing transaction: revert

I am getting this error when attempting to run
brownie run scripts/fund_and_withdraw.py --network ganache-local
Here is my fund_and_withdraw.py file:
from brownie import FundMe
from scripts.helpful_scripts import get_account

def fund():
    fund_me = FundMe[-1]
    account = get_account()
    entrance_fee = fund_me.getEntranceFee()
    print(entrance_fee)

def main():
    fund()

Here is my deploy.py file:
from brownie import FundMe, MockV3Aggregator, network, config
from scripts.helpful_scripts import (
    deploy_mocks,
    get_account,
    LOCAL_BLOCKCHAIN_ENVIRONMENTS,
)
from web3 import Web3

def deploy_fund_me():
    account = get_account()
    # pass the price feed address to our fundme address

    # if we are on a persistent network like rinkeby, use the associated address
    # otherwise, deploy mocks
    if network.show_active() not in LOCAL_BLOCKCHAIN_ENVIRONMENTS:
        price_feed_address = config["networks"][network.show_active()][
            "eth_usd_price_feed"
        ]
    else:
        deploy_mocks()
        price_feed_address = MockV3Aggregator[-1].address

    fund_me = FundMe.deploy(
        "0x8A753747A1Fa494EC906cE90E9f37563A8AF630e",
        {"from": account},
        publish_source=config["networks"][network.show_active()].get("verify"),
    )
    print(f"Contract deployed to {fund_me.address}")

def main():
    deploy_fund_me()

Here is my helpful_scripts.py file:
from brownie import network, config, accounts, MockV3Aggregator
from web3 import Web3

LOCAL_BLOCKCHAIN_ENVIRONMENTS = ["development", "ganache-local"]

DECIMALS = 8
STARTING_PRICE =<PHONE_NUMBER>00

def get_account():
    if network.show_active() in LOCAL_BLOCKCHAIN_ENVIRONMENTS:
        return accounts[0]
    else:
        return accounts.add(config["wallets"]["from_key"])

def deploy_mocks():
    print(f"The active network is {network.show_active()}")
    print("Deploying Mocks...")
    if len(MockV3Aggregator) <= 0:
        MockV3Aggregator.deploy(DECIMALS, STARTING_PRICE, {"from": get_account()})
    print("Mocks Deployed!")

Here is my FundMe.sol file:
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.6 <0.9.0;

import<EMAIL_ADDRESS>import<EMAIL_ADDRESS>
contract FundMe {
    using SafeMathChainlink for uint256;

    mapping(address => uint256) public addressToAmountFunded;
    address[] public funders;
    address public owner;
    AggregatorV3Interface public priceFeed;

    constructor(address _priceFeed) public {
        priceFeed = AggregatorV3Interface(_priceFeed);
        owner = msg.sender;
    }

    function fund() public payable {
        uint256 minimumUSD = 50 * 10**18;
        require(
            getConversionRate(msg.value) >= minimumUSD,
            "You need to spend more ETH!"
        );
        addressToAmountFunded[msg.sender] += msg.value;
        funders.push(msg.sender);
    }

    function getVersion() public view returns (uint256) {
        return priceFeed.version();
    }

    function getPrice() public view returns (uint256) {
        (, int256 answer, , , ) = priceFeed.latestRoundData();
        return uint256(answer *<PHONE_NUMBER>0);
    }

    //<PHONE_NUMBER>
    function getConversionRate(uint256 ethAmount)
        public
        view
        returns (uint256)
    {
        uint256 ethPrice = getPrice();
        uint256 ethAmountInUsd = (ethPrice * ethAmount) /<PHONE_NUMBER>000000000;
        return ethAmountInUsd;
    }

    function getEntranceFee() public view returns (uint256) {
        // minimumUSD
        uint256 minimumUSD = 50 * 10**18;
        uint256 price = getPrice();
        uint256 precision = 1 * 10**18;
        return (minimumUSD * precision) / price;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function withdraw() public payable onlyOwner {
        msg.sender.transfer(address(this).balance);

        for (
            uint256 funderIndex = 0;
            funderIndex < funders.length;
            funderIndex++
        ) {
            address funder = funders[funderIndex];
            addressToAmountFunded[funder] = 0;
        }
        funders = new address[](0);
    }
}

Based on THIS ethereum.stackexchange link, it is an issue with the getPrice() function returning a value less than 1. Still not sure how to resolve it.

Hello @etsea117 Thanks for sharing your code, however you said you were getting "this" error, but didn't actually share the error itself, so could you please post here a screenshot of the error?
But if I have to guess I would say the error is here:

    fund_me = FundMe.deploy(
        "0x8A753747A1Fa494EC906cE90E9f37563A8AF630e",
        {"from": account},
        publish_source=config["networks"][network.show_active()].get("verify"),
    )

The address you are using for the pricefeed is for Rinkeby network, is your ganache-local configured with the same network?

there not a error exactly the thing is it should return the "current price:<PHONE_NUMBER>0000000" but actually it is returning 250000, and while I try to make a transaction then it is unable to calculate the gas price, hence it says your have add more ether not meet the minimum requirements

@Karam99-jpg we use the 18 digit standard as most of the ERC20 tokens works with it, but the price feed does not actually returns a value like that, so please be sure your math is correct (your are adding or multiplying correctly the values)

thanks it is solved now

Hi @Karam99-jpg I'm running into the same error but my only difference from ur code is that instead of having that address in your
    fund_me = FundMe.deploy(
        "0x8A753747A1Fa494EC906cE90E9f37563A8AF630e",
        {"from": account},
        publish_source=config["networks"][network.show_active()].get("verify"),
    )

I have
 fund_me = FundMe.deploy(
        price_feed_address,
        {"from": account},
        publish_source=config["networks"][network.show_active()].get("verify"),
    )

instead
why did you use a specific address instead of price_feed_address?

Hi @Karam99-jpg I'm running into the same error but my only difference from ur code is that instead of having that address in your
    fund_me = FundMe.deploy(
        "0x8A753747A1Fa494EC906cE90E9f37563A8AF630e",
        {"from": account},
        publish_source=config["networks"][network.show_active()].get("verify"),
    )

I have
 fund_me = FundMe.deploy(
        price_feed_address,
        {"from": account},
        publish_source=config["networks"][network.show_active()].get("verify"),
    )

instead
why did you use a specific address instead of price_feed_address?

Because this address is for price feed on mainnet ethereum

@Karam99-jpg you are awesome and 100% right that address is for mainnnet, try using the one for rinkeby @karlMoreno

@Karam99-jpg @cromewar
Im still getting
ValueError: execution reverted: VM Exception while processing transaction: revert

despite just copying all of your code as my own.
and when i go to https://docs.chain.link/docs/ethereum-addresses/
The ethereum mainnet address is actually:
ETH / USD | 8 | 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
-- | -- | --

while the one you put in your contract is under the Rinkeby test net
ETH / USD | 8 | 0x8A753747A1Fa494EC906cE90E9f37563A8AF630e
-- | -- | --

I also read and did everything in here https://github.com/smartcontractkit/full-blockchain-solidity-course-py/discussions/422
and still no luck. However I will note I am operating out of a docker and I am connecting to ganache-cli instead however I made sure that it is the hardfork muirGlacier version
and it runs brownie run scripts/deploy.py --network ganache-local just fine

May be this be a problem related with docker? which version are you using? I'll try to reproduce the error.

I am experiencing the same error. Just adding in case any solutions?

Well I installed a docker instance with the same version and I couldn't reproduce the error. @karlMoreno just as a I try, could you please clone the repo of the course from github and run it, does it works?

@cromewar I re did the project and cloned the repo, I remade the docker and still its the same error.

Sorry for the delay, this must be something related on how dockers in connecting to ganache, may be something related to the firewall. Did you tried out of a docker instance?

@cromewar I re did the project and cloned the repo, I remade the docker and still its the same error.

not sure if you're still having this error but he updated the FundMe.sol and it was due to a rounding error


not finding csproj files

Environment data
dotnet --info output:
VS Code version:
C# Extension version:
OmniSharp log
Steps to reproduce
Expected  behavior
Actual behavior

Both solution files and folders containing csproj files are listed in the "Select project" dropdown.


logClickEvent is not working with fetchMoreResults

I think this line state.search?.response.results.findIndex needs to change with state.search?.results.findIndex
https://github.com/coveo/ui-kit/blob/2012c712c7a202a33a7850d577ca4e91fe5bafaa/packages/headless/src/features/analytics/analytics-utils.ts#L118
Thanks!

That's very possible, I created this jira to investigate: https://coveord.atlassian.net/browse/KIT-826


fix: add: jx gitops helmfile move

so that we can move the files generated by 'helmfile template' into a nice
GitOps folder structure; moving cluster wide resources to a separate tree

/approve

/approve


Split base and services/

if soneone wants to use this repo, they will get all my services. so, services/ should be in another repo.
services_exemple/ could be added with a hello in it

it's done.


keyFile file resource fails due to nil name

Bug found by @gsaslis and was introduced by my commit in https://github.com/sous-chefs/mongodb-cookbook/commit/68926426a39da13579aa739bb839615affbdc1e4
 ArgumentError
  -------------
  You must supply a name when declaring a file resource

  Cookbook Trace:
  ---------------
    /var/chef/cache/cookbooks/mongodb/recipes/install.rb:87:in `from_file'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:347:in `load_recipe'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:303:in `block in include_recipe'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:302:in `each'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:302:in `include_recipe'
    /var/chef/cache/cookbooks/mongodb/recipes/default.rb:22:in `from_file'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:347:in `load_recipe'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:303:in `block in include_recipe'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:302:in `each'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:302:in `include_recipe'
    /var/chef/cache/cookbooks/db/recipes/default.rb:8:in `from_file'
    /var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:347:in `load_recipe'

  Relevant File Content:
  ----------------------
  /var/chef/cache/cookbooks/mongodb/recipes/install.rb:

   80:      options packager_opts
   81:      action :install
   82:      version node['mongodb']['package_version']
   83:    end
   84:  end
   85:
   86:  # Create keyFile if specified
   87>> file node['mongodb']['config']['keyFile'] do
   88:    owner node['mongodb']['user']
   89:    group node['mongodb']['group']
   90:    mode  '0600'
   91:    backup false
   92:    content node['mongodb']['key_file_content']
   93:    only_if { node['mongodb']['key_file_content'] }
   94:  end
   95:

  Platform:
  ---------
  x86_64-linux

  Running handlers:
[2016-11-21T05:25:27+00:00] ERROR: Running exception handlers
    - Chef::Handler::Slack
  Running handlers complete
[2016-11-21T05:25:27+00:00] ERROR: Exception handlers complete
  Chef Client failed. 3 resources updated in 11 seconds
[2016-11-21T05:25:27+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2016-11-21T05:25:27+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2016-11-21T05:25:27+00:00] ERROR: You must supply a name when declaring a file resource
[2016-11-21T05:25:27+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

Fails since node['mongodb']['config']['keyFile'] is only initialized if node['mongodb']['key_file_content'] is not nil

Completed in v1 rewrite


Prefix binary output (-x) with number of 32-bit words (or make it an option)

My use case is that I need to pack more than one compute shader into a single const array of 32-bit words at compile time.
Currently, I convert each .spv image into a length and a byte stream with wc -c and the xxd utility.  Later, the shaders are iteratively unpacked into VkShaderModuleCreateInfo instances.
I could stop using these utilities if spirv-opt or a new SPIR-V tool emitted the number of words in the binary followed by the SPIR-V words.
Note that (IMHO) the -x option in glslangValidator doesn't prepend the number of words in the binary and also precludes later use of spirv-opt.

This feels a bit out of scope for SPIRV-Tools.
This Perl script does what you want, transforming a .spv on standard input to text on standard output:
#!/usr/bin/env perl

use strict;

binmode STDIN;
my @parts = (<STDIN>);
my $binary = join('',@parts);
my @words = unpack("(V)*", $binary);
my $num_words = $#words +1;
printf "0x%x\n", $num_words;
for my $word (@words) {
        printf(", 0x%x\n", $word);
}

The unpack grouping option requires Perl 5.8, which is fairly old by now.

Gosh I miss Perl.  :-)

I agree, it feels out of scope.  I was just trying to get rid of my scripts! :-)

Now, glslc has a -mfmt option that we could expand to include your functionality.  It already has -mfmt=num which is the sequence of raw words.  Maybe we can add a -mfmt=countednum  to do what you want.
But that only works for GLSL, and you get the extra OpSourceExtension lines that glslc adds... :-(

But that precludes running spirv-opt as part of my shader pipeline, right?


[$500] Allow failed image/receipt uploads to be retried

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: Any -- latest version
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @justinpersaud
Slack conversation: https://expensify.slack.com/archives/C05LX9D6E07/p1728408442408079
Action Performed:
Break down in numbered steps
Unclear of the exact way to reproduce this, but you can upload a receipt via Submit Expense to another user and then somehow disrupt the upload either by losing internet connection or some other means.
Expected Result:
The receipt should fail to upload, and the error should say There was an error uploading your receipt. **Try again**. Alternatively, **save the file** or dismiss this error to delete it. "Try again" and "Save the file" should be linked.
Actual Result:
The error asks the user to download the image and then upload it again which is not a great UX
Workaround:
Yes
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[x] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021849204620290416679
Upwork Job ID:<PHONE_NUMBER>290416679
Last Price Increase: 2024-11-01

This is my first time creating a new feature request here so let me know if I'm missing something. I don't know that a project is necessary for improving UX here, is it?

I don't really think so—but maybe that depends on how we solve the problem. I feel like we could just tweak the error message and add a retry link in the message.
Maybe something like this? (bold = link)

There was an error uploading your receipt. Try again. Alternatively, download the file or dismiss this error to delete it.

I like tweaking the error message. Let's start there

It was raised in slack that the word download actually doesn't make much sense here because when the error happens, the file was not yet uploaded. The file is actually being fetched from the user's device.

It was raised in slack that the word download actually doesn't make much sense here because when the error happens, the file was not yet uploaded. The file is actually being fetched from the user's device.

So what happens when a user clicks that link currently? I'm sure we can tweak the error message to make sense if we understand what's actually happening.

I believe it fetches the image from the user device.
Downloading seems to imply that it's coming from an external source, like our servers or the Internet somewhere, when in reality, it's still on the user's device and just needs to be retried.

Could we have it say:

There was an error uploading your receipt. Try again. Alternatively, save the file or dismiss this error to delete it.

?

Hmm yeah I could see that—we might want to get some other's to weigh in too. But if we wanted to go that route we could just use our standard confirmation modal.

I tend to think one confirmation is enough, though I'll defer to y'all.

I'm fine with that. I think the important part here is just getting the retry button in place to upload again.
@sakluger what are the next steps here? I'm new to this process but happy to help from the internal engineering side.

@justinpersaud can this be handled externally or does it need to be done by an internal engineer?

If it can be done externally, we can just add the external label, which will open up the issue for contributors to propose solutions.
If it requires a backend engineer, then we apply the internal label and you (or someone else) can make the necessary PR

Either way, let's make sure the expected behavior in the OP is accurate. I updated it, can you review what I wrote up there?

looks good to me, and I believe this is external because it's all happening with the application, not the backend.

No proposals yet.

Still waiting for proposals.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Allow failed image/receipt uploads to be retried
What is the root cause of that problem?
New Feature - adding
What changes do you think we should make in order to solve the problem?

We should add a Try again link that will dismiss the error and at the same time navigate the user to receipt step. By the way, although the local file blob link is available in the error Row we can not access local files because for security reasons we cannot access local files via JS browser; the user specifically need to select the file so we will navigate to the receipt step.
We will add retry param here and navigate to the receipt selector if it is true at end of the function
https://github.com/Expensify/App/blob/c3dde46202d2f48934ef7aa617d69c8b4c0b5ff6/src/components/ReportActionItem/MoneyRequestView.tsx#L476
                        onClose={(retry = false) => {

...

if (retry) {
                                Navigation.navigate(
                                    ROUTES.MONEY_REQUEST_STEP_SCAN.getRoute(
                                        CONST.IOU.ACTION.EDIT,
                                        iouType,
                                        transaction?.transactionID ?? '-1',
                                        report?.reportID ?? '-1',
                                        Navigation.getReportRHPActiveRoute(),
                                    ),
                                );
                            }

pass onClose here
https://github.com/Expensify/App/blob/c3dde46202d2f48934ef7aa617d69c8b4c0b5ff6/src/components/MessagesRow.tsx#L47
And inside DotIndicator we will change the copy to an appropriate text and
https://github.com/Expensify/App/blob/c3dde46202d2f48934ef7aa617d69c8b4c0b5ff6/src/components/DotIndicatorMessage.tsx#L64-L74
add Try again Text Link and on onPress we will call onClose passing true to the retry param
What alternative solutions did you explore? (Optional)

Here it is @dukenv0307
https://github.com/user-attachments/assets/2fe3d910-a2f3-4357-9cee-b9afde41ebf6

I think we want to upload the failed image immediately instead of going to Scan page

Yeah I agree. I imagined this retrying "in place"—so not taking the user anywhere. cc @Expensify/design for viz and any additional thoughts.

I agree. Ideally the retry button just repeats the last action to upload.
@FitseTLT are you saying this is not possible because of security constraints within iOS now?

I agree. Ideally the retry button just repeats the last action to upload.
@FitseTLT are you saying this is not possible because of security constraints within iOS now?

Not IOS, only disallowed in web. Read https://stackoverflow.com/questions/64250573/access-local-filesystem-from-web-browser-react/64250626

Yeah Danny that would be my vote as well.

I think the idea is that it would try to either download the file to your computer or save the file to your device (add it to the photo gallery)

@FitseTLT How does the Download the file link work?

Via fetch for web @dukenv0307

@FitseTLT Can you update the proposal to fit the expectation above? Thanks

That would need separate treatment for the 4 platforms. I will look into it when the price gets bumped 👍

@FitseTLT that sounds fair. We've bumped the price to $500.

@FitseTLT that sounds fair. We've bumped the price to $500.

Yep

Not overdue - we just got a new proposal, let's see what @dukenv0307 thinks of it!

Updated

@dukenv0307 Have you got a chance to review my proposal which works for all platform. Also I have uploaded a POC video with the test branch. Thx!

I see @justinpersaud is already assigned as the internal engineer here, I don't think there's need for another :) Un-assigning myself but let me know if I'm needed here.

@nyomanjyotisa proposal sounds good to me too

@JmillsExpensify I recall you said not to bother about the confirmation to dismiss the error here, is that still true?

If we do want to keep it, then I think the copy should read:

Once you dismiss the error, you will no longer be able to recover the receipt. <Dismiss / Cancel>

But I think it's probably fine to just remove the dismissal confirmation.

Ehhh, people get pretty touchy about us losing their receipts. We've seen it already. I think we keep the secondary modal personally.

@nyomanjyotisa sounds like we're keeping the dismissal confirmation. Can you use my proposed copy above?

We have a draft PR.

Sure thing! @nyomanjyotisa or @dukenv0307, once you start a discussion on Slack, can you please link it here as well so I can track the progress of the issue? Thanks!

This is still being discussed in Slack.

I think we're close to wrapping up the Slack discussion.

Welp, one more decision left to make in that Slack thread. We are discussing whether to show an error message when offline. This depends on whether the file can be successfully downloaded while offline.


Bug in extraterrestrial radiation calculation

The ET radiation calculator needs the "day angle" of the Earth's position in its orbit around the Sun. Our extraradiation function and the matlab pvl_extraradiation calculate the angle as:
B = (2. * pi / 365.) * doy

Assuming that doy is a value between 1 and 365, I believe it should be
B = (2. * pi / 365.) * (doy - 1)

The disc and pvl_disc functions use the (doy-1) formula.

Here are some plots to show the difference.
doy

doy - 1

doy

doy - 1

Some quick pandas.describe() statistics for the difference between the spencer method and the pyephem methods:
doy
mean       0.003336
std        1.260789
min       -1.855202
25%       -1.184669
50%       -0.065613
75%        1.233035
max        1.913360

doy - 1:
mean       0.003264
std        0.935147
min       -1.390897
25%       -0.870512
50%       -0.055248
75%        0.963799
max        1.356251

doy - 1 wins, as expected.

Will,
Thanks catching this.
What do you think we should do with a leap year?
B = 2 pi / max(DOY) * (DOY – 1) perhaps?
Cliff
From: Will Holmgren<EMAIL_ADDRESS>Sent: Friday, July 08, 2016 5:12 PM
To: pvlib/pvlib-python<EMAIL_ADDRESS>Subject: [EXTERNAL] [pvlib/pvlib-python] Bug in extraterrestrial radiation calculation (#211)
The ET radiation calculator needs the "day angle" of the Earth's position in its orbit around the Sun. Our extraradiation function and the matlab pvl_extraradiation calculate the angle as:
B = (2. * pi / 365.) * doy
Assuming that doy is a value between 1 and 365, I believe it should be
B = (2. * pi / 365.) * (doy - 1)
The disc and pvl_disc functions use the (doy-1) formula.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/pvlib/pvlib-python/issues/211, or mute the threadhttps://github.com/notifications/unsubscribe/AFJNLzV4-b_rcd7k1nrWjjfOFXgx8xwBks5qTtlJgaJpZM4JIeEC.

I'd say that we should follow the literature that these methods come from, which, if I recall correctly, means ignoring leap years. Also, I think that max(DOY) would only work if DOY is an array with a full year of data.
On a related note, I wrote some code to pull the Earth-Sun distance from pvlib pythons implementation of the NREL SPA. It's about 50x slower than the Spencer method but 10x faster than using PyEphem. I'll post it later today.

A general question:
When such kind of flaws are discovered, the issue and its resolution may change results for a certain location and data set.
For the point of testing but als tracebaility of results obtained with different versions, would it make sense to have a accuracy & uncertainty log file?
We could have a few BSRN locations which we use as reference sites along with test data sets.
For each version, we record in a CSV, HDF5 or alike the results for a typical calculations chain.
With this, it will be possible to demonstrate:

Improvement of the library over time not only in code quality & new functionality but also accuracy
Level of inaccuracy of older output, e.g. when version 0.2 was used to calculate the results 1 yr. ago and now a re-run shows different values.

Just as an example, it is common in industry for important projects to fix a certain PVSyst version and have several versions of this program in parallel to avoid inconsistencies on the software level when comparing different configurations of components.

If one method takes into account leap years and the other doesn't, the differences will look different from year to year.  How do the stats and plots look for a four-year period with a leap year?

@adriesse there's not much difference. Here's 2015 and 2016 at hourly resolution. Note that the wiggles in the difference plot are due to the fact that the extraradiation function converts a DatetimeIndex into integer days.

In [36]: spencer_pyephem['2015'].std()
Out[36]: 1.1428934417419712

In [37]: spencer_pyephem['2016'].std()
Out[37]: 1.2049695065475967

In [38]: spencer_doy1_pyephem['2015'].std()
Out[38]: 0.8636022510479551

In [39]: spencer_doy1_pyephem['2016'].std()
Out[39]: 0.8812626386839624

Some perspective... The differences between the spencer(doy), spencer(doy-1), and pyephem methods shown above are on the order of 1 to 2 W/m^2. The solar "constant" varies by a few W/m^2 over the 11 year solar cycle. The accepted value of the solar constant has also been revised downward by a few percent over the last 30 years. Changing pvlib's default solar constant would have a 3-5x larger impact on model results than changing doy to doy - 1. If you want to read more, the solar constant wikipedia page and CU's LASP TIM page are reasonable places to start.
So, while I think we should change doy to doy - 1 for the sake of mathematical consistency and literature consistency, I do not think that it makes a meaningful difference for PV modeling. For example, PR #215 demonstrates that the PV power test results are consistent to better than 1 part in 1000.
@dacoex I'm not sure what you're asking for that's not already covered by the whats new documentation or the unit tests. Feel free to make a pull request with a concrete suggestion.

I'm closing this via PR #215, though feel free to continue to discuss here or in another issue if you feel otherwise.

@cwhanse can you provide any guidance on this?

@wholmgren yes but not today, I think we'll need to inspect the source reference (ACSE publication) and I don't have a copy handy.

@wholmgren I believe this function already exists in solarposition._calculate_simple_day_angle():
def _calculate_simple_day_angle(dayofyear):
    """
    Calculates the day angle for the Earth's orbit around the Sun.

    Parameters
    ----------
    dayofyear : numeric

    Returns
    -------
    day_angle : numeric
    """
    return (2. * np.pi / 365.) * (dayofyear - 1)

@Schmelzersolar is correct. To faithfully implement the extraterrestrial radiation model in Spencer 1971, the day angle is  (2. * np.pi / 365.) * (dayofyear - 1) where dayofyear runs from 1 to 365 (366 in a leap year).  However, in the ASCE report the day angle is  (2. * np.pi / 365.) * (dayofyear).  We should reference the ASCE document:
ASCE (2005), THE ASCE STANDARDIZED REFERENCE EVAPOTRANSPIRATION EQUATION, Environmental and Water Resources Institute of the American Civil Engineers, Ed. R. G. Allen et al.

A reminder of the original motivation for pvlib - to provide reference implementations of models from literature.


Can you provide support for user authentication so that we can set up different groups of users?

Is your feature request related to a problem? Please describe.
We are planning to set up a local instance of Mage and are wondering if it is possible to support user authentication. We would like different users to be able to have their own unique account settings."
Describe the solution you'd like
User authentication.
Describe alternatives you've considered
Grouping on a shared account.
Additional context
N/A

Thank you @c0090555 for submitting this. User authentication is on our very near term roadmap. Many companies have already requested this so we’re moving things around to better prioritize it.
How urgent is it for your company?

At present, this feature is preventing further usage of the product. It would be greatly appreciated if this feature could be added in the near future, if possible.

@c0090555 we'll prioritize this immediately to be available in next week's release.
I'll reach out to you directly when it's available.
Can you please send me an email at<EMAIL_ADDRESS>so I know who to email as soon as this feature is live?

@c0090555 we'll prioritize this immediately to be available in next week's release.
I'll reach out to you directly when it's available.
Can you please send me an email at<EMAIL_ADDRESS>so I know who to email as soon as this feature is live?

Hi @tommydangerous ,
When is this expected to be ready for release? We'll adopt Mage internally as soon as this  is released :-)

@nc-sika its being tested as we speak. It'll be in this week's big release!
I'll ping you when it's live this week 🚀

@c0090555 @nc-sika
User login, management, authentication, roles, permissions: https://docs.mage.ai/production/authentication/overview
Is live!

@tommydangerous Great! Thanks for the updates!

@c0090555 please let me know if you have any questions, issues, or need any feature adjustments.
You can ping me here or directly on Slack: https://www.mage.ai/chat


Fabio redirecting to /routes on own service

I'm trying to use fabio to route it's own UI to localhost:9999/fabio but having issues getting it to work.  the closest I could get was using:
registry.consul.register.tags = urlprefix-/fabio/routes strip=/fabio

And this resulted in having to go to localhost:9999/fabio/routes for the site to come up, but now I'm having issues with the /assets i.e.

I haven't seen any config value for specifying the base path to the UI or it's assets.  Is this possible?

I went with subdomains instead.  closing!


Can mlu-ops be installed without root permission?

Is this repo available in a virtualenv without root?
I have the full environment with Cambricon Newuare, can I install mlu-ops in my virtualenv?

has this issue been resolved ?

has this issue been resolved ?


Rethinking MVKDevice::markLost()?

Currently MVKDevice::markLost() signals a fence (and semaphores) that is also later signalled in the same MTLCommandBuffer completion handler within MVKQueueCommandBufferSubmission::finish().
A problem arises when the code waiting on the fence signal is triggered by markLost(), and then destroys the fence (either during app flow, or when mvkWaitForFences()finishes) before the MVKQueueCommandBufferSubmission::finish() is called in the MTLCommandBuffer completion handler, which then results in a memory access error.
At the very least, MVKQueueCommandBufferSubmission needs to retain()/release() the fence and wait semaphores to avoid this race condition.
But in reviewing this, I also started considering whether MVKDevice::markLost() should really be always signalling everything that is currently waiting on the MVKDevice. Many MTLCommandBuffer errors are local to that submission (eg. a bad resource), and the fence and semaphores for that submission will be signalled anyway in MVKQueueCommandBufferSubmission::finish().

Is there really a need to signal all the other sync objects waiting on other threads? Will not those also be signalled by each respective MVKQueueCommandBufferSubmission::finish() being called?

And if there is a need (maybe for events?), should it only be done for MTLCommandBuffer error enums that truly indicate a device loss?

And in that case, should the collection of waiting syncs by managed within MVKPhysicalDevice, instead of MVKDevice?

@cdavis5e

I'll take a stab at a PR for this. I'll focus on:

Adding retain()/release() for the MVKQueueCommandBufferSubmission fence and signal semaphores.
Moving markLost() and the collection of waiting syncs to MVKPhysicalDevice, and only invoking it if the error indicates the entire MTLDevice is compromised, or if MVKConfiguration::resumeLostDevice is disabled.
Enabling MVKConfiguration::resumeLostDevice by default.

PR #1367 fixes the race condition.
I decided not to do anything further about moving markLost() to MVKPhysicalDevice. The Vulkan spec is clear that the app should destroy and re-create a VkDevice under these conditions, so the current behavior is correct (even if the spec is heavy-handed).
I did change the behavior under MVKConfiguration::resumeLostDevice, so that the waiting semaphores are not signalled unless it's a VkPhysicalDevice fatal error.
Closing.


XLSX.utils.template_set_aoa is not a function

error coming - XLSX.utils.template_set_aoa is not a function
at XMLHttpRequest.req.onload [as __zone_symbol__ON_PROPERTYload]
why this error is coming ?
Did our xlsx demo licence expired ? I also downloaded the xlsx.full.min.js from git but that is also showing same error, please guide.

Please mail the demo licence file at<EMAIL_ADDRESS>and send payment to purchase permanent licence,


fix(cassandra): make cassandra dependency optional/test-only

actually after a careful review of the docs, im fairly sure this does what is desired.


modularise non-platform code

For use in hub / remote / website
look like I should setup for iOS at the same time - the more shared code is written the better
Do tutorials:

[ ] https://play.kotlinlang.org/hands-on/overview

[x] kotlin js : https://play.kotlinlang.org/hands-on/Building Web Applications with React and Kotlin JS/01_Introduction
- [ ] eval best web framework react/vue.js to use with kJS (below)
[x] ktor apis: https://play.kotlinlang.org/hands-on/Creating HTTP APIs with Ktor/01_introduction
[x] websocket ktor: https://play.kotlinlang.org/hands-on/Creating a WebSocket Chat with Ktor/01_introduction
- // NOTE start server with  ./gradlew run then  ./gradlew stream in two terminals and chat !
[ ] full stack webapp: https://play.kotlinlang.org/hands-on/Full Stack Web App with Kotlin Multiplatform/01_Introduction
[x] INTRO TO KMM: https://play.kotlinlang.org/hands-on/Introduction to Kotlin Multiplatform/01_Introduction
[x] intro to kotlin native: https://play.kotlinlang.org/hands-on/Introduction to Kotlin Native/01_Introduction

more samples: https://github.com/JetBrains/kotlin/tree/master/kotlin-native/samples

[x] kotlin native concurrency: https://play.kotlinlang.org/hands-on/Kotlin Native Concurrency/00_Introduction
[ ] KMM networking and data: storage https://play.kotlinlang.org/hands-on/Networking and Data Storage with Kotlin Multiplatfrom Mobile/01_Introduction
[ ] targetting ios and android with KMM: https://play.kotlinlang.org/hands-on/Targeting iOS and Android with Kotlin Multiplatform/01_Introduction

Example projects

[x] look through kampkit https://github.com/touchlab/KaMPKit

[x] get iOS app building - can't find shared lib - soiln: open xcworkspace!

[ ] check out compose for desktop https://www.jetbrains.com/lp/compose/

[ ] run / eval https://github.com/JetBrains/compose-jb/tree/master/examples/todoapp

[ ] PeopleInSpace: https://github.com/joreilly/PeopleInSpace

Look for web frameworks/templates to use with remote

[ ] https://www.bootstrapdash.com/product/star-admin-vue/
[ ] https://medium.com/a-technologists-pov/best-vue-js-free-templates-you-must-try-out-for-web-development-in-2021-4423be6a0f96
[ ] https://cssauthor.com/vue-js-admin-templates/
[ ]  vue.js tutorial https://vuejs.org/v2/guide/
[ ] demo app kotlinjs and vue https://github.com/ojaynico/kotlin-vue

web frameworks

[x] see: if material react will work https://github.com/material-components/material-components-web-react
[x] see: https://www.npmjs.com/search?q=react material
[ ] review: https://github.com/TechForUK/simple-vote-ui/blob/master/src/App.js
[ ] look at: https://github.com/sentinelweb/firebase_react
looks like it wont be that easy to use material-ui with kotlinJs 0 but some people seem to have it working
[ ] try this: https://akjaw.com/kotlinjs-react-redux-with-thunk-and-material-ui/
[ ] lib to wrap it: https://github.com/cfnz/muirwik
[x] thried this - didnt work: https://stackoverflow.com/questions/51431848/how-to-import-node-module-in-react-kotlin

USE THIS FOR THE VIDEO PLAYER: https://github.com/CookPete/react-player

[ ] do a day evaluating react library issues - need react-playeer and material-ui working
[ ] evaluate vue.js with kotlinJs

made a first attempt at a hsaed module but i am hitting an error already with compose ...
need classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0" for KMP
but compose compiler is still waiting
https://stackoverflow.com/questions/67600344/jetpack-compose-on-kotlin-1-5-0
https://android-review.googlesource.com/c/platform/frameworks/support/+/1651538

branch: feature/130_make_shared_kmp_module_koin
also need to do a koin upgrade for KMP
see https://insert-koin.io/docs/setup/v3
looks like lots to do ...


Add mailing list page to the community module

closes: #198

Change logs
This pr includes two commits:

Add a mailing list page to show the community members how to subscribe and unsubscribe to the mailing lists.
Add the LinkedIn handle to the Community page.

Contributor's checklist
Here are some reminders before you submit your pull request:

Make sure that your Pull Request has a clear title and commit message. You can take the Git commit template as a reference.
Learn the code contribution and doc contribution guides for better collaboration.
Make sure that your changes deployment preview is successful.
List your communications in the GitHub Issues or Discussions (if has or needed).
Feel free to ask for the cloudberry committers or other people to help review and approve.

Screenshots:

Currently, the Community layout appears a bit narrow; I will ask for assistance from a front-end engineer to improve it later.


Generate response below cursor instead of at note end

If your notes have a footer then this plugin will stream in the ChatGPT response to your prompt below it currently. I think it would be preferable if the response is placed below the cursor instead.
Otherwise amazing plugin, adding this to my vault was an absolute no-brainer.

Hi @FelixBrakel,
That's a great idea. I'll add a toggle in the settings of the next release to control that.

Added with new release: https://github.com/bramses/chatgpt-md/releases/tag/1.1.0


fix: apply security headers

:tada: This PR is included in version 1.0.0-next.18 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Got your code working against a private repo

Problem Code
the stock git-clone V0.4 doesn't seem to leverage the ssh-privatekey unless it's added to a keychain.
This has worked for me.  It needs to be verified and once it has should be PRd upstream.
eval `ssh-agent -s`
ssh-add ${PARAM_USER_HOME}/.ssh/ssh-privatekey

My SSH Secret
Name:         tkn-ssh-credentials
Namespace:    e595b8-dev
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
id_rsa:  2635 bytes

I think the problem is because my key is named id_rsa which removes the requirement for the steps you are adding. By default, Linux will search for id_rsa when connecting to a remote host using ssh. Because your key is named otherwise, it creates this necessity to add it as an alternative identity. Info on doing this is below. I would recommend just naming it id_rsa and calling it a day.  No need to complicate things.
For info on id_rsa default naming, you can look here: https://askubuntu.com/questions/30788/does-ssh-key-need-to-be-named-id-rsa.
Using multiple keys
It's not uncommon to use multiple keys. Instead of running ssh user@host -i /path/to/identity_file, you can use a configuration file, ~/.ssh/config.
Common settings are the IdentityFile (the keys) and port. The next configuration will check "id_dsa" and "bender" only when connecting with ssh youruser@yourhost:
Host yourhost
   IdentityFile ~/.ssh/id_dsa
   IdentityFile ~/.ssh/bender

If you omit Host yourhost, the settings will apply to all SSH connections. Other options can also be specified for this host match, like User youruser, Port 2222, etc. This would allow you to connect with the shorthand ssh yourhost instead of ssh -p2222 youruser@yourhost -i ~/.ssh/id_dsa -i ~/.ssh/bender.
Reference
More Info
I will make a pull request with all changes if it permits.

Success output.
Initially, it says no credentials found, but then likely just falls back to looking for id_rsa.
+ '[' false '=' true ]
+ '[' true '=' true ]
+ cp -R /workspace/ssh-directory /tekton/home/.ssh
+ chmod 700 /tekton/home/.ssh
+ chmod -R 400 /tekton/home/.ssh/id_rsa
+ CHECKOUT_DIR=/workspace/output/
+ '[' true '=' true ]
+ cleandir
+ '[' -d /workspace/output/ ]
+ rm -rf '/workspace/output//*'
+ rm -rf '/workspace/output//.[!.]*'
+ rm -rf '/workspace/output//..?*'
+ test -z
+ test -z
+ test -z
+ /ko-app/git-init '-url=git@github.com:gregnrobinson/envoytun.git' '-revision=main' '-refspec=' '-path=/workspace/output/' '-sslVerify=true' '-submodules=true' '-depth=1' '-sparseCheckoutDirectories='
{"level":"warn","ts":1637211907.7573082,"caller":"git/git.go:277","msg":"URL(\"git@github.com:gregnrobinson/envoytun.git\") appears to need SSH authentication but no SSH credentials have been provided"}
{"level":"info","ts":1637211914.4364383,"caller":"git/git.go:169","msg":"Successfully cloned git@github.com:gregnrobinson/envoytun.git @ dba608108473c9259c8d34e9d84136bee417cf83 (grafted, HEAD, origin/main) in path /workspace/output/"}
{"level":"info","ts":1637211914.8594203,"caller":"git/git.go:207","msg":"Successfully initialized and updated submodules in path /workspace/output/"}
+ cd /workspace/output/
+ git rev-parse HEAD
+ RESULT_SHA=dba608108473c9259c8d34e9d84136bee417cf83
+ EXIT_CODE=0
+ '[' 0 '!=' 0 ]
+ printf '%s' dba608108473c9259c8d34e9d84136bee417cf83
+ printf '%s' git@github.com:gregnrobinson/envoytun.git


Fixed #3043 - Vapor fails to load NetCDF-CF files with dimensionless units for axes

Fixed #3043

@sgpearse this fix changes the output from testDataMgr, which is why CI is failing. The fix eliminates the redundant listing of "Time" as a coordinate variable in the testDataMgr output.

@clyne PR #3077 fixes the failing test for this branch.  I can approve once it's merged.


Ability to add custom and additional details to JWT token

Custom claims are missing to add extra details to our jwt token.
In addition this we might need to provide additional tokens which can be used in machines/servers to write/update user details in AuthC1

I would love to contribute to this, but i might need a little guidance...

Hey @notpritam We had just closed this with commit e7e2ba2
But I would love your contribution on few other things. Such as, recreating our homepage. If you look at https://authc1.com right now very basic to almost nothing. Do you think you can help there?

Yes , i would to contribute there also, let me know what help you wanted, i am both designer and developer also, so i would be great for redesigning the landing page.

Yes, I saw your profile. Really good. I think let’s brainstorm on a concept, how our landing page should look like, what kind of data we want to showcase. What will come to your mind when they see our website etc.
Maybe we can showcase benchmarks, performance, how to can scale to millions without an issue. Also let’s create an issue on this then assign it to yourself?

okay great..
where should we discuss about this ?
like do you have any social platform in mind or should we do this in that issue


executor shutdown callback couldn't complete properly

driver.stop() in shutdown cause executor exit immediately without waiting for executor shutdown callback complete.
https://github.com/mesos/mesos-go/blob/master/api/v0/executor/executor.go#L484-L501

I'll put some context here:

Looking at the go driver code, looks like the driver does a stop() when it gets a shutdown message from the agent. This will likely cause the driver and the executor to exit immediately. This is different https://github.com/apache/mesos/blob/master/src/exec/exec.cpp#L428 from how the C++ driver responds to the shutdown message.

<EMAIL_ADDRESS>

Thanks @janisz

it sounds like you're looking for semantics more like this?
...
  t := time.NewTimer(shutdownGracePeriod)
  ch := make(chan struct{})
  driver.withExecutor(func(e Executor) {
    defer close(ch)
    e.Shutdown(driver)
  })
  // only stop the driver once Shutdown callback has completed
  go func() {
    defer t.Stop()
    select {
      case <-t.C:
      case <-ch:
    }
    // driver.stop() will cause process to eventually stop.
    driver.stop()
  }()

Thanks @jdef I'm thinking that we can keep driver.stop() in Shutdown callback, so that we won't have this issue.  And you are right, we do need to keep a timer for shutdown grace period. Isn't executor_shutdown_grace_period one of mesos agent config? Why we need it here?


No error on passing non declared var in same line

Godot master
func _ready():
	var some_var = test(some_var)

func test(some_var):
	print(some_var)

Output
Null
Expected: Fail to run the project.
The funny thing is, in my case it was running through by using some other variable but I am not able to reproduce it in a minimal project.

Solved in current master.


Payload encoding disappears after a restart while creating a SOAP API

Description
When a SOAP payload is formulated with CDATA and restart the server, we could see that the payload lost its encoding. This is resolved after updating and saving the API.
Steps to Reproduce

Add below parameter to deployment.toml.

[xml_input_factory.properties]
"javax.xml.stream.isCoalescing" = false

Start API server
Create a SOAP API by selecting the Generate REST API as the implementation type.
Create a POST method (with body parameter). For In flow, add a custom sequence that formulates a soap message that includes the CDATA tag and a Log Full mediator.
Send the request.
We could see the Log Full with encoding as expected.
Restart the server.
Again send a request with the same body as in the 5th step. Then could see the Log full without encoding.
Then edit the API, save it, and send a request again. The output is received similarly to the 6th step with encoding.

Affected Component
APIM
Version
3.2.0
Environment Details (with versions)
No response
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response

Hi all,
Closing this since the U2 update has been released.
Thanks!
Dulith


KeyboardProvider , UI bug after device rotate , using keyboard-controller and react-navigation

Describe the bug
When I finished the UI I decided to test the display with a horizontal screen and noticed that the UI shifts depending on the screen rotation. Initially, I didn't use the react-native-safe-area-context component, when I figured out what the problem was I saw that your example used it, I put it in but it didn't work. I don't know what to do with it, I tried removing components from the list one by one, but the problem disappeared only after removing KeyboardProvider. At this point, the only option is to remove your library and consider how to customize the Keyboard from react-native to make it work properly. If you need additional information, please reply as soon as possible.
versions of some of the usable libraries
"react-native-reanimated": "3.15.0",
"react-native-paper": "5.12.5",
"@react-navigation/bottom-tabs": "6.6.1",
"@react-navigation/native": "6.1.18",
"@react-navigation/native-stack": "6.11.0",
"@react-navigation/stack": "6.4.1",
Code snippet
return (
    <SafeAreaProvider initialMetrics={initialWindowMetrics}>
      <KeyboardProvider >
        <PaperProvider theme={selectedTheme}>
          <NotificationToastProvider>
            <ConfirmationDialogProvider>
              <Portal.Host>
                <Navigation />
              </Portal.Host>
            </ConfirmationDialogProvider>
          </NotificationToastProvider>
        </PaperProvider>
      </KeyboardProvider>
    </SafeAreaProvider>
  );

To Reproduce
Steps to reproduce the behavior:

Set up according to the instruction
Click rotate on the emulator
See the problem

Expected behavior
bottom and top are formatted to fit the width of the screen
Screenshots
Normal

Rotated

Smartphone (please complete the following information):

Desktop OS:  Windows 11
Device: Pixel 8, Samsung m21
OS: Android 7, 12, 14
RN version:  0.74.0
RN architecture: old
JS engine:  Hermes
Library version: 1.12.7

Also tested bottom tabs in example app (on API 28) and it seems to be working fine - let me know if I'm doing something wrong:

Okay, I'm doing it now.

https://github.com/term51/for-fix-ui-bug
The problem remains, by the way, the shift is relative to the turn.

No problem, it can be wait, thank you for such a quick response

Я перевый раз пробую все это завести на ios, и могу где-то ошибаться. вродебы приложение и билдится, но появляется такая ошибка и ui смещается по другому.
/Users/user/Library/Developer/Xcode/DerivedData/SanctumMobileApp-einpcbqzexherngdvjhbypuodtew/Build/Intermediates.noindex/SanctumMobileApp.build/Debug-iphonesimulator/SanctumMobileApp.build/DerivedSources/SanctumMobileApp_vers.c
module map file '/Users/user/Library/Developer/Xcode/DerivedData/SanctumMobileApp-einpcbqzexherngdvjhbypuodtew/Build/Products/Debug-iphonesimulator/react-native-keyboard-controller/react_native_keyboard_controller.modulemap' not found
Содержимое файла
extern const unsigned char SanctumMobileAppVersionString[];
extern const double SanctumMobileAppVersionNumber;
const unsigned char SanctumMobileAppVersionString[] attribute ((used)) = "@(#)PROGRAM:SanctumMobileApp  PROJECT:SanctumMobileApp-1" "\n";
const double SanctumMobileAppVersionNumber attribute ((used)) = (double)1.;

@term51 can you please check if https://github.com/kirillzyusko/react-native-keyboard-controller/pull/550 fixes the problem?

The fix is published under 1.13.1! Let me know if the issue is still there so that I can re-open this issue!


Switch to search area with outline

Resolves #59

https://github.com/ResonantGeoData/RGD-Vue/blob/ea6739cd18bca00c9f737288fcccbca81bb9e8de/src/components/organisms/CesiumViewer.vue#L324
This will also need to change so that the shape specified by user input is an outline as well:
      cesiumViewer.value.entities.add({         polygon: {           hierarchy: uploadedFootprint,           outline: true,           outlineColor: Cesium.Color.RED,           outlineWidth: 3,           fill: false,         },       });
  This should work