⚠ Bofrost.be has degraded performance

In ab0c10e, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2522 ms

Resolved: Bofrost.be performance has improved in cf1e928.


Add links to glossary term cards without counts

Simple solution to helping users to get related glossary term entities/terms.

@joshuaeilers since these are just links now and don't have any other info - what do you think about making the color our primary link color (blue/green or whatever) to make it more obvious?


Consider adding fancy user onboarding

The app requires permissions that can be perceived as very intrusive, namely with regards to location access.
I believe explaining the benefits and mode of operation of the app is necessary for greater user acceptance.

Things to ask the user:

Which lines he uses the most
If he has a data connection he wishes to use (to adjust download of extra HTML content, and real-time collaboration features)

Done in bbd8967e4dcbd78f64e79ad92236eb11d19fe4be


fix casting of audienceMatch filters

This fixes a bug where audienceMatch filters were being short-circuited because of a bad type cast in the segmentation logic. The unit tests didn't catch it because a non-pointer type was also provided there, instead of the pointer type that the real config would have been parsed into.

Current dependencies on/for this PR:

main

PR #198   👈

This comment was auto-generated by Graphite.


Table Input filter property not properly applying template

Issue
The filter property for Table Input doesn't apply handlebar templates, like most fields do.
i.e. filter: "UserId eq {userId}" with input {"userId": 1} doesn't turn into "UserId eq 1"
I get this error:
Exception while executing function: Functions.queue-test. Microsoft.WindowsAzure.Storage: The remote server returned an error: (400) Bad Request. System: The remote server returned an error: (400) Bad Request.

Repro
I've tried this with both Queue Trigger and Http Trigger. Here's an example for Queue Trigger
index.js
module.exports = function (context, myQueueItem, users) {
    context.log('Node.js queue trigger function processed work item', myQueueItem);
    context.log(myQueueItem.userid);
    context.log(users);
    context.done();
};

broken function.json
{
  "bindings": [
    {
      "queueName": "items",
      "connection": "<APP SETTING>",
      "name": "myQueueItem",
      "type": "queueTrigger",
      "direction": "in"
    },
    {
      "tableName": "users",
      "partitionKey": "",
      "take": 50,
      "filter": "userid eq {userid}",
      "connection": "<APP SETTING>",
      "name": "users",
      "type": "table",
      "direction": "in"
    }
  ],
  "disabled": false
}

working function.json (that isn't using a template in filter property)
{
  "bindings": [
    {
      "queueName": "items",
      "connection": "<APP SETTING>",
      "name": "myQueueItem",
      "type": "queueTrigger",
      "direction": "in"
    },
    {
      "tableName": "users",
      "partitionKey": "",
      "take": 50,
      "filter": "userid eq 1",
      "connection": "<APP SETTING>",
      "name": "users",
      "type": "table",
      "direction": "in"
    }
  ],
  "disabled": false
}

What are "handlebar" templates?

The brackets {} e.g. "path": "images-original/{name}"; aka. mustache brackets.
There is a common templating library known as handlebars which is similar which is why I used handlebars. - http://handlebarsjs.com/

Nobody on our team has ever called these "handlebar"s to my knowledge - I was ribbing you because I thought you made a typo :)
Anyhow, this is an easy fix for us. You can see in the code here we're doing template binding only on the pk/rk: https://github.com/Azure/azure-webjobs-sdk-script/blob/dev/src/WebJobs.Script/Binding/TableBinding.cs#L45. We can do for filter as well.

Cool. Current milestone? :)

Sure.


Seems like nothing happened.

The video recording and the taking snapshot work as usual. Tested on IOS  15, iPhone XR
`
public componentDidMount() {
preventScreenCapture();
}
public componentWillUnmount() {
allowScreenCapture();
}
`

Oh, found comments
// Enable screenshot (android only)
allowScreenCapture()
//Disable screenshot (android only)
preventScreenCapture()
is that possible? to have the same behavior on IOS?

Its possible, but using some payed frameworks (I think)
something like that:
https://screenshieldkit.com/

Have some possibilities
Possibilities might include creating a white layer on top of all views, but I don't know if that's the most efficient approach.

I will add the request to the list of upcoming lib updates.


ZMQ_HANDSHAKE_IVL (66)

Hello,
When trying to set option 66 on a ROUTER socket I recieve "Error: Invalid argument".
This is to support the HANDSHAKE_IVL found in 4.0x+.
Using the raw bindings:
socket._zmq.setsockopt(66, 5000);
results in:
Error: Invalid argument
at Error (native)
at Node._socketCreate (lib/Node.js:797:15)
This is using ZeroMQ 4.1.4 and ZMQ 2.15.3.

I don't think node-zmq supports HANDSHAKE_IVL yet. When we release the big major version, all options that exist will be supported, including this one. I hope you can have patience, or make a PR to fix this for the current major version, which I would happily merge.

Will definitely have patience. Appreciate the response.

Went ahead and just added the options I'm using. Small PR attached.


Building codon on Windows 10/11 X64 platform with one step away

Yes, I'm interested on this project and seen lots of suggest to build on WSL2 or just Linux. But I keep tried various ways(#69) and have some record there.
I prepared 2 ways to build:
First one: Using MSVC(v143) or LLVM based(exaloop/llvm-project Clang/LLVM) build on Visual Studio 2022.  -G Ninja
          -DCMAKE_BUILD_TYPE=MinSizeRel
          -DCMAKE_C_COMPILER=cl
          -DCMAKE_CXX_COMPILER=cl
          -DCMAKE_ASM_MASM_COMPILER=ml64
          -DCMAKE_PREFIX_PATH="C:/Developer/Codon/llvm"
          -DCMAKE_INSTALL_PREFIX="C:/Developer/Codon"
          -DCODON_GPU=ON

    # Remind in VS2022 env no target C/CXX compiler will auto select MSVC
    #

The build record see #69.
Second way: I rebuild llvm/clang and codon again, but Using "Strawberry Perl" with toolkit have GCC compiler:
 cd ~/Desktop;                                                                      # powershell recognize ~ path(unix-like) to $env:USERPROFILE
 git clone https://github.com/exaloop/llvm-project.git --depth=1
 mkdir llvm-project/build; cd llvm-project/build                                    # powershell mkdir == shell "mkdir -p"

 cmake ../llvm -G Ninja                                                 \           # Ninja Generator
        -DCMAKE_BUILD_TYPE=MinSizeRel                                   \           # This option is due to my small 2TB SSD, Again
        -DCMAKE_C_COMPILER=gcc.exe                                      \           # MSVC v143 14.40.33807, cl= msvc compiler driver
        -DCMAKE_CXX_COMPILER=g++.exe                                    \           # MSVC v143 14.40.33807, cl= msvc compiler driver
        -DCMAKE_INSTALL_PREFIX="C:/Developer/Codon/llvm-gcc"            \
        -DLLVM_TARGETS_TO_BUILD="host;NVPTX"                            \
        -DLLVM_ENABLE_PROJECTS="clang;lld"

 cmake --build . --target install

 cd ~/Desktop;
 mkdir codon/build-gcc; cd codon/build-gcc

 cmake .. -G Ninja
          -DCMAKE_BUILD_TYPE=MinSizeRel
          -DCMAKE_C_COMPILER=gcc.exe
          -DCMAKE_CXX_COMPILER=g++.exe
          -DCMAKE_ASM_MASM_COMPILER=ml64.exe
          -DCMAKE_PREFIX_PATH="C:/Developer/Codon/llvm-gcc"
          -DCMAKE_INSTALL_PREFIX="C:/Developer/Codon"
          -DCODON_GPU=ON

 cmake --build .
    # By passing "CMAKE_ASM_MASM_COMPILER" to set Assembler compiler

And the second way have almost complete build(), but stop at ld.exe:
 x86_64-w64-mingw32/bin/ld.exe: error: export ordinal too large: 71633
 collect2.exe: error: ld returned 1 exit status

This is quite happy and f**k to me just a little bit objects to finish it... going play Genshin Impact for a little break.
Hope these results helps.

Considering the seconds case error, that is the windows limitation. This problem is actually described here: error-export-ordinal-too-large-104116 and the proposition there is to try -fvisibility=hidden in GCC and CLANG to hide some exported functions. Can you try to build it that way?

Sorry for a long time reply I actually tried this way: The GCC toolchain compile is pretty normal with a fast speed by ninja until linking, it will stucks at very long time, with a high memory usage, and finally stoped linking by printing unknown external linking symbol(10k lines and more). The LLVM toolchain compiles also well, but with a build of lld or msvc linker also quickly stop with link problems(unknown symbol).

Please see #69 . We got stuck at the same problem as well; hopefully, the next version should have fewer symbols at the end.


Where is the accesstoken stored?

How can I access the accesstoken once logged in? I can't seem to find it.

Have a look at the example provided with the code. The callback receives the access token, that you can then persist if you want to. Internally, the access token is used to fetch the user's profile from Spotify.
For more information about OAuth 2.0 in PassportJS, please check the OAuth guide (section OAuth 2.0) on Passport's website.


readme is not required in pyproject.toml, but docs say it is

The docs say that the readme key is required:

readme
The readme file of the package. Required
The file can be either README.rst or README.md.

but poetry check works just fine without any mention of the readme in pyproject.toml.

I'll try to make a PR handling this

Does it have to be required, though?

Yeah, I thought about it as well and came to the conclusion that having a README is a good practice, so there is nothing wrong with poetry enforcing it. Also, since it was required in the docs, I guess that was @sdispater initial intention, so I thought that firstly we can bring repo to this intended state and eventually changed it from there :)

If it's going to be required, I think it should also be added to the pyproject.toml generated by poetry new (and probably poetry init too).

@tadeoos Well, if it's good practice it should be recommended, not required.

the pep 345 makes it optional :
https://www.python.org/dev/peps/pep-0345/#description-optional

You guys are right, I made a new PR with docs update.
Thanks!

poetry new creates a new README.rst but doesn't add it to the pyproject.toml. That could be changed as well, right?
(I also think it should default to markdown, but that's arguable)

I think this should be mandatory when you publish (so most of the time when you build a library) but not required when you build an application.
There is not this distinction yet in poetry but that's somathing worth considering in a near future.

Should we close this since #242 got merged in? The "Closes #237" text on there didn't trigger an automatic close here because develop is not the default branch.
@sdispater - FWIW, I think it will be confusing to have people submit PRs against different branches depending on the type of change. If possible, I recommend having one branch to land incoming changes and making it the default branch. That will address issues like the one here.


Remove "Browse Torrent File" option from bottom sheet in Feeds page

The bottom sheet I am referring to here is the one that opens up when we click on the centre Floating Action Button.

@harchani-ritik May I have a go at it?

@Adityabhaumik Yeah sure, go ahead.

Please Note: This issue requires to remove the "Browse Torrent File" option from the bottom sheet on ONLY Feeds page and not on the Home page. Since on the home page, the FAB button allows users to add torrent file/link whereas on the feeds page it is concerned with adding RSS links and thus "browsing file" option there doesn't make sense and thus it needs to be removed.


Release v0.15.0

It's important to release fairly soon, because rustc 1.38.0 will deprecate std::mem::uninitialized.

bors r+


Getting notifications but they aren't showing trough notification center

Please include following information for better support
What verion of RN and react-native-fcm are you running?
0.35.0
latest
What device are you using? (e.g iOS9 emulator, Android 6 device)?
iPad mini 9.3.5
Is your app running in foreground, background or not running?
Both
Advanced:
Have you tried adding break point in native handlers to see if message gets delivered?
It does get delivered.
So. I've been able to send notifications but they aren't showing in notification center. Once I press home button and app goes to background console output says disconnected from FCM and once I enter application I get connected to FCM. I've sent notification trough Postman and firebase returned success. I did manage to catch notifcation on reopening app and when in foreground but for some reason I don't get them in notification center.
Any help would be highly appreciated! Thanks in advance.

I faced the same behaviour when I forgot to configure push notifications in the app. That is:

create APNS certificates,
upload p12 files to Firebase console in messaging tab,
actually turn on Push stuff in XCode and itunes.
I don't know why app received data from firebase at all, but it did, without notification in status bar.

Yeah tnx for your input I already solved my problem but forgot to close it.

Having same problem, so what do you mean by - actually turn on Push stuff in itunes?

@almadsen It's googlable, step 12 here.

You mean iTunes connect I guess.
But still, I  believe I've got all my ducks in a row, but still no push notifications.

I misunderstood FirebaseAppDelegateProxyEnabled  and set it to NO which blocked notifications from showing up

@frmrgr how did you resolved "I don't know why app received data from firebase at all, but it did, without notification in status bar."  I'm having the same issue in iOS 11.2.1 and XCode 9


Container.seek(time, stream=foo) for specifying time_base of a stream.

Pretty straight forward.

Can we add an explicit test for the new method, and make sure the test for the deprecated method issues a warning?

Done. Cool?

Very cool, that way when we drop the method we already have our good test in place :)


Add reel_name as a StreamTag

Requesting reel_name to be added to StreamTag

Also, I would love to contribute to this crate as I use ffprobe all the time.

Makes sense.
Happy to get a PR!

Closed by #18


Topic mining

Also, could you disable wildcard imports on the editor level? Yes, I know this can be set on the project level, but do you want to do that for every project?


Topology visualisation for tunnels

First of all, I love the plugin. I've got a bunch of sites connected with S2Ss and it's so odd, that tunnels are not representable in core Netbox.
Im using other plugin Topology Views to visualise all the connections inside a site and I was curious if You maybe have a plan to make those tunnels visualisable in some kind of way? I ofcours understand, that cross plugin compatibility is not Your concern, but just wanted to ask if maybe in a future You are planning that kind of feature?

That is outside the scope of this plugin. One way to make this work would be to have physical interfaces that you create a connection for, but I don't think thats the best way.


Efficiently create many records

We need a way to efficiently insert many rows of data.
For small amounts of data, a simple batch API might be sufficient, as the database can handle all the operations in a short time. This could either be exposed through operations similar to our nested create API as described below, or through a new Batch API as described in https://github.com/prisma/prisma-client-js/issues/667.
For large amounts of data, we need to support breaking the large number of create operations into smaller batches. In order to optimise throughput, you need to balance two things: provide large enough work packages such that network latency doesn't dominate the actual work, and keep the work packages small enough to not overwhelm the database. This could be exposed through a batch API with configurable batch size, or through a streaming API with buffering support.
Original issue
I think is quite common the need of having to create or upsert many records on a database at the same time, at least is a feature I see in many other ORMs.
Right now is posible to create many records using a nested write like this
const newUser: User = await photon.users.create({
  data: {
    email<EMAIL_ADDRESS>    posts: {
      create: [
        { title: 'Join the Prisma Slack on https://slack.prisma.io' },
        { title: 'Follow Prisma on Twitter' },
      ],
    },
  },
})

But sometimes you just want to create many records, in this case the only thing I managed to find to accomplish is by doing this
const newPosts = [
  { id: 1, title: 'Join the Prisma Slack on https://slack.prisma.io' },
  { id: 2, title: 'Follow Prisma on Twitter' },
];

// create
const createManyPosts = newPosts.map((post) =>
  photon.posts.create({
    data: post,
  }),
);

Promise.all(createManyPosts);

// upsert
const upsertManyPosts = newPosts.map((post) =>
  photon.posts.upsert({
    where: { id: post.id },
    create: post,
    update: post,
  }),
);

Promise.all(upsertManyPosts);

This with 2 records works fine, but as soon as you need to create 1000 doesn't seems right to fire 1000 promises.
Maybe I'm missing something and there is a good reason for a feature like this to not be available, or maybe is already planned to be added in future releases?
I think prisma2 is awesome! Thank you all very much for this product :) it's totally an step forward.

Related #3619

Related #3619

I have to ask, is there a timeline for this feature?

I have to ask, is there a timeline for this feature?

Yes, I'd agree with the comment above. In our experience, this is by far the biggest barrier to fully adopting Prisma in any app.
Thanks in advance for looking into it!

Yes, I'd agree with the comment above. In our experience, this is by far the biggest barrier to fully adopting Prisma in any app.
Thanks in advance for looking into it!

This is a must have feature. I have an app where I get data in bulk from a 3rd party source and needs to be inserted into the database at regular interval.

This is a must have feature. I have an app where I get data in bulk from a 3rd party source and needs to be inserted into the database at regular interval.

Hey folks, we've started designing this feature. Please have a read through the proposal and let us know what you think!
Also feel free to schedule time with me https://calendly.com/matthewmueller/prisma to chat about this proposal.
Proposal
Database Support

Postgres
MySQL
SQLite
SQL Server

Operations
Bulk Create

You can efficiently insert many records in one query
Type-safe inputs
On success, we return a count of the records created
If there's an error, we throw that error

Example
const result = await client.user.createMany({
  data: [
		{ email<EMAIL_ADDRESS>},
		{ email<EMAIL_ADDRESS>}
	]
})

// result contains the number of rows affected
console.log(result.count) // 2

Nested Create Many

Nested create many operation within create and update operations.
Accepts a type-safe array of records
Nice to have. Adding this feature assumes many shared code paths. If that's not the case, this should be out of scope.
Functionally the same as a nested create: [], though should be separated because internal implementation will be different.

**create Example**
const result = await client.user.create({
  data: {
    email<EMAIL_ADDRESS>    posts: {
      createMany: [
        { title: "1st post" },
        { title: "2nd post" }
      ]
    }
  }
})

Out of Scope

Bulk upserts

The mechanisms that govern upsert are not applicable to a many operation.
We'd have to rewrite it to be a completely separate operation (doable, but out of scope).

Return newly created records from a createMany.

Only Postgres supports RETURNING natively.
Workaround: If you need to read the records from a createMany, call findMany after.

select and include options not supported

Since we don't return newly created records, select and include operations do not apply.

Nested create, connect, connectOrCreate

data won't allow nested relations to be created or connected.

Batch inserts across unrelated models. You can only batch one type of record at a time.

Example: you can't batch insert a user and an unrelated post.
This doesn't apply to related models where you can use nested writes.

Copying data into the table even faster by omitting integrity checks.

Some databases offer "copy in" functionality. This is a separate feature.

Hey folks, we've started designing this feature. Please have a read through the proposal and let us know what you think!
Also feel free to schedule time with me https://calendly.com/matthewmueller/prisma to chat about this proposal.
Proposal
Database Support

Postgres
MySQL
SQLite
SQL Server

Operations
Bulk Create

You can efficiently insert many records in one query
Type-safe inputs
On success, we return a count of the records created
If there's an error, we throw that error

Example
const result = await client.user.createMany({
  data: [
		{ email<EMAIL_ADDRESS>},
		{ email<EMAIL_ADDRESS>}
	]
})

// result contains the number of rows affected
console.log(result.count) // 2

Nested Create Many

Nested create many operation within create and update operations.
Accepts a type-safe array of records
Nice to have. Adding this feature assumes many shared code paths. If that's not the case, this should be out of scope.
Functionally the same as a nested create: [], though should be separated because internal implementation will be different.

**create Example**
const result = await client.user.create({
  data: {
    email<EMAIL_ADDRESS>    posts: {
      createMany: [
        { title: "1st post" },
        { title: "2nd post" }
      ]
    }
  }
})

Out of Scope

Bulk upserts

The mechanisms that govern upsert are not applicable to a many operation.
We'd have to rewrite it to be a completely separate operation (doable, but out of scope).

Return newly created records from a createMany.

Only Postgres supports RETURNING natively.
Workaround: If you need to read the records from a createMany, call findMany after.

select and include options not supported

Since we don't return newly created records, select and include operations do not apply.

Nested create, connect, connectOrCreate

data won't allow nested relations to be created or connected.

Batch inserts across unrelated models. You can only batch one type of record at a time.

Example: you can't batch insert a user and an unrelated post.
This doesn't apply to related models where you can use nested writes.

Copying data into the table even faster by omitting integrity checks.

Some databases offer "copy in" functionality. This is a separate feature.

Hi @matthewmueller, this is excellent news. I just want to confirm, when you say "Nested connect", is this referring to top level connect statements?

I'm assuming not, however, I would like to confirm, because I feel this is important.

Hi @matthewmueller, this is excellent news. I just want to confirm, when you say "Nested connect", is this referring to top level connect statements?

I'm assuming not, however, I would like to confirm, because I feel this is important.

@DakotaLarson glad to hear! Connecting many items at once is not in scope. You can create many nested items at once though.
await client.user.create({
  data: {
    posts: {
      createMany: [...]
    }
  }
})

@DakotaLarson glad to hear! Connecting many items at once is not in scope. You can create many nested items at once though.
await client.user.create({
  data: {
    posts: {
      createMany: [...]
    }
  }
})

@matthewmueller The use case I am thinking of is creating multiple child records for a 1-M relationship that already has an existing parent. Let's say we have 2 tables, User and post with post connecting to use through a field userId. Is it possible to create many posts for a user that already exists? Is the code the expected solution?
const result = await client.user.update({
  data: {
    posts: {
      createMany: [
        { title: "1st post" },
        { title: "2nd post" }
      ]
    }
  }
})

@matthewmueller The use case I am thinking of is creating multiple child records for a 1-M relationship that already has an existing parent. Let's say we have 2 tables, User and post with post connecting to use through a field userId. Is it possible to create many posts for a user that already exists? Is the code the expected solution?
const result = await client.user.update({
  data: {
    posts: {
      createMany: [
        { title: "1st post" },
        { title: "2nd post" }
      ]
    }
  }
})

Hey @DakotaLarson. This should work just fine with create and update. What doesn't work is connecting an existing post within that createMany. You can still use connectOrCreate for that, it just won't be quite as efficient (for 2 records it won't matter).

Hey @DakotaLarson. This should work just fine with create and update. What doesn't work is connecting an existing post within that createMany. You can still use connectOrCreate for that, it just won't be quite as efficient (for 2 records it won't matter).

Quick Update: I've updated the proposal based on some additional feedback and further technical exploration.
We've started implementing the proposal above, so if you have any additional feedback please chime in soon.

As a reminder, I'd love to jump on a call with you to chat about this proposal or any problems you face with the Prisma Client. This is a great chance to influence what we build! https://calendly.com/matthewmueller/prisma

Quick Update: I've updated the proposal based on some additional feedback and further technical exploration.
We've started implementing the proposal above, so if you have any additional feedback please chime in soon.

As a reminder, I'd love to jump on a call with you to chat about this proposal or any problems you face with the Prisma Client. This is a great chance to influence what we build! https://calendly.com/matthewmueller/prisma

@matthewmueller just wondering, I'm not quite clear from the proposal, will the following be possible?:
const result = await client.user.createMany({
  data: [
    { email<EMAIL_ADDRESS>organisation: { connect: { organisationId: 1 } } },
    { email<EMAIL_ADDRESS> organisation: { connect: { organisationId: 1 } } }
  ]
})

This is a very common usecase for us, and I guess for many other apps, so just wanted to check.
Thanks for working on this!

@matthewmueller just wondering, I'm not quite clear from the proposal, will the following be possible?:
const result = await client.user.createMany({
  data: [
    { email<EMAIL_ADDRESS>organisation: { connect: { organisationId: 1 } } },
    { email<EMAIL_ADDRESS> organisation: { connect: { organisationId: 1 } } }
  ]
})

This is a very common usecase for us, and I guess for many other apps, so just wanted to check.
Thanks for working on this!

No relation operations are available for createMany.
If the foreign key is on User the following is possible:
const result = await client.user.createMany({
  data: [
    { email<EMAIL_ADDRESS>organisationId: 1 },
    { email<EMAIL_ADDRESS> organisationId: 1 }
  ]
})

Otherwise you need to stick to createOne calls to do more complex relation operations.

No relation operations are available for createMany.
If the foreign key is on User the following is possible:
const result = await client.user.createMany({
  data: [
    { email<EMAIL_ADDRESS>organisationId: 1 },
    { email<EMAIL_ADDRESS> organisationId: 1 }
  ]
})

Otherwise you need to stick to createOne calls to do more complex relation operations.

Ah, ok, your example works fine for our use cases:
const result = await client.user.createMany({
  data: [
    { email<EMAIL_ADDRESS>[fk_field_name]: 1 },
    { email<EMAIL_ADDRESS> [fk_field_name]: 1 }
  ]
})

So the types in this array will be different to the UserCreateInput required by client.user.create, right? Since that the existing UserCreateInput will be something like:
export type UserCreateInput = {
  email: string;
  [fk_field_name]: { create?: ..., connect?: ...};
}

Hope that makes sense.

Ah, ok, your example works fine for our use cases:
const result = await client.user.createMany({
  data: [
    { email<EMAIL_ADDRESS>[fk_field_name]: 1 },
    { email<EMAIL_ADDRESS> [fk_field_name]: 1 }
  ]
})

So the types in this array will be different to the UserCreateInput required by client.user.create, right? Since that the existing UserCreateInput will be something like:
export type UserCreateInput = {
  email: string;
  [fk_field_name]: { create?: ..., connect?: ...};
}

Hope that makes sense.

Yes, the types will be different.
Technically, the type used for createMany is compatible with the types used in unchecked scala create types, but that's just an FYI.

Yes, the types will be different.
Technically, the type used for createMany is compatible with the types used in unchecked scala create types, but that's just an FYI.

I like the proposal, thanks a lot @matthewmueller
Only the missing bulk relations seem painful and will reduce the number of use cases in which we could fully leverage the bulk create.
In case bulk relations are considered, check this issue, showing how with minor optimizations, bulk connections can be sped up significantly!
Thanks

I like the proposal, thanks a lot @matthewmueller
Only the missing bulk relations seem painful and will reduce the number of use cases in which we could fully leverage the bulk create.
In case bulk relations are considered, check this issue, showing how with minor optimizations, bulk connections can be sped up significantly!
Thanks

Hey @peteralbert, checking out your sample Schema,
I think this is covered. Something like (untested):
await client.user.createMany({
  data: [
    {
      id: 1,
      name<EMAIL_ADDRESS>
      posts: {
        createMany: {
          data: [
            { id: 1, title: 'first' },
            { id: 2, title: 'second' },
            { id: 3, title: 'third' }
          ]
        }
      }
    },
    {
      id: 2,
      email<EMAIL_ADDRESS>
      posts: {
        createMany: {
          data: [
            { id: 4, title: 'four' },
            { id: 5, title: 'five' },
            { id: 6, title: 'six' }
          ]
        }
      }
    }
  ]
})

Hey @peteralbert, checking out your sample Schema,
I think this is covered. Something like (untested):
await client.user.createMany({
  data: [
    {
      id: 1,
      name<EMAIL_ADDRESS>
      posts: {
        createMany: {
          data: [
            { id: 1, title: 'first' },
            { id: 2, title: 'second' },
            { id: 3, title: 'third' }
          ]
        }
      }
    },
    {
      id: 2,
      email<EMAIL_ADDRESS>
      posts: {
        createMany: {
          data: [
            { id: 4, title: 'four' },
            { id: 5, title: 'five' },
            { id: 6, title: 'six' }
          ]
        }
      }
    }
  ]
})

Just one last thing I wanted to check. Bulk upserts are out of scope, but we'd still expect the following to be valid, and fairly efficient, right:
prisma.$transaction([
  prisma.posts.deleteMany({ where: { userId: 1 } }),
  prisma.posts.createMany({
    { id: 1, title: 'first',  userId: 1 },
    { id: 2, title: 'second', userId: 1 },
    { id: 3, title: 'third',  userId: 1 },
  }),
]);

Thanks again!

Just one last thing I wanted to check. Bulk upserts are out of scope, but we'd still expect the following to be valid, and fairly efficient, right:
prisma.$transaction([
  prisma.posts.deleteMany({ where: { userId: 1 } }),
  prisma.posts.createMany({
    { id: 1, title: 'first',  userId: 1 },
    { id: 2, title: 'second', userId: 1 },
    { id: 3, title: 'third',  userId: 1 },
  }),
]);

Thanks again!

@robmurtagh Yep, that will work

This will be available in the 2.16.x release!

when will this feature be released?

@calidion You will need to use the preview flag to enable this. Here are the docs: https://www.prisma.io/docs/concepts/components/prisma-client/crud/#create-multiple-records

Return newly created records from a createMany.

@matthewmueller are there any plans to eventually implement this for Postgres? This limitation can be hard to workaround. For example, if your table uses an autoincrementing primary key and does not have any other unique columns, pre-computing the IDs is not a viable option.
Here's a more specific example. It's a bit contrived, but should still get the point across. Let's say I have these two tables
CREATE TABLE IF NOT EXISTS post (
  "id" SERIAL PRIMARY KEY,
  ...
);

CREATE TABLE IF NOT EXISTS comment (
  "id" SERIAL PRIMARY KEY,
  "postId" INTEGER NOT NULL REFERENCES post ("id") ON DELETE CASCADE,
  ...
);

Let's say I want to create many posts and many comments. The data to be created could be represented like so: Array<{post: PostData, comments: Array<CommentData>}>. If createMany returned the created data, I could do something like this:
const inputs: Array<{post: PostData, comments: Array<CommentData>}> = [...];
const posts = prisma.post.createMany({data: [...]});
const commentCreateData = inputs.map((input, index) => input.comments.map((commentData) => ...))).flat();
prisma.comment.createMany({data: commentCreateData});

However, since createMany does not return the created data, it is difficult to create many posts and then create many comments linked to those posts in an efficient manner.

However, since createMany does not return the created data, it is difficult to create many posts and then create many comments linked to those posts in an efficient manner.

Yep, having to issue four queries is a little painful.

parent.createMany
parent.findMany
child.createMany
child.findMany

Make sure to open a new feature request issue if you want this to be looked at - comments on closed issues usually do not get many eyes.

@janpio Makes sense; it's not something I feel strongly enough about to open one, I should have pinged the previous commenter or just not said anything.

@arcticmatt - could you lift your comment into a new feature request?
We would probably need to use the select or include API to enable you top optionally return the created data.

Done!

I need to create many records but I need feedback in the GUI. Right now, I'm doing a loop and creating records one at a time.

const result = await client.user.createMany({
  data: [
    { email<EMAIL_ADDRESS>organisation: { connect: { organisationId: 1 } } },
    { email<EMAIL_ADDRESS> organisation: { connect: { organisationId: 1 } } }
  ]
})

This is a very common usecase for us, and I guess for many other apps, so just wanted to check.
Thanks for working on this!

Is this actually possible now? I'm trying to do this but I get an error saying Unknown arg `organisation` in data.1.organisation for type UserCreateManyInput. Did you mean `organisationId`?.

@hani-hj1908619 in case it's helpful, at a guess you would need to do something like:
const result = await client.user.createMany({
  data: [
    { email<EMAIL_ADDRESS>organisationId: 1 },
    { email<EMAIL_ADDRESS> organisationId: 1 }
  ]
})

I haven't tested this, but from memory Prisma has both Checked and Unchecked inputs. In this case, this might be an Unchecked input. If that doesn't work, you might get better advice on the Prisma Slack, or Stack Overflow, rather than this issue.


Expression 2: function predefinition is broken

Following code does not compile.
@strict
function b() { error("undef") }

function a() { b() }
function b() { a() }

No workarounds that keep type checking of argument and return value.

It shouldn't compile. Function overriding isn't a thing anymore on @strict. It's a hacky weird dynamic behavior. If you want it, use lambdas.

Closing as I never guaranteed backwards compatibility with @strict


New version: mcmilk.7zip-zstd version 22.01-v1.5.5-R3

Pull request has been created with WinGet Automation :rocket:
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/115138&drop=dogfoodAlpha

@wingetbot run


Update download-latest.sh

Hey, PR of the weekend :)
Kidding, I began to use MeiliSearch recently for fun&personal usage, wishing you good luck for your next v0.21|v1.0 releases
Cheers

Hi @94noni!
Currently, we don't accept PRs because we are working on a huge refactor as you know it: https://github.com/meilisearch/MeiliSearch#contributing
However, this PR concerns a file that will still be present despite the following refactor, so I merge the PR 😉
Thanks for this contribution 🙂

bors merge


Camel Quarkus CXF Extension

This PR adds Camel Quarkus CXF Extension, addressing the issue #764 . Both SOAP client and SOAP server supported, in JVM and native modes.

OK, I think we're done - this PR now uses Quarkus CXF for SOAP services and WS-Security, all tests pass correctly.

Apparently the Quarkus CXF uses a newer version of the xmlsec which causes test failures in the xmlsecurity extension, but I have a fix for that. See https://santuario.apache.org/faq.html 4. Secure Validation

Any updates? Comments?

Any updates? Comments?

We should probably wait until Camel 3.18.1 is available (hopefully next week) because it fixes the dependency that was not properly test scoped:
https://github.com/apache/camel/blob/main/components/camel-cxf/camel-cxf-common/pom.xml#L104
So we wont need to pull in a bunch of redundant dependencies.

Thinking also we should have a 'code first' test for the consumer. Right now we're just feeding the endpoint a WSDL file. Would be good to also test a JAX-WS annotated service interface.

Sure, I can work on code first test, although I see it a bit redundant, since the service interface is generated from the WSDL by the cxf-codegen-plugin during the build and then configured in the endpoint: camel.beans.soapServiceEndpoint.serviceClass=com.helloworld.service.HelloPortType

OK, code-first test added

Many thanks @javaduke for this great work! Happy to find out this has been merged.


fix: more types support wildcard and names

What does this PR do?
Adds support to a bunch of types for specifying a wildcard with explicitly named metadata in a manifest.
What issues does this PR fix or reference?
#1825
@W-12164846@
Functionality Before
Retrieves only unpackaged metadata
Functionality After
Retrieves both unpackaged and managed package metadata

QA Notes

setup:
I used sample-project-multiple-packages as starting point
 ➜  sfdx force:package:install -w 10 --publishwait=15 --package 04t3i000002eydQAAQ --noprompt
which installed a dreamhouse-lwc package
using the package.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>PagedResult</members>
        <members>*</members>
        <name>ApexClass</name>
    </types>
    <types>
        <members>*</members>
        <name>CustomObject</name>
    </types>
    <version>50.0</version>
</Package>

✅ : before, retrieved everything that's part of the SPMP
✅ : linked, and then verified PagedResults class was retrieved


Hash256 of 3.2 apk version is not matched

Have downloaded version 3.2.apk twice, and use the hash verify software to get the data of hash256, and find hash256 data is different in these two downloads, and they are also not matched with what on the website. Does that mean the version has been changed by someone and is not safe now?

hash works for me.  Must be your software.  What software are you using?  What kind of computer are you on?

@fyookball Time to close this one, no response from reporter.


Documentation and tests for dataset generation

Added extensive java docs and unit tests for GenerateDatasets

/kind documentation

We are going to have merge conflicts once @Ford-Robert's PR #27, could you discuss

/hold until #27 is merged

/area datasets

/remove hold


Error: Unable to Publish - Node times out while creating asset

Issue description
With SSL enabled or disabled, the node is not returning a response or logging any details about the asset creation. You will see my wallet has over 40 txns but none are recorded in any node logging. I can see in this block that my configured wallet is making some kind of transaction:
https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Flofar.origin-trail.network#/explorer/query/0xb45b2222a664cf1d94dcf371a42d02b854718f855d6e166b2297b6c1c17e9676
Expected behavior
Actual behavior
Steps to reproduce the problem
Run this project and it will timeout after the node fails to respond for too long. https://github.com/CosmiCloud/ODNWeather

Try to publish an asset using the current version of dkg.js

Specifications

Node version:  v6.0.0-beta.2.0
Platform: Ubuntu 22.04
Node wallet: 0x8d4C2a4aFEE6b6D3B688bFEf68A5A9e54D07569B
Node libp2p identity: QmdbTKjSE1hHv5Z944Xbd4FZB9umMJygdDxcUDiqMcoUJN

Contact details

Email:

Error logs
otnodelogs.txt
/root/ODNWeather/node_modules/dkg.js/services/node-api-service/implementations/http-service.js:40
throw Error(Unable to publish: ${e.message});
^
Error: Unable to publish: connect ETIMEDOUT <IP_ADDRESS>:80
at /root/ODNWeather/node_modules/dkg.js/services/node-api-service/implementations/http-service.js:40:15
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async AssetOperationsManager.create (/root/ODNWeather/node_modules/dkg.js/managers/asset-operations-manager.js:31:23)
at async publish (/root/ODNWeather/src/queryOTNode.js:12:19)
Disclaimer
Please be aware that the issue reported on a public repository allows everyone to see your node logs, node details, and contact details. If you have any sensitive information, feel free to share it by sending an email to<EMAIL_ADDRESS>

In your code you create the client using :
const dkg = new DKG({   endpoint: "http://<IP_ADDRESS>",   port: 8900,   useSSL: false,   loglevel: "trace", });
Ot-node has SSL enabled by default. If you want to disable it, you can follow these instructions..
If you want to use the client using SSL, you should edit your code to look like this :
const dkg = new DKG({   endpoint: "https://<IP_ADDRESS>",   port: 8900,   useSSL: true,   loglevel: "trace", });

This issue is being closed as inactive due to the date of the last activity on it. If you believe this is still a problem, please create a new issue and confirm that it is reproducible in the current ot-node release version. We are working towards closing open issues that meet specific criteria and ask you to create a new one for those that that are truly bugs in current release. We'll be monitoring those issues so that they are properly managed.
Thank you,
OriginTrail Team


Introduce the small-hash feature for bitcoin_hashes

When enabled this feature swaps the hash implementation of sha512, sha256 and ripemd160 for a smaller (but also slower) one.
On embedded processors (Cortex-M4) it can lead to up to a 52% size reduction, from around 37KiB for just the process_block methods of the three hash functions to 17.8KiB.
The following numbers were collected on aarch64-unknown-linux-gnu with cargo 1.72.0-nightly.
Original
RUSTFLAGS='--cfg=bench -C opt-level=z' cargo bench

test hash160::benches::hash160_10                 ... bench:          33 ns/iter (+/- 1) = 303 MB/s
test hash160::benches::hash160_1k                 ... bench:       2,953 ns/iter (+/- 187) = 346 MB/s
test hash160::benches::hash160_64k                ... bench:     188,480 ns/iter (+/- 11,595) = 347 MB/s
test hmac::benches::hmac_sha256_10                ... bench:          33 ns/iter (+/- 2) = 303 MB/s
test hmac::benches::hmac_sha256_1k                ... bench:       2,957 ns/iter (+/- 104) = 346 MB/s
test hmac::benches::hmac_sha256_64k               ... bench:     192,022 ns/iter (+/- 6,407) = 341 MB/s
test ripemd160::benches::ripemd160_10             ... bench:          25 ns/iter (+/- 1) = 400 MB/s
test ripemd160::benches::ripemd160_1k             ... bench:       2,288 ns/iter (+/- 93) = 447 MB/s
test ripemd160::benches::ripemd160_64k            ... bench:     146,823 ns/iter (+/- 1,102) = 446 MB/s
test sha1::benches::sha1_10                       ... bench:          41 ns/iter (+/- 0) = 243 MB/s
test sha1::benches::sha1_1k                       ... bench:       3,844 ns/iter (+/- 70) = 266 MB/s
test sha1::benches::sha1_64k                      ... bench:     245,854 ns/iter (+/- 10,158) = 266 MB/s
test sha256::benches::sha256_10                   ... bench:          35 ns/iter (+/- 0) = 285 MB/s
test sha256::benches::sha256_1k                   ... bench:       3,063 ns/iter (+/- 15) = 334 MB/s
test sha256::benches::sha256_64k                  ... bench:     195,729 ns/iter (+/- 2,880) = 334 MB/s
test sha256d::benches::sha256d_10                 ... bench:          34 ns/iter (+/- 1) = 294 MB/s
test sha256d::benches::sha256d_1k                 ... bench:       3,071 ns/iter (+/- 107) = 333 MB/s
test sha256d::benches::sha256d_64k                ... bench:     188,614 ns/iter (+/- 8,101) = 347 MB/s
test sha512::benches::sha512_10                   ... bench:          21 ns/iter (+/- 0) = 476 MB/s
test sha512::benches::sha512_1k                   ... bench:       1,714 ns/iter (+/- 36) = 597 MB/s
test sha512::benches::sha512_64k                  ... bench:     110,084 ns/iter (+/- 3,637) = 595 MB/s
test sha512_256::benches::sha512_256_10           ... bench:          22 ns/iter (+/- 1) = 454 MB/s
test sha512_256::benches::sha512_256_1k           ... bench:       1,822 ns/iter (+/- 70) = 562 MB/s
test sha512_256::benches::sha512_256_64k          ... bench:     116,231 ns/iter (+/- 4,745) = 563 MB/s
test siphash24::benches::siphash24_1ki            ... bench:       1,072 ns/iter (+/- 41) = 955 MB/s
test siphash24::benches::siphash24_1ki_hash       ... bench:       1,102 ns/iter (+/- 42) = 929 MB/s
test siphash24::benches::siphash24_1ki_hash_u64   ... bench:       1,064 ns/iter (+/- 41) = 962 MB/s
test siphash24::benches::siphash24_64ki           ... bench:      69,957 ns/iter (+/- 2,712) = 936 MB/

0000000000005872 t _ZN84_$LT$bitcoin_hashes..ripemd160..HashEngine$u20$as$u20$bitcoin_hashes..HashEngine$GT$5input17hc4800746a9da7ff4E
0000000000007956 t _ZN81_$LT$bitcoin_hashes..sha256..HashEngine$u20$as$u20$bitcoin_hashes..HashEngine$GT$5input17hf49345f65130ce9bE
0000000000008024 t _ZN14bitcoin_hashes6sha2568Midstate10const_hash17h57317bc8012004b4E.llvm.441255102889972912
0000000000010528 t _ZN81_$LT$bitcoin_hashes..sha512..HashEngine$u20$as$u20$bitcoin_hashes..HashEngine$GT$5input17h9bc868d4392bd9acE

Total size: 32380 bytes
With small-hash enabled
RUSTFLAGS='--cfg=bench -C opt-level=z' cargo bench --features small-hash

test hash160::benches::hash160_10                 ... bench:          52 ns/iter (+/- 3) = 192 MB/s
test hash160::benches::hash160_1k                 ... bench:       4,817 ns/iter (+/- 286) = 212 MB/s
test hash160::benches::hash160_64k                ... bench:     319,572 ns/iter (+/- 11,031) = 205 MB/s
test hmac::benches::hmac_sha256_10                ... bench:          54 ns/iter (+/- 2) = 185 MB/s
test hmac::benches::hmac_sha256_1k                ... bench:       4,846 ns/iter (+/- 204) = 211 MB/s
test hmac::benches::hmac_sha256_64k               ... bench:     319,114 ns/iter (+/- 4,451) = 205 MB/s
test ripemd160::benches::ripemd160_10             ... bench:          27 ns/iter (+/- 0) = 370 MB/s
test ripemd160::benches::ripemd160_1k             ... bench:       2,358 ns/iter (+/- 150) = 434 MB/s
test ripemd160::benches::ripemd160_64k            ... bench:     154,573 ns/iter (+/- 3,954) = 423 MB/s
test sha1::benches::sha1_10                       ... bench:          41 ns/iter (+/- 1) = 243 MB/s
test sha1::benches::sha1_1k                       ... bench:       3,700 ns/iter (+/- 243) = 276 MB/s
test sha1::benches::sha1_64k                      ... bench:     231,039 ns/iter (+/- 13,989) = 283 MB/s
test sha256::benches::sha256_10                   ... bench:          51 ns/iter (+/- 3) = 196 MB/s
test sha256::benches::sha256_1k                   ... bench:       4,823 ns/iter (+/- 182) = 212 MB/s
test sha256::benches::sha256_64k                  ... bench:     299,960 ns/iter (+/- 17,545) = 218 MB/s
test sha256d::benches::sha256d_10                 ... bench:          52 ns/iter (+/- 2) = 192 MB/s
test sha256d::benches::sha256d_1k                 ... bench:       4,827 ns/iter (+/- 323) = 212 MB/s
test sha256d::benches::sha256d_64k                ... bench:     302,844 ns/iter (+/- 15,796) = 216 MB/s
test sha512::benches::sha512_10                   ... bench:          34 ns/iter (+/- 1) = 294 MB/s
test sha512::benches::sha512_1k                   ... bench:       3,002 ns/iter (+/- 123) = 341 MB/s
test sha512::benches::sha512_64k                  ... bench:     189,767 ns/iter (+/- 10,396) = 345 MB/s
test sha512_256::benches::sha512_256_10           ... bench:          34 ns/iter (+/- 1) = 294 MB/s
test sha512_256::benches::sha512_256_1k           ... bench:       2,996 ns/iter (+/- 198) = 341 MB/s
test sha512_256::benches::sha512_256_64k          ... bench:     192,024 ns/iter (+/- 8,181) = 341 MB/s
test siphash24::benches::siphash24_1ki            ... bench:       1,081 ns/iter (+/- 65) = 947 MB/s
test siphash24::benches::siphash24_1ki_hash       ... bench:       1,083 ns/iter (+/- 63) = 945 MB/s
test siphash24::benches::siphash24_1ki_hash_u64   ... bench:       1,084 ns/iter (+/- 63) = 944 MB/s
test siphash24::benches::siphash24_64ki           ... bench:      67,237 ns/iter (+/- 4,185) = 974 MB/s

0000000000005384 t _ZN81_$LT$bitcoin_hashes..sha256..HashEngine$u20$as$u20$bitcoin_hashes..HashEngine$GT$5input17hae341658cf9b880bE
0000000000005608 t _ZN14bitcoin_hashes9ripemd16010HashEngine13process_block17h3276b13f1e9feef8E.llvm.13618235596061801146
0000000000005616 t _ZN14bitcoin_hashes6sha2568Midstate10const_hash17h3e6fbef64c15ee00E.llvm.7326223909590351031
0000000000005944 t _ZN81_$LT$bitcoin_hashes..sha512..HashEngine$u20$as$u20$bitcoin_hashes..HashEngine$GT$5input17h321a237bfbe5c0bbE

Total size: 22552 bytes
Conclusion
On aarch64 there's overall a ~30% improvement in size, although ripemd160 doesn't really shrink that much (and its performance also aren't impacted much with only a 6% slowdown). sha512 and sha256 instead are almost 40% slower with small-hash enabled.
I don't have performance numbers for other architectures, but in terms of size there was an even larger improvements on thumbv7em-none-eabihf, with a 52% size reduction overall:
   Size          Crate Name
25.3KiB bitcoin_hashes <bitcoin_hashes[fe467ef2aa3a1470]::sha512::HashEngine as bitcoin_hashes[fe467ef2aa3a1470]::HashEngine>::input
 6.9KiB bitcoin_hashes <bitcoin_hashes[fe467ef2aa3a1470]::sha256::HashEngine as bitcoin_hashes[fe467ef2aa3a1470]::HashEngine>::input
 4.8KiB bitcoin_hashes <bitcoin_hashes[fe467ef2aa3a1470]::ripemd160::HashEngine as bitcoin_hashes[fe467ef2aa3a1470]::HashEngine>::input

vs
  Size          Crate Name
9.5KiB bitcoin_hashes <bitcoin_hashes[974bb476ef905797]::sha512::HashEngine as bitcoin_hashes[974bb476ef905797]::HashEngine>::input
4.5KiB bitcoin_hashes <bitcoin_hashes[974bb476ef905797]::ripemd160::HashEngine>::process_block
3.8KiB bitcoin_hashes <bitcoin_hashes[974bb476ef905797]::sha256::HashEngine as bitcoin_hashes[974bb476ef905797]::HashEngine>::input

I'm assuming this is because on more limited architectures the compiler needs to use more instructions to move data in and out of registers (especially for sha512 which ideally would benefit from 64-bit registers), so reusing the code by moving it into functions saves a lot of those instructions.
Also note that the const_hash method on sha256 causes the compiler to emit two independent implementations. I haven't looked into the code yet, maybe there's a way to merge them so that the non-const process_block calls into the const fn.

Note: commits are unverified right now because I don't have the keys available, I will sign them after addressing the review comments.

Can you edit clippy.toml to set too-many-arguments-threshold to 9 (or whatever value you need).

Overall concept ACK. I'm super impressed at how small this diff is. I was a little apprehensive about reviewing this PR but it's much smaller than I expected.

Just thinking aloud. I wonder if this should be a Cargo feature. Feels kind of weird ... as this doesn't really enable any "feature", and is more like a compilation level thing. I wonder if there are any idiomatic alternatives. Feel to me like this would be best controlled by env var during compilation. Or maybe I'm just overcomplicating.

I'm super impressed at how small this diff is. I was a little apprehensive about reviewing this PR but it's much smaller than I expected.

Yeah one of my main goals was to keep this very easy to review (and also for me to write, since I don't have much experience writing and optimizing code like this). I'm sure we could squeeze out a lot more space/performance with more effort, but this is probably a good trade-off between code readability and space/performance imho.
@dpc regarding the cargo feature thing: sometimes features are used in this way, for example secp has a lowmemory feature that doesn't really add anything to the library but it makes it use a smaller precomputed table to save memory. Env variables would be a bit annoying to use in my opinion, first of all you would have to document them (where?), while with features one can simply look at the cargo.toml and find them. Also it would force downstream projects to either have custom scripts to compile, or write a build.rs file that sets these env variables automatically. And it would make it impossible to include two versions of the library with different features (although one might argue that in general nobody would really want to do that..).

I agree that it's a little weird to use a cargo feature, but also think it's the right choice, for the same reasons as the rust-secp lowmemory feature. That is, it has zero effect on functionality, and if some dep wants this on, it doesn't (really) make sense for any other dep to be able to turn it off.

@tcharding I suspect that constfns are just as fast, but the reason that they (can be) smaller is that macros are always inlined whereas constfns might not be. Inlining is faster because it avoids function call overhead.
Also +1 to custom formatting.

So I tried to read the dragon book a couple of times before and never made it past the first chapters. Anyone got an suggestions on books/sites to learn about compiler optimisations without making my eyes bleed?

With green CI I'm happy to ack this. Its basically just swapping macros for const functions, it did take me a while to work that out though :)

Do we want this in the upcoming hashes release?

I pushed a new version with all the feedback received so far: I didn't notice any performance regression by switching to const fns in the "fast hash" implementation. Even when compiling with z (size) optimization the numbers where still very close to what they were originally.
I also manually formatted the functions with many arguments, I tried to break them up into a few lines and I think they look pretty good now.
@tcharding  just a sidenote: I don't know much about compilers and optimizations either, the idea behind this PR was just to reuse common code as much as possible rather than expanding the full hash function, which ends up being huge. I think the implementation you have here is a pretty good tradeoff between speed and size: it could be made much faster by writing critical sections in assembly manually, or even using SIMD instructions on supported platforms. It could also be made much smaller by once again playing with assembly manually, but that's pretty complicated and this library isn't trying to be either a fast or super small hash functions library, so I think this is more than enough. This is all to say that somebody who really knows these stuff could definitely make big improvements, but they would all have a cost in terms of code readability/simplicity, so I'm not even sure it's worth for this lib.

Do we want this in the upcoming hashes release?

Yeah, let's do it.

Nice! I suspect round could also be a fn but since it can't be a constfn I am less confident that the compiler will inline it. Maybe we could add cfg_attr(feature = "small_hashes", inline(never)) on it (and a corresponding inline(always) in the other case)?
But in the interest of not making you do a ton of iterations on this, I'm happy to ACK this as is. But if you want to try this, that'd be great :).


Training voices with The Mangio-RVC-Fork stuck in INFO:torch.nn.parallel.distributed

I am encountering an issue while using the Mangio-RVC-Fork repository for training voices with AI. The training process gets stuck with the following error message:
INFO:torch.nn.parallel.distributed:Reducer buckets have been rebuilt in this iteration.
Anyone has an idea?

This is not an error.


Fix command stubs

Clean up the use section in the command stubs.
Current output gives this:
use App\Commands\Command;

use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldBeQueued;

This pr changes output to this:
use App\Commands\Command;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldBeQueued;

I think this was intended actually.

Oh ok - can I ask why?
I dont think there are gaps in the use statements anywhere else in the code is there?
And assuming we move to PSR-2 it needs to change to this way anyway I think?
Anyway - either way - leave it with you to pull or close.

Not sure if we're removing it. Totally up to Taylor.

Just checked with Taylor. It is intentional. :)


Casting from a function pointer to a delegate

Victor Porton (@vporton) reported this on 2020-08-03T14:50:55Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=21105
CC List

Dennis

Description
Please add the following features:

- explicit casting from a function pointer to the corresponding delegate (with the obvious semantics)
- implicit casting from a function pointer to the corresponding delegate
- `cast(delegate) ...` that would also do this cast.

The state would be set to null by such casts.

dkorpel commented on 2020-08-03T15:07:25Z
Are you aware of std.functional.toDelegate?
https://dlang.org/phobos/std_functional.html#toDelegate

Implicit casting to delegate probably needs a DIP or at least some good rationale.


scope3d~

delete size, width and height. Instead create a single new 'dim  ' message for setting width and height, as in [oscope~]
rename 'stroke' to 'width
remove 'reset' message
I don't get 'buffer', 'interval'... in [oscope~] we have 'nlines' and 'nsamples', so we should rename to it, but is it the same as 'buffer'/'interval'?
I don't get 'framerate'...
I don't get 'perspective'...

add 'range' message to set display range (could probably replace 'zoom')
the dimensions, whatever they are, should match the range, so you can stretch it like it is with [oscope~]

add a builtin receive message

i changed the things according to the first comment here: https://github.com/porres/pd-else/compare/master...ben-wes:pd-else:master
the way perspective functions is a bit arbitrary since the field of vision for perspective:1 is randomly chosen by me. but if you set it to 0, there's no perspective at all anymore ... so if you rotate the view then, it's an isometric view (parallel lines stay parallel).
framerate sets the actual frames per second that the scope will try to achieve (this controls the render interval in the tick method). its default is currently 50
i don't really understand the nsamples setting. to me, it's more logical to define the nth audio that should be sampled for display in the oscilloscope. that's what interval did. i see that nsamples minimum is 2 though - so i assume it means how many samples are covered by a line. i adapted this to scope3d~ now ... but not sure i understood correctly!

add 'range' message to set display range (could probably replace 'zoom')
the dimensions, whatever they are, should match the range, so you can stretch it like it is with [oscope~]

it's easy to implement - but a non-proportional scaling in 3d doesn't look very nice. it would actually be the default behavior which i avoided with these lines here:
https://github.com/ben-wes/pd-else/blob/d5a524a670268eec498d1f9853c181505ca5fd77/Code_source/Compiled/audio/scope3d~.pd_lua#L255

receive is implemented as well now (as message and flag).

why no PR? :)

trying it but getting errors

I can  just recreate the object and it works though

yeah... there's a fix in the state stuff that kills old objects. sorry.

ah ... i didn't really look at the error message yesterday anymore when on the phone. there was actually a bug for restored states with a custom framerate. will send a PR for that.

the way perspective functions is a bit arbitrary since the field of vision for perspective:1 is randomly chosen by me. but if you set it to 0, there's no perspective at all anymore ... so if you rotate the view then, it's an isometric view (parallel lines stay parallel).

still unclear to me...

it's easy to implement - but a non-proportional scaling in 3d doesn't look very nice.

can we try? otherwise there's no reason to offer different values for horizontal and vertical sizes. And at least [scope~] looks nice doing this.

framerate sets the actual frames per second that the scope will try to achieve (this controls the render interval in the tick method). its default is currently 50

so it is the refresh rate in hertz, huh?
So default is 50 frames per second? that'd be 20 ms for a frame rate, right?
What if the buffer has a period that's longer?
I think it makes better sense to set a refresh period in ms, as in [scope~], which is the 'delay' message, so we should also rename it to 'delay', right?
cheers

we need a minimum size

it's nice to set some default colors into the usual ELSE theme

receive symbols with dollar signs are not working, they need to be expanded by 'realizedollar'

it's nice to set some default colors into the usual ELSE theme

sure! which ones should we use?

ok, copying from https://github.com/porres/pd-else/blob/144861705efa9ad90fab7996b1ed37c96af1f6b8/Code_source/Compiled/audio/scope~.c#L976C5-L978C84

the way perspective functions [...]
still unclear to me...

it's a very simple "3d engine". each point gets projected on the canvas, i.e. rotated and then scaled according to a very simple formula: 6 / (6 + posZ * perspective). this is really quite arbitrary since this value of 6 could be different. with a perspective of 0, the z-position obviously becomes irrelevant.

can we try? otherwise there's no reason to offer different values for horizontal and vertical sizes. And at least [scope~] looks nice doing this.

sure. i mean ... with the drawing outside the object boundaries, the object size is not so relevant anyway. :)

so it is the refresh rate in hertz, huh?
So default is 50 frames per second? that'd be 20 ms for a frame rate, right?

exactly.

What if the buffer has a period that's longer?

doesn't matter in this case here since the object handles a ring buffer and will just draw what's available based on the last block that was read into this buffer.

I think it makes better sense to set a refresh period in ms, as in [scope~], which is the 'delay' message, so we should also rename it to 'delay', right?

ah, sure - we can do that as well!

we need a minimum size
there is - it's currently 1. :)

it's currently 1.

make it 20, that's what scope~ has

actually... delay in scope is "onset time delay between displays (default 0)"

so it does make sense and it doesn't make sense to call it 'delay' in scope3d~, I'm renaming to just 'rate'

alright... but if it's a rate, it should be in Hz, not ms? then we're just renaming the previous framerate?

or can you make it like a delay between displays?

yeah, seems I ruined things :) probably I don't mess with the code anymore :)

closed this accidentally, haha

but I should create a new reboot I guess

yeah, let's start over https://github.com/porres/pd-else/issues/2050


Update ex14_15.cpp

An error.

@jieniyimiao Thanks for contribution.
But, this is not a bug... I just use operator< to compare.

bool operator<(const Book &lhs, const Book &rhs)
{
   return lhs.no_ < rhs.no_;
}

bool operator>(const Book &lhs, const Book &rhs)
{
return rhs < lhs;
}

Best regards.


Bower install fails to install full packages

After upgrading from 1.6.9 to 1.7 I did bower cache clean then bower install. Modules were failing with syntax errors. After looking at the module that was failing I noticed the file just ended at the line of the error. After downgrading to 1.6.9 this quit happening

this is happening out of nowhere. closing for now to determine if its bower or my system.

Are the modules in question retrieved from zip archives? In that case: related — https://github.com/bower/bower/issues/2101 Any new info should go into that issue, thanks. :wink:


vs-code: add darwin arm support

vs-code: add darwin arm support
Done:

Add arm to supported platforms => https://github.com/DanielGavin/ols/pull/183/files#diff-16f6ad44a1c2080b7fffb341305a0968e2944905b1a8211044d331d2abf63ebdR263.
Formatting

Tested on Apple M1 Pro

Arm is already supported by the vscode extension, you just need manual set the ols binary path. If you want to support it with auto downloading the binary, you need to also figure out how to build the arm binary in the night CI.

Arm is already supported by the vscode extension, you just need to manually set the ols binary path. If you want to support it with auto downloading the binary, you need to also figure out how to build the arm binary in the CI.

By adding following changes, the error is gone, however we will still need to setup ols binary path.

That error should go away if you follow the message. I don't want that message to go away, I need to inform the user that they have not set the ols.server.path. When they have done that, it should give away, and if it's not, then that is an error.
The code you modified is directly related to the shipped binary logic, and that should not be touched until we have a shipped binaries for arm darwin.

@DanielGavin thanks for answer, I've closed the issue for now :)

@limaak Alright.
If you are feeling daring you could try to figure out how the build the arm binary to the nightly releases.
It seems like they have released a CI runner for m1/m2: https://github.blog/changelog/2022-08-09-github-actions-self-hosted-runners-now-support-apple-m1-hardware/
It might also be possible to cross compile with odin, but I haven't tried that. That would be much more optimal, since you could then just build all the binaries from one runner.


Popover appears at top left of the screen

I am using the popover component straight from the readme. But, it always appears at the top left of the document like so. I am not sure why that is the case. I have a wrapper over the component which has the following markup:
export const EventPopover = React.forwardRef(({ isPopoverOpen, setIsPopoverOpen, handleModifySchema }, ref) => {
  // const [isPopoverOpen, setIsPopoverOpen] = useState(true);

  console.log(ref);

  const renderBody = useCallback((contentProps) => {
    console.log(contentProps);
    return <PopoverBody>This is my popover</PopoverBody>;
  }, []);

  return (
    <Popover
      isOpen={isPopoverOpen}
      positions={['left']} // if you'd like, you can limit the positions
      padding={10} // adjust padding here!
      reposition={false} // prevents automatic readjustment of content position that keeps your popover content within its parent's bounds
      onClickOutside={() => setIsPopoverOpen(false)} // handle click events outside of the popover/target here!
      content={renderBody}
      // parentElement={ref}
    >
      <>This</>
    </Popover>
  );
});

One more thing, I noticed, unlike other popovers. There is no transform: translate property in the react-tiny-popover-container element.

@alexkatz Can you take a look at this?

@Vaasu-Dhand I had the same problem. What caused mine is that I have my own button component as the popover child.
<Popover
      ...
    >
      <MyButtonComponent />
</Popover>

Changing this to be wrapped in a div component fixed it:
<Popover
      ...
    >

        <MyButtonComponent />

</Popover>

Its an annoying work around and I haven't looked into the code so can't tell you why it is happening but maybe changing:
<>This</> to
This
 will unblock you 👍

@Vaasu-Dhand @wilkinsonjack1993 The child you supply react-tiny-popover with needs to support ref.
Check out React's ref forwarding docs.
In short, A div element supports ref, but a fragment won't, nor will a custom component that does not use forwardRef internally.


Update c++.cpp

need of writing endl should be mentioned as this would be helpful for beginners.

We don't need additional complexity.


Typo correction

If no matches are found, we should try again but check for Levenshtein distance of 1.

Should be configurable once we complete #4


Fix the GitHub defined terms for requests

Description
GitHub is using the term Pull Request for merge requests which makes no sense assuming that it implies to send a request to pull from something.
Proposing to use the term Merge Request

This request has been made in the past and to reiterate we would prefer not to as we have routes and whatnot that use “pulls” and it would be a breaking change to switch to merge.

Transferred in https://codeberg.org/Codeberg/Community/issues/273 then


Join POI to the contour of the building makes its icon as the point

Does it possible to leave POI icon as it is?

/cc @bhousel

☝ based on the claim on the forum http://forum.openstreetmap.org/viewtopic.php?pid=608812#p608812

iD's presets each have an expected geometry that they are supposed to match.  For POI presets like shops, the allowable geometry includes "point" (standalone node) and "area" (closed way), but not "vertex" (node along a way).  So that's why moving the shop onto the line means that it's no longer recognized as the shop preset nor shown with a shop icon.
Not sure if there is much that we should do here.  If we allow all the amenities, shops, etc to have vertex geometry, it means that these features will be suggested in a lot of places that they really don't belong - like along highways, railways, and so on.

It seems to me that the desired behavior is to move the tags from the node to the area, and discard the node, or else to move the node to the interior of the area, but never to create a vertex.
Quite often I've tried to draw building outlines using iD and I have found myself manually entering all of the existing tags from the node and then deleting it. I suspect that JOSM has some smarts here.
Another approach would be some command to expand a node into a small triangle or rectangle for ease of editing; again, disallow creating a vertex since that's not a proper approach.

TL;DR (translation from Russian) - https://github.com/openstreetmap/iD/issues/3425#issuecomment-247450871
Main disadvantage is in the fact that vertex don't allow to see icon of the POI. And then people just double it on a separate point inside of the building polygon. Does it possible to show it on closer zoom level?

And then people just double it on a separate point inside of the building polygon

A lot of people think that businesses and shops should be mapped as separate points inside building polygons  (and that points along building polygons should be entrance=* nodes).
Regardless of what people think.. We could split up vertex geometry type into 2 separate geometry types:  areaVertex and lineVertex, this way some features (like entrances) could appear on the perimeters of areas, and other features (like traffic signals) could appear only on linear ways.

desired behavior is to move the tags from the node to the area

@jleedev, we want to keep history first. There is no redirects in OSM, it is possible to damage history of edits. If we change API to support redirects then we could support only one way of doing it.
Wikidata prefers older ids during merges, same should be done in OSM (see osmwiki).

points along building polygons should be entrance=* nodes

@bhousel, sometimes there is no door for customers and some mappers (incl. myself) place shop= node where window is located.
kiosk is a typical example of building without door for customers.

For now I'm going to continue to encourage people to map this way:

buildings/structures as areas
businesses/tenants as points
entrances/addresses as vertices along the building/structure edge.

This is easier than trying to guess whether a POI can be used as vertex based on the tags of the dragged thing and the tags of the thing it got dragged onto.


Mission transfer in SITL not working

Lots of these messages:
Critical: WPM: REJ. CMD: Busy
Looks like there is a problem with the waypoint manager.
This problem does not exist on the physical hardware (e.g. Pixhawk).

SITL:
Unknown message from system: 1 message: 245
Unknown message from system: 1 message: 87
Unknown message from system: 1 message: 242
Unknown message from system: 1 message: 44
Unknown message from system: 1 message: 76
Unknown message from system: 1 message: 47
Unknown message from system: 1 message: 36
Pixhawk:
Unknown message from system: 1 message: 36
Unknown message from system: 1 message: 87
QGCMessageBox (unit testing) "Setup" "One or more vehicle components require setup prior to flight."
"BAT_V_EMPTY" QVariant(float, 3.5) 3
"BAT_V_CHARGED" QVariant(float, 4.2) 3
"COM_RC_LOSS_T" QVariant(float, 0.5) 3
"RTL_LAND_DELAY" QVariant(float, 10) 3
"RTL_DESCEND_ALT" QVariant(float, 25) 3
"RTL_RETURN_ALT" QVariant(float, 30) 3
Unknown message from system: 1 message: 76
Unknown message from system: 1 message: 44

Here we have printed a timestamp when a mission count message was received: (time ...)
INFO  ToneAlarm::start_note 11375
time: 10072897f
WARN  WPM: MISSION_COUNT 2 from ID 255, changing state to MAVLINK_WPM_STATE_GETLIST
WARN  WPM: Send MISSION_REQUEST seq 0 to ID 255
time: 10072946f
WARN  WPM: MISSION_COUNT 2 from ID 255 (again)
WARN  WPM: Send MISSION_REQUEST seq 0 to ID 255
WARN  WPM: MISSION_ITEM seq 0 received
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: MISSION_ITEM ERROR: seq 0 was not the expected 1
time: 10182850f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
time: 10182868f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
time: 10273734f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
time: 10273762f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
INFO  TONE_SET_ALARM 0
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
time: 10826026f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
time: 10826060f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
time: 11328112f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
time: 11328144f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
time: 11830264f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
time: 11830297f
WARN  WPM: MISSION_COUNT ERROR: busy, already receiving seq 1
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Send MISSION_REQUEST seq 1 to ID 255
WARN  WPM: Last operation (state=2) timed out, changing state to MAVLINK_WPM_STATE_IDLE

We'll need to log from the QGC side as well when this happens: --logging:MissionManager. Possible UDP implementation problem. Hard to say. Looks like QGC is timing out and retrying.

I just ran a hands free (joystick free essentially, that is still painful to me) on a fresh new PC, with latest px4 firmware and latest qgc, and iris did a complete mission. It was beautiful.

Though it is not perfect, I can't reproduce it.

Possible fixed on the QGC side, see https://github.com/mavlink/qgroundcontrol/pull/2161

Fixed, closing.


UI should allow complex objects to be added as seeds in JSON

Currently the UI only allows String seeds to be used. It should allow other types to be specified as json. E.g:
{"java.lang.Double": 1.0}
{"java.lang.Long": 10000000}
{"gaffer.complex.object": {"field1": "value1", "field2": "value2"}}
Ideally this could be overridden for specific applications and provide a nicer way for users to use custom seed types - this is really just a short term solution that will quickly allow for any object type.

Merged into develop.


Switch from Org.BouncyCastle.Crypto.Digests to System.Security.Crypto…

Problem
SHA256 implementation in System.Security.Cryptography is about X2 times faster thanOrg.BouncyCastle.Crypto.Digestscounterpart
Solution
Switch to  System.Security.Cryptography from Org.BouncyCastle.Crypto.Digests for SHA256 for better performance

Is there a use case where this becomes a visible problem?
Initially Solnet was using System.Security.Crypto but this isn't compatible on browser platforms (i.e. Blazor Wasm), so we changed into BouncyCastle for this single purpose.

I did not face any problem in real life cases but benchmarks are defiantly faster with System.Security.Crypto
I also checked Blazor Wasm with no problem.
here is the code I used and it performed well:
@page "/counter"
@using System.Security.Cryptography

<PageTitle>Counter</PageTitle>

Counter

Current count: @currentCount

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private string currentCount = "";

    private void IncrementCount()
    {
        var data = new byte[6]{0, 1, 2, 3, 4, 5};
        var SHA256CHECKSUM = SHA256.Create();
        currentCount = Convert.ToBase64String( SHA256CHECKSUM.ComputeHash(data.AsSpan(0,6).ToArray()));
    }
}

I use dotnet 6.0.101
on Chrome Version 97.0.4692.71 (Official Build) (64-bit)
with latest  PopOS

I double checked the docs, it seems the issue were the HMAC and key generation algorithms. Going to merge, thanks :)


Clue coordinates - Make the scroll icon flash on the world map

I feel like making the clue scroll icon flash on the world map would make it easier to spot. Plus it's a relatively simple QoL improvement.
I'm talking about these icons:

Edit: Just realized you can click on the edge of the map and it brings you over it. Still would be nice.

Instead of this or in addition to it, having the world map automatically take you to the clue location would be nice.(Possibly with a button added onto the clue scroll to open the map @ the clue location similar to osb)


Update the OpenStack Invoice Script to include VMs that are shut off

Motivation
The decision was made to bill on VMs that are shut off as they retain the resources and block others from using them.
Completion Criteria
Invoice Script returned VM time is no longer only for VMs that are on. VM time is calculated for all time a VM exists.
Description
Update the Invoice Script to include time that VMs are shut off in the calculation of hours to bill on.
Notes

For now, the price will be the same for VMs if they are on or shut off because they are reserving the resources and not letting other users use them.

Completion dates
Desired - 2023/11/22
Required - 2023/11/29

@joachimweyl Will the price be the same for both on and off VMs?

@knikolla for now, it will be the same price. If it is easy enough to code it might be worth having it be 2 separate variables in case.

Notes from discussion with Wayne and Orran:
OpenStack Charging change

Issue around it’s not just turning off VMs, will need to free up allocation to not be charged for A100.  May decide to be lenient on CPU, but not GPU.
Can we make changes to release it and not turn it on if GPU is not available?

Notes from discussion with Wayne and Orran:
OpenStack Charging change

Issue around it’s not just turning off VMs, will need to free up allocation to not be charged for A100.  May decide to be lenient on CPU, but not GPU.

Can we make changes to release it and not turn it on if GPU is not available?

So you're saying to not count shut off time for cpu su, but only for gpu su?

For now, we will count all shut-off time CPU and GPU. There may be a future time when we decide to "be Leinient" and not charge for shut-off time for CPUs.

We will not merge the change until 2023/12/01. That being said once we have both approvals needed for the merge we can close this issue.

@joachimweyl Instead of not merging this until Dec 1, I will extend the code in the PR to include a command line argument to toggle the behavior.

that works, or just set the variable that tracks shut-off VMs to 0. whichever you prefer.


Create a python daemon

For #7242, #8451

Codecov Report

Merging #8420 into master will decrease coverage by 0.8%.
The diff coverage is 20.45%.

@@            Coverage Diff             @@
##           master    #8420      +/-   ##
==========================================
- Coverage   59.46%   58.65%   -0.81%
==========================================
  Files         509      509
  Lines       23390    23057     -333
  Branches     3779     3781       +2
==========================================
- Hits        13909    13525     -384
- Misses       8575     8619      +44
- Partials      906      913       +7

Impacted Files
Coverage Δ

src/client/datascience/jupyter/jupyterCommand.ts
95.23% <ø> (ø)
:arrow_up:

src/client/common/process/types.ts
100% <ø> (ø)
:arrow_up:

...rc/client/datascience/jupyter/jupyterConnection.ts
71.69% <100%> (+1.5%)
:arrow_up:

...rc/client/common/process/pythonExecutionFactory.ts
51.38% <11.11%> (-40.28%)
:arrow_down:

src/client/datascience/jupyter/notebookStarter.ts
64.28% <50%> (-1.38%)
:arrow_down:

...client/datascience/jupyter/jupyterCommandFinder.ts
75.4% <50%> (+0.4%)
:arrow_up:

...nt/datascience/jupyter/invalidNotebookFileError.ts
0% <0%> (-75%)
:arrow_down:

.../client/datascience/jupyter/jupyterConnectError.ts
0% <0%> (-66.67%)
:arrow_down:

...science/jupyter/jupyterKernelPromiseFailedError.ts
0% <0%> (-50%)
:arrow_down:

...ent/datascience/jupyter/jupyterWaitForIdleError.ts
0% <0%> (-50%)
:arrow_down:

... and 44 more

Continue to review full report at Codecov.

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

Thanks for adding python-jsonrpc-server license details to toml.


US-3498 Adding test code for the isDisplayed feature

##Change list
Added tests for the isDisplayed feature.
Added tests to test the error handling in the findInputFieldAndSetGetTextTest.
Updated the sample app.
##Types of changes
Bugfix (non-breaking change which fixes an issue)
[ X] New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to not work as expected)
##Details
Only test code was added.

+1


Why don't bodies sometimes collide?

How can this be configured?
Video:
https://github.com/liabru/matter-js/assets/25684443/bd0a8523-d791-48f8-bcb6-d15992e43774

When I encounter this situation, the console will report an error


Adding index.js for Flow

I would like to add index.js to the repo as it allows me to run Flow without failing. Flow doesn't know anything about platform specific indexes and when loading the module with require it fails to load it as the index.js is missing.
Thank you for considering merge of this PR.

Thank you


Switch to sh to possibly fix run issue

That shouldn't be needed. Maybe you just haven't done a chmod +x on deploy.sh?


Add logos for expirements

Issue #827
Wasn't sure what "Track the icon" meant so added the icons to each expirement folder

Wrong issue it seems

Thanks for your contribution @eylonronen, Can you raise the same PR for Repo (https://github.com/litmuschaos/charthub.litmuschaos.io),  and follow the directory structure mention in the issue: https://github.com/litmuschaos/litmus/issues/879, You can close this PR after raising the another one

@eylonronen sorry we will will be able to take this icon as this icon has some copyright issues.

@aditya109  do we need this pull request?

Closing this pull request due to inactivity.


Add script for making data-init backward compatible

As a developer I want migration from v1 or v2 to v3 as easy as possible. This includes also that I get the script that makes data-init backward compatible either in the docs or as a script I can import.

@ctmm any news on this

I tested this on one of our internal projects and it's simple to migrate.
However, it seems there is a racing condition which is causing trouble. I haven't found the source yet.
I'd say it's 50% done.
I would feel safer if it's tested on needs on some other projects before I open a PR.
Any suggestion?


Miss-spelling

The word caller is miss-spelled ..
Why do we prefer to use streams instead of calls?
Streams let us know which particular leg of the call was poor - outgoing or incoming. When you're looking at call analytics for a poor call, determine whether the poor call was due to that caller's stream (outbound) or callee's stream (inbound). Determining which stream is impacting call quality is even more important for conferences. If you're only looking at call data, you'll see how many conferences a person participates in, but you won't see which people are active speakers, doing the most screen sharing.

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

ID: 2a04f5de-2679-37c7-7d00-607471ea516d
Version Independent ID: c96ec0af-910a-d9f8-9d3b-95564b39d7fa
Content: Use CQD to manage call and meeting quality in Microsoft Teams - Microsoft Teams
Content Source: Teams/quality-of-experience-review-guide.md
Service: msteams
GitHub Login: @SerdarSoysal
Microsoft Alias: serdars

Sorry miss-read the paragraph


After File.clearValue(), the getUrl method returns old url

after calling clearValue() method in a File/attachement object, the method getUrl stills return the old URL. An undefined value is expected instead.

In teem I do this to erase a file:
$scope.project.image = new swellRT.FileObject(undefined);

And it throws the following error:


KAFKA-5238: BrokerTopicMetrics can be recreated after topic is deleted

Do not recreate the BrokerTopicMetrics on creating the fetch response to a DelayedFetch request executed after a topic was deleted
Add a variant of MetricsTest.testBrokerTopicMetricsUnregisteredAfterDeletingTopic
where messages are consumed
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

This PR comes adapted to current trunk many many years after https://github.com/apache/kafka/pull/4204
thanks to @mimaison @ijuma @rajinisivaram who had reviewed it.
That was never merged, as there is still the possibility of a race between topic deletion and metric being recreated,
although within a very small timing window. But a consensus appeared to have been recahed that it was worth considering.
The rationale for coming back to this is heuristic, as this patch has been adopted and used for more than 5 years in my organisation, where before this we were able to detect metrics leaking in long lived clusters.

bump @mimaison @rajinisivaram @tombentley @ijuma

bump2 - @mimaison @rajinisivaram @tombentley @ijuma
I'd like this not to be closed by staleness


Docs demo 1

Coverage remained the same at 91.351% when pulling 8bf74c99f0a88c3c4a7f4925cdffdfffab5b5b43 on corinnebosley:docs_demo_1 into c018ac8e5f7707d225e0f63e19cd0cba2db9ecbd on SciTools:master.

reopens #50, which was closed in error

excellent, thanks @corinnebosley


eye_tracker: IndexError: list index (0) out of range.

I have encountered the following error when I tried to run python3 eye_tracker.py. Am I missing something?
2020-12-15 19:15:53.573760: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2020-12-15 19:15:53.573788: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
Traceback (most recent call last):
  File "eye_tracker.py", line 154, in <module>
    landmark_model = get_landmark_model()
  File "/home/abhayvashokan/Downloads/Proctoring-AI/face_landmarks.py", line 30, in get_landmark_model
    model = keras.models.load_model(saved_model)
  File "/home/abhayvashokan/Downloads/venv/lib/python3.8/site-packages/tensorflow/python/keras/saving/save.py", line 212, in load_model
    return saved_model_load.load(filepath, compile, options)
  File "/home/abhayvashokan/Downloads/venv/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/load.py", line 130, in load
    _read_legacy_metadata(object_graph_def, metadata)
  File "/home/abhayvashokan/Downloads/venv/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/load.py", line 179, in _read_legacy_metadata
    node_paths = _generate_object_paths(object_graph_def)
  File "/home/abhayvashokan/Downloads/venv/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/load.py", line 204, in _generate_object_paths
    for reference in object_graph_def.nodes[current_node].children:
IndexError: list index (0) out of range

This is the set of commands that I have executed after cloning the repo.
Executed the set of commands in the virtual environment.
pip install tensorflow
pip install opencv-python
pip install numpy==1.18.5

The version of tensorflow that is installed is 2.4.0 and that of opencv is <IP_ADDRESS>.
If it is not too much to ask, could you provide your output to pip freeze command? I am facing dependency version issues in other codes as well.

In this, you are most probably facing an error due to the landmark model. Please have a look in the face_landmarks.py in the get_landmark_model() and see if the file path to the landmark model is correct or not.
I did not add the requirements.txt because I had used an existing environment and just added all the new frameworks in that itself, unfortunately, the things you can expect from a novice college student. However, I had used TensorFlow 2.2 along with opencv>4 and numpy=1.18.5 itself. The dependency issues comes in if you try to run the face spoofing code as well, especially the scikit-learn version required for that. If you skip that then you won't face any issues with your current settings.

Try downgrading your Tensorflow version to 2.2, it worked for me...

@AbhayVAshokan let me know if it works for you.

Try downgrading your Tensorflow version to 2.2, it worked for me...

Thanks, this works perfectly. Closing #34. It's much easier in the end than I thought it would be. Thank you #44mkashif.
pip install opencv-python
pip install tensorflow==2.2

Found the same error.  Fixed it by modifying face_landmarks.py line 30

model = keras.models.load_model(saved_model)

#model = keras.models.load_model(saved_model)
model = tf.saved_model.load(saved_model)

@aspnair if you want you can create a pull request for this.

@vardanagarwal
Thank You.  That's fine.  It is just a single line, so feel free to fix it in any way.


Could I use the dsgan with my own image?

Due to the sec 4.1 in paper, I had a confusion.
If could, I want train the pairs('generated DF2K lr' and 'DF2K hr'), does it could get on?
Thanks.

I am not sure if I understand your question correctly, but yes you can use your own corrupted images for z.

My question is all in the picture above, notice the red word.
But i found the dsgan/data_loader.py, the meaning is below.

Yes, we used this configuration for training because the goal was to generate images with the same characteristics as the original input images. Instead of the "Cropped Noise image" you can also feed in any other dataset. However, this will require some small modifications with the data_loaders used. For example, you could use the DiscDataloader from dsgan/data_loader.py to serve the second dataset for the discriminator and set cropped=False in the TrainDataset. If you simply zip these two datasets together in the loop, then the rest should work fine. For evaluation puropses you could do the same thing for the valdiation dataset, but most of the measures there are not even using this second dataset, so it is not essential.

Great, thank you very much, I understand what you mean.


delete extra tesla device?

not sure if this is a HA issue or Tesla Custom integration issue but I have 2 tesla device entries and one has all the controls/sensors working fine, but another entry has nothing (no sensors, controls, etc).
how do i delete the other tesla entry?

I have the same problem.

It's probably a HA error as the Device registration code hasn't changed. Possibly it's caused by a HA migration. You can manually delete the Tesla devices from the device registry from .storage/core.device_registry and they'd get recreated by the component at the next restart.

Thank you for the hint! It works. Best regards  Peer Gesendet von Mail für Windows Von: Alan TseGesendet: Sonntag, 6. Februar 2022 22:43An: alandtse/teslaCc: peerkn; CommentBetreff: Re: [alandtse/tesla] delete extra tesla device? (Issue #141) It's probably a HA error as the Device registration code hasn't changed. Possibly it's caused by a HA migration. You can manually delete the Tesla devices from the device registry from .storage/core.device_registry and they'd get recreated by the component at the next restart.—Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you commented.Message ID<EMAIL_ADDRESS>


[RFC] Add jplephem based ephemeris.

See previous discussion in #7.

Building networkx on Windows seems to fail due to some missing example file (!) :-1:

Odd. The file is present, I don't know what is causing the error.

I found the issue: https://github.com/networkx/networkx/pull/1707
I think we're waiting on v1.10.1

Should we use the dev version of networkx for now? I am actually using just a single function but might need it in another place as well.

Current coverage is 94.99%

Merging #9 into master will decrease coverage by -5.01% as of d1538ca

@@            master      #9   diff @@
======================================
  Files           17      20     +3
  Stmts          463     599   +136
  Branches        28      39    +11
  Methods          0       0
======================================
+ Hit            463     569   +106
- Partial          0      11    +11
- Missed           0      19    +19

Review entire Coverage Diff as of d1538ca

Powered by Codecov. Updated on successful CI builds.

networkx issue is gone now

Ready to merge, then?

:+1:


Passing Bearer token when connecting to remote workspace

I am trying to setup a self hosted ML monitoring with Evidently.
I have Evidently running inside a container on a remote host. The host requires an Authorization header with a Bearer token.
According to the documentation, passing a secret is possible via:
However, it looks like Evidently passes the secret value as evidently-secret header instead of an Authorization header. (see here  and here)
Would it be possible to allow users to specify the name of the header the secret should be attached to?

Hi
We are using "evidently-secret" header in order to protect write api. You should never use this functionality for authorization.
But, of course, you can have your own proxy authorization layer just before running "evidently ui" (i think modifying evidently source code is bad idea for your purposes). This layer just check token, if ok - proxy request to running "evidently ui" server
Is it helpful for you?

Thanks for the reply @DimaAmega, perhaps the Documentation on this could be clarified a little bit. Right now it simply states:

It is a bit ambiguous and I initially assumed this was basically the auth token required to access the remote server. MLFlow has done something similar (see https://mlflow.org/docs/latest/auth/index.html#using-environment-variables).
I understand this is unfortunately not possible with Evidently. We can work around it and secure the service in a different way, but more clarity in the documentation would be appreciated.

Hello, we are facing similiar issues for our evidently services running on the google cloud. While we have patched our own version of evidently to handle the authorization, I think this could benefit multiple people that wanna self host evidently on GCP or other platforms.
I have created a pull request with the changes to realize this.


Add OpenSearch Module

As there is an Elasticsearch module already, this PR adds OpenSearch as an alternative.
This would enable other projects that want to test against OpenSearch containers.

Thanks for the contribution @sharp-pixel. However, in the context of #4782, we decided to for now develop OpenSearch as an external community module: https://github.com/opensearch-project/OpenSearch/issues/2603
Therefore, I'd suggest to collaborate with the 3rd party repository for now 🙂