Electron-225 (Updated the default window size)

Description
Updated the default window size as per the new requirement JIRA-ticket
@VikasShashidhar & @VishwasShashidhar Please review. Thanks :)

lgtm 👍


Replace string with char assist will emit broken code for \n

I have the following code
let s = "\n";

Now if I apply the "Replace string with char assist" rust-analyzer will change as follows
let s = `
`;

I expect the following code:
let s = '\n';

This was fixed quite a bit ago, and I also can't seem to reproduce it. Can you make sure you are on the most up to date version?

I've used a version from some days ago, updating to the current version fixed that bug :+1:


updated index.htm to short btc

*Issue : Long btc talk
*Description of changes:: shortened it
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Approved pull req merge

Approved merge


[blog] Fix social cards

I saw this in my Twitter thread:

#33926. So I had a look at how I could fix the root problem. Turns out it's because of the instructions in https://www.notion.so/mui-org/Blog-247ec2bff5fa46e799ef06a693c94917#8d7abbf2117b4f28a671adc8bff4b13b are wrong. I have fixed the content in Notion to not lead toward card.jpg but card.png.
https://github.com/mui/material-ui/blob/660b9da2485257c80ba8be5e1079756ccb07f85d/docs/src/modules/components/TopLayoutBlog.js#L220
You might also wonder, why png and not jpg? Because see the same image exported in the two different formats, after compression:

a png is x3.0 smaller.

@oliviertassinari Thanks! I'm about to fix this issue 🤣


ITI-65 Expected actions -- should to shall

Section Number https://profiles.ihe.net/ITI/MHD/ITI-65.html#expected-actions
Issue change should to shall in the 1st sentence below, since the following 2 sentences contain shall
Proposed Change The Document Recipient should verify the FHIR resource elements for consistency with the Document Sharing metadata requirements as specified for attributes ITI TF-3: Table 4.3.1-3: “Sending Actor Metadata Attribute Optionality”. The Document Recipient that supports the “Comprehensive Metadata” or the “XDS on FHIR” Option shall validate against column “XDS DS”; otherwise the Document Recipient should validate against column “XDR MS”.
Priority:

Low: Typo or other minor classification that an editor can manage. Requires no group discussion.

Then, remove "otherwise".

will work on wording clarity.


Delayed block processing queue [ addressing Chain Reorganisation issue ]

changes

For addressing Chain Reorganisation issue, implemented Redis backed delayed block processing queue 🥳
From now on in .env file ( under BlockConfirmations field ), it can be set how many block confirmations are required before finally persisting blocks in DB
If nothing is provided, 0 will be considered, but highly not recommended to use it this way
Allowing password less connection to Redis instance [ Not recommended, at least in production ]
Workers will always attempt to keep non-final block count in queue as same  as BlockConfirmations set in config

Config file can be used for specifying range of block numbers & time, when performing range based queries from client.

Config file can be used for specifying range of block numbers & time, when performing range based queries from client.


let function not working or allowed?

Trying to get my 'let' statements to work, but it's giving me an error on both of them, (see screenshot):
Not seeing why, it's what the w3 schools says about js....something about compatibility?

So, when the jshint linter was written, not all browsers supported the newest version of Javascript, ES6.  That's an error with the JS Hint Linter.  You need to make a .jshintrc file that says your coding in ES6 and to not return that error when using modern commands, like let.  If you follow the instructions in the error and use the settings in the actual linter package in Atom, you should be able to make three error disappear.

Now that I'm back at my station, here's how you fix the JSHint W104 warning:
As stated in my previous post, JSHint is only throwing the warning to remind you that the let variable is from a "newer" version of JavaScript that might not be supported by older browsers.  It's perfectly fine to code in, just not fully adopted.
To make the warning go away and stop cluttering up our error bar, we need to make a new file called .jshintrc in the same directory as our project files.
You can do this in Atom by right-clicking (or CMD+Clicking) your project folder and choosing New File.  Name it .jshintrc and hit enter.  Put {"esversion": 6} on the first line, save it, and you should be good to go.
Some important notes:

This file has NO extension.  It is simply .jshintrc
Each project requires this file in it's root folder.
You don't have to upload this file with your project so flag it to be ignored in GitHub Desktop.

This file is a configuration file that the linter will look at for various instructions, but for this particular problem we only need one line of code.
Proper location and formatting:

@HagenNathaniel I noticed on Line 14 you need to have a lowercase r. let rightShield = width - 35;
and on Line 19, the m should be lowercase and S need capitalized: let bm = mouseX, leftShield, rightShield;. Hope that helps.

little late to this...thanks guys!!
I'll do that as soon as I can!!


Add keyboard shortcuts

The user should be able to use to a keypress combination to access the following features/actions in Orbit:

open channels panel
close channels panel

should be the same key with open channels panel

next channel
previous channel
open settings
upload file modal
join channel input

one key to bring up the join channel input field in the channels panel

leave channel

The keyboard shortcuts should work in all platform versions. The default shortcuts should not interfere with the context's (browser, electron/native, operating system) existing behaviour and shortcuts.
Ideally the shortcuts are customisable in Settings but this is not required.
Ideas for other shortcuts/actions highly welcome!

important: some help page where these are documented :)


45 min call with VB

See detail in private repo here: LINK

Call has been done - now editing transcript for PII for public publishing


#602: Support addition of multiple players at once

Resolves #602

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

18 of 18 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.004%) to 96.199%

Totals

Change from base Build<PHONE_NUMBER>:
0.004%

Covered Lines:
8750

Relevant Lines:
8839

💛  - Coveralls


The CETL_NODISCARD should be moved to cetl.hpp and then attribute.hpp should be removed

          The CETL_NODISCARD should be moved to cetl.hpp and then attribute.hpp should be removed

Originally posted by @thirtytwobits in https://github.com/OpenCyphal/CETL/pull/113#discussion_r1556499149

Fixed by https://github.com/OpenCyphal/CETL/pull/122 - closing this issue.


Accessing Remix IDE from a local installation.

So, I followed the installation instructions to install Remix (as provided in this repo) and pointed my browser to http://ip.address:8080/remix/index.html. Nothing happens. This is on a Ubuntu 16.04 installation on AWS.
What am I missing?
Also, how do I get geth to connect to a private network so that I use Remix for my private network?

If you want to use Remix IDE, checkout https://github.com/ethereum/browser-solidity then npm install && npm run build && npm run serve and browser <IP_ADDRESS>:8080

Sorry, i'm getting an e500 when i run npm install.


Segfault when launching kernel

I've been trying out this crate, and I can't get an example kernel to launch. I ported this example to Rust: https://github.com/ROCm/HIP/blob/master/samples/0_Intro/module_api/defaultDriver.cpp
This is what the code looks like:
use hip_runtime_sys::{
    hipCtxCreate, hipCtxDestroy, hipDeviceGet, hipDeviceptr_t, hipFree, hipFunction_t, hipInit,
    hipMalloc, hipMemcpyDtoH, hipMemcpyHtoD, hipModuleGetFunction, hipModuleLaunchKernel,
    hipModuleLoad, hipModule_t,
};

const LEN: usize = 64;
const SIZE: usize = LEN << 2;

fn main() {
    let mut a: Vec<f32> = vec![0.0; LEN];
    let mut b: Vec<f32> = vec![0.0; LEN];

    for i in 0..LEN {
        a[i] = (i as f32) * 1.0;
        b[i] = 0.0;
    }
    let file_name = std::ffi::CString::new("examples/vcpy_kernel.code").unwrap();
    let kernel_name = std::ffi::CString::new("hello_world").unwrap();

    unsafe {
        hipInit(0);
        let mut device = 0;
        hipDeviceGet(&mut device, 0);

        let mut context = std::ptr::null_mut();
        hipCtxCreate(&mut context, 0, device);

        let mut ad: hipDeviceptr_t = std::ptr::null_mut();
        let mut bd: hipDeviceptr_t = std::ptr::null_mut();
        hipMalloc(&mut ad, SIZE);
        hipMalloc(&mut bd, SIZE);

        hipMemcpyHtoD(ad, a.as_mut_ptr() as *mut std::ffi::c_void, SIZE);
        hipMemcpyHtoD(bd, b.as_mut_ptr() as *mut std::ffi::c_void, SIZE);

        let mut module: hipModule_t = std::ptr::null_mut();
        hipModuleLoad(&mut module, file_name.as_ptr());

        let mut function: hipFunction_t = std::ptr::null_mut();
        hipModuleGetFunction(&mut function, module, kernel_name.as_ptr());

        let mut args: [*mut std::ffi::c_void; 2] =
            [ad as *mut std::ffi::c_void, bd as *mut std::ffi::c_void];

        hipModuleLaunchKernel(
            function,
            1,
            1,
            1,
            LEN as u32,
            1,
            1,
            0,
            std::ptr::null_mut(),
            args.as_mut_ptr(),
            std::ptr::null_mut(),
        );

        hipMemcpyDtoH(b.as_mut_ptr() as *mut std::ffi::c_void, bd, SIZE);

        let mismatch_count = a.iter().zip(b.iter()).filter(|(a, b)| a != b).count();

        if mismatch_count == 0 {
            println!("PASSED!");
        } else {
            println!("FAILED!");
        }

        hipFree(ad);
        hipFree(bd);
        hipCtxDestroy(context);
    }
}

The linked C++ example runs fine for me, so I think my HIP/ROCm installation is not the issue. But the Rust version segfaults on calling hipModuleLaunchKernel, 4 calls into libamdhip64.so.5. I can't see where exactly, since I don't have debug symbols for libamdhip64.so.5.
The kernel is identical to the example (literally copied the compiled kernel), so that shouldn't be the issue. I thought maybe the problem is that the C++ example uses hipcc also to compile the host code, and hipcc sets some special clang flags, but compiling the host code of the C++ example with clang++ works just as well.
Does the Rust example, or any other Rust example, work for you?

Modifying the example slightly so that the arguments to the kernel are passed in the more complicated "extra" parameter works for some reason:
use hip_runtime_sys::{
    hipCtxCreate, hipCtxDestroy, hipDeviceGet, hipDeviceptr_t, hipFree, hipFunction_t, hipInit,
    hipMalloc, hipMemcpyDtoH, hipMemcpyHtoD, hipModuleGetFunction, hipModuleLaunchKernel,
    hipModuleLoad, hipModule_t,
};

const LEN: usize = 64;
const SIZE: usize = LEN << 2;

fn main() {
    let mut a: Vec<f32> = vec![0.0; LEN];
    let mut b: Vec<f32> = vec![0.0; LEN];

    for i in 0..LEN {
        a[i] = (i as f32) * 1.0;
        b[i] = 0.0;
    }
    let file_name = std::ffi::CString::new("examples/vcpy_kernel.code").unwrap();
    let kernel_name = std::ffi::CString::new("hello_world").unwrap();

    unsafe {
        hipInit(0);
        let mut device = 0;
        hipDeviceGet(&mut device, 0);

        let mut context = std::ptr::null_mut();
        hipCtxCreate(&mut context, 0, device);

        let mut ad: hipDeviceptr_t = std::ptr::null_mut();
        let mut bd: hipDeviceptr_t = std::ptr::null_mut();
        hipMalloc(&mut ad, SIZE);
        hipMalloc(&mut bd, SIZE);

        hipMemcpyHtoD(ad, a.as_mut_ptr() as *mut std::ffi::c_void, SIZE);
        hipMemcpyHtoD(bd, b.as_mut_ptr() as *mut std::ffi::c_void, SIZE);

        let mut module: hipModule_t = std::ptr::null_mut();
        hipModuleLoad(&mut module, file_name.as_ptr());

        let mut function: hipFunction_t = std::ptr::null_mut();
        hipModuleGetFunction(&mut function, module, kernel_name.as_ptr());

        let mut args = Args {
            _ad: ad as *mut std::ffi::c_void,
            _bd: bd as *mut std::ffi::c_void,
        };

        let mut size = std::mem::size_of::<Args>();

        let mut config = [
            0x1 as *mut std::ffi::c_void,
            std::ptr::addr_of_mut!(args) as *mut std::ffi::c_void,
            0x2 as *mut std::ffi::c_void,
            std::ptr::addr_of_mut!(size) as *mut std::ffi::c_void,
            0x3 as *mut std::ffi::c_void,
        ];
        hipModuleLaunchKernel(
            function,
            1,
            1,
            1,
            LEN as u32,
            1,
            1,
            0,
            std::ptr::null_mut(),
            std::ptr::null_mut(),
            config.as_mut_ptr(),
        );

        hipMemcpyDtoH(b.as_mut_ptr() as *mut std::ffi::c_void, bd, SIZE);

        let mismatch_count = a.iter().zip(b.iter()).filter(|(a, b)| a != b).count();

        if mismatch_count == 0 {
            println!("PASSED!");
        } else {
            println!("FAILED!");
        }

        hipFree(ad);
        hipFree(bd);
        hipCtxDestroy(context);
    }
}
#[repr(C)]
struct Args {
    _ad: *mut std::ffi::c_void,
    _bd: *mut std::ffi::c_void,
}

Still no idea why the original code segfaults.

Hi @dengelt - sorry for this very delayed reply! I don't think GitHub was watching the repo for me, or something.
I'd like to help with this issue, but I'll need some time to think about it. I hope to get back to you in a weekend or two.

Apologies again, but I don't know how to proceed with this. It could be an issue for rocm, but that doesn't seem likely, and I can't see any functional difference between the initial Rust example and the C++ example.
I did spot some curiosities, though. On my machine (5700XT GPU, rocm 6.0.2, up-to-date Arch linux), the Rust code segfaults in /usr/src/debug/hip-runtime-amd/clr-rocm-6.0.2/rocclr/platform/kernel.cpp:102, and I poked around in there with a debugger (rocgdb).
C++ modification:
    printf("%p %p %p\n", args, Ad, Bd);

C++ output:
0x7fffffffde50 0x7fffea200000 0x7fffea201000

Thread 1 "a.out" hit Breakpoint 1, amd::KernelParameters::set (this=0x55555597fd40, index=0, size=8, value=0x7fffffffde28, svmBound=true) at /usr/src/debug/hip-runtime-amd/clr-rocm-6.0.2/rocclr/platform/kernel.cpp:100

Rust modification:
        let mut args: [*mut std::ffi::c_void; 2] =
            [ad as *mut std::ffi::c_void, bd as *mut std::ffi::c_void];
        dbg!(&args);
        dbg!(args.as_mut_ptr());

Rust output:
[src/main.rs:75:9] &args = [
    0x00007fffea200000,
    0x00007fffea201000,
]
[src/main.rs:76:9] args.as_mut_ptr() = 0x00007fffffffd788

Thread 1 "issue-3" received signal SIGSEGV, Segmentation fault.
0x00007ffff6b0da6c in amd::KernelParameters::set (this=0x555555cf74b0, index=0, size=8, value=0x7fffea200000, svmBound=true)
    at /usr/src/debug/hip-runtime-amd/clr-rocm-6.0.2/rocclr/platform/kernel.cpp:102
102           LP64_SWITCH(uint32_value, uint64_value) = *(LP64_SWITCH(uint32_t*, uint64_t*))value;
(gdb)

Observations:

The device buffers are pretty consistently allocated to these addresses during my tinkering
In the C++ output, it looks like value passed to amd::KernelParameters::set is more similar to the pointer to the args than the device buffers (i.e. Ad or ad). But on the Rust side, it's almost like args gets de-referenced and the device buffers are used as value.
When running the debugger on the Rust code, attempting to use the witnessed C++ offsets for value on args makes the code progress, but a segfault still happens down the line.


[Recomendation] include instructions for Apache2 configuration to support WonderCMS

Issue:  Ubuntu based LAMP servers create a 404 error upon initial instalation.
Discussion:  The Apache Log will cite issues with the re-write engine. This issue is seperate from .htaccess and extends byond already posted instalation instructions.
STEPS TO RECREATE: Install LAMP on a new instance. Install WonderCMS. Direct browser to localhost/wondercms
Browser will show 404 error dispite .htaccess confingured correctly.
The issue is with the Apache2 config file located in /etc/apache2/apache2.conf
The system administrator needs to locate their localhost directory within the config file and change
AllowOverride None to AllowOverride All
This is what an example configured directory would look like:
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Recomendation: Include steps to overcome issue within the troubleshooting steps in the wiki or include the configuration change in the default instalation instructions.

Hi @TheMagicNacho.
Thanks for providing valuable info and making it easier for everyone else that runs into the same issue.
This has now been added to the troubleshooting section of the wiki:

https://github.com/robiso/wondercms/wiki/List-of-common-errors
https://github.com/robiso/wondercms/wiki/Apache2-configuration---404-page-errors-on-Ubuntu-LAMP

Closing issue, feel free to comment or to continue the discussion.

Hi @TheMagicNacho.
Thanks for providing valuable info and making it easier for everyone else that runs into the same issue.
This has now been added to the troubleshooting section of the wiki:

https://github.com/robiso/wondercms/wiki/List-of-common-errors

https://github.com/robiso/wondercms/wiki/Apache2-configuration---404-page-errors-on-Ubuntu-LAMP

Closing issue, feel free to comment or to continue the discussion.

@robiso no more issues here. I’m glad to help.


Any benefits while using a single GTX 1080 Ti?

Hi, newbie here. Reading the API, I've noticed that memory and speed improvements come from ZeRO. I also read that ZeRO only works with FP16. I read that GTX 1080 Ti has a very low FP16 throughput and using it is very inefficient. Would Deepspeed provide a significant memory or speed improvement using a single GTX 1080 Ti? I'm using Transformers to model sequential data, moderate sequence length (512-1024) and small batch size (4-6). Thanks.

I also wonder what the example of deepspeed can run with 1080ti


Overflow icon disappears when going into collapsed view.

Expected behavior
When going into collapsed view while resizing the browser window, there is a small window ~4px before the nav is changed to the collapsed view where the overflow icon goes missing but the second nav item is still listed without any indications that there are more nav items available.
Environment:
App-Nav: Master/Latest Pull today
Browser: Chrome
Screenshots :
Overflow icon present at 620px with the overflow dropdown open:

Overflow icon missing between ~620px-617px width with only 2 nav items showing before collapse happens:

/cc @davidrleonard

No longer able to reproduce in the latest pull (7/21) from master.
Closing this out.


Sequential WriteAsync calls break characteristic.ValueUpdated event

To help us fix your issue, please provide the information in the below template. If something causes a crash, provide as much information as you can gather.
Just imagine: we do not know what you are doing!

Note: There is often little we can do without a minimal reproducible sample of the issue, so please provide that in a standalone git repository and link it here.

Steps to reproduce
I am doing continuous sequential reads from a device by writing a command and waiting for the characteristic to update with a read value from different device parameters.
1.
Connect to device, get the relevant characteristic and subscribe to updates and start updates:
characteristic.ValueUpdated += Characteristic_ValueUpdated;
await characteristic.StartUpdatesAsync();
2.
Send read command
await characteristic.WriteAsync(buffer);
3.
Wait for Characteristic_ValueUpdated to be invoked and then continue with another
await characteristic.WriteAsync(buffer);
Expected behavior
It should be possible to continuously read values from a characteristic as it is in version 2.2.0-pre1 and earlier versions.
Actual behavior
The characteristic.ValueUpdated event randomly stops being invoked after somewhere between 5 and 20 read requests.
This behavior was introduced in version 2.2.0-pre2.
Crashlog
Configuration
Version of the Plugin: 2.2.0-pre2 to 2.2.0-pre5
Platform: Android 11.0 - API 30
Device: Samsung SM-A325F

Hi @RobertLinak,
I'm the friendly issue checker.
Thanks for using the issue template :star2:
I appreciate it very much. I'm sure, the maintainers of this repository will answer, soon.

See also the discussion in PR #614, in particular:

https://github.com/dotnet-bluetooth-le/dotnet-bluetooth-le/pull/614#issuecomment-1300469397
https://github.com/dotnet-bluetooth-le/dotnet-bluetooth-le/pull/614#issuecomment-1301841247

Looking into the git history between 2.2.0-pre1 (working) and 2.2.0-pre2 (not working), I suspect that this might be related to #376. @RobertLinak, do you think this could be the culprit? The relevant commits are 4fd481f4462a25b96492dfca799c4f3bf6603d02, 0447b9feffe730034c93aac925f69768709f1d69 and  5f41b691447992eac9e3d2abf8f2ae4fe5c88399.
I haven't looked into it very deeply, but possibly it's more of a change of behavior than an actual bug?

https://github.com/dotnet-bluetooth-le/dotnet-bluetooth-le/issues/276#issuecomment-581126374

Looking into the git history between 2.2.0-pre1 (working) and 2.2.0-pre2 (not working), I suspect that this might be related to #376. @RobertLinak, do you think this could be the culprit? The relevant commits are 4fd481f, 0447b9f and 5f41b69.
I haven't looked into it very deeply, but possibly it's more of a change of behavior than an actual bug?

Yes this definitely looks like it could be the reason.
Would be nice if this experimental feature could be enabled/disabled as stated in #376 but I dont see anything relevant in the sample project and I am not able see the code changes made in 2.2.0-pre2 either.

#276 (comment) So this looks to be the exact problem Im having, and it looks to be ignored since 2020 from what I can see.

The problem here is that @xabre basically retired (or paused?) from being the lead maintainer of this repo, and the changes for #376 were among the last things he did (before he practically disappeared).

So I found this https://github.com/dotnet-bluetooth-le/dotnet-bluetooth-le/commit/4fd481f4462a25b96492dfca799c4f3bf6603d02
///summary
/// Platform specific main thread invocation. Useful to avoid GATT 133 errors on Android.
/// Set this to NULL in order to disable main thread queued invocations.
/// Android: already implemented and set by default
/// UWP, iOS, macOS: NULL by default - not needed, turning this on is redundant as it's already handled internaly by the platform
/// summary
public static Action MainThreadInvoker { get; set; }
So I tried setting
Plugin.BLE.Abstractions.Utils.TaskBuilder.MainThreadInvoker = null;
But it does not solve the problem.

So I tried setting Plugin.BLE.Abstractions.Utils.TaskBuilder.MainThreadInvoker = null;
... This actually does solve the problem when doing it after a connection is made to a device. So I guess that is the solution to this issue then.

Awesome, great to hear that 👍  🎉


Investigate DMN standard changes up to 1.5

Context
DMN standard is evolving and currently there is version 1.5 that our team is planning to support with #220.
Aim of this issue is to summarize changes in particular versions 1.3, 1.4. and 1.5 that were not implemented in the KIE DMN editor yet.
DMN 1.3
Analysis of this were done during work on #3 and we reported these outstanding work to support 1.3 by editor:
- [ ] #4
- [ ] #48

DMN 1.4
No changes needed according to the https://www.omg.org/spec/DMN/1.4/PDF/changebar
DMN 1.5
List of changes according to the https://www.omg.org/spec/DMN/1.5/PDF/changebar
Input data representation
input data visual representation as file with folded corner possible

The default expression language URI
The default expression language URI is updated slightly to be https://www.omg.org/spec/DMN/20230324/FEEL/
Import empty names
Multiple imports with empty import names are allowed in the default namespace and their
precedence is resolved according to their definition order.
When the import name attribute is an empty string, the elements are imported in the default namespace of the
model. When a name collision occurs between an element in the default namespace and an imported element,
the imported element does not replace the one already in the default namespace while the elements without
name collision are imported.
Unused InformationRequirements
Tracked as https://issues.omg.org/issues/DMN15-88. We should verify the Snadbox problems tab do not report unused InformationRequirements as a problem.
ItemDefinition allowedValues deprecation
allowedValues attribute is deprecated from 1.5 secification version:
. The allowedValues
attribute has been deprecated as of DMN 1.5 and replaced with the typeConstraint attribute. The
typeConstraint attribute differs from allowedValues by not projecting onto collection elements but
directly constraining the collection

We should check what is the consequence for the constraint editor https://issues.omg.org/issues/DMN15-135
Scientific numbers
Editor should support scientific numbers notation, e.g. 1.23e-45
https://issues.omg.org/issues/DMN15-107
Range built-in function
should be offered as part of monaco autocompletions.

https://issues.omg.org/issues/DMN15-99
list replace built-in function
should be offered as part of monaco autocompletions.

https://issues.omg.org/issues/DMN15-143
Older DMN Outstanding tasks
- [ ] https://github.com/kiegroup/kie-issues/issues/232
- [ ] https://github.com/kiegroup/kie-issues/issues/233
- [ ] https://github.com/kiegroup/kie-issues/issues/234
- [ ] https://github.com/kiegroup/kie-issues/issues/235
- [ ] https://github.com/kiegroup/kie-issues/issues/236
- [ ] https://github.com/kiegroup/kie-issues/issues/237
- [ ] https://github.com/kiegroup/kie-issues/issues/238
- [ ] https://github.com/kiegroup/kie-issues/issues/185

Hello,
sorry if this is not the right place to have this discussion, but I was passing by when I saw the words "DMN" and "1.5" all together. Are you foreseeing in this kie-issue the open issues that DMN tf will tackle for v1.5? DMN 1.4 has been released just a few days ago, so I was wondering what are you going to tackle with regards to v1.5. Just asking as I'm collaborating on several projects that are using DMN and some of the developers are curious about this.
Thanks in advance!

@jizuzqui you are correct. 1.5 DMN version is in early phase . This issue was to get some initial preview of the scope of changes needed. I can recommend just to watch the changebar linked in the issue description.
The same we will done once 1.5. is officially released.


fix for issue 399

Issue #, if available:
#399
Description of changes:
removes unnecessary creation of default client when a client already exists
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Should also fix #353


AUI-2820

@mairatma, can you go into detail about you comment here: https://github.com/thiago-rocha/alloy-ui/pull/94#issuecomment-235664433

an aria-invalid attribute that is not being removed as before

Just started reviewing :) :octocat: Sent from GH.


Module Import Error

I have a module inside the project directory, in that module the class is implemented which contains queue attribute and perform method.
I started worker from shell.
Then I started the python script which enqueue the task, I got the following error:
Traceback (most recent call last):   File "/usr/local/lib/python3.4/dist-packages/pyres/worker.py", line 256, in process     return job.perform()   File "/usr/local/lib/python3.4/dist-packages/pyres/job.py", line 67, in perform     payload_class = self.safe_str_to_class(payload_class_str)   File "/usr/local/lib/python3.4/dist-packages/pyres/__init__.py", line 93, in safe_str_to_class     mod = my_import(module)   File "/usr/local/lib/python3.4/dist-packages/pyres/__init__.py", line 81, in my_import     mod = __import__(name) ImportError: No module named 'sun_logs'
I manually added my project path to python path but still same error, Please suggest some solution for this error.

I resolved the issue as I installed the module as package, script worked fine.


Mention to modify package.json file

I forgot to mention that it has to be done in the package.json lol

Ahh right-o, thanks


[Android] Zoomed views in android.

Views are zoomed in Android devices sometimes. Happens on all the android devices. Killing the app solves the issues.
React Native version: 0.60.5

Steps To Reproduce

Not sure how to reproduce it as it happens randomly. Killing the app fixes this problem though. I tried the case where changing the font size or display size by keeping the app in background. But no luck.

Actual behaviour :

Expected behaviour :

@cpojer any help regarding this?

Got reproduced and solved. Closing this.

@saketkumar  Getting same issue on react-native 0.63.3.

@saketkumar  Getting same issue on react-native 0.63.3.


Static annotation rendering

This provides static rendering of the annotation spec in SVG (currently lacking text support).   There are currently stubs for displaying annotations inside girder's item view, but for the moment, I am implementing geojs integration in a branch inside HistomicsTK.  I think eventually some of that code should move here to create a reusable "large image viewer" component.
The rest of my work for next week's demo video will go inside a branch in HistomicsTK.

LGTM.
My only question is about the use of the ext directory, instead of perhaps using extra for a similar purpose. Let's discuss that in-person, @jbeezley .


Add missing pub visibility modifiers

Small fix for a few missing pub modifiers.

Looks like this might need the yup-hyper-mock update to work on Travis, can you rebase against the newly merged master to restart travis?

Done! :+1:

Closing this since these structs are in slack-rs-api now.


Time Zero MarshalJSON / UnmarshalJSON produces a different object

It seems that marshaling and unmarshaling a zero time produces an object that is different from the original:
func TestMarshalUnmarshalJSON(t *testing.T) {
        var expected, parsed Time

        body, err := expected.MarshalJSON()
        if err != nil {
                t.Errorf("json.Marshal error = %v", err)
        }

        err = parsed.UnmarshalJSON(body)
        if err != nil {
                t.Errorf("json.Unmarshal error = %v", err)
        }

        if !reflect.DeepEqual(expected, parsed) {
                t.Errorf("json error, expected = %#v, parsed = %#v", expected, parsed)
        }
}

--- FAIL: TestMarshalUnmarshalJSON (0.00 seconds)
        time_test.go:807: json error, expected = time.Time{sec:0, nsec:0x0, loc:(*time.Location)(nil)}, parsed = time.Time{sec:0, nsec:0x0, loc:(*time.Location)(0x6cd2a0)}

Parsing a time will get a non-zero location. This is working as intended. You shouldn't use == to compare time.Time's.

@minux then this looks like a DeepEqual bug

No. DeepEqual is documented to use ==.

@minux exactly, but as you said, it shouldn't if that's not the way to compare Time

@simon3z wrong conclusion.

DeepEqual uses ==
time.Times should not be compared with Equal, not ==
These both cannot change because of the Go 1 compatibility promise
Therefore DeepEqual should not be used if the structures you're comparing contain time.Times

If you need a DeepEqual that knows about time.Times, you will need to write it.

@cespare probably a better design would be something like:
type compare func(a1, a2 interface{}) int

DeepCompare(a1, a2 interface{}, fn compare)

do you think it could be something I could write/include in the reflect package?

@simon3z Better deep comparison is interesting, but let's take this to the golang-nuts mailing list.

@simon3z If you really care about comparing times directly (part of larger struct), you can get away by keeping times in the same timezone (like http://play.golang.org/p/GhvxWMgk-x), but it just workarounds the fact they should be compared with http://golang.org/pkg/time/#Time.Equal.


Added card component

As proposed in #502

Can you please organize your properties in the propTypes method such as in this example. Thank you!

Here you go :smile:

Hi @chadrien, sorry for not getting back to your PR sooner. Can you please pull the latest master so that it can be merged?

Replaced with #857


Remove pkg/systemd from validate-lint

Following #15330, pkg/systemd doesn't exists anymore, removing it from validate-lint 🐧. This is a tiny tiny thingy just to avoid this in build :
---> Making bundle: validate-lint (in bundles/1.8.0-dev/validate-lint)

pkg/archive/example_changes.go is in package main, not archive

cannot find package "pkg/systemd/*.go" in any of:
	/usr/local/go/src/pkg/systemd/*.go (from $GOROOT)
	/go/src/pkg/systemd/*.go (from $GOPATH)
	/go/src/github.com/docker/docker/vendor/src/pkg/systemd/*.go
Congratulations!  All Go source files have been linted.

Another question while I'm on validate-lint, what about "pkg/archive/example_changes.go is in package main, not archive" ? It's an example, that's why the error, should we just ignore it, etc… ?
It's a real small change and in the end, we will revisit the file to not explicitly list all the package to lint, so feel free to close if not needed 🐸.
Signed-off-by: Vincent Demeester<EMAIL_ADDRESS>

LGTM

LGTM thanks @vdemeester ;)

LGTM


feat: init turbo, move starter kit into apps/web

feat: init turbo, move starter kit into apps/web
feat: add tooling packages
feat: use shared eslint package in apps/web
feat: use shared prettier config in apps/web
and run format
feat: add apps/web-specific turbo.json

#351  👈
main

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


[5.6] Added PhpDoc to Log Facade

since in documentation https://laravel.com/docs/5.6/logging we have used this methods.

Nice @TBlindaruk !


Javascript

#Javascript
##User Story
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
##Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN I can see the four topics I learned listed along with a suggestion on what I should study first

Javascript added successfullt - if statement and function


New way to invoke onListening

You need to call server.server.address() since server.listeningApp is no longer available in webpack-dev-server 4.0.0+

The current doc targets the latest webpack-dev-server, i.e. v3. v4 is still in beta as far as I know.

I'm closing it as it's already addressed per https://webpack.js.org/configuration/dev-server/#devserveronlistening. Thanks anyway.


x/net/trace: data race when freeing traces

This bug is on go version go1.14.4 linux/amd64 with x/net from master (techincally 627f9648deb96c27737b83199d44bb5c1010cbcf).
There is a race condition between event recycling and trace clearing when the trace has a recycler set with SetRecycler and the number of events in tr.events is <= 4 (len(tr.eventBuf)).  When a trace is initialized, tr.events is set to tr.eventsBuf[:0].  In unref, the freeing logic starts a recycling function over each event in a separate goroutine by retaining a reference to the tr.events slice, and then calls freeTrace and then reset to write a zero value to each element of the eventsBuf array.  When the number of events added to the trace fits in the space reserved by tr.eventsBuf, tr.events just aliases that buffer, and so the order of reads and writes is non-deterministic.  The freeing could run first, and thus the recycler function sees the zero-valued events written by reset, or the recycling goroutine could run first, in which case the recycling performs as expected.
https://github.com/golang/net/pull/75 (https://go-review.googlesource.com/c/net/+/238302) adds a test and a fix for this.  If you patch in only the test and run "go test -race ." in the trace directory, you'll see that the race detector detects this data race.  My fix makes a copy of tr.events if the number of events is less than or equal to the length of tr.eventsBuf, so that the recycler can run at its leisure.  Obviously this is not ideal, as the whole point of eventsBuf and the trace pool is to avoid allocations.  However, I get the feeling that people don't actually use event recyclers, or they would have already noticed that events don't get recycled and filed a bug like this ;)
Other options that could be considered are doing the entire free asynchronously (letting the refcount hit 0, doing recycling and freeing in the background, and then pushing the trace into the pool that newTrace draws from), or just doing the recycling synchronously (which probably breaks existing code that did something silly like tr.SetRecycler(func (e interface{}) { ch <- e }); tr.Finish(); <-ch).  Let me know which approach you prefer, and I'll update the PR accordingly.

CC @pjweinb


Broken link on a demo for "Gravnd Zero" theme

The demo link sends you to downloads and other phishing scam type websites.

Weird, it's actually commented out, but somehow that's ignored.. oh well, fixed for next update...


[Suggestion] Moving docs translations into separate repository

The documentation of FastAPI is brilliant, but IMO mix all the translations in one repository is not a good idea.
It's very user-friendly to have so many translations support. However, when the community grows there will be more people who want to help translate the docs into their language, which means dozens of PRs per language will be created. Besides, when there is one minor change in the English version of the documentation, there will be ten or more PRs for the update of translations. I would recommend moving the translations into a separate repository.
Currently, the PR list (and commit history) is a bit occupied by translations (120/190), it may inconvenience people who want to contribute to the code (similarly, the issue tracker is occupied by questions #2228).

@tiangolo what are your thoughts about the suggestion?

@tiangolo what are your thoughts about the suggestion?


Test env variables for user name and email in Build docs action

[ ] Have you provided a meaningful PR description?
[ ] Have you added a test, reproducer or referred to issue with a reproducer?
[ ] Have you tested your changes locally for CPU and GPU devices?
[ ] Have you made sure that new changes do not introduce compiler warnings?
[ ] Have you checked performance impact of proposed changes?
[ ] If this PR is a work in progress, are you filing the PR as a draft?

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.1%) to 42.054%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
12741

Relevant Lines:
19161

💛  - Coveralls


Simple Browser doesn't permit downloads

Type: Bug

Use Simple Browser to visit a webpage that offers a download.
Attempt the download.
Nothing happens :bug:

I plan to submit a PR.
VS Code version: Code - Insiders 1.80.0-insider (f3aa9a201b2455e6556797e8ffb7145d77adb792, 2023-06-14T09:02:23.566Z)
OS version: Windows_NT x64 10.0.22621
Modes:

This bug has been fixed in the latest release of VS Code Insiders!
@gjsjohnmurray, you can help us out by commenting /verified if things are now working as expected.
If things still don't seem right, please ensure you're on version b4952d14a465572e33f0635ef58de089227b8876 of Insiders (today's or later - you can use Help: About in the command palette to check), and leave a comment letting us know what isn't working as expected.
Happy Coding!

/verified


Potential bug on canonical URL detection

We heard from NASA that in the situation where the HTTP endpoints are off, but the HTTPS endpoints have cert errors, the "canonical URL" is the HTTP version, which is confusing. I haven't verified yet.
cc @egyptiankarim for details or an example hostname

I think I might have stumbled upon a way to reproduce this, or something very similar as I was working on my new github.com/llnl/hscs repo.
In the el7/ directory in that repo is a Vagrantfile to spin up a CentOS 7 + Apache 2.4 configuration (it's still a work in progress and I need to document things in the readme a bit better still). If you then try to scan the system (I have my local /etc/hosts file set to point vagrant.local -> <IP_ADDRESS>), you'll get the behavior you describe:
$ ~/.virtualenvs/pshtt/bin/pshtt --json <IP_ADDRESS>
Error validating certificate.

}

Namely, there is a cert error, pshtt is detecting the redirect to HTTPS:
    "Redirect To": "https://vagrant.local/",
    "Strictly Forces HTTPS": true,

But the canonical url shows as http:
    "Canonical URL": "http://<IP_ADDRESS>",

There are also a whole bunch of nulls but best I can tell those are related to the cert issues (still working on that one).

Closing without a reproducible public hostname to measure this on. @egyptiankarim if this is still an issue, please feel free to re-open with an example.

Gah! Sorry. This fell off my todo list. Here're a few annotated examples I dug up:

mobile.neacc.nasa.gov - Nmap shows only 443 is listening; queries to the HTTP endpoint timeout; queries to the HTTPS endpoint resolve after some time; pshtt shows "Live = False"; pshtt shows "Canonical URL = **http://**mobile.neacc.nasa.gov"; I believe this is a pshtt timeout issue in that it's counting the target as not live, but even if that were the case (which it isn't) there should be the canonical URL is wrong; because this target is being detected as "Live = False" this is closer to #34, and I was mischaracterizing it when I first created this issue.
msonce-a.ndc.nasa.gov - Nmap shows only 443 is listening; queries to the HTTP endpoint timeout; queries to the HTTPS endpoint resolve; pshtt shows "Live = True"; pshtt reveals certificate error (resulting from a domain name mismatch); pshtt shows "Canonical URL = **http://**msonce-a.ndc.nasa.gov; this matches the original problem case pretty clearly, I think.

I used to have more examples, but a lot of them have fixed their certificates and so don't match the problem case anymore. I think ultimately this has to do with the order of tests being performed and the way we keep variables up-to-date as we go through them.

Thank you, we can work with that!


Avoiding client-side parsing errors when Gateway returns duplicate unqiueKeyPolicy in IndexPolicy (invalid json)

Description
Defense in depth - since Gateway in two incidents has returned index policy with duplicated uniqueKeyPolicy property we will always allow duplicates for container metadata
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.

Can we add a unit test covering the deserialize flow when indexPolicy or whatever property in DocumentCollection is repeated > 1 time? Also, the CHANGELOG update.


[Feature] Provide watermark plugin for univer doc

Initial checklist

[X] Is this really a problem?
[X] I have searched the Github Issues for similar issues, but did not find anything.

Problem
Provide watermark feature as https://univer.ai/zh-CN/guides/sheet/features/watermark

https://univer.ai/guides/doc/features/watermark


Use std.Build.installArtifact

I removed the run_test_cmd.step.dependOn(b.getInstallStep()) line, I wasn't sure if it was necessary. It doesn't seem to rely on anything else being installed, and the run step should work fine without it.

That's pretty much what I did in my PR :) https://github.com/zigimg/zigimg/pull/113

Already did in #113


Configurator

Create an object that is a somewhat general factory of configured objects. Don't replace code within the session just yet. This can be something that operates in parallel for a bit and aids the next stage of development, and when it's well integrated then slide it into the session.
The session could be initialized by the by the configurator even...

Actually....looking at some of the basic helper functions I'm not entirely convinced this is needed right now...though might be a good thing to keep in mind in the future. It have get_object(config_path) helper functions in the Object class module. I think that might be all I need at this stage...

Getting deeper into the development of the RealTimeTriangulator and it's becoming clear that I would benefit from having things split out more. The session and the config are two tightly coupled, I think. One is about holding the current state of what the user is interact with in the GUI, the other is about storage and retrieval of objects. These are two different jobs and they shouldn't be so messily comingled...

this got worked up in a functional but limited way as part of #249.


Optimize sorted index

Optimize the roaring bitmap generation for sorted indexes by adding
ranges directly instead of adding docIds one by one.
Performance impact of adding 1000 values is about 133x faster and is likely to have a large impact :
Benchmark                                             Mode      Cnt         Score    Error  Units
BenchmarkRoaringBitmap.addFixed                     sample  3956823       128.876 ±  9.871  ns/op
BenchmarkRoaringBitmap.addInLoop                    sample  3520867     17109.083 ± 33.184  ns/op

For one million values, it's over 100000x faster (900 nanoseconds vs 12.5 milliseconds):
Benchmark                                             Mode      Cnt         Score       Error  Units
BenchmarkRoaringBitmap.addFixed                     sample  4475444       972.145 ±    16.770  ns/op
BenchmarkRoaringBitmap.addInLoop                    sample     9463  12688404.668 ± 55250.599  ns/op

For single value columns (eg. days since epoch), they count as a single value sorted column, so this should have a large impact for queries that have those.

Codecov Report

Merging #1753 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1753      +/-   ##
==========================================
+ Coverage   68.02%   68.03%   +0.01%
==========================================
  Files         834      834
  Lines       40539    40538       -1
  Branches     5336     5335       -1
==========================================
+ Hits        27578    27582       +4
- Misses      11101    11102       +1
+ Partials     1860     1854       -6

Impacted Files
Coverage Δ

...gment/index/readers/SortedInvertedIndexReader.java
76.47% <100%> (-1.31%)
:arrow_down:

...in/pinot/core/query/pruner/ValidSegmentPruner.java
57.14% <0%> (-28.58%)
:arrow_down:

...e/operator/dociditerators/MVScanDocIdIterator.java
49.25% <0%> (-14.93%)
:arrow_down:

...pinot/core/operator/docidsets/OrBlockDocIdSet.java
84.93% <0%> (-13.7%)
:arrow_down:

...ot/core/query/pruner/ColumnValueSegmentPruner.java
84.48% <0%> (-3.45%)
:arrow_down:

...inot/core/operator/docidsets/AndBlockDocIdSet.java
57.24% <0%> (-1.38%)
:arrow_down:

...filter/SortedInvertedIndexBasedFilterOperator.java
78.37% <0%> (-1.36%)
:arrow_down:

...manager/realtime/LLRealtimeSegmentDataManager.java
70.13% <0%> (+0.77%)
:arrow_up:

...lter/predicate/NotInPredicateEvaluatorFactory.java
81.73% <0%> (+0.96%)
:arrow_up:

...pby/NoDictionarySingleColumnGroupKeyGenerator.java
92.92% <0%> (+1.01%)
:arrow_up:

... and 9 more

Continue to review full report at Codecov.

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

Actually, I think we don't even use the inverted index for sorted columns since we have a specialized operator for them. If we ever use the inverted index for it, then it should be faster. :grin:


[CT-2917] Add ability to specify the format for fixtures and use csv files for inputs/expected in addition to yaml

Description
The initial implement of unit testing specifies input rows and expected rows via yaml dictionaries. Some users of this feature would probably prefer to use csv files, particularly for tables with many columns.  Enable a "format" specifier for input and expected fields and implement ingesting and running csv files.
We need to decide how to specify these csv files, where they would live (in the "models" directory feels a bit wrong), etc.
For test coverage purposes, we may want to store the column names somewhere. It may also be necessary or useful to specify the column data types.

This capability should probably also be available for expect fixtures in addition to given input fixtures. We'll need to generalize the type of expect to support this (and unify it with the parsing of InuptFixtures, as it is currently simply a List[Dict[str, Any]]
Here's a first stab at what this spec could look like:
unit:
  - model: my_model
    tests:
      - name: test_my_model
        given:
          - input: ref('my_model_a')
            format: csv_file # optional
            rows: path/to/model_a_fixture.csv
          - input: ref('my_model_b')
            rows: #default
              - {id: 1, b: 2}
              - {id: 2, b: 2}
        expect:
          format: csv #format can also be applied to expected
          rows: """
          c
          3
          """

But its worth considering whether the format config would be applied at the fixture (input or expected) level, as above --
or at the test (suite?) level, for example:
unit:
  - model: my_model
     config:
       format: csv_file #applies to all fixtures in tests for my_model
    tests:
      - name: test_my_model
        config:
          format: csv_file #applies to all fixtures in test_my_model
        given:
          - input: ref('my_model_a')
            rows: path/to/fixture.csv
          - input: ref('my_model_b')
            rows: path/to/fixture_b.csv
        expect:
          rows: path/to/expected_model.csv

either way, should a single test case be able to use multiple different input formats? for example, input: ref('my_model_a') uses format: dicts and input: ref('my_model_b') uses csv_file? i think that variability within a test case could reduce readability but there may be valid use cases to support it.

A few thoughts here, in somewhat of a random order:
The default for format is an "inline list of dictionaries" - what is the appropriate explicit name for this? I see @MichelleArk mentioned format: dicts as an option - I feel good about this, unless anyone has strong opinions otherwise.
I'm curious about the implications for using something other than rows for formats other than dicts - what if format: dicts used rows, and format: csv_file used path?
How do you feel about specifying the path to the csv file (ex: path: path/to/model_a_fixture.csv) vs. just specifying the name of the fixture file (ex: filename: model_a_fixture.csv) or even something akin to a docs block (ex: rows: {{ fixture('model_a_fixture')). Do we imagine a future format where we allow people to specify multiple fixtures in a single csv file?
I think there could be some confusion with specifying the file path - is it the relative path? the path from the root directory?
Should we havea unit-paths config in the dbt_project.yml similar to test-paths - by default maybe this is a new subfolder unit/, but folks could override it if they wanted to specify a different location for fixtures like tests/unit or fixtures/.
I think we should definitely support format: csv_file - format: csv for inline csvs seems less important to me, though curious other folks' opinions on this.

But its worth considering whether the format config would be applied at the fixture (input or expected) level, as above --
or at the test (suite?) level

In the same vein, is the format config something people would want to override at the dbt_project.yml file level?
#dbt_project.yml
unit:
    format: csv_file

I do think we should support variability of formats within a single unit test.

    format: csv
    fixture: my_model_fixture

    format: csv
    rows: """
          c
          3
          """

Split out the format: csv piece in https://github.com/dbt-labs/dbt-core/issues/8626. Let's continue refining the fixture spec here.

From refinement:
If I have a csv file - tests/fixtures/my_model_a_fixture.csv - this is the definition of my fixture named my_model_a_fixture (similar to how if I have a sql file models/my_model_a.sql that is the definition of my model named my_model_a), and I can reference that fixture in my yml with the file name:
unit-tests:
  - name: test_my_model
    model: my_model
    given:
      - input: ref('my_model_a')
        format: csv
        fixture: my_model_a_fixture
...

This feels similar to how defined_in for model versions work:

Notes from refinement:

should we add a limit to how large the csv files can be?

resolved by #9044


Add shell.nix file

Yeah, this is just needed for people wanting to use Nix to develop (like I do on my laptop). It's not appropriate to gitignore it because it may need to be updated along with the project dependencies. However, this also doesn't affect anyone not using Nix, so it shouldn't cause any undue burden on the developers.


Stop purging some queues in AWS

Looks good, assuming these don't need to be ensured absent first

I believe the cron configuration is full managed, so I think this should work.

I believe the cron configuration is full managed, so I think this should work.

Update, I was wrong :( I'll remove the configuration manually...


libmongoclient-legacy: add 1.0.1 legacy branch (new formula).

libmongoclient-legacy: stable legacy branch of the official mongo-cxx-driver (new formula).

Added a conflicts_with to avoid bumping into Homebrew/homebrew's Libmongoclient formula.

Merged in https://github.com/Homebrew/homebrew-versions/commit/02620488304012c50203192faf962f0a5c1f4210. Thanks for your contribution to Homebrew, we appreciate it! :smiley_cat:.
For future reference please note the commit message style here ideally would have been libmongoclient-legacy 1.0.1 (new formula) and squashed commits = happy maintainers :wink:. Thanks!


Suppress new Clang warning: -Waddress-of-packed-member

When i try to compile it under macOS 10.12.4, it is failed with error below. Add  a suppress cflag can bypass it.
netinet/sctp_input.c:1734:15: error: taking address of packed member 'time_entered' of class or structure
'sctp_state_cookie' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member]
&cookie->time_entered,
^~~~~~~~~~~~~~~~~~~~
netinet/sctp_input.c:2486:10: error: taking address of packed member 'time_entered' of class or structure
'sctp_state_cookie' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member]
&cookie->time_entered, sctp_align_unsafe_makecopy,

Merged manually with an additional fix for the cmake files in https://github.com/sctplab/usrsctp/commit/598dacc5ee760f13123dcc0cf8d473f7f90b2c0b.


Pop up components keyboard interactions inside a dialog

Right now closing a dropdown or a calendar using the ESC key also closes the dialog itself.
The popup component should be able to be closed without closing the dialog.
One of the possible solutions is implementing event.stopPropagation(), but this needs to be further investigated to see if it is the best solution and if there is any other keys that may have similar issues.

The method used in #1817 to fix the issue feels inappropiate for such an specific / simple issue. We have to look for a better solution that doesn't involve adding too much code to the current and future components with keyboard interaction.


Add addStyleTag(url) API

Puppeteer has a addScriptTag(url) method, it would be nice to have a addStyleTag(url) as well to easily add external styles.
// @kevva @sindresorhus

Sounds reasonable. This is easy to implement similarly to addScriptTag implemention.
I'd appreciate if someone sends a PR for this (with a test and documentation).

Thanks for pointing to that location. Would like to take this one :).

Added a PR!


Could we get a component binding option of '>' for one way binding up to a parent?

I'm submitting a ...

[ ] bug report
[X] feature request
[ ] other (Please do not submit support requests here (see above))

Current behavior:

Right now, the only option for passing values out of a child component to a parent is the '=' two way binding which everyone agrees should be avoided. Parent values will overwrite child values in this case.
Expected / new behavior:

With a '>' binding, an author could explicitly communicate that the child is going to be providing this value and whenever it changes, it should be set to this parent property.  You also avoid the performance hit of the two way binding.
Minimal reproduction of the problem with instructions:

This fiddle gives an idea of what I'm suggesting.
Angular version: 1.6.3

Browser: all

We recommend that you use & ( provides a way to execute an expression in the context of the parent scope), which is more verbose but gives you more flexibility. I don't think a new > binding is necessary.

What I implemented in the fiddle is somewhat the opposite of '&'.  Instead of the parent providing an expression to the child, I want the child to be able to provide a callback pointer to the parent without using two way binding.
I realize there are currently ways to accomplish what is in my fiddle (since it's functional), but I believe there's room for clearer intent when creating a component binding structure that can communicate that a value is intended to be provided to the parent context from the child which currently doesn't exist.

As another example, writing a filter/data display set of components could be as easy as something like this without the need for $scope.$watch in the child component or two-way binding.
angular.module('newBinding', [])
  .component('filterableData', {
    controller: function() {},
    template: `

                 <select ng-change="$ctrl.triggerQuery(selectedSource)"
                         ng-options="sourceKey in $ctrl.sourceKeys"
                         ng-model="selectedSource"></select>
    	         <data getItems="$ctrl.triggerQuery"></data>

`
  })
  .component('data', {
    bindings: {
      getItems: '>',
      items: '<',
    },
    controller: function(resource) {
      this.$onInit = function() {
        this.getItems = (which) => this.items = resource.query(which);
      };
    },
    template: `<div ng-repeat="item in $ctrl.items">{{item.displayName}}</div>`
  });

yes

So if I'm looking at this correctly, you want your child components to expose an API in such a way that a parent can call it and execute the component's internal code to, in this case, update it's content, right ?
I don't really see the benefit over using items as the only binding (input binding- and update the array from outside the component when neccesary. This API has no need to be included in the same component that's used to visualize them.
When using a unidirectional data flow together with some kind of smart and dumb components I don't think this even has any use-case that can only be solved using the new binding. But feel free to correct me if I'm wrong here!

@sonicblis I see what you mean now, but I tend to agree with @frederikprijck that this is not something we actually want people to do. In your filter example, I'm not sure why the filter component should be responsible for resetting te data, if you can just pass in an array from the parent.

@frederikprijck, thanks for thinking this through.  I should have left out the items: '<' binding to make the example more clear that the component isn't meant to be a dumb component.
With your solution (moving data access higher), I can't ever have a child component that's also a smart component (that I might want to re-trigger some functionality on) without continuing to rely on two-way binding (or $broadcast =).
I find myself solving this problem somewhat consistently with a $scope.$watch on some arbitrary binding and running logic that way.  Again, I'm constrained to two way binding which I'd love to move away from as I think we all would.  If, in general, I had two one-way bindings (one in, and one out), I'd be done with two-way bindings I think.
If I have a graph component that displays a common roll up of data, and I want to use it multiple times, I would love not to have to make every parent responsible for data access, but instead encapsulate it in the graph component itself with the ability to trigger a refresh from any parent if necessary.
cc: @Narretz

With your solution (moving data access higher), I can't ever have a child component that's also a smart component (that does display and has parent triggerable functionality) without continuing to $scope.$watch (or $broadcast =).

That's incorrect, I don't see why that would be impossible. You could perfectly move the data-access in the dumb component I mentioned it, making it both responsible for data-access and visualisation (not a bad thing, just not that reusable).
What about using something like:
angular.module('newBinding', [])
  .component('filterableData', {
    controller: function() {},
    template: `

                 <select
                         ng-options="sourceKey in $ctrl.sourceKeys"
                         ng-model="selectedSource"></select>
    	         <data which="selectedSource"></data>

`
  })
  .component('data', {
    bindings: {
      which: '<',
      items: '<',
    },
    controller: function(resource) {
       this.$onChanges = function(changes) {
         if(changes.which) {
            this.items = resource.query(which);
         }
      }
    },
    template: `<div ng-repeat="item in $ctrl.items">{{item.displayName}}</div>`
  });

@frederikprijck $onChange doesn't do deep watches, so we have $watch for that, but $watch won't trigger when nothing has changed (a re-query).  This is a common problem I run into developing components and why I thumbs'd up 4 posts ago.
Your example works and all, but outside of Angular demos, I feel like allowing binding like that to flow through as DOM changes is an anti-pattern.
https://plnkr.co/edit/PzNasQKuWVe0G4K4RfZw?p=preview
Here I've taken your example, added an extra field, and put a search button on it.  I've got skip/take already set on my search object, so when the user clicks the search button, I'm only changing the properties that need changing.  This is good because we haven't fired any unnecessary watchers as the user builds up their search criteria.  Unfortunately if you try to search for the same thing twice, the search object hasn't changed, so nothing happens.  Imagine searching the same value on Google but the second time nothing happens. 😢
So you're forced to re-create the search object or set some other property on it to like changed = Date.now() so that the $watch will fire, which isn't very intuitive.

@langdonx, not to mention the search that will take place with default params since the $watch will fire once initially.  Imagine if google did a search the first time you opened it but before you provided a search string.
@frederikprijck, $onChange and $watch is what I'd like to avoid in my child when not necessary.  My main point is still that there is a difference between a child component responding to a change in the parent and a parent being able to explicitly read child data without unnecessary two-way binding (up to this point, so that the child can provide a function to the parent to call explicitly, but the intent is for a more global capability of child to parent one way binding).
Here's another example of where it would be nice to have a '>' binding as a form is providing edits on a provided object, but the parent is triggering the action to take on the edits:
https://jsfiddle.net/sonicblis/p630v7uf/3/
And then here, where the child is running some complex logic before returning a complete and valid edited entity.
https://jsfiddle.net/sonicblis/p630v7uf/4/
All doable with the current bindings, but would be better with one-way binding from child to parent.  It seems like such a win to be able to define "out params" in the child's interface that you can then access from the parent.

@langdonx

So you're forced to re-create the search object or set some other property on it to like changed = Date.now() so that the $watch will fire, which isn't very intuitive.

@langdonx

So you're forced to re-create the search object or set some other property on it to like changed = Date.now() so that the $watch will fire, which isn't very intuitive.

It might not feel very intuitive in the beginning, but it's not bad from a performance point of view to use immutables as it eliminates the need for deep watches.
Angular's DI is based on object referencing, so looking at upgrading re-creating the object isn't that bad either.
@sonicblis I'm not a fan of two-way binding, but I wouldn't really structure components as how that fiddle does. If you have the need to implement your components that way (have the save button outside your component and retrieve the child component's state when necessary) I think it's what two way binding was introduced for. It makes the fiddle do the same with less code: https://jsfiddle.net/s8csjnyn/1/ .
The second fiddle is a bit harder to implement that way. Components are generally push based, not pull based. So pulling state out of the component feels unintuitive.
Why nog make use of a directive/component using ngModel to add the necessary validators/parsers to ensure the complex business logic/validation is applied to the editedPerson (this would also be a two way binding, and not result in a function you can call from a parent)?
Moving the complex business logic outside the inner component but inside the save handler should also remove the need for the > binding.

There's a PR for something that achieves this differently: https://github.com/angular/angular.js/pull/14080 With this, you can publish a component into its parent scope. This is very useful for sibling communication, but could also be used for parent - child communication. It would not be enforced by a strict interface, though.

The ability to avoid two way binding seems like it would be enough of a gain.  Seems like there's no trade off for the benefit.  Also, I'd hate to put my complex business logic in every parent that's going to use that editor when I could nicely encapsulate it in the editor.  I don't get the downside.  Can you help me see how this is actually a negative instead of how I can make due without it?
I'm not suggesting that there's a need for '>'.  I'm arguing it would be nice and consistent with existing patterns.  Is there any chance a PR would be merged with a solid implementation?

@sonicblis Only taking Angular into account, I wouldn't say merging this is a good idea (not saying it won't get merged tho) unless Angular has comparable solutions. We'd be introducing an un-upgradable feature if Angular is not planning to implement this as well.
It doesn't sound a lot like how (web) components are to be used either.

Also, I'd hate to put my complex business logic in every parent that's going to use that editor when I could nicely encapsulate it in the editor.

Nobody is asking you to do that. If you currently have your editor as a single component (<my-editor>), you'd divide it into two now: The component purely for visualisation and the one for your BL, including the one for visualisation (<my-editor>). This doesn't change anything in usage throughout ur application (the outer directive's name hasn't change so 0 refactoring for u), but it does change your component structure.
I guess it depends what kind of BL. Looking at your Bl it's some logic being applied to the object before sending it to the backend, this sounds alot like what a $parser is used for. If it includes validation checks, I'd look into $validators, both existing for those purposes.
Imho there's 3 solution to solve this with current AngularJS setup:

use two way bindings as you're doing (I dislike)
use ngModel (which is a two way binding anyway, so probably falls under the 1st one aswell)
refactor your components so you have no need for the two way bindings.
Maybe there's even ways to solve this by using controller communication ? (not sure if it is and if it would even make sense tho).

@frederikprijck

It might not feel very intuitive in the beginning

None taken, don't worry about it. 😉
@Narretz Yep, ngAs sounds like it fulfills the same desires.  It was submitted over a year ago though -- do you think it will land?  Earlier in this conversation you said this is not something we actually want people to do -- is one of the reasons why ngAs has sat for so long?
ngAs vs what is proposed here feels similar to the OO reusability argument about asking for the banana, but getting the gorilla holding the banana (something something whole jungle).  Exposing the entire component controller with ES2015 classes will get you the controller and all of its dependencies.  This seems like a code smell to me, but might be fixed with private state lands in ES20xx.  I do love the use case of displaying a tool tip, which would work very well with what's proposed here (but works just as fine with '=' to be fair).

@langdonx

None taken, don't worry about it.

You either missed a part of your reply, or I'm missing what you're talking about.

@frederikprijck Sorry, just messing around. Was trying to express my disapproval of your implication that I'm new to this. ☹

@langdonx I had no intention to call you new. You said it feels unintuitive to re-create the object. I wanted to state it feels unintuitive at first (so when recreating the objects for the first times) but has some benefits in the long wrong and might feel alot less unintuitive at the end.

I'm familiar with $validators and $parsers, but I appreciate the suggestion.

It doesn't sound a lot like how (web) components are to be used either.

It seems like the closer we can get to components having a well defined interface, the better, so I'm not sure I agree with this being against the goals of components in general.
The lack of upgrade path to Angular 2 is a great point.  Looks like it's just a whole hog exposure of controllers in that world which is a little surprising, but gets the job done.  I echo Lang's ask about the PR for ngAs.  Any chance that's getting merged some time soon?

This thread has grown long and I am not sure what all the arguments usecases are, but I will try to answer/give my view on some of them:

Right now, the only option for passing values out of a child component to a parent is the '=' two way binding which everyone agrees should be avoided.

As already mentioned, the recommended way to pass value one-way to the parent is the & binding. We have also briefly discussed providing something that is similar to Angular's @Output (I ironically proposed the > symbol for that :grin:), but nothing concrete yet.

Parent values will overwrite child values in this case.

The way I understand it, this is irrelevant to the problem you are trying to solve, which is "who sets the value on the parent" (not the child). So, even in the > approach that you suggest, we can't prevent someone overwriting the value on the parent.

You also avoid the performance hit of the two way binding.

There is still a performance hit (for one-way watching). If performance is a concern, the & (or a new Angular-like output) should be the way to go, since it doesn't involve any $watchers.

I think the main issue with what you suggest, is that enabling child-components to modify the parent at will (even a specific property only), removes much of the declarativeness that we know and love in AngularJS. This is quite different than letting the parent modify the child, because a child can have only one parent, the opposite is not true (one parent --> multiple children).
A solution to that, is to still let the parent be in charge. This is achieved by Angular's outputs (where the parent has to explicitly subscribe to emitted output values and handle them as it wishes) and AngularJS' & bindings, where the parent is in charge of treting the passed in values the way it wishes). Again, this is not about what is and isn't possible; it's about how easy it is to tell what happens by looking at the parent component/template.

All than being said, I don't think there is something that is not possible with the current API. It's just more verbose than necessary/desired.
I understand that currently the child-to-parent communication story in AngularJS isn't great and requirs a bit more boilerplate than we'd want it to. But as already mentioned, I don't think it is wise to introduce new features that do not map closely to Angular semantics as this will make upgrading more difficult. Even more so, when there are alternatives that are more declarative and more in-line with "how Angular does it".
WRT to previously mentioned alternatives:
a) An Angular-like, Eventemitter-based "output" binding.
b) The ngAs directive in #14080 (which probably needs a new name 😛).
Besides, being more similar to Angular, (a) won't be much different than & in terms of reducing the boilerplate for example. So, while a good change in general, it won't add something wrt the usecases discussed here.
(b) is similar Angular's template-local refs and would also make it easier to access child methods from the parent (in some usecases at least). The problem with ngAs (and probably the reason it hasn't landed yet) is that (in contrast to Angular) AngularJS is not able to restrict a ref to the local template, so we must consider the implication more carefully and be more detailed in the documentation of how this feature should or should not be used.

The bottom line is that I don't think the proposed feature is a step in the right direction, but we should work on alternative approaches that are more "upgradable" and declarative.

I understand that currently the child-to-parent communication story in AngularJS isn't great and requires a bit more boilerplate than we'd want it to.

That nails it.  I appreciate the discussions and look forward to that friction being slightly reduced if that's what the future holds.  =]


Remove New Relic from web application

Description
We haven't found any value in New Relic.  Removing this from our application in advance of removing the keys stored in chamber.
Reviewer Notes
Did I forget to remove anything?
Code Review Verification Steps

[x] Request review from a member of a different team.
[x] Have the Pivotal acceptance criteria been met for this change?

References

Pivotal story for this change

Yeah, honeycomb has come more heavily into use to answer questions we have.  New Relic apparently never answered the things we wanted it to? I had to verify this with the other leads who had the history on this.  But since we aren't using it we might as well ditch the code.

Remove from config/env/*.env files, too

Good catch! I removed those too.


Create/Edit Source and Collections need back-end hooks

very close to completed, just a python api issue- likely 'operator error'


Fixing #1488: Add feature to connect to windows host using delegated driver via winrm connection

Add feature to connect to windows host using delegated driver via winrm connection through managed mode.
PR Type

Feature Pull Request

What's stopping us merging here?

Github UI says that it conflicts with master

Hello, could you kindly merge it?

@vutkin thank you for this PR.
Thank you everybody for the reviews.
Merged


release:publish doesn't check all modules are available from packagist

When publishing a release cow checks if the version to be published has been pushed to pacakgist before creating an archive (for publishing to AWS/the SS website).
It does this by checking that silverstripe/installer is available in the required version through composer. However, just because installer is registered with packagist doesn't mean that the other core modules are.
We should check all modules needed for the release are available through composer before proceeding.

Yes this is a real problem. Once I finish archive step in cow 2.0 I'll make sure to do this properly. :)

We have a step in our release process to perform a composer create-project top-level/recipe test x.x.x operation immediately after Cow completes its work, so I don't think it's necessary for Cow to manage this.


A couple of small PDFWorker changes

Remove the typeof Worker check, since all browsers have had Worker support for many years now; see https://developer.mozilla.org/en-US/docs/Web/API/Worker#browser_compatibility
Furthermore the new Worker(...) call is wrapped in try-catch, which means that we'll still fallback to "fake workers" if necessary.

Limit the fallbackWorkerSrc handling, in the PDFWorker.workerSrc getter, to only GENERIC builds since that's the only place where it's defined anyway.

/botio test


Enable Kubernetes autodetection by default

Now that we have a definitive solution for Kubernetes discovery and decoration, we should let Beyla to automatically enable it when it detects it is running inside a Kubernetes cluster.
The BEYLA_KUBE_METADATA_ENABLE default value goes from false to autodetect.

Rethinking it, I realize that adding this feature would generate a lot of errors in a quick installation that deploys Beyla without setting up properly the accounts and cluster roles. So it's better to let the users read the documentation about how to properly configure everything before manually enable this feature.


Origins don't work for me, when i want to join my server.

Sup. I have a problem. Origins mod don't work for me, when i want to join my minecraft server, hosted on ,,Apex Hosting''. Whe i'm on my server list, it seems ok. The server is here, and it looks like i can join it. When i'm joining the server, it says ,,connection lost''. I contacted with the server support. After a long talk, they told me to put my issue here, because it can be mod error.
My friend also tried to join my server, but he had the same thing, so i don't think that is mod fault at all.
That's all, i hope that somebody help me solve my problem :) .

This is probably the issue caused by using a different Origins version on the client and the server.
So, please make sure that the Origins on your server is the same version (e.g. 0.4.7) as the one you and your friend are using.
If that is the case, feel free to reply here (with posting log files of client and server) and I'll reopen the issue.


Create an SAP Cloud Platform ABAP Environment Trial User

Tutorial URL: https://developers.sap.com/tutorials/abap-environment-trial-onboarding.html
Cannot find ABAP Trial here..

Hi @wassupgon,
please make sure you have configured the entitlements (step 2) and you have Europe frankfurt as a region for your subaccount. And make sure, you have a dev space.
Best regards,
Merve

@wassupgon Thank you for your feedback. We haven't heard from you in the past 30 days, so we are closing the issue.
If you still have questions, feel free to reopen the issue.


Make sure file names are consistently encoded as UTF-8 across all platforms, consistently

There is a logical difference between windows store apps and others, CreateFile is not using the right encoding:
https://github.com/Azure/azure-sdk-for-cpp/blob/d8214af143d92806b8364aa902b477997a9dc82f/sdk/storage/azure-storage-common/src/file_io.cpp#L37-L54
Consider using approaches like the one from winhttp:
https://github.com/Azure/azure-sdk-for-cpp/blob/d8214af143d92806b8364aa902b477997a9dc82f/sdk/core/azure-core/src/http/winhttp/win_http_transport.cpp#L43
cc @Jinming-Hu, @JeffreyRichter
@BillyONeal can you please share the docs that mention the  default is CP_ACP, because I could only find reference docs CreateFileA and W, but not CreateFile.
Add tests as well with custom encoded texts as filenames, similar to these (include invalid encoding and mismatched surrogates):
https://github.com/Azure/azure-sdk-for-cpp/blob/898a8aee84607bffe6116d5a08d7065608137aa5/sdk/core/azure-core/test/ut/transport_adapter_base.cpp#L447

@BillyONeal can you please share the docs that mention the default is CP_ACP, because I could only find reference docs CreateFileA and W, but not CreateFile.
There is no "CreateFile" API. That's a macro that expands to CreateFileA or CreateFileW depending on whether you have UNICODE defined. (This pattern is the same for all A vs W Windows APIs)

@antkmsft You're the original author of the code above. Can you help me understand why we need wide string for UWP apps while don't need it for non-uwp apps?

@antkmsft You're the original author of the code above. Can you help me understand why we need wide string for UWP apps while don't need it for non-uwp apps?

I can answer that part. CreateFileA/CreateFileW are "desktop apps only" APIs, so they don't exist on UWP.

@antkmsft You're the original author of the code above. Can you help me understand why we need wide string for UWP apps while don't need it for non-uwp apps?

I can answer that part. CreateFileA/CreateFileW are "desktop apps only" APIs, so they don't exist on UWP.

So, on UWP, there are only wide string version APIs.

@antkmsft You're the original author of the code above. Can you help me understand why we need wide string for UWP apps while don't need it for non-uwp apps?

I can answer that part. CreateFileA/CreateFileW are "desktop apps only" APIs, so they don't exist on UWP.

So, on UWP, there are only wide string version APIs.

Correct. (And you need to use the wide versions anyway if you want the input to be interpreted as UTF-8)

@antkmsft You're the original author of the code above. Can you help me understand why we need wide string for UWP apps while don't need it for non-uwp apps?

I can answer that part. CreateFileA/CreateFileW are "desktop apps only" APIs, so they don't exist on UWP.

So, on UWP, there are only wide string version APIs.

Correct. (And you need to use the wide versions anyway if you want the input to be interpreted as UTF-8)

OK, I get it. So if I want to support UTF-8 path, I have to convert it to wstring and call W suffix APIs for desktop app.
One more question though, why cannot Windows handle encoding stuff like Linux? Why does Windows have narrow-string A APIs and wide-string W APIs, while Linux only has narrow string APIs?
UTF-8 characters can take up to 4 bytes. So even with W APIs on Windows, we still cannot put any UTF-8 characters into just one wchar_t. So how is W API better than A API in this sense?

One more question though, why cannot Windows handle encoding stuff like Linux? Why does Windows have narrow-string A APIs and wide-string W APIs, while Linux only has narrow string APIs?

Windows NT, Java, JavaScript, etc. all implemented Unicode when it was thought that 16 bits would be enough forever. At such time, Linux could not access Unicode anything. Later, in the mid 1990s, Unicode was changed to be 21 bits and UTF-8 was invented. Both UTF-8 (defacto Linux, network facing APIs, etc.) and UTF-16 (Java, JavaScript, NT, C#) environments are the way they are for legacy reasons at this point.

UTF-8 characters can take up to 4 bytes. So even with W APIs on Windows, we still cannot put any UTF-8 characters into just one wchar_t. So how is W API better than A API in this sense?

The A APIs do not accept UTF-8 at all, so if there are code points you want to represent not in the currently active code page, you can't get at those files at all through the A APIs.

I'm working on a fix of this issue. Since the input filename is a narrow std::string, do you think it's safe to always assume the input is UTF-8 encoded? (We already did so on UWP. We convert from UTF-8 to UTF-16.)
@ahsonkhan @BillyONeal @antkmsft

I'm working on a fix of this issue. Since the input filename is a narrow std::string, do you think it's safe to always assume the input is UTF-8 encoded? (We already did so on UWP. We convert from UTF-8 to UTF-16.)

It is not safe in C++ in general to make such an assumption but you can document that that's what you do so customers know that's your expectation.
It isn't what main or fopen or std::path do, for example. They are like CreateFileA and use the currently selected codepage.


stream group topn panics when partition by = order by

Describe the bug
No response
To Reproduce
CREATE TABLE t (
        x int,
        y int
    );

    create materialized view mv as SELECT
      1 as x
    FROM (
      SELECT
        row_number() over (partition by x order by x) as rank
      FROM
        t
    )
    WHERE rank <=1;

Expected behavior
No response
Additional context
thread 'risingwave-main' panicked at 'assertion failed: `(left == right)`
  left: `OrderPair { column_idx: 2, order_type: Ascending }`,
 right: `OrderPair { column_idx: 0, order_type: Ascending }`', src/stream/src/executor/top_n/utils.rs:201:13
stack backtrace:
   0: rust_begin_unwind
             at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/std/src/panicking.rs:575:5
   1: core::panicking::panic_fmt
             at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/core/src/panicking.rs:64:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
             at /rustc/bdb07a8ec8e77aa10fb84fae1d4ff71c21180bb4/library/core/src/panicking.rs:199:5
   4: risingwave_stream::executor::top_n::utils::create_cache_key_serde
             at ./src/stream/src/executor/top_n/utils.rs:201:13
   5: risingwave_stream::executor::top_n::group_top_n::InnerGroupTopNExecutorNew<K,S,_>::new
             at ./src/stream/src/executor/top_n/group_top_n.rs:113:13

The assertion is order_key = group_by + order_by + additional_pk, but the order_by is actually de-duped 🤔
https://github.com/risingwavelabs/risingwave/blob/2ac5bad5ccb282a82ce9cc5cafd73272af59be35/src/frontend/src/optimizer/plan_node/generic/top_n.rs#L55-L78

There's a chance for optimization (although it's a little bit silly): e.g., partition by x,y,x,y order by x,y,x,y,z is equivalent to partition by x,y order by z 🤪

Found a different problem while doing the optimization... https://github.com/risingwavelabs/risingwave/issues/7332


Handling model hierarchies offline

Not sure how deep a change like this would go, but it would be handy to be able to use remodel Model objects without having them stored in a database. Currently this is not possible since as soon as you try to add a linked object, remodel needs a db key relationship. (Error: Cannot assign "<Test: not saved>": "Test" instance isn't saved)
I see no reason why vanilla Python object links wouldn't suffice until one of the objects in the hierarchy is actually saved to the DB.
Love the project, by the way!

Hey, thanks for the interest in remodel!
Having simplicity in mind, this was the most straight-forward way to handle relations. Otherwise, I would have had to keep links between objects somewhere and trigger the saving of associated objects. Also, if say, you had a multi-level hierarchy of relations and you were to save an object from the middle of this hierarchy, the ORM would have had to lookup which related objects needed to be saved and which not.
Ultimately, I believe that things stay more consistent this way; I guess this is why other frameworks (such as Django or Rails) also use this approach when it comes to associated objects.
Your question sounds indeed interesting and I'm curious on your use case; why isn't the current approach working for you?

Our specific use case is that we have different monitoring backend databases with plant configurations (renewable energy plants) which we consolidate to a common object structure. The rethinkdb + remodel ease of use makes it tempting to use it as a central repository/cache.
Having to have connection to a rethinkdb instance, however, makes it impossible to just load a plant config from one of those monitoring tools and work with it without storing it in rethinkdb first or working offline (e.g. on the train) with some set of objects created in code.
The reasons it may be interesting for other people are also illustrated here (and so it seems it might become a rethinkdb feature in the future)
I understand it may be a burden in terms of complexity so I'm also asking to gauge if you would be accepting PRs in that direction (no promises yet :-)) or if you would consider it too much bloat anyway.

So basically you're after the ODM interface provided by remodel but wish to have other custom backends where to persist the objects? Then, on demand, you'd like to sync these custom backends to the central RethinkDB instance?
I believe this feature goes beyond the scope of remodel, at least for the moment. It addresses a rather custom requirement which probably wouldn't be worth the hassle to be included in the main package, since there would be too few use cases for it. Since remodel abstracts some basic RethinkDB operations and the datastore itself doesn't provide (yet) offline functionality, I don't know whether it would be suitable to integrate this in remodel.
Nevertheless, if you're really after this functionality and wish to implement it, you can always fork this repo; if the feature gets integrated into RethinkDB at a later point, we can always merge your fork here.
If I missed something obvious, please let me know!

Thanks for indulging and your interest, but don't feel obligated to maintain the conversation :-)
The idea would be to be able to work offline (with or without other backends, that does not regard remodel) and save multiple linked Model descendent objects in one go (possibly following relations and saving "dirty" and new objects in the hierarchy, but this is not required).
Looking at it naively and not burdened with too much remodel knowledge, my impression is it should be possible:

for the Python id() to be used to track the object identity / link to RethinkDB id
for remodel to recursively find all related remodel objects and check if they should be created or updated
to save all Model descendent objects if something like a "dirty" concept does not exist in remodel

AFAICT this can be done without RethinkDB support.
Pseudo code:
class Country(Model):
    has_many = ('City',)

class City(Model):
    belongs_to = ('Country',)

timisoara = City(name='Timisoara')
bucharest = City(name='Bucharest')
# the cities are _not_ saved to RethinkDB
romania = Country(name='Romania', cities=[timisoara, bucharest])
# romania is _not_ saved to RethinkDB
# the relations are purely in Python, no RethinkDB IDs are created yet

# Use one of the following to persist the set of objects to RethinkDB:
romania.save(save_linked_objects=True)
romania.save(linked_objects_to_save=[timisoara, bucharest])
remodel.save(romania, timisoara, bucharest)

# Or persist them individually
# (e.g. first the country without the has_many links, then the cities and all links):
romania.save()
timisoara.save()
bucharest.save()

The idea is interesting, but I believe it will go too far in another direction that I initially established for remodel. By reading your posts, I think a separate library would be more useful in this case, since too little of remodel would be needed and too much would need to be added. I like the idea of simple things that provide just a few features.
These being said, would a plugin for remodel sound better than a separate library? I don't know. Tell me what you think; also, if you wish to embark on this journey, I would be happy to help however I can.

I'm closing this due to the lack of replies; however, feel free to reopen the issue if you have more ideas!


Add i10n

The app should use default user language or at least support French and English.

I see that this issue already exists #8.


TgPlanAllExitCode and TgApplyAll is work for current module , not plan and apply for nested dependency module

TgPlanAllExitCode and TgApplyAll is not plan/apply for parent module .
i.e if i am running test on VCN module and compartment i put as mock_output . It is not planning and apply for compartment module . It is only plan for current directory means VCN .
Is there a way to fix this ?
The --non-interactive flag is set. To avoid accidentally affecting external dependencies with an xxx-all command, will not run this command against module /Users/dmaharan/Ddrive/demoRepo/terratestDevelop/cxu-tf-infra/dev/global/app/compartment, which is a dependency of module /Users/dmaharan/Ddrive/demoRepo/terratestDevelop/cxu-tf-infra/dev/iad/fabric/app/network/vcn.
How to make here external dependency to true
How we can add "terragrunt-include-external-dependencies" to TgApplyAll and TgdestroyAll
@yorinasub17 is there any solution for this ?

Ideally you can run plan-all and apply-all on the root folder so that includes all the dependencies.
Otherwise, we need an enhancement to the terraform.Options struct to support the ability to pass in arbitrary extra args to the command. We are unlikely to get to this anytime soon, so if anyone in the community wants to contribute a PR that would be much appreciated!

@DiptiPrakash
Could please pass me snippet of code which helps me to set --terragrunt-include-external-dependencies flag to true
I am getting error due to that https://github.com/gruntwork-io/terragrunt/issues/1417

hi @pandu-bhojaraj-mf, please try the following:
options := &Options{
	TerraformDir:    testFolder,
	TerraformBinary: "terragrunt",
	EnvVars: map[string]string{
		"TF_CLI_ARGS": "--terragrunt-include-external-dependencies",
	},
}
terraform.TgApplyAll(t, options)

Feel free to tweak it based on your use case.

Hi @robmorgan
Below code is not working
options := &Options{
TerraformDir:    testFolder,
TerraformBinary: "terragrunt",
EnvVars: map[string]string{
"TF_CLI_ARGS": "--terragrunt-include-external-dependencies",
},
}
terraform.TgApplyAll(t, options)

Both approached dint work


Cant verify downloading with Premium is possible/happening

System OS
Linux
Python Version
3.7 (CPython)
Install Source
pip / PyPi
Install version / commit hash
latest
Expected Behavior vs Actual Behavior
No response
Steps to reproduce - Ensure to include actual links!
Use spotdl
Traceback
n/A

Other details
Im still figuring out (since months... https://github.com/spotDL/spotify-downloader/issues/1951 ) how i can download the best quality with spotdl (youtube-dl works fine, there i can simply specify).
Not only, that everytime, it downloads different qualities (i think the code for deciding best quality isnt working) everytime (even same song), also i cant verify simply commands/flags.
I still try to debug/find out, if that with the youtube music premium cookie is working. Because even if you specify to download XYZ List, and use the --cookie-file option, it seems not to be respected.
For example:
spotdl --output "/mnt/nfs_luna/Downloads/Youtube/Musik/{list-name}/{artist} - {title}.{output-ext}" --format opus --bitrate disable --cookie-file /home/user/cookie.txt --only-verified-results --log-level DEBUG https://open.spotify.com/playlist/37i9dQZF1DZ06evO1vr63S?si=56f8f6a2249e4950
Spits the same out, like this (without a information, warning, error or what ever! it simply starts download):
spotdl --output "/mnt/nfs_luna/Downloads/Youtube/Musik/{list-name}/{artist} - {title}.{output-ext}" --format opus --bitrate disable --cookie-file /home/user/this_cookie_dont_exist_but_diwezrh3we98r324975r2389.txt --only-verified-results --log-level DEBUG https://open.spotify.com/playlist/37i9dQZF1DZ06evO1vr63S?si=56f8f6a2249e4950
How can i verify, that spotdl is ACTUALLY successfully "logged in" in youtube music premium and is downloading the best quality?

How can i verify, that spotdl is ACTUALLY successfully "logged in" in youtube music premium and is downloading the best quality?

If you go through #1951 then you can see that there's a prompt which I have made and shared screenshots and other info of the downloaded file. So you already have the info about what works and how to get it to work. By cross verifying it, you can determine that it works [it is working right now]. I can only show you that it works, you need to spend more time testing it thoroughly with various prompts to figure out your own custom prompt and what works for you.
PS: Also, opus doesn't give the high bitrate stream, it gives the opus stream which for which the cookie file is not needed.
For the HQ stream you need to have --format m4a, and --bitrate-disable in the options.
PPS: I am also using a Windows VM just in case that could be a variable.


Take a final RDS snapshot and destroy OAR production resources

This will require a different set of steps then the staging destroy (#2351) since we need to leave the DNS/CloudFront/certificate setup in place to handle the redirect until we can migrate those resources to the OSH deployment.

Remove all resources from .tf files other than those required for DNS/CloudFront/certificate
Run a production ./scripts/infra plan and verify the output is expected and that the resources needed for the redirect remain in place
Create an RDS snapshot
Enable deletion protection on both OS Hub RDS instances via the console (for extra confidence)
Use ./scripts/infra apply to destroy the resources

I updated the description since, unlike staging, there are a few non-compute resources we want to leave in place to handle the old domain name and redirection.