[DOCS] application environment rest api

What changes were proposed in this pull request?
application environment rest api
How was this patch tested?
jenkins

Test build #73327 has started for PR 17033 at commit 312981b.

Test build #73327 has finished for PR 17033 at commit 312981b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/73327/
Test PASSed.

cc @srowen

cc @vanzin

can you add the bug # for the original change in the title?

@vanzin done

Thanks. Merging to master.


Chromium docs 4138346

Docs Build status updates of commit d8db523:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/devtools-guide-chromium/javascript/disable.md
:white_check_mark:Succeeded

microsoft-edge/devtools-guide-chromium/javascript/images/console-command-javascript.msft.png
:white_check_mark:Succeeded

microsoft-edge/devtools-guide-chromium/javascript/images/console-command.msft.png
:white_check_mark:Succeeded

microsoft-edge/devtools-guide-chromium/javascript/images/console-javascript-disabled-warning.msft.png
:white_check_mark:Succeeded

microsoft-edge/devtools-guide-chromium/shortcuts.md
:white_check_mark:Succeeded

microsoft-edge/toc.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Error when using names/values for arg function returned for env

I would like to have a different label and value for the arg function as follows:
let MY_API_USER = await env("MY_API_USER", async () => {
  return await arg("Select a user for your API", [
    { name: "John", value: 1 },
    { name: "Mindy", value: 2 },
    { name: "Joy", value: 3 },
  ]);
});

await div(
  md(
    `You selected ${MY_API_USER}. Running this script again will remember your choice`
  )
);

But if I do this I get an error:
input?.startsWith is not a function
TypeError: input?.startsWith is not a function
    at global.env (file:///Users/laurisaarni/.kit/api/global.js:49:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async file:///Users/laurisaarni/.kenv/scripts/choose-an-environment-variable.js

The second argument to env must be a list of Choices. That can be e.g. a string array, or something more complex. Right now, you're passing a number (your value) 1, 2 or 3 as the second argument, which won't work.


Invalid URI error?

What version of electron-installer-windows are you using?
2.0
What version of node and npm are you using?
4.0.0   3.8.6
What operating system are you using?
Win 8.1
Can you compile the example app successfully?
yes
If not, paste here the output of the following commands:
$ git clone https://github.com/unindented/electron-installer-windows.git
$ cd electron-installer-windows/example
$ DEBUG='electron-installer-windows' npm run build

What did you do? Please include the configuration you are using for electron-installer-windows.
Tried to create the installer.
electron-installer-windows --src release/win32-x64/app-win32-x64 --dest dist/installers/ --options.version 0.1
What did you expect to happen?
create the installer
What actually happened?
Creating package (this may take a while)
[Error: Error creating package: Error executing file (1):

electron-installer-windows\vendor\nuget\NuGet.exe pack C:\Users\\AppData\Local\Temp\electron-116418-7308-13rc54g\app_0.1\nuget\xcheque-dev-tools.nuspec -BasePath C:\Users\user\AppData\Local\Temp\electron-116418-7308-13rc54g\app_0.1\app -OutputDirectory C:\Users\scheeren\AppData\Local\Temp\electron-116418-7308-13rc54g\xcheque-dev-tools_0.1\nuget -NoDefaultExcludes
Invalid URI: The format of the URI could not be determined.
] 'Error: Error creating package: Error executing file (1):   \\nuget -NoDefaultExcludes\nInvalid URI: The format of the URI could not be determined.\r\n\n    at D:\\Projects\\app\\node_modules\\electron-installer-windows\\src\\installer.js:273:21\n    at ChildProcess.<anonymous> (D:\\Projects\\app\\node_modules\\electron-installer-windows\\src\\installer.js:62:5)\n    at emitTwo (events.js:92:20)\n    at ChildProcess.emit (events.js:172:7)\n    at maybeClose (internal/child_process.js:817:16)\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)'

Can you post your configuration?

Same error thrown for me.  Here is the complete error I get.
[Error: Error creating package: Error executing file (1):  mono /usr/local/lib/node_modules/electron-installer-windows/vendor/nuget/NuGet.exe pack /tmp/electron-11652-41770-spne7w/laerdal-catalog_1.0.0/nuget/laerdal-catalog.nuspec -BasePath /tmp/electron-11652-41770-spne7w/laerdal-catalog_1.0.0/laerdal-catalog -OutputDirectory /tmp/electron-11652-41770-spne7w/laerdal-catalog_1.0.0/nuget -NoDefaultExcludes Invalid URI: The format of the URI could not be determined. ] 'Error: Error creating package: Error executing file (1): \nmono /usr/local/lib/node_modules/electron-installer-windows/vendor/nuget/NuGet.exe pack /tmp/electron-11652-41770-spne7w/laerdal-catalog_1.0.0/nuget/laerdal-catalog.nuspec -BasePath /tmp/electron-11652-41770-spne7w/laerdal-catalog_1.0.0/laerdal-catalog -OutputDirectory /tmp/electron-11652-41770-spne7w/laerdal-catalog_1.0.0/nuget -NoDefaultExcludes\nInvalid URI: The format of the URI could not be determined.\n\n    at /usr/local/lib/node_modules/electron-installer-windows/src/installer.js:273:21\n    at ChildProcess.<anonymous> (/usr/local/lib/node_modules/electron-installer-windows/src/installer.js:62:5)\n    at emitTwo (events.js:92:20)\n    at ChildProcess.emit (events.js:172:7)\n    at maybeClose (internal/child_process.js:817:16)\n    at Socket.<anonymous> (internal/child_process.js:319:11)\n    at emitOne (events.js:77:13)\n    at Socket.emit (events.js:169:7)\n    at Pipe._onclose (net.js:469:12)'

I got this error by accidentally setting:
"icon": "./assets/images/logo.png"

to
"iconUrl": "./assets/images/logo.png"

If you're using iconUrl at all it needs to be a valid URI otherwise it will fail.

Ah, mystery solved then. They were surely entering an invalid URL in the iconUrl field.
Thank you @ahallicks!

{
"iconUrl": "./assets/images/logo.png",
"icon": "./assets/images/logo.png",
"tags": [
"Utility"
],
"authors":["Author Name"],
"description":"Description goes here",
"productDescription":"ProductDescription goes here"
}
I am still getting the same error... "Invalid URI: The format of the URI could not be determined."
Can anybody help me please?

@geek4teck to quote my last post:

If you're using iconUrl at all it needs to be a valid URI otherwise it will fail.

i.e. you need to host the icon somewhere online and refer to the full href of it

@ahallicks - Thanks for your quick response.
I posted a HTTPS URL, but it's still the same.
{
"iconUrl": "https://quiz.advisorymandi.com/assets/img/assets/navBG/2.png",
"tags": [
"Utility"
],
"authors":["Author Name"],
"description":"Description goes here",
"productDescription":"ProductDescription goes here"
}

Even if i skip iconURL the same thing happens.
If i do a local resource or I do http or I do https by all means I get this error
Invalid URI: The format of the URI could not be determined.
Can you please help me?

I just got this working now. I am pasting my solution here, might help somebody in future...
 "clean": "rimraf dist", "build": "electron-packager . --out=dist --asar --overwrite", "setup": "electron-installer-windows --src dist/App-win32-x64/ --dest dist/installers/ --config config.json ", "final": "npm run clean && npm run build && npm run setup"
All i did is npm run final which does cleanup first, then build and then setup.
It worked just perfect, so probably I was missing rimraf dist originally


[verilator] Only control the reset line when necessary

The previous code was calling SetReset() and then UnsetReset() for
every cycle after the initial reset, which I noticed because I was
using a watchpoint to debug something else.
This seems a bit unnecessary, so this patch gets rid of that. It also
changes the logic to only call SetReset() and UnsetReset() on the
"edges". This should be equivalent, but it's a bit more obvious what's
going on.

Good find, thanks!

Good find, thanks!


3.5 regression: invalid type for index lookup using constrained generic

TypeScript Version:  3.5.2

Search Terms: generic constraint constrained index lookup function union
Code
type MyRecord = {
    foo: { foo: number };
    bar: { bar: number };
};

type Tag = keyof MyRecord;

type MyUnion = MyRecord[Tag];

declare const values: {
    foo: MyRecord['foo'];
    bar: MyRecord['bar'];
};

declare const fns: {
    foo: () => MyRecord['foo'];
    bar: () => MyRecord['bar'];
};

declare const predicates: {
    foo: (value: MyUnion) => value is MyRecord['foo'];
    bar: (value: MyUnion) => value is MyRecord['bar'];
};

<T extends Tag>(tag: T) => {
    // 1.
    {
        const value = values[tag];
        type ExpectedType = MyRecord[T];
        // Expected: no error
        // 3.4 and 3.5: works as expected
        const test: ExpectedType = value;
    }

    // 2.
    {
        declare const value: MyUnion;
        // Expected: error
        // 3.4: no error
        // 3.5: works as expected
        const desired: MyRecord[T] = value;
    }

    // 3.
    {
        const fn = fns[tag];

        type ExpectedType = () => MyRecord[T];
        // Expected: no error
        // 3.4: works as expected
        // 3.5: unexpected error
        const test: ExpectedType = fn;
    }

    // 4. (this is our real world use case)
    {
        declare const value: MyUnion;
        const predicate = predicates[tag];

        if (predicate(value)) {
            // Expected: no error
            // 3.4: works as error
            // 3.5: unexpected error
            const desired: MyRecord[T] = value;
        }
    }
};

Could this be related to https://github.com/microsoft/TypeScript/pull/30769?
It seems 3.5 fixed something which made example 2 (above) begin failing as it always should have, but this change in turn meant that examples 3 and 4 started to fail (which I believe they shouldn't).

Yes, this is an effect of #30769. In example 4 you're assigning a { foo: number } | { bar: number } to a MyRecord[T]. That may be correct (which was as far as 3.4 checked it), but it isn't known to be correct (which is what 3.5 checks). For example, it isn't correct if value is a { foo: number } and T is "bar".

In example 4 you're assigning a { foo: number } | { bar: number } to a MyRecord[T]

In example 4, shouldn't value be narrowed to MyRecord[T]? The reason I think that is because we index into predicates with T, which should mean the resulting predicate's type predicate will match MyRecord[T].

For example, it isn't correct if value is a { foo: number } and T is "bar".

IIUC, that should be impossible, because the predicate type predicate would always correspond to T. For example, if T is "bar", value would always be { bar: number }.
(Sorry if I'm being slow here, and thanks so much for your help!)

In example 4 you're trying to narrowing something concrete to something generic using concrete predicates. In general TypeScript will never produce something generic from something concrete.
You're implicitly assuming assuming that there is a concrete lower bound on T; that is, there are no types assignable to "foo" | "bar" other than "foo" or "bar", and that also have values (so not never).
Personally I think this is dubious reasoning, but that is besides the point because TypeScript doesn't do this reasoning anyway.
I think the way to write this would be to pass in a generic predicate function:
type Predicates<T extends Tag> = {
    [K in T]: (value: MyUnion) => value is MyRecord[K];
}

<U extends Tag, T extends U>(tag: T, predicates: Predicates<U>) => {
///
}

@jack-williams Could you please elaborate why this is dubious reasoning?
What else then

'foo'
'bar'
'foo' | 'bar'
never
'foo' & 'bar' (which is also never since #31838)

is assignable to "foo" | "bar"?

I'm also curious to know the answer to @karol-majewski's question.
@jack-williams

In example 4 you're trying to narrowing something concrete to something generic using concrete predicates.

Can't the same be said for example 1? IIUC, the only difference is instead of concrete predicates/functions we have concrete values.

I think the way to write this would be to pass in a generic predicate function:

Unfortunately this workaround would defeat the point of our function, which is: given a tag from a tagged union, pass the given union value into a given function if the value has the required tag.
For context, here is our real world use case in full:
const runFnIf = <T extends Tag>(tag: T, fn: (value: MyRecord[T]) => void) => (value: MyUnion) => {
    const predicate = predicates[tag];

    if (predicate(value)) {
        // Expected: no error
        // 3.4: works as error
        // 3.5: unexpected error
        fn(value);
    }
};

const runMyFnIfFoo = runFnIf('foo', foo => {
    foo.foo;
});

declare const myUnion: MyUnion;
runMyFnIfFoo(myUnion);

Using the names Foo and Bar for { foo: number } and { bar: number }, your predicate variable has type
{ foo: (value: Foo | Bar) => value is Foo, bar: (value: Foo | Bar) => value is Bar }[T]

but that is not the same as
(value: Foo | Bar) => value is { foo: Foo, bar: Bar }[T]

which is the type predicate would need in order to narrow value to { foo: Foo, bar: Bar }[T]. You need a type assertion to convince the checker:
const predicate = predicates[tag] as (value: Foo | Bar) => value is { foo: Foo, bar: Bar}[T];

Without the type assertion, in the call predicate(value) the checker uses the constraint of T (i.e. 'foo' | 'bar') and ends up with the type (value: Foo | Bar) => value is Foo | Bar, which narrows value to the type it already has.
The reason it worked in 3.4 is the unsound checking we previously did for assignments to indexed access types (i.e. we'd allow Foo | Bar to be assigned to { foo: Foo, bar: Bar}[T]).

Thanks for the helpful reply @ahejlsberg.

{ foo: (value: Foo | Bar) => value is Foo, bar: (value: Foo | Bar) => value is Bar }[T]

but that is not the same as
(value: Foo | Bar) => value is { foo: Foo, bar: Bar }[T]

I'm struggling to see why the above two types can't be proved to be the same.

If T is 'foo', they would both "end up" as (value: Foo | Bar) => value is Foo.
If T is 'bar', they would both "end up" as (value: Foo | Bar) => value is Bar..
If T is 'foo' | 'bar', they would both "end up" as (value: Foo | Bar) => value is Foo | Bar.

Is there a case I'm missing where T is something else and in which case the above two types would not end up the same?

Hoping we can still get some response to https://github.com/microsoft/TypeScript/issues/32017#issuecomment-506303695 before this issue becomes locked.

@karol-majewski
I think it's dubious reasoning because it violates parametricity and makes assumptions that are not future compatible. As I've mentioned before (probably to the tedium of others), the assumption that the only subtypes of "foo" | "bar" are the ones you list does not hold under name-subtyping, which is some I'd like to see in the future.
For example:
declare function swap<T extends "foo">(x: readonly ["foo", T]): readonly [T, "foo"];

The function swap really should (IMO) be the function that returns a new tuple with the elements swapped. However, if you follow the reasoning that you propose it could implemented by a function that returns the input unmodified.
Assuming that the type "foo" is denoted by a singleton set, rather than a set of uniformly behaving values, is unnecessarily transparent. IMO it just adds holes to the type-system that don't need to be there.
The correct thing to do would be to add lower-bounds on the type - then it's safe to start assuming the sets that directly implement it.

Even today "foo" & { sketchy: "brand" } is a subtype of "foo".

@jack-williams @RyanCavanaugh thank you for your answers!
Just to make sure: is this explanation correct then? 👇

Using T instead of "foo" | "bar" indicates a subtype relationship, so T gets limited from the top by "foo" | "bar" but in theory can be a subtype of that union. I know it's not practical, but it falls under the laws described by the specification.
declare function test<T extends "foo" | "bar">(arg: T): void;

declare const argument: ("foo" & { length: 0 }) | "bar";

test(argument) // Passes

Even if something is a subtype of "foo", then it still counts as "foo" (covariance) and indexing should work just fine.

@karol-majewski Yep

Even if something is a subtype of "foo", then it is still "foo" (covariance) and indexing should work just fine.

To elaborate: indexing using a T for something expecting a "foo" is fine - it is the converse that will not work.


echo server crash from ICMPv6 NS source link layer address anomaly

Defensics test case 10912:<PHONE_NUMBER>G ICMPv6.NDP.Neighbor-solicitation.Neighbor-Solicitation.IPv6-Packet.payload.protocol.icmpv6-message.ndp-neighbor-solicitation.options.ndp-options.RFC2461-source-link-layer-address.element   Repeat+of+128+octets%3A+type+length+data
This test case crashes echo server in QEMU.
icmpv6-ns-10912.zip
[net/ipv6] [DBG] handle_ns_input: (0x004037c0): Received Neighbor Solicitation from fe80::8c0:deff:fefc:102f to ff02::1:ff00:1, target 2001:db8::1
[net/nbr] [DBG] net_nbr_ref_debug: (0x004037c0): nbr 0x0041f080 ref 1 (net_nbr_get():81)
[net/ipv6] [DBG] nbr_new: (0x004037c0): nbr 0x0041f080 iface 0x0041fb00 state 0 IPv6 fe80::8c0:deff:fefc:102f
[net/ipv6] [DBG] net_ipv6_send_ns: (0x004037c0): Sent Neighbor Solicitation from fe80::1200:ff:fe00:10 to ff02::1:fffc:102f, target fe80::8c0:deff:fefc:102f
[net/ipv6] [DBG] net_ipv6_nbr_add: (0x004037c0): [0] nbr 0x0041f080 state 0 router 0 IPv6 fe80::8c0:deff:fefc:102f ll 0A:C0:DE:FC:10:2F iface 0x0041fb00
[net/ipv6] [DBG] net_ipv6_send_na: (0x004037c0): Sent Neighbor Advertisement from 2001:db8::1 to fe80::8c0:deff:fefc:102f, target 2001:db8::1
[net/ipv6] [DBG] check_route: (0x004037c0): No default route to fe80::8c0:deff:fefc:102f
[net/ipv6] [DBG] net_ipv6_prepare_for_send: (0x004037c0): Neighbor lookup 0x0041f080 (0) iface 0x00000000 addr fe80::8c0:deff:fefc:102f state incomplete
[net/ipv6] [DBG] net_ipv6_prepare_for_send: (0x004037c0): Neighbor 0x0041f080 addr 0A:C0:DE:FC:10:2F
***** CPU Page Fault (error code 0x00000010)
Supervisor thread executed address 0xc00a1001
PDE: 0x00 Non-present, Read-only, Supervisor, Execute Enabled
PTE: 0x00 Non-present, Read-only, Supervisor, Execute Enabled
Current thread ID = 0x004037c0
Faulting segment:address = 0x0008:0xc00a1001
eax: 0x00000000, ebx: 0xc00a1001, ecx: 0x0040c450, edx: 0x00000000
esi: 0x2f10fcde, edi: 0xc00a1001, ebp: 0x2f10fcde, esp: 0x0040c51c
eflags: 0x246
Fatal fault in essential thread! Spinning...
Terminate emulator due to fatal kernel error

enabling these configs get it working fine
CONFIG_DEBUG_OPTIMIZATIONS=y
CONFIG_MAIN_STACK_SIZE=2024
If only stack size is grown it also crashes. So the solution is to grow stack size and enable debug optimizations.

ok, it still crashes with a larger link layer address in NS option
icmpv6-ns-10919.zip


MongoDB Support status

Does this package currently support mongodb or integration with jenssegers/laravel-mongodb ?

@naysumyat there is no support for mongodb yet.


Add the gitlab namespace to get the root secret

To avoid the following error Error from server (NotFound): secrets "gitlab-gitlab-initial-root-password" not found we need to specify --namespace gitlab
Thank you for wanting to submit a Pull Request to the Civo Kubernetes Marketplace repository!
If your pull request concerns an existing Marketplace application, please make sure you have:

[x] Notified the Maintainer of the application in this pull request so that they are aware of your proposal.
[x] Outlined the changes you are proposing, and the reasons these are required (e.g. stability, compatibility with new versions of Kubernetes implementations, etc).
[x] Tested that the application works with the proposed updates applied (including a screenshot)

👋 @saiyam1814

Thank you for the PR, if you see the current code in the repo it says -n gitlab, the thing is I forgot to push that to prod, will do by EOD today.

The current code is having -n gitlab , hence closing the PR


⚠ Bofrost.hr has degraded performance

In 5aa709b, Bofrost.hr (https://www.bofrost.hr) experienced degraded performance:

HTTP code: 200
Response time: 2055 ms

Resolved: Bofrost.hr performance has improved in de2e71a.


Data-binding with <oh-text-input> React component can cause re-rendering issues if user types too fast

Following a common data-binding pattern with text inputs using the LDK's React components causes an issue where it appears delayed re-renders overwrite subsequent changes. Using data-binding is useful in our Loops when we'd like to programmatically "clear" the input by simply changing the bound variable in our state.
Olive LDK Version: 3.4.0
Steps to reproduce:

I created a simple component with a text input:

import React, { useState } from 'react';

export const TexasFormularyWhisper = () => {
  const [state, setState] = useState('');

  return (
    <oh-whisper label={'Medicaid Formulary Search: Texas'} onClose={() => {}}>
      <oh-text-input
        label="hello"
        value={state}
        onChange={(_, val) => setState(val)}
      />

      <oh-markdown body={`User typed: ${state}`} />
    </oh-whisper>
  )
};

And rendered this Whisper component in a separate module:
import * as ReactWhisper from '@oliveai/ldk/dist/whisper/react/renderer';
import { TexasFormularyWhisper } from './whisper';

(async () => {
  ReactWhisper.renderNewWhisper(<TexasFormularyWhisper />);
})();

If a user types too fast into this text input, letters can get chopped off. See the video for an example. It's a bit hard to see in my first attempt, but more clear on my second attempt:

https://user-images.githubusercontent.com/4752973/140179711-a56a6023-9be4-4a8f-af63-0868fd0d2952.mp4
Thanks @richseviora for providing more insight into this earlier this week.

Thanks for the example! If we're dropping the correct state at any point in time, that certainly would be a problem. But, I'm trying to get the behavior that you're describing to happen locally, but I'm not seeing it. I do have a couple of thoughts / observations though (not trying to dismiss this as a possible bug).

In trying to get this bug to trigger, I would run my finger along a row of my keyboard, back and forth. This was inputting characters faster than what it looks like in your video, yet I was unable to get a similar result of characters missing.
Why I might not be able to reproduce it might be because this isn't a logic bug with the component itself, but a performance bug with the system. What kind of specs does your computer have?

Hey @BrettMugglinOlive , thanks for taking a look.
Indeed, it may be related to performance. I notice the issue is more prevalent when I have more whispers open or a whisper with several elements to render.
My system is a Dell XPS 13 2020; however, since I am on Ubuntu, I must run Olive Helps in a Windows VM, which has 8GB of RAM, and access to 2 cores of the host PC's i9-10885H cores (@ 5.3Ghz). I briefly allocated 8 cores to my VM and bumped the RAM to 16GB, but still experienced the issue. Maybe inherent performance repercussions to using OH in VMWare?
I notice the issue more clearly in this simplified version of a Feedback whisper we have with multiple bound variables:
export const Feedback = () => {
  const [inputs, setInputs] = useState({
    feedbackFormName: '',
    feedbackFormEmail: '',
    feedbackFormFeedback: '',
  });

  const handleInput = (key: string, value: string) => {
    setInputs((inputs) => ({
      ...inputs,
      [key]: value,
    }));
  };

  return (
    <oh-box direction={whisper.Direction.Vertical} justifyContent={whisper.JustifyContent.Center}>
      <oh-text-input
        id="feedbackFormName"
        label="Your Name"
        value={inputs.feedbackFormName}
        onChange={(_, val) => handleInput('feedbackFormName', val)}
      />

      <oh-text-input
        id="feedbackFormEmail"
        label="Email Address"
        value={inputs.feedbackFormEmail}
        onChange={(_, val) => handleInput('feedbackFormEmail', val)}
      />

      <oh-text-input
        id="feedbackFormFeedback"
        label="Feedback"
        value={inputs.feedbackFormFeedback}
        onChange={(_, val) => handleInput('feedbackFormFeedback', val)}
      />
    </oh-box>
  );
};

Out of curiosity, I tested a vanilla React equivalent in Edge browser on my VM, but was not able to replicate the issue there.
Please let me know if there's anymore information I can provide to help diagnose this issue.

Hmm...I still don't seem to be able to replicate the bug. I'll have someone who has a windows machine give it a go and see if it happens for them.

Hi! I just wanted to reach out because I am experiencing a similar issue. Attached is some test code and a video to show the issue. In the video, I am typing "this is a test I am typing really quickly", but that isn't what is showing up because some of the letters get cut off.
import { Direction, JustifyContent } from '@oliveai/ldk/dist/whisper';
import React, { useState } from 'react';

export const Example = () => {
  const [value, setValue] = useState('');

  return (
    <oh-box direction={Direction.Vertical} justifyContent={JustifyContent.Left}>
      <oh-text-input label="testing" onChange={(_, val) => setValue(val)} value={value} />
    </oh-box>
  );
};

https://user-images.githubusercontent.com/26147799/140814892-4984ae25-2802-4df6-875a-64e1069f2e29.mov

@kyuhas @kevinfiol Perhaps I'm not as fast a typist as both of you but even with the example provided in the previous comment, typing what you typed I still can't seem to make it happen locally. I'll attach a recording of what I saw. Note, that I am on a Macbook Pro with 16GB RAM and a 2.6 GHz 6-core i7 processor.
@kyuhas Are you also working through a VM when you see this issue occur?
https://user-images.githubusercontent.com/77070962/143136680-1c4561bb-79d2-47e1-8c78-8d6bc68838ec.mov

@BrettMugglinOlive No, I am not working through a VM when I see that issue. I'm on a Macbook Pro with 32 GB RAM and a 2.3 GHz 8-Core Intel Core i9 processor. I noticed that it's kind of inconsistent. If I type super quickly, I'll usually see it, but if I'm typing at a slightly slower pace, I'll only sometimes see it. Other times, I could be typing very slowly and still see it (e.g. if I clear out all the text and then start typing again).

@kyuhas @kevinfiol Alright, so I worked with @MaggieMaSS, and she was able to reproduce the issue that you are showing. For what it's worth, the only spec difference between our Macbooks seems to be that I have a 4GB graphics card, and she has a 1.7GB one.
Our theory is that this is a problem rooted in React and Olive Helps competing with each other for updates in a race condition. Every time you call setValue React re-renders, and causes a Whisper update to occur. By the time the update occurs and pushes data back up, if you're typing fast enough, the UI is in a more current state than what the Whisper thinks it is...or something along those lines. I haven't identified the true root cause yet, but this seems plausible. I creates HELPS-2400 to address this.
But, you're in luck, cause we also identified a (hacky) workaround for this problem! Ultimately, this is a timing issue. So, we just need to change the timing of the sequence of events a bit to fix the UX while still holding onto the value. I used some timeouts in order to shift the call to setValue to occur only after the user had stopped typing for some period of time. I confirmed that this fixed the issue on @MaggieMaSS's environment.
Hopefully this is a good enough workaround for now, because I think finding and fixing the root cause of this might be a bit of a bear. Let me know if this works / if you have any other questions!
The hax:
import React, { useState } from 'react';

export const Example = () => {
  const [value, setValue] = useState('');

  let t = setTimeout(() => {
    // do nothing
  }, 0);

  return (
    <oh-box direction={Direction.Vertical} justifyContent={JustifyContent.Left}>
      <oh-text-input
          label="testing"
          onChange={(_, val) => {
            clearTimeout(t);
            t = setTimeout(() => {
              setValue(val);
            }, 500);
          }}
          value={value}
      />
    </oh-box>
  );
};```

@BrettMugglinOlive I'm glad you guys were able to replicate it! We have been debouncing the state updates as a work around for now as well. While it's not a seamless workaround, it definitely improves the experience.

I was able to reproduce this outside of react whispers. I'm on one of the new m1 macs with 32gb ram.
Our whisper is fairly complex and I have more than one open.
The debounce trick works for now, but would love to see this fixed!

@kevinfiol @kyuhas @ssteuteville So, we've been looking into this issue, but have ultimately decided to not fix it for the time being. It seems like the issue (which can be more easily seen on slower hardware) is a race condition between what the internal value in Olive Helps of an input is vs. what the external (what you're holding in state) is.
The recommendation from the UI team is to only update your local state's value in the onChange function, and not pass in a value attribute unless you are trying to programmatically change that input's value. But, if debouncing is working, then that is fine too!
I'm going to close this thread for now, but feel free to reopen it if you feel strongly that we need to address this issue.


Update cert-manager to v1.4.2

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Update cert-manager to the latest release.
Which issue(s) this PR fixes:

None
Does this PR have test?
None

Special notes for your reviewer:
None
Does this PR introduce a user-facing change?

None

Codecov Report

Merging #558 (eb291d1) into master (ff77a20) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #558   +/-   ##
=======================================
  Coverage   44.39%   44.39%
=======================================
  Files          26       26
  Lines        1347     1347
=======================================
  Hits          598      598
  Misses        709      709
  Partials       40       40

/test pull-security-profiles-operator-test-e2e

/lgtm


Bug with testAllMethods

When executing testAllMethods the method StrikeFont class >> dejaVuSansBold12Form leads to an endless loop

Poppy-Printing the test itself also doesn't work

This is not really an issue as it doesn't lead to an endless loop but rather it takes very long to format certain methods, that contain large data arrays.


test

test

What are those test PRs for? Bear in mind that every developer is alerted after every pr lol

Sorry, sometimes i forgot to change the Repo or branch for mine and send PR to the Main :-(


[Bug] 0.38.8 画框选择区域的时候，图片模式不能生成图片了

Steps to reproduce
画框选择区域的时候，图片模式不能生成图片了
Expected behavior
本来应该生成图片，插入笔记文档中
Actual behavior
实际上插入了链接，但没有生成图片
Screen recordings or screenshots (sandbox vault)
没有
Obsidian debug info
没有
PDF++ debug info
没有

Error messages
没有报错

I only understand Japanese and English so please write bug reports in either of these languages (preferably in English so that more people can understand it) using some auto-translation tool.
 Please do not intentionally ignore the bug report template.
I'm closing this issue but feel free to recreate a new issue following the above instructions. Thanks!


Typo in changelog

Release 1.8, otff.htm, duplicate 'gvar' - pretty sure you meant 'fvar' for one of them:
Added new tables (CFF2, 'avar', 'cvar', 'gvar', 'gvar', HVAR, MVAR, VVAR, STAT) and notes on OpenType Font Variations.

Thank for letting us know. This has been fixed.


Fixed the build status badge link in README.rst

JIRA: https://openedx.atlassian.net/browse/BOM-2267

@Jawayria I don't understand how this change is related to https://openedx.atlassian.net/browse/BOM-2267? is there another related ticket?

@Jawayria I don't understand how this change is related to https://openedx.atlassian.net/browse/BOM-2267? is there another related ticket?


Add restore scroll option to CacheSnapshot getter

fix #415
TODO support scroll from bottom usecase

It would be great to support not only scroll from bottom use case, but also allow to set any initial scroll position. Something like this:
initialScrollOffset?: number; initialScrollIndex?: number |  ScrollToIndexOpts & { index: number };

Update to my last comment: initialScrollOffset might be hard to implement, if it's not restoring from snapshot case. It probably would need to do some measurements in order to  work correctly. So personally for me initial index (with ScrollToIndexOpts support) would be enough :)

Prefer #455


Replace XDCHECK in lambda with assert for gcc-8.5

XDCHECK (or XCHECK) fails here for gcc-8.5 here in a lambda, so we replace it with an assert. This occurs in CacheBench's AsyncCacheStressor.h.
/__w/CacheLib/CacheLib/cachelib/../cachelib/cachebench/runner/AsyncCacheStressor.h:306:7:
internal compiler error: in cp_build_addr_expr_1, at cp/typeck.c:5965

This line compiled fine with 8.5 before Jan 2023 so I suspect a regression in folly or other external library. It still compiles fine with gcc-7.5, 9.4, and 11.3.1. Possibly related commits: https://github.com/facebook/folly/commit/1aafad45f316896a7504396f421dacd6c10d7d5f and https://github.com/facebook/folly/commit/e6d09f66b9fc473bc108361d4c8dce8f29f7bcaf
Line of gcc-8.5 that it fails on: https://github.com/gcc-mirror/gcc/blob/releases/gcc-8.5.0/gcc/cp/typeck.c#L5965
The version that isn't in a lambda compiles just fine: https://github.com/facebook/CacheLib/blob/df5b9f6ef35c55e432b6713c52397a03dd19c34c/cachelib/cachebench/runner/CacheStressor.h#L399
Test Plan: GitHub actions. Built fine on my fork with CentOS 8.5/gcc-8.5. This issue currently causes 3 builds that use gcc-8.5 to fail (2 CentOS and RockyLinux-8.6).

All builds now pass, except for Debian, which should be fixed by #200. (Also excluding the rpm-builds.)


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 199 ms

Resolved: ClamAV performance has improved in 9c374aa.


role_arn with web_identity_token_file compatibility

Tell us more about this new feature.
I'm working in a Kubernetes/Kubflow environment deployed on EC2 with S3 credentials set up using role_arn with web_identity_token_file and keep receiving the S3Exception: Client error: No signing credentials found error. I wanted to know if the connector works with these credentials.
I reviewed this closed issue which led me here which led me here. Using this information I set up my ~/.aws/config to match and created an environment variable AWS_PROFILE set to "web-identity" to use the profile by default. This did not work for the connector (v1.2.3) but boto3 did not have any issues with the same setup. The example code used for testing is listed below.
# In ~/.aws/config

[profile web-identity]
role_arn=arn:aws:iam:123456789012:role/RoleNameToAssume
web_identity_token_file=/path/to/a/token

import s3torchconnector

import os
import boto3
import botocore
import io
import itertools
from PIL import Image
import torch
import torchdata
import torchvision
import webdataset

#Testing in a jupyter notebook and using notebook magic to set the environment variable
%set_env AWS_PROFILE=web-identity
%env AWS_PROFILE
!aws sts get-caller-identity
!aws s3 ls
# Prints environment variable
# Lists identity
# Lists Buckets

IMAGES_URI = <DATASET URI>
REGION = <REGION>
dataset = s3torchconnector.S3MapDataset.from_prefix(IMAGES_URI, region=REGION)

object = dataset[42]
# S3Exception: Client error: No signing credentials found

s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)
# Lists Buckets

Hello @harsh-agarwal-93,
Thank you for your interest in Amazon S3 Connector for PyTorch. The issue you're facing seems to be related to the one reported at https://github.com/awslabs/mountpoint-s3/issues/675. In that case, setting the AWS_DEFAULT_REGION environment variable helped resolve the problem. You could try the same approach and set the AWS_DEFAULT_REGION environment variable to the appropriate AWS region for your use case. If this solution doesn't work for you, kindly inform us, and we'll explore further alternatives.

I am going to close this issue for now, please let us know if you have any other questions.


Readme: Fix link to ERC20 implementation

What was wrong?
Link in the Readme to the ERC20 implementation does not work
How was it fixed?
Added the link I believe is the right one: https://github.com/ethereum/fe/blob/master/compiler/tests/fixtures/demos/erc20_token.fe

Thanks for taking the time to send a fix for this Franzi! :pray:


ISPN-7641 Do not use the Triangle when in server mode

https://issues.jboss.org/browse/ISPN-7641

run performance tests please
cs

@pruivo Investigating ...

@Holmistr not needed. I found a problem :)

@pruivo We're well oiled machine ;-)

run performance tests please
cs

updated with JIRA and inverted the condition.

run performance tests please
cs

run performance tests please
library dist writes

Don't you think it's going to be confusing to have different "interpretations" of the same configuration files?
I think I'd rather have an explicit option, and the configuration files provided for server mode to use different - yet explicit - configuration regarding this.

To be honest, I'd rather not add explicit configuration for this: we already have too many options. I think this falls under the "ergonomics" category, i.e. choose one strategy over another based on the environment. Placing the burden on the user to understand yet another option is even less ideal than the solution used here
Ideally I'd prefer the triangle code to have code paths for this specific case, but for now this will do until we find a better solution.

Fair enough, but will we have some debugging facility to know what Infinispan is configured to do?
i.e. show the operating mode over JMX ?
I'd not want to get back into the "dark ages" in which I was not able to help anyone using Infinispan configured via WildFly's own configuration mechanism because the defaults would not be the same as I was used to...

+1, I'd like to keep this in the configuration as "computed attributes" that cannot change. (Not sure if they should be in the builder at all, maybe only in the configuration.) That would be nice for the write skew check and versioning settings as well.

@Sanne the interceptor list is printed in the beginning when in debug mode. If it has any triangle interceptor, it is using the triangle, otherwise it is not.

Maybe it is worth to say that I don't want this to be a definitive solution. I would like to improve the triangle in order to user per-key versioning to order the updates between primary->backup (instead of per-segment ordering). This would achieve similar performance to the old algorithm and it can be used server mode again.

@pruivo @tristantarrant WDYT about adding a generic PrivateConfiguration module configuration for settings that we don't want to expose in the configuration because they're experimental or only useful in a very restricted set of circumstances?

Yes, I like it.

+1 it's probably worth having a generic "conventional" way of expressing any such configuration property which we don't really want to expose.. as this won't be a unique case I guess. It would actually be nice to migrate more "ergonomic options" to maybe a read-only section of the configuration?
Just please don't have people re-run their app with debug level just to figure out how it's configured, but I don't mean this "wish" to block this PR.. just a suggestion to improve on for the future headaches prevention.

what do you suggest @Sanne?

To ignore me for now and move on ;)

and then follow @danberindei 's suggestion, hopefully in a timely way so that this won't cause too much confusion.

document the approach for "private configurations" in a wiki and recommend everyone to take a look to other options which could benefit from a similar approach. E.g. I'm thinking in Query we could also simplify a lot of stuff, I never wished to take away some "advanced options" as in some corner cases the options are needed, but a simplification would be welcome.

@Sanne @danberindei @tristantarrant I've added the PrivateGlobalConfiguration. let me know what you think.

updated!

run performance tests please
cs dist writes

I see there are some failures related to joiners / leavers, but I doubt they are related

Ok, verified locally and everything works well.

Merged. Thanks @pruivo

@pruivo The perf test fail is not related to this PR, just FYI. As this is integrated now, I won't retrigger the tests.


[GEN] Update OCL built-ins available list

removed incorrect OCL variants from 2Dblockread.
added OCL variants for 2Dblockprefetch that are now available.

Can we have a commit message explaining the change? LGTM

Done.


Update Kptfile

Per discussion with kpt team member, isSet should not be in the Kptfile in published packages

Per discussion with kpt team member, isSet should not be in the Kptfile in published packages


Setup CI pipeline for reconciliation

Description
Code changes committed to the reconciler repository have to picked up by a CI system (Prow) and trigger a build and unitest/e2e test run.
Reasons
Establish CI driven development approach.
Attachments

There are now one pre-submit and one post-submit job which run the release target on the Makefile. Prow integration with the repository is also done. This should be enough for now, but, in the future, we can also add e2e integration jobs.


Slotted attrs classes can't pass keyword arguments to init_subclass

With attrs 19.1.0:
In [8]: @attr.s(slots=True)
   ...: class Base:
   ...:     def __init_subclass__(cls, *, value, **kwargs):
   ...:         cls.value = value
   ...:         print("init_subclass {!r}".format(cls))
   ...:         super().__init_subclass__(**kwargs)
   ...:

In [9]: @attr.s(slots=True)
   ...: class Derived(Base, value="hi"):
   ...:     foo = attr.ib()
   ...:
init_subclass <class '__main__.Derived'>
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-e7b7be099da9> in <module>
      1 @attr.s(slots=True)
----> 2 class Derived(Base, value="hi"):
      3     foo = attr.ib()
      4

[...]venv/lib/python3.6/site-packages/attr/_make.py in wrap(cls)
    950                 )
    951
--> 952         return builder.build_class()
    953
    954     # maybe_cls's type depends on the usage of the decorator.  It's a class

[...]venv/lib/python3.6/site-packages/attr/_make.py in build_class(self)
    503         """
    504         if self._slots is True:
--> 505             return self._create_slots_class()
    506         else:
    507             return self._patch_original_class()

[...]venv/lib/python3.6/site-packages/attr/_make.py in _create_slots_class(self)
    627
    628         # Create new class based on old class and our methods.
--> 629         cls = type(self._cls)(self._cls.__name__, self._cls.__bases__, cd)
    630
    631         # The following is a fix for

TypeError: __init_subclass__() missing 1 required keyword-only argument: 'value'

# works fine without slots=True:
In [11]: @attr.s
    ...: class Derived(Base, value="hi"):
    ...:     foo = attr.ib()
    ...:
init_subclass <class '__main__.Derived'>

In [12]: Derived.value
Out[12]: 'hi'

This becomes more pernicious if there's a default for the keyword argument, in that making your attrs class slotted might silently change behavior rather than failing in an obvious way.
I don't have an immediate proposal for how to resolve this -- initial thought is that it's probably only possible if the class that defines the __init_subclass__ method is also an attrs class (attrs could wrap that method with one that's able to cache the arguments for reuse when reconstructing a slotted descendant). It might be too much magic to be worthwhile. But I couldn't find any documentation of the conflict between slotted attrs classes and __init_subclass__, so figured it was at least worth an issue.

... nope, this is in the docs after all, I just missed it somehow. My bad.
https://www.attrs.org/en/stable/glossary.html#term-slotted-classes --> "certain metaclass features like init_subclass do not work with slotted classes."


Allow nimble_pool 1.0

NimblePool 1.0 has been released with no code changes: https://diff.hex.pm/diff/nimble_pool/0.2.6..1.0.0

Released in #243

Thank you! :heart:


:tada: Move initial code from vng_api_common.notifications

Moves the generic notifications code from vng-api-common
Related: https://github.com/VNG-Realisatie/vng-api-common/pull/206
TODO:

[x] move docs
[ ] move checks from vng_api_common.views
[ ] generate_notificaties command -> seems to be unused in OZ/ON
[ ] NotificationBaseView -> doesn't seem to be used in OZ/ON?

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@07ebed9). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #1   +/-   ##
=======================================
  Coverage        ?   84.58%
=======================================
  Files           ?       18
  Lines           ?      266
  Branches        ?        0
=======================================
  Hits            ?      225
  Misses          ?       41
  Partials        ?        0

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Use the toolchain

Sorry forgot to mention this. We need to use this package to configure the compilers. Particularly for OS X and particularly with C++.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Worked as intended. This ensures clang is used on Mac.

Thank you


WIP: Feat/lint-md

close #104

Introduce<EMAIL_ADDRESS>to check markdown lint.

This a big PR, I hope it does not have too many bugs.

Too many 1. 2.......  in markdown as section index should be fixed in markdown-lint, maybe we should have more subtitles?


Observing an empty page when trying to add a certificate [Developer-portal]

With the latest implementation;
Step to reproduce:
Login to developer portal:
2. Identity Providers > Add new Identity Provider
3. Select any Identity Provider Type (EX: Google)
4.In Wizard, General settings > Certificates
5.select provide certificate > Add a certificate ,

This is resolved now.


[Service Bus] Timeout lesser than the default value is currently not allowed

In Event Hubs, and now in Track 2 Service Bus, we make use of a helper method called getRetryAttemptTimeoutInMs() which is used to ensure that the timeout of individual attempts in retries is greater than or equal to the default value of 60 seconds, but not less.
export function getRetryAttemptTimeoutInMs(retryOptions: RetryOptions | undefined): number {
  const timeoutInMs =
    retryOptions == undefined ||
    typeof retryOptions.timeoutInMs !== "number" ||
    !isFinite(retryOptions.timeoutInMs) ||
    retryOptions.timeoutInMs < CoreAMQPConstants.defaultOperationTimeoutInMs
      ? CoreAMQPConstants.defaultOperationTimeoutInMs
      : retryOptions.timeoutInMs;
  return timeoutInMs;
}

This issue is to go over why such a min value is set for timeouts

.NET SDK allows the timeout to be less than the defaultTimeout, does not override as we do.

Based on offline conversations, let's go ahead and remove the restriction and allow the timeout to be less than default timeout

Done with #8805


karma-webpack webpack 5 / karma 6 support (look here first)

There are a bunch of tickets about requesting support for webpack 5 / karma 6.  We currently have an alpha version that supports these.
latest alpha version: 5.0.0-alpha.6
I'm going to combine all of the threads and move the discussion here. I'll try and keep this very up to date with known issues so they are very easy to find for those looking to upgrade to webpack 5.
If you are experiencing an issue with the alpha version, please comment below and I'll add it to the list.
known issues with current alpha
None at this time 🎉
no longer an issue in the alpha version
forgetting to set webpack as a framework causes the plugin to fail.
setting a custom output causes the plugin to fail.
setting a custom entry point causes the plugin to fail.
previous threads
#431
#453
#458
#452
#445
#431
#423

Closing this as v5 is now live


bidirectional gRPC outputs + fix server streaming gRPC outputs

What type of PR is this?
/kind bug
/kind design
/kind feature
Any specific area of the project related to this PR?
NONE
What this PR does / why we need it:
Long story short:
while debugging and profiling the Falco gRPC server because of #1126, @fntlnz and I identified that the existing gRPC outputs API (server streaming) had an architectural problem causing a high CPU consumption.
The implementation of that API was looping on all the remaining enqueued alerts at every process call to "keepalive" (pun intended) the stream.
An initial fix (announced by me during the community calls, very similar to #1237) of swapping the conditional operands into the if and the while and profit the short-circuiting did not lead to notable performance improvements in our tests.
Anyways, more details about this topic have been said and presented during the 2 past community calls.
Thus, with this PR we:

[x] remove keepalive field from output request schema
[x] introduce and implement a bi-direction gRPC API (falco.output.service/sub) to watch Falco alerts
[x] fix the high CPU consumption of server streaming gRPC outputs
[x] re-implement the server streaming gRPC outputs as (falco.output.service/get)
[x] reproduce/debug end-of-stream errors

This PR contains breaking changes.
Some updates have to be carried on other Falco projects:

[x] client-go PR
[x] client-py issue
[x] client-rs issue
[x] website PR

Which issue(s) this PR fixes:
Fixes #1126
Fixes #1240
Special notes for your reviewers:
Here is a graph showing how the try_pop used to pop out Falco alerts does not govern anymore the whole thing.
Notice that this graph is related to the following situation:

a client flooding the server with continuous and parallel requests (~4MLN calls)
13 alerts in 10 seconds of Falco execution

Click on the image and zoom it.

While the thread_process (beacuse of the while on the try_pop) was occupying ~87.38% before (ref), now it's "only" occupying 37.74% even with a client deliberately flooding the server with requests.
Jun 5th 2020 update:
We did further improvements regarding memory allocation (and CPU) while allocating the response.
The latest change in this commit allows us to decrease the thread_process impact by 20% (it totals to ~17% now). This is very useful in very intensive scenarios or when the server is flooded by requests.

How to try it out:

Enable gRPC server and gRPC Outputs API (with Unix socket for simplicity).

diff --git a/falco.yaml b/falco.yaml
index dcd76f7..2051583 100644
--- a/falco.yaml
+++ b/falco.yaml
@@ -189,7 +189,7 @@ http_output:

 # gRPC server using an unix socket
 grpc:
-  enabled: false
+  enabled: true
   bind_address: "unix:///var/run/falco.sock"
   threadiness: 8

@@ -198,4 +198,4 @@ grpc:
 # By enabling this all the output events will be kept in memory until you read them with a gRPC client.
 # Make sure to have a consumer for them or leave this disabled.
 grpc_output:
-  enabled: false
+  enabled: true

Run Falco

sudo ./build/userspace/falco/falco -r rules/falco_rules.yaml -c falco.yaml

3 (a). Try the /get method to obtain a stream of all the Falco alerts in the queue and shutdown.
sudo grpcurl -d '{}' --import-path userspace/falco/ --proto out
puts.proto --plaintext --keepalive-time 500000 --unix /var/run/falco.sock falco.outputs.service.get | jq

3 (b). Call the /sub method to obtain a stream of all the Falco alerts in the queue and wait online for (eventually) other alerts.
cat > /tmp/requests.txt

tail -f /tmp/requests.txt | sudo grpcurl -d @ --import-path userspace/falco/ --proto outputs.proto --plaintext --keepalive-time 500000 --unix /var/run/falco.sock falco.outputs.service.sub | jq

Write {} (on a new line each time) in the /tmp/requests.txt file.
Does this PR introduce a user-facing change?:

BREAKING CHANGE: server streaming gRPC outputs method is now `falco.outputs.service/get`
new: new bi-directional async streaming gRPC outputs (`falco.outputs.service/sub`)
fix: high CPU usage when using server streaming gRPC outputs

@leodido: Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

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.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign leodido
You can assign the PR to them by writing /assign @leodido in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/milestone 0.24.0

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

084d5d4 Update ToC for proposals/20190826-grpc-outputs.md

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.

Thanks for your pull request. Before we can look at it, you'll need to add a 'DCO signoff' to your commits.
:memo: Please follow instructions in the contributing guide to update your commits with the DCO
Full details of the Developer Certificate of Origin can be found at developercertificate.org.
The list of commits missing DCO signoff:

084d5d4 Update ToC for proposals/20190826-grpc-outputs.md

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.

LGTM label has been added.  Git tree hash: 4c45770339ff16915d9e1b5081ca6f824db0c40d

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: fntlnz
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [fntlnz]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/hold
Adding an hold on this so other Prs can be merged by poiana, feel free to remove once we have two approvals.

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: fntlnz, kris-nova
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [fntlnz,kris-nova]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: fntlnz, kris-nova
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [fntlnz,kris-nova]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/hold cancel


Draft: Update to 0.7.0 for release.

Let's do a release!
Has breaking changes so updated to 0.7.0.

Hold up, I want to fix https://github.com/rust-embedded-community/pc-keyboard/issues/29 first.

Maybe #30  too


Check if a variable is default with isempty

{{ isempty var }} checks whether var is either nothing or actually empty, but it complains if var exists but not iterable (e.g. default value in some cases). It would be better if it returns true if var is default value, since the user didn't define it explicitly.

My current solution on date is to define it as an empty string @def date = "", so it is not rendered in the final html file.

Nice! so I understand what you're suggesting (check if it's the default) but this might get tricky in some cases where if the value is default, it's actually fine (e.g. if you explicitly want a string to be empty), so I think there's two paths:

have a way to check if a value is something like {{ifequal var value}}
update {{isempty var}} to check if a date is not 0001-01-01

(1) will come eventually but is a bit tricky because we need to parse value and make sure it's evaluated in a sensible sandbox (e.g. a place with Dates); I think it will be done eventually.
(2) is super easy and would already solve your problem we just need to change this line:
https://github.com/tlienart/Franklin.jl/blob/7fddc7910157e3c4e24d8825267e15aa756bd006/src/converter/html/blocks.jl#L71
which, in any case, is probably a bit dodgy. So maybe we could replace it by
_isempty(v)

and define
_isempty(v) = false
_isempty(::Nothing) = true
_isempty(v::AbstractArray) = isempty(v)
_isempty(v::AbstractString) = isempty(v)
_isempty(v::Date) = (v == Date(1,1,1))

would you like to try a PR with something like this?

ok actually I've added the change :)

Thank you! It is well explained :) Your code is much better than what I have in mind :)


Add Note per customer case

Hey – per feedback from a customer case and our own research, we would like to modify the following note in this document.
•	Current note:
Note
When you have the All users collection selected for the Intune subscription, you are not allowed to add a rule to exclude collections. Create a new collection based on the All users collection, verify that the collection contains the users that you expect, and then edit the Intune subscription to use the new collection. You can exclude user collections from the new collection to migrate users.
•	Suggested update:
Note
When you have the All users collection selected for the Intune subscription, you are not allowed to add a rule to exclude collections. Create a new collection based on the All users collection, verify that the collection contains the users that you expect, and then edit the Intune subscription to use the new collection. You can exclude user collections from the new collection to migrate users.
If All Users AND All Groups are included in the SCCM/Hybrid Intune user collection, and a test user in a user collection is excluded from the SCCM/Hybrid Intune user collection, and the user in the excluded user collection is in any group, the user won't be excluded from the SCCM/Hybrid Intune user collection.

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

ID: 4913cd11-dd09-791f-af96-9849efa08ef9
Version Independent ID: 4e271b5d-8d9f-7837-867e-1fc1fffd3242
Content: Change the MDM authority for specific users (mixed MDM authority) - Configuration Manager
Content Source: sccm/mdm/deploy-use/migrate-mixed-authority.md
Service: unspecified
GitHub Login: @aczechowski
Microsoft Alias: aaroncz

Have an email thread to investigate further. On the surface this appears to conflict with the information about Exclude collection rule on Create collections.

@AndreaFrabotta, I think I know what you're trying to say, could we word it like this for a bit of clarity and also to cover groups other than "All Groups"?
`
When you have the All Users collection selected for the Intune subscription, you are not allowed to add a rule to exclude collections. Instead, create a new collection based on the All Users collection, verify that the collection contains the users that you expect, and then edit the Intune subscription to use the new collection. You can exclude user collections from the new collection to migrate users.
If you exclude a user from a collection but include a group that the user is a member of, the user will not be excluded from the collection`

@aczechowski - about a month with no response from the original submitter, do you have any comments on the edit?

Thanks @ChrisKibble, no further comments from me. You can make the change if you want. Honestly, this content is a low priority as the service is deprecated and will be turned off in less than two months.

Understand it's low priority.  Could help someone I suppose, and I already wrote the blurb, so I'll submit a PR.


Adds Ember as additional web framework

This PR adds Ember as an additional Web Framework in the https://www.typescriptlang.org/docs/home page. Ember both uses TS internally for large portions of its development (ember.js, glimmer-vm, etc), but also supports TypeScript for development. Ember also recently went through a huge modernization, which both simplifies the framework and takes advantage of a lot of newer language features.

These changes add Ember in alphabetical order relative to the other JS frameworks (Angular, React, Vue). Additionally ensures that the blurb is translated.

 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.:x: scalvert sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

I originally included this in my designs, but then realized that there's no TypeScript docs nor does the CLI help you get set up with TS in Ember.
So, I'm open to having it in it once there's an obvious path for someone wanting to set up a  TypeScript project - which is what all these are for.

( Not trying to use this to force official doc changes or anything, I'd be happy if it linked to a reputable source of "ember + TS" kinda docs too )

Makes perfect sense. Ember has an official addon that enables Typescript development - ember-cli-typescript. Would it be better to link to that?

Yep, that works!

OK, done. The actual link I used was https://ember-cli-typescript.com, which is the documentation site for the aforementioned github repo.


error when used with docker-machine

all other containers booted correctly
ERROR: for prometheus  Cannot start service prometheus: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/home/xyz/Development/ethereum2-docker-compose/config/prometheus/prometheus-p.yaml\\\" to rootfs \\\"/var/lib/docker/overlay2/0859d586e611218284bc2e0a6cc0cb53ef1dba7598b9a9fd54d41d1d36c76993/merged\\\" at \\\"/var/lib/docker/overlay2/0859d586e611218284bc2e0a6cc0cb53ef1dba7598b9a9fd5``4d41d1d36c76993/merged/etc/prometheus/prometheus.yml\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

ethereum2-docker-compose on  master [!?]
⇡0% ➜ docker -v
cokecDocker version 19.03.4-rc1, build 4ba2b1c606

ethereum2-docker-compose on  master [!?] took 2s
⇡0% ➜ docker-machine -v
docker-machine version 0.16.0, build 702c267f

no volumes currently
ethereum2-docker-compose on  master [!?] took 3s
⇡0% ➜ docker volume ls
DRIVER              VOLUME NAME

likely related to this https://medium.com/@gnowland/unique-remote-local-volume-paths-with-docker-machine-40a4e369bcac

worked around with
docker-machine scp -d -r ./data eth2-03:/var
docker-machine scp -d -r ./config eth2-03:/var

then changing source path of volumes from relative to /var/data /var/config

Hi, thank you for bringing this issue up! Right now focus is not on tools like docker-machine, but I'd be glad to include instructions and/or configs for it if you can provide them in a pull request.

@stefa2k i can tell there will be a few incompatibilities still, ill continue to report them

Yeah I'm pretty sure there will be inconsistencies along the way, same with docker swarm. Thanks for keeping us up to date!


manylinux docker image issues

I've tried the official docker image with pyo3 0.6.0, and the master with pyo3 0.7.0 alpha1.
It seems to always complain about missing libpython.
Running it like this:
docker run --rm -v (pwd):/io 10c0135f4da7 build (10c0135f4da7 being master version of docker image)
🔗 Found pyo3 bindings
🐍 Found CPython 3.5m at python3.5, CPython 3.6m at python3.6, CPython 3.7m at python3.7
   Compiling pyo3 v0.7.0-alpha.1
error: could not find native static library `python3.5m`, perhaps an -L flag is missing?

error: aborting due to previous error

error: Could not compile `pyo3`.

To learn more, run the command again with --verbose.
Cargo build finished with "exit code: 101": `cargo rustc --message-format json --manifest-path Cargo.toml --features pyo3/python3 --lib --`
Failed to build a native library through cargo

It seems from a quick glace inside the container that libpython is nowhere to be found.
[root@dca866f6dbb7 /]# find . -iname "*libpython*.so*"
./usr/lib64/libpython2.4.so
./usr/lib64/libpython2.4.so.1.0
[root@dca866f6dbb7 /]#

Am I missing something?

Resolved when building pyo3 with extension-module feature. :)

The error message for that is really bad. I've added a warning when extension-module is missing in #126


Adding new STIS notebook Low_Count_Uncertainties.ipynb

Added STIS notebook Low_Count_Uncertainties.ipynb, requirements.txt, and pre-requirements.sh

@Jackie-Brown ,
I ran this notebook locally and encountered the same error as reported on the CI.

@Jackie-Brown , another important thing to note is that we are getting a deprecation warning for these two. The notebook will fail when new releases are out.
UserWarning: GFIT is deprecated - stsci.tools v 3.4.12 is the last version to contain it.Use astropy.modeling instead.
  warnings.warn("GFIT is deprecated - stsci.tools v 3.4.12 is the last version to contain it."
UserWarning: NMPFIT is deprecated - stsci.tools v 3.5 is the last version to contain it.
  warnings.warn("NMPFIT is deprecated - stsci.tools v 3.5 is the last version to contain it.")

The notebook is calling crds in the Unix shell, but that package is not in the requirements file:
!crds bestrefs --update-bestrefs --sync-references=1 --files ./mastDownload/HST/obgh07020/obgh07020_raw.fits

I believe the Unix call is silently failing because the crds executable cannot be found.

@haticekaratay I took a look at the depreciation warning for NMPFIT and GFIT, and the notebook doesn't use either of these. Will the notebook still fail when the new version of stsci.tools is out? Otherwise the notebook looks ready to publish unless you have any other concerns

@haticekaratay I took a look at the depreciation warning for NMPFIT and GFIT, and the notebook doesn't use either of these. Will the notebook still fail when the new version of stsci.tools is out? Otherwise the notebook looks ready to publish unless you have any other concerns

@Jackie-Brown, I will take a look, as it's been a while, and submit my review here this week.

@Jackie-Brown @haticekaratay -
Those are known deprecation warnings when importing stistools for now.


Add a convenient permissions view for group/project/organisation admins

Is your feature request related to a problem? Please describe.
To check a given users' permissions, one currently needs to navigate between projects and groups. This is becoming very cumbersome when a number of projects and groups increases.
Describe the solution you'd like.

When clicking on a user, a view that shows all the groups that user is a member of.
A consolidated view to see all permissions granted to a specific user or group across projects and environments. This should list only the granted permissions, not the projects/environments where the user/group has no permissions.

Describe alternatives you've considered

Manual navigation through each group to find user memberships.
Clicking on each project and environment to find granted permissions for users/groups.

Additional context
No response

A consolidated view to see all permissions granted to a specific user or group across projects and environments. This should list only the granted permissions, not the projects/environments where the user/group has no permissions.

I believe this would require API, we can only get permissions for a specific environment or project at the moment.

@khvn26 @matthewelwell is there any chance we can do this at some point, just need to add group_admin to the organisations/:id/groups/ endpoint


api: Updating update_user_group

@timabbott Please review this PR.
This PR updates the update_user_group as discussed on #12633

Squashed and merged as 205657b3cf75a340c4dde739aedae3624248f33e, after rewriting the description.  (Conceptually, these should be one commit, since together they implement a single idea).
Thanks @sameerchoubey!


Update dragon-directory.js to render Pre-K grade

Pre-K is represented with the value '6'.
Map this to 0 so that it can be sorted before 1st Grade.
Render the string as 'Pre-K' instead of 'Grade ' + number.

The thing is a total hack anyways and...now that I know a little more JS...
completely wrong style. Oops.
Merged!
On Tue, Sep 24, 2024 at 9:42 PM ben-d-stewart @.***>
wrote:

@.**** commented on this pull request.
In dragon-directory.js
https://github.com/awong-dev/dragon-directory/pull/1#discussion_r1774420866
:

@@ -123,6 +124,23 @@ function extract_students(record) {
return students;
}

+// Map grade to value that can be compared and rendered
+function normalize_grade(grade) {

const pre_k_grade_value = "6";

Renamed function - if you want me to move render_grade function elsewhere,
let me know.
—
Reply to this email directly, view it on GitHub
https://github.com/awong-dev/dragon-directory/pull/1#discussion_r1774420866,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABDJQ3O6CMJW5TJSSR477TZYI5JRAVCNFSM6AAAAABOXNX4YGVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGMRWHE3TKMJTGM
.
You are receiving this because you were mentioned.Message ID:
@.***>

It should auto-deploy in like 2-3 minutes.
On Tue, Sep 24, 2024 at 9:43 PM Albert J. Wong (王重傑） @.***>
wrote:

The thing is a total hack anyways and...now that I know a little more
JS... completely wrong style. Oops.
Merged!
On Tue, Sep 24, 2024 at 9:42 PM ben-d-stewart @.***>
wrote:

@.**** commented on this pull request.
In dragon-directory.js
https://github.com/awong-dev/dragon-directory/pull/1#discussion_r1774420866
:

@@ -123,6 +124,23 @@ function extract_students(record) {
return students;
}

+// Map grade to value that can be compared and rendered
+function normalize_grade(grade) {

const pre_k_grade_value = "6";

Renamed function - if you want me to move render_grade function
elsewhere, let me know.
—
Reply to this email directly, view it on GitHub
https://github.com/awong-dev/dragon-directory/pull/1#discussion_r1774420866,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABDJQ3O6CMJW5TJSSR477TZYI5JRAVCNFSM6AAAAABOXNX4YGVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGMRWHE3TKMJTGM
.
You are receiving this because you were mentioned.Message ID:
@.***>

Cool. If something totally breaks we should just undo the changes. It already seems like some parents are sending in feature requests. :-PSent from my iPhoneOn Sep 24, 2024, at 9:44 PM, Albert J. Wong @.***> wrote:
It should auto-deploy in like 2-3 minutes.
On Tue, Sep 24, 2024 at 9:43 PM Albert J. Wong (王重傑） @.***>
wrote:

The thing is a total hack anyways and...now that I know a little more

JS... completely wrong style. Oops.

Merged!

On Tue, Sep 24, 2024 at 9:42 PM ben-d-stewart @.***>

wrote:

@.**** commented on this pull request.

In dragon-directory.js

https://github.com/awong-dev/dragon-directory/pull/1#discussion_r1774420866

:

@@ -123,6 +124,23 @@ function extract_students(record) {

return students;

}

+// Map grade to value that can be compared and rendered

+function normalize_grade(grade) {

const pre_k_grade_value = "6";

Renamed function - if you want me to move render_grade function

elsewhere, let me know.

—

Reply to this email directly, view it on GitHub

https://github.com/awong-dev/dragon-directory/pull/1#discussion_r1774420866,

or unsubscribe

https://github.com/notifications/unsubscribe-auth/AABDJQ3O6CMJW5TJSSR477TZYI5JRAVCNFSM6AAAAABOXNX4YGVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGMRWHE3TKMJTGM

.

You are receiving this because you were mentioned.Message ID:

@.***>

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Looks like everything still works - just need to also update
https://github.com/awong-dev/dragon-directory/blob/main/render-directory.js
with similar logic - can work on that over the weekend.
On Tue, Sep 24, 2024 at 10:37 PM Ben Stewart @.***>
wrote:

Cool. If something totally breaks we should just undo the changes. It
already seems like some parents are sending in feature requests. :-P
Sent from my iPhone
On Sep 24, 2024, at 9:44 PM, Albert J. Wong @.***>
wrote:

It should auto-deploy in like 2-3 minutes.
On Tue, Sep 24, 2024 at 9:43 PM Albert J. Wong (王重傑） @.***>
wrote:

The thing is a total hack anyways and...now that I know a little more
JS... completely wrong style. Oops.
Merged!
On Tue, Sep 24, 2024 at 9:42 PM ben-d-stewart @.***>
wrote:

@.**** commented on this pull request.
In dragon-directory.js
<
https://github.com/awong-dev/dragon-directory/pull/1#discussion_r1774420866>

:

@@ -123,6 +124,23 @@ function extract_students(record) {
return students;
}

+// Map grade to value that can be compared and rendered
+function normalize_grade(grade) {

const pre_k_grade_value = "6";

Renamed function - if you want me to move render_grade function
elsewhere, let me know.
—
Reply to this email directly, view it on GitHub
<
https://github.com/awong-dev/dragon-directory/pull/1#discussion_r1774420866>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AABDJQ3O6CMJW5TJSSR477TZYI5JRAVCNFSM6AAAAABOXNX4YGVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGMRWHE3TKMJTGM>

.
You are receiving this because you were mentioned.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/awong-dev/dragon-directory/pull/1#issuecomment-2372928021,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BLRCRNGL657KRA4FPZRJLI3ZYI5SNAVCNFSM6AAAAABOXNX4YGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNZSHEZDQMBSGE
.
You are receiving this because you authored the thread.Message ID:
@.***>


⚠ Bofrost.fr has degraded performance

In cf347bc, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 884 ms

Resolved: Bofrost.fr performance has improved in 2b867e2 after 10 minutes.


AboutUs.adoc: Remove dummy user

Pull Request Test Coverage Report for Build 56

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 92.811%

Totals

Change from base Build 54:
0.0%

Covered Lines:
1433

Relevant Lines:
1544

💛  - Coveralls


Add symbolic-link backend

For performance reasons, the fastest way to make big fat binary files available in a repo would be to simply update symbolic links. This can already be done with native git; one can create a symbolic link that points outside the repo. Checking out new baselines remains very fast regardless of the size of the binary.
However, git's support for symbolic links does nothing to guarantee the integrity of the file being referenced. Since git-fat records the SHA-1 of the fat file, this could be adapted to enhance the use of symbolic links for external files (fat or otherwise).
Other back-ends could still be configured as fallbacks for remote users.

Symbolic links are not supported by Git on Windows.

It might work as a backend (between .git/fat/objects and a different directory), but it wouldn't work as you're expecting it too @KeithHanlan.
See https://github.com/cyaninc/git-fat/issues/33 for more discussion and an explanation as to the technical reason why we cannot use symlinks in the repo.

It would still be a huge performance improvement for environments which don't care about Windows. For example, we have some regression test cases which rely on 600MB compressed tarballs. Currently, we just rely on those files remaining where they are but there is no guarantee of their continued existence nor of their integrity. It would be nice to store them as git-fat files but even with rsync, the performance penalty would be too great.  I just don't want those files in my repo working directory.
One of my repos already does store binary files (link libraries) offboard with symbolic links. The destination filenames are constructed of a sequence number (for convenience) and the SHA-1. This works but requires an awkward submission procedure. Gitattributes cleaning and smudging would make for a much more transparent solution. It seems only natural to adapt git-fat to this purpose, even if it is limited to Unix environments.

@KeithHanlan What do you think about the technical problems in #33?  Any idea how to work around the ones for non-Windows systems? :smile:

@justinclift, I'm still wrapping my mind around the comments made by @mzemb and @abraithwaite in #33. These are good points that I hadn't considered. Originally, I imagined that one could use symbolic links if the remote is reachable and then use rsync or http as a fall back.
So, thinking further, I still think there is value in using git-fat as a front-end to help manage symbolic links but "link" would not be simply an alternative backend and some special rules would be required. Instead of using special files with '#$# get-fat' prefixes, I think we would store the symbolic links normally.
The added value of git-fat would be to facilitate the push (clean) and creation of the symbolic link. The pull (smudge) would be a null operation.
Ultimately, in our environment, I hope to enhance our pre-push hooks to use git-fat so that its use is more transparent. In conjunction with Antonio's changes #40, the use of git-fat could be made completely transparent.
At the end of the day, we have dependencies on large (sometimes extremely large) binary files and git-fat offers an attractive way to use git's commit tree to maintain the integrity of those dependencies.

This is an interesting topic.
Git-annex uses a symlink approach akin to what you've described, but doesn't use smudge/clean to accomplish it. He wanted to switch to using smudge/clean, but it didn't work out well. Here is his writeup on his attempts:
https://git-annex.branchable.com/todo/smudge/
Ultimately I think this would be a great thing, but it comes with challenges, some of which are probably insurmountable without changing git itself.. maybe even significantly. Changing git itself to facilitate the handling of large files better through smudge/clean could be a worthy goal, and if I sometime get the free time to look into it thoroughly I want to do so. If anyone here is also a C programmer and wants to chat more about it let me know -- I have an old email exchange with the git maintainer about it that is of interest.

Indeed.  I'll let you in on a little secret in that I don't really think git-fat is a great solution to this problem.  Facebook has in fact worked to solve this problem themselves, only with mercurial instead of git.
The strategy they use is lazy loading:

This extension changes the clone and pull commands to download only the commit metadata, while omitting all file changes that account for the bulk of the download. When a user performs an operation that needs the contents of files (such as checkout), we download the file contents on demand using Facebook's existing memcache infrastructure. This allows clone and pull to be fast no matter how much history has changed, while only adding a slight overhead to checkout.

Which is the same strategy I would use to patch git, if I were to.  The major difference I would make is instead of downloading the commit metadata, I'd make it so git downloads all objects under a certain size threshold, and then fetch them on demand when you run a checkout.  The problem of course with both strategies is what happens when you're offline.  Handling cases where you're missing files becomes an issue for all the various commands.  Without handling those cases, it would just look like you're always missing those files if you try to change branches when you're offline (which might be okay, as long as it's clear to the user that that's the case).
Some of the work has already been done, with git 1.9 you can push from a shallow clone but there's still more to be done if you want the full history and selectively exclude the large files in some cases.

It's a bit of a shame really. Git does so many things nicely, but it's still no good for projects where you just need to toss a bunch of mixed binary / source code assets in there with minimum fuss. I'd really love to go in there handle it but man... time.

And I agree that a lazy loading approach is probably the right one. Now to get it done and into git master! :)

It's a bit of a shame really. Git does so many things nicely, but it's still no good for projects where you just need to toss a bunch of mixed binary / source code assets in there with minimum fuss

I don't think it's a shame at all, git is young compared to other projects used as widely as it is.  That and git is really just a data structure sepcification. You could write any client on top of it and things would still work fine.  But yes, ultimately the problem is time.  I would estimate the work that needs to be done at at least 120 hours.  Not many people have that much free time so would need an employer to sponsor it or convince the maintainers that it's worth their time to implement. :-P

Maybe shame was the wrong word. What's a good word for that feeling when something is so close to being the ideal setup but falls just short of it? ;)
I think some gaming companies could really benefit by it. They need to check art assets alongside their source code with minimum of fuss. The ones I've talked to are still stuck on perforce (or svn) largely for the better binary handling, but both of those have branching models inferior to git (imo), so they miss out on that.
If you think you or someone you know might take it on as a sponsored job, let me know -- I will keep my ears and eyes open for opportunities and be in touch if something came up.

Aaaaannd now Github announced Git LFS.
It looks like it uses the same approach as git-fat (smudge/clean + checksums), so despite it using Go I really don't expect any huge performance difference compared to git-fat. I'll be pleasantly surprised if it is better, though!
If it does have the same limitations, and folks start seeing major slowdowns for 'git status' (esp. on windows), we may see some more attention at addressing the root issue.

Yep.  However, it doesn't support multiple backends yet. :-) :+1:
I opened up https://github.com/github/git-lfs/issues/193 for them though, so they know it's valued.  I do believe performance will be signifigantly better though.  The time it takes to spin up a python process is actually quite high compared to the ammount of time it acutally spends doing things.
It does still have the same limitations though and I still believe that it should be implemented in git.  Hearing about this realease is really motivating me to dig deeper. :rabbit2:

I'm interested too! When I get some more time, I'll have to grab the source code for the client and reference server and give it a spin.
I had tried some of the Python -> .exe tools (Cython, Numba, Pypy, etc) a while back with git-fat and didn't see much of an improvement.
I suppose this is as expected, since most of them probably just embed the python interpreter into the .exe and suffer the same startup penalty. That said, at the time I thought Numba built straight to native code using LLVM (i.e. no full interpreter in the resulting exe), so I expected better from it. But now I'm not so sure that's what it actually does. So that was inconclusive at the end of the day.


Can I edit the code during execution?

It would be nice if I can fix problems at the spot and time when some bug shows up, without rerunning the code.

related discussion


Question: configuration for default Backend target and HTTP settings

Hi all,
I need all HTTPS requests coming to my gateway to go to the Azure WebApp in case a request doesn't match any path-based rule. I believe default Backend target and HTTP settings is a perfect way to implement such behaviour but AGIC rewrites these values to default with every update.

Is there a way to configure the default Backend target and HTTP settings for a rule? Or at least add it to the blacklist somehow?
I already tried:

Change these values in the path-based rule created by AGIC - rewritten to default along with the next update.
Specify desired values in defaultaddresspool and defaulthttpsetting + refer these values in another rule related to listener that was blacklisted by host - the same.
Create 2 listeners for 443 port:

first one blacklisted by the host with the logic I described above;
second one - created by AGIC and contains all the rules specified in ingresses;
In this case, all requests are handled by the first listener so I get 404 when call endpoint specified in any
ingress

Hi @akshaysngupta
Just to check twice, from the fact that you labeled my question as "feature" I assume that it's impossible to achieve the desired behavior for now, right?

@olomakovskyi-blackbird Currently, it is not supported to customize the default backend pool to target an outside IP like Azure web app.

Gotcha, and what about blacklisting? Can I prevent AGIC from changing it back to "defaultaddresspool" somehow?

@olomakovskyi-blackbird One way you can try is to create a service without any selectors and manually create an endpoint object with IP pointing to the Azure Web App.


Set IP_BIND_ADDRESS_NO_PORT on outbound tcp sockets

When bound to a local address the kernel does not know if the socket
will listen() or connect() and must reserve a port inmediately after
bind() effectively limiting the random port range to ~32k.
when IP_BIND_ADDRESS_NO_PORT is set, the kernel delays source port
allocation until the time the complete 4-tuple is known allowing
a much larger number of combinations

Thanks for this! I relocated and made the code more portable.

Thanks for this! I relocated and made the code more portable.

ok, I noticed the code already needs c99 so i didnt bothered with the c89 version.


Switching / Protection devices for Utility Poles

Maybe add the ability to attach some devices to Utility Poles.
The addition of fuses ( cutouts in the real world ) as well as high-voltage remote switches to utility poles would be a nice touch, to be able to shut off a power line without having to build a substation type deal everywhere you want isolatable and allowing remote operation.
in an event where there is an overload on a part of the grid it'd make more sense to isolate that part rather than shutting down the entire system. Also for isolating certain regions of your game for whatever reason; such as disconnecting a wood farm because you've got wood out your ears or something like that.
This could be done by having a spot inside of a gui on the pole where you could just place the components. For the switches, also a window to choose what wireless channel it should be controlled by.

Right at the end of ELN1 development, we were able to sneak in utility pole switches. I can't recall what our plans for utility poles were.
Isolation is something that our simulation really does not like. It's actually the reason why ELN1 poles and DC-DCs were so buggy. Beyond something that can be modeled with a state-dependent resistor, which would includes switches and fuses, it's something we are trying to avoid in the future.


build: create bot to check PR comments

Now, if you write "/check" in a comment on a PR, it will automatically run all of the required checks.

/check

/check


FR: Respect features in Cargo.toml

Currently, all features seem to be enabled, which means that the result of compilation is not identical to what the Cargo.toml prescribes. Sometimes compilation fails because of this, and this requires the user to give the generated Cargo.nix a manual surgery editing a whole bunch of records in the transitive closure of the offending package. This is a non-ideal user experience.

#200 Duplicate.  Fix design is under development, using cargo metadata style solution to generate Nix expressions that match cargo behavior.


addMatchers method not adding jasmine-dom-custom-matchers package in Angular 8 app

Hi there,
I'm currently using this package in my Angular 8 project with Jasmine + Karma as dependancies. When I add the matchers and run an assertion, I receive an Property [nameOfProperty] does not exist on type Matchers<typeOfElement> when running the tests.
package.json (relevant packages):
    "@types/karma-viewport": "^0.4.0",
    "karma": "^4.1.0",
    "karma-chrome-launcher": "^2.2.0",
    "karma-coverage-istanbul-reporter": "^2.0.4",
    "karma-ie-launcher": "^1.0.0",
    "karma-jasmine": "^2.0.1",
    "karma-jasmine-dom": "^1.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "karma-junit-reporter": "^1.2.0",
    "karma-phantomjs-launcher": "^1.0.4",
    "karma-viewport": "^1.0.4",
    "jasmine-core": "^3.3.0",
    "jasmine-dom-custom-matchers": "^1.0.5",
    "jasmine-spec-reporter": "^4.2.1",
    "karma-jasmine": "^2.0.1",
    "karma-jasmine-dom": "^1.0.1",
    "karma-jasmine-html-reporter": "^1.4.0"

karma.conf.js:
  config.set({
    basePath: '',
    frameworks: ['jasmine-dom', 'jasmine', '@angular-devkit/build-angular', 'viewport'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma'),
      require('karma-viewport'),
      require('karma-phantomjs-launcher'),
      require('karma-jasmine-dom')
    ],
...[restOfConfig]

app.component.spec.ts:
  beforeAll(async(() => {
    const matchers = require('jasmine-dom-custom-matchers');
    jasmine.addMatchers(matchers);
  }))

  it('should call the getStyleSheets() with config', async () => {
    let headTagDOM = document.querySelector('head');
    let linkTags;
    spyOn(component, 'getStyleSheets');
    component.getStyleSheets(config);
    linkTag = document.querySelectorAll('link')[0];
    expect(component.getStyleSheets).toHaveBeenCalled();
    // Error occurs here: Can't recognise the toContainHTMLElement method
    expect(headTagDOM).toContainHTMLElement(linkTags)
  });

I'm unsure if this is a config error or a bug whereby using the package with Angular isn't possible.
Any help would be much appreciated.

Note that matchers (and pretty much all other jasmine configuration calls) are wiped after every spec.  If you intend to install them globally, you should use beforeEach, not beforeAll.  That might fix it for you.


Suggestions not working in Zed

I added the following to the editor config:
  "elixir": {
    "lsp": "next_ls"
  },

and observing the server logs after a while i get:
[NextLS] Compiled !

Code navigation works, but when I start typing nothing pops up. Looking at RPC messages I see a bunch of:
// Send:
{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":

Which looks fine? Any help debugging this?
Editor version: Zed Preview 0.130.0
[NextLS] NextLS v0.15.0 has initialized!
[NextLS] [extension] Credo initializing with options %NextLS.InitOpts.Extensions.Credo{enable: true, cli_options: []}
[NextLS] Booting runtimes...
[NextLS] Beginning DB migration...
[NextLS] Database is being upgraded from version 0 to 5.

You have to enable them, as they are currently experimental.
I believe this is the correct settings, I'll double check when I get back to a computer.
"lsp": {
  "next_ls": {
    "initialization_options": {
      "experimental": {
        "completions": {"enable": true}
      }
    }
  }
}

Also, your Next LS version is very old, I think if you delete it from wherever Zed installs it, it will download the latest version where you restart zed.

Those settings don't seem to work, but I swear I had tested them before and seen it working.
I've reached out to Zed to see what's going on.

Might be related: https://github.com/zed-industries/zed/issues/7636

Got it figured out, the name is "next-ls" when under the lsp object

{
  "ui_font_size": 16,
  "buffer_font_size": 16,
  "vim_mode": true,
  "elixir": {
    "lsp": "next_ls"
  },
  "lsp": {
    "next-ls": {
      "initialization_options": {
        "extensions": {
          // example configuring the extensions
          "credo": { "enable": false }
        },
        "experimental": {
           // example configuring the experimental options
          "completions": { "enable": true }
        }
      }
    }
  }
}

I updated the docs


Support PAUSE/RESUME Workflow functionality

Description:
Currently don't expose workflow engine features like pause/resume because the API methods we need are not yet supported in the workflow API (only the engine).
Ask for1.11:
I would like the ability to pause/resume a workflow so users can: plan for down services, wait for inputs, etc.
Requirements:
PAUSE

Workflow stops until a trigger starts it again.
Manual start via user intervention - user can manually start a workflow
GET requests should return "paused" status

RESUME

Workflow starts again when correct trigger occurs
GET Requests should now return same info as normal "GET workflow" request

Exploratory work:

GET requests returns information on time elapsed for pause

/assign


Add new doc page - for blog posts, videos, etc. about Loco

Related: https://github.com/loco-rs/loco/issues/559

https://loco.rs/docs/resources/around-the-web/


fix: describe distribute table

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
Fix a bug that DESC table is not working correctly for distribute table when primary keys are defined in column options.
Also:

refactor some error msgs to make them more clear
unify sqlness test case for creating table

Checklist

[ ]  I have written the necessary rustdoc comments.
[x]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)
close #923

find_primary_keys is only called in distributed table creation code path, so this bug only exists in distribute mode. Other comments are resolved, PTAL @waynexia


Fix Condition in New Roottemplate intention

The filter passed to showCreateNewRootMenu from the "New Root Template" intention did only filter out some generator concepts but the Root Mapping rule can only reference to instances if INamedConcept it makes little sense to show theses concepts in the intention menu because the implementation will directly return and do nothing then it detects that the root node is not INamedConcept.
As reduce_TemplateInvocation template calls later in the generator require a INamedConcept anyway I think we shouldn't show them to the user in that menu.

Request in MPS youtrack: https://youtrack.jetbrains.com/issue/MPS-27144

With fix for root template referencing BaseConcept instead of INamedConcept, this pull request is obsolete.


records are created without hostnames

I was trying to run caddy for wireless.home.sp5.nl, but encountered the following error:
2024-05-17T23:24:14.554451+02:00 homebridge caddy[2897017]: {"level":"error","ts":1715981054.5536783,"logger":"tls.issuance.acme.acme_client","msg":"validating authorization","identifier":"wireless.home.sp5.nl","problem":{"type":"urn:ietf:params:acme:error:dns","title":"","detail":"DNS problem: looking up TXT for _acme-challenge.wireless.home.sp5.nl: DNSSEC: Bogus","instance":"","subproblems":[]},"order":"https://acme-staging-v02.api.letsencrypt.org/acme/order/148581904/16597544334","attempt":1,"max_attempts":3}

Looking at the dnsimple console revealed that records were created for sp5.nl without the _acme-challenge.wireless.home part.

Awesome work so far.
I've run tests with a new checkout of libdns/dnsimple and it's still broken for me.
If you don't beat me to it, then I'll also continue the investigation from my side.

The latest version indeed works for me.
I was testing with dns_challenge_override_domain set, and seems to override not only the domain but the entire record.


Can you add a function to set the language of epub?

The default en-US will automatically call the font of English version on my ebookreader for the title and contents. The fonts in English version are not complete, and many Chinese characters cannot be displayed

This should be a UI change, right?
I think there are three ways this can be done.
Option A

Option B

Option C

Personally, I think options B and C make the most sense, with C probably requiring a bit more effort than B. Then we just rely on the metadata when converting. Separation of responsibilities and all that.
Though after looking at this I don't see a metadata field for language so perhaps one should be added.
The ComicRack standard doesn't seem to be maintained anyway.
Also, I doubt it would cause any issues for software relying on it since it would just have an extra metadata field which would be probably ignored.