FHIR Resource ID striped by API

FHIR API striped the resource ID when posting/uploading resource. Hence the reference for each resource is lost. For example an encounter resource lost the reference to patient resource because the patient id is striped and replaced when uploaded though FHIR api. Is there a setting or a way we can stop this feature by the api? If there's no way, is there a way where we can upload resource and still retain the reference to each resources.
Steps to replicate:

Post a patient resource using postman.
Check the patient resource and inspect the ID, notice that it has been replaced.

This is correct behavior. When you POST a resource, the server should create a new id. If you would like to preserve the id, use PUT, e.g.:
PUT //Patient/1234

with a payload:
{
  "resourceType": "Patient",
  "id": "1234",

   // ... more stuff
}

If Patient 1234 already exists, it will be updated, if not it will be created (with that id).
This is all according to spec.


model.topc() is throwing an error, if you can help I appreciate it

model.topc() is throwing an error, if you can help I appreciate it
tbh I don't understand this traceback, it seems like numba errors are less structured
Traceback (most recent call last):
File "model_gefs.py", line 94, in fit
model.model = model.model.topc()  # Convert to a GeF
File "C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\gefs\trees.py", line 522, in topc
pc.root = SumNode(scope=self.scope, parent=None, n=1)
File "C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\numba\core\dispatcher.py", line 415, in _compile_for_args
error_rewrite(e, 'typing')
File "C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\numba\core\dispatcher.py", line 358, in error_rewrite
reraise(type(e), e, None)
File "C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\numba\core\utils.py", line 80, in reraise
raise value.with_traceback(tb)
numba.core.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Internal error at <numba.core.typeinfer.CallConstraint object at 0x000001D48EBE81D0>.
Failed in nopython mode pipeline (step: nopython mode backend)
Can only insert i64* at [4] in {i8*, i8*, i64, i64, i64*, [1 x i64], [1 x i64]}: got i32*
File "C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\gefs\nodes.py", line 49:
def init(self, parent, scope, type, n):

self.sibling = None
self.scope = scope
^
During: lowering "(self).scope = scope" at C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\gefs\nodes.py (49)
During: resolving callee type: jitclass.Node#1d48d0204a8<id:int64,parent:OptionalType(DeferredType#2012402805896) i.e. the type 'DeferredType#2012402805896 or None',left_child:OptionalType(DeferredType#2012402805896) i.e. the type 'DeferredType#2012402805896 or None',right_child:OptionalType(DeferredType#2012402805896) i.e. the type 'DeferredType#2012402805896 or None',sibling:OptionalType(DeferredType#2012402805896) i.e. the type 'DeferredType#2012402805896 or None',scope:array(int64, 1d, A),type:unicode_type,n:float64,w:OptionalType(array(float64, 1d, A)) i.e. the type 'array(float64, 1d, A) or None',logw:OptionalType(array(float64, 1d, A)) i.e. the type 'array(float64, 1d, A) or None',comparison:int64,value:array(float64, 1d, A),mean:float64,std:float64,a:float64,b:float64,logcounts:OptionalType(array(float64, 1d, A)) i.e. the type 'array(float64, 1d, A) or None',p:OptionalType(array(float64, 1d, A)) i.e. the type 'array(float64, 1d, A) or None',logp:OptionalType(array(float64, 1d, A)) i.e. the type 'array(float64, 1d, A) or None',upper:array(float64, 1d, A),lower:array(float64, 1d, A)>
During: typing of call at C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\gefs\nodes.py (123)
Enable logging at debug level for details.
File "C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\gefs\nodes.py", line 123:
def SumNode(parent, scope, n):
return Node(parent, scope, 'S', n)
^

The traceback from numba is not always very informative, unfortunately. It seems that you are passing a scope parameter which has type int32 while it should have been int64.
Though, judging by the traceback you are using a slightly older version of the code. I believe that if you pull the latest version, you will no longer get this error. Alternatively, you can just cast scope to be int64, e.g. scope = scope.astype(np.int64).

Thank you very much for responding
I switched to the latest version, still getting errors after fit(), I don't understand how the model will train fine but will throw errors at model.topc()
Am I missing something about input types or something ?
*********** Fit over ***********
0%|                                                                                | 0/100 [00:08<?, ?it/s]
Traceback (most recent call last):
File "model_gefs.py", line 95, in fit
model.model = model.model.topc()  # Convert to a GeF
File "C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\gefs\trees.py", line 551, in topc
thr=thr, minstd=minstd, smoothing=smoothing)
File "C:\Users\asus\anaconda3\envs\dsa2\lib\site-packages\gefs\trees.py", line 351, in tree2pc
p_left, p_right = add_split(tree_node, pc_node, ncat, smoothing, root)
TypeError: expected instance.jitclass.Split#22dc49d68d0<score:float64,var:int64,threshold:array(float64, 1d, A),surr_var:array(int64, 1d, A),surr_thr:array(float64, 1d, A),surr_go_left:array(bool, 1d, A),surr_blind:bool,left_ids:array(int64, 1d, A),right_ids:array(int64, 1d, A),left_counts:array(int64, 1d, A),right_counts:array(int64, 1d, A),type:unicode_type>, got None

Could you maybe share your code? It is hard for me to reproduce your error otherwise.
It seems that your model is not actually training in fact. The error indicates your tree has no splits.

X, y are random data, y has two classes 0/1
print("\n\ntypes : ")
print("X : ", Xtrain.shape)
print("y : ", ytrain.shape)
print("ncat : ", ncat.shape)
types :
#  X :  (712, 12)
#  y :  (712, 1)
#  ncat :  (1,)
#  n_estimatiors :  100
model.model = RandomForest(ncat, n_estimators=model.n_estimators)
print("\n\n")
model.model.fit(Xtrain.values, ytrain.values.reshape(-1))
print("\n*********** Fit over ***********\n")
model.model = model.model.topc()  # Convert to a GeF

Not sure whether this is the problem, but your ncat parameter is not correct. This is supposed to be the number of categories for each variable: if the ith variables is continuous ncat[i] = 1, otherwise ncat[i] = k where k is the number of categories of the ith variable. That means, in your case, ncat should have shape 13 (12 + 1). So it is not just the number of categories of the class variable, but of every variable in your data.
I should actually document this better and add checks for the size of ncat. Sorry about that.

Ok Thank you for responding
Just to make sure, does X have to contain the target column ?? because you said ncat is (12+1) does that mean X has no y column ?

No, X still contains only your explanatory variables. The thing is that the model is defined over X and Y, so it needs to know the number of categories of all the variables.

Thank you very much for your help
Now model.topc() works


Support Thrift 0.9.3 and 0.10.0

Motivation:
Thrift 0.10.0 has been released with some breaking changes. We should
support both Thrift 0.9 and 0.10 until majority of our users finishes
migration.
Modifications:

Make 'armeria-thrift' depend on libthrift 0.10.0

Use TBase<?, ?> because of the type parameter signature changes of
TBase in 0.10.0
Decode TApplicationException using internal.thrift.TApplicationExceptions
to work around the API breakage in TApplicationException.read()
between 0.9.3 and 0.10.0
Add a few utility methods to ThriftFieldAccess

Add a new project 'armeria-thrift0.9' that depends on libthrift 0.9.3

It does not contain any Java source code. It uses the source code
from the 'armeria-thrift' project, only resulting different byte
code due to the ABI compatibility issues between 0.9 and 0.10.
It contains Thrift source files because we replaced 'byte' with 'i8'
in 'armeria-thrift' and Thrift 0.9 does not recognize 'i8'.

Result:

A user can choose between Thrift 0.9 and 0.10 by depending on
'armeria-thrift0.9' or 'armeria-thrift'.
Fixes #387

One to-do item left: remove the thrift dependency from armeria-kafka so that a armeria-thrift0.9 user has no issues.

Thanks for reviewing, @imasahiro. Please feel free to merge this if you think it LGTM. :-)

Nice work @trustin !

Thank you, @imasahiro :-)


api: use shared_ptr for ImageCache and TextureSystem

Change IC::create() and TS::create() to return shared_ptr instead of a raw pointer. This cleans up a lot of lingering lifetime management issue of these classes. The switch to 3.0 is an opportunity to make breaking changes to these APIs.
For the sake of downstream users, we define preprocessor symbols
OIIO_IMAGECACHE_CREATE_SHARED and OIIO_TEXTURESYSTEM_CREATE_SHARED to signal that the new APIs are present. Some very minor changes may be needed at the call site.

OK, I think maybe I have a plan. Tell me what you think, @fpsunflower :
If you have a method that takes a shared_ptr and will definitely keep an internal copy, pass by value shared_ptr<T> then use std::move to store it internally so as to avoid any unnecessary ref count adjustment.
If you have a method that is merely an observer of the pointed-to shared object and never assumes ownership or needs to retain a reference/pointer to the object, pass a T* or const T* for max performance if there are many internal uses of the object (OR if you want the method to also work for a non-shared object), or a const shared_ptr<T>& reference if you don't mind the cost of the extra indirection and know it will ALWAYS be called by somebody who has a shared_ptr and not a raw pointer.
If you have a method that takes a shared_ptr and has logic whereby it MAY OR MAY NOT store a copy internally (depending on conditions)... what's the best route? If you pass the shared_ptr by value, you'll have unnecessary ref count diddling in the case where you don't keep an internal copy, but if you pass by reference, you have an extra level of pointer indirection on every use of it. Probably a wash, but do you have a "clarity" based preference?

I think what I said corresponds to https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#r36-take-a-const-shared_ptrwidget-parameter-to-express-that-it-might-retain-a-reference-count-to-the-object-

Updated, in the end I kept the value semantics because IB ctr/reset will retain shared ownership of any IC they are passed, but I did add a couple std::move wrappers to the assignments to ensure no unnecessary ref count adjustments in the process.

Speaking of which, I do have a follow-on after this is merged, which is that I'm going to propose that IC and TS be "de-virtualized" and instead use a PIMPL idiom like IB already does.
IC and TS were set up initially as pure virtual interface classes so that something like OSL could use its interface while allowing a renderer to substitute a different implementation. But in practice, I think there's a better mechanism for that -- OSL's RendererServices (or new/in progress "free functions" supplied by the renderer as LLVM bitcode) already wrap the texture calls, and so don't need to conform to the OIIO interfaces at all if they don't really want to. But the cost we're paying for this flexibility we don't need is that we can't amend the public IC or TS interfaces at all between major releases, since even the addition of a new virtual function can change the vtbl and break ABI.
So what I want to do is add an opaque PIMPL ptr, and make as much of the public interface be ordinary methods, not virtual, which will allow us to freely add to the interface without ABI breaks until we need remove a call entirely, which of course we can always wait to do until a scheduled ABI-breaking release.
Is anybody RELYING on the current design of IC and TS being a pure virtual facade interface class, backed by a hidden implementation subclass that overloads every single call?

@sfriedmapixar Does this raise any reg flags for you? Especially my last comment above about what I'd like to do next? Do you rely on the current abstract interface class design, or do you substitute in a different texturesystem via the RendererServices layer?

We discussed this at today's OSL TSC meeting, and @sfriedmapixar says he's not going to be inconvenienced by this PR or the follow-up I mentioned about de-virtualizing these classes.
Anybody else have concerns?


The "info" admonition type is missing from the README

The README file does not include examples of an "info" admonition, and the "info" admonition type is missing from the list.

Hi @jmooring ,
Thank you for bringing this up!
I'll update both the examples and the list, by the way, this time I will sort them by alphabet 😁


Adding popups to symbols

Hi,
I have been using your great plugin but i can't seem to find a way to put popups on the symbols. Do you know of a way to do this?

For me your solution leads to:
Uncaught TypeError: layer.getLatLng is not a function
    at NewClass.openPopup (leaflet.inc.js:9672)


Data generator prep

I'm doing some code cleanup in preparation for switching to data generators, instead of loading all of the data up front.  This will include dynamic padding (which, along with reduced memory consumption, is the main benefit here), but that will be a future PR.
This PR is mainly just some renaming and improving docstrings around loading data.

Note that it might be easier to look at this by commit, instead of all at once, because there's a sed command that actually did most of the line changes.


[AVM Question/Feedback]: what is the benefit of using the AVM module?

Check for previous/existing GitHub issues

[x] I have checked for previous/existing GitHub issues

Description
i've been using the "none AVM" aks module for some time now.
and i've came to know the AVM version.
i'd love to understand more about the advantages of using the AVM module as opposed to the "none-avm" one
thanks !

The Terraform AKS modules:

https://github.com/Azure/terraform-azurerm-aks

not in the AVM program. This module is very old and carries a lot of legacy. Currently maintained, however for new projects not the best choice. It will be deprecated somewhere in the future.

https://github.com/Azure/terraform-azurerm-avm-ptn-aks-production

This repo. It is an opinionated pattern module. This blog post explains the design. I would suggest this module for small medium business that should quickly build a production AKS cluster.

https://github.com/Azure/terraform-azurerm-avm-res-containerservice-managedcluster/tree/main

This is a resource module for AKS in the AVM program. This should be the module to be used for generic new projects.

For more info on AVM: https://azure.github.io/Azure-Verified-Modules/

@tomer-1 if the above comment answers your question please close the GitHub issue, thanks.

Thank you very much for your feedback.
i'd like to stress that while i haven't have the chance to try out the ptn-aks modules.
i have been extensively using the none-avm version for a while.
i've been pushed back by a few things which i would like to point out.
and i would love your feed back on this.
first of all the AVM version accepts a total of 19 inputs.
where the "none AVM" supports 62...
this is alot, and usually speaks a lot on the flexibility of the module.
obviously the mere number of arguments don't always point to the flexibility of the module
since some inputs in the AVM version accepts some inputs in the form of a map rather than just a string or a bool.
which means you could pack a bunch of inputs into a single "input" in the "AVM version".
but still , i did find some missing features in the AVM for example , i didn't find a way to configure cluster addons and how to configure different zones for the nodes to use or configuring the "node pool" for the system pods.
i might be missing something out, and this it why i'm asking this.
again, thank you for your time.


Create ImportRDSFull.ps1

For a Remote Desktop server, the current powershell scripts do not take care of the distribution of the certificate to installed roles of  RD WebAccess, RD Redirector,  RD Gateway and RD Connection Broker.
The script is based on ImportRDS.ps1 and extends it.
In order for this script to work, the private key of the certificate needs to be marked as exportable. Set "PrivateKeyExportable" in settings.json to true.

Nice work, thanks for this! Do you still any need for the original script or should that one be marked obsolete? Maybe you could update the docs as well? Specifically the page https://github.com/PKISharp/win-acme/blob/master/docs/manual/advanced-use/examples/rds.md

I am not sure, for what the original script was used. Thats why I extended it. I had no need for it, so from my perspective it would be fine to mark it obsolete. I'll check the docs.

This definitely superceeds the importrds.ps1 script for ws2012 and higher. WS2008r2 and lower would not be able to run this new one all the way through, though EoL for that OS is in a month, so probably fine to mark the old one as obsolete.
Nice addition to have a simple all-in-one script. I would add that if you don't have high-availability (multiple RDCB) in the deployment, that this would work to distribute the cert for everything in the deployment/collections except the RD listener. So might be worth updating RDS.md to clarifty that
Finally, i'm a bit confused why there's so many commits in this PR for a single install script, but I assume @WouterTinus  is on top of it.

I'm not sure why the script would not distribute the cert for the listener. I did not touch the original code to take care of that: wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="$($CertInStore.Thumbprint)". Did I miss anything?

I'm saying that if you have the rdcb on server1 and server2 is part of a collection, then it wouldn't distribute to that RD Listener. Otherwise, this script would distribute the cert to all 4 main certificate roles in the deployment: RDGateway, RDWeb, and the two connbroker certs.

All right, please go ahead and add your clarification then.

Finally, i'm a bit confused why there's so many commits in this PR for a single install script, but I assume @WouterTinus is on top of it.

That's my bad. The original PR was towards master and I wanted it to go towards 2.1.2. I haven't gotten the hang of making sure the list of commits remains clean.

I have an RDS deployment where the Connection Broker component is on a separate machine from the Gateway and Web Access components.  Additionally, the Connection Broker does not have Internet access, so it can't get its own certificate.  I am able to get all aliases I need on a single certificate using some DNS trickery, but I have to manually apply the certificates because the current version of this script doesn't work for that scenario.  I'd be happy to help test improvements to this script (or a separate new script if that would be better).  Is this something you would be interested in working on?


One more warning to be fixed

Hi!
I found one more line to be changed (from Fly.rpc_primary to Fly.RPC.rpc_primary)
https://github.com/superfly/fly_postgres_elixir/blob/91d152b7e40abe0ba22c448b84ee2af174984079/lib/repo.ex#L398C16-L398C16
I found it because I updated and I'm getting this warning.
warning: Fly.rpc_primary/4 is undefined (module Fly is not available or is yet to be defined)
  lib/brandkit/repo.ex:54: Brandkit.Repo.__exec_on_primary__/3

Thank you so much!

Seeing the same warning on update

Thanks for the report @nicanor! It should be fixed now. I got a personal app updated and deployed with it as well. Let me know if you have any more issues!


CloudAdapter: messages are not sorted correctly

Github issues should be used for bugs and feature requests. Use Stack Overflow for general "how-to" questions.
Versions
What package version of the SDK are you using: 4.16.0
What nodejs version are you using: 14.15.1
What browser version are you using: Google Chrome Version 104.0.5112.102
What os are you using: Windows 10 Pro (Version 10.0.19044)
Describe the bug
We recently started using CloudAdapter, because we've seen that BotFrameworkAdapter is deprecated.
Since we use CloudAdapter, activities that get sent very shortly after each other dont get sorted correctly. They get shown in seemingly random order in the WebChat Frontend.
This happens when sendActivities and sendActivity are used from the TurnContext. The reason the messages are not in the right order is, that the timestamp of the activities recieved in the WebChat Frontend are in different order then when the activities where sent from the Backend.
To Reproduce
Steps to reproduce the behavior:

Migrate from BotFrameworkAdapter to CloudAdapter
Send multiple activities directly after each other. This can either be done by using sendActivities, or multiple use of sendActivity, f.e. in a for loop.
Do this multiple times, and the activities dont get shown in the correct order, and for multiple tries they get shown in different orders.

Expected behavior
The timestamps that are recieved by the Frontend are in the same order as they get sent out in the Backend.
Additional context

Initialization of CloudAdapter:
const botFrameworkAuthentication = createBotFrameworkAuthenticationFromConfiguration(null, credentialsFactory);
const adapter = new CloudAdapter(botFrameworkAuthentication);
Usage of CloudAdapter:
this.getCloudAdapter().process(req, res, async (turnContext) => { await BotInstance.getInstance().run(turnContext);});
I have looked at the responses of sendActivities for both cases, and the only difference I could see was the user-agent value in the headers of the request:
CloudAdapter: Microsoft-BotFramework/3.1 botframework-connector/4.16.0 ms-rest-js/1.9.1 Node/v14.15.1 OS/(x64-Windows_NT-10.0.19044)
BotFrameworkAdapter: Microsoft-BotFramework/3.1 BotBuilder/4.16.0 (Node.js,Version=v14.15.1; Windows_NT 10.0.19044; x64)
One way I could fix the problem, was by inserting a 50 millisecond delay after each call of sendActivity. When doing that, the timestamps seemed to be in the right order. But when I reduced the delay to 25 milliseconds the problem occured again.

@mschuelein - Are you able to post a copy of your code for both your bot as well as your Web Chat implementation? Or, a basic repro of both in case you can't share your project? It looks like you have customized your code a little bit (when compared to our samples). Having your code will be easier than trying to guess your precise setup.
I'm curious to see your setup as I also migrated a test bot several months ago from the BF adapter to the cloud adapter. However, I did not run into this issue when doing so nor has it come up since.

@stevkan I't very easy to reproduce, even without much customization:
reproduction - steps

Use the latest webchat (Integrate With JavaScript)
Install yeoman
Create a new echo-bot with yeoman
Use the sendactivities - function in the bot.ts:

this.onMessage(async (context, next) => {
    const text1 = MessageFactory.text("1");
    const text2 = MessageFactory.text("2");
    await context.sendActivities([
        text1,
        text2
    ]);
    // By calling next() you ensure that the next BotHandler is run.
    await next();
});

Create a new Azure Bot or Web App Bot Ressource in Azure (The Bug happens in both ressources)
Insert the secret of the Web App Bot in your Webchat
Configure the MicrosoftAppId + MicrosoftAppPassword in the .env file in the backend
Start the Backend with ngrok
Configure the ngrok - URL in your Azure Web App
send multiple messages to the bot

Note that this problem seems like a reace condition. Sometimes the order of the messages is wrong and sometimes it's correct. It's random:

Example - Code
Here the example, which Ive generated just today. You have to use npm install. before starting the bot:
message_order_bug_reproduction.zip
Context

I'm using node V16.17.0

@mschuelein - Thank you for the code sample. I am able to repro the issue and am diving deeper into it. I have a suspicion as to what the cause may be. I need to speak with a colleague about it. When I know more, I will respond.

@JuanAr  This was reproduced by Steve and myself. Please let us know if you have any questions regarding the behavior/repro.


Add upstream listenToHash function

Ref: #3

Thanks Josh! Needs tests before we can merge though.

Actually I'll just take care of this now

Of course! I have some time in the coming days where I'll be able to get
onto this.
Any thoughts on how to adequately test this feature?
On 30 Jul 2015 07:52, "Ben Drucker"<EMAIL_ADDRESS>wrote:

Thanks Josh! Needs tests before we can merge though.
—
Reply to this email directly or view it on GitHub
https://github.com/eaze/weakmap-event/pull/4#issuecomment-126107450.

Already done, going up as 1.0.0 in a few mins with some breaking changes. I'm removing the ability to unlisten across the board since it's going to be hard to implement on toHash.

Actually may need to implement an unlisten fn for toHash first

Solid! :+1:
On Thu, Jul 30, 2015 at 9:12 AM, Ben Drucker<EMAIL_ADDRESS>wrote:

Closed #4 https://github.com/eaze/weakmap-event/pull/4 via 9b78345
https://github.com/eaze/weakmap-event/commit/9b783450a391ee90952d91138d26547f7f5ef650
.
—
Reply to this email directly or view it on GitHub
https://github.com/eaze/weakmap-event/pull/4#event-368908931.


Refactor/new vm accordion

@dweinholz
Multiple changes:

Refactored new instance into accordion, which could be deleted again if it does not look good. Also there is a bug i currently do not know how to fix: image-detail and flavor-detail only show one until window is resized.
Logs downloadble as pdf, independent if success or fail
Changes to accomodate multiple chosen playbooks and calculate and inform about max timeout of playbook

needs: https://github.com/deNBI/cloud-api/pull/817 and https://github.com/deNBI/cloud-portal-client/pull/119
Try to fulfill the following points before the Pull Request is merged:

[ ] Give a meaningfull description for the PR
[ ] The PR is reviewed by one of the team members.
[ ] It must be checked if anything in the Readme must be adjusted (development-, production-, setup).
[ ] It must be checked if any section in the wiki (https://cloud.denbi.de/wiki/) should be adjusted.
[ ] If the PR is merged in the master then a release should be be made.
[ ] The PR is responsive on smaller screens.
[ ] If the requirements.txt have changed, check if the patches still work
[ ] If the new code is well commented
[ ] In case the code is not well commented: An respectice commenting issue with tag "important" is opened.
[ ] If a squash of commits is required, it has been performed or will be performed at final merge
[ ] Finally a second team member checks if all requirements met

For releases only:

[ ] If the review of this PR is approved and the PR is followed by a release then the .env file
in the cloud-portal repo should also be updated.

Everything works fine.

New Instance Accordion  is fine for optional and Bioconda but i think it looks better when the main parts (name flavor etc) are like before.
2.PDF Download works, but the boxes with show and hide don't look so good in general, so we need something more beautiful ( not part for this pr).

Also " At maximum it can take up to 15 minutes and 0 seconds.. " I would think minutes is enough and more nice to read.
But most of the things I noted are subjective, so everything is approved for me first.


feat: add environment secrets support [sc-21028]

I hereby confirm that I followed the code guidelines found at engineering guidelines
Affected Components

[x] CLI
[ ] Create CLI
[ ] Test
[ ] Docs
[ ] Examples
[ ] Other

Notes for the Reviewer

[x] Add --secret support while creating/updating environment variables with npx checkly env add|update
[x] Add secret: boolean support for check/group constructs
[x] Update npx checkly env pull to structure the file with regular and secret variables

[!IMPORTANT]
Important note: this feature is not available yet, if you have any questions feel free to reach out to our customer support

Reviewing 👀


text area to numeric array conversion, example for improvement and inclusion in docs/examples

For an application I have, entering an array of numbers via textarea was more natural than using the table array editor with an item of type number.
I came up with the following code, which I am contributing here in the hope that someone might hack on it a bit more and include it as either a feature or a documentation example.  Although the code seems to be working, I suspect it would benefit from an experienced json-editor hacker tinkering with it a bit more before it would be worthwhile as a pull-request.
Adding a textarea--> array editor accepting only positive numbers

 function init(){
    "use strict";
    require('json-editor'); // defines window.JSONEditor
    /* from npm; defines a function accepting string, returning array of positive numbers or undefined */
    const positiveNumberArray = require('positive-number-array');
    window.JSONEditor.defaults.options.theme = 'bootstrap3';
    window.JSONEditor.defaults.options.iconlib = 'bootstrap3';
    /* suggested by json-editor README.md lines 1122-1165 */
    /* defined new property "flavor" as I need format to be "textarea" in the string editor */
    /* perhaps property "conversion" would be better, with a table of conversions? */
    window.JSONEditor.defaults.resolvers.unshift(function(schema){
        if (schema.type === "array" && schema.format === "textarea" && schema.flavor==="positiveNumbers"){
            return "positiveNumbers";
        }
    });
    /* from an examination of json-editor/src/editors/number.js */
    window.JSONEditor.defaults.editors.positiveNumbers = window.JSONEditor.defaults.editors.string.extend({
        sanitize: function(value){
            return (positiveNumberArray(value) || []).join(" ");
        },
        getNumColumns: function(){
            return 2;
        },
        getValue: function(){
            return positiveNumberArray(this.value) || [];
        }
    });
    var editorElement = document.getElementById('editor');
    var editorOptions = {
        schema: {
            type: "object",
            properties: {
                "favoriteNumbers": {
                    type: "array",
                    format: "textarea",
                    flavor: "positiveNumbers",
                    default: [1,2,3,5,8,13,21]
                }
            }
        }
    };
    var editor = new window.JSONEditor(editorElement, editorOptions);
    editor.on('change', function(){
        console.log("detected editor change, new value follows");
        console.log(editor.getValue());
    });
}

document.addEventListener("DOMContentLoaded", function(event) {
    "use strict";
    init();
});

After running browserify main.js -p bundle.js with the above as main.js; this works with the following boilerplate index.html

<!DOCTYPE html>

<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous">

JSON-Editor with Positive Number Array handler

For easier duplication/testing of the above, I have posted it on github.
git clone https://github.com/DrPaulBrewer/json-editor-customization-textarea-as-positive-number-array

Prerequisites:  npm, browserify, a web server

Although the above example looks OK, now json-editor is having issues with it when using it within a larger schema.  I'll post more information when available.


GPU prediction does not work on Android

I get these errors in logcat when running a prediction with a model that uses the GPU
E/tflite: TfLiteGpuDelegate Invoke: GpuDelegate must run on the same thread where it was initialized.
E/tflite: Node number 374 (TfLiteGpuDelegateV2) failed to invoke.

This probably means that Predict must be called on the same thread that created the GpuDelegate, but with the async MLEdgeModel.Create it is not known on which thread it is created.
There should be a non-async variant of this method that can be run on a background thread controlled by the app so that the predictions can also be run on that thread.

@joseph-o3h can you share the full, unfiltered logs from this? Feel free to shoot me a PM on Discord or email with the logs if it contains sensitive info. I ask because this issue doesn't seem to be uniformly reproducible; I suspect that only the OpenGL delegate has this issue, and not the OpenCL delegate (which takes precedence).
In any case for safety, the GPU delegate will be disabled by default on Android, making it opt-in. We'll need to find a better way to handle this than forcing model creation to be synchronous.

@joseph-o3h what version of Android is your test device running? I just found out that on Android S+, apps need to explicitly request access to vendor libraries (OpenCL falls into this category because Android doesn't officially support it).  This would explain why TFLite falls back to OpenGL, which then results in this GPU thread error.

Yes it was the OpenGL delegate that was causing this (here is the full log from tflite)
W/tflite: NNAPI SL driver did not implement SL_ANeuralNetworksDiagnostic_registerCallbacks!
I/tflite: Replacing 204 node(s) with delegate (TfLiteNnapiDelegate) node, yielding 1 partitions.
E/tflite: Following operations are not supported by GPU delegate:
    DELEGATE TfLiteNnapiDelegate: Operation is not supported.
    No operations will run on the GPU, and all 1 operations will run on the CPU.
I/tflite: Created 0 GPU delegate kernels.
W/tflite: NNAPI SL driver did not implement SL_ANeuralNetworksDiagnostic_registerCallbacks!
I/tflite: Replacing 365 node(s) with delegate (TfLiteNnapiDelegate) node, yielding 5 partitions.
W/tflite: NNAPI SL driver did not implement SL_ANeuralNetworksDiagnostic_registerCallbacks!
W/tflite: NNAPI SL driver did not implement SL_ANeuralNetworksDiagnostic_registerCallbacks!
W/tflite: NNAPI SL driver did not implement SL_ANeuralNetworksDiagnostic_registerCallbacks!
E/tflite: Following operations are not supported by GPU delegate:
    DELEGATE TfLiteNnapiDelegate: Operation is not supported.
    5 operations will run on the GPU, and the remaining 4 operations will run on the CPU.
I/tflite: Replacing 5 node(s) with delegate (TfLiteGpuDelegateV2) node, yielding 3 partitions.
E/tflite: Can not open OpenCL library on this device - dlopen failed: library "libOpenCL.so" not found
E/tflite: Falling back to OpenGL
I/tflite: Created 1 GPU delegate kernels.

The device was running Android 13.

Yup relevant lines:
E/tflite: Can not open OpenCL library on this device - dlopen failed: library "libOpenCL.so" not found
E/tflite: Falling back to OpenGL

The next update will add the <uses-native-library> tag that should let the application load libOpenCL.so. And we'll remove the GPU from being used by default. NatML Hub will maintain a configuration database for which Android devices can use the GPU, so models fetched from Hub will be able to leverage the GPU when possible.

NatML Hub will maintain a configuration database for which Android devices can use the GPU, so models fetched from Hub will be able to leverage the GPU when possible.

But what if the model is embedded? In that case can the GPU be enabled by detecting the presence of libOpenCL.so on the device at runtime?

But what if the model is embedded? In that case can the GPU be enabled by detecting the presence of libOpenCL.so on the device at runtime?

The issue isn't necessarily about libOpenCL.so being available at runtime (it's pretty common); it's that on Android S+, apps have to explicitly declare that they will use vendor libraries. I just found out that NatML can't declare this just yet, because the version of Gradle (Android build plugin) that Unity 2022.1 or older uses doesn't support <uses-native-library>.
So for now, the simplest workaround you all can do is to detect the version of Android at runtime, and if it's older than Android S, then enable the GPU compute target. In the next update, NatML will default to using the CPU and neural processor (and not the GPU) on Android.

Following up from convo above, NatML now does not use the GPU by default on Android. We'll be able to do so once we can bump the minimum Unity version to Unity 2022.2. See the NatML 1.1.4 changelog.


[MOL-3757][WK] Calendar with date input

Changes
Description of changes...

delete branch

Changelog entry

[BREAKING | WARNING ] Enhance DateInput with DatePicker Component

Additional information

You may refer to this ticket
Any other information you would like to include

Too dirty


Option to remove route data header

Possibly just remove the route ID. This is in case the user forgets to turn their route private prior to posting a video.
Context.

JWT Token input added. The drawbacks are serious but maybe you might like it.


chore!: rename MsgPayForBlob to MsgPayForBlobs

Closes: #1221
This breaks a lot of the APIs. If it's important to us that we don't do that, then I'd suggest instead having both types of messages i.e. MsgPayForBlob and MsgPayForBlobs

Codecov Report

Merging #1304 (8336cc3) into main (578ed15) will not change coverage.
The diff coverage is 29.62%.

:exclamation: Current head 8336cc3 differs from pull request most recent head 65465d8. Consider uploading reports for the commit 65465d8 to get more accurate results

@@           Coverage Diff           @@
##             main    #1304   +/-   ##
=======================================
  Coverage   49.79%   49.79%
=======================================
  Files          76       76
  Lines        4374     4374
=======================================
  Hits         2178     2178
  Misses       2014     2014
  Partials      182      182

Impacted Files
Coverage Δ

app/check_tx.go
0.00% <0.00%> (ø)

app/process_proposal.go
0.00% <0.00%> (ø)

pkg/proof/proof.go
75.94% <0.00%> (ø)

x/blob/handler.go
0.00% <0.00%> (ø)

x/blob/payforblob.go
0.00% <0.00%> (ø)

x/blob/types/blob_tx.go
18.30% <0.00%> (ø)

x/blob/types/payforblob.go
82.48% <37.50%> (ø)

x/blob/keeper/keeper.go
82.75% <66.66%> (ø)

testutil/testnode/node_interaction_api.go
56.41% <100.00%> (ø)

x/blob/types/codec.go
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Ok I've gone through a second pass, trying to pick up on all the cases that @evan-forbes and @rootulp have outlined. There is one struct I haven't touched which is the EventPayForBlob. Should I also rename this?

Okay I went with adding the events. It seemed to make sense


Error in UCP docs about port 7946

@adrahon commented
In the System Requirements part of the docs for both UCP 2.0 and 2.1 beta, we list ports that need to be open, we have the following entries:
managers, workers	in	TCP 2377 (configurable)	Port for communication between swarm nodes
managers, workers	in, out	TCP, UDP 4789	Port for overlay networking
managers, workers	in, out	TCP, UDP 7946	Port for overlay networking
According to the Docker Engine Swarm docs it's:
TCP port 2377 for cluster management communications
TCP and UDP port 7946 for communication among nodes
TCP and UDP port 4789 for overlay network traffic
My understanding is that:

TCP 2377 is for swarm node RPC communication
TCP / UDP 7946 is for gossip-based clustering
TCP / UDP 4789 for overlay networking

Claimed.


AnimationNode.GetParameter() throws assertion failure: Condition ' !state ' is true

Godot version:
master / 9af72f0
OS/device including version:
Manjaro Linux 17.1
Issue description:
Attempting to read parameter values via AnimationNode.GetParameter seem to result in an assertation failure 'Condition ' !state ' is true' in animation_tree.cpp:55.
This is especially painful since it means there's no way to manipulate an animation node's parameters having a reference of the node itself (#21399).

I have been trying to do a similar thing, getting cyclic animations to blend properly in a BlendTree. At first I compiled the code from #34179, which in principle works, but had some issues for me and wasn't as flexible as I'd like (you can only blend between AnimationNodeAnimation).
So I was extremely excited once I realized that it is supported to write your own AnimationNode. The plan was to write a custom cyclic_blend AnimationNode that uses the lengths of the input animations to figure out what seek time to use for the individual animations such that the blend lines up. Due to the way the system works right now though, I have to write my own AnimationNodeAnimation such that I can actually access what animation it plays, to get the length of the animation. As far as I can tell, the built-in AnimationNodeAnimation can not be accessed in any way by the code, not even with parameters.
Also, if I want to put a different node between the cyclic node and the animation (e.g. timescale), I would need to propagate the length through this node. The way I would like to do this is to extend the nodes such that they calculate the correct length from the input animations.
If I had a way to propagate info through connections, this would all be doable. But since all info has to go through parameters, it will be extremely difficult to implement this. Some Godot node that has a reference to the AnimationTree now has to manage all this functionality by passing the necessary info around to all my custom nodes through parameters. And since the parameter strings do not contain info about the hierarchy within a BlendTree itself, I have to hardcode the strings to the relevant parameters, so the flexibility of using custom AnimationNodes is gone. This really defeats the purpose of having a custom AnimationNode, so I probably will just use regular AnimationNodes and have the cyclic logic in a custom Godot Node, with hard coded references to all the places in my BlendTree where I would like cyclic blending.


Parse commands arguments

Hey there (it's me again),
I have taken the time to read a good part of the code base and couldn't find this: is it possible to only get the arguments passed to a command?
!ping this is a test

expected:
print(this.message.arguments) // String "this is a test"

The way I see it would be by extending the Message class in order to add an argument property for example. Although that would require to get the command prefix as well as the command itself. What are your thoughts about this?

If you are using CommadsFramework you can specify arguments in method signature or catch all arguments as List or String with @Remainder() annotation.
Future<void> exCmd(CommandContext ctx, String first, int second, @Remainder() String rest) async {
  // Your code
}

If you have your commands in module you dont want CommandContext in method signature

I was in fact testing with the @command.Module annotation:
@command.Module("ping")
class PongCommand extends command.CommandContext {
  @command.Command(main: true)
  @command.Help("Pong!", usage: "ping")
  @command.Remainder()
  Future run() async {
    print("content: '${this.message.content}'");
    await reply(content: "Pong!");
  }
}

but I don't get how I am supposed to retrieve the remainder that way.

Your code should be like
@command.Module("ping")
class PongCommand extends command.CommandContext {
  @command.Command(main: true)
  @command.Help("Pong!", usage: "ping")
  Future run(@command.Remainder() String rest) async {
    print("content: '${this.message.content}'");
    await reply(content: "Pong!");
  }
}

Remaider should be before method parameter. It can be String or List<String>

Will give it a try thanks!

It is working as expected! :+1:


Adjusting readme example

Hey @midorikocak
just noticed the readme example seems to be in the wrong order. The autoload should come first.
Cheers,
Peter

Thank you.

Thank you.

No problem!

No problem!


add no-docs Configure option

This change introduces the no-docs Configure option. This is handy for minimization.

Can't this mostly be done simply by not installing the docs? i.e. "make install_sw" instead of "make install"

Can't this mostly be done simply by not installing the docs? i.e. "make install_sw" instead of "make install"

Personally I prefer this is done in the configure phase, because in our environment OpenSSL is built multiple times with different options and this allows to concentrate all the changes to the configure phase and not override the install phase.

Please add runchecker-daily CI run for this option.

Please add runchecker-daily CI run for this option.

Added.

This pull request is ready to merge

Merged, thanks for the contribution.


scylla_node: pass -Dcom.scylladb.apiPort=10000 when running nodetool

this pass the setting of "api_port" to nodetool-wrapper, so that it can override the "-p" option with the port number. otherwise "scylla nodetool" would not be able to access the API service by connecting to the JMX server.

v2:

replicate the function signature of the parent class: the previous version of #559 failed to handle this case.

being tested at https://jenkins.scylladb.com/view/master/job/scylla-master/job/byo/job/dtest-byo/138/

being tested at https://jenkins.scylladb.com/view/master/job/scylla-master/job/byo/job/dtest-byo/140/

@fruch the BYO passed, can you please queue this?


KEYS: Add surajssd gpg key fingerprint

What are the steps to verify that this is a valid key? How do we ensure that it is signed by one of the existing keys? I think that needs to be documented.


Is libumccr a necessary requirement?

Noted libumccr usages under https://github.com/umccr-illumina/libica/tree/main/libica/app however I don't think it's needed in the general implementation of libica
libumccr has dependencies such as gspread, gspread-pandas which can be quite large packaged to install which means these also get installed with libica

Yup. Let me untangle this.


longPress() working as flick() most of the times

@operatiay / @lukeis / @DominikDary
Whenever we long press on map, it will show two buttons, but instead of that screen scrolled randomly with the longPress() function.
video clip: https://drive.google.com/file/d/0BwpGH5nU5IbiSWhudGZVYzBYYjQ/view?usp=sharing

I'm closing this issue due to inactivity.
If is a question rather than an issue, please send questions to the selendroid user group.
If you think it's an actual problem with selendroid and still experience the issue described on the latest release of selendroid feel free to file a new issue. If you do please provide a concise reproducible test case and describe what results you are seeing and what results you expect.


Remove Global Nav and Sub Nav

Details

This PR reverts https://github.com/Expensify/App/commit/389d7b0c4b96c6f2a2295055c685791d35b65252 and brings back the App's UI to its previous state without Global Navigation.
Fixed Issues

$ https://github.com/Expensify/App/issues/30809
PROPOSAL: https://github.com/Expensify/App/issues/30809#issuecomment-1791762129
Tests

Open App
Verify that global navigation is no longer in place
Verify that Avatar and the Floating Action Button are back to their original positions.

[x] Verify that no errors appear in the JS console

Offline tests

Open App
Verify that global navigation is no longer in place
Verify that Avatar and the Floating Action Button are back to their original positions.

QA Steps

Open App
Verify that global navigation is no longer in place
Verify that Avatar and the Floating Action Button are back to their original positions.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/371291/127401c2-7956-4841-a4ae-eb432dd96d61

Android: mWeb Chrome

https://github.com/Expensify/App/assets/371291/0ab4c3bd-fae5-4177-9921-d6e10f4df6a2

iOS: Native

https://github.com/Expensify/App/assets/371291/adb2b19f-f982-4c9a-8407-d7603ea0c04d

iOS: mWeb Safari

https://github.com/Expensify/App/assets/371291/aeee4b97-2f78-4323-b3bb-5328b07480fa

MacOS: Chrome

https://github.com/Expensify/App/assets/371291/7e24a584-e320-4326-897c-cdf69a3b3874

MacOS: Desktop

https://github.com/Expensify/App/assets/371291/51caad99-6c85-4ca1-a557-87b6c222f755

How did you approach this revert methodologically?
Executing git revert -m 1 389d7b0 gives mostly import-related conflicts for me, so it is relatively trivial to solve. Is this how you approached it?
In the case of reverting, the method itself is more important than the result, as it's difficult for me to compare every single line.
Splitting this into...

git revert + minimal conflict resolution
manual fixes commit(s), if required

...would make this reviewable

Of course, changing anything here would require a force-push, but in this case it's reasonable

@cubuspl42 this was actually done with git revert -m 1 389d7b0. Only, the commit message was changed to a custom one.
The only manual fix done was this bit here:
https://github.com/Expensify/App/blob/3f849bec32667ea2ac9e31d423bdfa62ce8705c8/src/styles/styles.ts#L1346
Let me know if that is sufficient.

Ok, cool. No, if the amount of manual changes is this small, we're good.

In our issue's original message, three things were mentioned:

https://github.com/Expensify/App/pull/28277
https://github.com/Expensify/App/pull/29428
https://github.com/Expensify/App/issues/29133

Two PRs, one issue. If I'm not mistaken, the issue is solved by one of the two PRs.
Does this single commit revert revert both mentioned PRs? 🤔

This reverts https://github.com/Expensify/App/pull/28277 only, as I've found out that:
https://github.com/Expensify/App/pull/29428 was closed without being merged, and
there wasn't any PR for https://github.com/Expensify/App/issues/29133

Oh, you're right, it was closed.

Please solve the conflict. I'll try to ensure to close this soon as this might be conflict-prone.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.3.98-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.98-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.3.99-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.99-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


ImportError: cannot import name blocks

Checklist

[x] installed pyethapp inside a virtualenv

System/environment

OS: Linux Debian 4.9.27-moby #1 SMP Thu May 11 04:01:18 UTC 2017 x86_64 GNU/Linux
python version: 2.7.13
pyethapp version: 1.5
installation method (pip & pypi/git & setup.py): pip
pyethapp branch (if applicable): n/a

Expected behaviour
Console should start after running pyethapp -d /data run --console
Observed behaviour
Traceback (most recent call last):
  File "/usr/local/bin/pyethapp", line 7, in <module>
    from pyethapp.app import app
  File "/usr/local/lib/python2.7/site-packages/pyethapp/app.py", line 19, in <module>
    from ethereum import blocks
ImportError: cannot import name blocks

Steps to reproduce

Build the docker image with the Dockerfile pasted below: docker build -t pyethapp:devtest .
run docker run -it --entrypoint /bin/bash pyethapp:devtest
once in the shell, run pyethapp -d /data run --console

Initially, I was getting the error noted in #199. The suggested fix there was to downgrade pyelliptic via pip install pyelliptic==1.5.7. This seems to have worked for some people, but others are receiving the ImportError noted in the Observed behaviour section above.
Per this point in the issue conversation I attempted to add the following to a customized requirements.txt file:
Cython==0.25.2
pyelliptic==1.5.7
https://github.com/ethereum/pyethereum/archive/0ae64823d1bccba9c8148adb462060cb83c08f06.zip
https://github.com/ethereum/pydevp2p/archive/cc68f6d69fa88ffaac6f8483392c37eb9f19d712.zip
https://github.com/ethereum/pyethapp/archive/409331e88a397ce5276c430aff4a8866d413e45d.zip
pyethash==0.1.27

Dockerfile (which builds successfully):
FROM python:2

RUN apt-get update
RUN apt-get install -y \
  git-core \
  build-essential \
  automake \
  pkg-config \
  libtool \
  libffi-dev \
  libgmp-dev \
  python-dev \
  python-pip

RUN pip install pyethapp

# Fix debian's ridiculous gevent-breaking constant removal
# (e.g. https://github.com/hypothesis/h/issues/1704#issuecomment-63893295):
RUN sed -i 's/PROTOCOL_SSLv3/PROTOCOL_SSLv23/g' /usr/local/lib/python2.7/site-packages/gevent/ssl.py

# Update requirements as noted in this conversation:
# https://github.com/ethereum/pyethapp/issues/199#issuecomment-304724903
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

RUN mkdir /data

EXPOSE 8888
EXPOSE 4000
EXPOSE 30303
EXPOSE 30303/udp

VOLUME /data

My pip freeze output is as follows:
backports.shutil-get-terminal-size==1.0.0
bitcoin==1.1.42
certifi==2017.4.17
cffi==1.10.0
chardet==3.0.4
click==6.7
CodernityDB==0.5.0
coverage==4.4.1
Cython==0.25.2
decorator==4.0.11
devp2p==0.9.2
docutils==0.13.1
enum34==1.1.6
ethereum==1.6.1
gevent==1.1.0
gipc==0.4.0
greenlet==0.4.12
idna==2.5
ipaddress==1.0.18
ipython==4.2.1
ipython-genutils==0.2.0
leveldb==0.194
lmdb==0.92
miniupnpc==1.9
pathlib2==2.3.0
pbkdf2==1.3
pexpect==4.2.1
pickleshare==0.7.4
pluggy==0.4.0
ptyprocess==0.5.2
py==1.4.34
pycparser==2.17
pycryptodome==3.4.6
pyelliptic==1.5.7
pyethapp==1.5.0
pyethash==0.1.27
pysha3==1.0.2
PyYAML==3.12
repoze.lru==0.6
requests==2.18.1
rlp==0.5.1
scandir==1.5
scrypt==0.8.0
secp256k1==0.13.2
simplegeneric==0.8.1
six==1.10.0
statistics==<IP_ADDRESS>
tinyrpc==0.5
tox==2.7.0
traitlets==4.3.2
urllib3==1.21.1
virtualenv==15.1.0
Werkzeug==0.12.2

Nice report!
Your stacktrace:
Traceback (most recent call last):
  File "/usr/local/bin/pyethapp", line 7, in <module>
    from pyethapp.app import app
  File "/usr/local/lib/python2.7/site-packages/pyethapp/app.py", line 19, in <module>
    from ethereum import blocks
ImportError: cannot import name blocks

Shows it's not running in a virtualenv: /usr/local/lib/python2.7/site-packages/
So remove the pyethapp install and everything you installed not in the venv, it might be conflicting with your venv.

Thanks! Do I still need a virtual env even if I'm building a docker container just for this install?

I would still recommend so it doesn't conflict with system modules.

Ok thanks I'll give that a try

@AndreMiras so I have recreated the container with all requirements and pyethapp in a virtual environment. I receive the same error - the Traceback leads to the version in my venv now:
Traceback (most recent call last):
  File "/.virtualenvs/ethereum27/bin/pyethapp", line 7, in <module>
    from pyethapp.app import app
  File "/.virtualenvs/ethereum27/lib/python2.7/site-packages/pyethapp/app.py", line 19, in <module>
    from ethereum import blocks
ImportError: cannot import name blocks

So I solved the build issue with a new dockerfile but am receiving some console trouble now. Closing this and using the initial dockerfile ticket #230

@Marto32 what do you mean "solved with a new dockerfile"? How did you get around it?

Agree with @snario, can you update us @Marto32?

@snario @AndreMiras @Gary445
I ended up building a boilerplate dev environment for myself (available here). I finally got everything to work using this Dockerfile. There are two ways you can launch that environment after building the container - check out the README for directions.
It took me hours upon hours to finally get this all working so if you encounter problems please LMK. That said, the constant changes applied to pyethapp and its underlying dependencies make it difficult to keep a stable dev environment up and running. Hopefully that changes!

I am getting the same error and I am not using docker. I am using mac and all my installation was successful (no errors) the moment I type in pyethapp. I get this
Traceback (most recent call last):
  File "/usr/local/bin/pyethapp", line 7, in <module>
    from pyethapp.app import app
  File "/usr/local/lib/python2.7/site-packages/pyethapp/app.py", line 19, in <module>
    from ethereum import blocks
ImportError: cannot import name blocks

Looks like there is no blocks.py but there is block.py

@kant111
Hi, you need to use pyethapp 1.5.1a0
Check if you can see 1.5.1a0
root@25ae12fcf2a3:/pyeth/pyethapp# pip search pyethapp
captureth (0.0.6)   - Capture msgs from pyethapp
pyethapp (1.5.1a0)  - Python Ethereum Client
  INSTALLED: 1.5.0
  LATEST:    1.5.1a0

Install specific version
pip install pyethapp==1.5.1a0

@hwwhww Thanks I passed through that but looks like I still cannot access something functions get_transactions() or get_balance()
In [4]: eth.latest.get_transactions()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-4-f91c2e1449dd> in <module>()
----> 1 eth.latest.get_transactions()

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ethereum/block.pyc in __getattribute__(self, name)
    179             return rlp.Serializable.__getattribute__(self, name)
    180         except AttributeError:
--> 181             return getattr(self.header, name)
    182
    183     @property

AttributeError: 'BlockHeader' object has no attribute 'get_transactions'

 eth.latest.get_balance(eth.coinbase)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-a62287bc34a6> in <module>()
----> 1 eth.latest.get_balance(eth.coinbase)

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ethereum/block.pyc in __getattribute__(self, name)
    179             return rlp.Serializable.__getattribute__(self, name)
    180         except AttributeError:
--> 181             return getattr(self.header, name)
    182
    183     @property

AttributeError: 'BlockHeader' object has no attribute 'get_balance'

@kant111 I didn't verify for this one particularly, but I would suggest in general is to run unit test and compare the outcome with https://travis-ci.org/ethereum/pyethapp/builds
It could also be that this part is not covered, but is is also pretty straightforward to verify.
Happy digging! ;)


Struct with *time.Time field doesn't import time

If I have a struct such as:
type A struct {
    C *time.Time
}

msgp does not add a time import into the generated code. This raises a compilation error as in Unmarshal/Decode such a field has the following code generated for it:
if identifier == nil {
    idenifier = new(qualified.Type)
}

I don't currently have the time to provide a patch for this, but I will when I can find some.

Good catch.

So I mean, I see a couple ways to deal with it.

(Sad but very effective) Reprocess the generate file and pass through imports.Process (golang.org/x/tools/imports). The benefit here is it will catch any embedded pointer field of any type (as long as the type exists on the user's GOPATH). Sadly, it's kinda gross - but it could be as simple as a ~10 line change this way and the speed alteration isn't that bad (I literally reread the generated file, passed it through and wrote back to the file).

Could keep track of fields identified as pointers and try to identify their containing package. The obvious upside is there's no enormous amount of extra IO but the code complexity is raised a decent amount (especially if a decent attempt is made to resolve the package).

Which way would you be leaning?

I'm fine with (1) for now. We can revisit this if generator time starts getting out of hand. (On my computer, the test file takes 22ms, which is just fine.) FWIW, that's precisely how gofmt-ing of the generated source works.
All in all, I think generating one file requires generating no fewer than 4 AST trees. (Ew.)

Just pushed one way of doing it in PR #46

Formally fixed by #46.

I've added #47 in case we want to re-visit this.


Seems to default to checking bluejay despite different device defined

In github actions, under Check if a bulid already exists...
Run url="https://releases.grapheneos.org/bluejay-stable"
Tag with GrapheneOS version<PHONE_NUMBER> already exists. Looking for assets...
Missing assets:
  - bluejay-2024082200-magisk-*.zip
  - bluejay-2024082200-magisk-*.zip.csig
  - bluejay-2024082200-rootless-*.zip
  - bluejay-2024082200-rootless-*.zip.csig
Proceeding with build to create missing assets...

Even if the user passes the device name from input during workflow_dispatch, checks look for bluejay. However, if you look at patch step, I believe that should be created for the device mentioned during input, right?
It would be helpful if you could post complete logs for complete context as it contains no sensitive information.
Good catch BTW.

I've made some significant changes. Not sure whether it's good practice or not. But the intention is that, main code should not modified to make it work for you or anyone else.
User should just update an env.toml file and during run time, it is read and values from it takes precedence over default values.

Should be fixed with https://github.com/pixincreate/PixeneOS/commit/dfd9a75c22950e58f65a0bdcc3b30f287bf12dcb.
Please re-open if the issue persists.


[11.x] Add DB::build method

Description
Similar to https://github.com/laravel/framework/pull/53411, this PR implements a new DB::build method that allows you to create new DB connections that are not defined in your configuration file.
Usage
use Illuminate\Support\Facades\DB;

$sqlite = DB::build([
    'driver' => 'sqlite',
    'database' => ':memory:',
]);

$mysql = DB::build([
    'driver' => 'mysql',
    'database' => 'forge',
    'username' => 'root',
    'password' => 'secret',
]);

$pgsql = DB::build([
    'driver' => 'pgsql',
    // ...
]);

$sqlsrv = DB::build([
    'driver' => 'sqlsrv',
    // ...
]);

What is wrong with addConnection ?

What is wrong with addConnection ?

to be honest, this feature is what I want for so long, this mechanism allow us freely change connection especially who using multi tenant or whatever
for example db_company_a.document_transactions, db_company_b.document_transactions, user who make API request to laravel who send info about (hashed) database_name, can use this method
but @stevebauman can you give the best practice to use this case, I don't know the best practice, is using middleware, trait in model, or whatever to match my case ? maybe you can make tweet thread or something about your new feature hehehe

@adiramardiani Imo this should really only be used in niche cases where you need a temporary DB connection.
For example, you could create a temporary DB connection to a SQLite file that a user uploads to your application:
$path = $request->file('database')->store();

$sqlite = DB::build([
    'driver' => 'sqlite',
    'database' => $path,
]);

$results = $sqlite->table('...')
    ->select([...])
    ->get();

Or say you have an intranet enterprise application that allows you to import data from various databases stored in your database:
use App\Models\User;
use App\Models\Database;

$database = Database::first();

$connection = DB::build([
    'driver' => $database->driver,
    'host' => $database->host,
    'port' => $database->port,
    'username' => $database->username,
    'password' => $database->username,
]);

// Sync external DB users...
$connection->table('users')->each(function ($user) {
    User::firstOrCreate([...]);
});

Or maybe you need a temporary in-memory SQLite instance for testing:
$db = DB::build([
    'driver' => 'sqlite',
    'database' => ':memory:',
]);

$db->table('...')->insert([...]);

$db->table('...')->where('...')->get();

Just some thoughts.


[T3A4][T09-A3] Tan Jian Sin

Ready for review

@BrandonTJS
Some comments added. Please ack & close the PR after reading comments.


OCPBUGS-32257: Fix userReleaseProvider not using icsp/idms from mgmt cluster

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/jira refresh

/override "Red Hat Konflux / hypershift-operator-main-on-pull-request"

/lgtm

/override e2e-kubevirt-aws-ovn

/override ci/prow/e2e-kubevirt-aws-ovn

/unhold

/override ci/prow/e2e-kubevirt-aws-ovn

/cherry-pick release-4.16


Fix imports.

This is just a mechanical change for the base directory of the govmomi imports.

LGTM


calculatePartialLiquidateValue

//calculate liquidation amount to turn back the user margin to the save level(60%)
function calculatePartialLiquidateValue(address _user) public view returns (uint256 x) {
uint256 totalAccountValue = totalAccountValue(_user);
uint256 totalPositionNotional = totalPositionNotional(_user);
uint256 numerator = (totalPositionNotional * saveLevelMargin) / 100 - totalAccountValue;
uint256 denominator = saveLevelMargin / 100 - discountRate / 100;
x = numerator / denominator;
}
Numerator and denominator are incorrect as far as I can see from the updated excalidraw.

They are the same, I just change the place of them to avoid negative numbers. Because (A < SLM*N) and (discount/100 < SLM);
x = (SLM*N - A)/(SLM - Discount/100);

I agree with this formula, x = (SLM*N - A)/(SLM - Discount/100);
but it dont think it matches the code (the "/100" are do not match)
uint256 denominator = saveLevelMargin / 100 - discountRate / 100;
->
uint256 denominator = saveLevelMargin - discountRate / 100;
uint256 numerator = (totalPositionNotional * saveLevelMargin) / 100 - totalAccountValue;
->
uint256 numerator = totalPositionNotional * saveLevelMargin - totalAccountValue;

Save level margin is 60 (stored in uint) so for making it in percent I divided it by 100.
https://github.com/nexlabs22/Nex-Dex-Contracts/blob/fffd82d9b5f496d914c70203ac289c6f9888ace5/contracts/Exchange.sol#L38

AH, oke thanks!


The great split

This PR is about splitting the code into somewhat coherent code fragments. There are a couple of things that still look awkward as a result, such as Conversions in Sosa_utilities. I think we should probably refactor that away somehow. It currently isn't documented and I left it that way.
I also want to avoid the move to refining the API to bytes and strings.
This fixes #38

All LGTM except the names of the M functors, shouldn't it be Make instead?
(I was thinking of more poetic functor names like Sosa.List.Of.(Utf8_character) or Sosa.Of_mut.Able(..) but I prefer Make, it is more standard)

(I was thinking of more poetic functor names like Sosa.List.Of.(Utf8_character) or Sosa.Of_mut.Able(..) but I prefer Make, it is more standard)

Ah, that would be nice (but if not standard, probably not worth it).
Awesome refactor @rleonid

@smondet I had a slight pause when I was thinking of List_of vs Of_mutable, but your proposal would blow my mind. I agree on changing the M to Make.

I can't seem to be able to build the tests:
File "lib/test/main.ml", line 1551, characters 24-201:
Error: Signature mismatch:
       ...
       In module Str:
       Type declarations do not match:
         type character = Sosa.List_of.Make(Sosa.Native_character).character
       is not included in
         type character = Chr.t
       File "lib/test/main.ml", line 186, characters 36-58:
         Expected declaration

The above was fixed for me with this:
https://github.com/hammerlab/sosa/commit/1ac5ef406ced4a2ede78d3d49fc90dcc8fe62618
→ https://github.com/hammerlab/sosa/pull/42

Ugh, sorry about that. I had fixed that in the next branch, upgrade_4023 and didn't backport.

@smondet Is this good to go? Happy to make further changes if something else seems out of place. Though maybe other changes might be easier after some other things are addressed.


Fix NSString.boolValue not matching Darwin Foundation

There were some cases which were being evaluated to true but on Darwin/Objective-C they evaluate to false.

@swift-ci please test

I pushed again because previous implementation changed the tests in a wrong way.
Instead of "-00000, +t" it should be two different items in the array, like this -> "-00000", "+t",

@swift-ci please test and merge

@swift-ci please test and merge


NoAuth Socks5 with HttpsAgent/HttpAgent

implemented another solution https://github.com/byteball/ocore/commit/31cee1a3229e29e77f6ddaca76c447de65b39be8


Assembly signing

Hi. Don't get me wrong, I have read comments on issues #43,  #24 , etc about your view on assembly signing.
But I also see in https://www.reactiveui.net/docs/getting-started/installation/ the following:
"ReactiveUI packages are now signed by the dotnet foundation...".
I was wondering if is this something in TODOs or the doc is wrong.
Thanx
Kostas

One is code signing which won't be happening.
The other is nuget package signing which is signed by the dot net foundation.

Code signing is a signature included on a DLL level with a sign hash. .net assembly loading can then make sure the hash matches what the program is setup to use
Nuget package signing just verified that a particular entity made the nuget package.

Ah ok. I thought assemblies will be also signed.
Thanx for the info.


Struggling to access XML nodes

I have the following XML:
<config>
    <db>
        <server>LP1721</server>
        <database>DB1</database>
        <user>cam</user>
        <password>password</password>
        <port>1433</port>
    </db>
</config>

and I am trying to access certain nodes via:
var parser = new xml2js.Parser();
fs.readFile(__dirname + '/Config.xml', function(err, data) {
    parser.parseString(data, function (err, result) {
        globalConfig = result
        config = {
            user: globalConfig.config.db.user,
            password: globalConfig.config.db.password,
            server: globalConfig.config.db.server,
            port: globalConfig.config.db.port,
            database: globalConfig.config.db.database
        }
    });
});

Except that it keeps seeing things as undefined. How do I access the XML nodes to pass them to my config object?

You could print the config, and then you'd see exactly what xml2js parses out of your XML… I see no bug in this report.

@Leonidas-from-XIV
{ config: { db: [object Object] } }

And now print the whole object.

This is what I have had to do:
globalConfig = JSON.stringify(result);
globalConfig = JSON.parse(globalConfig);

var config = {
server: globalConfig.config.db[0].server[0]
...

Yes, you don't need to stringify it at all, nor do you have to parse it again. You can print the value of globalConfig and just access the elements.
var util = require('util');
var fs = require('fs');
var xml2js = require('xml2js');

fs.readFile(__dirname + '/Config.xml', function(err, data) {
    xml2js.parseString(data, function (err, globalConfig) {
        console.log(util.inspect(globalConfig, false, null));
        var config = {
            user: globalConfig.config.db[0].user[0],
            password: globalConfig.config.db[0].password[0],
            server: globalConfig.config.db[0].server[0],
            port: globalConfig.config.db[0].port[0],
            database: globalConfig.config.db[0].database[0]
        };
        console.log(config);
    });
});```

What about XML like:
<connection server="LP1721" database="DB1" user="cam" password="password" port="1433" />

I had to do:
globalConfig.config.connection[0].$.server

Yes, $ is for attribute access. You can even reconfigure it or get rid of the [0]! It is all described in the README.

@Leonidas-from-XIV Could you show me an example of what you mean when you say reconfigure it and/or get rid of the [0] as I seem to have missed that in the README and not following. Thanks for the help.

Check out the explicitArray option.


Javascript error after updating to 1.17.0

Description
I'm in the process of updating out Gitea instance to 1.17.0 from 1.12.6, and ran into it throwing a JS error after upgrading and migrating successfully.
09:54:40.024 error { target: SharedWorker, isTrusted: true, message: "ReferenceError: EventSource is not defined", filename: "https://repo.palemoon.org/assets/js/eventsource.sharedworker.js", lineno: 1, colno: 85, srcElement: SharedWorker, currentTarget: SharedWorker, eventPhase: 2, bubbles: false, cancelable: true } 1 index.js:37:15714
	Gg/< https://repo.palemoon.org/assets/js/index.js:37:15714

This is on the Pale Moon web browser (we use Gitea for Pale Moon development).
Of note, Pale Moon does not support the ambiguous global window.event MSIE quirk (deprecated on mainstream browsers also) which may be the issue here?
Screenshots

Gitea Version
1.17.0
Can you reproduce the bug on the Gitea demo site?
No
Operating System
Windows 10
Browser Version
Pale Moon <IP_ADDRESS>

Should be fixed by #20663

Thanks!
I did some digging myself and found it seems to be because while we do support EventSource (and have since forever) and SharedWorkers, we currently don't support EventSource in workers. I opened an issue on our end to fix that, as well.
of note attempting to disable EvenSource use through EVENT_SOURCE_UPDATE_TIME = -1 doesn't actually help here.

BTW, does PaleMoon support Websocket inside SharedWorker?

BTW, does PaleMoon support Websocket inside SharedWorker?

Yes, websockets are available in workers.

Is this related to or a duplicate of : https://github.com/go-gitea/gitea/issues/20572

@eeyrjmr Yes it seems to be a duplicate. I'll just wait for it to make it to the release train.


customize containerd configuration

To use containerd with Kubernetes for NVIDIA GPUs, some customization in containerd config are needed so that nvidia runtime can be used.
--- config.toml 2020-12-17 19:13:03.242630735 +0000
+++ /etc/containerd/config.toml 2020-12-17 19:27:02.019027793 +0000
@@ -70,7 +70,7 @@
   ignore_image_defined_volumes = false
   [plugins."io.containerd.grpc.v1.cri".containerd]
      snapshotter = "overlayfs"
-      default_runtime_name = "runc"
+      default_runtime_name = "nvidia"
      no_pivot = false
      disable_snapshot_annotations = true
      discard_unpacked_layers = false
@@ -94,6 +94,15 @@
         privileged_without_host_devices = false
         base_runtime_spec = ""
         [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
+            SystemdCgroup = true
+       [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
+          privileged_without_host_devices = false
+          runtime_engine = ""
+          runtime_root = ""
+          runtime_type = "io.containerd.runc.v1"
+          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
+            BinaryName = "/usr/bin/nvidia-container-runtime"
+            SystemdCgroup = true
   [plugins."io.containerd.grpc.v1.cri".cni]
      bin_dir = "/opt/cni/bin"
      conf_dir = "/etc/cni/net.d"

I am wondering if there is a way to do it in k3s/containerd without using the template file (config.toml.tmpl). https://github.com/k3s-io/k3s/blob/master/pkg/agent/templates/templates_linux.go#L121 mentioned ExtraRuntimes, is there an example how to use that?

You do not need to customize the condainerd config to use nvidia GPUs.. nvidia container runtimes are automatically added if the appropriate binaries are available on the host when k3s is started. See the discussion at https://github.com/k3s-io/k3s/discussions/4081


Incompatibility with Carpet mod

Describe the Bug
When starting up the game with Carpet and Create installed the game crashes on launch.
Note that I'm using version 0.4d but it was not an option in from the dropdown list below, hence it says version 0.4c.
Reproduction Steps

Install Fabric API, Carpet, and Create
Launch the game

Expected Result
For the game to launch
Screenshots and Videos
No response
Crash Report or Log
https://pastebin.com/T5SX1zvz
Operating System
Windows 10
Mod Version
0.4.0c
Minecraft Version
1.18.1
Other Mods
fabric-api-0.46.4+1.18
fabric-carpet-1.18.1-1.4.57+v220119
Additional Context
No response

It seems like a mixin conflict

This should be fixed now. Please test with the very latest versions of Flywheel and Create and report back the findings.

Can confirm that this issue is fixed. Now either the mechanical pistons don't work with Carpet installed or I'm an idiot (it's most likely the latter) but since that's a different issue (if it even is one at all. I'll have to recheck that later) this can be closed.
Thanks for the quick fix devs! Highly appreciated.


MS19 Lasair LSST simulated system (receive and process simulated stream)

As listed in milestones spreadsheet :

Associated WP
Means of verification

WP2.3
"LASAIR can receive and process LSST Prompt Product simulated alert-stream"

Work to attain this milestone

[x] Put simulated alerts into Lasair Kafka system
[ ] Modify ingest code to read these alerts
[ ] Set up DB/file system to store alerts
[ ] Investigate how Lasair ZTF needs to be modified for LSST

Change request C036 approved at 01/MAR/22 Exec
title changed from “Infrastructure for LASAIR set up and operation" to "Lasair LSST simulated system (receive and process simulated stream)"
scope and means of verification changed accordingly

22/JUN/22

@RoyWilliams reported that  @gpfrancis  has put the simulated alerts into Lasair Kafka stream, see ELASTICC alerts for lasair-dev#15

29/SEP/22

@tms-epcc emailed @andyxerxes @RoyWilliams and @smarttgit for help completing the change request to move the due date by four months

12/OCT/22

change request C053 submitted to the 08/NOV/22 Exec meeting for consideration.
the change request is to delay the milestone due date by 4 months from 31/AUG/22 (PM38).  to 31/DEC/22 (PM42).

09/NOV/22

Change request C053 approved at 08/NOV/22 Exec meeting.
Change request moves due date from PM38 (31/AUG/22) to PM42 (31/DEC/22)

14/DEC/22

@RoyWilliams reported that items listed in work to attain the milestone have been met
will provide evidence in some form

Submitted to 23/JAN/23 Exec Group with recommendation to be marked as passed as well as evidence

02/FEB/23

No objections from Exec, milestone PASSED.


i18n(ko-KR): update server-islands.mdx

Description (required)

update server-islands.mdx
#10418

Related issues & labels (optional)

Closes #
Suggested label:

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File
Note

ko/guides/server-islands.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Separate Saves from games

Retroarch has several options to separate the games by core into folders, all of which are usually located in the same folder with the name saves.
Here I see that these saves are all in the same folder of the rom, mixing everything and I think it would be better to separate these things.
That is, you would have to create a saves folder and within, by default, activate the storage of them separated by cores, everything would be more organized.
Thank you.

It does not generate any problem, I in the share folder where we have all the roms and bios, create a folder with the name of "saves" and in Retroarch it indicates as in the normal versions of Retroarch, that this is the folder, after that Separate by core or I think you can indicate that you separate them by folders and voila, all in one place without spoiling the roms directories.
I think this way is much better and neater, it's how Retroarch originally works. But hey, they are tastes, I always use it like that, others may like that everything is mixed.


Update approximateHeights.json for CWB

Description
Update our approximate heights to account for the min/max heights from CWB to provide better support in the ocean. This is a somewhat temporary solution until we can finish the work for https://github.com/CesiumGS/cesium/issues/8480
I spent some time testing the performance implications of this and didn't see any significant negative impact running through all the demo Sandcastles we have or trying a few with many ground primitives.
See this one for an example:

Local Sandcastle
Deployed Sandcastle which still uses the old heights

Testing plan
Explore the sandcastles above and observe the performance is the same between the deployed and local versions of sandcastle

Author checklist

[x] I have submitted a Contributor License Agreement
[x] I have added my name to CONTRIBUTORS.md
[x] I have updated CHANGES.md with a short summary of my change
[x] I have added or updated unit tests to ensure consistent code coverage
[ ] I have update the inline documentation, and included code examples where relevant
[ ] I have performed a self-review of my code

@jjspace It looks like there are some failing unit tests which just need to have some values updated.

Thanks for test cases @jjspace! I agree that performance appears comparable.
Can you please update CHANGES.md with a summary of the change? I would list this under fixes as it should help cases where ground primitives were used with any bathymetric terrain.

@ggetz Updated, test should be fixed and changes comment added

Looks good! Thanks @jjspace!


Handle chunk/mosaic messages

Update layer status based on chunk/mosaic messages.

Duplicate of #171.


JAMES-2382: Change the method name "hasAnnotatedProperty".

The method is named "hasAnnotatedProperty" that is a query of asking whether the propertyDescriptor has the AnnotatedProperty or not.
Actually, the method returns an AnnotatedProperty found by the propertyDescriptor.
Thus, the method name "findAnnotatedProperty" should be intuitive than "hasAnnotatedProperty".

Hi.
Thanks for this naming fix.
A little remark: we tend to prefix the commit message with the ticket number (to make code searches easier). In your case that might be:
JAMES-2382 Change the method name.

Can you rebase and reword your commit?
Cheers,
Benoit

Thanks.
How about now?

I started playing the unit tests here: https://github.com/linagora/james-project/pull/1385
I will merge it once the build is OK.
Thanks for your contribution.

Hi,
This pull request has just been merged.
Thank you again for your dedication toward the James project. If you need help, want to contribute documentation, new features, tests or bugfix, please don't hesitate to reach us.
One very last thing: I don't have write access to this repository, hence I can not close this issue. Wouldn't you mind doing it for me? It would avoid me annoying the Apache INFRA team with such simple concerns.
Thanks again,
Cheers,
Benoit

Thank you!

Hello every, I think here "findAnnotatedProperty" means similarly to "getAnnotatedProperty". I believe they are semantically the same, both to try to obtain something.
I'd like to know your opinions.

Hello @ShangwenWang !
Thanks for your interest on this topic.
This class had been deprecated and removed, support for OSGI dropped.
To answer you, I disagree with find and get being semantically the same. The end result is the same (you get results out of a query), but I would associate get with something effortless, while find would be more computational heavy (I can not get it easily so I need to search for it).
Scala maps (https://www.scala-lang.org/api/current/scala/collection/Map.html) do rely on such a semantic difference:
 def getOrElse[V1 >: V](key: K, default: => V1): V1

Returns the value associated with a key, or a default value if the key is not contained in the map.

and
def find(p: ((K, V)) => Boolean): Option[(K, V)]

Finds the first element of the map satisfying a predicate, if any.

(iterates on all values)

My 2 cents,
Benoit

Thanks! You really help me deepen my understanding about the two words!


Swiper: Local Fallback testing ?

How could we test if swiper has been probably loaded from a cdn ?
For example: jQuery adds an object to the window, which can be tested on like this:
window.jQuery || document.write("< script src="js/jquery.min.js"></script >")
If the test fails, we can load a local copy.
Could you indicate the best way to test if swiper has been loaded probably?
E.x.: typeof (???) === undefined

In the same way: window.Swiper || ...


Configure Sentinel on Kubernetes using bitnami/redis

I have a setup of Redis Sentinel on Kubernetes that is using https://github.com/bitnami/charts/tree/master/bitnami/redis (single master setup). My configuration looks like follows (Spring Boot):
spring:
  redis:
    sentinel:
      master: mymaster
      nodes:
        - redis-cache:26379

The sentinel instances are running behind one single service redis-cache:26379 in Kubernetes and only that single service must be used to access the sentinel instances.
Now I'm constantly seeing the following warnings in the log:
2021-06-24 17:42:42,093 [:] [:] [:] [:41] [:] WARN  redisson.connection.SentinelConnectionManager (SentinelConnectionManager.java:492) - sentinel: redis://<IP_ADDRESS>:26379 is down
2021-06-24 17:42:45,012 [:] [:] [:] [:180] [:] INFO  redisson.connection.SentinelConnectionManager (SentinelConnectionManager.java:549) - sentinel: redis://<IP_ADDRESS>:26379 added
2021-06-24 17:42:45,094 [:] [:] [:] [:167] [:] WARN  redisson.connection.SentinelConnectionManager (SentinelConnectionManager.java:492) - sentinel: redis://<IP_ADDRESS>:26379 is down
2021-06-24 17:42:45,438 [:] [:] [:] [:211] [:] INFO  redisson.connection.SentinelConnectionManager (SentinelConnectionManager.java:549) - sentinel: redis://<IP_ADDRESS>:26379 added
2021-06-24 17:42:46,095 [:] [:] [:] [:36] [:] INFO  redisson.connection.SentinelConnectionManager (SentinelConnectionManager.java:549) - sentinel: redis://<IP_ADDRESS>:26379 added
2021-06-24 17:42:46,103 [:] [:] [:] [:41] [:] WARN  redisson.connection.SentinelConnectionManager (SentinelConnectionManager.java:492) - sentinel: redis://<IP_ADDRESS>:26379 is down

Looking at the code in org.redisson.connection.SentinelConnectionManager.SentinelConnectionManager(SentinelServersConfig, Config, UUID) it seems that SENTINEL SENTINELS is executed to get the list of sentinel instances. That won't be correct for the mentioned setup as this returns multiple cluster-internal IPs instead of the single service mentioned above.
Is there a possible solution for this (e.g. to disable automatic sentinel discovery)? I saw the configuration option org.redisson.config.SentinelServersConfig.isCheckSentinelsList() but that only disables the check, but not the discovery mechanism.
I'm using Redisson 3.15.5.
Any ideas how to solve this? Thanks!
Also see #2788

sentinelsDiscovery setting added


Install and Set Up kubectl on Windows

Install-Script -Name 'install-kubectl' -Scope CurrentUser -Force
install-kubectl.ps1 [-DownloadLocation ]
Install via PSGallery not working.
In the Install Script:
$uri = "https://kubernetes.io/docs/tasks/tools/install-kubectl/" Write-Host -ForegroundColor White "==>Getting download link from $uri"    $req = Invoke-WebRequest -UseBasicParsing -Uri $uri try     {         Write-Host -ForegroundColor White "==>analyzing Downloadlink"            $downloadlink = ($req.Links | where href -Match "kubectl.exe").href     } catch     {     Write-Warning "Error Parsing Link"     Break     } Write-Host -ForegroundColor White "==>starting Download from $downloadlink using Bitstransfer"    Start-BitsTransfer $downloadlink -DisplayName "Getting KubeCTL from $downloadlink" -Destination $Downloadlocation
The $uri provided in the script does not provide any matches for "kubectl.exe", leaving the $downloadLink variable empty, causing Start-BitsTransfer to Error.
Using "https://dl.k8s.io/release/v1.20.0/bin/windows/amd64/kubectl.exe" as $downloadLink has worked on my own script.

/triage duplicate
This duplicates issue 26956.

Change Installation Script install-kubectl.ps1 Line 29:
$uri = "https://kubernetes.io/docs/tasks/tools/install-kubectl/"

To:
$uri = "https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/"

Would resolve this issue.
Because download link to kubectl.exe is no longer at the previous page.

Let's track this at https://github.com/kubernetes/website/issues/26956
/close


chore: add types import condition

Thank you for creating this library!
I added types!

By default, TypeScript overlays the same rules with import conditions - if you write an import from an ES module, it will look up the import field, and from a CommonJS module, it will look at the require field. If it finds them, it will look for a co-located declaration file. If you need to point to a different location for your type declarations, you can add a "types" import condition.

https://www.typescriptlang.org/docs/handbook/esm-node.html#packagejson-exports-imports-and-self-referencing
Fixes #6

Thank you @bhbs


Update package metadata so the npmjs.com page includes a GitHub link

Coming from the NPM website, I had trouble finding the source code for this project:

With this change, the NPM website will link to the GitHub project.

Good catch; thank you!!


Cannot sort collection in descending order with simplesort by prop from indices

const collection = db.addCollection('collection', { indices: ['foo'] })

collection.insert([{ foo: 1 }, { foo: 2 }, { foo: 3 }])

collection.chain()
        .simplesort('foo', true)
        .data()
// return [{ foo: 1 }, { foo: 2 }, { foo: 3 }]

hmm your right... seems our code path for simplesort when column has index does not handle descending
should be easy enough to fix i'll try to patch that in a couple hours

Thank you very much :)

should be fixed now, thanks!

Yeah, it works as expected :)