Update oneof representation

import { getOneofValue } from '@protobuf-ts/runtime';

interface ISomeMessage {
    foo: string;
}

type TSomeMessage = {
    foo: string;
}

declare var oneofWithInterface: {
    oneofKind: "a";
    a: ISomeMessage;
} | {
    oneofKind: undefined;
};

declare var oneofWithType: {
    oneofKind: "a";
    a: TSomeMessage;
} | {
    oneofKind: undefined;
};

const t = getOneofValue(oneofWithType, 'a'); // TSomeMessage | undefined
const i = getOneofValue(oneofWithInterface, 'a'); // TS error
// Argument of type '{ oneofKind: "a"; a: ISomeMessage; } | { oneofKind: undefined; }' is not assignable to parameter of type 'UnknownOneofGroup'.
//   Type '{ oneofKind: "a"; a: ISomeMessage; }' is not assignable to type 'UnknownOneofGroup'.
//     Property 'a' is incompatible with index signature.
//       Type 'ISomeMessage' is not assignable to type 'string | number | bigint | boolean | Uint8Array | UnknownMessage | undefined'.
//         Type 'ISomeMessage' is not assignable to type 'UnknownMessage'.
//           Index signature is missing in type 'ISomeMessage'.(2345)

The issue seems like some discrepancy between a type and interface and the use of index signatures. As shown above the TSomeMessage type works just fine, but the identical interface causes issues. The issue can be solved in one of two ways:

Change the code generation to output types for Messages. (this seems bad)
Change UnknownMessage to be an interface. (this seems much better)

Thanks for the report and investigation! This confirms again that even the smallest feature requires overly diligent testing.
Changed UnknownMessage from type to interface in v2.0.2.alpha-0`.

I realize this would require a major version bump, but I'm curious if oneofs might be better (or at least easier to operate on in the world of TypeScript) represented as tuples. This would pretty much the need to make specialized function to get/set the oneofs on a message.
type UnknownOneofGroup = [
    string,
    UnknownScalar | UnknownEnum | UnknownMessage,
] | [];

type ExampleOneof =
  | ['a', string]
  | ['b', number]
  | ['c', boolean]
  | [];

interface ExampleMessage {
  example: ExampleOneof;
}

declare var message: ExampleMessage;

// Get
if (!message.example[0]) {
  throw new Error("No kind specified");
}
const [
  kind, // "a" | "b" | "c"
  value // string | number | boolean
] = message.example;

// Set
message.example = ['b', 1];

// Clear
message.example = [];

A couple of helper constants could be exported for the fun of it.
// oneof.ts
export const KIND = 0;
export const VALUE = 1;

import { KIND, VALUE } from '@protobuf-ts/oneof';

// Get
if (!message.example[KIND]) {
  throw new Error("No kind specified");
}
const value = message.example[VALUE]; // string | number | boolean
const kind = message.example[KIND]; // "a" | "b" | "c"

Actually, now I'm curious why the oneofs are structured the way they are currently.
In protobufjs the oneof identifier could be used as the key of a property whose value was the key of the actual value property. So in my above example message the client would see something like:
const message = {
  example: 'b',
  b: 1,
};

This would allow the consumer to just get the value with: message[message.example].
But protobuf-ts specially does not put the oneof key/value inside the parent object like that. It makes a separate object so that the generated union is confined to just the oneof and not the entire message:
const message = {
  example: {
    oneofKind: 'b',
    b: 1,
  }
}

But because of TypeScript you don't actually get any benefit from being able to do something like this to get the value: message.example[message.example.oneofKind]. So I guess my question is: why bother making the value of the oneof keyed off the identifier? Oneof could much more simply be represented with an object with just two static properties: kind and value:
const message = {
  example: {
    kind: 'b',
    value: 1,
  }
}

This would have the exact same benefits my previous comment showcased, but is arguably more ergonomic since it avoids using arrays for something they probably shouldn't be used for since order doesn't actually matter.
type UnknownOneofGroup = {
    kind: string,
    value: UnknownScalar | UnknownEnum | UnknownMessage,
} | { kind?: undefined, value?: undefined };

type ExampleOneof =
  | { kind: 'a', value: string }
  | { kind: 'b', value: number }
  | { kind: 'c', value: boolean }
  | { kind?: undefined, value?: undefined };

interface ExampleMessage {
  example: ExampleOneof;
}

declare var message: ExampleMessage;

Get
if (!message.example.kind) {
  throw new Error("No kind specified");
}
const {
  kind, // "a" | "b" | "c"
  value // string | number | boolean
} = message.example;

// Set
message.example = { kind: 'b', value: 1 };

// Clear
message.example = {};

Now that looks interesting!
If I remember correctly I was hesitant to omit the field names - in all other language implementations I am aware of, oneof members are siblings to regular fields and doing away with the field name probably felt a bit too drastic. After having used the generated types for some time however, your proposal does look very attractive.
It's not completely trivial to use kind instead of oneofKind, because the PartialMessage type uses the discriminator to identify oneof groups, so that users cannot provide partial oneof groups. We are escaping field name oneofKind - which is very unlikely to occur anyway - kind however is much more likely to exist as a field name. That said, { kind: 'b', value: 1 } is very succinct and may be worth that tradeoff.
I'm not opposed to an early 3.0 :) we should explore this.

I'm not at all attached to kind. Keeping it oneofKind works just as well. The important thing is that the the other key in the object is static, the one that holds the value. I'm also not attached to value being the key for that either :)
type ExampleOneof =
  | { oneofKind: 'a', value: string }
  | { oneofKind: 'b', value: number }
  | { oneofKind: 'c', value: boolean }
  | { oneofKind?: undefined, value?: undefined };

But I'm already attached :)
The oneofKind discriminator always felt a bit like a workaround to me. I'd wager many users ask themselves why the discriminator is named that way when they encounter it for the first time. { kind: 'b', value: 1 } does not appear to have that problem.
Regarding name clashes: In the test fixtures, there's http.proto and type.proto with a field named kind. It should be possible to look at all message fields, and only escape when just kind and value are present. That would bring the likelihood of clashes down to the same ballpark as oneofKind.

Implementation notes. It's a long list, but many items will be trivial.
Runtime:

Use intermediate type { oneofKind: ... , oneofValue: ... } in UnknownOneofGroup, isOneofGroup() and the accessor utility functions
Take the generated output of msg-oneofs.proto as a candidate and change the ADT manually to the new representation
Update reflectionCreate, reflectionMergePartial, reflectionEquals and ReflectionTypeCheck
Update ReflectionJsonReader, ReflectionJsonWriter
Update ReflectionBinaryReader, ReflectionBinaryWriter
Validate that the API has no regressions with the manually changed ADT

Plugin:

Update code generator for the oneof union type (method createOneofADTPropertySignature of MessageInterfaceGenerator)
Update secondary code generation that accesses oneofs (WellKnownTypes, GoogleTypes, Create (?), InternalBinaryRead, InternalBinaryWrite)
Validate that the API has no regressions with the new generated ADT

Polish:

Improve name clash resolving, special case messages that only have the two ADT properties as field names
Switch to { kind: ... , value: ... }
Test and document

I've been taking a shot at making these changes this weekend and I'm also wondering why a field name matching the oneofKindDiscriminator needs to be escaped if it is not part of a oneof group? Is it just to ensure the runtime isOneofGroup works correctly?

Ah, re-reading through the thread I see now this bit:

PartialMessage type uses the discriminator to identify oneof groups

That's a bit unfortunate. I'm not sure what the restrictions are on protobuf field names, but perhaps we could switch the oneofKindDiscriminator to something which could never show up as a generated field name like $ or _kind which would avoid ever having to deal with a field name conflict.

One thing that is confusing to me is why oneofKindDiscriminator is even an option that can be set for the interpreter. Since that value is never communicated to the runtime it means that if was set to any other value when invoking the interpreter then none of the runtime code would actually work correctly with the generated code.

One thing that is confusing to me is why oneofKindDiscriminator is even an option that can be set for the interpreter.

It also has some other options that can't be changed without changes to other packages - it's just good style to not repeat string literals all over, and instead of global const, I chose an explicit constructor argument :shrug:

foo[rt.oneofKind]

Possible, but maybe not the most convenient regarding IDE autocompletion.

That's a bit unfortunate.

For sure.
From a comment above:

It should be possible to look at all message fields, and only escape when just kind and value are present.

But that might be a bit much magic. Going to think about it about alternatives.

It also has some other options that can't be changed without changes to other packages - it's just good style to not repeat string literals all over, and instead of global const, I chose an explicit constructor argument 🤷

But like I mentioned above, if you constructed the interpreter with any other value then none of the TS types would match the actual output (like UnknownOneof)

foo[rt.oneofKind]

Possible, but maybe not the most convenient regarding IDE autocompletion.

This would only be for internal use (although, external consumers could choose to use those constants if they wanted to). But generally for an external consumer they would still just be able to access the oneof group fields with foo.$kind and foo.value.
Additionally it means that the plugin version and plugin-framework version could remain unchanged if we ever needed to update those property names again. Bonus: if a consumer wanted to choose their own oneof group field names they'd only need to patch the runtime. The plugin/plugin-framework would just work.

It should be possible to look at all message fields, and only escape when just kind and value are present.

But even still, "kind" and "value" are going to be much more likely to show up in actual proto message field names than "oneof_kind". It also would require more logic to find and escape when only those two fields are present (possibly significant changes to the existing method of field name escaping). Comparatively, just renaming oneofKind to something that was impossible to show up in a proto message field name is much easier (e.g. $kind).

I spent some time trying to see if my idea of using element access using a constant string defined in the runtime, but apparently it won't work because TS is unable to properly discriminate when using a non-literal (but constant) string to index into an object :\
Playground
const oneofKind = "$kind" as const;
const oneofValue = "value" as const;

type ExampleOneof =
    | { [oneofKind]: "a"; [oneofValue]: string; }
    | { [oneofKind]: "b"; [oneofValue]: number; }
    | { [oneofKind]: "c"; [oneofValue]: boolean; }
    | { [oneofKind]: undefined; };

declare const exampleOneof: ExampleOneof;

if (exampleOneof.$kind === "b") {
    const b = exampleOneof[oneofValue]; // OK
}
if (exampleOneof['$kind'] === "b") {
    const b = exampleOneof[oneofValue]; // OK
}
if (exampleOneof[oneofKind] === "b") {
    const b = exampleOneof[oneofValue]; // Error: Element implicitly has an 'any' type because expression of type '"value"' can't be used to index type 'ExampleOneof'.
}

This is kind of random, but I found a way to generically convert from the current oneof shape to the new one (see it in action: Playground):
type OneofHelper<
    T,
    K extends T extends { oneofKind: keyof T } ? T['oneofKind'] : never
> = T extends { oneofKind: K } ? T[K] : never;
export function helpfulOneof<
    T extends { oneofKind: string | undefined; [k: string]: unknown },
    K extends T extends { oneofKind: keyof T } ? T['oneofKind'] : never,
    M extends { [k in K]: { kind: k; value: OneofHelper<T, k> } }
>(oneof: T): M[keyof M] | { kind: undefined } {
    const kind = oneof.oneofKind;
    if (!kind) {
        return { kind: undefined };
    }
    const value = oneof[kind];
    // @ts-ignore
    return { kind, value };
}

I'm currently taking a stab at using the library, and so far it's been quite nice. Especially the fact that it ships the protoc compiler made setting it up a real breeze.
This oneof stuff is currently the most annoying bit, especially the not-typical structure makes using it (while remaining type safe) really hard.
Heck, the built-in, and sadly not all that easy to find getOneofValue chokes on all the types I have.
messages.txt
const playerPickup: ServerPlayerPickup = null as any;
const result1 = getOneofValue(playerPickup.kind, "heart");
console.log(result1);

const gameAction: GameAction = null as any;
const result2 = getOneofValue(gameAction.action, "cPlayerMove");
console.log(result2);

results in the Typescript compiler outputting messages such as
[{
	"resource": "/c:/Coding/GitHub/Games/noita-together/electron/main/proto/messages.ts",
	"owner": "typescript",
	"code": "2345",
	"severity": 8,
	"message": "Argument of type '{ oneofKind: \"heart\"; heart: ServerPlayerPickup_HeartPickup; } | { oneofKind: \"orb\"; orb: ServerPlayerPickup_OrbPickup; } | { ...; }' is not assignable to parameter of type 'UnknownOneofGroup'.\n  Type '{ oneofKind: \"heart\"; heart: ServerPlayerPickup_HeartPickup; }' is not assignable to type 'UnknownOneofGroup'.\n    Property 'heart' is incompatible with index signature.\n      Type 'ServerPlayerPickup_HeartPickup' is not assignable to type 'UnknownScalar | UnknownMessage | undefined'.\n        Type 'ServerPlayerPickup_HeartPickup' is not assignable to type 'UnknownMessage'.\n          Index signature for type 'string' is missing in type 'ServerPlayerPickup_HeartPickup'.",
	"source": "ts",
	"startLineNumber": 4843,
	"startColumn": 31,
	"endLineNumber": 4843,
	"endColumn": 48
}]

I personally would absolutely welcome changing the oneof representation to something more typical, like { kind: ..., value: ... } or one of the variations with a special character like $kind.

I spent some time trying to see if my idea of using element access using a constant string defined in the runtime, but apparently it won't work because TS is unable to properly discriminate when using a non-literal (but constant) string to index into an object :\
Playground
const oneofKind = "$kind" as const;
const oneofValue = "value" as const;

type ExampleOneof =
    | { [oneofKind]: "a"; [oneofValue]: string; }
    | { [oneofKind]: "b"; [oneofValue]: number; }
    | { [oneofKind]: "c"; [oneofValue]: boolean; }
    | { [oneofKind]: undefined; };

declare const exampleOneof: ExampleOneof;

if (exampleOneof.$kind === "b") {
    const b = exampleOneof[oneofValue]; // OK
}
if (exampleOneof['$kind'] === "b") {
    const b = exampleOneof[oneofValue]; // OK
}
if (exampleOneof[oneofKind] === "b") {
    const b = exampleOneof[oneofValue]; // Error: Element implicitly has an 'any' type because expression of type '"value"' can't be used to index type 'ExampleOneof'.
}

Update from the future: Typescript has been updated and this doesn't throw an error anymore

For what it's worth I made some minor improvements so that you can do the conversion to/from the "useful" oneof type which is especially useful if your linter requires that you annotate the return type of functions.
export function fromOneof<T extends AnyOneof>(oneof?: T): UsefulOneof<T> {
    const kind = oneof?.oneofKind;
    if (!kind) {
        // @ts-ignore
        return { kind: undefined };
    }
    const value = oneof[kind];
    // @ts-ignore
    return { kind, value };
}

export type UsefulOneof<
    T extends AnyOneof,
    K extends AnyOneofKind<T> = AnyOneofKind<T>,
    M extends AnyOneofValueMap<T, K> = AnyOneofValueMap<T, K>
> = T extends { oneofKind: keyof M } ? M[keyof M] : { kind: undefined; value?: never };

// Helper types for UsefulOneof
export type AnyOneof = { oneofKind: string; [k: string]: unknown } | { oneofKind: undefined };
export type AnyOneofKind<T extends AnyOneof> = T extends { oneofKind: keyof T }
    ? T['oneofKind']
    : never;
export type AnyOneofValueMap<T extends AnyOneof, K extends AnyOneofKind<T> = AnyOneofKind<T>> = {
    [k in K]: { kind: k; value: T extends { oneofKind: k } ? T[k] : never };
};

export function toOneof<T extends AnyUsefulOneof>(oneof?: T): Oneof<T> {
    const oneofKind = oneof?.kind;
    if (!oneofKind) {
        // @ts-ignore
        return { oneofKind: undefined };
    }
    // @ts-ignore
    return { oneofKind, [oneofKind]: oneof.value };
}

export type Oneof<
    T extends AnyUsefulOneof,
    K extends AnyUsefulOneofKind<T> = AnyUsefulOneofKind<T>,
    M extends AnyUsefulOneofValueMap<T, K> = AnyUsefulOneofValueMap<T, K>
> = T extends { kind: keyof M } ? M[keyof M] : { oneofKind: undefined };

// Helper types for Oneof
export type AnyUsefulOneof = { kind: string; value: unknown } | { kind: undefined; value?: never };
export type AnyUsefulOneofKind<T extends AnyUsefulOneof> = T extends { kind: string }
    ? T['kind']
    : never;
export type AnyUsefulOneofValueMap<
    T extends AnyUsefulOneof,
    K extends AnyUsefulOneofKind<T> = AnyUsefulOneofKind<T>
> = {
    [k in K]: { oneofKind: k } & {
        [p in k]: T extends { kind: k; value: unknown } ? T['value'] : never;
    };
};

So for example, you can now easily export the type of a concrete protobuf-ts oneof type:
import { UsefulOneof, fromOneof } from './utils';
import { MyMessageType } from 'generated/my-message-type';

export type MyUsefulSomeOneof = UsefulOneof<MyMessageType['some_oneof']>;
export function getMyMessageUsefulSomeOneof(message: MyMessageType): MyUsefulSomeOneof {
    return fromOneof(message.some_oneof);
}

This was implemented in https://github.com/timostamm/protobuf-ts/pull/262


[REEF-557] Move EnvironmentUtils.addAll to ConfigurationModule.set and delete EnvironmentUtils.addClasspath

This addressed the issue by

Creating ConfigurationModule.setMultipleValues method
Replacing use of addClassPath with setMultipleValues
Deprecating EnvironmentUtils.addAll and addClassPath

JIRA:
REEF-557

@tcNickolas I've done a pass.

@tcNickolas I see that there was a commit since my review. Is this ready for a second pass?

Yes - I've left a comment for deepCopy() and fixed other issues.
By the way, what's the etiquette when I fix something you've left a comment about? In Codeflow, for example, I could just mark each individual comment as "resolved" or "closed", but here there seem to be only two technical options - either answer "fixed" to each comment or leave them unanswered and assume that I answer to the ones I don't fix ?

By the way, what's the etiquette when I fix something you've left a comment about?

That isn't really well supported in GitHub, sadly. Most people respond inline or leave a comment here on the front page that all issues have been addressed, except where noted. Either way is fine. The former is tricky when also doing rebases, as GitHub then looses the association of the comment with the code.

This looks good, and passes tests. I will merge.


Fix PHP7 compatibility issue(s)

I've updated the current v1 branch based release of your mongodb-provider to comply compatibility issues for php7. I'm afraid, this version will not 100% compatible with your php 5.3-5.6.n base branch, so it's may be necessary to bring my changes up to a may planed new major version.
best regards,
Patrick

Hello @paterik
Thank you for your pull request. Changing \Pimple with Container means Silex 1.0 vs Silex 2.0 (so this PR should be against master). If you need it for Silex 1.0 we need another PR to V1 branch with \Pimple. Then we have to find a new major version concept (V1 => Pimple 1, V2 => Pimple 3, V3 => Pimple 1 with PHP 7...) Would be a bit weird but possible.
Regards @dominikzogg

Hi @dominikzogg,
Okay, I'll add minor changes in my PR and I'm really fine with silex 2.n, I don't need silex 1.3n compatibility for my related changes and I'll try to add reverse compatibility check for php 5.5/5.6 also. Could you change the PR target from branch v1 to master - otherwise decline my PR and I'll create a new one, targeting your master branch ...
thank you in advance,
regards,
@paterik

Hello @paterik
Please open the PR against the master branch.
Regards @dominikzogg


WRQ-30274: Merge feature/enact_v5 to develop branch

Checklist

[x] I have read and understand the contribution guide
[ ] A CHANGELOG entry is included
[ ] At least one test case is included for this feature or bug fix
[x] Documentation was added or is not needed
[ ] This is an API breaking change

Issue Resolved / Feature Added
We will merge feature/enact_v5 branch to develop to release next major alpha version of agate.
Resolution

Merged feature/enact_v5 branch to develop
Modified npm-shrinkwrap.json in sampler
Changed ubuntu dist in travis.yml from focal to jammy

Additional Considerations
Links
WRQ-30274
Comments
Enact-DCO-1.0-Signed-off-by: Jiye Kim<EMAIL_ADDRESS>

unit test seems to be failed because of enact version.
It will be ok after merge enact branch feature/enact_v5 to develop in https://github.com/enactjs/enact/pull/3261

@vJIYEv Could you bump up the enact dependencies to the latest in package.json files under this repo, please?


SIGSEGV during Finalizer execution on Scanner

In some cases (usually during high memory pressure) a java application using hyperscan-java can segfault. The stacktrace indicates, that the problem seems to be related to the finalize() method on the Scanner class.

Fatal Error Log of the JVM:
https://gist.github.com/gliwka/c87eb43c92801f474a4c851cd7ff2357
Stacktrace starts at line 95.

Fixed in v0.3.1


Integrate NetflixOSS Vector to monitor guest containers + host system stats

http://vectoross.io/blog/release/2016/06/01/whats-new-in-vector.html

Must be implemented at the host level, so I've made this part of the GCE and AWS init scripts.
Documented in the Dockerfile for reference:
https://github.com/fluxcapacitor/pipeline/blob/master/Dockerfile#L485


Boolean phrase parser

initial commit of the module and unit tests. There are still more things that can be done to for better error handling.Feel free to reject if as there are probably things that should be changed.

I added some comments. Could you also run grunt build after you finish all the edits. Thanks!

ping :)


Batch Error on Integration w/ Directus.io

Describe the bug
Enabling batch for GraphQL Handler connection to Directus.io results in the error below.
The integration works disabling batch.
{
"GraphQLError: Cannot read property 'columns' of undefined",
        "    at Object.relocatedError (/Users/dustin/Projects/mesh-directus-replication/node_modules/@graphql-tools/utils/index.cjs.js:3894:12)",
        "    at mergeDataAndErrors (/Users/dustin/Projects/mesh-directus-replication/node_modules/@graphql-tools/delegate/index.cjs.js:1397:34)",
        "    at /Users/dustin/Projects/mesh-directus-replication/node_modules/@graphql-tools/delegate/index.cjs.js:1425:66",
        "    at Array.forEach (<anonymous>)",
        "    at mergeDataAndErrors (/Users/dustin/Projects/mesh-directus-replication/node_modules/@graphql-tools/delegate/index.cjs.js:1423:27)",
        "    at /Users/dustin/Projects/mesh-directus-replication/node_modules/@graphql-tools/delegate/index.cjs.js:1425:66",
        "    at Array.forEach (<anonymous>)",
        "    at mergeDataAndErrors (/Users/dustin/Projects/mesh-directus-replication/node_modules/@graphql-tools/delegate/index.cjs.js:1423:27)",
        "    at checkResultAndHandleErrors (/Users/dustin/Projects/mesh-directus-replication/node_modules/@graphql-tools/delegate/index.cjs.js:1386:38)",
        "    at CheckResultAndHandleErrors.transformResult (/Users/dustin/Projects/mesh-directus-replication/node_modules/@graphql-tools/delegate/index.cjs.js:1382:16)"

To Reproduce
Steps to reproduce the behavior:
This repo will get you set up: https://github.com/ddcollins/mesh-directus-replication
Just enable batch for the handler in the config.
The mesh config file also has commented out transforms that each result in an error when enabled.
Environment:

OS: 10.15.7

"@graphql-mesh/cli": "0.19.2",
"@graphql-mesh/graphql": "^0.13.17",
"@graphql-mesh/json-schema": "^0.10.7",
"@graphql-mesh/transform-encapsulate": "^0.1.27",
"@graphql-mesh/transform-filter-schema": "^0.9.0",

Cannot read property 'columns' of undefined
That errors seems to be coming from the remote API. Batching basically creates operations with multiple fields with aliases in the boundaries of the GraphQL Spec.
You can disable it with batch: false flag. Also you can learn more its algorithm;
https://www.graphql-tools.com/docs/batch-execution


Fix recursive add

Currently, we use a stand-in strategy of adding all files in all subdirectories, instead of honoring the correct directory structure. It should work as advertised.

fixed with  77fb2ac


feature request: pagination showing current and total

if there are a lot of pages, it's nice to add a count to the pagination, like 2 of 25. Might be possible to do with counters with ::page specifying counter-increment?

This is definitely a common pattern - e.g., it's often used to help users know how many product list pages they've navigated.
It also becomes more useful as the # of pages increases, whereas scroll-markers might be enough for cases where # of pages is small enough for the user to easily count.


Make the multikueue jobAdapter a part of the jobFramework.

What would you like to be cleaned:
Make the multikueue jobAdapter a part of the jobFramework.
Why is this needed:
To ease the integration of other job frameworks with multikueue.
Relates to: #2349

/assign


Specify clearly which all capabilities need to be selected

Tutorial URL: https://developers.sap.com/tutorials/cp-starter-isuite-onboard-subscribe.html
Please specify the step you are referring to : Step 4: Provision the capabilities
Please specify clearly which all capabilities need to be selected. Or else ask to select all of them. In further steps, i.e. activating capabilities, assigning roles, and verifying the URLs; these steps are based on the above selections. There is a lot of confusion from an end-user perspective regarding the selection of capabilities as well as all the screenshots provided. So it's better to clarify the statements as well as add screenshots accordingly.
Here If we are to select only one capability, few of the roles that we have to add in the next step will not be available and some of the screenshots should also be changed here.
Labels:
Landscape: trail1, trail2, trail3
Label: SCPTest-2010A
Scenario Label: SCPTest-cloudin
Priority: High
Best Regards,
Priyanka

Hi Priyanka,
We added the line to select the capability.

Thank you for your feedback. The issue seems to be resolved, so I am closing the issue.
If you still have questions, feel free to reopen the issue.


Cells of jupyter notebook are been disoriented

Can confirm of this issue.

This is due to improper styling of the Fields, setting the elements to display: grid in jupyter-notebook-atom.less resolves the issue partially
 There is still an issue of text duplication with a non-functional editor


Rive file with images do not work in JS runtime

Hello,
I currently have a problem with a Rive implementation for a website. I try to implement the following Rive Animation, which I have published here in to the website. As you can see, there are two embedded images and this works well on the community page. Now when I try to do the same on a Nuxt.js page it does not work unfortunately.
I have here a Codepen, which demonstrates the case: https://codepen.io/julianschmuckli/pen/rNGJGjg?editors=1000
This is an example from the quick start guide. I just replaced the URL from https://cdn.rive.app/animations/off_road_car_v7.riv to https://public.rive.app/community/runtime-files/1782-3522-beamer.riv.
The error received from the library is the following:

And I use the latest runtime version with is 0.7.33.
Thanks for your help.

Hi @julianschmuckli! The NPM packages for the web runtime were updated very recently to split rive-js into separate packages, and with this change comes the support for raster assets. We're working to update this across our docs site as well shortly here.
Check out the latest on the new packages here. Instead of importing via rive-js, you can use for example:
import rive from '@rive-app/webgl'

I was able to use your public riv file and get it to render in a small CodeSandbox example. You can check it out here: https://codesandbox.io/s/rive-plainjs-repro-discord-1-8xc1h?file=/src/index.js
Hopefully this helps!

Hi @zplata,
thank you for your answer. Yes it does not work for me as well. But I have now installed the Canvas version (@rive-app/canvas) which does work as well, and may has a bit better quality in my opinion.
Thanks.


reuse memory in stream_sequencer_buffer

in quic_stream_sequencer_buffer.cc
I make some change in my person project, during test most time only one memory block is used.(reduce new/free)
  void QuicStreamSequencerBuffer::Clear() {
  if (blocks_ != nullptr) {
    for (size_t i = 0; i < current_blocks_count_; ++i) {
      if (blocks_[i] != nullptr) {
        //RetireBlock(i);
        delete blocks_[index];
        blocks_[index] = nullptr;
      }
    }
  }
  num_bytes_buffered_ = 0;
  bytes_received_.Clear();
  bytes_received_.Add(0, total_bytes_read_);
}

bool QuicStreamSequencerBuffer::RetireBlock(size_t index) {
  if (blocks_[index] == nullptr) {
    QUIC_BUG(quic_bug_10610_1) << "Try to retire block twice";
    return false;
  }

  //keeping current block to use
  const auto block_finished = total_bytes_read_ % kBlockSizeBytes == 0;
  if (!block_finished)
   return true;

  //move current block to next
  const auto maybe_read_block = GetBlockIndex(total_bytes_read_ + num_bytes_buffered_ + kBlockSizeBytes);
  if (blocks_[maybe_read_block] == nullptr) {
    blocks_[maybe_read_block] = blocks_[index];
    blocks_[index] = nullptr;
  } else {
    delete blocks_[index];
    blocks_[index] = nullptr;
  }
  QUIC_DVLOG(1) << "Retired block with index: " << index;
  return true;
}

used in my project


Render progress bar

Description
Please explain the changes you made here.
Release notes
The title of the pull request will be used as the default release notes description. If more detail is needed to communicate to partners the scope of the PR's changes, use this release notes section.
Checklist
General
Read the full guidelines for PRs here

[ ] Added the correct label: < feature | enhancement | bug | under-development | dependencies | infrastructure | ignore-for-release | database >
[ ] Assigned to a specific person, civiform/developers, or a more specific round-robin list
[ ] Added an additional reviewer from outside your organization as FYI (if the primary reviewer is in the same organization as you)
[ ] Created unit and/or browser tests which fail without the change (if possible)
[ ] Performed manual testing (Chrome and Firefox if it includes front-end changes)
[ ] Extended the README / documentation, if necessary

Database evolutions
Read the guidelines here

[ ] Assigned two reviewers
[ ] Guarded against already existing resources using IF NOT EXISTS and IF EXISTS
[ ] Downs created to undo changes in Ups

User visible changes

[ ] Followed steps to internationalize new strings

[ ] Added context strings to new messages
[ ] Didn't use a message in applicant facing code that isn't translated yet (unless behind a flag)

[ ] Wrote browser tests using the validateAccessibility method
[ ] Tested on mobile view. See mobile device mode
[ ] Manually tested at 200% size
[ ] Manually evaluated tab order

New Features

[ ] Add new FeatureFlag env vars to server/conf/helper/feature-flags.conf
[ ] Conditioned new functionality on a FeatureFlag
[ ] Wrote browser tests with the feature flag off and on, etc.

Instructions for manual testing
If instructions are needed for manual testing by reviewers, include them here.
Issue(s) this completes
Fixes #<issue_number>; Fixes #<issue_number>...

#7187  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @greg-hyde and the rest of your teammates on  Graphite

Based on https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.html#preprocessing it seems like double underscores as meaning even in a string, which is annoying.

The one other thing that is worth testing / understanding is how this works with visibility conditions applied. Maybe its already part of a test or you tested it manually. I'd assume it would show the progress bar as the number of blocks that are always visible and then if they do happen to answer a question to see a block with visibility conditions applied, the count at the top would change?

Yes the count/list of sections can change as sections are hidden or shown. We rely on getAllActiveBlocks for that


Asynchronous deployment of helm releases

What problem are you facing?
Currently, install and upgrade calls using helm go client is blocking which means, reconcile loop is being blocked until deployment is done. Since we don't set wait (related), this is fine if chart does not contain hooks. However, with hooks we encounter problems like this.

How could Crossplane help solve your problem?
We need to make this action asynchronous somehow.

Related: https://github.com/helm/helm/issues/5891

Are you still working on this @turkenh, or would it be available for someone else to take on?

For posterity, I believe this could be implemented by following a similar approach used in Terrajet: https://github.com/crossplane/terrajet/blob/6142eefbcf5b4e6490a4a39f8ceffa8810911d5f/pkg/terraform/workspace.go#L106
We might even consider to have a cli execution library (sync/async) as a reusable piece of code, e.g. in crossplane-runtime. Not sure if this worths the amount of work required though.


Revamp test cases of persist tools

Description:
Test cases for the persist tools module has to be revamped according to the design v3 changes
Describe your task(s)
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Fixes are merged. Hense closing


As a player, I want blackstone texture to be included in the game.

Closed with pull request https://github.com/WSU-CEG-6110-4410/ADAD-Craft/pull/144


Test if we support more recent java versions

relates to #1335

:grey_exclamation: Build Aborted

The PR is not allowed to run in the CI yet

Expand to view the summary

Build stats

Build Cause: [Pull request #1361 opened]

Reason: The PR is not allowed to run in the CI yet

Start Time: 2020-08-28T23:48:42.211+0000

Duration: 4 min 4 sec

Commit: 0dbd1855a974e748fe4a7b96967a6ce87c6052ec

Steps errors
Expand to view the steps failures

Name: Error signal

Description: githubPrCheckApproved: The PR is not allowed to run in the CI yet. (Only users with write permission

Duration: 0 min 0 sec

Start Time: 2020-08-28T23:52:41.837+0000

log

Log output
Expand to view the last 100 lines of log output

[2020-08-28T23:52:16.930Z]  > git config remote.origin.url git@github.com:elastic/apm-agent-java.git # timeout=10
[2020-08-28T23:52:16.940Z]  > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
[2020-08-28T23:52:16.950Z]  > git config remote.origin.url git@github.com:elastic/apm-agent-java.git # timeout=10
[2020-08-28T23:52:16.961Z]  > git rev-parse --verify HEAD # timeout=10
[2020-08-28T23:52:16.967Z] No valid HEAD. Skipping the resetting
[2020-08-28T23:52:16.968Z]  > git clean -fdx # timeout=10
[2020-08-28T23:52:16.984Z] Fetching upstream changes from git@github.com:elastic/apm-agent-java.git
[2020-08-28T23:52:16.984Z] using GIT_SSH to set credentials GitHub user @elasticmachine SSH key
[2020-08-28T23:52:16.989Z]  > git fetch --no-tags --progress --prune -- git@github.com:elastic/apm-agent-java.git +refs/pull/1361/head:refs/remotes/origin/PR-1361 +refs/heads/master:refs/remotes/origin/master # timeout=15
[2020-08-28T23:52:17.634Z] Merging remotes/origin/master commit cc5bd65389c4ca904180676d1803aae7c442f6ea into PR head commit 0dbd1855a974e748fe4a7b96967a6ce87c6052ec
[2020-08-28T23:52:18.174Z] Merge succeeded, producing 44c590b3a7bb187e8dabc224661e48fec61161c0
[2020-08-28T23:52:18.175Z] Checking out Revision 44c590b3a7bb187e8dabc224661e48fec61161c0 (PR-1361)
[2020-08-28T23:52:17.642Z]  > git config core.sparsecheckout # timeout=10
[2020-08-28T23:52:17.650Z]  > git checkout -f 0dbd1855a974e748fe4a7b96967a6ce87c6052ec # timeout=15
[2020-08-28T23:52:17.845Z]  > git remote # timeout=10
[2020-08-28T23:52:17.855Z]  > git config --get remote.origin.url # timeout=10
[2020-08-28T23:52:17.862Z] using GIT_SSH to set credentials GitHub user @elasticmachine SSH key
[2020-08-28T23:52:17.865Z]  > git merge cc5bd65389c4ca904180676d1803aae7c442f6ea # timeout=10
[2020-08-28T23:52:18.168Z]  > git rev-parse HEAD^{commit} # timeout=10
[2020-08-28T23:52:18.178Z]  > git config core.sparsecheckout # timeout=10
[2020-08-28T23:52:18.182Z]  > git checkout -f 44c590b3a7bb187e8dabc224661e48fec61161c0 # timeout=15
[2020-08-28T23:52:21.750Z] Commit message: "Merge commit 'cc5bd65389c4ca904180676d1803aae7c442f6ea' into HEAD"
[2020-08-28T23:52:21.750Z] First time build. Skipping changelog.
[2020-08-28T23:52:21.750Z] Cleaning workspace
[2020-08-28T23:52:21.858Z]  > git --version # timeout=10
[2020-08-28T23:52:21.870Z]  > git --version # 'git version 2.17.1'
[2020-08-28T23:52:21.877Z] fatal: bad object 06c62f097a3109e82d977b3292df1e77ce92ff26
[2020-08-28T23:52:21.753Z]  > git rev-parse --verify HEAD # timeout=10
[2020-08-28T23:52:21.765Z] Resetting working tree
[2020-08-28T23:52:21.765Z]  > git reset --hard # timeout=10
[2020-08-28T23:52:21.795Z]  > git clean -fdx # timeout=10
[2020-08-28T23:52:22.735Z] Masking supported pattern matches of $JOB_GCS_BUCKET or $NOTIFY_TO
[2020-08-28T23:52:22.807Z] Timeout set to expire in 1 hr 0 min
[2020-08-28T23:52:22.837Z] The timestamps step is unnecessary when timestamps are enabled for all Pipeline builds.
[2020-08-28T23:52:23.280Z] [INFO] Number of builds to be searched 10
[2020-08-28T23:52:23.690Z] [INFO] 'shallow' is forced to be disabled when running on PullRequests
[2020-08-28T23:52:23.716Z] Running in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1361/src/github.com/elastic/apm-agent-java
[2020-08-28T23:52:23.757Z] [INFO] gitCheckout: Checkout SCM PR-1361 with some customisation.
[2020-08-28T23:52:23.792Z] [INFO] Override default checkout
[2020-08-28T23:52:23.859Z] Sleeping for 10 sec
[2020-08-28T23:52:33.999Z] using credential f6c7695a-671e-4f4f-a331-acdce44ff9ba
[2020-08-28T23:52:34.022Z] Cloning the remote Git repository
[2020-08-28T23:52:34.037Z] Cloning repository git@github.com:elastic/apm-agent-java.git
[2020-08-28T23:52:34.063Z]  > git init /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1361/src/github.com/elastic/apm-agent-java # timeout=10
[2020-08-28T23:52:34.078Z] Using reference repository: /var/lib/jenkins/.git-references/apm-agent-java.git
[2020-08-28T23:52:34.078Z] Fetching upstream changes from git@github.com:elastic/apm-agent-java.git
[2020-08-28T23:52:34.078Z]  > git --version # timeout=10
[2020-08-28T23:52:34.089Z]  > git --version # 'git version 2.17.1'
[2020-08-28T23:52:34.090Z] using GIT_SSH to set credentials GitHub user @elasticmachine SSH key
[2020-08-28T23:52:34.098Z]  > git fetch --tags --progress -- git@github.com:elastic/apm-agent-java.git +refs/heads/*:refs/remotes/origin/* # timeout=10
[2020-08-28T23:52:35.802Z] Checking out Revision 0dbd1855a974e748fe4a7b96967a6ce87c6052ec (origin/PR-1361)
[2020-08-28T23:52:35.034Z]  > git config remote.origin.url git@github.com:elastic/apm-agent-java.git # timeout=10
[2020-08-28T23:52:35.037Z]  > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
[2020-08-28T23:52:35.045Z]  > git config remote.origin.url git@github.com:elastic/apm-agent-java.git # timeout=10
[2020-08-28T23:52:35.053Z] Fetching upstream changes from git@github.com:elastic/apm-agent-java.git
[2020-08-28T23:52:35.054Z] using GIT_SSH to set credentials GitHub user @elasticmachine SSH key
[2020-08-28T23:52:35.058Z]  > git fetch --tags --progress -- git@github.com:elastic/apm-agent-java.git +refs/pull/1361/head:refs/remotes/origin/PR-1361 +refs/heads/master:refs/remotes/origin/master # timeout=10
[2020-08-28T23:52:35.797Z]  > git rev-parse origin/PR-1361^{commit} # timeout=10
[2020-08-28T23:52:35.805Z]  > git config core.sparsecheckout # timeout=10
[2020-08-28T23:52:35.810Z]  > git checkout -f 0dbd1855a974e748fe4a7b96967a6ce87c6052ec # timeout=10
[2020-08-28T23:52:35.984Z] Commit message: "test if we support more recent java versions"
[2020-08-28T23:52:35.984Z] First time build. Skipping changelog.
[2020-08-28T23:52:36.001Z]  > git --version # timeout=10
[2020-08-28T23:52:36.010Z]  > git --version # 'git version 2.17.1'
[2020-08-28T23:52:36.019Z] fatal: bad object 06c62f097a3109e82d977b3292df1e77ce92ff26
[2020-08-28T23:52:37.343Z] Masking supported pattern matches of $GIT_USERNAME or $GIT_PASSWORD
[2020-08-28T23:52:37.972Z] + git fetch<EMAIL_ADDRESS>+refs/pull/*/head:refs/remotes/origin/pr/*
[2020-08-28T23:52:38.593Z] Archiving artifacts
[2020-08-28T23:52:39.249Z] + git rev-parse HEAD
[2020-08-28T23:52:39.614Z] + git rev-parse HEAD
[2020-08-28T23:52:39.924Z] + git rev-parse origin/pr/1361
[2020-08-28T23:52:39.978Z] [INFO] githubEnv: Found Git Build Cause: pr
[2020-08-28T23:52:40.408Z] Masking supported pattern matches of $GITHUB_TOKEN
[2020-08-28T23:52:41.413Z] [WARN] githubApiCall: The REST API call https://api.github.com/repos/elastic/apm-agent-java/pulls/1361/reviews return 0 elements
[2020-08-28T23:52:41.481Z] [INFO] githubPrCheckApproved: Title: Test if we support more recent java versions - User: samilAyoub - Author Association: FIRST_TIME_CONTRIBUTOR
[2020-08-28T23:52:41.855Z] ERROR: githubPrCheckApproved: The PR is not allowed to run in the CI yet
[2020-08-28T23:52:41.855Z] ERROR: githubPrCheckApproved: The PR is not allowed to run in the CI yet. (Only users with write permissions can do so.)
[2020-08-28T23:52:41.943Z] [INFO] Let's stop build #1. The PR is not allowed to run in the CI yet
[2020-08-28T23:52:41.967Z] Sleeping for 5 sec
[2020-08-28T23:52:43.021Z] Stage "Build" skipped due to earlier failure(s)
[2020-08-28T23:52:43.212Z] Stage "Tests" skipped due to earlier failure(s)
[2020-08-28T23:52:43.401Z] Stage "Unit Tests" skipped due to earlier failure(s)
[2020-08-28T23:52:43.413Z] Stage "Smoke Tests 01" skipped due to earlier failure(s)
[2020-08-28T23:52:43.425Z] Stage "Smoke Tests 02" skipped due to earlier failure(s)
[2020-08-28T23:52:43.437Z] Stage "Benchmarks" skipped due to earlier failure(s)
[2020-08-28T23:52:43.448Z] Stage "Javadoc" skipped due to earlier failure(s)
[2020-08-28T23:52:43.612Z] Failed in branch Unit Tests
[2020-08-28T23:52:43.622Z] Failed in branch Smoke Tests 01
[2020-08-28T23:52:43.630Z] Failed in branch Smoke Tests 02
[2020-08-28T23:52:43.639Z] Failed in branch Benchmarks
[2020-08-28T23:52:43.648Z] Failed in branch Javadoc
[2020-08-28T23:52:43.890Z] Stage "Integration Tests" skipped due to earlier failure(s)
[2020-08-28T23:52:43.978Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-08-28T23:52:44.016Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-08-28T23:52:44.665Z] Running on Jenkins in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1361
[2020-08-28T23:52:45.012Z] [INFO] getVaultSecret: Getting secrets
[2020-08-28T23:52:45.091Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-08-28T23:52:46.402Z] + chmod 755 generate-build-data.sh
[2020-08-28T23:52:46.402Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1361/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1361/runs/1 ABORTED 243920
[2020-08-28T23:52:46.652Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1361/runs/1/steps/?limit=10000 -o steps-info.json

@felixbarny I need your help here, I added a test for JDK14, but i dont know why I get this error?, Is that mean APM agent java doesn't support JDK14?

It fails trying to deploy jsf-http-get.war with a java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener. Strange. But doesn't seem to be jdk 14 related.

Closed in favour of https://github.com/elastic/apm-agent-java/pull/1542
Relates to https://github.com/elastic/apm-agent-java/issues/1543


Attribute selector values containing # broke in 2.4.0

https://github.com/airbnb/enzyme/issues/314 caused a regression. It broke attribute selectors with values containing #, ex  a[href='/page#anchor'].
Failing test case:
it('should query attributes with hashes in their values', () => {
  const wrapper = mount(

      Hello
      World

  );
  expect(wrapper.find("a[href='/page#anchor']")).to.have.length(1);
});

In the function splitSelector in Utils.js, the regular expression /(?=\.|\[.*\])|(?=#|\[#.*\])/ is a little over-zealous, causing a[href='/page#anchor'] to be split in to [ 'a', '[href=\'/page', '#anchor\']' ]. Prior to this change, it was split to [ 'a', '[href=\'/page#anchor\']' ]

Well, it's not necessary over-zealous, it's just not smart enough to handle compound selectors and attribute values containing #. https://github.com/airbnb/enzyme/pull/458 would likely fix this, but feel free to work on a PR to fix the RexEp for now, since https://github.com/airbnb/enzyme/pull/458 still has issues that haven't been worked out.

fwiw, before releasing or merging anything new, we urgently need to either fix this behavior regression or revert #314.

Reverting #314 would be easiest if we need an urgent fix, I'm not 100% sure how difficult it's going to be to get this behavior working correctly. That regex is getting unwieldy

@ljharb should we just revert #387? It seems that fixing this behavior is going to be non-trivial, and we've already let this sit for quite a while.

Yes, I think we should.

Let's keep the test cases tho, skipped.

Maybe #547 is related to this too?

@mik01aj I don't think so -- the code that caused this bug was not present in 2.3.0 (as mentioned in the linked ticket).

Why was 2.5.0+ released given that it was a regression, and there was earlier talk of reverting the PR that introduced it?

I think this has slipped through the cracks. When we get a fix in, I'll backport it to both the 2.4.x and 2.5.x lines.

I've put up #670 which fixes this issue without reverting #387.

v2.4.2, v2.5.2, and v2.6.0 are all now published and all contain this fix.
Sorry for the delay!

Wahoo, thanks @ljharb!


Reset Button

its not realy a issue, if you grind the heist you can press a button to reset al primary and secondary targets to zero.

Added


Editor: Move camera (Middle click) inverse

Hello
In most 3D modeling software, and unity, moving camera is done like a gesture, if i hold middle click and move cursor to the right, it should slide to the opposite direction

Oh i missed it, thank you!!


Include stylesheet in repo, update footer

style.css needs to be included in this repo to untangle it from style changes made in the website repo.
Also needed, because website's custom.css is fingerprinted.
Using the opportunity to update header and footer include files.

LGTM, confirmed at http://docs.weave.works/weave/include-css/00744fb9b496c1aa17fe50dde2df54f601c1af03/index.html


Forms > Select dropdown arrow positioning off on Mobile

The Select2.scss file in Membership App has overrides for Dashing. The arrow icon gets bumped to the left. This also effects column--nested as well.

The Select2.scss file in Membership App has overrides for Dashing
As in the membership app has a fix? Or the membership app causes the problem?

Not totally sure... But looks like there is a custom Select2.scss file in Membership that has overrides in place to fix what is in Dashing. If you go to the example page for Forms, and shrink the page down, the arrow icon jumps around.

I think that's the case. Membership app has some styles that override dashing, but it seems like it's a helpful override. The positioning breaks on a mobile layout while within column--nested.


Metis Menu collapse in chrome and opera, when you visit some page

If you open sb-admin-2 demo in google chrome, and try to visit any page of the left sidebar, you will notice that sidebar menu will collapse for a moment and then become normal ( this is happening in my apps too ). It is very annoying for users. Is there any way to prevent this from happening ? Thanks

add collapse to hide the second-level-menu

and your problem will go away.

Thanks @leografx. That solves it


Remove secrets from bicep deployment outputs

This issue is for a: (mark with an x)
- [X] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce
Deploy the solution and see that the APIM subscription keys are listed in the deployment outputs
Expected/desired behavior
The deployment outputs don't contain secrets
OS and Version?

Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)

Versions

Mention any other details that might be useful
The end-to-end test scripts need the subscription keys to run.
An alternative approach would be to write the keys to KeyVault and have the scripts pull the values from KeyVault when needed.

/workspaces/apim-genai-gateway-toolkit/infra/apim-genai/modules/apiManagement.bicep(816,67) : Warning outputs-should-not-contain-secrets: Outputs should not contain secrets. Found possible secret: function 'listSecrets' [https://aka.ms/bicep/linter/outputs-should-not-contain-secrets]
/workspaces/apim-genai-gateway-toolkit/infra/apim-genai/modules/apiManagement.bicep(817,67) : Warning outputs-should-not-contain-secrets: Outputs should not contain secrets. Found possible secret: function 'listSecrets' [https://aka.ms/bicep/linter/outputs-should-not-contain-secrets]
/workspaces/apim-genai-gateway-toolkit/infra/apim-genai/modules/apiManagement.bicep(818,69) : Warning outputs-should-not-contain-secrets: Outputs should not contain secrets. Found possible secret: function 'listSecrets' [https://aka.ms/bicep/linter/outputs-should-not-contain-secrets]


change(nanocld): state handling with better code

That's good but you need to refactor the service aswell, and only create the sender and the receiver, sx and rx there, and pass it to revert functions!

That's good but you need to refactor the service aswell, and only create the sender and the receiver in the server, it's sx and rx it's the same as the apply one inside bin/nanocld/src/services/state.rs, and pass sx to revert functions !

Will do!

Thank you a lot for the refactor as i said on discord it's actually huge improvement not just in term of code repetition but also speed! So it's really appreciated !


is it possible to save user's own data?

I have tried to play with my friend by P2P,is very good,but sometimes it have a little bit unstable,lost connection to the server or something,if we have these issues,is not a big deal,we can rejoin the game then play it,but my friend thought is very annoying to re-edit the inventory and buy menu,we have tried to change language and is pretty much a little bit problem too,thread error will apear most of the time,he have to restart the game a lot's of time,so I want to ask,is this problem from game's master server's own or our P2P problem?and we want to ask is it possible to let the game save player or server master's own data,such as buy menu setting and charater or anything like that,we'd very love this game and very nice to see you let the game come back if we're using P2P or VPN to play it with our friend,hope you do better and I will reply you more BUGs and problems to you once we found these

That's possible. And can you segment your words? It's too hard to read them.
I prefer save the userdata in user side if playing in lan enviroment.

That's possible. And can you segment your words? It's too hard to read them.
I prefer save the userdata in user side if playing in lan enviroment.

yes,we found user saving data in server folder,user.js is the user's saving data,but it's on server side,by the way,can we keep in touch with each others?we're keep changing the game's source code,my friend found if the sv_cheats keep it at 1,it will get loss to master server and player,so we're finding way to shut sv_cheats off

That's possible. And can you segment your words? It's too hard to read them.
I prefer save the userdata in user side if playing in lan enviroment.

oh by the way,I felt sorry about the segments,I will notice it next time,sry about that

+1 to topic starter. It is so annoying to reedit an inventory completely. There should be a feature to save user data on server side by the login name (because there can be 2 players with the same ip) or on the client side. Please implement this

+1 to topic starter. It is so annoying to reedit an inventory completely. There should be a feature to save user data on server side by the login name (because there can be 2 players with the same ip) or on the client side. Please implement this

we're finding way to do it,but we found it's pretty hard to do,so we'd love to hear about how Ochii think and do,if we can,we will did it asap,but now the biggest problem for us is the LAN Packets Loss

I plan on using MongoDB to store user information, including the inventory and loadouts

I plan on using MongoDB to store user information, including the inventory and loadouts

ok thanks about it,I think we met a BUG,if sv_cheats keep it on,other user will have Packets Loss,is it server side's problem or just P2P Glitch?

Do you have that problem in version 0.2.2? @GEEKiDoS applied some fixes about sv_cheats

I plan on using MongoDB to store user information, including the inventory and loadouts

ok thanks about it,I think we met a BUG,if sv_cheats keep it on,other user will have Packets Loss,is it server side's problem or just P2P Glitch?

Try latest launcher, I should patched thoese traps

@L1nkle do you have that problem in version 0.2.2? @GEEKiDoS applied some fixes about sv_cheats

I have tried to shut off cheats in Studio 17 with version 0.2.0,Packets Loss has improve a lot,thanks a lots,I will update launcher later

I'm closing this. If you want to discuss the database discussion feel free to open an issue at the cso2-master-server's repo


Create README.md

Created README

Can you add more stuff to the readme? You can reference this repo: https://github.com/prehans/LeetCode-Solution

Sure man if you give me today's day i would love to make an awesome readme
On Thu, 20 Oct, 2022, 8:42 am Asish Kumar, @.***> wrote:

Can you add more stuff to the readme? You can reference this repo:
https://github.com/prehans/LeetCode-Solution
—
Reply to this email directly, view it on GitHub
https://github.com/officialasishkumar/Leetcode/pull/18#issuecomment-1284855068,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXS7MJMGSUKYVSIJA3WPCRTWEC2CLANCNFSM6AAAAAARJLSEXQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Can you add more stuff to the readme? You can reference this repo: https://github.com/prehans/LeetCode-Solution

Also share your socials i will mention that in the redme too

You can put my discord username: Charon#3571


source code should be copy-able

i.e., can select a block of code from source view or a snippet and copy and paste it into an editor without line numbers, odd formatting, html nonsense, etc.

Fixed


GA4 track spelling suggestions

⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
What
Add GA4 link tracking to spelling suggestions on pages like https://www.gov.uk/search/all?keywords=self+assessesment&order=relevance

This should not disturb the existing UA tracking on this link.
In testing this I've discovered a small problem - the link tracker gets the text data based on the target of the link click, not the overall text of the link. When a spelling suggestion is shown, the specific word suggestion is wrapped in a mark element inside the link. This means that for spelling suggestions like the one above, if the user clicks on the highlighted word, only that word is captured in the GA4 data. Will need to raise a separate PR in the gem to address this.
Why
Part of the GA4 migration.
Visual changes
None.
Trello card: https://trello.com/c/ts2o6lKc/687-search-enhancement-search-events-on-search-spelling-suggestion

Looks good 👍 If you like, you can just set the text for the link in this repo, rather than having to make a change in the gem?

Oh of course 🤦 thanks!


Type checking of extended mapped type

Typescript version: 3.4.5.
I'm writing the boilerplate code for type-safe Express routes in my projects, possibly even create a npm library, if it works as expected.
The idea is to make sure all the API responses have the shape
{result: T, error?: any}

where T is the Response type of the route, or
{error: any}

if there is an error and declare the type of each routes' request and response types in a declarative way.
The API is routed under the /api route. I'm accomplishing this with app.use('/api', indexRouter.router), where indexRouter is an instance of WrappedRouter (which is defined at the end of this bug report) which is imported from the file routes/index.ts.
Contents of routes/index.ts:
import authRouter from './auth';
import makeRouter from "../utils/RestRoute";

const router = makeRouter();

router.makeSubRoute('/auth',authRouter);

export default router;

Contents of routes/auth/types.ts:
import {ITypes} from '../../utils/RestRoute';

export interface Types extends ITypes {
    '/sayHello': {
        request: void,
        response: string
    }
}

The idea is that I can now write this:
Contents of routes/auth/index.ts:
import makeRouter from '../../utils/RestRoute';
import {Types} from "./types";

const router = makeRouter<Types>();

router.route('/sayHello',args => ({
    result: 'Hello World!'
}));

export default router.router;

Contents of RestRoute.ts (which contains the wrapper around Express.JS's Route and most of the boilerplate logic):
import express from 'express';

export interface ITypes {
    [key: string]: {
        request: any,
        response: any
    }
}

interface HandlerFuncionArgs<Req> {
    cookies: express.Request["cookies"],
    hostname: express.Request["hostname"],
    ip: express.Request["ip"],
    clearCookie: express.Response["clearCookie"],
    cookie: express.Response["cookie"],
    secure: express.Request["secure"],
    body: Req,
    params: express.Request["params"]
}

export type APIResultType<T> = {result: T, error?: any} | {error: any};

export type HandlerFunction<Req,Res> = (args: HandlerFuncionArgs<Req>)=>APIResultType<Res> & {status?: number};

class WrappedRouter<Types extends ITypes> {
    public constructor(public readonly router: express.Router) {}

    private static proxyFunction<Req,Res>(handlerFunction: HandlerFunction<Req,Res>): express.RequestHandler {
        return (req, res, next) => {
            res.type('application/json');
            try {
                const ret = handlerFunction({
                    cookies: req.cookies,
                    hostname: req.hostname,
                    ip: req.ip,
                    clearCookie: res.clearCookie,
                    cookie: res.cookie,
                    secure: req.secure,
                    body: req.body,
                    params: req.params
                });
                res.status(ret.status || 200);
                delete ret.status;
                res.json(ret as APIResultType<Res>);
            } catch(e) {
                res.status(500);
                res.json({error: e} as APIResultType<Res>);
            } finally {
                res.end();
            }
        };
    }

    public route<Path extends keyof Types>(path: Path, handlerFunction: HandlerFunction<Types[Path]["request"],Types[Path]["response"]>):void {
        this.router.post(path as string,WrappedRouter.proxyFunction(handlerFunction));
    }

    public makeSubRoute(path: string, subRouter: express.Router): void;

    public makeSubRoute<SubRouterTypes extends ITypes>(path: string, subRouter: WrappedRouter<SubRouterTypes>): void;

    public makeSubRoute<SubRouterTypes extends ITypes>(path: string, subRouter: express.Router|WrappedRouter<SubRouterTypes>) {
        if(subRouter instanceof WrappedRouter) {
            this.router.use(path,subRouter.router);
        } else {
            this.router.use(path,subRouter);
        }
    }
}

export function wrapRouter<Types extends ITypes>(router: express.Router) {
    return new WrappedRouter<Types>(router);
}

export function makeRouter<Types extends ITypes>() {
    return new WrappedRouter<Types>(express.Router({caseSensitive: true, mergeParams: true}));
}

export default makeRouter;

(ITypes is supposed to be the generic shape of every route's type: each key, representing a route, should contain an object with "response" and "request" as its only keys. ITypes isn't supposed to be instantiated, only extended by other types)
Expected behavior:
Correctly checks the types of the request and response of each route AND doesn't allow routes which aren't defined in that sub-route's Type.
Actual behaviour:
It works well in checking the types of the route: ie. if I try to return result: 1 in the /api/auth/sayHello route, the compiler fails and says that number isn't compatible with string.
The problem is when I mistype /sayHello for, say, /sayHelo. There is no error reported from the compiler even though WrappedRouter.route's first argument is of type Path extends keyof Types. It just simply accepts any type in the request and any type in the response... It should be an error because /sayHelo is not in keyof Type, which is equal to /sayHelo.
I'm guessing the problem is in extending the interface because it is first declared as having string keys but doesn't specify the keys' type when it is extended. I think keyof Types computes to "/sayHello" | string.
I've tried to change the generic type of the route function to <Path extends Exclude<keyof Types, string>> but it doesn't work because it also deletes "/sayHello" from the union type. Then the router.route('/sayHello' (...) line in the auth/index.ts file reports the error TS2345: Argument of type '"/sayHello"' is not assignable to parameter of type 'number'.
Is there any workaround or a hacky way of accomplishing this while this isn't fix this in a future version of TS?

That is one long question, might I suggest ion the future:

Isolating a smaller code snippet illustrating your issue.
Trying stackoverflow first. This forum is generally reserved for bugs, or questions that SO didn't or can't answer (you will probably get answers there just as fast here and by the same people)

That being said, your root cause is that you force Types to have an index signature. If Types has an index signature, keyof Types will be string allowing any string in path.
You can change the definitions a bit, you actually want to constrain ITypes to have only properties of type { request: any, response: any } regardless of if they have an index signature.
A solution that seems to work (although I have not tested it a lot) would be:
//RestRoute.ts
import express from 'express';

export type ITypes<K extends PropertyKey> = Record<K, { request: any, response: any }>

interface HandlerFuncionArgs<Req> {
    cookies: express.Request["cookies"],
    hostname: express.Request["hostname"],
    ip: express.Request["ip"],
    clearCookie: express.Response["clearCookie"],
    cookie: express.Response["cookie"],
    secure: express.Request["secure"],
    body: Req,
    params: express.Request["params"]
}

export type APIResultType<T> = {result: T, error?: any} | {error: any};

export type HandlerFunction<Req,Res> = (args: HandlerFuncionArgs<Req>)=>APIResultType<Res> & {status?: number};

class WrappedRouter<Types extends ITypes<keyof Types>> {
    public constructor(public readonly router: express.Router) {}

    private static proxyFunction<Req,Res>(handlerFunction: HandlerFunction<Req,Res>): express.RequestHandler {
        return (req, res, next) => {
            res.type('application/json');
            try {
                const ret = handlerFunction({
                    cookies: req.cookies,
                    hostname: req.hostname,
                    ip: req.ip,
                    clearCookie: res.clearCookie,
                    cookie: res.cookie,
                    secure: req.secure,
                    body: req.body,
                    params: req.params
                });
                res.status(ret.status || 200);
                delete ret.status;
                res.json(ret as APIResultType<Res>);
            } catch(e) {
                res.status(500);
                res.json({error: e} as APIResultType<Res>);
            } finally {
                res.end();
            }
        };
    }

    public route<Path extends keyof Types>(path: Path, handlerFunction: HandlerFunction<Types[Path]["request"],Types[Path]["response"]>):void {
        this.router.post(path as string,WrappedRouter.proxyFunction(handlerFunction));
    }

    public makeSubRoute(path: string, subRouter: express.Router): void;

    public makeSubRoute<SubRouterTypes extends ITypes<keyof SubRouterTypes>>(path: string, subRouter: WrappedRouter<SubRouterTypes>): void;

    public makeSubRoute<SubRouterTypes extends ITypes<keyof SubRouterTypes>>(path: string, subRouter: express.Router|WrappedRouter<SubRouterTypes>) {
        if(subRouter instanceof WrappedRouter) {
            this.router.use(path,subRouter.router);
        } else {
            this.router.use(path,subRouter);
        }
    }
}

export function wrapRouter<Types extends ITypes<keyof Types>>(router: express.Router) {
    return new WrappedRouter<Types>(router);
}

export function makeRouter<Types extends ITypes<keyof Types>>() {
    return new WrappedRouter<Types>(express.Router({caseSensitive: true, mergeParams: true}));
}

export default makeRouter;

// types.ts

import {ITypes} from '../../utils/RestRoute';

export interface Types extends ITypes<keyof Types> { // ensures all properties have the correct shape
    '/sayHello': {
        request: void,
        response: string
    }
}

//auth/index.ts
import makeRouter from '../../utils/RestRoute';

import {Types} from "./types";

const router = makeRouter<Types>();

//ok
router.route('/sayHello',args => ({
    result: 'Hello World!'
}));

//err
router.route('/sayHelloo',args => ({
    result: 'Hello World!'
}));

export default router.router;

Uhm, ok! I didn't know you could do this kind of recursive operations in the types definition!
I thought this was a bug because I dind't know <Types extends ITypes<keyof Types>> was valid syntax.
Thank you very much!


setup swagger ui

harbor:0.4.5
i follow the word (https://github.com/vmware/harbor/blob/master/docs/configure_swagger.md) to setup swagger ui ,
root:~/harbor/harbor-master/make# docker-compose build
log uses an image, skipping
ui uses an image, skipping
mysql uses an image, skipping
jobservice uses an image, skipping
registry uses an image, skipping
proxy uses an image, skipping
,then docker-compose up -d
harbor is up ,i can login ,but i can't open   http://<HARBOR_SERVER>/static/vendors/swagger/index.html,the page show "Not Found"

please use the docker-compose file under make/dev for swagger setup
or follow the document (https://github.com/vmware/harbor/blob/dev/docs/configure_swagger.md)
the document on master missing on directory

@yhua123
i passed ,thank you .


No visualize.rar

There is no visualize.rar file for google drive :(
Could you please upload it once more?

same problem...

same =/

你好，对您们的paper很感兴趣，请问可以重新分享一下visualize.rar文件吗？

no visualize.rar

same problem

someone have the backup please

is the visualize folder of 3DDFA?


RunnerTest::testParallelFixStopsOnFirstViolationIfSuchOptionIsEnabled() debug

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 95.698%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
27337

Relevant Lines:
28566

💛  - Coveralls


Search matching routes that only differ in their search function gives duplicate route error

Describe the bug
I'm exploring the capabilities of react-location and am trying to build a stepper using route search matching. I love the idea of being able to define a route for each step based off a search param. However, if doing something like this example below... I get an error saying it's a duplicate route. Which makes sense because not specifying a path defaults to "*", but how is search matching supposed to work if the only thing changing between two routes is the search match?
type LocationGenerics = MakeGenerics<{
  Search: {
    step?: number;
  };
}>;

const routes: Route<LocationGenerics>[] = [
  {
    path: "/stepper",
    element: <StepperContainer />,
    children: [
      {
        search: (search) => {
          return search.step === 0;
        },
        element: <Step1 />,
      },
      {
        search: (search) => {
          return search.step === 1;
        },
        element: <Step2 />,
      },
    ],
  },
];

To Reproduce
Steps to reproduce the behavior:
use the above LocationGenerics and routes in a <Router />
Expected behavior
I'd expect that routes that don't produce the same match based off search matching are treated as separate routes and not as duplicates
Additional context
What's the point of search matching if you can't have routes whose only difference is their search match?
I realize this can be done, by leveraging useSearch within <StepperContainer /> and showing the correct step based off the step param, but I was interested to see if it could be accomplished using search matching in the routes.

I'd love to see this feature too. Ran into the same roadblock

Looking through the source code a bit...
    const recurseRoutes = (
      routes: Route<TGenerics>[],
      parent?: Route<TGenerics>,
    ): Route<TGenerics>[] => {
      return routes.map((route) => {
        const path = route.path ?? '*'

        const id = joinPaths([
          parent?.id === 'root' ? '' : parent?.id,
          `${path?.replace(/(.)\/$/, '$1')}${route.id ? `-${route.id}` : ''}`,
        ])

        route = {
          ...route,
          pendingMs: route.pendingMs ?? opts?.defaultPendingMs,
          pendingMinMs: route.pendingMinMs ?? opts?.defaultPendingMinMs,
          id,
        }

        if (this.routesById[id]) {
          if (process.env.NODE_ENV !== 'production') {
            console.warn('Duplicate routes found:', this.routesById[id], route)
          }
          throw new Error()
        }

        this.routesById[id] = route

        route.children = route.children?.length
          ? recurseRoutes(route.children, route)
          : undefined

        return route
      })
    }

it seems routes are matched by their full path and then evaluated as a dupe based strictly on that.
I think in order for this to work, you'd have to store the duplicates and then evaluate their search functions when matching maybe? Only throw that it's a dupe if no search match is provided. Not sure how you would validate uniqueness based off the search function, but maybe just when matching, return the first search match and it's on the user to guarantee uniqueness of their search matches?

Hello we are using react-location for professional projects.
One of the projects needs modal routing through URLs.
We found a nice way of implementing this modal routing feature using react location
but on the last step we are blocked because
react location cannot handle multiple routes with the same path but different search functions.
Here is a simple CodeSandBox to illustrate the issue, everything is in App.js,
https://codesandbox.io/s/festive-khayyam-llbyo?file=/src/App.js
We'd love to see this issue pushed forward to use this lib on all of our projects.
We're glad to help. Thank you

I originally intended the route.id property to be used for this exact purpose. Route IDs are used in the full path and full ID generation, so they would only need to be unique between siblings in this case:
type LocationGenerics = MakeGenerics<{
  Search: {
    step?: number;
  };
}>;

const routes: Route<LocationGenerics>[] = [
  {
    path: "/stepper",
    element: <StepperContainer />,
    children: [
      {
        id: '0',
        search: (search) => {
          return search.step === 0;
        },
        element: <Step1 />,
      },
      {
        id: '1',
        search: (search) => {
          return search.step === 1;
        },
        element: <Step2 />,
      },
    ],
  },
];


cli: add --in-memory flag

Allow running with an in-memory data file, which is formatted automatically.

Let's close for now --- I don't think we have a burning desire for this, and, with --development flag and white-magic optimizations of our memory usage, I think this is not that high priority.


Philipyun103 master

This is just a small fix on top of https://github.com/slackhq/python-rtmbot/pull/57. Credit to Philipyun103.
Added some additional info in the example.

Coverage increased (+0.2%) to 34.416% when pulling 206befc2183438974ee6f9394205eabf1c25c5ed on jammons:philipyun103-master into f785ed9a14b4c8f10a1becb17121a9b3964ac4f3 on slackhq:master.

Coverage increased (+0.2%) to 34.416% when pulling 206befc2183438974ee6f9394205eabf1c25c5ed on jammons:philipyun103-master into f785ed9a14b4c8f10a1becb17121a9b3964ac4f3 on slackhq:master.

Coverage increased (+0.2%) to 34.416% when pulling 5e7daffadbd523e1d2a457d10977b1c8a2880d9d on jammons:philipyun103-master into f785ed9a14b4c8f10a1becb17121a9b3964ac4f3 on slackhq:master.

Coverage increased (+0.2%) to 34.416% when pulling 5e7daffadbd523e1d2a457d10977b1c8a2880d9d on jammons:philipyun103-master into f785ed9a14b4c8f10a1becb17121a9b3964ac4f3 on slackhq:master.


getPayload retry with 100ms timeout

📝 Summary
Wait 100ms until getPayload retry for higher success rate

✅ I have run these commands

[x] make lint
[x] make test-race
[x] go mod tidy

Codecov Report

Merging #465 (f73b0a5) into main (20f107f) will increase coverage by 0.02%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main     #465      +/-   ##
==========================================
+ Coverage   68.62%   68.64%   +0.02%
==========================================
  Files           8        8
  Lines        1262     1263       +1
==========================================
+ Hits          866      867       +1
  Misses        346      346
  Partials       50       50

Flag
Coverage Δ

unittests
68.64% <100.00%> (+0.02%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

server/utils.go
82.23% <100.00%> (+0.11%)
:arrow_up:

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

added the comment!


[SPARK-31831][SQL][FOLLOWUP][test-hadoop2.7][test-hive1.2] Make the GetCatalogsOperationMock for HiveSessionImplSuite compile with the proper Hive version

What changes were proposed in this pull request?
#29129 duplicated GetCatalogsOperationMock in the hive-version-specific subdirectories, otherwise profile hive-1.2 would not compile. We can prevent duplication of this class by shimming the required hive-version-specific types.
Why are the changes needed?
This is a cleanup to avoid duplication of a mock class.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
This patch only changes tests.

Test build #127926 has started for PR 29549 at commit 015482b.

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-K8s/32552/
Test PASSed.

Test build #127926 has finished for PR 29549 at commit 015482b.

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/127926/
Test PASSed.

@wangyum

Test build #128171 has started for PR 29549 at commit 72fd0af.

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-K8s/32796/
Test PASSed.

Test build #128171 has finished for PR 29549 at commit 72fd0af.

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/128171/
Test PASSed.

retest this please

Test build #128186 has started for PR 29549 at commit 72fd0af.

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-K8s/32811/
Test PASSed.

Test build #128186 has finished for PR 29549 at commit 72fd0af.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

retest this please

Test build #128194 has started for PR 29549 at commit 72fd0af.

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-K8s/32819/
Test PASSed.

Test build #128194 has finished for PR 29549 at commit 72fd0af.

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/128194/
Test PASSed.

retest this please

Merged to master.


Collaboration/merge upstream

Changelogs

merged upstream main

Result of unit test after merging main
➜  opensumi-core git:(collaboration/merge-upstream) yarn test:module -- --module=collaboration
yarn run v1.22.19
warning From Yarn 1.0 onwards, scripts don't require "--" for options to be forwarded. In a future version, any explicit "--" will be forwarded as-is to the scripts.
$ cross-env NODE_OPTIONS=--max_old_space_size=5120 node -r ts-node/register ./scripts/module-jest --module=collaboration
{ _: [], module: 'collaboration', '$0': 'scripts/module-jest' }
 PASS   jsdom  packages/collaboration/__tests__/browser/collaboration-contribution.test.ts
 PASS   node  packages/collaboration/__tests__/node/service.test.ts
 PASS   jsdom  packages/collaboration/__tests__/browser/textmodel-binding.test.ts
 PASS   jsdom  packages/collaboration/__tests__/browser/collaboration-service.test.ts

Test Suites: 4 passed, 4 total
Tests:       23 passed, 23 total
Snapshots:   0 total
Time:        9.032 s, estimated 40 s
Ran all test suites matching /packages\/collaboration\/__tests?__\/.*\.(test|spec)\.[jt]sx?$/i in 2 projects.
测试是否成功: true
✨  Done in 14.11s.


Fix Tall Button's Text being moved down when disabled

basically a todo for me so i know i need to do this tommorrow, ignore this

Will be fixed in next commit wave


display questions

What are the circled indicators on the display?
R - is this redundant with the bold RX or does it mean something else?
><  - ?
I  - ?

addendum:
Here is the stock screen description:

"R" sometimes means "Reverse" but my radio wasn't set in Reverse mode. The "><" and "I"  are mysterious to me as well.
Might be nice to have a little guide for all the display icons for us newbies?

R seems to be redundant, but RX could be displayed up on A or down on B channel. '1 ><' or '2 ><' or '* ><' is displayed if scan mode/scan list is active.

R seems to be redundant, but RX could be displayed up on A or down on B channel. '1 ><' or '2 ><' or '* ><' is displayed if scan mode/scan list is active.

R is confusing as it often means "Reverse". I don't understand your comments on the scan list... as the "><" symbol is at the top, not associated with one channel or the other? And the "I"?

Ok, I think the "R" and "T" is a General and redundant "Transmit" and "Receive" indicator.
I think these could be deleted and the space used for other stuff, given the giant "Rx" and "Tx" that also exists and is dominant.
The "><" and "I" are still mysterious to me...

Don't use the QS manual.
We've made an Online Manual in the Wiki

Don't use the QS manual.
We've made an Online Manual in the Wiki
Ok, so the "I" is for scan group "1"?
Thank you!
Suggestion... Maybe consistently use Roman or Arabic numbers?
Any ideas on the "><"?

👍
The >< is always 4 seconds and what is after that on display. Probably DW. So DW will continue after the waittime, where it stays only on this VFO.

The >< means dual watch is disabled


Feature: Entity request: Switch

Hi Hugo.
Would be good to add switches.
An example - I have 8 ikea bulbs and 1 aqara zigbee light switch. All of the aforementioned are paired to my zigbee controller.
In order to turn the lights on, you need to press the aqara switch. In order to control the brightness you set the bulb brightness.
Naturally do both, it's easier to set the states in a scene, I believe this is a very common approach, for homes without a neutral.
Best,
Hiren

Hi Hiren,
Thank you for your suggestion. I have fixed this in #4 .


key can not be removed from map in norman

Rancher versions:
2.0 master 02/28
Steps to Reproduce:
In rancher/types, if a field is declared as map[string]string, and we use REST API to edit this field, it can only add new key, but can not remove existing key.
For example,
logging_types.go:
type LoggingCommonSpec struct {
    ...
    OutputTags          map[string]string `json:"outputTags,omitempty"`
        ...
}

Use the link https://ip:port/v3/projectlogging to create a new projectLogging and then edit  outputTags, existing key can not be removed.

Seeing similar issue with secret data, https://github.com/rancher/rancher/issues/11607

Verified fix on master 04/24


Update scArches tutorials to discuss encode_covariates

https://github.com/scverse/scvi-tools/issues/2331

add:
Train reference
We train the reference using the standard SCVI workflow, except we add a few non-default parameters that were identified to work well with scArches. It is essential to encode covariates here as this allows scArches to map new batches in the encoder to the existing data and thereby provides batch integration. (edited)


Support for dynamic schema names

At the moment, the schema name is baked into the generated code. It would be helpful if the schema name could be globally overridden, so that a compiled program could be configured to hit different databases in different environments without changing code (or adding FromSchema to all queries).

What would be the use case? To set a default schema name during server startup and then during the server lifespan only that schema will be used?
If thats the case, there is another workaround. It is possible to override generated sql builder table objects with a different table objects(with different schema name).
For instance:
import "github.com/go-jet/jet/v2/examples/quick-start/.gen/jetdb/dvds/table"

func serverStartup(schemaName string){
....
table.Artist = table.Artist.FromSchema(schemaName)
table.Album = table.Album.FromSchema(schemaName)
table.Customer = table.Customer.FromSchema(schemaName)
...
}

Because these table objects are global variables there is no need to change a code or add FromSchema to all queries.

The use case is different schema names in dev, staging, production.
This workaround seems like it will work, albeit still requiring one extra line of code when a new table is added.

funny enough, we've had our own fork with such a functionality hacked into the NewTable() function: it reads an env variable and checks if there is an alias for the current schemaname, see https://github.com/unwired/jet/blob/5426d04726da9c209fce94ce8f925d9591415e4c/mysql/table.go#L88
that was from before the schema alias functionality from the newest release (afaik), so i believe there was no other way at that point in time :slightly_smiling_face: would you consider such a functionality in any form, or is the workaround you provided the "official" way now?

Yes, FromSchema method was added to the latest release. In the feature, new auto generated global function might be added, to automate schema rename of all global table objects.
Something like: table.UseSchema(schemaName) to replace above serverStartup function.

@mickeyreiss @go-jet I can think of a possibility to let the generated MySQL table code have a blank schemaName. Since there is already a check for empty schema names at https://github.com/realbucksavage/jet/blob/master/internal/jet/table.go#L78, the query will go to the schema specified in DSN used to create the database connection.
For example, doing jet -source mysql -dsn "..." -path ./gen -skip-schema will get us
var MyTable = newMyTableTable("", "my_table", "")

I can submit a PR if this sounds like worth a shot.

It should now be possible to use table.UseSchema and view.UseSchema since #194 was merged.
@go-jet can this be closed?

Hi! I've eagerly waited for the next release that I hope will include https://github.com/go-jet/jet/pull/194.
Do you have a plan for when to cut the next release?

Next release should be in April.
You can already use this feature. It is merged to master.

Support added in v2.10.0 release - wiki


Avoid InvalidParameterException

Move branch for https://github.com/cookpad/terraform-aws-eks/pull/289 to this repository for CI.
context: https://github.com/cookpad/terraform-aws-eks/pull/289#issuecomment-1047619795

@ettiee Thanks. The CI is working now.


Deprecate LensService

LensService https://github.com/yearn/yearn-sdk/blob/master/src/services/lens.ts relies upon a contract that doesn't exist. It's functionality does not work, so should eventually be removed. First, it should be marked as deprecated, and it's functionality in the sdk (accessing adapters) being replaced by moving those adapters to a more suitable place, perhaps on the Yearn object

Maybe I can pick up this one after #208 is merged.


Bug fixes

Fixed the bug where the enemies got really big when fired at with the scatling gun (not doing += 0.1 just setting it to base scale + 0.1)
Fixed the bug where the shot that killed an enemy (moved down the line to call the handle_hit method to after the check for if the enemy is dying)
Fixed the bug where you would fire multiple times in quick succession (I realized I was stupid when implementing the cooldown, I was just doing a fixed timer and not starting the timer when a shot was fired)
Fixed the bug of animals and enemies spawning before the start button was pressed (just added a bool to only spawn the animals when the game has started and am setting those booleans when the game is reset and started)
Fixed the bug where when closing the store you fired a shot (I just have a 0.1-second buffer, using a timer, from the click on the x to when the store actually closes and the game resumes)
Fixed the bug where if you restarted the game it did not reset the arse-nal wheel ( just have it gray out and disable all of them before checking what the player has every time it is opened)
Increased the speed of the death animations

closes #176
closes #177
closes #164

Fixed the bug of animals and enemies spawning before the start button was pressed (just added a bool to only spawn the animals when the game has started and am setting those booleans when the game is reset and started)

I think this was on purpose so animals made noise on the start screen

There are a few animals that are separate from the spawner that are intended for that. They are children of the Start Screen. This bug is that if you wait on the start screen for a while, the first wave of enemies have already spawned and the animals did too and start pooing everywhere


Feature/offer help add id attribute

What does this pull request aim to achieve? 💯
Added id attributes to this issue Sign In and Sign Up Page: Add ID attribute for elements on these pages #992.

[x] I have checked that no one else is working on similar changes.
[x] I have read the latest README and understand the development workflow.
[x] The name of this branch is: feature/<branch_name> (need to have cloned the repo not forked).
[x] This branch is rebased/merged with the latest master.
[x] There are no merge conflicts.
[x] There are no console warnings and errors.
[x] On the right hand side of this PR, I have linked the appropriate issue(s) under "Issues" and added a project progress under "Projects".


Add CreateCompletionWithFineTunedModel function

OpenAI recently added the ability to use a fine-tuned model to generate completions with GPT-3.
This PR adds a function to implement this feature, which uses a different endpoint than CreateCompletion.
See here for the format: https://beta.openai.com/docs/guides/fine-tuning/use-a-fine-tuned-model
Lmk if any additional comments etc would be useful here.

Merged, thank you for the PR!


por

As on the sky130 version, the defaults blocks need to be (re)designed so that each bit can be programmed to 1 or 0 by moving a via contact, which can be done by direct manipulation of the GDS file.

Done in PR #29

@mo-hosni :  Done, added as an additional commit to the pull request, and was merged this morning.


Emacs melpaStablePackages.forge missing git dependency

Describe the bug
The Emacs forge package in melpaStablePackages fails to build in emacsWithPackages due to a missing dependency on git.
This does not affect melpaPackages which does have that dependency explicitly added.
To Reproduce
On nixpkgs master branch:
~/git/nixpkgs$ nix-build -E 'with import ./. {}; emacsWithPackages (epkgs: epkgs.melpaStablePackages.forge)'
...
Compiling /nix/store/028b5blhak5hrl569c0cfy83j73qsxd4-emacs-forge-0.1.0/share/emacs/site-lisp/elpa/forge-0.1.0/forge.el...
Done (Total of 18 files compiled, 2 skipped)
Searching for program: No such file or directory, git
builder for '/nix/store/7b8ack7nz35l2bcw5izy65pn55sm8wq5-emacs-forge-0.1.0.drv' failed with exit code 255
cannot build derivation '/nix/store/xvfjnbac104j9m9apjaapiplfrfcljwi-emacs-with-packages-26.3.drv': 1 dependencies couldn't be built
error: build of '/nix/store/xvfjnbac104j9m9apjaapiplfrfcljwi-emacs-with-packages-26.3.drv' failed

Expected behavior
I expect this failing command should work as with melpaPackages:
$ nix-build -E 'with import ./. {}; emacsWithPackages (epkgs: epkgs.melpaPackages.forge)'
/nix/store/3fncfh1jrg99zf5g1qlg62kb3qyqb6s9-emacs-with-packages-26.3

Metadata
$ nix run nixpkgs.nix-info -c nix-info -m
[1 copied, 0.0 MiB DL]
 - system: `"x86_64-linux"`
 - host os: `Linux 4.15.0-1052-aws, Ubuntu, 18.04.3 LTS (Bionic Beaver)`
 - multi-user?: `no`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.1`
 - channels(ubuntu): `""`
 - nixpkgs: `/home/ubuntu/git/nixpkgs`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: emacsPackages.melpaStable.forge
# a list of nixos modules affected by the problem
module:

This has been fixed already.


Stand-alone library version of TritonPart?

Hi -- wondering if there's a build script to generate a linkable library with just the partitioner.  I'd like to try swapping in and out hMetis, KaHyPar, and TritonPart into some of my tools.
For TritonPart, it looks like I need to link in a very large chunk of the OpenRoad project (spdlog, sta, odb, and likely more) to get things to compile and link.  Is there an easier way to do this, or a minimal set of other libraries that are required?

Hi Professor Madden
Unfortunately, TritonPart has several dependencies on OpenROAD infrastructure (OpenDB for reading a netlist, OpenSTA for timing). So they are inseparable at this point. The hypergraph partitioner can be conceptualized as a standalone partitioner by taking out the OpenROAD components and compiling the code separately. However, this does not exist yet. As a workaround, we can help you install OpenROAD / link the partitioner to your tool, should you face any difficulties doing that.
Please let us know if we can do anything to help.

Hi -- this was sort of what it looked like, but I wanted to check before doing things "the hard way."
I'll give a shout if I run into any big trouble, but I think I can track down the components needed to get it all to compile and run.

Hi Professor,
I am also using TritonPart in a personal project. I can share my notes related to installing and using TritonPart. I hope this is helpful.
Step 1: Dependency installation:

Triton Part is a part of OpenRoad and has lots of dependencies with it.
So, we will need to install all the dependencies of OpenRoad first.

git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD.git
cd OpenROAD
sudo ./etc/DependencyInstaller.sh

Step 2: TritonPart Installation:

Now that all the dependencies are resolved, we could install Triton_Part:
[NOTE: Installation may take around 15-30 minutes!!]

git clone https://github.com/ombhilare999/TritonPart.git
cd TritonPart
mkdir build
cd build
cmake ../OpenROAD/
make

Step 3: TritonPart testing:
cd TritonPart/test
../build/src/openroad run_openroad.tcl | tee run.log

Output should look like this:

=========================================
[STATUS] Running FC multilevel coarsening
=========================================
[COARSEN] Level 0 :: num_vertices = 109, num_hyperedges = 111
[COARSEN] Level 1 :: num_vertices = 108, num_hyperedges = 110
[INFO PAR-0001] Hierarchical coarsening time 0.000294701 seconds
[Cutcost of partition : 525.0]
[Vertex balance of block_0 : 0.34596  ( 38478.00000 )
[Vertex balance of block_1 : 0.31945  ( 35529.00000 )
[Vertex balance of block_2 : 0.33460  ( 37214.00000 )
[Refinement] Level 1 :: num_vertices = 109, num_hyperedges = 111, cutcost = 525.0, best_solution_id = 0
[INFO PAR-0158] Statistics of cut-overlay solution:
[Cutcost of partition : 539.0]
[Vertex balance of block_0 : 0.34596  ( 38478.00000 )
[Vertex balance of block_1 : 0.31945  ( 35529.00000 )
[Vertex balance of block_2 : 0.33460  ( 37214.00000 )
[Cutcost of partition : 539.0]
[Vertex balance of block_0 : 0.34596  ( 38478.00000 )
[Vertex balance of block_1 : 0.31945  ( 35529.00000 )
[Vertex balance of block_2 : 0.33460  ( 37214.00000 )
Satisfy the balance constraint : true
Satisfy the group constraint : true
Satisfy the fixed vertices constraint : true
[INFO PAR-0109] The runtime of multi-level partitioner : 47.304750635000005 seconds
===============================================
Exiting TritonPart


[Feat]: Supports optional dependencies

Description of the new feature / enhancement
There are some packages that run even when there are not have dependencies that are explicitly specified in the manifest.
For example, my package DuckStudio.GitHubView can run with Microsoft.DotNet.Runtime.8 (explicitly specified in the manifest, first choice), and it also can run with other .NET Runtime like Microsoft.DotNet.Runtime.7 .
I would like winget to assume that the device has the required dependencies when optional dependencies are present in the device, and install the specified program directly instead of installing the other one dependencies.
Proposed technical implementation details
Optional dependencies can be specified in the manifest by the package author. If an arbitrarily specified dependency does not exist in the device, the first choice dependency is installed. If an arbitrarily specified dependency (first choice or optional) exists in the device, the device is considered to have satisfied the dependency condition.
In the manifest:
Dependencies:
  PackageDependencies:
  - PackageIdentifier: Microsoft.DotNet.Runtime.8
    optional:
    - Microsoft.DotNet.Runtime.7

Duplicate of #1789