Pattern: Develop Card link - Prod level version

User Story

As a [user role below]:
IBM.com Library developer

I need to:
create/change the Card link

so that I can:
provide the ibm.com adopter developers patterns/components they can use to build ibm.com web pages

Additional information

Story within Storybook with corresponding knobs
Utilize Carbon
Design specs issue (#2192  )
Functional specs issue (#2233  )
Sketch and PDFs for visual design specs are posted here: https://ibm.ent.box.com/folder/95514001950
Design QA testing issue (#2234)
Prod QA testing issue (#2237)

Acceptance criteria

[ ] Update CTA with Card Link
[ ] Update Locale Modale with Card Link
[ ] Create new storybook story
[ ] create new sandbox for the Card link pattern
[ ] export the Card link properly as a component
[ ] export the Card link styles properly with the styles package
[ ] Include README for the react pattern and corresponding styles
[ ] Minimum 80% unit test coverage
[ ] A comment is posted in the Design QA issue, tagging Wonil and Roberta, when development is finished
[ ] A comment is posted in the Prod QA issue, tagging Praveen and Chetan, when development is finished

@kennylam I assigned this issue to you as it is related to the CTA and Card Link issues that you are working on.  It is one of the issues James updated based on the discussions in yesterday's engineering meeting.


Add taskwarrior3 and taskchampion-sync-server

Description of changes
No existing packages were modified. I added myself (@mlaradji) to the maintainers list. I added new package definitions for taskwarrior3 and its associated sync server taskchampion-sync-server. This PR resolves #300679.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Nice work! Both client and server work. Ship it!

Nice work! Both client and server work. Ship it!
PS: Just curious how to deal with clash of binary names. I have already have a utility called task (taskfile.dev). Do you have any suggestion how to rename it on my system so they don't interfere?

You could rename it to tw, which I think is a common alias people use. taskw would also work. Unfortunately, there are applications which depend on taskwarrior that expect to find the executable named as task.

For other reviewers: This is a new package instead of an update to the existing taskwarrior package because of https://github.com/NixOS/nixpkgs/issues/300679#issuecomment-2041559223

/me patiently waits for someone to hit the Merge button...

Result of nixpkgs-review pr 303632 run on x86_64-linux 1

2 packages built:

taskchampion-sync-server
taskwarrior3

Okay, lets do this :laughing:

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/how-to-introduce-a-breaking-version-bump/46746/1

A NixOS module, and a test is added at:
https://github.com/NixOS/nixpkgs/pull/318892


User Need - easily find which features are supported on each board

NOTE: This issue is generated as an action item from the 2022 Oct 27 Dev Review meeting.  This issue is to capture/align on the problem statements resulting from #50788.
Is your enhancement proposal related to a problem? Please describe.
As a product prototype developer,
I need to easily and quickly determine which features are supported on a specific board,
so that I can efficiently decide which board to purchase and use for my prototype.
Additional context
This need comes from the Dev Review 2022 Oct 27 minutes, bullet point "Documenting which drivers and features are supported on each board is a manual and error-prone process".

Architecture WG:

@nashif mentions that one option is for the board metadata to be "offline", i.e. metadata that is gathered regularly but not as part of the build system, and is kept in a "database" that is not connected to the actual configuration/build process

An example of this approach is something like this: https://github.com/zephyrproject-rtos/zephyr/pull/52377


Markdown preview window does not work.

VSCode Version:

1.48.0-insider
e7920dce7bfd0b707ebfc0a5379c6edd2233e475
x64

OS Version:
Linux sarahkitty 5.7.4-arch1-1 #1 SMP PREEMPT Thu, 18 Jun 2020 16:01:07 +0000 x86_64 GNU/Linux

Steps to Reproduce:

Open a markdown file.
Open the markdown preview window.
Start editing the markdown file.
After a minute of editing, the markdown window no longer updates.

Does this issue occur when all extensions are disabled?: Yes

Please try again in the latest insiders build. This should already be fixed


EC2 - Allow filtering by multiple tags

Fixes #718
Before, the filter_from_querystring method would use this dict:
{'tag-key': key, 'tag-value': value}
This way, only a single tag (the last one) could be returned. This explains the unpredictable results.
Fix: Store all tags in the query under their own name, prefix them with 'tag:' and filter appropriately
{'tag:key': name}

Coverage decreased (-0.06%) to 94.07% when pulling 9eeb375911420416d5b6ad78ca3062b231a85ceb on bblommers:bugfix/718 into 40b4e299abb732aad7f56cc0f680c0a272a46594 on spulec:master.

Thanks!


[FEATURE] Add check whether @current_page is a class_name before overriding in on() method

Hi @cheezy, I'd like to suggest you to place additional check into the on(SomePageClass) method (in page_factory.rb file).
I have a lot of actions and assertions on (each) one single page and I'd like to have possibility to use common class features for each Page Object (add some attributes to store there some info) and it's possible only if I use @current_page method further in my tests. And if somewhere new on(SomePageClass) method appears - the new Page Object is created and all info stored in object attributes are gone.
its implemented here
@current_page = page_class.new(@browser, visit)

So I suggest you to check if @current_page is an instance already of the page class going to be created.
If so we could not to create new instance and use @current_page. If no - we create the new page object and place it into @current_page var.
What you think about it?

I have a number of concerns about this feature. The way things are set up now, there are three hooks that happen on page initialization, one of which is to navigate to the page if we call visit_page. On top of that, a page-object is supposed to represent the method of interacting with a page, so trying to use it to store data being used for testing feels like it is giving it too many responsibilities.
My suggestion would be to use a different class to hold on to important test data instead of the PageObject.

I'm closing this. Feel free to reopen if you feel there is still a need for this feature and want to discuss it.


Modal Dialog box not displayed

Select one ...  (check one with "x")
[X ] bug
[ ] feature request
[ ] enhancement

Expected behavior
Modal dialog box should open when button is clicked
Actual behavior
Modal does not open and the following error is shown in the web console:
ERROR Error: Found the synthetic listener @fadeDown.done. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.
Reproduction of behavior
https://plnkr.co/edit/7vrkfrG683q4mXGNfIhW?p=preview
Environment details

Angular version: 2.0.X

Clarity version:   0.8.14

OS and version:  Windows 7

Browser: [all | Chrome 57| Firefox 52| IE 11| Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Correction: My Angular version is 4.0.0

Hi @beaker1977
Clarity 0.8 and earlier is on Angular 2.x. To use Angular 4, you will need Clarity 0.9 and above -- which we are in the process of releasing.


Add cases with other branch elements

Need to add datasets for testing of Phase shifting transformers, DC-lines, and 3W transformers. Also test Ybus, PTDF and A matrix constructors.

Modify 5-bus case to include 1 HVDC line

Moved to https://github.com/NREL/PowerSystemsTestData


[ FEATURE ]  icons library

Lucide icons are beautiful but i am already facing an issue using this package, because there is no more brand icons allowed.
For instance its not possible to find popular icons for social login
Solutions:

Include others icons library that including this brand icons like simple icons
Add a documentation how to add others icons to lucide (svg)
Add a documentation how to use others icon library allowing className.
Thanks

If Lucide Icons do not meet your needs, by all means, use any Icon library you need. The idea for react-native-reusables is that it is a starting point for your projects. It is not a perfect solution for all use cases. For those reason, I will not be adding documentation on how to use other libraries.
If you use another icon library like expo-vector-icons, you can use the iconWithClassName function the same way. See https://github.com/mrzachnugent/react-native-reusables/blob/main/packages/reusables/src/lib/icons/Activity.tsx for reference.


Monitor Role

This may be a basic question so apologies in advance. With regards to the monitor role which is described as "Can execute .show commands in the context of the database and its child entities." Can a user assigned this role also run queries against the data in a table?
It is a mentioned in this other page that 'Control commands must start with the dot (.) character, and no query may start by that character' which to me implies that having .show execute permissions does not allow the user to query the data if they have the monitor role. I just want be sure that I am interpreting this correctly.

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

ID: 45c884a3-485c-ba99-e387-d35fdfdb5432
Version Independent ID: 94fefdd0-80a7-5992-5fc6-02e48e713699
Content: Role-based Authorization in Kusto - Azure Data Explorer
Content Source: data-explorer/kusto/management/access-control/role-based-authorization.md
Service: data-explorer
GitHub Login: @shsagir
Microsoft Alias: shsagir

@pnarsi, yes that is correct. A monitor cannot execute data queries.
#please-close


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 582 ms

Resolved: ClamAV performance has improved in 43c35ee.


rfc: Introduce 'handlers' and 'transitions' modules

Hi! Came across this package recently and loved the idea.
So, what's the proposal?
I propose we add a new handlers and transitions module(s) to the codebase. For example, we can provide easy and intuitive handlers for common use cases, such as keyboard shortcuts!
Here is an example I've written for a shortcutHandler function:
import type { EventHandler } from "../lib/shared/utils/types";

export type KeyboardShortcut = {
	key: string;
	ctrl?: boolean;
	alt?: boolean;
    description?: string;
	shift?: boolean;
	condition?: boolean;
	fn: () => void;
}

export const shortcutHandler: EventHandler<KeyboardEvent, KeyboardShortcut[]> = (event, shortcuts) => {
	shortcuts.forEach((shortcut) => {
        if (
            event.key === shortcut.key &&
            event.ctrlKey === shortcut.ctrl &&
            event.altKey === shortcut.alt &&
            event.shiftKey === shortcut.shift &&
            (shortcut.condition === undefined || shortcut.condition)
        ) {
            shortcut.fn();
        }
    });
}

and we can consume it like so:
<script lang="ts">
    import { shortcutHandler, type KeyboardShortcut } from '.';

    const SHORTCUTS = [
        {
            key: 'a',
            description: 'Add a new item',
            fn: () => alert('Add a new item'),
        },
        {
            key: 'k',
            description: 'Show dialog',
            ctrl: true,
            fn: () => alert('Show dialog'),
        },
        {
            key: 's',
            description: 'Save',
            ctrl: true,
            fn: () => alert('Save'),
        }
    ] satisfies KeyboardShortcut[];
</script>

<svelte:window on:keydown={(e) => shortcutHandler(e, SHORTCUTS)} />

Same thing applies for transitions, for example - here is a "growShrinkTransition":

interface GrowShrinkParams extends TransitionParams {opacity: boolean;}

export const growShrink = (node: Element, params: GrowShrinkParams): TransitionConfig => {
    return {
        delay: params.delay || 0,
        duration: params.duration || 400,
        easing: params.easing || sineInOut,
        css: (t, u) => `
            ${params.opacity ? `opacity: ${t};` : ""}
            width: ${t};
        `
    };
};

and so on.
Let me know what everybody thinks! I also have some ideas for refactoring the frontend (for example, we really should be loading the stores, actions etc in the layout's load function instead of subsequently loading them again in a sub-page's load function and only using the loaded directories files to get the length of the total utilities etc)

Also, maybe we could lean into the lego terminology a bit more for the structure of the codebase? Each 'module' (actions, stores etc) could be called boxes (like a box of lego!) and each box has several pieces. Just an idea haha.


Does your plugin support a wifi gateway instead of a USB cable?

Short answer: no.
Long answer: If the Wifi gateway provides a protocol similar to the P1, I might have a look.  Homebridge P1 itself can relay the P1 telegrams over a web socket connection, and another instance of Homebridge P1 can use that instead of the serial interface provided by the USB cable (I use that for testing).  Note that in both cases, the P1 cable and the web socket, Homebridge P1 receives a push notification per telegram.  Any wifi gateway would need to provide a very similar interface; Homebridge P1 will not call an API to receive data and will not query a database.

OK. Thanks for your answer.
I am considering to buy this device
https://www.homewizard.nl/shop/energy/homewizard-wi-fi-p1-meter


Tabbar column

when i use ImGui::NextColumn(); in the tabbar it hide/move (idk) other tabs
With ImGui::NextColumn(); :
https://gyazo.com/53a5ac2c56707880cae8b056c685768e
Withount:
https://gyazo.com/652c5dac66190f0f28d8bb4c3bef4971
Someone help me with fix? Thanks. / how to use column in tabbar

Buttons

Buttons

What you mean ?

Why are you trying to change column anyway?
And it's probably helpful if you show where in the code you use NextColumn so I can see the context

Why are you trying to change column anyway?
And it's probably helpful if you show where in the code you use NextColumn so I can see the context

im fix it by myself. Bcs im remaking the menu, adding some features...

Why are you trying to change column anyway?
And it's probably helpful if you show where in the code you use NextColumn so I can see the context

im fix it by myself. Bcs i remaking the menu, adding some features...

Well that makes matters worse, because that means I don't even know you're doing at all. Cause your code won't match anything I can read myself.
Show code or no one can help.


Issue with k8s.io/docs/concepts/overview/working-with-objects/common-labels/

This is a Bug Report

Problem:
Is it me or is the wordpress example not quite right? Specifically it seems it's not easy to tell which wordpress instance are the mysql objects are part of. I'd have expected either app.kubernetes.io/part-of to include instance suffix or app.kubernetes.io/instance to be wordpress-abcxzy?
Proposed Solution:
As above, probably app.kubernetes.io/part-of should be wordpress-abcxzy, but the meaning of app is not clear (is it a more complete solution hiding details like it's built on mysql, or is it more an individual component), so it could be that app.kubernetes.io/instance for mysql should also be wordpress-abcxzy. Or perhaps a new label like app.kubernetes.io/solution-instance (I didn't want to use app-instance as this seems more confusing, but something along those lines)?
Page to Update:
https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/

I think this is still a valid question, I'm happy to sumbit a PR once somebody checks my reasoning and we can come up with a clearer example.

/remove-lifecycle stale

/remove-lifecycle stale

I agree with the example labeling in https://k8s.io/docs/concepts/overview/working-with-objects/common-labels/
Let's say you have a namespace called "billing-dev" and in that namespace there are some resources labelled     app.kubernetes.io/name: mysql. That seems enough to identify that those resources are all there to deliver an app called mysql.
The resources will also have name and uid attributes in their .spec and .status respectively, but those aren't enough to tell someone querying the cluster what those Pods, PersistentVolumes, StatefulSets, ConfigMaps etc are for. That's where the recommended labels come in.
If anyone's keen to revise the page to explain that, please go ahead. I'd leave the actual labels as-is.

(If you have more than one mysql in the namespace, you could give each of them a more human-friendly name like mysql-billing-records or mysql-userauth).

/triage not-reproducible

/language en

(If you have more than one mysql in the namespace, you could give each of them a more human-friendly name like mysql-billing-records or mysql-userauth).

Yes, this was my assumption, sorry I should've been more explicit. But so which attribute do you think should hold that human-friendly name, just the resource Name? or app name, or app instance labels?

/remove-lifecycle stale

/remove-lifecycle rotten


Excalidraw render fails when attaching pictures

I created a excalidraw with 2 pictures but found it failed to render properly. If I delete the 2 pictures, and it renders correctly.
An example is given on excalidraw test. As you can see, the first one renders well, but the second one (only add 2 pictures to the first one) fails to display. It seems that the markdown view of the second excalidraw is rendered. In obsidian, it is shown below.

Also, I find if I add a link in the excalidraw, it may also fail to render properly.
If you need any more information, please tell me and I will try to provide all I can. Thank you!

Thanks for letting me know about this issue. I will look into it and let you know if I need any more info.

i have same question


Issue #637 Extend allocated time for integration tests to 90m

90min should suffice for now

@jsliacan Can we put something on the commit log why we increase this limit like which test we added due to that this time is increased ?

@praveenkumar changed the commit description as you suggested, plus the #637 description links to a particular instance when timeout happened.

retest this please.


How to made vscode to autocomplete code after expand with emmet?

Hi.
When i type some code, for example html:
ul.

I got a tag

And cursor in class, but autocomplete don't work.
To make them to work, need to press ctrl+space.
May be exists another way to not disable autocmplete after expand code?
Thanks

Can you give an example of what to type and the expected behaviour after the abbreviation expands and the cursor ends up in the class attribute?


Reference io is not fully initialized

"Reference io is not fully initialized". I meet this error when I generate code chisel to verilog. How can I fix it?

Do you have an output I/O that's not assigned to anything? e.g.
class MyFoo extends MultiIOModule {
  val a = IO(Input(Bool()))
  val x = IO(Output(Bool()))
  val y = IO(Output(Bool())) // <--- is not assigned
  x := a
}

Thanks, I fix it :D

Great, thanks for your interest in Chisel! Please feel feel free to report any further issues you encounter.


Breaking Change in 3.4: Corrected inference priority of contravariant positions under all compiler settings

Consider the following code:
declare function first<T>(arr: T[], predicate: (k: T) => boolean): T;
declare function isZeroOrEmpty(x: string | number): boolean;

const arr: string[] = ["a", "b", "c", ""];
// What is the type of 'el' ?
const el = first(arr, isZeroOrEmpty);

Here, we take an array of strings, and find an element according to the isZeroOrEmpty function. TypeScript must infer the return type of find in this call, and there are two possible candidates:

The string type from the array
The string | number type from the isZeroOrEmtpy function

The correct inference is string, because it's observable that the isZeroOrEmpty function has no way to produce a string | number value -- it only consumes those sorts of values, so TypeScript should be able to predict that find can only produce a string value.
These positions - producing and consuming values - are known as covariant and contravariant, respectively.
In previous versions of TypeScript, when performing generic inference, covariant positions would be correctly prioritized only if --strictFunctionTypes was enabled. We observed that this inference strategy was not actually dependent on --strictFunctionTypes, so have removed the restriction and now correctly perform the inference under all compiler settings.
You should see improved inference as a result, however this is technically a breaking change because certain calls may now be rejected or be a narrower type than previously expected. For example, this code (a very simplified version of the only known break so far) is now correctly flagged as an error:
interface SomeKey<T> {
    // Note that `keyof` is a contravariant position
    key: keyof T;
}

function read<T>(source: T, prop: SomeKey<T>) {
    console.log(source[prop.key])
}

type HasX = { x: number };
type HasY = { y: number };

declare const source: HasX | HasY;
declare const properties: SomeKey<HasX>;
// This call should be rejected, because we might
// incorrectly be reading 'x' from 'HasY'
read(source, properties);

Removing array from the equation:
interface MetaData<T> {
    key: keyof T;
    // co: () => T;
    // contra: (x: T) => void;
    // inv: (x: T) => T;
    // prop: T;
}

type Box<T> = {
    content: T;
};

declare function _assignProperties<T>(source: T, properties: Box<MetaData<T>>): void;

declare const source: string | number;
declare const properties: Box<MetaData<string>>;
_assignProperties(source, properties);

Object types:
interface MetaData<T> {
    key: keyof T;
}

type Box<T> = {
    content: T;
};

declare function _assignProperties<T>(source: T, properties: Box<MetaData<T>>): void;

type Point1 = { x: number };
type Point2 = { y: number };

declare const source: Point1 | Point2;
declare const properties: Box<MetaData<Point1>>;
_assignProperties(source, properties);

interface MetaData<T> {
    key: keyof T;
}

declare function f<T>(source: T, properties: MetaData<T>): void;

type Point1 = { x: number };
type Point2 = { y: number };

declare const source: Point1 | Point2;
declare const properties: MetaData<Point1>;
f(source, properties);

This is due to correctly using the variance of MetaData<T> when determining inference candidate priority

after updating TS to the most recent, this has bitten us already, not too bad though, like 10 places in a 4000 files codebase:
interface StringX { (value: string | number | boolean): string; }
declare const StringX: StringX;
declare function fn<T, U>(
    value: T,
    instead: (value: T) => U,
    nameOf: (value: T) => string,
): U;
const x: string = fn(0, bounce, StringX); // 'string | number | boolean' is not assignable to type 'string'

@aleksey-bykov Is that a correct error? I'm curious what the semantics of fn are

not sure how to answer it, here some real code: (toSelectItemInstead is fn)
export interface SelectItem<Kind> {
    kind: Kind;
    name: string;
    isUtility: false;
    className: string | undefined;
    canBeSelected: boolean;
}
export function toSelectItemInstead<T, U>(
    value: T,
    instead: (value: T) => U,
    nameOf: (value: T) => string,
): SelectItem<U> {
    return {
        kind: instead(value),
        name: nameOf(value),
        className: undefined,
        canBeSelected: true,
        isUtility: false,
    };
}
const xxx: SelectItem<number> = [1, 2, 3].map(index => toSelectItemInstead(index, bounce, String));
/*
Type 'SelectItem<string | number | boolean>[]' is not assignable to type 'SelectItem<number>[]'.
  Type 'SelectItem<string | number | boolean>' is not assignable to type 'SelectItem<number>'.
    Type 'string | number | boolean' is not assignable to type 'number'.
      Type 'string' is not assignable to type 'number'.ts(2322)
*/

Initial write-up updated (it was rather inaccurate due to a misunderstanding of the original behavior)


Need a export to excel button for ngx-datatable

Need a export to excel,pdf etc button for ngx-datatable. Because it reduces lots of work in development with ngx-datatables.

I have a better PRACTICAL solution for this.

In most of the cases, the data is comming from API.

So, it would be great if we convert the data to csv directly.
Yes, It is possible...
Step 1 : npm install @ctrl/ngx-csv
Step 2 : module.ts
@NgModule({
 declarations: [
  ...
  ...
  ...
 ],
 imports: [
   ...
   CsvModule,
   ...
 ]
})

Step 3 : component.html
<a csvLink [data]="yourDataObject">CSV</a>

Hope you find this solution helpfull :)


Broken Adorner Layer Invalidation or Clipping

Describe the bug
Just see the screen capture.
To Reproduce
AdornerLayer tab in the Control Catalog
Expected behavior

I'm not sure if clipping to the page is enabled, but if so, it should clip by default
Adorner lines should not be frozen and never refreshed
Adorner lines should always draw over the slider
Adorner lines really shouldn't have tearing and should always be straight

Screenshots
https://user-images.githubusercontent.com/17993847/226121183-cb584d8c-5423-42fa-9096-f5daec560e57.mp4
Desktop (please complete the following information):

OS: Windows 10 Pro
Version [e.g. 0.10.0-rc1 or 0.9.12]

Additional context
Add any other context about the problem here.

Any hints in which direction should I dig to fix this properly in Avalonia sources? It is close to become critical for our UI.

@HermanKirshin you can always request paid support / paid development in case something is critical for you.

I doubt that employer will allocate funds for third-party regression.
Anyway I found workaround for adorners that are in rather small area around control - control should be wrapped in transparent Border with ICustomHitTest implementation, negative margin (that should cover adorner area) and same value positive padding. Also with ClipToBounds=False. Maybe this can help someone too.

We are also running into numerous adorner clipping/invalidation issues in Avalonia.  Here is a simple reproduction of several things (XAML code below):

The Red and Blue dots should be clipped within the ScrollViewer but they are not.  WPF does clip adorners in a ScrollViewer.

When you scroll down, the dot parts that shouldn't have been rendered outside the ScrollViewer remain there and don't go away.

If you resize the window (which I do at the end of the animation), it will cause the repaint to occur, erasing the artifacts.  But the red dot adorner now appears in its new location almost completely outside the ScrollViewer.  Only the very bottom of the red dot still in ScrollViewer bounds should be visible.

<Border Margin="0,50,0,0" BorderThickness="1" BorderBrush="Gray" HorizontalAlignment="Left">
	<ScrollViewer MaxHeight="120">
		<StackPanel Margin="20,0" Spacing="30">
			<Border Width="100" Height="80" BorderBrush="Gray" BorderThickness="3" Background="Silver" CornerRadius="30">
				<AdornerLayer.Adorner>
					<Canvas>
						<Ellipse Width="40" Height="40" Fill="Red">
							<Ellipse.RenderTransform>
								<TranslateTransform X="30" Y="-20" />
							</Ellipse.RenderTransform>
						</Ellipse>
					</Canvas>
				</AdornerLayer.Adorner>
			</Border>

			<Border Width="100" Height="80" BorderBrush="Gray" BorderThickness="3" Background="Silver" CornerRadius="30">
				<AdornerLayer.Adorner>
					<Canvas>
						<Ellipse Width="40" Height="40" Fill="Blue">
							<Ellipse.RenderTransform>
								<TranslateTransform X="30" Y="-20" />
							</Ellipse.RenderTransform>
						</Ellipse>
					</Canvas>
				</AdornerLayer.Adorner>
			</Border>
		</StackPanel>
	</ScrollViewer>
</Border>

I'm happy to assist looking into these issues or testing any fixes.

After some debugging into the Avalonia source, I see a couple things...
IsClipEnabled Property Default Issue
This line in AdornerLayer.AddVisualAdorner effectively prevents any adorner control from setting the attached IsClipEnabled property to true because that line seems to blow away any existing setting and executes after attached properties were already set in XAML.
It seems if the intent is for the default to be false, that line in AddVisualAdorner should be removed and the IsClipEnabledProperty default should be false instead.
ScrollViewer or Other Container Clipping Issue
In our case, we want to render an adorner overlapping the adorned element but outside some of its rectangular element bounds.  Yet the adorner control should still be clipped by any container that would clip the adorned element.  Currently no clipping of ancestors takes place, which leads to the issues in the animation above and makes adorners almost unusable.
I'm not sure what updates would be needed but AdornerLayer.UpdateClip should probably take whatever clip (or no clip) that comes out of it and intersect that with the bounds of the adorned element that are actually visible up through to the topmost visual.
This clip would need to be updated anytime the adorned element is arranged, possibly even when other ancestors are arranged to handle scenarios like the ScrollViewer one I showed.

After the PR #13921 updates above, if I change the two Canvas controls that are adorners in the XAML above to be:
<Canvas AdornerLayer.IsClipEnabled="False">

The adorners still render outside of the ScrollViewer, which is bad, but the artifacts are no longer left behind like before.  Here's an animation showing what I see:

Any idea how we make sure that containers of the adorner target Border controls that would clip those Border controls also clip the adorners properly too?  Like in this scenario, the red/blue dots shouldn't be visible outside of the ScrollViewer content area.

I would think that you have two general scenarios with adorners that you want to support...

You want them clipped to the same view/clip that the target element effectively has.  If the target element is partially scrolled off view, any part of the adorner that is also partially scrolled or clipped out of view by a container shouldn't be visible either.  That's the behavior I would expect with the default AdornerLayer.IsClipEnabled="True" since I think it's the most common scenario and is ideal for any kind of decoration.

Whereas right now with clip enabled and with the commits above, it's limiting the adorner rendering to only within the bounds of the target element and not outside.  This prevents scenarios like decoration dots/badges that extend beyond the target element's bounds from working properly, as they will be clipped like you see here with the blue dot's top half not being visible anymore:

On a positive note, the AdornerLayer.IsClipEnabled="True" scenario is now working correctly with containing ScrollViewer controls.

When AdornerLayer.IsClipEnabled="False", I would think that would be more of a special case like splitters where you don't care about clips at all and want it always visible.  That scenario seems to be working as expected.

To summarize, I think the thing we're missing is in the AdornerLayer.IsClipEnabled="True" scenario having the ability to render adorners outside of the bounds of the target element but still getting properly clipped by target element containers such as ScrollViewer controls.

I think the thing we're missing is in the AdornerLayer.IsClipEnabled="True" scenario having the ability to render adorners outside of the bounds of the target element but still getting properly clipped by target element containers such as ScrollViewer controls.

WPF solves this problem by hosting an AdornerLayer in its ScrollContentPresenter:

We could do the same, but I see various threads online of people wanting to disable this behavior.

While we decide what to do here, a workaround is to put a VisualLayerManager inside the ScrollViewer template:
    <ControlTheme x:Key="{x:Type ScrollViewer}" TargetType="ScrollViewer">
      <Setter Property="Template">
        <ControlTemplate>
          <Grid ColumnDefinitions="*,Auto"
                RowDefinitions="*,Auto">
            <VisualLayerManager>
              <ScrollContentPresenter Name="PART_ContentPresenter"
                                      Padding="{TemplateBinding Padding}"
                                      HorizontalSnapPointsType="{TemplateBinding HorizontalSnapPointsType}"
                                      VerticalSnapPointsType="{TemplateBinding VerticalSnapPointsType}"
                                      HorizontalSnapPointsAlignment="{TemplateBinding HorizontalSnapPointsAlignment}"
                                      VerticalSnapPointsAlignment="{TemplateBinding VerticalSnapPointsAlignment}"
                                      Background="{TemplateBinding Background}"
                                      ScrollViewer.IsScrollInertiaEnabled="{TemplateBinding IsScrollInertiaEnabled}">
                <ScrollContentPresenter.GestureRecognizers>
                  <ScrollGestureRecognizer CanHorizontallyScroll="{Binding CanHorizontallyScroll, ElementName=PART_ContentPresenter}"
                                           CanVerticallyScroll="{Binding CanVerticallyScroll, ElementName=PART_ContentPresenter}"
                                           IsScrollInertiaEnabled="{Binding (ScrollViewer.IsScrollInertiaEnabled), ElementName=PART_ContentPresenter}"/>
                </ScrollContentPresenter.GestureRecognizers>
              </ScrollContentPresenter>
            </VisualLayerManager>
            <ScrollBar Name="PART_HorizontalScrollBar"
                       Grid.Row="1"
                       Orientation="Horizontal"/>
            <ScrollBar Name="PART_VerticalScrollBar"
                       Grid.Column="1"
                       Orientation="Vertical"/>
            <Panel Grid.Row="1"
                   Grid.Column="1"
                   Background="{DynamicResource ThemeControlMidBrush}"/>
          </Grid>
        </ControlTemplate>
      </Setter>
    </ControlTheme>

With #13921 applied, this correctly clips adorners to the scroll viewer:
https://github.com/AvaloniaUI/Avalonia/assets/1775141/80c3e419-ccdc-4f6d-9f27-6303bef5d8ae
This isn't ideal however as:

There's no way to enable/disable the behavior other than re-templating ScrollViewer (though that is an improvement as in WPF there's just no way to disable it)
Anything that wants to use a visual layer manager from within the scroll viewer, such as overlap popups will now find the one inside the scrollviewer instead of the top-level one

@billhenn I'd suggest opening a new issue for this as it's technically a new feature rather than a bug, which is what the original issue was. I think we should close this issue when #13921 is merged.


Problem with dimension when trying to extract features.

Hi.
I get this error:
RuntimeError: Expected 4-dimensional input for 4-dimensional weight [64, 3, 3, 3], but got 3-dimensional input of size [3, 112, 112] instead
in this line:
features = l2_norm(backbone(images.to(device)).cpu())
When running this code:
def get_transform(input_size = [112, 112], rgb_mean = [0.5, 0.5, 0.5], rgb_std = [0.5, 0.5, 0.5]):
  transform = transforms.Compose([
  transforms.Resize([int(128 * input_size[0] / 112), int(128 * input_size[0] / 112)]), # smaller side resized
  transforms.CenterCrop([input_size[0], input_size[1]]),
  transforms.ToTensor(),
  transforms.Normalize(mean = rgb_mean, std = rgb_std)])
  return transform

def extract_feature(images, backbone, embedding_size = 512,
                    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")):
  batch_size = len(images)
  features = None
  print("backbone:", backbone)
  with torch.no_grad():
    features = l2_norm(backbone(images.to(device)).cpu())
  return features

if __name__ == "__main__":
  cap = cv2.VideoCapture(0)
  backbone = load_backbone(IR_50(input_size = [112, 112]), './backbone_ir50_ms1m_epoch120.pth')
  transform = get_transform(input_size = [112, 112])
  while(True):
    ret, frame = cap.read()
    #cv_image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) #cv2.COLOR_BGR2GRAY)
    pil_image = Image.fromarray(frame)
    bounding_boxes, landmarks = detect_faces(pil_image)
    faces = []
    for box in bounding_boxes:
      face = pil_image.crop( ( box[0], box[1], box[2] , box[3]))
      face = transform(face)
      faces.append(face.float())
    if len(faces) > 0:
      I_ = torch.cat(faces, 0)
      I_ = Variable(I_, requires_grad=False)
      features = extract_feature(I_, backbone)
      print("features:", features)

I am beginner with pytorch.
Thanks.

Hi, thank you for your question. The error shows that your input may miss one dimension for the batch_size, since the PyTorch input should have four dimension of (batch_size, c, h, w). If you only have one image to extract the feature, you can add the dimension for the batch_size with something like: "y = np.expand_dims(x, axis=0)".


Bidirectional lstm/1

[lstm] remove timestep property

 - Remove timestep property from lstm layer.
   This will disable unrolling the lstm layer.
 - Adjust recurrent unittest to simple lstm unittest.

Signed-off-by: hyeonseok lee<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1829. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.

how about change the tile of the PR with more details .. intead of ~~~/1 and ~~~/2.?

how about changing the tile of the PR with more details .. instead of ~~~/1 and ~~~/2.?

Thanks for your notice :)


meta/badger: fix the issue that scanKeysRange ignores begin/end

Codecov Report
Base: 56.08% // Head: 56.09% // Increases project coverage by +0.01% :tada:

Coverage data is based on head (5472a4c) compared to base (5289fab).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3138      +/-   ##
==========================================
+ Coverage   56.08%   56.09%   +0.01%
==========================================
  Files         141      141
  Lines       32667    32669       +2
==========================================
+ Hits        18322    18327       +5
+ Misses      12394    12390       -4
- Partials     1951     1952       +1

Impacted Files
Coverage Δ

pkg/meta/tkv_badger.go
75.13% <100.00%> (+0.27%)
:arrow_up:

pkg/vfs/writer.go
77.48% <0.00%> (-1.17%)
:arrow_down:

pkg/meta/tkv_mem.go
86.30% <0.00%> (-0.92%)
:arrow_down:

pkg/chunk/disk_cache.go
72.92% <0.00%> (-0.77%)
:arrow_down:

pkg/meta/sql.go
59.28% <0.00%> (-0.08%)
:arrow_down:

pkg/vfs/reader.go
81.32% <0.00%> (+2.05%)
:arrow_up:

pkg/meta/tkv_prefix.go
96.20% <0.00%> (+3.79%)
:arrow_up:

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Deflake and re-enable module_test

module_test was turned off on mac with https://github.com/flutter/flutter/pull/43375.

module_test_ios was flaking due to the pubspec being modified in the future sometimes, somehow.
[module_test_ios] [STDOUT] Executing: /private/tmp/flutter sdk/bin/flutter build ios --no-codesign in /var/folders/sy/2x5qvs0n4lg18fry9jz4y21m0000gn/T/flutter_module_test.PCYYnC/hello
[module_test_ios] [STDOUT] stderr: Warning: File "/private/var/folders/sy/2x5qvs0n4lg18fry9jz4y21m0000gn/T/flutter_module_test.PCYYnC/hello/pubspec.yaml" was created in the future. Optimizations that rely on comparing time stamps will be unreliable. Check your system clock for accuracy.
[module_test_ios] [STDOUT] stderr: The timestamp was: 2019-11-04 15:47:32.000
[module_test_ios] [STDOUT] stderr: The time now is: 2019-11-04 15:43:17.832054

That modification time difference was exposing a real bug at https://github.com/flutter/flutter/issues/42956, and fixing that bug allowed us to turn back on module_test_ios.  https://github.com/flutter/flutter/issues/37525
Could the pubspec modification time drift be exposing some bug here, too?

These seem to be enabled now.


Issue with sample data

Hi i cudnt find the sample data and when i run the command :
python Code/3_VisualizeResults.py --Video "./Data/JaySampleData/Jay_Sample.mp4" --Weight  "./Data/Weights/JayBest.pt" --Start 0 --Frames -1
but got an error :
Traceback (most recent call last):
  File "Code/3_VisualizeResults.py", line 87, in <module>
    model = YOLO(WeightPath)
  File "/Users/kshitijkumar/miniconda3/envs/YOLO/lib/python3.8/site-packages/ultralytics/engine/model.py", line 93, in __init__
    self._load(model, task)
  File "/Users/kshitijkumar/miniconda3/envs/YOLO/lib/python3.8/site-packages/ultralytics/engine/model.py", line 139, in _load
    self.model, self.ckpt = attempt_load_one_weight(weights)
  File "/Users/kshitijkumar/miniconda3/envs/YOLO/lib/python3.8/site-packages/ultralytics/nn/tasks.py", line 622, in attempt_load_one_weight
    ckpt, weight = torch_safe_load(weight)  # load ckpt
  File "/Users/kshitijkumar/miniconda3/envs/YOLO/lib/python3.8/site-packages/ultralytics/nn/tasks.py", line 561, in torch_safe_load
    return torch.load(file, map_location='cpu'), file  # load
  File "/Users/kshitijkumar/miniconda3/envs/YOLO/lib/python3.8/site-packages/torch/serialization.py", line 1065, in load
    with _open_file_like(f, 'rb') as opened_file:
  File "/Users/kshitijkumar/miniconda3/envs/YOLO/lib/python3.8/site-packages/torch/serialization.py", line 468, in _open_file_like
    return _open_file(name_or_buffer, mode)
  File "/Users/kshitijkumar/miniconda3/envs/YOLO/lib/python3.8/site-packages/torch/serialization.py", line 449, in __init__
    super().__init__(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: 'Data/Weights/JayBest.pt'

Hello,
Sorry, the readme was not fully updated. You will have to download the sample dataset here ( https://doi.org/10.17617/3.EZNKYV), and paste the folder inside the "Data/" folder. Also make sure you current working directory is under YOLO_Behaviour_Repo/ (using 'cd Path/To/YOLO_Behaviour_Repo')
Alex


Save project state periodically

The other day I had 4 panes and 2 dozen tabs open representing a particulary dumb / complicated refactor. Then my laptop hard locked. After rebooting and reopening the editor, I was presented with zero panes and zero tabs. This ruined my afternoon. We should probably save project state periodically rather than just on quit, as I only have so many laptops to throw out the window before I run out.

Just chiming in that this would be very great! I got so used to this in Sublime that I implemented it in to my workflow - love being able to close Sublime at any time without any "save" prompts, and be able to open it back up to the same state. I would frequently leave "scratch" documents open for quick notes that I never actually saved to a file

+1

+1 :)

Would definitely like to see this feature implemented at some point, pretty much the only thing that Sublime has over Atom.

+1 .. Will be greatly helpful!

+1 been looking for this!

+1 on this.  It's an essential feature in Sublime that I can no longer live without.

+1 this is an absolute must

+1 :D

+1 is definitely needed in Atom

+1 since I just lost 5 min work on a crash, not much, but still annoying (and that's because I save periodically).
Why the auto-save package is included but disabled by default is beyond me, can someone explain the reasoning?

+1

updating the serialised atom editor state every minute if it has changed. and caching changed files at the same time would solve this problem ?

+1

+1

Thanks for the feedback everyone! However, all these +1s and :+1:s are just adding noise, so to minimize that I'm going to lock this issue for now – we may unlock it once someone starts working on this enhancement to get further feedback.

Starting in Atom 1.7.0, Atom periodically saves editor state for crash recovery.  Therefore, I believe this issue has been resolved.


API description enhancement

Remark API is described in this file.
It looks like some custom syntax that doesn't look well from github's GUI or in editor(no syntax highlighting).
Have you considered using Swagger for this? This will improve readability(since swagger is json/yaml) and provide common and understandable syntax.

The file is not the API description, but the input with rest's test cases for IDE/editor supporting such a DSL. I don't expect github to highlight it as this file is not intended to be consumed by people.  Any semi-modern dev. editor supports this syntax. There is vscode extension and, probably, there is something similar for Atom. All IntelliJ IDEs support it as well.


Use NATS as default messaging protocol

Change the priority of supported messaging protocols to make NATS the default protocol in the standard installation.
Imported from Jira STREAMPIPES-527. Original Jira may contain additional context.
Reported by: riemer.

I'll move this to 1.0.0 as more work is needed to ensure a smooth migration path and create a new ticket that adds a preview option to the installation folder


AWS SDK use

How are you bundling in the AWS SDK? I use several SDK calls that are not covered under amplify. So I need to include my own version of the SDK.  It would be very useful if I could go to https://sdk.amazonaws.com/builder/js/  and generate a single SDK containing the APIs I need and the ones  amplify needs. This should also reflect what amplify modules are in use, for example I am not using S3 support.
Maybe there could be a way to automate minified SDK generation.  amplify could select the modules it needs and then I could add the names of the modules I need. Then as part of the build process build a single SDK.
Don't default to the entire SDK, it is about 4MB. The small, customized one I use is 200KB.

Hi John,
We only use a subset to try and keep the library size small for better experience with PWAs or slower networks. Can you let us know what specific use cases you're currently looking to address that aren't covered in Amplify? Also, if you were to include another Service outside of Amplify's category coverage how would you imagine that looking from a programming interface standpoint? Thanks!

Top thing I need right now is the ability to call lambda. In my previous app it made direct calls into lambda; each function is totally locked down with per function roles and policies.
Should I rework my code to use API-Gateway? I don't think there is anything in API-Gateway that I really need but maybe you can convince me otherwise. I would have to call into API-Gateway with AWS_IAM authentication since I rely on the Cognito ID to keep the users separate.  It is not a huge burden for me to use API Gateway, I can look into it tomorrow.
There is no need to cache my lambda results, they are generated on each call and it is rare that an identical call is repeated.
I also have to have Federated login support with Google/Facebook to a Cognito pool.

I'm looking at app we have that uses API-Gateway. There is another integration problem with amplify, with API Gateway you generate SDKs. http://docs.aws.amazon.com/apigateway/latest/developerguide/genearte-javascript-sdk-of-an-api.html
The generated SDK is again duplicating  code in amplify and they are not unified with their handling of credentials. API Gateway uses these small library files:
<script type="text/javascript" src="lib/axios/dist/axios.standalone.js"></script>
<script type="text/javascript" src="lib/CryptoJS/rollups/hmac-sha256.js"></script>
<script type="text/javascript" src="lib/CryptoJS/rollups/sha256.js"></script>
<script type="text/javascript" src="lib/CryptoJS/components/hmac.js"></script>
<script type="text/javascript" src="lib/CryptoJS/components/enc-base64.js"></script>
<script type="text/javascript" src="lib/url-template/url-template.js"></script>
<script type="text/javascript" src="lib/apiGatewayCore/sigV4Client.js"></script>
<script type="text/javascript" src="lib/apiGatewayCore/apiGatewayClient.js"></script>
<script type="text/javascript" src="lib/apiGatewayCore/simpleHttpClient.js"></script>
<script type="text/javascript" src="lib/apiGatewayCore/utils.js"></script>

You've duplicated all of that in amplify.  One solution might be to adjust amplify to implement the same exposed API as this library does. Then I could simply use the apigClient.js file out of the generated SDK with amplify.
So if I'm going to switch off from direct lambda use I need support for the apigClient.js file out of the generated API-Gateway SDK.

The consensus from the developers I've talked to so far is that it would be better if amplify enabled the AWS.Lambda package. They suspect getting the API-Gateway SDK download supported in amplify may need significant coding effort in amplify (not our code). We also don't need the API Gateway features so it just slows us down and adds pointless expense.


Visulisation Issue via using mayavi

Really appreciate ur work on this great platform.
Well, after I successfully finished the installation and went for the quick demo locally, I met some troubles.
Basically, I did install mayavi & qt by instructions.
The thing is that:

I could run the demo.py without visualisation and easily get the prediction information.
But It returns Segmentation fault (core dumped) with plotting results.
So, which I figured out is that should be issues of plotting.

Here is the environment:
cuda: 9.0.176
pytorch: 1.1.0
python: 3.6.6
spconv: v1.0
mayavi: 4.7.2 (via pip)
PyQt5: 5.15.1 (via pip)
I've checked similar issues but unfortunately couldn't make it.
Thanks a lot.

It should be the problem of mayavi.  Maybe you could first try to use some demos of mayavi to check whether it could visualize points sucessfully.

It should be the problem of mayavi.  Maybe you could first try to use some demos of mayavi to check whether it could visualize points sucessfully.

Cheers.
Thanks for ur reply and will update anything new.

There may exist some other tools for visualization of point clouds, such as PCL, but I never used them.

There may exist some other tools for visualization of point clouds, such as PCL, but I never used them.

Updates!
Considering of the crash of using mayavi, alternatively, I switched it to Open3d.
And it works.
Thank u so much for ur reply and response.

sudo pip3 install pyqt5==5.10.1 -i https://pypi.doubanio.com/simple

sudo pip3 install pyqt5==5.10.1 -i https://pypi.doubanio.com/simple

sudo pip3 install pyqt5==5.10.1 -i https://pypi.doubanio.com/simple

must use '5.10.1'

sudo pip3 install pyqt5==5.10.1 -i https://pypi.doubanio.com/simple

must use '5.10.1'

I had the same problem and it was caused by PyQt. After I removed it and installed PySide instead everything worked for me.

you can use open3d instead of mayavi to display the inference result. It is much easier than mayavi .

I changed the pyqt5 version by  pip3 install pyqt5==5.10.1 -i https://pypi.doubanio.com/simple
and in demo.py, I moved import mayavi.mlab as mlab before 'V.draw_scenes', it works.


Prepare for Gradle Plugin release 2.1.6

Current dependencies on/for this PR:

main

PR #114   👈

This stack of pull requests is managed by Graphite.


Support for composite MVEL rules from a YAML file

Are there any plans to add support for composite rules that can be read in via yaml file? I imagine it would look something like this:
name: Rule name
description: Rule description
composite_type: UnitRuleGroup
priority: 100
subrules:
  - name: Subrule 1
    description: Description
    priority: 100
    condition: "true"
    actions:
      - "someAction();"
  - name: Subrule 2
    description: Description
    priority: 100
    condition: "true"
    actions:
      - "someAction();"
  - name: Subrule 3
    description: Description
    priority: 100
    condition: "true"
    actions:
      - "someAction();"

Hi,
That's a fantastic idea! Thank you for suggesting this feature and for opening a PR!
Let me plan this for next release, I'll review the PR and get back to you asap.
Best regards,
Mahmoud


Makefile: add exclude options for gometalinter

What this PR does / why we need it:
exclude auto generated files in gometalinter
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

This change is

Awesome this is great! 👍


Static Groups

As a Network Automation Engineer, I want the ability to create and manage static groups that function much like dynamic groups, except their membership is statically managed.
This is to support grouping use cases in which dynamic membership is problematic or otherwise unwanted. These static groups will also be used to underpin a refactor of the way dynamic groups operate, to solve critical performance issues.
AC:

Groups are defined per content type
Membership is based upon being explicitly related to the group
Not implemented as a TreeModel to start

StaticGroup model and StaticGroupAssociation model.
Model Fields:
StaticGroup: name, contenttype, description, tags
StaticGroupAssociation: FK to StaticGroup, and generic FK to members of the Group.
Design Considerations:

It will be very similar to ContactAssociation.
Need the ability to FeatureQuery for relevant content types. e.g. exclude ObjectChanges
Need a standardized pattern for related object tables in the UI
StaticGroup should only contain ONE content type
The UI has to mirror that of DynamicGroup (get_table_for_model lookup)
From any object List view, it would be nice to have a bulk assign operation button to add objects to a StaticGroup (next to bulk edit and bulk delete)
Add to a static group and remove from a static group in all bulk edit forms (mixin to add to the base class)
ConfigContext filter (Is this a requirement for 2.3?)
get_groups_for_model() API is something we should add to the BaseModel class.
GraphQL support for object.static_groups
BaseFilterSet enhancement: filter based on StaticGroup membership

Questions to explore:
Any mixins or abstract base classes that can be shared between ContactAssociation and StaticGroupAssociation?
Stretch goal:
Adding a linked count column to the BaseTable.
Retrofit some of these design considerations for the Contact/Team feature.

After #5631 and #5668, remaining items are:

ConfigContext filter (Is this a requirement for 2.3?)
GraphQL support for object.static_groups
(stretch) Retrofit some of these design considerations for the Contact/Team feature.


No newline after progressbar

from progressbar import ProgressBar
from time import sleep

prog = ProgressBar()

for i in prog(range(10)):
    sleep(0.1)

print('Hello World')

Output:
100% (10 of 10) |#############################| Elapsed Time: 0:00:01 Time: 1.00Hello World

silly inheritance mistake, it's fixed now and release to pypi :)

Great!

Experienced this on 3.12.0.


[SPARK-6773][Tests]Fix RAT checks still passed issue when download rat jar failed

check -license will passed in next time when rat jar download failed.
Add 2 step to fix this:

Clean the rat.jar if download failed.
Add a check logic after run rat checking.

Can one of the admins verify this patch?

@srowen  fixed according you comments, pls review.

Looking again at the rest of the script, I don't see the point of if [[ ! -f "$rat_jar" ]]; then, since it's redundant with the check that follows. Both enclose the same code (excepting that final print statement, which doesn't matter). @ScrapCodes is that right? https://github.com/apache/spark/commit/21109fbab0ded4f73cf4f8816859c76f125adfea

You are right, that check is just redundant ! + This PR LGTM given the fix that @srowen suggested is done.

ok to test

Test build #30033 has started for   PR 5421 at commit 4958302.

Test build #30033 has finished for   PR 5421 at commit 4958302.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.
This patch does not change any dependencies.

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


Pi Specific rendering issues (with tiny-skia)

info row menus get a text background after navigating/clicking on them


dotnet-sdk-2.2 has unmet dependencies

Problem encountered on https://dotnet.microsoft.com/download/linux-package-manager/ubuntu19-04/sdk-current
Operating System: Linux Ubuntu 19.04 - x64
I get an error when i install 2.2:
x@x360:~$ sudo apt-get install dotnet-sdk-2.2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies.
 dotnet-sdk-2.2 : Depends: aspnetcore-runtime-2.2 (>= 2.2.5) but it is not going to be installed
                  Depends: dotnet-runtime-2.2 (>= 2.2.5) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
``

Duplicate #2526


DiscordMember.User relies on the user cache even when the User is specifically provided

this means DiscordMember.User and properties that reference it can't be accessed when the user cache is full, even when the DiscordMember object belongs to an event payload that specifically provides the User.
for example: Guild Member Add event's inner payload is a Member, and thus contains an User inside, but if the User Cache does not contain (due to it being full or perhaps it is not being added in time, which would be a relevant bug) a matching User object (which may or may not be outdated), GuildMember.IsBot will throw a KeyNotFoundException
if this, for some ungodly reason, is intended behaviour, i beg that at the very least a more relevant exception is thrown when the User cache does not contain the relevant User for that Member.

When the user is proved, and not present in the cache, he's added to the cache.


Interview Page (Isabelle)

Frontend for interview page currently in place
Future plans

create backend system
integrate with users and login

Current Interview Page:


Remove Test_MSG_PrintMsg in favor of UT_DisplayPkt

Is your feature request related to a problem? Please describe.
Test_MSG_PrintMsg was added with MSG module, but duplicates what UT_DisplayPkt already did.  No need for both.
Describe the solution you'd like
Replace Test_MSG_PrintMsg with UT_DisplayPkt and remove.
Describe alternatives you've considered
None.
Additional context
None.
Requester Info
Jacob Hageman - NASA/GSFC

Also should remove Test_MSG_Sum, this was just a lazy way to check a message that is no longer used anyways (didn't end up working well when default values that may be overwritten based on implementation are involved).  Basically test_msg_utils.[ch] can go away.


Logging in daemon mode.

blackboard-dl currently prints to stdout when in daemon mode, which is a bit silly.
Would be great to log output to a file instead.

Thanks to https://github.com/hako/blackboard-dl/commit/14242a2fb0cc7c1c643a2c394ac509618c4b08d8 daemon now logs to a file instead of stdout.


install own copy of genome

Hi,
I work within the Genomics England Research environment. Getting data in and out is difficult. for local install, can we install a copy of the genome available within the Genomics England Research environment?

I believe that this is a similar question this #87 on SigProfilerAssignment. I am going to close this one since it has been answered there.


[bug]curveadm target start will timeout

when run curveadm as follow
curveadm target add

it will timeout.
Does not affect the execution of subsequent commands
curveadm: 0.3.0
You should help us find out the reason and fix it.
Registration procedure
Step 1. Add a comment when you sign up.The purpose of comments is for us to understand you and determine whether you have the basic ability to complete this issue.

If you are a student, please introduce your school, major, programming language, technical fields of interest, what you are good at, and why you chose this issue.
If you are already working, please introduce your company, career, work content, technical fields of interest, and why you chose this issue.

Step 2. Use WeChat to add the Curve community assistant "Curve" as a WeChat friend, tell your GitHub ID, and send the Issue link of your choice. The assistant will invite you to communicate with the mentor  by WeChat.
Step 3. In order to better complete each development task, the mentor will select the developer who best matches the issue based on everyone's comment on GitHub and communication status by WeChat. If you are not selected, please select another issue.
Tips

Before developing, please read the dev guideline( https://ask.opencurve.io/t/topic/201) carefully and communicate with your mentor.
Please submit a draft PR before 11.29, and the mentor will review it within 2-5 working days and may guide you to modify the PR based on the actual situation.
If you successfully merge into PR before 12.27 and you will receive gifts carefully prepared by the Curve community.

curveadm: 0.3.0是什么版本，我在tags中没有找到，而且curveadm target add 该命令没有添加参数会提示requires exactly 1 argument,并不会time out。

Hi , I would like to work on this
I am a third year student pursuing Information Technology Engineering at MAIT, Delhi
I like to work on backend systems and CLIs, I have worked with c++ , Golang, js(node) and python.
Since this involves debugging and logic building I think this would be best suited for me.

Hi , I would like to work on this I am a third year student pursuing Information Technology Engineering at MAIT, Delhi I like to work on backend systems and CLIs, I have worked with c++ , Golang, js(node) and python. Since this involves debugging and logic building I think this would be best suited for me. @hdbdn77
I would like to mention, wechat can't be accessed in India , can there be an alternate arrangement for the further steps.

You can directly explain your development ideas for this issue through comments, and the mentor @caoxianfei1  will confirm whether your solution is feasible. If it works, he'll assign it for you. Btw please pay attention to our event deadlines.

curveadm: 0.3.0是什么版本，我在tags中没有找到，而且curveadm target add 该命令没有添加参数会提示requires exactly 1 argument,并不会time out。

see https://github.com/opencurve/curveadm/pull/243

Hi , so i was looking into the project but I couldn't find proper english docs for curveadm, can you link some helpful resources.

您好，我正在研究该项目，但我找不到 curveadm 的正确英文文档，您可以链接一些有用的资源。@Subzeroo7 @caoxianfei1

You can use the Google Translate plugin to read wikis

您好，我正在研究该项目，但我找不到 curveadm 的正确英文文档，您可以链接一些有用的资源。@Subzeroo7 @caoxianfei1

You can use the Google Translate plugin to read wikis

Sorry, We don't have English documentation yet and you can try to translate it.

Awesome Camp! I want to try it!

Awesome Camp! I want to try it! I am a second-year graduate student from Huazhong University of Science and Technology. My research direction is storage systems and caching systems. I am now trying to apply emerging caching algorithms to ceph's bluestore. I'm eager to try curve to learn more about storage systems. Here is my CV.

Welcome!

We close it because we has fix it. Everyone can open it again if you encounter the problem.


Some basic cleanup, including tokenizing parameters

I fixed a few places that crashed while I had incorrect parameters, swapped the 2 second sleep with a setTimeout and parameterized the region.

Good cleanup stuff - thanks! :+1:


dashoffset

Rendering https://commons.wikimedia.org/wiki/File:Mamiya_645_Super_system.svg with two different backends leads to different dash-offset.

pic

cairo

qt

see e.g. left upper corner the vertical short line

Hmm... interesting. Only qt and raqote backends are producing such results. All other backends and applications are correct.

https://github.com/jrmuizel/raqote/issues/119
https://bugreports.qt.io/browse/QTBUG-83048

There is nothing I can do from the resvg side, so I'm closing this.

@RazrFalcon  Since it is related to subpaths, maybe you can split path into seperate paths? (Do some pre-processing/svg-optimization)

Technically yes, but I will remove Qt support soon and raqote will be fixed too.


Follow-up of #245: [XMLPARSER] Governance Parser fails on id_range if 'max' tag present but not 'min' tag

The governance XSD file provide by OMG allows id_range to either have:

a min and a max tag
a min tag only
a max tag only

<xs:complexType name="DomainIdRange">
 <!--  DDSSEC-130  -->
  <xs:choice>
    <xs:sequence>
      <xs:element name="min" type="DomainId"/>
      <xs:element name="max" type="DomainId" minOccurs="0"/>
    </xs:sequence>
    <xs:element name="max" type="DomainId"/>
  </xs:choice>
</xs:complexType>

Before FastRTPS was supporting only 1) #245.
With https://github.com/eProsima/Fast-RTPS/pull/252 2) is now supported
3) is still failing ATM
In other words, the following should work:
            <domains>
              <id_range>
                <max>230</max>
              </id_range>
            </domains>

Commit ee8c0a12c0709bf0b6869dbb136ccfd1f9d513e1 should have fixed this.


Only root user can start Riak [JIRA: RIAK-2192]

Hi there,
I installed basho-erlang 16 and followed all the instructions to install riak 2.1.1 from source (http://docs.basho.com/riak/2.1.1/quickstart/). I never used root or sudo command to install riak.
After installing I added 2 devnodes by this command:
make devrel DEVNODES=2
But I can't start riak with a user name that installed erlang and riak 2.1.1.
riak start output:
riak failed to start within 15 seconds,
see the output of 'riak console' for more information.
If you want to wait longer, set the environment variable
WAIT_FOR_ERLANG to the number of seconds to wait.

riak console output:
...
06:26:09.959 [info] Application exometer_core started on node<EMAIL_ADDRESS>[os_mon] memory supervisor port (memsup): Erlang has closed
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
06:26:10.157 [error] CRASH REPORT Process <0.181.0> with 0 neighbours exited with reason: no match of right hand value {error,{file_error,"./data/cluster_meta/manifest.dets",eacces}} in riak_core_metadata_manager:init_manifest/1 line 585 in gen_server:init_it/6 line 328
06:26:10.158 [error] Supervisor riak_core_sup had child riak_core_metadata_manager started with riak_core_metadata_manager:start_link() at undefined exit with reason no match of right hand value {error,{file_error,"./data/cluster_meta/manifest.dets",eacces}} in riak_core_metadata_manager:init_manifest/1 line 585 in context start_error
06:26:10.159 [error] CRASH REPORT Process <0.162.0> with 0 neighbours exited with reason: {{shutdown,{failed_to_start_child,riak_core_metadata_manager,{{badmatch,{error,{file_error,"./data/cluster_meta/manifest.dets",eacces}}},[{riak_core_metadata_manager,init_manifest,1,[{file,"src/riak_core_metadata_manager.erl"},{line,585}]},{riak_core_metadata_manager,init,1,[{file,"src/riak_core_metadata_manager.erl"},{line,338}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,304}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}}},{riak_core_app,start,[normal,[]]}} in application_master:init/4 line 133
06:26:10.159 [info] Application riak_core exited with reason: {{shutdown,{failed_to_start_child,riak_core_metadata_manager,{{badmatch,{error,{file_error,"./data/cluster_meta/manifest.dets",eacces}}},[{riak_core_metadata_manager,init_manifest,1,[{file,"src/riak_core_metadata_manager.erl"},{line,585}]},{riak_core_metadata_manager,init,1,[{file,"src/riak_core_metadata_manager.erl"},{line,338}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,304}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}}},{riak_core_app,start,[normal,[]]}}
06:26:10.166 [info] alarm_handler: {clear,system_memory_high_watermark}
{"Kernel pid terminated",application_controller,"{application_start_failure,riak_core,{{shutdown,{failed_to_start_child,riak_core_metadata_manager,{{badmatch,{error,{file_error,\"./data/cluster_meta/manifest.dets\",eacces}}},[{riak_core_metadata_manager,init_manifest,1,[{file,\"src/riak_core_metadata_manager.erl\"},{line,585}]},{riak_core_metadata_manager,init,1,[{file,\"src/riak_core_metadata_manager.erl\"},{line,338}]},{gen_server,init_it,6,[{file,\"gen_server.erl\"},{line,304}]},{proc_lib,init_p_do_apply,3,[{file,\"proc_lib.erl\"},{line,239}]}]}}},{riak_core_app,start,[normal,[]]}}}"}

Crash dump was written to: ./log/erl_crash.dump
Kernel pid terminated (application_controller) ({application_start_failure,riak_core,{{shutdown,{failed_to_start_child,riak_core_metadata_manager,{{badmatch,{error,{file_error,"./data/cluster_meta/m

What am I doing wrong? Any ideas?
Thanks,
-- buriwoy

This is the relevant bit of the crash report here: {error,{file_error,"./data/cluster_meta/manifest.dets",eacces}}
It's a permissions issue of some kind - did you build the whole system as the root user?

If you mean riak installation by "the whole system", no, I used neither root nor sudo. Except for dependencies:
sudo apt-get install build-essential libc6-dev-i386 git

But I don't think it has anything to do with the issue.

According to the error, the user account that Riak is started under does not have permission to read or write the ./data/cluster_meta/manifest.dets file.  Is there some kind of mismatch between the user account that's starting the riak application and the file system location where it's being run out of?

No, everything is the same, in the user's home dir. That same user installed basho's erlang and Riak.
I also tried to change user:group recursively under that user (my guess is even before that everything belonged to the user). It didn't help.

This is the relevant part that's failing. Could you try running dets:open_file(test, [{file,"./data/cluster_meta/manifest.dets"}]). from the erlang shell?  Just type erl from your terminal.  You should see a 1> prompt.  Enter the dets command at 1>.

Here is what I got:
Erlang R16B02_basho8 (erts-5.10.3) [source] [64-bit] [smp:2:2] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.3  (abort with ^G)
1> dets:open_file(test, [{file,"./data/cluster_meta/manifest.dets"}]).
{error,{file_error,"./data/cluster_meta/manifest.dets",
                   eacces}}
2> dets:open_file(test, [{file,"/tmp/foo.dets"}]).
{ok,test}

OK, does the ./data/cluster_meta/manifest.dets file exist on disk? If so, what does ls -l ./data/cluster_meta/manifest.dets show?

yes, it exists. Surprisingly, it belongs to root:
ls -l data/cluster_meta/manifest.dets
-rw-r--r-- 1 root root 5464 Sep 17 05:53 data/cluster_meta/manifest.dets

Hopefully there's no data you need to keep around?  If so, you can delete the directories and try to start Riak again.

what directories you mean? data/* ?

Yes data/*

I got a new error:
bin/riak start
mkdir: cannot create directory ‘/tmp//home/user/apps/new_riak-2.1.1’: Permission denied
riak failed to start within 15 seconds,
see the output of 'riak console' for more information.
If you want to wait longer, set the environment variable
WAIT_FOR_ERLANG to the number of seconds to wait.

Thanks, @mrallen1 for your efforts!
I figured out the issue. It was /tmp//home/user/apps/new_riak-2.1.1. After deleting /tmp/home, it worked.
thanks again, have a good weekend,
-- buriwoy


Confusion when including Gradle subprojects by file path vs project path

Consider you have a project like:
root/
   foo/
       sub1/build.gradle
       sub2/build.gradle
   build.gradle
   settings.gradle

This is an accepted, but strange way to include the subprojects:
include ":foo/sub1"
include ":foo/sub2"

This adds two subprojects named foo/sub1 and foo/sub2.  This causes problems in Eclipse and Sonar because the slash is not allowed in project names.
This happens to work because we convert the project path + name into a file path, which happens to line up with the actual project layout.
I would expect if we fixed this, we would go through a period of deprecated warnings about what values include() accepts.  We also have a parallel/similar API for composite builds that always uses file paths (includeBuild()).
We may consider unifying the includeBuild and include APIs to have something similar.
Expected Behavior
I would expect this to fail (invalid project name/path?) or "do the right thing" by converting the slashes into colon path separators.
Current Behavior
Silent, mostly works.
Context
I've seen this come up from time to time since it seems normal to use the file path vs the project path.
Steps to Reproduce (for bugs)
This happens always.
Your Environment
This happens everywhere.

I think we should replace include() with new methods or DSL that make more explicit what kind of value you're providing. For example, use a method name and parameter types that describe this:
includeProjectAt(File dir) // path is inferred from dir
includeProjectWithPath(String path) // dir is inferred from path

Or
includeProject { projectDir = ... }
includeProject { projectPath = ... }
includeProject { projectDir = ...; projectPath = ... }

Or
projects {
    core { projectDir = '...' }
}

Or whatever.
We should do the same thing for includeBuild().
As a separate change, we should deprecate a small number of specific characters that can be used in a project/task/configuration/whatever name, where-ever and however that value is specified (which includes the include() method)


statusline and tabline show up in dashboard

Describe the bug
When I open neovim and the  dashboard appears. I ran the command :h browse to see the doc of vim. But when I closed the doc page by :q then the tabline and statusline appeared in the dashboard as well.
To Reproduce
Steps to reproduce the behavior:

Open neovim and run the command   :h browse (or any other command like :h omnicfunc ).
Close the doc  by command :q and you will see both statusline and tabline in dashboard.

Expected behavior
When I close the doc by command :q the tabline and statusline should also be gone instead of appearing up in the dashboard.
Screenshots

expect behavior


D

uTinyRipper has been abandoned, but you can try my AssetRipper fork. In the event that AssetRipper encounters issues while ripping your files, feel free to post an issue on that repository.
AssetRipper is actively being developed with the intent to recover games as best as possible. Weekly releases are normally on Sunday or Monday. I encourage you to help out if you're able and willing. Code contributions can be submitted via pull requests.
If you like the work I've done and want to see it continue, please consider sponsoring me. It really does help with development. These are some of the notable things I've implemented since taking over development:

2020+ support
APK, XAPK, and IPA reading with SharpZipLib
Dummy shaders (so everything isn't pink when you open the project)
IL2Cpp support via an integration of Cpp2IL
Better game platform support
Full script decompilation with the ILSpy decompiler
Cross-platform support
Multiple configuration options
Numerous performance improvements

Links:

Patreon
Paypal


I use dw1830 card with BT/WIFI!

I installed the BrcmBluetoothInjector.kext driver with the dw1830 BT/WIFI card. Bluetooth can drive, but no Bluetooth device can be found.

Please find support in some a community site like insanelymac. This site is focused on problems specific to hac mini.


chore: centralised, filterable logging

A number of our existing dependencies like prisma use the debug library. This lets you set a namespace for a group of logs, and then filter which logs you want to see through the DEBUG env var. You can also change the filtered groups programmatically
This should help us:

Cut through the log noise in local dev
Selectively log in production when needed
See slow areas in the code

Example log:

Prisma supports the debug library, but then it shows debug-level information which we don't want. I've added a workaround for that
I've set DEBUG in doppler to :
Dev:
ai:*,-ai:middleware:auth,-ai:aila:moderation:response,+ai:db
The +ai:db is superfluous, but personally I'm preferring -ai:db a lot of the time so it makes it easy to switch
Staging/production
ai:*,-ai:middleware:auth,-ai:aila:moderation:response,-ai:db
We have an old logger for structured logging with pino. It's used in very few places. If we need to, we can set baseDebug.log = structuredLogger.info, though the format changes for the worse in the default configuration. There's also a pino-debug package which seems to offer this

:tada: This PR is included in version 1.11.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add .prettier to the project

Background
Currently, developers need to manually format all their changed files to pass the linting GitHub action.
Ideal Solution
Add .prettier and other prettier-related files to the project. Then update all the files in the codebase with the new .prettier instructions.

I would love to work on the issue


Reset outdated related models after AR update

Q
A

Is bugfix?
no

New feature?
yes

Breaks BC?
no

Tests pass?
yes

Fixed issues
#13567

I'm not sure if it should be called directly in afterSave or we should bind an event handler.

@samdark fixed.

Why this behavior is used only after save? The same problem exist without saving record (in validation for example):
$model = new FormModel();
$model->user_id = $id;
if (!isset($model->user)) {
    $model->user_id = $defaultUserId;
}

var_dump($model->user); // null

@rob006 thanks for pointing this out. Am I missing something or we won't be able to tell if a relation is outdated or not while insert and the only option is to reset all relations?

Added a test case for the insert scenario.

You should not trigger this on insert/update but on setAttribute(). You could create list of "dependencies" of cached relations. For example when I access to $model->user this realtion is dependent on current value of $model->user_id. You could check in setAttribute() if attribute is dependency and if it has changed - then unset all dependent relations.

@rob006 seems like this should be triggered both in setAttribute() and the __set() since one doesn't call the other for some reason.

Refactored the code. Please review.

While I understand the problem, the presented solution adds a huge overhead to an operation which is performed quite often. Setting one attribute now includes an iteration over all relations and instantiating a relation object for each of them. Quite sure we do not want to introduce this overhead here. Any ideas?

@cebe first I proposed to implement the related models reset on save() but it was rejected...

@cebe I have some ideas how to improve performance of this solution, but I need more time to do some tests. I will try propose solution in next week.

@cebe if we reset related models in afterSave() it will add no overhead on insert and just one iteration over $_related on update? What do you think about it?

@cebe @rob006 @samdark I refactored the code to store relation names indexed by link attributes. Now the reset routine has almost no overhead. What do you think?

IMO, these kind of responsibilities should be moved to its own class to keep BaseActiveRecord clean

@dynasource not in this case. That's clearly a responsibility or AR if we want such behavior.

That's clearly a responsibility or AR if we want such behavior.

responsibilities can be cut into pieces (a.k.a. classes)

@dynasource This is about handling magic getters and setters specific to AR - how do you want to extract this into separate class?

by instantiating an object in which the logic of this PR is encapsulated. You can argue performance, but I'm positive against refactoring BaseActiveRecord into a smaller class.

Such object would violate AR encapsulation and will be really tightly coupled to AR so I don't see how it would be helpful.

so I don't see how it would be helpful.

separation of concerns

But that's not separate concern. It is internal object behavior to ensure its external consistency. It has nothing to do with external interface. It is an implementation detail and, ideally, should not be leaked.

My point is that I don't think it's a bad idea to break down the class in more peaces. The current BaseActiveRecord class has 1600 lines. IMO, this is an indication that is just does too much.

In this regard — yes. AR does too much by design of the pattern itself... I would love to extract some code from it but only the code that is general enough to be reused somewhere else and which would not lead to encapsulation leaks.
This particular case is not a good example of code to be extracted.

perhabs not, but it's good to start looking at BaseActiveRecord to find abstractions in order to make it slimmer, starting from this PR.

It's a good intent but is not related to this pull request in any way. Let's keep it out of it.

Any comments regarding proposed solution with private static $_relations = [];?

Making it static could be a bad idea if you'll think about something like single table inheritance or polymorphic inheritance or any other form of dynamic relations.

Makes sense. Refactored to non-static private $_relations;.

@SilverFire I added a test-case for the composite key relation which passes successfully and a test-case for the via() relation which fails. I tried to implement the via() relation support but it's getting very complex and I wasn't able to work out a solution for that yet. Not sure it it worth effort either.

I've made some improvements:

better performance
add missing db settings for tests (oci and mssql needs some review - I have no experience with these DBMS and can't test it properly)
add via() support

See https://github.com/Kolyunya/yii2/pull/1

Thank you, @rob006

I think this can cause some unexpected problems:
e.g. the following approach is not uncommon:
$user = new User();
$user->populateRelation('profile', new Profile());

if ($user->load($_POST) && $user->profile->load($_POST) && $user->validate() && $user->profile->validate()) {

    $user->profile->save(false);
    $user->profile_id = $user->profile->id; // this would reset the relation
    $user->save(false);

    $user->profile->handleFileUpload(); // this method would rely on the original profile class being used as that contains the UploadedFile instance

    return ...;
}

Current solution also does not respect relations populated via eager loading (with()) as no dependency is registered in that case.
I am still unsure whether we should add automatic invalidation of relations. Imo a call to refresh() is the better solution if you need to replace existing relations. btw, if you set related model via link() you get the refresh already. Example from #13567:
$model = Appointment->findOne($id);
//current dealer_id = 1

//update this dealer_id
$model->dealer_id = 2;
$model->save(false);

update the id via link():
$dealer = Dealer::findOne(2)
$model = Appointment::findOne($id);
//current dealer_id = 1
$model->link('dealer', $dealer);
$model->save(false);

Imo it is okay that extra work is needed when you do things manually (e.g. $model->dealer_id = 2;).
If you want magic, you can use $model->link('dealer', $dealer);

@cebe yeah these changes are very major and need extremely thoughtful review and testing!

e.g. the following approach is not uncommon:

This code is weird. Why you first save record to database and then handle files? Shouldn't be opposite?
Why you use relation for new Profile model instead of create 2 independent objects and link them at the end?

    $user->profile_id = $user->profile->id; // this would reset the relation

Are you sure? Dependency for profile_id was newer set in this case, so this condition will newer pass.

Imo it is okay that extra work is needed when you do things manually

The problem is that it is not always obvious when you should do that. If some validator touches relation, it will cache result and this will affect all further processing. It may create weird bugs - if I add validator which does not modify any attribute, but accessing relation, this may break some controllers logic if they rely on this relation. So to avoid this bug I need check all model validators on writing controller, and check all controllers which uses this model when I want to add new validator.

Why you use relation for new Profile model instead of create 2 independent objects and link them at the end?

I am not saying that is the best approach but I have seen people doing it. This allows to use $user->profile in the view also and would fetch the relation automatically, so update action has less code. At least this is a use case which can be broken by these changes.

Are you sure? Dependency for profile_id was newer set in this case, so this condition will newer pass.

right, not in my example, but in update action the first line would be $user = User::findOne($id);
and profile would be lazily loaded.

If some validator touches relation

Why would a validator touch a relation? validation should be per model instance and not validating sub-relations.

right, not in my example, but in update action the first line would be $user = User::findOne($id);
and profile would be lazily loaded.

But in this case you're not having this line: $user->profile_id = $user->profile->id; since $user->profile_id is already set to correct value.

Why would a validator touch a relation? validation should be per model instance and not validating sub-relations.

Validator may use data from relation to validate current model. For example if we have Message and Conversation models, Message validation may check if conversation is not closed. Also: #13675

nothing for 2.0.13

@Kolyunya would you please resolve conflicts?

Did that... waiting for tests to run...

@samdark this can not be merged as is IMO. Tests for via() relations are missing and I'm sorry but I can not help with this in near future.

@Kolyunya There are tests for via(): https://github.com/yiisoft/yii2/pull/13618/files#diff-5c2b59d39a2ea1dc5443fb98d1325d11R1040
Anything else should be tested?

Merged. Thank you!

@mg-code try master code.

@samdark it did not help.
In most cases those changes will help, but in some cases not.
It will work if property is accessed for the first time. If you will write such code:
if ($model->address) {
    $model->populateRelation('address', new Address());
}

it still will reset related data on after save. Because you tried to access relation before populateRelation.

Yes, it's the same.

_relationsDependencies has private access. There is no way to override or fix a problem with this functionality unless I make a fork (or maybe use another orm).
I see this alot in Yii - when you make a private property at least make a public/protected function to get its value; or better yet make it protected if it's ok to change it.


Running on Linux?

I noticed some references to a Linux build in this repo, but am not sure if I see one in the releases.  Did I miss something?  Or are there instructions somewhere for building from source on Linux?

There is a mono executable included with each release. It has been lightly tested as it has many limitations (and likely problems). The readme.txt includes some information related to the installation of mono but those instructions may differ. I'll probably add a page to the wiki about running with mono.

Ah ok, I was unfamiliar with Mono.  For future reference, you can just run the CardMaker_Mono.exe on the command line with:
mono CardMaker_Mono.exe

You may need to install mono-complete to get access to the proper Windows Forms library.  I did this with sudo apt-get install mono-complete.


Is there missing an attribute("ref") invocation between child(...) and value() ?

https://github.com/troldal/OpenXLSX/blob/530e35b7ace89f5fb11b62779375e00b750aec2c/library/sources/XLSheet.cpp#L399
The lastCell() methond always return "A1" cell.

there is a function in the XLWorksheet constructor
    // ===== Read the dimensions of the Sheet and set data members accordingly.     std::string dimensions = xmlDocument().document_element().child("dimension").attribute("ref").value();     if (dimensions.find(':') == std::string::npos)         xmlDocument().document_element().child("dimension").set_value("A1");     else         xmlDocument().document_element().child("dimension").set_value(dimensions.substr(dimensions.find(':') + 1).c_str());
Which should write the value of the last cell in child "dimension". But this function doesn't work for some reason.
condition if (type_ != node_pcdata && type_ != node_cdata && type_ != node_comment && type_ != node_pi && type_ != node_doctype) return false; in function set_value.
Is this condition correct? if it is ignored, the last cell is written and read well.


agvtool breaks due to project being in XML format

The project should be in legacy plist format to ensure agvtool works.
I can workaround this by running xcproj touch in a after_save hook but we need a better way.

Should be in XML format if the Xcodeproj version supports the current Xcode, no easy workaround unless the Ruby serialiser is complete.


IO Refactoring: Code Scheme Tests

Includes some tests for saving and loading code schemes.
Not all of them are passing - I would prefer @lukechurch to check that the failing tests reflect desired behaviour before fixing anything.
Also includes some documentation to Code, which was necessary to understand how to construct some test CodeSchemes.

@lukechurch Test file with failing tests marked with comments:
https://github.com/lukechurch/coda/blob/eb174b268926722428e7dd37af8f01e4f903f26f/coda-prototype/test/FileUtils.test.ts


Changing the base layer sometimes hides the active overlays (+ workaround)

The problem - I think - is that the baselayers and overlays are watched by a different watch, and changing the baselayer involves adding it to the map. Then the newly added baselayer is on top of the overlays.
Example here - try playing with the base layers and notice the overlay gets hidden.
This is my workaround, but maybe the overlays should be redrawn if a base layers changes?
	$rootScope.$on('leafletDirectiveMap.baselayerchange', function(ev,layer){
		console.log('base layer changed to %s',layer.leafletEvent.name);
		angular.forEach($scope.layers.overlays, function(overlay){
			if (overlay.visible) overlay.doRefresh = true;
		});
	});

Hmmmm... I tried this workaround, but it didn't work for me. Here is my plunk, it has directions for reproducing...
http://embed.plnkr.co/MNyxz5A8GbX1oM9c8ZPK/preview

@pieterjandesmedt, your code didn't work for me too, but acted as a good start point. I solved with this:
$rootScope.$on('leafletDirectiveMap.baselayerchange', function (ev, layer) {
	leafletData.getLayers().then(function (l) {
		angular.forEach(l.baselayers, function (bl) {
			bl.setZIndex(-1);
		});
	});
});

Now, my overlays are always on top of any basemap/baselayer.

This issue was moved to angular-ui/ui-leaflet#103

I'm going to rework&redesign angular-leaflet-directive to be compatible with Leaflet v1.0. It will mantain almost all its functionality, and will be compatible with the current features of the directive, but I must start from a fresh point, so I'm going to close this issue. If you think it must be worked with the new version, please reopen it.


feat(lang): add Russian language

Thanks for the PR :pray:

Well, I translated German part and asked my Girl to do the Russian part. She is a native speaker and a professional translator. So I will forward that to her :)


Feature request: SDK Exception Handling

Prerequisites

[X] I have searched the repository’s issues, Kinde community and public roadmap to ensure my feature request isn’t a duplicate
[X] I have read the contributing guidelines
[X] I agree to the terms within the code of conduct

What is the problem you’re trying to solve?
I think the current approach that Kinde has towards exception management in that SDK could do with some improvement. Here's Kinde's code when authentication fails.
if (!response.IsSuccessStatusCode || string.IsNullOrEmpty(content))
            {
                throw new ApplicationException("Invalid response from server: No token received");
            }

There's two issues with this:

There is no way for a developer to understand why authentication failed unless they attach a debugger before the ApplicationException is thrown as the actual error is never reported, just a generic "no token received" error message. This is going to be problematic when troubleshooting issues outside of a developers local machine (e.g. production). If data sensitivity is a concern at least allow for a config value to allow for sensitive exceptions to be thrown (just like with the .NET OIDC libraries you can have a config setting to allow for PII data to be output)
Kinde is throwing ApplicationException. Both Microsoft and Jetbrains state in their base practices and code analytics do not throw ApplicationException (official docs). The problem with throwing just the base Exception and ApplicationException types is that they are so general they give very little indication with what went wrong. I would suggest throwing a custom Kinde exception or using one of the .NET security or HTTP exception types.

For my purposes I'm mainly concerned with issue 1. I can live with the ApplicationException issue but I suspect it might cause downstream issues for Kinde, particularly with enterprise .NET customers as they tend to have more stringent standards reinforced by static code analysis.
What solution would you like to see?
As per the problem.

Kinde to allow for actual error messages to be thrown up to calling code so it can be logged for troubleshooting, particularly in environments where you cannot attach a debugger. Right now, I would call Kinde's Management Library unsupportable in the sense there is no way to know when authentication failed what the issue might be in a production environment. For me to use this library with any comfort I would need to fork the repository and create my own build, somewhat defeating the purpose of using an external provider in the first place. I would imagine I'm not the only customer who's going to have this issue.
Review the use of ApplicationException and consider more appropriate exception types.

Additional information
No response

As an example, over the last couple of days I have been troubleshooting an issue as to why I couldn't authenticate. I was able to replicate the issue with Postman (which I needed to fall back on as there was no easy way to do it), and then eventually I dug up the repository to look at the code and was able also replicate the same issue in .NET.
The only way to actually troubleshoot right now is via a debugger. Which doesn't leave a lot of confidence in supporting a Kinde solution in production.

Hi @DevEnable , thank you for your feedback, this is definitely something we will consider for a future release.
You may find OpenTelemetry (or an out of the box solution like DataDog APM) useful for tracing requests in production.

Hi @coel. I can use those solutions (currently using Application Insights through an Open Telemetry Provider), but unfortunately the quality of data that those tools present is only as good as the quality of the data coming in. As the exception thrown by Kinde does not include pertinent details, nor does it log the actual error through any logger existing in the application context (e.g. by resolving to an ILogger) that data would not be present for a customer.
I would imagine that Kinde has logging available on its backend systems, so can uncover the issue but customers would need to go through your support team to get access resulting in both a longer resolution time (impacting SLAs) as well as increased customer support costs.