Install modifies local nuget packages

Given something like this in paket.dependencies
source imports/nuget
nuget MyPackage

When running paket install the MyPackage.nupkg file under imports/nuget is modified, as reported by my SCM tool. Calculating the MD5 checksum also gives different results before and after.
Using Paket 1.33.0 under Win 8.1/.NET 4.5.2.

yes it's fixing date convetions in the zip order to make unzip work in mono. we need to work around mono bugs here.

Ok.

Mhm I think I agree, but the issue is we need to extract the meta data. So
we could (maybe should) copy the file to a temp folder and modify it over
there.
At the moment I'm really busy with other stuff, but I think this would make
a great up-for-grabs issue.
On Aug 25, 2015 15:35, "rjnilsson"<EMAIL_ADDRESS>wrote:

Reopened #1013.
—
Reply to this email directly or view it on GitHub.

What about detecting the platform at runtime and only fixup when running under mono, just as a workaround for the time being?

Yes that would make even easier fix for you ;-)
On Aug 25, 2015 3:45 PM, "rjnilsson"<EMAIL_ADDRESS>wrote:

What about detecting the platform at runtime and only fixup when running
under mono, just as a workaround for the time being?
—
Reply to this email directly or view it on GitHub
https://github.com/fsprojects/Paket/issues/1013#issuecomment-134590847.

I'll check it out. If only it'd been C# instead... ;)

If it would be C# it wouldn't be in the state that it is today. Believe me

I wasn't complaining about the language itself. Good or bad code can be
written in any language.
I was simply referring to my zero experience with F#, or rather, my decent
experience with C#.
Anyway, I'll take a look.
Den 25 aug 2015 15:52 skrev "Steffen Forkmann"<EMAIL_ADDRESS>
If it would be C# it wouldn't be in the state that it is today. Believe me
—
Reply to this email directly or view it on GitHub
https://github.com/fsprojects/Paket/issues/1013#issuecomment-134592781.

The code in question is at https://github.com/fsprojects/Paket/blob/master/src/Paket.Core/NuGetV2.fs#L324
you could port the isMono  function from https://github.com/fsharp/FAKE/blob/master/src/app/FakeLib/EnvironmentHelper.fs#L124 into Paket's Util.fs
I think that's pretty straight forward. If you have question, then just ask.

I'll give it a shot. Thanks for the pointers.

Trying to build the project now, but when using build.cmd (default target) from the command-line I get the following error:
Running build failed.
Error:
Fake.UnitTestCommon+FailedTestsException: NUnit test failed. Process finished with exit code FatalError (-2146232576).
at Fake.NUnitSequential.NUnit(FSharpFunc`2 setParams, IEnumerable`1 assemblies) in C:\code\fake\src\app\FakeLib\UnitTest\NUnit\Sequential.fs:line 45
at FSI_0001.Build.clo@156-10.Invoke(Unit _arg6)
at Fake.TargetHelper.runSingleTarget(TargetTemplate`1 target) in C:\code\fake\src\app\FakeLib\TargetHelper.fs:line 481

Windows also shows a dialog with the message "An app on your PC requires the following Windows feature ... .NET Framework 3.5 (includes .NET 2.0 and 3.0)".
Do I actually need to install .NET 3.5, or can I manage without (preferably)? I'm running VS2012 Pro and have .NET 4.5.2 installed.

yes somehow MS managed to make 4.5.2 without including 3.5

If I'm being unclear: Is there a way to build Paket with only .NET 4 or better installed? Where are the dependencies on .NET 3.5?

TBH I have no idea. These framework versions and NUnits dependency on it are a mystery to me.
Anyways, it seems everything is building and "only" the NUnit testrunner is not running for you.
When you create a WIP pull request you can see if everything still works on our CI servers.

Would it be ok to replace NUnit.Runners with NUnit.Runners.Net4 to allow running tests when only .NET4 or later is available, or do you need to build Paket under previous .NET versions?
I've got ".\build RunTests" running happily with that change made locally, so I could push it and make a pull request.

I think that change would be accepted ;-)

So I've implemented a simple workaround that avoids the problem for .NET only. What would be a more general solution waiting for the Mono bug to get fixed?

I guess we could copy the file to the temp-folder and modify there.

I just tried to build paket with a freshly installed mono mdk preview for os x el capitan and it failed with:
Running build failed.
Error:
Fake.UnitTestCommon+FailedTestsException: NUnit test failed (4).
at Fake.NUnitSequential.NUnit (Microsoft.FSharp.Core.FSharpFunc2 setParams, IEnumerable1 assemblies) <0x88a6c00 + 0x00337> in :0
at<EMAIL_ADDRESS>(Microsoft.FSharp.Core.Unit _arg6) <0x88a6b98 + 0x00057> in :0
at<EMAIL_ADDRESS>(Microsoft.FSharp.Core.Unit unitVar0) <0x889b6b8 + 0x00020> in :0
at Fake.TargetHelper.runSingleTarget (Fake.TargetTemplate`1 target) <0x8892eb0 + 0x000bd> in :0
Is there a workaround? I guess I cannot install an older version of mono as it puts things in /usr/bin which is not allowed as of el capitan?

Which tests failed?

Tests run: 684, Errors: 0, Failures: 4, Inconclusive: 0, Time: 0.0760673 seconds
Not run: 1, Invalid: 0, Ignored: 0, Skipped: 1
Errors and Failures:

Test Failure : Paket.BindingRedirects.correctly creates a binding redirect
Expected: "

"
Actual: "

"
Expected string length 241 but was 238. Strings differ at index 60.
Expected: "...schemas-microsoft-com:asm.v1">\r\n  <assemblyIdentity name="..."
But was:  "...schemas-microsoft-com:asm.v1">\n  <assemblyIdentity name="A..."
---------------------------------------------^

at FsUnit.Extensions.shouldEqual[a] (FsUnit.a x, FsUnit.a y) <0x378c178 + 0x000ef> in :0
at Paket.BindingRedirects.correctly creates a binding redirect () <0x3c15a48 + 0x00143> in :0

Test Failure : Paket.BindingRedirects.correctly creates a binding redirect with default culture
Expected: "

"
Actual: "

"
Expected string length 247 but was 244. Strings differ at index 60.
Expected: "...schemas-microsoft-com:asm.v1">\r\n  <assemblyIdentity name="..."
But was:  "...schemas-microsoft-com:asm.v1">\n  <assemblyIdentity name="A..."
---------------------------------------------^

at FsUnit.Extensions.shouldEqual[a] (FsUnit.a x, FsUnit.a y) <0x378c178 + 0x000ef> in :0
at Paket.BindingRedirects.correctly creates a binding redirect with default culture () <0x3c20158 + 0x0009f> in :0

Test Failure : Paket.BindingRedirects.correctly updates an existing binding redirect
Expected: "

"
Actual: "

"
Expected string length 247 but was 244. Strings differ at index 60.
Expected: "...schemas-microsoft-com:asm.v1">\r\n  <assemblyIdentity name="..."
But was:  "...schemas-microsoft-com:asm.v1">\n  <assemblyIdentity name="A..."
---------------------------------------------^

at FsUnit.Extensions.shouldEqual[a] (FsUnit.a x, FsUnit.a y) <0x378c178 + 0x000ef> in :0
at Paket.BindingRedirects.correctly updates an existing binding redirect () <0x3c20200 + 0x0011f> in :0

Test Failure : Paket.BindingRedirects.redirects got properly indented for readability
Expected: "

"
Actual: "

"
Expected string length 253 but was 250. Strings differ at index 60.
Expected: "...schemas-microsoft-com:asm.v1">\r\n    <assemblyIdentity name..."
But was:  "...schemas-microsoft-com:asm.v1">\n    <assemblyIdentity name=..."
---------------------------------------------^

at FsUnit.Extensions.shouldEqual[a] (FsUnit.a x, FsUnit.a y) <0x378c178 + 0x000ef> in :0
at Paket.BindingRedirects.redirects got properly indented for readability () <0x3c22ad8 + 0x0008b> in :0
Tests Not Run:

Skipped : Paket.UtilsSpecs.mono runtime not reported on net platform
Only supported on Net

Tests run: 684, Errors: 0, Failures: 4, Inconclusive: 0, Time: 0.0760673 seconds
Not run: 1, Invalid: 0, Ignored: 0, Skipped: 1
Errors and Failures:

Test Failure : Paket.BindingRedirects.correctly creates a binding redirect
Expected: "

"
Actual: "

"
Expected string length 241 but was 238. Strings differ at index 60.
Expected: "...schemas-microsoft-com:asm.v1">\r\n  <assemblyIdentity name="..."
But was:  "...schemas-microsoft-com:asm.v1">\n  <assemblyIdentity name="A..."
---------------------------------------------^

at FsUnit.Extensions.shouldEqual[a] (FsUnit.a x, FsUnit.a y) <0x378c178 + 0x000ef> in :0
at Paket.BindingRedirects.correctly creates a binding redirect () <0x3c15a48 + 0x00143> in :0

Test Failure : Paket.BindingRedirects.correctly creates a binding redirect with default culture
Expected: "

"
Actual: "

"
Expected string length 247 but was 244. Strings differ at index 60.
Expected: "...schemas-microsoft-com:asm.v1">\r\n  <assemblyIdentity name="..."
But was:  "...schemas-microsoft-com:asm.v1">\n  <assemblyIdentity name="A..."
---------------------------------------------^

at FsUnit.Extensions.shouldEqual[a] (FsUnit.a x, FsUnit.a y) <0x378c178 + 0x000ef> in :0
at Paket.BindingRedirects.correctly creates a binding redirect with default culture () <0x3c20158 + 0x0009f> in :0

Test Failure : Paket.BindingRedirects.correctly updates an existing binding redirect
Expected: "

"
Actual: "

"
Expected string length 247 but was 244. Strings differ at index 60.
Expected: "...schemas-microsoft-com:asm.v1">\r\n  <assemblyIdentity name="..."
But was:  "...schemas-microsoft-com:asm.v1">\n  <assemblyIdentity name="A..."
---------------------------------------------^

at FsUnit.Extensions.shouldEqual[a] (FsUnit.a x, FsUnit.a y) <0x378c178 + 0x000ef> in :0
at Paket.BindingRedirects.correctly updates an existing binding redirect () <0x3c20200 + 0x0011f> in :0

Test Failure : Paket.BindingRedirects.redirects got properly indented for readability
Expected: "

"
Actual: "

"
Expected string length 253 but was 250. Strings differ at index 60.
Expected: "...schemas-microsoft-com:asm.v1">\r\n    <assemblyIdentity name..."
But was:  "...schemas-microsoft-com:asm.v1">\n    <assemblyIdentity name=..."
---------------------------------------------^

at FsUnit.Extensions.shouldEqual[a] (FsUnit.a x, FsUnit.a y) <0x378c178 + 0x000ef> in :0
at Paket.BindingRedirects.redirects got properly indented for readability () <0x3c22ad8 + 0x0008b> in :0
Tests Not Run:

Skipped : Paket.UtilsSpecs.mono runtime not reported on net platform
Only supported on Net

Here's the relevant bit from the build log about the 4 tests that failed:
log.txt

/cc  @mrinaldi @isaacabraham

Looks like on mono newlines are just \r instead of \r\n - I wonder if Environment.NewLine would fix this?

But why didn't we see that in Travis builds?
On Nov 17, 2015 2:15 PM, "Isaac Abraham"<EMAIL_ADDRESS>wrote:

Looks like on mono newlines are just \r instead of \r\n - I wonder if
Environment.NewLine would fix this?
—
Reply to this email directly or view it on GitHub
https://github.com/fsprojects/Paket/issues/1013#issuecomment-157368088.

Then is this something that is Mac only? Or breaking change in latest mono? Can't be surely.

Is this really relevant to #1013? Perhaps raise another issue?

nope it's not

I think I fixed these tests. there were also red on travis


iOS: full screen article view -- unable to navigate

I've enabled full screen view for article and.. unable to figure out how to get to the next/previous article:

swipe right/left doesn't work;
press on right/left edge -- doesn't work;
swipe up/down doesn't work either.

I would say having navigation icons in top right corner isn't very friendly either when used without full screen article view. some kind of swipe/press on screen should help

In full screen you can get a context menu that has navigation buttons by long pressing anywhere there isn’t a link in the article. We are investigating adding navigation gestures. We are trying to figure out what best matches the current design.

long pressing anywhere there isn’t a link in the article

this is too long, imho. plus animation feels too annoying after the first couple times.
I understand that gestures somewhat hard -- you already use swipe from left edge for going back to previous screen.  But something is needed. I love full screen, but navigation issues kills it.

How about a keyboard command to toggle full screen on/off as well. Using this on 12.9” iPad Pro in split with a writing app and the reading column by default is crazy small but it’s okay for skimming the feeds to see what I actually want to read. Then being able to jump into full screen on the article of choice would make the whole process easier.

I’d like a gesture for toggling full screen preview on/off. Pinch out is what I tried first, double tap also seems logical. I’m on a larger iPad, reaching to the top is not pleasant. I seem to want to toggle this view frequently, for what it’s worth.

We've implemented left and right swiping to navigate articles.  We are still testing this feature, but it will be available in a future release.  (It won't be available in the upcoming release)

@curtismchale and @paulpalinkas, please open separate feature requests for the things you want to see.  This ticket has been resolved and isn't related to the features mentioned above.  Thanks for your help!


Title Attribute not transferred to div.toggle

Would be really useful if the checkbox's title attribute could be copied /moved to the div that contains the toggle elements.

Hi @Rockburner ,
This feature is planned for the next version of boostrap5-toggle. If you use bootstrap 5 you can take a look!
😊

Hi @Rockburner,
This feature is supported in the prerelease 5.0.0-alpha 🥳
You can see it docs: https://palcarazm.github.io/bootstrap5-toggle/#custom-title


[FLINK-22245][sql-client] Reuse PrintUtils.MAX_COLUMN_WIDTH in CliCha…

After fix, it looks like

Could we add a test in select.q? I think this is very easy by adding a timestamp(9) type and print tableau result in streaming mode.


Update Commands.lua

Added :joinserver to join a server using jobid.

wish I noticed this before pushing the new update lmao

yes

There's something wrong in his code:
assert(args[1].."Argument missing or nil")

Will fix during merge


Use next_node blocks in calculate-state-pension

We've agreed to consistently use next_node {} to define our next node rules. Having a single way of defining the rules will hopefully make Smart Answers easier to develop and maintain.
This will ultimately allow us to remove the predicate code (define_predicate, on_condition, next_node_if etc).

There are quite a few places where you've replaced define_predicate blocks with next_node_calculation blocks where the code inside the block is calling one (or a combination of) "predicate" method(s) on the calculator. Did you consider inlining the calls to these methods into the next_node block? I guess my slight concern is that if we don't get round to doing that, then people might wonder why the code is how it's been left after this PR. But I don't feel strongly about it.

LGTM :+1:

Did you consider inlining the calls to these methods into the next_node block?

I did but decided it was outside of the scope of the changes in this PR. I wanted to get rid of the use of next_node_if before going on to make any further improvements.

I've rebased on master and force pushed ready to merge.


./mesh_to_pc.py ../data/ModelNet40 ../data/ModelNet40_pc_64 --vg_size 64 gives error

I've downloaded the ModelNet40 and extracted it on ../data/ModelNet40.
After executing ./mesh_to_pc.py ../data/ModelNet40 ../data/ModelNet40_pc_64 --vg_size 64  , I got the error:
File "/opt/conda/Anaconda3/lib/python3.7/multiprocessing/pool.py", line 121, in worker
    result = (True, func(*args, **kwds))
  File "./mesh_to_pc.py", line 39, in process
    pc = pc_mesh.get_sample("mesh_random", n=args.n_samples, as_PyntCloud=True)
  File "/opt/conda/Anaconda3/lib/python3.7/site-packages/pyntcloud-0.1.2-py3.7.egg/pyntcloud/core_class.py", line 534, in get_sample
    sample = sampler.compute()
  File "/opt/conda/Anaconda3/lib/python3.7/site-packages/pyntcloud-0.1.2-py3.7.egg/pyntcloud/samplers/mesh.py", line 67, in compute
    np.arange(len(areas)), size=self.n, p=probabilities)
  File "mtrand.pyx", line 793, in numpy.random.mtrand.RandomState.choice
ValueError: probabilities contain NaN```

The full error message:

./mesh_to_pc.py ../data/ModelNet40 ../data/ModelNet40_pc_64 --vg_size 64
2019-10-25 08:46:30.595 INFO mesh_to_pc - : Found 12311 models in ../data/ModelNet40
0%|                                                                                | 0/12311 [00:00<?, ?it/s]/opt/conda/Anaconda3/lib/python3.7/site-packages/numpy/linalg/linalg.py:2512: RuntimeWarning: overflow encountered in multiply
s = (x.conj() * x).real
/opt/conda/Anaconda3/lib/python3.7/site-packages/pyntcloud-0.1.2-py3.7.egg/pyntcloud/samplers/mesh.py:65: RuntimeWarning: invalid value encountered in true_divide
probabilities = areas / np.sum(areas)
0%|▎                                                                                | 28/12311 [00:06<2:47:19,  1.22it/s]multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/opt/conda/Anaconda3/lib/python3.7/multiprocessing/pool.py", line 121, in worker
result = (True, func(*args, **kwds))
File "./mesh_to_pc.py", line 39, in process
pc = pc_mesh.get_sample("mesh_random", n=args.n_samples, as_PyntCloud=True)
File "/opt/conda/Anaconda3/lib/python3.7/site-packages/pyntcloud-0.1.2-py3.7.egg/pyntcloud/core_class.py", line 534, in get_sample
sample = sampler.compute()
File "/opt/conda/Anaconda3/lib/python3.7/site-packages/pyntcloud-0.1.2-py3.7.egg/pyntcloud/samplers/mesh.py", line 67, in compute
np.arange(len(areas)), size=self.n, p=probabilities)
File "mtrand.pyx", line 793, in numpy.random.mtrand.RandomState.choice
ValueError: probabilities contain NaN
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "./mesh_to_pc.py", line 86, in
list(tqdm(p.imap(process_f, files), total=files_len))
File "/opt/conda/Anaconda3/lib/python3.7/site-packages/tqdm/std.py", line 1081, in iter
for obj in iterable:
File "/opt/conda/Anaconda3/lib/python3.7/multiprocessing/pool.py", line 748, in next
raise value
ValueError: probabilities contain NaN
0%|▎                                                                                | 28/12311 [00:06<48:44,  4.20it/s]

Hi Pedro,
It seems that there is an overflow when computing areas to obtain the sampling probabilities.
To help you with your issue, can you give me more information about your configuration (OS, package versions) and where you downloaded the dataset.
It would also help if you can rerun the script with the parallel processing disabled (by removing the call to pool.imap). That way, you will be able to run the script with pdb and pinpoint the exact point cloud causing the issue.

cone/train/cone_0117.off
curtain/train/curtain_0066.off
These two meshes causing this issue.
The value of the vertice is too large, causing the overflow during sampling.

This is suprising as I did not have this issue in my environment.
One possible cause could be the version of numpy.
Could you provide the output of the following ?
import numpy as np
a = np.zeros((2,2))
print(a.dtype)

It should output float64 on recent numpy versions.
A possible solution would be to patch the pyntcloud sampler to avoid this overflow issue.
Replace
probabilities = areas / np.sum(areas)

by
max_area = np.max(areas)
areas = areas / max_area
probabilities = areas / np.sum(areas)

(areas / max_area) / np.sum(areas / max_area) should avoid the overflow issue and be equal to areas / np.sum(areas).

The output is float64 as expected.
The replacement didn't work, maybe the problem is in numpy.linalg.
BTW, what's your numpy version?
I have experience with and without this problem.
But I don't really remember what version of numpy I have used.

I am using numpy 1.17.4 and I have reproduced the issue.
I issued a fix in commit e0862279ae0bf5fce9190403f9419a7e3b58910a.
Essentially, you can add the following lines right after pc_mesh = PyntCloud.from_file(ori_path) to fix the overflow issue:
    mesh = pc_mesh.mesh
    pc_mesh.points = pc_mesh.points.astype('float64', copy=False)
    pc_mesh.mesh = mesh

This enforces the use of float64 in PyntCloud to avoid overflow.
We first backup the mesh and re-set it later as the points setter removes the mesh.

Hi @pedrogarciafreitas,
Have you tried the patched version of the repository ?

I am using numpy 1.17.4 and I have reproduced the issue.
I issued a fix in commit e086227.
Essentially, you can add the following lines right after pc_mesh = PyntCloud.from_file(ori_path) to fix the overflow issue:
    mesh = pc_mesh.mesh
    pc_mesh.points = pc_mesh.points.astype('float64', copy=False)
    pc_mesh.mesh = mesh

This enforces the use of float64 in PyntCloud to avoid overflow.
We first backup the mesh and re-set it later as the points setter removes the mesh.

This works.
Thanks for your reply.

Thanks for letting me know!


Rename shark-turbine -> iree.turbine

Move files from files from shark-turbine to iree/turbine.
Update imports
Update setup.py
Make backward redirect shark-turbine -> iree.turbine (do we need this?)

Progress on #28

Hi @Hardcode84
Will you modify the name and path in SHARK-ModelDev?


local function adds layout pass

It seems each use of local causes the compiler to do another pass to construct the layout of the document. Having too many calls to local in a document gives the warning layout did not converge within 5 attempts.

Yes, this cannot be fixed until we have custom components :(
I know this sucks. I added local to try and make things easier, just using codly(...) before and after the codeblock yourself might be easier

Actually, there is a way around it, but it won't be super nice, local will take the raw block as a value:
local(..., ```rs
pub fn hello(name: &str) {
    println!("Hello, {name}!");
}
```)

Actually I found an even nicer way of doing it that doesn't abuse states (as much) :tada:

Fixed in 0608632

You can even nest them in the soon-to-be commit

If you can test in your use case if it doesn't cause any issues (by manually importing codly.typ, args.json, and args.typ) in your project that would be super useful

Thanks for this fix! I can confirm that with the library from master, this seems to no longer be an issue. I tested it out with 20 local blocks, which produced no warning, whereas the compiler would warn me after only 5 before. Looking forward to your next release! :rocket:


Enum error with React Hook Form

export enum EnumPriority {
  Low = 'Low',
  Medium = 'Medium',
  High = 'High',
  WithoutPriority = 'Without priority'
}

export const CardSchema = v.object({
  ...TitleSchema.entries,
  description: v.string([
    v.toTrimmed(),
    v.minLength(3, 'Please enter at least 3 characters.')
  ]),
  priority: v.enum_(EnumPriority),
  deadline: v.date()
})

useAppForm<CardSchema>(CardSchema, {
      defaultValues: { priority: 'Without priority', deadline: new Date() }
    })

Type '"Without priority"' is not assignable to type 'EnumPriority | undefined'

What version are you using? It works in v0.30.0 as well as with our new RC. See this playground.
import * as v from "valibot";

// With `enum_`

enum EnumPriority {
  Low = "Low",
  Medium = "Medium",
  High = "High",
  WithoutPriority = "Without priority",
}

const CardSchema1 = v.object({
  priority: v.enum_(EnumPriority),
});

type CardSchema1 = v.Input<typeof CardSchema1>;

const cardObject1: CardSchema1 = {
  priority: EnumPriority.WithoutPriority,
};

// With `picklist`

const CardSchema2 = v.object({
  priority: v.picklist(["Low", "Medium", "High", "Without priority"]),
});

type CardSchema2 = v.Input<typeof CardSchema2>;

const cardObject2: CardSchema2 = {
  priority: "Without priority",
};

I do not recommend using Object.values(Enum) because it may also return the keys of the enum. In enum_ we use the following code to extract the values:
const options = Object.entries(enum__)
    .filter(([key]) => isNaN(+key))
    .map(([, value]) => value) as (keyof TEnum)[];

Do you have any other questions or problems that I can help you with?

I do not recommend using Object.values(Enum) because it may also return the keys of the enum. In enum_ we use the following code to extract the values:
const options = Object.entries(enum__)
    .filter(([key]) => isNaN(+key))
    .map(([, value]) => value) as (keyof TEnum)[];

Do you have any other questions or problems that I can help you with?

So it wont work with Object.values() ? and it first example i'm also not able to get ts intellisense without actually using enum?

I think it should be possible to pass Enum priority and get full type safety in actual component without importing enum again and again

even though, i dont get type safe when passing with constant
 priority: v.picklist(['Low', 'Medium', 'High', 'Without priority']),

priority: v.picklist(priorities),

So, quick recap, it works with
priority: v.enum_(EnumPriority), but i should import enum everywhere when i want to write a priority, in my opinion it should also work without it, but  priority: v.picklist(priorities), also doesnt work because it is a constant , it works only when u hard code all values into v.picklist() like this:  priority: v.picklist(['a', 'b']), and only in this case there is a type safe, what should i do to achieve the best approach?

even though, i dont get type safe when passing with constant

Have you tried this? It works in our playground.
import * as v from "valibot";

const priority = ["Low", "Medium", "High", "Without priority"] as const;

const CardSchema = v.object({
  priority: v.picklist(priority),
});

even though, i dont get type safe when passing with constant

Have you tried this? It works in our playground.
import * as v from "valibot";

const priority = ["Low", "Medium", "High", "Without priority"] as const;

const CardSchema = v.object({
  priority: v.picklist(priority),
});

yes, it works, but I use priority array also for mapping, so i cannot use as const 🥲

Can you give an example? Something like this works for me.

Can you give an example? Something like this works for me.

Thanks a lot! Finally works


:recycle: feat(bundler): Combine internal packages into bundler package

Description
Concise description of proposed changes
Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #112   👈

This comment was auto-generated by Graphite.


Remove unreachable code

Not sure what exactly changed (Rust version?, dependency version?) since I haven't seen this when working on this codebase earlier.

This only works on aarch64, on x86_64 the YES and NO constants are different.

This only works on aarch64, on x86_64 the YES and NO constants are different.

Oh I see. Thank you for the insight.
I'm trying to think of other workarounds to remove the linter noise.

One possible workaround is of course something like the following:
match msg_send![self, isFramebufferOnly] {
    YES => true,
    NO => false,
    #[cfg(not(target_arch = "aarch64"))]
    _ => unreachable!(),
}

One possible workaround is of course something like the following:
match msg_send![self, isFramebufferOnly] {
    YES => true,
    NO => false,
    #[cfg(not(target_arch = "aarch64"))]
    _ => unreachable!(),
}

Proposed that in #273.

Thank you @fornwall


Allow FromSql on IQueryable

EF Core 3.0 made a change to remove FromSql on IQueryable<T> and replace it with FromSql* methods on DbSet<T> itself, so it's no longer composable. Why is this no longer supported?
My use case was:
I was overriding ASP.NET Core's UserStore like this:
public override IQueryable<ApplicationUser> Users => base.Users.Include(u => u.UserProfiles);

to make sure that the UserProfiles collection of ApplicationUser is always included, because we are using it everywhere we're using ApplicationUser itself.
In a controller, we implemented search manually using SQL because EF Core did a poor job translating the LINQ we attempted to write:
var users = searchText is null
    ? _userManager.Users
    : _userManager.Users.FromSql($"...");

Now with EF Core 3.0, I can't use the UserManager abstraction anymore and i'm forced to drill down to the DbContext to get the DbSet itself and copy the Include here. This seems like a regression 😕

@smitpatel This seems to work correctly in 2.2. That is, an IQueryable that is not a DbSet can have FromSql used on it and the results we get back still honor the Include. If FromSql was allowed on IQueryable, would this work with the 3.0 query pipeline?

If FromSql was allowed on IQueryable, would this work with the 3.0 query pipeline?

Yes, it will work. I believe, when adding the restriction on DbSet, we explicitly decided that user would have to specify FromSql before Include. Are we changing it?

@smitpatel No decision to change it yet; we will discuss.

Discussed in triage and given that FromSql always replaces the query root, even if it is not called at the root, we think that it makes sense to keep enforcing that it only be applied to the root. This can break certain ways of writing repositories (or similar) that are valid, like here, but these can generally be refactored to inject the root rather than expose the root as a simple property.

@ajcvickers Then should it also be disallowed to use FromSql on a DbSet that it mapped to a query using ToQuery() for consistency? That seems like it would have the same effect as using FromSql on an IQueryable created using LINQ.

@Neme12 This is an interesting point, probably related to #18903 and #17270 which I referenced in another response to you.
Reopening to discuss in triage.

That is a bug which would go away when fixing #18903

Discussed in triage and, as Smit says, we will handle this as part of #18903.


Add use of kinit command prior to triggerring Oozie job

Add use of kinit command prior to triggering Oozie job to solve occasional Kerboros authentication error. The kinit command will create/refresh the Kerboros authentication key.

Note: The password must have all special characters preceded with a \. Using ''"${PASSWORD}"'' or ${PASSWORD@Q} did not work whilst SSH'd into the server, so the awk solution was used instead.

Yes - it didn't work locally or on the server over SSH. The awk solution is a little less readable but works as intended.


chore: stop using deprecated tendermint spm

These changes are required for bumping to cosmos-sdk v0.47, closing the PR now as we don't want to include the changes yet.
track progress here: https://github.com/nolus-protocol/nolus-core/issues/88


[DOCS] add how to get Spotify client and secret ID

Description
Add these instructions to the Readme, after Installation section:
## How to get the client ID and Secret ID from spotify
  - Go to [spotify for Developers](https://developer.spotify.com/)
  - Login to your spotify Account
  - Go to [your dashboard](https://developer.spotify.com/dashboard)
  - [Create a new App](https://developer.spotify.com/dashboard/create)
  - Fill in the app name `hearitfresh`, description as whatever you want, and the redirect urls to be `http://localhost:3000`, click on add and at the bottom of the page click on save
    ![Demo Screenshot](https://github.com/user-attachments/assets/913ae140-d95b-495b-bc1f-0d0c5d2c8222)
  - After the project is created, go to settings and you'll find the client secret and ID to use
  - Copy them and fill them in the env file as SPOTIFY_CLIENT_ID & SPOTIFY_CLIENT_SECRET, respectively

Note: Make sure to read and understood the rules in the Contributing Guidelines

I'm on it!

Hi @akadeepesh , thanks for wanting to fix this issue, but i would like to leave it up for someone new to the project or open source in general. You can check out the rest of the issues or use the application to see what you can add.


Deprecate/qubit state vector

Before submitting
Please complete the following checklist when submitting a PR:

[x] All new features must include a unit test.
If you've fixed a bug or added code that should be tested, add a test to the
tests directory!

[x] All new functions and code must be clearly commented and documented.
If you do make documentation changes, make sure that the docs build and
render correctly by running make docs.

[x] Ensure that the test suite passes, by running make test.

[x] Add a new entry to the .github/CHANGELOG.md file, summarizing the
change, and including a link back to the PR.

[x] Ensure that code is properly formatted by running make format.

When all the above are checked, delete everything above the dashed
line and fill in the pull request template.

Context:
Rename QubitStateVector as StatePrep in LightningGPU following recent changes in PennyLane PR#4450.
Description of the Change:
Benefits:
Possible Drawbacks:
Related GitHub Issues:

To make the docs work I suggest you try to set pennylane to master in the doc/requirements first.

Thanks for this suggestion.


The release of The new structure and the release command have not been adjusted

As the title says, the content of the  docs does not apply
docs should be adjusted
cd theme
npm run release
npm publish

or
Process these two mls in root package scripts
"release": "cd theme && git add -A && bumpp",
"publish:ci": "npm -C theme publish",

I'm not sure if Actions needs to be adjusted, but I think it should be the same

Fixed by pnpm -r publish --access public --no-git-checks.


Removed ConfigMap ValidatingWebhook related references

Checklist

[x] Tested in playground or other setup
[x] Documentation is changed or added
[x] Tests and/or benchmarks are included

Description of change

Removed the Code we had for Validating the ConfigMap as it is replaced with the CRD.
Fixes #545

This change is

Closing this as the changes will be handled as part of converting the Policy in Operator to fx app in Controller.


[DOC] Query Insights Exporters

What do you want to do?

[ ] Request a change to existing documentation
[x] Add new documentation
[ ] Report a technical problem with the documentation
[ ] Other

We need to add related documentation for the query insights exporters.
Related documentations:
https://opensearch.org/docs/latest/observing-your-data/query-insights/top-n-queries/
Related PRs:
https://github.com/opensearch-project/OpenSearch/pull/12982

Thanks, @ansjcy. Is this targeting 2.14?

Hi @hdhalter ! Sorry I missed your previous comment, this is targeting 2.15.

Combined document for exporter and CPU/Memory metrics enhancements: https://github.com/opensearch-project/documentation-website/pull/7326


Self witnessing cluster of hotspots HELTEC in Spain

Hotspot b58 Addresses
112f7SqvU2GBCtCHhqtFzo34iPx8gXM3DPTmf68BUJYCPhQY8EuX
112Ui45KjFGfvCkUpbDTevaF8rx3HEyLH8NCaRHSPpYzoX5SvD7A
112vJ5BgtnbiwfEC1Q8qp3nethXhV9fMMbL4TvN5U5xydj7Ctvkf
1121aHwmhs6kvrb8QZHKX4p4tnHKmdt6j2C1DQMb1RRndoet4Yce
11yo3BeWqA7csbKhchWgjvRbj7EFLQLCfD4KJRqHBoiPzRfnDxJ
112HMbyfa7s43LMwb8bqXaXeDEQrnKNcLyUtCSvMtRAJkXQjbbzy
11fzbwnjoArHCcs6hZkWqHTJd1wiGGrkQYvRiWpgYBueWEgz975
Discord Handle
No response
Reason(s)
Hi,
I am from this area today I drive around the area using my mapper and noticed that this cluster is spoofing as it does not exist here in this area. all of them were added on the same day and the same brand Heltec is in the same wallet there are hotspots that are from Thailand and in denylist.
there are enough real hotspots from different brands in the area that do not make any witness with them or from them.
all of them same antennae with the same height 1.2 Dpi and 0 meters.

闲鱼高价收各种黑鸡，需要的可以闲鱼搜索:" 爱吃一品鲜虾的皮特"


Add support for RFC 8009 (SHA256 and SHA384)

Is your feature request related to a problem? Please describe.
SHA-1 is considered deprecated and shouldn't actively be used. Kerberos recently added support for SHA256 through RFC 8009.
Describe the solution you'd like
Implement an abstract Rfc8009Transformer class that inherits from AESTransformer. Implement AES128SHA256Transformer and AES256SHA284Transformer that provide the specific algorithm.
Describe alternatives you've considered
None.
Additional context
There aren't many active implementations of SHA256 in use in the wild so verifying interop and compatibility will be tricky. Should consider how to test this.

We have an internal build of this working and will publish in the near future.

Hi @SteveSyfuhs
Do you have any update on this topic?
Thanks and best regards,
Marcel

I have a private branch with the changes. It's still undergoing an internal review. Is this something of specific interest?

I have a private branch with the changes. It's still undergoing an internal review. Is this something of specific interest?

I don't know if my problem is related with this issue here. I've used Kerberos.net for an authentication middleware in a .net core application. When a keytab file is loaded with only the AES256-SHA1 cipher it's not working. All the other ciphers work fine.

Active Directory doesn't support SHA256/384.
The usual cause for AES to not work is because the salt doesn't match what the KDC expects it to be so the derived key is wrong.
How are you generating the keytab?

Okay, didn't know that - thanks for the explanation.
I generated the keytab as follow:
ktpass.exe -out service-net.keytab -princ service-net@AD -mapUser service-net@AD -pass xxx -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -princ HTTP/service-net.domain.com@AD

For completeness try -ptype KRB5_NT_SRV_HST. Also, what error are you getting from kerb.net?

I've got it to work and I can confirm that Kerberos.net works totally fine with keytabs with all provided ciphers.
Of course it was again me, who configured something wrong. The msDS-SupportedEncryptionTypes flag was configured wrong, so that AES256_CTS_HMAC_SHA1_96 was not enabled :see_no_evil:
Got the following error:
System.InvalidOperationException: Key EType AES128_CTS_HMAC_SHA1_96 must match the encrypted data EType AES256_CTS_HMAC_SHA1_96
Many thanks for your help! And even more thanks for building such a great library!!!
I've learned a lot because of it...


Error in Destrination

this.destination = bitField.getString(320, 120); // Error
// correct
this.destination = bitField.getString(302, 120);

Very good find, appreciate it! I will fix this and publish a new version with some more improvements soon.

Very good find, appreciate it! I will fix this and publish a new version with some more improvements soon.


cranelift-wasm: expose cranelift-frontend's FunctionBuilder in the public API

Not doing so makes it that users of cranelift-wasm also need to import cranelift-frontend. This makes the API of cranelift-wasm incomplete, and it introduces a risk of desynchronizing the versions of frontend used by wasm and used by the user of wasm.

Note that while I agree that this is a nice convenience, there is no risk of desynchronizing versions: if you had the wrong versions, then the compiler would catch it for you and report errors.


Can't seem to use bitmap fonts

I'm on Fedora 32 and I'm trying to use an .otb font, however every time I put it as first in the font-family all the characters in the bar just throw errors. Placing behind a .ttf font in the ordering will only change the icons.
The font I'm using is https://github.com/slavfox/Cozette.

GTK issue 😢
https://www.phoronix.com/scan.php?page=news_item&px=Pango-No-More-Bitmap-Fonts


Fixing default print newline

Fixes #1414
We're attempting to add back the default newLine as \n to have correct results in Jupyter notebooks.

But we have this line in ToString:
if (String.IsNullOrEmpty(newLine))
    newLine = Environment.NewLine;

I'm wondering why this happens.

Well I suppose what we should do is to switch the default value from "" to null, and then it will use torch.newLine.
And... These lines are useless...
if (String.IsNullOrEmpty(newLine))
    newLine = Environment.NewLine;

since we are later passing nl instead of newLine...
So maybe remove it?

Oh I didn't notice that.


weight

Excuse me， Where to download model weights？

Hello ! You can download them from the release section


If the Request doesn't specify scopes, return the token without them

Expected Behavior
The received token will also be without any token (or will not generate any token at all) if there are no scopes in the token request.
Current Behavior
Currently, if the scope parameter is empty or missing, the token is generated with all possible scopes.
Context

In a security vision, it makes no sense to grant the user more permissions than they need, so users should explicitly ask for scopes. In the current state, it appears to be a security flaw.
Since the context passed to the customizer does not contain the requested scopes, but only the scopes of the generated token, there is no workaround.
This behavior should at least be configurable (what to do when the scope parameter is empty or missing).

The relevant code is in OAuth2ClientCredentialsAuthenticationProvider file, in the authenticate method, currently at line 140.

Hello

I just added a similar comment to a closed issue regarding authorization code requests with no scope - https://app.zenhub.com/workspaces/authorization-server-5e8f3182b5e8f5841bfc4902/issues/spring-projects/spring-authorization-server/600#issuecomment-1123971628
I agree that the default behavior should be to only return a token with scope values that the client requested, including no scope if no scope is requested. It should be up to the implementing application to determine a default scope, if desired. Not only does this seem more secure and intuitive, but it is easier to customize this default behavior with the current spring-authorization-server implementation by injecting a default scope into the request than to try to prevent scope from automatically being included.
Just as an FYI, if you want to implement "no scope tokens", there actually is a workaround for the current behavior. It's hackish and (IMO) should be unnecessary, but it's possible. Using a custom authentication converter and client repository, it is possible to inject a transient "no scope" value into both the incoming request and the registered client configuration, so that the server will generate a token containing only that transient scope. The transient scope value can then be removed from the resulting token/response using a token customizer and/or custom success handler.


Allowing the user mediaflux session to be passed to the inventory job

This means the file will be generated in the user's mediaflux context instead of the system mediaflux context.
Which means id the user can not access the files they will not be shown.

coverage: 83.364% (-0.07%) from 83.431%
when pulling 1ad88e6b0c90305581e921458c96ae953245b0bf on file-job-cas
into 0fdc443b77d2184f4dbeb31e78debc52fd1d1031 on main.


Improving the Getting Started documentation

Description
I added a new bullet to include the action to update the mscorlib references in the Blink sample
Motivation and Context
This is fixing a problem with the Blink sample that was not able to Deploy without the update to the mscorlib class
Types of changes

[x] Improvement (correction, content improvement, typoe fix, formating)
[ ] New Article (new document for docs website)
[ ] Config and build (change in the configuration and build system, has no impact on code or features)

Checklist:

[x] My doc follows the code style of this project.
[x] I have read the CONTRIBUTING document.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Take ownership of maintaining Codezilla

We are looking for a couple of dedicated members who can look after this repo. Anyone interested please let me know.

I can do this if anyone can also share work.

The repository seems to be getting a lot of traction now. It would be better to set-up maintainers so that @tstreamDOTh doesn't have to handle everything. I would also suggest to set up people for code-review. People who know certain languages can review PRs in those languages. I can review c/c++/java and python. But I will not be available for another 15 days.

I can review C/C++/Python

I would really like to do it.


UX with "No Scenario"

The user has to make a selection in the Scenario section, even if they don't want a scenario. I feel it makes more sense to default to "No Scenario", though I understand that users requiring a scenario would have to deselect that option.

Yes, I'm not sure about this one, but it seems anecdotally that 'no scenario' would be the most common option. In which case, selecting it by default would make sense.

'No scenario' now defaults to selected.


Installation

I'm trying to use this extension using the "Installing via the npm Registry" option shown here:
https://docs.directus.io/extensions/installing-extensions.html
I have this in my docker-compose.yml:
version: "3"
services:
  directus:
    build:
      context: ./
    ports:
      - 8055:8055
    volumes:
      - ./database:/directus/database
      - ./uploads:/directus/uploads
      - ./extensions:/directus/extensions
    environment:
      AWS_ACCESS_KEY_ID: **VALUE-HERE**
      AWS_SECRET_ACCESS_KEY: **VALUE-HERE**
      AWS_REGION: "us-west-2"

And this in Dockerfile:
FROM directus/directus:11.0.2

USER root
RUN corepack enable
USER node

RUN pnpm install directus-extension-media-ai-bundle

I see this in the logs on load:
Loaded extensions: directus-extension-media-ai-bundle
And see the extension in the Extensions tab.
However when I upload images, nothing seems to happen.
Am I missing a step?

You will need to create a Flow in Directus that takes the uploaded image and run it through one of the Operations that this extension provides. The steps to create such a flow is very similar to the AI Alt Text Writer-extension in Directus Labs, there is a tutorial for this here: https://directus.io/tv/ai/ai-alt-text-writer

Thanks!


Improved packet_id allocation.

Added generic value_allocator class template. It is more efficient
that the original implementation.
Moved packet_id management code to the separated file
packet_id_manager.hpp that uses value_allocator.
Removed retun value of release_packet_id() to support efficient implementation.

NOTE:
The packet_id allocation algorithm has been changed.
The smallest value that is vacant is always allocated.

Quite clever approach with those intervals

Quite clever approach with those intervals

Thanks. merged.

Thanks. merged.


Fix github handle links

Closes #224
Related to #223
We currenlty use the github username to call github API to fetch the github username... As suggested, let's not do that

Thanks for fixing this @birkskyum


some version checksum not detected

when I take a look at the code, it seems fine, this came from kotlin, I tried to download manually the plugin using the same DownloadUrl and manually configured the version to what I wanted but it returns this error:

is there anything wrong with github checksum returned and getting parsed here?
strangely, it works in kotlin v1.9.0 and up

fixed by commenting this code:

proof:

it seems kotlin RC from github are not returning .sha256 checksum? but it auto skips verify from vfox original pre-install check

imma uncomment this once again, thanks @aooohan if there's any other I'll post here again, it seems I can't find out whats happening in the lua or go source code

it seems kotlin RC from github are not returning .sha256 checksum?

Yes. Earlier than 1.9.0 do not provide .sha256 files.
As you commented code snippet, we just don't need to get checksum if earlier than 1.9.0, which can fix this.

Thanks for pointing this issue out! We have fixed it, you can use vfox update kotlin to upgrade to latest to try again.


⚠ ClamAV has degraded performance

In fb472b4, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 104 ms

Resolved: ClamAV performance has improved in f308627.


examples validation does not match OAS 3

Firstly, great library! We're using it for the schema validation in oaat.
However, I think there's an issue in the way that examples are validated. According to https://swagger.io/docs/specification/adding-examples/ , It should be possible to have:
    "/foo/{requestType}": {
      "get": {
        "parameters": [
          {
            "name": "requestType",
            "in": "path",
            "description": "The requestType key",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "eligibility",
                "products",
                "products/eligibility",
                "services"
              ]
            },
            "examples": {
              "products": {
                "value": "products"
              },
              "service": {
                "value": "services"
              },
              "eligibility-enterprise": {
                "value": "eligibility"
              },
              "eligibility-inactive": {
                "value": "eligibility"
              },
              "invalidToken": {
                "value": "eligibility"
              }
            }
          }
  ...

However, the OpenAPI Enforcer says:
 One or more errors exist in the OpenApi definition
  at: paths
    at: /foo/{requestType} > get > parameters > 1 > examples
      at: products
        Unable to deserialize value
          Expected a string. Received: undefined
      at: service
        Unable to deserialize value
          Expected a string. Received: undefined
      at: eligibility-enterprise
        Unable to deserialize value
          Expected a string. Received: undefined
      at: eligibility-inactive
        Unable to deserialize value
          Expected a string. Received: undefined

Looking at the code, I think this line is the problem:
https://github.com/byu-oit/openapi-enforcer/blob/4f2f64ebc70af54da5beca6f6fce4ddfec28bb65/src/validator-parameter-base.js#L99
It permits an examples object, but then expects that the child property will be an Example, rather than a { key: Example }, as OAS 3 indicates it should be.
In summary, this should be valid: examples: { key: { value: ... } }, but Open API Enforcer says that it is not.

Wow, it looks like you've done your research here. That and the fact that you've provided me an example should make this a pretty quick fix.
I'm glad your enjoying the library too.
I'll get working on this today.

Will you try out openapi-enforcer version 1.10.8? I fixed a problem with the example validator for issue #85. Running a test using your provided code I'm not picking up any errors, so I'm wondering if the 1.10.8 fix also fixed this problem.

Hi James, I've updated to 1.10.8, and the library is saying that this JSON is now valid:
{
  "openapi": "3.0.0",
  "info": {
    "description": "Fake Online REST API for Testing and Prototyping",
    "version": "1.0.0",
    "title": "JSON Placeholder"
  },
  "tags": [
    {
      "name": "posts"
    }
  ],
  "servers": [
    {
      "url": "https://jsonplaceholder.typicode.com"
    }
  ],
  "paths": {
    "/posts": {
      "get": {
        "tags": [
          "posts"
        ],
        "summary": "Get all available posts",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "Filter by post ID",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "description": "Filter by user ID",
            "required": false,
            "schema": {
              "type": "string"
            },
            "examples": {
              "products": {
                "value": "products"
              },
              "service": {
                "value": "services"
              },
              "eligibility-enterprise": {
                "value": "eligibility"
              },
              "eligibility-inactive": {
                "value": "eligibility"
              },
              "invalidToken": {
                "value": "eligibility"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Post"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Post": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "userId": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string"
          },
          "body": {
            "type": "string"
          }
        }
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "company": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "catchPhrase": {
                "type": "string"
              },
              "bs": {
                "type": "string"
              }
            }
          },
          "address": {
            "type": "object",
            "properties": {
              "street": {
                "type": "string"
              },
              "suite": {
                "type": "string"
              },
              "city": {
                "type": "string"
              },
              "zipcode": {
                "type": "string"
              },
              "geo": {
                "type": "object",
                "properties": {
                  "lat": {
                    "type": "string"
                  },
                  "lng": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

Swagger UI: No errors
Upon further digging, I think the problem was on my end. I was generating some examples for a multi-parameter API, where the first parameter's examples were correct, but the second parameter's examples were:
"examples": {
              "products": {},
              "services": {},
              "eligibility-enterprise": {},
              "eligibility-inactive": {},
              "invalidToken": {
                "value": "not a valid token"
              }
            }

...which is wrong. Thanks for looking into this. 👍

Glad I could help.


Tensorflow Lite iOS Interpreter production logs

Click to expand!
Issue Type
Feature Request
Source
source
Tensorflow Version
2.10.0
Custom Code
No
OS Platform and Distribution
iOS
Mobile device
iOS
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
The log outputs of the Interpreter cannot be disabled for production use, but we would need that.
See: https://github.com/tensorflow/tensorflow/blob/bb5ff1b22f5d4d6bf937dcd71f8b710064eadce6/tensorflow/lite/core/interpreter.cc#L97

Would be nice if you could introduce another option for the Interpreter where you could set log outputs enabled/disabled or even with LogLevels.

Standalone code to reproduce the issue
Interpreter(modelPath: path, options: options)

Relevant log output
Initialized TensorFlow Lite runtime.

The log output for the Version has been completed in the PR https://github.com/tensorflow/tensorflow/commit/8033edfef8bcd90b025fb66c488164d2b608c4a9 to remove the version dependency, with this change it automatically selects the version instead of schema_fbs_version which is deprecated.

but will this also affect the Log output from the Interpreter here:
https://github.com/tensorflow/tensorflow/blob/bb5ff1b22f5d4d6bf937dcd71f8b710064eadce6/tensorflow/lite/core/interpreter.cc#L97

Hi @lukas-koblmueller
From 2.11, the TfLite includes the TFLite logger options which can be used to set the logging severity levels.
https://github.com/tensorflow/tensorflow/blob/r2.11/tensorflow/lite/logger.h
Does this help in your use case?
thanks.


controllers: read subscription as part ext resource

read subscription as part ext resource
set the OCS-operator channel to storage client annotation

If reporter isn't going to add annotation then that code should be removed, was that raised in a separate PR.

There will be one more pr: which will do 2 things

Change in storage client controller to set the status
Reporter will set the annotation using CreateOrUpdate

Closing this PR as We need to rethink after 4.18 changes.


Update styling for number field when readonly

Pull Request
🤨 Rationale
Fixes #2402 by adding styling for the readonly number field. Those styles were based heavily on the readonly styling for the text-field.
👩💻 Implementation

Add styling for the number-field when it is readonly
Update storybook page to include readonly
Made shared docs for readonly

🧪 Testing

Manually tested combinations of readonly, disabled, and error-visible with the different appearance modes in storybook
Updated matrix tests, including interactive matrix tests, to include readonly
Verified that readonly is exposed in Angular & Blazor APIs even though it was overlooked in storybook, matrix tests, and styling

✅ Checklist

[ ] I have updated the project documentation to reflect my changes or determined no changes are needed.

@msmithNI, will you buddy this PR for me?


Explore DyNetX

DyNetX is a Python library designed to extend the functionality of NetworkX for dynamic network analysis. It provides tools and structures to manage networks that change over time, allowing users to model temporal graphs and perform analyses on dynamic interactions.
Key Features of DyNetX:

Temporal Graphs:

Dynamic Graphs: DyNetX supports the creation and manipulation of graphs that change over time, with nodes and edges that can appear or disappear.
Time Stamps: Nodes and edges can be associated with specific time stamps or intervals to model their temporal characteristics.

Network Analysis:

Temporal Measures: The library provides measures and algorithms that consider the temporal aspect of the network, such as the number of interactions over time.
Time Slices: You can extract subgraphs or "time slices" of the network at specific points in time or over specific intervals to analyze the network's state at those times.

Integration with NetworkX:

Compatibility: DyNetX is built on top of NetworkX, making it easy to integrate with existing NetworkX workflows and leverage its extensive graph analysis capabilities.
Ease of Use: Users familiar with NetworkX will find DyNetX easy to use due to its similar API and data structures.

Installation:
To install DyNetX, you can use pip:
pip install dynetx

Basic Usage:
Here is an example demonstrating how to create a dynamic graph, add interactions, and query the graph at specific times:
Creating a Dynamic Graph:
import dynetx as dn

# Create a dynamic graph
G = dn.DynGraph()

# Add interactions (edges) with time stamps
G.add_interaction(1, 2, t=1)
G.add_interaction(1, 3, t=2)
G.add_interaction(2, 3, t=3)

Querying Interactions at Specific Times:
# Get interactions at time t=1
interactions_t1 = G.interactions_at(t=1)
print("Interactions at t=1:", list(interactions_t1))

# Get interactions at time t=2
interactions_t2 = G.interactions_at(t=2)
print("Interactions at t=2:", list(interactions_t2))

Extracting Time Slices:
# Extract the subgraph at time t=2
subgraph_t2 = G.time_slice(t_from=2, t_to=2)
print("Nodes in subgraph at t=2:", subgraph_t2.nodes())
print("Edges in subgraph at t=2:", subgraph_t2.edges())

Advanced Features:

Dynamic Node and Edge Attributes:

Just like in NetworkX, you can add attributes to nodes and edges in DyNetX, but these can also change over time.

Temporal Network Measures:

DyNetX includes functions to calculate temporal network measures, such as the number of interactions or active nodes within a time window.

Visualization:

While DyNetX does not provide built-in visualization tools, you can use NetworkX's visualization capabilities to visualize the state of the graph at different times.

Example of Dynamic Node and Edge Attributes:
# Adding a node with an attribute that changes over time
G.add_node(1, label='A', t=1)
G.add_node(1, label='B', t=3)  # Node 1's label changes to 'B' at t=3

# Adding an edge with an attribute that changes over time
G.add_interaction(1, 2, t=1, weight=0.5)
G.add_interaction(1, 2, t=3, weight=1.0)  # Edge weight changes to 1.0 at t=3

# Querying node attributes at a specific time
print("Node 1's label at t=1:", G.node[1]['label'])
print("Node 1's label at t=3:", G.node[1]['label'])

Use Cases:

Social Network Analysis: Study the evolution of social interactions over time.
Communication Networks: Analyze how communication patterns change, such as email or message exchanges.
Biological Networks: Observe the changes in biological networks, like protein-protein interactions over different conditions or time points.
Transportation Networks: Model and analyze traffic patterns, public transportation usage, etc.

Conclusion:
DyNetX provides a powerful extension to NetworkX for those needing to model and analyze dynamic networks. It retains the familiarity and flexibility of NetworkX while adding essential temporal graph features. This makes it suitable for various applications where the time dimension is crucial.

The DynGraph object in DyNetX is designed to handle dynamic graphs, which are graphs that change over time. This object extends the capabilities of the standard NetworkX Graph object to include temporal aspects, allowing nodes and edges to appear or disappear at specific times. Here are more details about the DynGraph object and how it works:
Key Features of DynGraph:

Temporal Interactions:

Add Interactions: You can add edges (interactions) with associated time stamps, specifying when the interactions occur.
Remove Interactions: You can remove interactions or mark them as inactive at specific times.

Node and Edge Management:

Dynamic Nodes and Edges: Nodes and edges can have attributes that change over time.
Temporal Attributes: Both nodes and edges can store temporal attributes, allowing you to query their state at different points in time.

Temporal Queries:

Interactions at Specific Times: Retrieve the set of interactions that are active at a given time.
Time Slices: Extract subgraphs representing the state of the network at specific times or intervals.

Integration with NetworkX:

NetworkX Compatibility: DyNetX extends NetworkX, so you can use most NetworkX functions and methods with DynGraph.

Basic Methods and Usage:
Creating a Dynamic Graph:
import dynetx as dn

# Create a dynamic graph
G = dn.DynGraph()

# Add interactions (edges) with time stamps
G.add_interaction(1, 2, t=1)
G.add_interaction(1, 3, t=2)
G.add_interaction(2, 3, t=3)

Adding Nodes and Edges:
# Add nodes with dynamic attributes
G.add_node(1, label='A', t=1)
G.add_node(2, label='B', t=1)
G.add_node(3, label='C', t=2)

# Add edges (interactions) with time stamps and attributes
G.add_interaction(1, 2, t=1, weight=0.5)
G.add_interaction(1, 3, t=2, weight=1.0)
G.add_interaction(2, 3, t=3, weight=1.5)

Querying Interactions:
# Get interactions at time t=1
interactions_t1 = G.interactions_at(t=1)
print("Interactions at t=1:", list(interactions_t1))

# Get interactions at time t=2
interactions_t2 = G.interactions_at(t=2)
print("Interactions at t=2:", list(interactions_t2))

Extracting Time Slices:
# Extract the subgraph at time t=2
subgraph_t2 = G.time_slice(t_from=2, t_to=2)
print("Nodes in subgraph at t=2:", subgraph_t2.nodes())
print("Edges in subgraph at t=2:", subgraph_t2.edges())

Advanced Methods and Attributes:
Dynamic Node and Edge Attributes:
# Adding a node with an attribute that changes over time
G.add_node(1, label='A', t=1)
G.add_node(1, label='B', t=3)  # Node 1's label changes to 'B' at t=3

# Adding an edge with an attribute that changes over time
G.add_interaction(1, 2, t=1, weight=0.5)
G.add_interaction(1, 2, t=3, weight=1.0)  # Edge weight changes to 1.0 at t=3

# Querying node attributes at a specific time
print("Node 1's label at t=1:", G.nodes[1]['label'])
print("Node 1's label at t=3:", G.nodes[1]['label'])

Time Slicing:
# Extracting a time slice of the graph
time_slice_1 = G.time_slice(1, 2)
print("Nodes in time slice from t=1 to t=2:", time_slice_1.nodes())
print("Edges in time slice from t=1 to t=2:", time_slice_1.edges())

Practical Considerations:

Performance:

When dealing with large dynamic graphs, consider the performance implications of frequently querying and updating the graph. Efficient data structures and indexing can help manage performance.

Memory Usage:

Storing multiple states of nodes and edges over time can increase memory usage. Manage memory by optimizing the storage of temporal attributes and interactions.

Visualization:

Visualizing dynamic graphs can be challenging due to their changing nature. Consider using time-lapse visualizations or interactive tools that allow exploration of the graph at different time points.

Example Application:
Suppose you are analyzing a social network where interactions (edges) between individuals (nodes) change over time. You can use DynGraph to model these interactions, analyze the network at specific times, and visualize how the network evolves.
Conclusion:
The DynGraph object in DyNetX provides a robust framework for modeling and analyzing dynamic graphs in Python. By leveraging its capabilities, you can effectively manage temporal aspects of your graph data and perform various analyses to gain insights into the dynamics of your network.

DyNetX’s temporal features are designed to allow you to work with dynamic graphs where nodes and edges can appear, disappear, or change over time. Here’s a detailed explanation of how its temporal features work:
Core Concepts:

Temporal Nodes and Edges:

Temporal Nodes: Nodes in a DynGraph can have attributes that change over time. The presence of a node can also be time-dependent.
Temporal Edges: Edges can represent interactions or relationships that occur at specific times or over specific intervals.

Time Stamps and Intervals:

Time Stamps: Each interaction (or edge) can be associated with a specific time stamp.
Time Intervals: Nodes and edges can also be associated with time intervals to represent their active periods.

Dynamic Graph Representation:

Temporal Attributes: Both nodes and edges can have attributes that include time-related information such as creation time, deletion time, and active intervals.
Snapshots: You can query the graph at specific times to get a snapshot of the network at that time.

Basic Methods and Attributes:
Creating a Dynamic Graph:
import dynetx as dn

# Create a dynamic graph
G = dn.DynGraph()

# Add interactions (edges) with time stamps
G.add_interaction(1, 2, t=1)  # Interaction at time t=1
G.add_interaction(1, 3, t=2)  # Interaction at time t=2
G.add_interaction(2, 3, t=3)  # Interaction at time t=3

Adding Nodes and Edges with Temporal Attributes:
# Add nodes with dynamic attributes
G.add_node(1, label='A', t=1)
G.add_node(2, label='B', t=1)
G.add_node(3, label='C', t=2)

# Add edges (interactions) with time stamps and attributes
G.add_interaction(1, 2, t=1, weight=0.5)
G.add_interaction(1, 3, t=2, weight=1.0)
G.add_interaction(2, 3, t=3, weight=1.5)

Temporal Queries:
Getting Interactions at a Specific Time:
# Get interactions at time t=1
interactions_t1 = G.interactions_at(t=1)
print("Interactions at t=1:", list(interactions_t1))

# Get interactions at time t=2
interactions_t2 = G.interactions_at(t=2)
print("Interactions at t=2:", list(interactions_t2))

Extracting Time Slices:
# Extract the subgraph at time t=2
subgraph_t2 = G.time_slice(t_from=2, t_to=2)
print("Nodes in subgraph at t=2:", subgraph_t2.nodes())
print("Edges in subgraph at t=2:", subgraph_t2.edges())

Advanced Temporal Features:
Dynamic Node and Edge Attributes:
Attributes of nodes and edges can change over time. You can update these attributes dynamically:
# Adding a node with an attribute that changes over time
G.add_node(1, label='A', t=1)
G.add_node(1, label='B', t=3)  # Node 1's label changes to 'B' at t=3

# Adding an edge with an attribute that changes over time
G.add_interaction(1, 2, t=1, weight=0.5)
G.add_interaction(1, 2, t=3, weight=1.0)  # Edge weight changes to 1.0 at t=3

# Querying node attributes at a specific time
print("Node 1's label at t=1:", G.node[1]['label'])
print("Node 1's label at t=3:", G.node[1]['label'])

Time Slicing:
You can extract subgraphs representing the state of the network over specific time intervals:
# Extracting a time slice of the graph from t=1 to t=2
time_slice_1_2 = G.time_slice(1, 2)
print("Nodes in time slice from t=1 to t=2:", time_slice_1_2.nodes())
print("Edges in time slice from t=1 to t=2:", time_slice_1_2.edges())

Practical Considerations:

Temporal Resolution:

Granularity: Determine the appropriate granularity for your time stamps (e.g., seconds, minutes, hours) based on your use case.
Consistency: Ensure that time stamps are consistently applied across all nodes and edges.

Performance:

Efficient Updates: Frequent updates to nodes and edges can impact performance. Optimize your data structures and indexing.
Memory Management: Managing temporal attributes for a large number of nodes and edges can increase memory usage. Implement efficient storage strategies.

Visualization:

Time-Lapse Visualization: Create visualizations that show the evolution of the graph over time. This can help in understanding temporal dynamics.
Interactive Exploration: Use interactive tools to explore the graph at different time points.

Conclusion:
DyNetX’s DynGraph object provides a robust framework for modeling and analyzing dynamic graphs with temporal features. By leveraging its capabilities, you can effectively manage the temporal aspects of your graph data, perform various temporal analyses, and gain insights into the dynamics of your network over time.

To get the graph state from the previous step before the current one using DyNetX, you need to leverage the temporal capabilities of the library to identify and extract the state of the graph at the desired time point. Here's how you can achieve this:
Steps to Get the Graph State from the Previous Step:

Identify the Current Time:

Determine the current time step you are interested in.

Find the Previous Time Step:

Identify the time step immediately before the current time.

Extract the Graph State at the Previous Time Step:

Use the time_slice method to get the subgraph representing the state of the graph at the previous time step.

Example Implementation:
Let's assume you have a dynamic graph with multiple interactions added at different time steps. Here’s a step-by-step guide to retrieve the graph state from the previous step.
Step 1: Create a Dynamic Graph and Add Interactions
import dynetx as dn

# Create a dynamic graph
G = dn.DynGraph()

# Add interactions (edges) with time stamps
G.add_interaction(1, 2, t=1)  # Interaction at time t=1
G.add_interaction(1, 3, t=2)  # Interaction at time t=2
G.add_interaction(2, 3, t=3)  # Interaction at time t=3
G.add_interaction(3, 4, t=4)  # Interaction at time t=4

Step 2: Define a Function to Get the Previous Time Step
def get_previous_time_step(current_time, time_steps):
    previous_time_steps = [t for t in time_steps if t < current_time]
    if not previous_time_steps:
        return None  # No previous time step exists
    return max(previous_time_steps)

Step 3: Extract the Graph State from the Previous Time Step
# Current time step
current_time = 3

# List of all time steps (you could derive this from your data)
time_steps = [1, 2, 3, 4]

# Get the previous time step
previous_time = get_previous_time_step(current_time, time_steps)

if previous_time is not None:
    # Extract the graph state at the previous time step
    previous_state = G.time_slice(previous_time, previous_time)
    print(f"Nodes in previous state at t={previous_time}:", previous_state.nodes())
    print(f"Edges in previous state at t={previous_time}:", previous_state.edges())
else:
    print("No previous time step available.")

Explanation:

Create the Dynamic Graph:

Use DynGraph to create a dynamic graph and add interactions with specific time stamps.

Identify the Previous Time Step:

The get_previous_time_step function filters the list of all time steps to find the maximum time step that is less than the current time step.

Extract the Graph State:

Use the time_slice method to extract the subgraph representing the state of the graph at the previous time step.

Notes:

Time Management: Ensure you maintain a consistent list of time steps corresponding to the interactions in your dynamic graph.
Edge Cases: Handle edge cases where there may not be a previous time step available (e.g., if the current time is the first time step).

This approach allows you to efficiently retrieve the state of your dynamic graph from the previous time step, enabling you to analyze how the graph has evolved over time.

To connect nodes in each time state if they are self or have a relationship in the previous time state, you need to create a meta-graph or a higher-level graph where each node represents a state of the original graph at a specific time. Here's how you can achieve this:
Steps to Connect Nodes in Each Time State:

Create a Dynamic Graph:

Use DynGraph to create a dynamic graph and add interactions with time stamps.

Generate Time States:

Extract the state of the graph at each time step.

Create a Meta-Graph:

Create a new graph where each node represents a state of the original graph at a specific time.
Add edges between these meta-nodes based on relationships in the original graph at different time steps.

Example Implementation:
Step 1: Create a Dynamic Graph and Add Interactions
import dynetx as dn
import networkx as nx
from datetime import datetime

# Create a dynamic graph
G = dn.DynGraph()

# Add interactions (edges) with time stamps
G.add_interaction(1, 2, t=1)  # Interaction at time t=1
G.add_interaction(1, 3, t=2)  # Interaction at time t=2
G.add_interaction(2, 3, t=3)  # Interaction at time t=3
G.add_interaction(3, 4, t=4)  # Interaction at time t=4

Step 2: Generate Time States
def get_time_states(G, time_steps):
    time_states = {}
    for t in time_steps:
        time_states[t] = G.time_slice(t, t)
    return time_states

# List of all time steps
time_steps = [1, 2, 3, 4]

# Generate the graph state at each time step
time_states = get_time_states(G, time_steps)

Step 3: Create a Meta-Graph
meta_graph = nx.DiGraph()

# Add nodes representing each time state
for t in time_steps:
    meta_graph.add_node(t)

# Add edges based on relationships in the original graph
for i in range(1, len(time_steps)):
    current_time = time_steps[i]
    previous_time = time_steps[i - 1]
    current_state = time_states[current_time]
    previous_state = time_states[previous_time]

    # Check for self-relationships and existing relationships
    for node in current_state.nodes():
        if previous_state.has_node(node):
            meta_graph.add_edge(previous_time, current_time, relationship=f'self-{node}')

    for edge in current_state.edges():
        if previous_state.has_edge(*edge):
            meta_graph.add_edge(previous_time, current_time, relationship=f'edge-{edge}')

# Print meta-graph edges
print("Meta-Graph Edges with relationships:")
for edge in meta_graph.edges(data=True):
    print(edge)

Explanation:

Create the Dynamic Graph:

Use DynGraph to create a dynamic graph and add interactions with specific time stamps.

Generate Time States:

Define a function get_time_states to extract the state of the graph at each time step and store these states in a dictionary.

Create a Meta-Graph:

Create a new directed graph meta_graph using NetworkX.
Add nodes to the meta-graph, each representing a state of the original graph at a specific time.
Iterate through the time steps and compare each time state with the previous one to determine self-relationships and existing relationships.
Add edges to the meta-graph based on these relationships, storing relevant information as edge attributes.

Notes:

Relationship Tracking: The example tracks self-relationships (nodes that persist across time steps) and relationships (edges that persist across time steps).
Edge Attributes: The relationship type and involved nodes/edges are stored as attributes of the meta-graph edges for further analysis.

This approach allows you to build a meta-graph that captures the temporal evolution of your dynamic graph, connecting nodes across time states based on their persistence and relationships.

Yes, a node in your dynamic graph can represent an agent that requests itself to be taken out of the grid (graph). This concept can be implemented by adding a mechanism where nodes (agents) can trigger their own removal based on certain conditions or rules.
Implementing Self-Removal of Nodes (Agents)
Here's a detailed plan to implement a system where nodes (agents) can request to be taken out of the grid:
1. Agent Class with Self-Removal Logic
First, define an agent class that includes logic for determining when it should be removed from the graph.
import dynetx as dn
from datetime import datetime

class Agent:
    def __init__(self, id, graph, created_at):
        self.id = id
        self.graph = graph
        self.created_at = created_at
        self.removed_at = None
        self.graph.add_node(self.id, created_at=self.created_at)

    def check_removal_condition(self):
        # Define the condition under which the agent requests removal
        # For example, the agent could request removal after a certain time period
        current_time = datetime.now()
        if (current_time - self.created_at).seconds > 10:  # Example condition
            self.request_removal()

    def request_removal(self):
        self.removed_at = datetime.now()
        self.graph.add_node(self.id, removed_at=self.removed_at)

    def __repr__(self):
        return f"Agent(id={self.id}, created_at={self.created_at}, removed_at={self.removed_at})"

# Create a dynamic graph
G = dn.DynGraph()

2. Add and Manage Agents
Add agents to the dynamic graph and manage their lifecycle, including self-removal.
# Function to add agents to the graph
def add_agents(graph):
    agents = []
    for i in range(5):
        created_at = datetime.now()
        agent = Agent(i, graph, created_at)
        agents.append(agent)
    return agents

# Function to check agents' removal conditions
def update_agents(agents):
    for agent in agents:
        agent.check_removal_condition()

# Add agents to the graph
agents = add_agents(G)

3. Simulate the Passage of Time and Check for Removal
Simulate the passage of time in your environment and periodically check if agents request removal.
import time

# Simulate the passage of time and check for agent removal
for _ in range(20):
    update_agents(agents)
    time.sleep(1)  # Wait for 1 second before checking again
    print(f"Current time: {datetime.now()}")
    for agent in agents:
        print(agent)

4. Handle Node Removal in the Graph
When an agent requests removal, update the graph to reflect this change.
# Function to remove nodes from the graph
def remove_nodes(graph, agents):
    for agent in agents:
        if agent.removed_at:
            graph.add_node(agent.id, removed_at=agent.removed_at)

# Update graph to reflect agent removal
remove_nodes(G, agents)

5. Query the Graph for Active and Removed Nodes
Use the temporal attributes to query the graph for active and removed nodes.
def get_active_nodes(graph, current_time):
    active_nodes = []
    for node in graph.nodes(data=True):
        created_at = node[1].get('created_at')
        removed_at = node[1].get('removed_at')
        if created_at and (not removed_at or removed_at > current_time):
            active_nodes.append(node[0])
    return active_nodes

def get_removed_nodes(graph, current_time):
    removed_nodes = []
    for node in graph.nodes(data=True):
        removed_at = node[1].get('removed_at')
        if removed_at and removed_at <= current_time:
            removed_nodes.append(node[0])
    return removed_nodes

# Query the graph for active and removed nodes
current_time = datetime.now()
active_nodes = get_active_nodes(G, current_time)
removed_nodes = get_removed_nodes(G, current_time)

print(f"Active nodes at {current_time}: {active_nodes}")
print(f"Removed nodes at {current_time}: {removed_nodes}")

Summary
By following these steps, you can create a dynamic system where nodes (agents) can request their own removal from the graph based on certain conditions. This approach allows you to model scenarios where agents autonomously manage their lifecycle within the dynamic graph. The system can be further enhanced by adding more complex conditions for self-removal, integrating real-time data, and improving the efficiency of temporal queries.

But using dynetx


Removed modification of hostname if NULL

It seems that changing the hostname if it's NULL can cause some issues. For example, it interferes with Vivox.
According to getaddrinfo docs, it seems that an empty hostname is treated as <IP_ADDRESS>.

It seems that changing the hostname if it's NULL can cause some issues. For example, it interferes with Vivox.
According to getaddrinfo docs, it seems that an empty hostname is treated as <IP_ADDRESS>.

 I was having issues with vivox because of this recently


Add version bump support

Idea: easily bump the relevant project configuration files
Could be part of the gulp boilerplate: #3 and thus reused in the build of the build as well :)
Check out:

https://www.npmjs.com/package/gulp-bump
https://docs.npmjs.com/cli/version

Please see my repo here:
https://github.com/aaronroberson/gulp-conventional-release


Add script to calculate stats

Coverage increased (+0.02%) to 74.826% when pulling 42e8942183b20afad7d1616d7c17c4b912c84fb7 on stats-script into e4c002b2344ed30c7ab09b5a8e417ce8e8204121 on master.


upgrade bigtable-client-core library from 1.12.1 to 1.18.1 (latest) to eliminate retries bug

our version of bigtable-client-core has serious bugs

I am a heroic dev
Who wants to have a stable system
So that I can focus on features, not KTLO work

Proposed Solution

upgrade bigtable-client-core library from 1.12.1 to 1.18.1 (latest) to eliminate retries bug

Design & Implementation Notes

Adam strongly recommended we make this upgrade since our version has a bug that can make it do double the configured number of retries.
It also has saner, useful, finer-grained settings.
It actually addresses a second bug too that might affect us.
He tested the new version with Heroic and it worked ok ostensibly.

here’s Adam’s bug report of the second bug.

here’s Adam’s bug report of the second bug.


Move builds from Container Registry to Artifact Registry

We use Container Registry to host the docker images.  Container Registry is deprecated.  We need to move to Artifact Registry.  There is a transition guide

Punt, still need to do this before 2024-05-15.

Migration path allows for redirecting of grc.io so no changes needed in the repository.


Fix auto san validation

As per envoy docs, auto-san-validation is supposed to be set with auto-sni, however in our current implementation, the logic sets auto-san-validation, even if the DR has an explicit SNI set, but SAN is not set.
Please see: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-upstreamhttpprotocoloptions-auto-san-validation

@kfaseela: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security-multicluster_istio
a0f83fdd5cf0fb5752a0890a02ac66caa2eff59f
link
unknown
/test integ-security-multicluster

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Extract AggregationFuzzerBase from AggregationFuzzer

Summary: Extract AggregationFuzzerBase from AggregationFuzzer. This is needed for building WindowFuzzer
that reuses common logic in AggregaitonFuzzerBase.
This is the first piece of https://github.com/facebookincubator/velox/issues/7754.
Differential Revision: D51692940

Hi @mbasmanova, thanks for the suggestions! I have moved those classes to their own files. Please let me know if you have any other thoughts.

Hi @mbasmanova, I've moved fuzzer-related files to velox/exec/fuzzer and the input generator files to velox/functions/prestosql/fuzzer. This PR doesn't move the AggregationFuzzerTest.cpp and SparkAggregationFuzzerTest.cpp files. I move them in https://github.com/facebookincubator/velox/pull/8007. I split them into a separate PR because the current PR is already too large, and moving the test targets may require additional changes to our configuration files of the PR-time and nightly tests, so I'd like to do that separately from the current PR.

@kagamiori Wei, thank you for iterating on this PR. Overall looks good % some questions and CI being all red.

Hi @mbasmanova, thank you for the review! I've addressed your comments. I've tested the build on Mac using cmake, so the red signals should be gone this time. Could you take a look again? Thanks!


[Feature Request] [bountysource] Support array_matched() to filter elements by any(...) condition

Feature description:
if 'names' values is ['Peter', 'McCain', 'McDonalds', 'Jack']
select array_matched(names) from statis_user_success where any(names) like 'Mc%' limit 1
Hope:
['McCain', 'McDonalds']

Hi, thanks for the feature request, we'll discuss it and add it to the backlog if it works (I am not totally sure this fits into the distributed architecture)
Cheers, Claus

Backed this, https://www.bountysource.com/issues/39611200-feature-request-support-array_matched-to-filter-elements-by-any-condition

Currently, i can do: select regexp_matches(concat(',',strings[1], ',', strings[2], ',', strings[3],','), ',(Mc[^,]),'), from test limit 100;
I need array_regexp_matches(...)

This is supported using ANY
↪  cr8 run-crate 2.x.x -- @crash <<EOF
    create table t (names array(string), int_array array(integer));
    insert into t (names, int_array) values(['Peter', 'McCain', 'McDonalds', 'Jack'], [98234, 33,1232,2394]);
    insert into t (names, int_array) values(['Arthur'], [399]);
    refresh table t;
    select * from t where 'Mc%' like any(names);
    select * from t where 123 < any (int_array);
EOF

CREATE OK, 1 row affected  (0.247 sec)
INSERT OK, 1 row affected  (0.077 sec)
INSERT OK, 1 row affected  (0.004 sec)
REFRESH OK, 1 row affected  (0.097 sec)
+-------------------------+------------------------------------------+
| int_array               | names                                    |
+-------------------------+------------------------------------------+
| [98234, 33, 1232, 2394] | ["Peter", "McCain", "McDonalds", "Jack"] |
+-------------------------+------------------------------------------+
SELECT 1 row in set (0.123 sec)
+-------------------------+------------------------------------------+
| int_array               | names                                    |
+-------------------------+------------------------------------------+
| [98234, 33, 1232, 2394] | ["Peter", "McCain", "McDonalds", "Jack"] |
| [399]                   | ["Arthur"]                               |
+-------------------------+------------------------------------------+
SELECT 2 rows in set (0.015 sec)


bug in az batch account show

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az batch account show
Errors:
No section: 'batch'
Traceback (most recent call last):
python3.7/site-packages/knack/cli.py, ln 206, in invoke
    cmd_result = self.invocation.execute(args)
cli/core/commands/__init__.py, ln 560, in execute
    raise ex
cli/core/commands/__init__.py, ln 618, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
cli/core/commands/__init__.py, ln 609, in _run_job
    cmd_copy.exception_handler(ex)
cli/command_modules/batch/_exception_handler.py, ln 30, in batch_exception_handler
    reraise(*sys.exc_info())
...
python3.7/site-packages/knack/config.py, ln 84, in get
    return config.get(section, option)
python3.7/site-packages/knack/config.py, ln 155, in get
    return self.config_parser.get(section, option)
3.7/lib/python3.7/configparser.py, ln 780, in get
    d = self._unify_values(section, vars)
3.7/lib/python3.7/configparser.py, ln 1146, in _unify_values
    raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'batch'

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az batch account show -n {}

Expected Behavior
Environment Summary
Darwin-18.5.0-x86_64-i386-64bit
Python 3.7.3
Shell: bash

azure-cli 2.0.64

Additional Context

This should be fixed in 2.0.67. We now alert you when specifying command line arguments that you need both -n and -g arguments.


Table formatting polish

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Thank you for the cleanup


OPERA: _WD_GetBrowserVersion refactoring

Pull request
Proposed changes
For me it is resonable/more rational that If FileExists($sBrowser) Then is checked first.
I know that this will be not comonly used case (file checking instead registry checking) but this function is used once per script run and there is nothing to do with performance, only with code clarity and error handling.
Thus I also added few $_WD_ERROR_FileIssue and $iExt and also I propose to add $_WD_ERROR_NotSupported
Checklist
Put an x in the boxes that apply. If you're unsure about any of them, don't hesitate to ask. We are here to help!
This is simply a reminder of what we are going to look for before merging your code.

[x] I have read and noticed the CODE OF CONDUCT document
[x] I have read and noticed the CONTRIBUTING document
[ ] I have added necessary documentation or screenshots (if appropriate)

Types of changes
Please check x the type of change your PR introduces:

[ ] Bugfix (change which fixes an issue)
[ ] Feature (change which adds functionality)
[ ] Code style update (formatting, renaming)
[x] Refactoring (functional, structural)
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?
Not optimal code (in my opinin).
What is the new behavior?
Better code clarity , and better error handling
Additional context
NONE
System under test
NOT RELATED

You reversed the order of checking FileExists and _WD_GetBrowserPath. Doing it this way can lead to problems. For example, what happens if the working directory contains a file named chrome?

I previously tried to explain why this wasn't a good way to do it. Unsure if you didn't read my comment or just didn't understand it. So let us try this again. Run the following code with your revision --
$sFile = @ScriptDir & "\chrome"
FileDelete($sFile)
$sVersion = _WD_GetBrowserVersion('chrome')
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sVersion = ' & $sVersion & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
FileWrite($sFile, "test")
$sVersion = _WD_GetBrowserVersion('chrome')
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sVersion = ' & $sVersion & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

What results did you observe?

_WD_GetBrowserPath ==> Success
_WD_GetBrowserVersion ==> Success
@@ Debug(66) : $sVersion = 98.0.4758.102
>Error code: 0
_WD_GetBrowserVersion ==> File issue
@@ Debug(69) : $sVersion = <IP_ADDRESS>
>Error code: 18

after _WinAPI_GetBinaryType checking
_WD_GetBrowserPath ==> Success
_WD_GetBrowserVersion ==> Success
@@ Debug(66) : $sVersion = 98.0.4758.102
>Error code: 0
_WD_GetBrowserVersion ==> File issue
@@ Debug(69) : $sVersion = 0
>Error code: 18

Now run the same code snippet against the supportOpera code base and post the results.

I believe that you are still missing the point that your version breaks when a file exists that matches the browser name. The intent was to pass the browser name to the UDF, chrome in this case. The UDF shouldn't fail to return the corrrect value just because an arbitrary file with the same name exists in the current working directory.

And it's not a good thing that the UDF returns based on the registry instead of on the basis of the file........ I mean in case when user/coder pass file then UDF should return values based on the file not on the registry.

Agreed. Can you show an example where the current implementation in supportOpera doesn't follow this logic?

Can you show an example where the current implementation in supportOpera doesn't follow this logic?

I was not able because it wors fine.
After my PR check if param contains ""
This also fulfills your condition:

The UDF shouldn't fail to return the corrrect value just because an arbitrary file with the same name exists in the current working directory.

but at the same time have better error handling.

And what about $_WD_ERROR_NotSupported ?

I was not able because it works fine.

Glad to hear it.

Can you agree with my proposal in the current state ?

No, because it isn't a better implementation IMO. You appear to be fixated on the order of events. I'm more concerned about actual functionality.
I can still envision scenarios where your code would fail. For example --
	FileChangeDir("C:\Program Files\Google\Chrome\Application")
	$sVersion = _WD_GetBrowserVersion("chrome.exe")
	ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sVersion = ' & $sVersion & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

While it might be nice to perform FileExist checks first, it presents too many issues that don't exist with the current implementation.

I see your point now. So I will propose here implementation with yours order of events but with my error handling then we will talk again about the code.
Are you ok with that ?


github.pullRequests.getComments({...}) doesn't work

NOT WORKING
http://mikedeboer.github.io/node-github/#api-pullRequests-getComment

/repos/:owner/:repo/pulls/comments/:id

github.pullRequests.getComments({
  owner: 'therobinkim',
  repo: 'jokes',
  number: '1'
})
.then((data) => {
  console.log(data);
});

results in data: []
WORKING
https://developer.github.com/v3/issues/comments/#list-comments-on-an-issue

/repos/:owner/:repo/issues/:number/comments

github.issues.getComments({
  owner: 'therobinkim',
  repo: 'jokes',
  number: '1'
})
.then((data) => {
  console.log(data);
});

results in
data: [ { url: 'https://api.github.com/repos/therobinkim/jokes/issues/comments/204621579',
  html_url: 'https://github.com/therobinkim/jokes/pull/1#issuecomment-204621579',
  issue_url: 'https://api.github.com/repos/therobinkim/jokes/issues/1',
  id: 204621579,
  user: [Object],
  created_at: '2016-04-02T01:10:19Z',
  updated_at: '2016-04-02T01:10:19Z',
  body: 'Thanks JackieeeeeEEEee\n' } ],

I propose github.pullRequests.getComment({ ... }) be removed OR that it taps into the Issues API instead.
First paragraph of https://developer.github.com/v3/pulls/ says:

The Pull Request API allows you to list, view, edit, create, and even merge pull requests. Comments on pull requests can be managed via the Issue Comments API.

I think the necessary change is to clarify that they are review comments:
https://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request

Wait, do you mean pullRequests.getComments or pullRequests.getComment?
The endpoint url mapping in this ticket is incorrect. It should be:
pullRequests.getComments (/repos/:owner/:repo/pulls/:number/comments)
pullRequests.getComment (/repos/:owner/:repo/pulls/comments/:id)


add example with for await

Added an example using asyncIterator (for await)

package-lock.json is already committed, it's a file that change when installing a new package, so it's normal that it changed
asyncIterator needs no flag on node10 (LTS)
I appreciate that people like try to maintain packages, but I regret how inefficient the process is currently, concerning also through2 vs a builtin without added complexity, it's very logic to opt for the latter, whatever the number of download of the former, time changes
I don't think this commit will make it, too bad, have a good week, will close some time later, and avoid contributing here later

No worries. I'm sorry you found the process to be inefficient, and regrettable on your decision. If you'd like to reopen later, please let us know.


MS Edge: swiper-slide conflict with HTML5 video player buttons

This is a (multiple allowed):

[x] bug

[ ] enhancement

[ ] feature-discussion (RFC)

Swiper Version: 3.3.1

Platform/Target and Browser Versions: Windows 10 x64, Microsoft Edge 38.14393.0.0

What you did
A Swiper container with a single slide who contains a standard HTML5 video player.

			<video width="555" height="340" id="video5" controls="">
				<source src="video.mp4" type="video/mp4">
			</video>

Expected Behavior
Edge HTML5 video player buttons should response to click events.
Actual Behavior
Edge HTML5 video player buttons do not response to click events except if you specify 'swiper-no-swiping' class in the video tag.

			<video class="swiper-no-swiping" width="555" height="340" id="video5" controls="">
				<source src="video.mp4" type="video/mp4">
			</video>

Proposed solution
Adding the video tag to formelements
formElements = 'input, select, textarea, button, video'

at
https://github.com/nolimits4web/Swiper/blob/master/src/js/core.js#L1397
solves the issue preventing the event cancelation at
https://github.com/nolimits4web/Swiper/blob/master/src/js/core.js#L1451

Solution applied on this commit


fixes #279 issue

Fixed Command "python setup.py egg_info" failed with error code 1 #279 issue.

Coverage decreased (-1.8%) to 66.435% when pulling 17c8921d5eafc1502400c4712ba77e45af371b8c on laasyasree:first into 5b85d998c30ddc6772b56310713530224466083a on clips:master.

My build has failed for this PR. Can you help me find out where I went wrong?