Timeout: Basic Tests Linux (dbg)

https://grpc-testing.appspot.com/job/gRPC_pull_requests_linux/7886/console
The tail of the log is like:
15:03:49 + /var/local/git/grpc/py34/bin/python3.4 -m pip install cython
15:03:49 Collecting cython
15:03:49   Downloading Cython-0.26.1-cp34-cp34m-manylinux1_x86_64.whl (2.9MB)
15:03:49 Exception:
15:03:49 Traceback (most recent call last):
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/response.py", line 232, in _error_catcher
15:03:49     yield
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/response.py", line 314, in read
15:03:49     data = self._fp.read(amt)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 60, in read
15:03:49     data = self.__fp.read(amt)
15:03:49   File "/usr/lib/python3.4/http/client.py", line 500, in read
15:03:49     return super(HTTPResponse, self).read(amt)
15:03:49   File "/usr/lib/python3.4/http/client.py", line 539, in readinto
15:03:49     n = self.fp.readinto(b)
15:03:49   File "/usr/lib/python3.4/socket.py", line 371, in readinto
15:03:49     return self._sock.recv_into(b)
15:03:49   File "/usr/lib/python3.4/ssl.py", line 745, in recv_into
15:03:49     return self.read(nbytes, buffer)
15:03:49   File "/usr/lib/python3.4/ssl.py", line 617, in read
15:03:49     v = self._sslobj.read(len, buffer)
15:03:49 ConnectionResetError: [Errno 104] Connection reset by peer
15:03:49
15:03:49 During handling of the above exception, another exception occurred:
15:03:49
15:03:49 Traceback (most recent call last):
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/basecommand.py", line 215, in main
15:03:49     status = self.run(options, args)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/commands/install.py", line 335, in run
15:03:49     wb.build(autobuilding=True)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/wheel.py", line 749, in build
15:03:49     self.requirement_set.prepare_files(self.finder)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/req/req_set.py", line 380, in prepare_files
15:03:49     ignore_dependencies=self.ignore_dependencies))
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/req/req_set.py", line 620, in _prepare_file
15:03:49     session=self.session, hashes=hashes)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/download.py", line 821, in unpack_url
15:03:49     hashes=hashes
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/download.py", line 659, in unpack_http_url
15:03:49     hashes)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/download.py", line 882, in _download_http_url
15:03:49     _download_url(resp, link, content_file, hashes)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/download.py", line 603, in _download_url
15:03:49     hashes.check_against_chunks(downloaded_chunks)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/utils/hashes.py", line 46, in check_against_chunks
15:03:49     for chunk in chunks:
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/download.py", line 571, in written_chunks
15:03:49     for chunk in chunks:
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/utils/ui.py", line 139, in iter
15:03:49     for x in it:
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/download.py", line 560, in resp_read
15:03:49     decode_content=False):
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/response.py", line 357, in stream
15:03:49     data = self.read(amt=amt, decode_content=decode_content)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/response.py", line 324, in read
15:03:49     flush_decoder = True
15:03:49   File "/usr/lib/python3.4/contextlib.py", line 77, in __exit__
15:03:49     self.gen.throw(type, value, traceback)
15:03:49   File "/var/local/git/grpc/py34/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/response.py", line 250, in _error_catcher
15:03:49     raise ProtocolError('Connection broken: %r' % e, e)
15:03:49 pip._vendor.requests.packages.urllib3.exceptions.ProtocolError: ("Connection broken: ConnectionResetError(104, 'Connection reset by peer')", ConnectionResetError(104, 'Connection reset by peer'))
15:03:49
15:03:49 2017-09-13 22:03:47,602 FAILED: /var/local/git/grpc/tools/run_tests/helper_scripts/build_python.sh [ret=2, pid=6277]
15:03:49 2017-09-13 22:03:47,602 FAILED: Some tests failed
15:03:49   adding: reports/ (stored 0%)
15:03:49   adding: reports/index.html (deflated 22%)
15:03:49 + DOCKER_EXIT_CODE=1
15:03:49 ++ mktemp
15:03:49 + TEMP_REPORTS_ZIP=/tmp/tmp.cfkmZJfhan
15:03:49 + docker cp run_tests_ba3b3e3c-0637-4b5d-9dc5-3381a04184f4:/var/local/git/grpc/reports.zip /tmp/tmp.cfkmZJfhan
15:03:49 + unzip -o /tmp/tmp.cfkmZJfhan -d /home/jenkins/workspace/gRPC_pull_requests_linux
15:03:49 Archive:  /tmp/tmp.cfkmZJfhan
15:03:49   inflating: /home/jenkins/workspace/gRPC_pull_requests_linux/reports/index.html
15:03:49 + rm -f /tmp/tmp.cfkmZJfhan
15:03:49 + docker rm -f run_tests_ba3b3e3c-0637-4b5d-9dc5-3381a04184f4
15:03:49 run_tests_ba3b3e3c-0637-4b5d-9dc5-3381a04184f4
15:03:49 + exit 1
15:03:49 Traceback (most recent call last):
15:03:49   File "tools/run_tests/run_tests.py", line 1375, in <module>
15:03:49     env=env)
15:03:49   File "/usr/lib/python2.7/subprocess.py", line 540, in check_call
15:03:49     raise CalledProcessError(retcode, cmd)
15:03:49 subprocess.CalledProcessError: Command 'tools/run_tests/dockerize/build_docker_and_run_tests.sh' returned non-zero exit status 1
15:03:49
15:03:49 2017-09-13 22:03:49,412 FAILED: run_tests_python_linux_dbg_native [ret=1, pid=31904]
15:03:49 2017-09-13 22:03:49,412 START: run_tests_c++_linux_dbg_native
18:55:35 Build timed out (after 300 minutes). Marking the build as aborted.
18:55:35 Build was aborted
18:55:35 Recording test results
18:55:36 [Set GitHub commit status (universal)] PENDING on repos [GHRepository@7934bd2d[description=The C based gRPC (C++, Node.js, Python, Ruby, Objective-C, PHP, C#),homepage=,name=grpc,license=<null>,fork=false,size=136797,milestones={},language=C,commits={},source=<null>,parent=<null>,url=https://api.github.com/repos/grpc/grpc,id=27729880], GHRepository@48977047[description=The C based gRPC (C++, Node.js, Python, Ruby, Objective-C, PHP, C#),homepage=,name=grpc,license=<null>,fork=false,size=136797,milestones={},language=C,commits={},source=<null>,parent=<null>,url=https://api.github.com/repos/grpc/grpc,id=27729880]] (sha:db9171f) with context:gRPC_pull_requests_linux_dbg
18:55:36 Setting commit status on GitHub for https://github.com/grpc/grpc/commit/db9171f9ecd487302355c4286840248039cff416
18:55:36 Setting commit status on GitHub for https://github.com/grpc/grpc/commit/db9171f9ecd487302355c4286840248039cff416
18:55:36 Setting status of 6502ecc812cba929453115a0475804304db243a6 to FAILURE with url https://grpc-testing.appspot.com/job/gRPC_pull_requests_linux/7886/ and message: 'Build finished. '
18:55:36 Using context: Basic Tests Linux (dbg)
18:55:36 Finished: ABORTED

Looks like things couldn't be downloaded. Closing.


[DOCFIX] Add "Apache HBase with Alluxio" in Getting-Started.md

alluxio-bot, check this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11680/
Test PASSed.


Installed SEAL with vcpkg but having errors when trying to use the library in a VS 2019 project

Hello, I am a beginner with SEAL/C++ and would like your help on the following issue. I have installed SEAL 3.6.6 with vcpkg (as mentioned in the README) using the following commands:
.\vcpkg install seal:x64-windows-static
.\vcpkg.exe integrate install

Both of which completed successfully and after that I created a sample C++ project in Visual Studio 2019, by basically copying 2 files from your examples, hoping to do a test run:

The basics file from the examples: https://github.com/microsoft/SEAL/blob/main/native/examples/1_bfv_basics.cpp
The examples.h header file which is used by the 1_bfv_basics.cpp code: https://github.com/microsoft/SEAL/blob/main/native/examples/examples.h

I also added the path to the SEAL directory which was installed by vcpkg to the project C++ properties so includes to "seal/seal.h" are now recognized. The problem is that when I try to build my project (solution) in Debug mode x64, I get a bunch of errors that seem to stem from other SEAL files:

I don't know how to progress at this point, any help would be greatly appreciated.

Thank you for your answer. I enabled C++ 17 and I tried opening the CMakeLists.txt file in VS2019 and indeed the whole examples project was imported, but I still had no luck compiling it and making it work, as different errors popped up after that.
I ended up following this tutorial on how to clone & install the project in Linux, in my case I used an Ubuntu VM + VirtualBox, which worked perfectly with the first try. So, for now, I'll keep working on Linux.


[HIPIFY][perl] Added redo if to the generated PERL

Hi All, this is a quick pull to fix a bug with the whitelist behaviour of hipify-perl.  The bug is as follows: The regular expression which replaces the whitelisted 'cudaXXXX' function call with 'ZAP' acts on the first occurrence of the whitelisted 'cudaXXX' and then goes on to the next line. As such it doesn't appropriately ignore lines such as:
      cudaGaugeField &force, cudaGaugeField &gauge, cudaGaugeField &oprod, double coeff, QudaParity parity)```

where the line

``` cudaGaugeField &force, cudaGaugeField &gauge, cudaGaugeField &oprod, double coeff, QudaParity parity)```

is only zapped to

```ZAP &force, cudaGaugeField &gauge, cudaGaugeField &oprod, double coeff, QudaParity parity)```

By inserting `redo if` in front of the regex  doing the zapping, as is done in this PR, the regex will keep being applied until there are no more instances of the whitelisted word left.

This PR has been discussed with Evgeniy Mankov & Nick Curtis at AMD, and I have verified its correctness by rebuilding hipify-clang.

Thanks, it works.


uMQTT

hi friend
how to set the esp8266 as a mqtt broker...? where to set the broker port..?
can i use this as my worn stand alone MQTT broker..?

You can: have a look at https://github.com/martin-ger/esp_mqtt

there is no broker port set
only client port set is there

Oh, you are right. You could change that in user_main, line 897 but I will add a CLI option "broker_port" later today.

Thanks
On 11 Feb 2018 12:52 pm, "martin-ger"<EMAIL_ADDRESS>wrote:
Oh, you are right. You could change that in user_main, line 897 but I will
add a CLI option "broker_port" later today.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/martin-ger/esp_wifi_repeater/issues/141#issuecomment-364729314,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXgztYJnhPVzjyWKuSHZPA6UrrKO1dqRks5tTpUxgaJpZM4SBLnc
.

I'm having diffecaty in connecting to broker through my local rougher.
Can connect when I connect to my_ap
On 11 Feb 2018 1:11 pm<EMAIL_ADDRESS>wrote:

Thanks
On 11 Feb 2018 12:52 pm, "martin-ger"<EMAIL_ADDRESS>wrote:
Oh, you are right. You could change that in user_main, line 897 but I will
add a CLI option "broker_port" later today.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/martin-ger/esp_wifi_repeater/issues/141#issuecomment-364729314,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXgztYJnhPVzjyWKuSHZPA6UrrKO1dqRks5tTpUxgaJpZM4SBLnc
.

No known issue here. Are you using the correct IP address? Can you "ping" it?

Added "broker_port" now.

hi friend
thanks for the update...
but still i can connect to the broker only when i connect to my_ap
i have got <IP_ADDRESS> ip from my rougher when i tried to connect the the
broker through my rough i cant
connected with SCW_*****, channel 11
dhcp client start...
connect to ssid SCW_ ***** ,channel 11
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>,dns:<IP_ADDRESS>
Got NTP server: <IP_ADDRESS>
NTP synced
show
STA: SSID:SCW_ ***** PW: *****
AP:  SSID:MyAP PW:none [open] IP:<IP_ADDRESS>/24
Network console access on port 7777 (mode 3)
MQTT broker max. subscription: 30
MQTT broker max. retained messages: 30
MQTT broker username: admin
MQTT broker password: admin
MQTT client disabled
NTP server: 1.pool.ntp.org (interval: 300 s, tz: 0)
Clock speed: 80
Serial bitrate: 115200
CMD>
On Sun, Feb 11, 2018 at 2:42 PM, martin-ger<EMAIL_ADDRESS>wrote:

Added "broker_port" now.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/martin-ger/esp_wifi_repeater/issues/141#issuecomment-364735949,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXgztTRpqqH2rZ2VLMzBFJYcedVVhlymks5tTq7rgaJpZM4SBLnc
.

and no i cant ping  ip:<IP_ADDRESS>
On Sun, Feb 11, 2018 at 4:50 PM, Chathuranga Wijetunge <
<EMAIL_ADDRESS>wrote:

hi friend
thanks for the update...
but still i can connect to the broker only when i connect to my_ap
i have got <IP_ADDRESS> ip from my rougher when i tried to connect the the
broker through my rough i cant
connected with SCW_*****, channel 11
dhcp client start...
connect to ssid SCW_ ***** ,channel 11
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>,dns:<IP_ADDRESS>
Got NTP server: <IP_ADDRESS>
NTP synced

show
STA: SSID:SCW_ ***** PW: *****
AP:  SSID:MyAP PW:none [open] IP:<IP_ADDRESS>/24
Network console access on port 7777 (mode 3)
MQTT broker max. subscription: 30
MQTT broker max. retained messages: 30
MQTT broker username: admin
MQTT broker password: admin
MQTT client disabled
NTP server: 1.pool.ntp.org (interval: 300 s, tz: 0)
Clock speed: 80
Serial bitrate: 115200
CMD>
On Sun, Feb 11, 2018 at 2:42 PM, martin-ger<EMAIL_ADDRESS>wrote:

Added "broker_port" now.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/martin-ger/esp_wifi_repeater/issues/141#issuecomment-364735949,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXgztTRpqqH2rZ2VLMzBFJYcedVVhlymks5tTq7rgaJpZM4SBLnc
.

its ok.... i think i have a ip conflict in my system i changed the ip to
<IP_ADDRESS> now it works.
and if you can add DDNS update to like "www.dynu.com" so we can have our
won MQTT broker where we can access it from any ware in the world
On Sun, Feb 11, 2018 at 5:00 PM, Chathuranga Wijetunge <
<EMAIL_ADDRESS>wrote:

and no i cant ping  ip:<IP_ADDRESS>
On Sun, Feb 11, 2018 at 4:50 PM, Chathuranga Wijetunge <
<EMAIL_ADDRESS>wrote:

hi friend
thanks for the update...
but still i can connect to the broker only when i connect to my_ap
i have got <IP_ADDRESS> ip from my rougher when i tried to connect the the
broker through my rough i cant
connected with SCW_*****, channel 11
dhcp client start...
connect to ssid SCW_ ***** ,channel 11
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>
ip:<IP_ADDRESS>,mask:<IP_ADDRESS>,gw:<IP_ADDRESS>,dns:<IP_ADDRESS>
Got NTP server: <IP_ADDRESS>
NTP synced

show
STA: SSID:SCW_ ***** PW: *****
AP:  SSID:MyAP PW:none [open] IP:<IP_ADDRESS>/24
Network console access on port 7777 (mode 3)
MQTT broker max. subscription: 30
MQTT broker max. retained messages: 30
MQTT broker username: admin
MQTT broker password: admin
MQTT client disabled
NTP server: 1.pool.ntp.org (interval: 300 s, tz: 0)
Clock speed: 80
Serial bitrate: 115200
CMD>
On Sun, Feb 11, 2018 at 2:42 PM, martin-ger<EMAIL_ADDRESS>wrote:

Added "broker_port" now.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/martin-ger/esp_wifi_repeater/issues/141#issuecomment-364735949,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXgztTRpqqH2rZ2VLMzBFJYcedVVhlymks5tTq7rgaJpZM4SBLnc
.


[ERROR] tests broken with this module.

Hello.
It is great if this kind of modules do not brake official tests, then if you face this problem and you know what should be the roadmap it should be cool and we can make a PR.
Basically:

Configure the repository to use OCA estandars (.travis, flake and pylint.
When it is installed you will face this error on unit tests:

2015-05-24 10:27:57,937 24837 INFO openerp_test openerp.tests.common: phantomjs: Can't reach the next step

2015-05-24 10:27:57,937 24837 INFO openerp_test openerp.tests.common: phantomjs:  tour: shop

2015-05-24 10:27:57,938 24837 INFO openerp_test openerp.tests.common: phantomjs:  step: 7: 'Update image'

2015-05-24 10:27:57,938 24837 INFO openerp_test openerp.tests.common: phantomjs:  href: http://localhost:8069/shop/product/new-product-65?enable_editor=1

2015-05-24 10:27:57,939 24837 INFO openerp_test openerp.tests.common: phantomjs:  referrer: http://localhost:8069/

2015-05-24 10:27:57,939 24837 INFO openerp_test openerp.tests.common: phantomjs:  element: false

2015-05-24 10:27:57,939 24837 INFO openerp_test openerp.tests.common: phantomjs:  waitNot: true

2015-05-24 10:27:57,940 24837 INFO openerp_test openerp.tests.common: phantomjs:  waitFor: true

2015-05-24 10:27:57,941 24837 INFO openerp_test openerp.tests.common: phantomjs:  localStorage: {"tour":"{\"id\":\"shop\",\"mode\":\"test\",\"step_id\":6,\"time\":1432463270939,\"number\":2,\"wait\":0}"}

Regards.

@nhomar ,
Thanks for your interest in this module. I haven't yet run any unit tests on this repository, however i'll get working on this as soon as possible.
I was planning on waiting to do more work on this module until OCA/product-attribute/product_images (https://github.com/OCA/product-attribute/issues/42) was ported to 8.0, as it allows for storing the images on in the filesystem, and handles the storage of multiple product images better overall. I will then rewrite the UI to read the images from this module. This will allow for those with large product catalogs to keep their databases lean.
I'll work on getting these errors resolved as soon as possible so that I can make a PR for OCA/website.


Update maintained robots to the use of multipleanalogsensorsserver

As agreed, updated all robots except for robots-icebox:

device analogServer becomes multipleanalogsensorsserver
port analog:o becomes MAIS

cc @Nicogene @pattacini

Awaiting @Nicogene's review before merging.


How to use this?

Hello,
Can anyone provide live example of how to use this repo?

Hello @amansaini419,
This package very simple to install and get started. Once you have your (new or existing) laravel setup, you just follow the instructions provided in the readme.md
Run:
composer require eneadm/ladder
php artisan ladder:install
php artisan migrate

In your App\Models\User model add the HasRoles trait like so:
use Ladder\HasRoles;

class User extends Authenticatable
{
    use HasRoles;
}

Finally manage your roles and permissions in App\Providers\LadderServiceProvider, here you can create whatever roles and permissions you'd like to have. A good example would be:
Ladder::role('admin', 'Administrator', ['*'])->description('Some description for the admin role.');

Ladder::role('accountant', 'Accountant', [
    'invoice:read',
    'invoice:create',
    'invoice:update', // Update status to paid for example...
])->description('Some description for the accountant role.');

Ladder::role('customer', 'Customer', [
    'invoice:read',
    'invoice:create',
])->description('Some description for the customer role.');

And you are done, you have Roles and Permissions in your laravel app setup. These links might also help you developing your app further:

How to assign roles to users, Assign Roles: link
Understanding laravel policies: link
How to implement policies with ladder, Authorization: link

Let me know if this was helpful friend :-)

So, it means every time I have to implement certain task, I need to check the permission before the implementation.

I believe all questions have been answered here so I am going to close this issue.


How to pass RustBox within threads?

I'd like to pass Rustbox within threads. I tried using the inbuilt std::thread as well as the crossbeam library but I seem to be running across the following error

the trait bound *mut (): std::marker::Sync is not satisfied in &rustbox::RustBox

I came across #65 which says

For sending the RustBox type between threads, you can now wrap it inside a std::sync::Mutex (which will implement Sync).

I've never worked with threads in Rust before so I am not sure how to initialize RustBox around a Mutex wrap and pass it between threads.
Can someone help me out with a minimal example?

Here is one I built up with help from stackoverflow.
extern crate rustbox;

use std::thread;
use std::time::Duration;
use std::sync::{Arc,Mutex};

use rustbox::{Color, RustBox};
use rustbox::Key;

fn mark_at(x: usize, y: usize, rustbox: &Arc<Mutex<RustBox>>) {
    rustbox.lock().unwrap().print(x, y, rustbox::RB_BOLD, Color::Black, Color::White, "+");
    rustbox.lock().unwrap().present();
    let rustbox = rustbox.clone();
    thread::spawn(move || {
        let delay = Duration::from_millis(2000);
        thread::sleep(delay);
        rustbox.lock().unwrap().print(x, y, rustbox::RB_BOLD, Color::Black, Color::White, " ");
    });
}

fn main() {
    let rustbox = match RustBox::init(Default::default()) {
        Result::Ok(v) => v,
        Result::Err(e) => panic!("{}", e),
    };
    let rustbox = Arc::new(Mutex::new(rustbox));
    rustbox.lock().unwrap().print(1, 1, rustbox::RB_BOLD, Color::Black, Color::White, " ");
    rustbox.lock().unwrap().print(1, 2, rustbox::RB_BOLD, Color::Black, Color::White, " ");

    loop {
        rustbox.lock().unwrap().present();
        let pe = rustbox.lock().unwrap().poll_event(false);
        match pe {
            Ok(rustbox::Event::KeyEvent(key)) => {
                match key {
                    Key::Char('q') => {
                        mark_at(1, 1, &rustbox);
                    }
                    Key::Char('w') => {
                        mark_at(1, 2, &rustbox);
                    }
                    Key::Esc => { break; }
                    _ => { }
                }
            },
            Err(e) => panic!("{}", e),
            _ => { }
        }
    }
}


Have a way to dry-run option to check what mutations/validation may take place

Is your feature request related to a problem? Please describe.
Have a way to dry run Kubernetes objects to see what mutations/validations will occur before applying them to the cluster.
Describe the solution you'd like

Given i do a dry-run
When i see what would happen to the object through the admission process
Then the object is not actually in the cluster yet, it is just a dry-run

Describe alternatives you've considered
(optional) A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

For now since this was not come up we are going to close this. Should this be a feature request in the future feel free to open it up


Inference error when training with ImageNet model

❓ Questions and Help
when training from loading the ImageNet model, in inference there maybe no positive boxes, and the        scores = prediction.get_field("scores").tolist()
will come across a keyerror. How to avoid this?

I suppose you fixed your problem?


Unify OIDC Code/IdToken/Hybride flows.

#456
@vibronet @brentschmaltz @tushargupta51 @PinpointTownes @muratg
Note I will do a followup PR where we can resolve some of the event TODOs in this one. I wanted to get most of the auth mechanics taken care of first.

Hi @Tratcher, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

Nobody?

Looked at this yesterday, and changes look good to me, though I'm not a domain expert to say "shipit"

Reviewed offline by @brentschmaltz


[Bug] Benchmarking tool running immediately and not producing any output

I am having issues running the benchmarking tool, I am not sure if this is something that has been encountered. In the terminal, I am inputting :
python tools/benchmarking/benchmark.py --config tools/benchmarking/benchmark_params.yaml
and receiving as an output almost immediately (about 2 seconds in total):
Benchmarking started 🏃♂. This will take a while ⏲ depending on your configuration. 2023-06-08 15:31:28,554 - /app/myanomalib/anomalib/tools/benchmarking/benchmark.py - WARNING - Config requested GPU benchmarking but torch could not detect any cuda enabled devices Finished gathering results ⚡
This is my benchmark_params.yaml file content:
seed: 42
compute_openvino: false
hardware:
  - gpu
writer:
  - wandb
grid_search:
  dataset:
    name: hazelnut
    format: folder
    root: {str(root_directory / "datasets" / "hazelnut_toy")}
    normal_dir: good # name of the folder containing normal images.
    abnormal_dir: colour # name of the folder containing abnormal images.
    normal_test_dir: null
    task: segmentation # classification or segmentation
    mask: /anomalib/datasets/hazelnut_toy/mask/colour
    extensions: .jpg
    split_ratio: 0.2
    category:
      - colour
      - crack
    image_size: [128, 256]
  model_name:
    - padim
    - stfpm

I am just hoping to get some sort of output, but as of right now there is nothing and so I am not sure where to start.  I have not changed anything else outside of this file, I have been just working my way through the 'Training with Custom Data' tutorial.  I am running this all in a docker container that is almost identical to the developer container in the git repository.  Let me know if anything seems familiar here or anything jumps out.  Thanks!

Hello @davidlauerman.
The error says you don't have cuda enabled gpus on your system. Can you verify that you have proper version of torch, that also includes cuda support?

Even after this. Your config doesn't look quite right. Currently there is a discrepancy between docs, code and notebooks, so this should be fixed. I believe @ashwinvaidya17, as the author of benchmark, knows the most about this.
The default included benchmark_params.yaml does work, if you want to use mvtec examples.
Here is also config you have for hazelnut_toy that I fixed and verified that is working:
seed: 42
compute_openvino: false
hardware:
  - gpu
writer:
  - wandb
grid_search:
  dataset:
    name: hazelnut
    format: folder
    root: datasets/hazelnut_toy
    normal_dir: good # name of the folder containing normal images.
    abnormal_dir: colour # name of the folder containing abnormal images.
    normal_test_dir: null
    task: segmentation # classification or segmentation
    mask_dir: mask/colour
    extensions: .jpg
    split_ratio: 0.2
    category:
      - colour
      - crack
    image_size: [128, 256]
  model_name:
    - padim
    - stfpm


Adding RateLimitLayer results in a compilation error

I am not sure why the error happens, but as soon as I remove the RateLimitLayer, the error disappears.

Here is what the code looks like:
           .register_with_count(3, {
                WorkerBuilder::new("perform_application_job")
                    .layer(ApalisRateLimitLayer::new(
                        rate_limit_num,
                        Duration::new(5, 0),
                    ))
                    .layer(ApalisTraceLayer::new())
                    .data(importer_service_1.clone())
                    .data(exporter_service_1.clone())
                    .data(media_service_4.clone())
                    .data(exercise_service_1.clone())
                    .with_storage(perform_application_job_storage.clone())
                    .build_fn(perform_application_job)
            })

Tried changing the order of layers, count from 3 -> 1. Did not work.

https://github.com/IgnisDa/ryot/blob/b9019dfa1f5948c071857a076ac7e14146d592d8/apps/backend/src/main.rs#L310-L322 are the lines if you are interested.

Could you try to check clone and check service clone?
https://docs.rs/tower/latest/tower/builder/struct.ServiceBuilder.html#method.check_clone
You can access the service builder using WorkerBuilder.chain

@geofmureithi I am not sure what I need to do with the methods you gave. I added them to my code, it didn't change the error.

Have you checked this issue?
https://github.com/geofmureithi/apalis/discussions/256

See also
https://github.com/tokio-rs/axum/discussions/987#discussioncomment-2678595
The issue is that from 0.5 apalis needs the service to be clone yet tower rate limit is not clone.
The suggested option is to include BufferLayer infront of the rate limit one.

The suggested option is to include BufferLayer infront of the rate limit one.

I did that, still does not work. The error has changed:

Seems the issue here is with tower.
Can you try using .chain
Can you also try using a custom implementation eg https://medium.com/@khalludi123/creating-a-rate-limiter-middleware-using-tower-for-axum-rust-be1d65fbeca

Got it working with:
            .register_with_count(
                1,
                WorkerBuilder::new("perform_application_job")
                    .data(importer_service_1.clone())
                    .data(exporter_service_1.clone())
                    .data(media_service_4.clone())
                    .data(exercise_service_1.clone())
                    .with_storage(perform_application_job_storage.clone())
                    .chain(|s| {
                        s.layer(BufferLayer::new(1024))
                            .layer(ApalisRateLimitLayer::new(
                                rate_limit_num,
                                Duration::new(5, 0),
                            ))
                            .layer(ApalisTraceLayer::new())
                    })
                    .build_fn(perform_application_job),
            )

Should I keep this issue open? (Since I had to use a workaround).

I will check the problem then close it.

Cool! Thanks for your guidance.

@geofmureithi Any updates on this?

@geofmureithi Sorry for the ping. Were you able to find the problem?

Currently I have the register method able to work without clone. The issue though is when using register_with_count, I am trying to figure something. Will update in upcoming 0.6 releases.

This has been fixed by #348

@geofmureithi Thanks. Can you cut a new release?

There is v0.6.0-rc.1


Touches moves not detected

Hi and thank you for the great job on that library,
I'm having an issue with what should be a default behavior of the index:
When I tap an item, tableViewIndex(tableViewIndex, didSelectItem, atIndex) is called, but not if I swipe through the index bar. It seems like touchesBegan is called, but not touchesMoved.
Most of my code is copied from the demo example which works perfectly fine, so I don't really know where to investigate.
Do you by any chance have an idea of what causes the issue?
Let me know if you need more info
Thanks!

Hi,
thanks for the kind words!
Which setup do you use? Manual layout or using TableViewIndexController?

Here's how I'm configuring the index :
tableViewIndexController = TableViewIndexController(tableView: homeTableView)
        tableViewIndexController.tableViewIndex.delegate = self
        tableViewIndexController.tableViewIndex.dataSource = self

        tableViewIndexController.tableViewIndex.backgroundView?.backgroundColor = UIColor.clearColor()
        tableViewIndexController.tableViewIndex.font = UIFont(name: "HelveticaNeue-Medium", size: 11)
        tableViewIndexController.tableViewIndex.tintColor = UIColor.darkGrayColor()

        tableViewIndexController.tableViewIndex.indexInset = UIEdgeInsets(top: 3, left: 5, bottom: 3, right: 5)
        tableViewIndexController.layouter = { homeTableView, tableIndex in
            var frame = tableIndex.frame
            frame = self.indexView.frame
            tableIndex.frame = frame
        }

where self.indexView is a view I set up in IB to have a frame set with Autolayout.
homeTableView is my table view, which is contained in a UIViewController.
didSelectItem method is basically the same as the one you have in your example code:
func tableViewIndex(tableViewIndex: TableViewIndex, didSelectItem item: UIView, atIndex index: Int) {
        let sectionIndex = self.mapIndexItemToSection(item, index: index)
        if sectionIndex != NSNotFound {
            let sections = homeTableView.numberOfSections
            let indexPath = NSIndexPath(forRow: NSNotFound, inSection: sectionIndex >= sections ? sections - 1 : sectionIndex)
            homeTableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: false)
        } else {
            homeTableView.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0), atScrollPosition: .Top, animated: false)
        }
    }

Could you please write here the value of a frame you set to the table index?

Here's the frame for MYTableViewIndex at runtime:
MYTableViewIndex: frame = (351 284; 24 383);
And here's the frame for MYTableViewIndex.IndexView:
MYTableViewIndex.IndexView: frame = (5 3.5; 14 378);
I noticed MYTableViewIndex.IndexView is a bit smaller, could it be the cause of the problem?

Hm, probably it is too narrow so the finger can't hit the touch area.
By default Table index is 44pt width. Most of its area is transparent and only needed for touch handling. If you want to modify the visible part of it, you can use indexInset property of TableViewIndex.

Upon further inspection, it seems to work sometimes, it can swipe on a few indexes (like 2-4). I guess you're right about the fact that touch area is too narrow. I'm going to investigate further and let you know if I find a solution.

Well, the solution is simple - make it at least 44pt width.
Is there any particular reason why you want it to be narrower than that?


[WIP]: Rewrite TLS related code.

This PR rewrite the tls layer and tls protocol related code.

Add peek method in tornado_ext/iostream.py
Use peek method to get alpn and hostname.
Destination start_tls is now non-blocking.
Remove start_tls_block since it's now useless.
Porting pyca tls module from mitmproxy.
Port peek_client_hello from mitmproxy.

@chhsiao90 Even though it is still WIP, please help me review this part. I'll update the unittest later.

Coverage decreased (-1.8%) to 78.077% when pulling 1896e7752abe69fa780a91a157f63127636196c7 on peeking-tls into 16fd551a25ce767265dd46587b2377102e4dc8cc on master.

Coverage decreased (-1.9%) to 78.007% when pulling c0fd8e2c0772e039763affa0ae4697ee91345405 on peeking-tls into 16fd551a25ce767265dd46587b2377102e4dc8cc on master.

Coverage decreased (-2.5%) to 78.007% when pulling 05604e4850f0848c7a8d7eea78c7ff6ab3f926c1 on peeking-tls into 0f1034ca502d10a151a307fe91eb7dc5cbb1d1c4 on master.

Coverage decreased (-2.5%) to 78.007% when pulling 2a0c317f37e3c5d2026eced1610be3b12c58bb57 on peeking-tls into 0f1034ca502d10a151a307fe91eb7dc5cbb1d1c4 on master.


issue #736 - adding dba group and oracle user to dba group to prevent permissions …

…problems at startup as described in issue - issue #736

The oracle user and dba group are already created by the preinstall rpm with the UID/GID 54321. Creating the user and group with the default UID/GID of 1000 doesn't solve the underlying issue with host-only mounted volumes. It merely makes the issue go away for users that have a user/group outside the container with 1000 and recreates the issue for folks that have a user/group outside the container with 54321.


Support name in SmallMoleculeComponent.copy_with_replacements

Resolves #264.

Hello @dwhswenson! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file gufe/components/smallmoleculecomponent.py:

Line 279:80: E501 line too long (88 > 79 characters)


Allow users to configure serving runtimes on a namespace basis.

Currently, https://github.com/kserve/modelmesh-serving/tree/main/docs/configuration operates on a global level. Ideally we'd allow users to create these configs at a namespace level at the highest precedence. So, the order of priority of configs would be:
modelmesh Defaults < global configmap < namespace configmap

This is somewhat related to #263

I'll just note that serving runtime specific configuration should mostly be reflected in the ServingRuntime CRD itself. What we are talking about here is more cross-cutting configuration that applies to all runtimes or is orthogonal.
Probably this wouldn't be applicable to every one of the current "global" config parameters, but would make sense for a subset.


Rules are not synchronised

explicit operator binding constructions like:
((user.department-eq "xxx") -or (user.department -eq "YYY")) -and (user.jobTitle -notmatch "ZZZ") are not being handled in the new builder as well.
This message is being shown:
"The rule builder and rule syntax text box aren't currently synchronized. This could be caused by syntax errors in connectors, property names or operators, or special rules that are not yet supported by the rule builder."
There should be a clear distinction for rules which have syntax errors and rules which are not supported by the builder. The current message is primarily suggesting an error in the syntax, while in fact the builder is just not feature complete. (Why introduce it at all at this stage, make it a private alpha version or something?)

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

ID: 5f7a4070-1be8-5f1f-0092-68fb6b9e2305
Version Independent ID: cd34312f-b507-affe-555e-1e0c63e7d494
Content: Dynamic automatic group membership rules - Azure Active Directory
Content Source: articles/active-directory/users-groups-roles/groups-dynamic-membership.md
Service: active-directory
Sub-service: users-groups-roles
GitHub Login: @curtand
Microsoft Alias: curtand

@SjoerdV Thanks for your feedback! We will investigate and update as appropriate.

This is breaking existing groups and not letting folks build new ones! WTF Microsoft!

Hey @SjoerdV  @guitarfreak58
I'm sorry for the difficulties this is causing you.
If you're still having an issue with this and it is urgent for this to be fixed, please email AzCommunity[at]microsoft[dot]com and I can enable a one time free support ticket. Please provide your Azure Subscription GUID and a reference to this thread. And hopefully we can get you on the right path again soon.
Please see : https://blogs.msdn.microsoft.com/mschray/2016/03/18/getting-your-azure-subscription-guid-new-portal/
On how to get a subscription GUID.

Hi @guitarfreak58
We apologize for any inconvenience this is causing you. If you could please provide more details on the issues you are having with existing groups or your ability create new ones, we can investigate further. The rule builder improvements are not expected to change your ability to configure rules, only add the ability to create rules with more expressions, so we'd be very interested to understand the issues you are experiencing.

@SjoerdV
Thanks very much for providing the feedback and the detailed info. You're correct that the rule builder does not support the ability to set precedence (e.g. ((user.department-eq "xxx") -or (user.department -eq "YYY"))), instead you should use the Rule syntax text box for that case, as it provides that flexibility.
For the message that is displayed, this is not intended to indicate there is an error, however, I can see how this is not properly communicated. We will update this message to add more clarity. Thanks again for the feedback.

@krbain, even a simple rule like device.displayName -startswith "XXXX" don't work anymore.  The new interface is blocking us from doing anything with the rules

I had the same error creating a new group, and it was caused by a default dynamic membership rule having the wrong syntax. The following may help you work around the issue
https://github.com/MicrosoftDocs/azure-docs/issues/37400#issuecomment-524668595

We have updated the article to clarify the behaviors. This will publish by 4 PM PDT August 30 2109
https://github.com/MicrosoftDocs/azure-docs-pr/pull/87012
Thanks for all of your feedback!
#please-close


[Question] Value range declaration

Hi! I found this library searching for the implementation in Jetpack Compose of the M3 wavy seekbar.
I'm trying to implement it but I wasn't able to found a parameter to define the range of the bar for when seeking. Could you explain to me a little bit how does this work? (the idea is something like what you have in the GIF of the README)

Hi
Do you mean something like the below image?

I thought something like this would not be needed. So, there is no RangeWavySlider.
Do you need a RangeWavySlider like RangeSlider?
If you want something similar to the GIF of the README, this is how I've done it:
@Composable
fun App() {
    var progress by remember { mutableStateOf(0f) }
    MySlider(
        length = 30.seconds,
        progress = progress,
        onSeek = { progress = it }
    )

    // Simulate (fake) media progress
    LaunchedEffect(Unit) {
        while (true) {
            val p = (progress + 0.01f) % 1f
            progress = p
            delay(300.milliseconds)
        }
    }
}

@Composable
fun MySlider(
    length: Duration,
    progress: Float,
    onSeek: (Float) -> Unit
) {
    var isSeeking by remember { mutableStateOf(false) }
    var seek by remember { mutableFloatStateOf(progress) }
    var time by remember { mutableStateOf(length * progress.toDouble()) }
    LaunchedEffect(isSeeking, progress) {
        while (isSeeking) {
            time = length * seek.toDouble()
            delay(30.milliseconds)
        }
        time = length * progress.toDouble()
    }
    Row(
        verticalAlignment = Alignment.CenterVertically
    ) {
        Timestamp(time = time, textAlign = TextAlign.Start)
        WavySlider(
            value = if (isSeeking) {
                seek
            } else {
                progress
            },
            onValueChange = {
                isSeeking = true
                seek = it
            },
            onValueChangeFinished = {
                isSeeking = false
                // Call onSeek only when the seek has finished (to prevent continuous media seeking)
                onSeek(seek)
            },
            modifier = Modifier.weight(1f)
        )
        Timestamp(time = length, textAlign = TextAlign.End)
    }
}

@Composable
fun Timestamp(
    time: Duration,
    textAlign: TextAlign
) = Text(
    text = time.toString(DurationUnit.SECONDS), // OR format the duration however you want (e.g. mm:ss)
    textAlign = textAlign,
    // The width of the timestamp components is fixed (constant).
    // This is to prevent their width to change when their text changes (because the font is not monospace).
    // If, instead, the dynamic width were used (i.e. not specifying a constant width == the default wrap size),
    // a change in timestamps text (and hence their component width)
    // caused the width of the slider to change as well by a tiny amount
    // because the slider is set to take the remaining width of the parent.
    // This caused problem when dragging the slider thumb with mouse
    // (could not drag the thumb continuously, as it got stuck and did not change anymore).
    // Could also have used a monospace font and then this wouldn't be required anymore.
    modifier = Modifier.width(43.dp)
)

Hi! First of all thank you for the fast response and such a nice example but it is not that. Maybe it was my fault, but the value of the seekbar goes from 0f to 1f, no? Maybe that was the problem. The problem was the next:

With the original slider implementation of M3, we can define the range of the values we want to change (not just from 0f..1f)

Oh. That range!
OK. This is a valid feature request and the component does not support it yet.
Before/if that is implemented, you can normalize your values to the 0f..1f range like below:
// Use remember {} and so on if needed...
val myMusicToatlLengthInMilliseconds = 187_000 // OR probably you get it from your media player
val myMusicProgressInMilliseconds = 10_000 // OR probably you get it from your media player
val min = 0 // Minimum desired/allowed value
val max = myMusicToatlLengthInMilliseconds
val value = (myMusicProgressInMilliseconds - min).toFloat() / (max - min)
WavySlider(
    value = value,
    ...
)

Yess, thank you mate! And also for such a fast response!

Nice, thanks for the implementation!


Crashes Server 1.5.0 1.20.4

What the title says. Right clicking with painting in hand instantly crashes the server. https://mclo.gs/kx28HYC Switching to 1.4.1 on the server seems to fix it.

I'll have a PR for 1.20.1 in a few minutes to fix this


it won't download the selenium standalone server correctly if the second minor is double digits

The latest selenium-standalone server version is 3.141.59. So the second minor version is .59. That caused the issue when it was downloading Selenium server since the path is not correct:
A service failed in the 'onPrepare' hook
Error: Could not download https://selenium-release.storage.googleapis.com/3.1419/selenium-server-standalone-3.141.59.jar
at Request. (/Users/xcao/Desktop/qa-ui-functional/node_modules/selenium-standalone/lib/install.js:373:21)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at Request.onRequestResponse (/Users/xcao/Desktop/qa-ui-functional/node_modules/request/request.js:1066:10)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at HTTPParser.parserOnIncomingClient (_http_client.js:544:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:117:17)
at TLSSocket.socketOnData (_http_client.js:440:20)
at emitOne (events.js:116:13)
Continue...
ERROR: connect ECONNREFUSED <IP_ADDRESS>:4444
Notice the correct download file path is https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
in wdio.conf.js I have this seleniumArgs and installArgs:
exports.config = {
seleniumInstallArgs: { version: '3.141.0', drivers: { chrome: { version: '2.45' } } },
seleniumArgs: { version: '3.141.0', drivers: { chrome: { version: '2.45' } } },
...
}

Does @wdio/selenium-standalone-service download selenium-standalone on it's own?
Or do we need to also have the selenium-standalone node module installed independently?
Example dependencies section of package.json:
  "dependencies": {
    "@wdio/sauce-service": "^5.3.2",
    "@wdio/selenium-standalone-service": "^5.2.2",
    "@wdio/spec-reporter": "^5.2.3",
    "@wdio/sync": "^5.3.2",
    "chai": "^4.2.0",
    "webdriverio": "^5.3.5"
  },
  "devDependencies": {
    "@wdio/cli": "^5.3.5",
    "@wdio/local-runner": "^5.3.5",
    "@wdio/mocha-framework": "^5.3.2",
    "chai-webdriverio": "^1.0.0",
    "chromedriver": "^74.0.0",
    "geckodriver": "^1.16.2",
    "selenium-standalone": "^6.15.4"
  }
}


revert: remove optimize parameter

Note: Please do not merge this PR until it is marked as ready to review.

Types of changes

[ ] Chore (a non-breaking change which is related to package maintenance)
[ ] Bug fix (a non-breaking change which fixes an issue)
[ ] New feature (a non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)

Description
This PR reverts #285.
#285 was motivated by a need to cache-bust /api/v2 requests in Next.js apps using its recently-released fetch() caching behavior. This strategy ultimately did not work.
The optimize parameter should be removed now that it does not have a real-world purpose.
Note: This also removes the x-valid-until URL parameter that was added to /api/v2 in #285.
Note: This PR retains a bug fix in the concurrent requests logic from from #285.
Checklist:

[ ] My change requires an update to the official documentation.
[x] All TSDoc comments are up-to-date and new ones have been added where necessary.
[x] All new and existing tests are passing.

🐧

Codecov Report

Merging #290 (1297e7f) into v7 (343534f) will increase coverage by 0.05%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##               v7     #290      +/-   ##
==========================================
+ Coverage   99.89%   99.94%   +0.05%
==========================================
  Files          49       49
  Lines        5805     5650     -155
  Branches      311      299      -12
==========================================
- Hits         5799     5647     -152
+ Misses          6        3       -3

Impacted Files
Coverage Δ

src/createClient.ts
100.00% <100.00%> (+0.15%)
:arrow_up:


feat(ecc-utils-design): input field

Description

This issue aims to introduce a well-defined and consistent input field component to the ECC Utils design system.

@git-anurag-hub, I've been a little busy over this past week and next week will also be a little bit hectic for me, and there's also the issue of the config issue that I've been trying to work around, but I was hoping to finish setting up testing for the current components before we add more at least so we can be somewhat up-to-date on a testing template while we proceed.
However, if you feel this is urgent you can go ahead and I'll catch up with the testing, so I don't hold you up to much.


Misc 3

Coverage decreased (-0.2%) to 74.937% when pulling f2a119fff35fe53e901ae1d62b2db047cb991898 on PascalSchumacher:misc_3 into f228b7b00494555ab2d854a752c028e199302f25 on benas:master.

I'm kind of puzzled, how this pull request decreases code-coverage?

Indeed, it's a bit strange to see a code coverage decrease with these changes. Never mind ..


i18n(pt-BR): update editor-setup.mdx

Description (required)
Update and review i18n/pt-br/editor-setup.mdx file

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

pt-br
editor-setup.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Do not allow mixing of flags in renew cert

Description
Made changes, so that to flags present in below commands cannot be mixed.
a. dapr mtls renew-certificate -k --ca-root-certificate <ca.crt> --issuer-private-key <issuer.key> --issuer-public-certificate <issuer.crt>
b. dapr mtls renew-certificate -k --private-key myprivatekey.key
if any one of the flags is provided in 1st command, it will still try to execute the flow assuming all 3 are provided and will throw error if not all params are provided.
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #941
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[ ] Created/updated tests
[ ] Extended the documentation

add e2e validating this behavior ...

Added e2e for all negative scenarios with handling of flags

confirmed from @yaron2 That this is ok ...


Dropdown Doesn't Support Remote Category Search

When using a Dropdown with remote data, it doesn't seem possible to use a type: category in the remote search.  Instead, the listing is flat!

Type category is a feature of search, not dropdown.

Hrm.  It seems dropdown has search-like capability, including similar apiSettings, so I expected the behavior to be similar.  How might one provide a multi-selection searchbox then, as it doesn't seem that Search supports this: http://semantic-ui.com/modules/dropdown.html#multiple-search-selection


Move device-links.txt after script rerunning

Move device-links.txt to device-links-.txt after rerunning the script. Currently it gets deleted and overwritten.

Fixed with https://github.com/craeckor/user-agent-scraper/commit/0f812506bf7ac39a889852c5c1059dd57ff5c1de


Required resources and time for training

Hello
Thanks for your inspiring work.
Is the current code complete and ready for running?  And what GPU do you use and how long does it take to finish training?

It takes ~48 hours for Phase 1 (Learning to Localize 3D Objects), ~24 hours for Phase 2 (Learning to Classify 3D Objects), which tests under an 8x2080Ti GPU Server.


[stable/external-dns] Add support for Infoblox external-dns

Signed-off-by: Raphael Badin<EMAIL_ADDRESS>What this PR does / why we need it:
Add support for Infoblox.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

@paulczar Okay, I can do that.  I've seen the error from the CI but I figured it would be a bit weird to put my name since I'm only contributing a tiny change... and since there is no maintainer today things must have landed in the past without any maintainer.

@paulczar Please have a look when you get a chance. I've made the requested change.

/ok-to-test
/lgtm
/approve


ColliderEventEnd

Hi! Thanks for such a great component :) I hope it's ok to ask for support here. Happy to post elsewhere if you prefer.
I'm trying to detect the end of a collision so that I can get the current position of the object I moved with the superhands component.
I see this defined in your example in the README:
      <a-mixin id="controller"
               physics-collider
               static-body="shape: sphere; sphereRadius: 0.02"
               super-hands="colliderEvent: collisions;
                            colliderEventProperty: els;
                            colliderEndEvent: collisions;
                            colliderEndEventProperty: clearedEls"
               collision-filter = "group: hands;
                                   collidesWith: red, blue;
                                   collisionForces: false">
      </a-mixin>

My question is around the colliderEndEvent. Can I assume that I can set this to an arbitrary string and then detect that event like so?
        <a-mixin id="controller"
                 physics-collider
                 static-body="shape: sphere; sphereRadius: 0.02"
                 super-hands="colliderEvent: collisions; colliderEventProperty: els;
                              colliderEndEvent: collisionEnds; colliderEndEventProperty: clearedEls;">
        </a-mixin>

then in js
var rHand = document.getSelector('#rightHand'); // assuming rightHand is the id of the controller with the superhands component attached
rHand.addEventListener('collisionEnds', function(e) {
  console.log(e);
}

Or do I somehow have to create that event first?
Thanks for any help you can offer.

Thanks for the kind words. Those collider properties on super-hands are input parameters that tell it what events to expect from your chosen collision detection component. In that example, we are configuring super-hands to listen for the 'collisions' event that physics-collider generates.
What you're looking for are the gesture events that super-hands creates by interpreting input from controller buttons, movement, and collisions. 'hover-end' will be emitted on an entity when the collision with a controller ends. You may also want 'grab-end' which will be emitted from an entity that has been grabbed once the grabbing button is released.
The reaction components also add and remove states on the affected entities, so you could listen for 'stateremoved' with event.detail.state === 'hovered' / event.detail.state === 'grabbed' (A-Frame <= v0.7.1) or event.detail === 'hovered' / event.detail === 'grabbed' (A-Frame master). Listening for states is the more precise option because, while a gesture event communicates intent to perform an action, state changes communicate an action has been taken. In many cases these are the same, but they can differ under more advanced configurations (e.g. if you have filtered your reaction components to only accept specific buttons or if you don't have all reaction components enabled on all collidable entities)
Since all of these are coming not from the hands but from the affected entities, you'd want to register your listeners on your a-scene rather than the hand so that they will bubble up to the listener. event.target will point to the affected entity and, in the case of the gesture events, event.detail.hand will point to the controller entity.

Ah, thank you for the explanation. In this case it would seem that since I want the position of the element that I moved with my hands, I should probably be listening to the events that particular element emits instead of the ones coming from superhands. Still, this helps me understand what is going on so thank you for the reply.


Privacy policy

I don't see a privacy policy.  Is any user data captured for any reason?  And, if so, is any user data shared?

According to the README:

No backend server required, just open the index.html file and get started.

I've read through the code briefly, and it seems to be true that it's all local.  But a separate privacy statement from @Xaeroxe could help clarify for those who are nervous.

No data is sent to any endpoint by this form. All data is kept locally on your machine. Because I'm not capturing anything I feel a privacy policy would be extraneous and possibly give users the wrong idea about this project.

(I intend on leaving this issue open as it might be helpful to others with the same question.)


color status code red/green for error/OK

AFAIK there is simple UI way to set color of label? maybe 10 otters?


Problem with heroku

Hello,
Your api is really great, and i wanted to tell you that the heroku server has an application error!
Thank you!

Actually, the application reworked, no idea why! Thank you again!

Huh okay, let me know if it's down again. Sometimes towards the end of the month the app runs out of free heroku dyno hours. Glad you've found this useful.

hey, thanks for implementing this. It seems to be down sporadically (like now). Maybe you are on heroku free tier and it is throttling?

I know there is some throttling, but I restarted the app and it appears to be working again. So there must be some unhandled exception that caused it to throw. I didn't see anything helpful in the logs when it was down, but there's a lot to go through so I can try to find better info later.


detect: skip binary files with --no-git

Description:
This PR includes a check to skip binary files when --no-git is specified. This behavior matches the DetectGit code path.
Checklist:

[ ] Does your PR pass tests?
[ ] Have you written new tests for your changes?
[ ] Have you lint your code locally prior to submission?

Fixes: https://github.com/zricethezav/gitleaks/issues/795

Just did some local testing and this helps a ton. Thanks so much for the contribution @adamdecaf


Matching doc to proposed changes on the sample app

Please see this PR for more info:
https://github.com/Azure-Samples/documentdb-dotnet-todo-app/pull/9
In that PR, the proposed changes update the sample app to better match the docs when setting up the CosmosDB collection. The docs here reference the code so these changes are meant to reflect the proposed changes on the other PR.
FYI @mimig1 @SnehaGunda

@joseph4tw : Thanks for your contribution to the Azure documentation! The author, @mimig1, has been notified to review your proposed change.

@joseph4tw  https://github.com/Azure-Samples/documentdb-dotnet-todo-app/pull/9 should be merged before this PR, we will get back soon.

Other PR is merged, so we can merge this now.

#sign-off

@SnehaGunda: I'm sorry - only the author of this article, @mimig1, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off


TImage and SKIA

I have three photos. My app displayed them correctly.
I used to download them from the internet as a stream and display them in TImage.
I just activated SKIA in Windows, there is no problem and it is displayed correctly. In Android and iPhone, the color of the photo changes.
Link to download photos :
https://cevahirsoft.com/flag/1.bmp
https://cevahirsoft.com/flag/3.bmp
https://cevahirsoft.com/flag/3.bmp
What the program displays:

Are you using the latest version (4.0.2)? You can check your version in Skia.pas.

I download it today from getit

@kabiri I tested here with Android64 + Delphi 11.2 + Skia Enabled, using the code:
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects;

type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses
  System.Net.HttpClient, System.Net.URLClient;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TURLStream.Create('https://cevahirsoft.com/flag/1.bmp',
    procedure (AStream: TStream)
    begin
      Image1.Bitmap.LoadFromStream(AStream);
    end);
end;

end.

And the result was correct:

Can you tell us more info, like your RAD Studio version. I really think that you are using an old version of the library. I'm not sure if Embarcadero continues to update the GetIt of RAD Studio versions prior to the lastest (Alexandria), so to be on the safe side, I recommend downloading the github setup instead of using the GetIt version, if you aren't in Delphi 11 Alexandria.
https://github.com/skia4delphi/skia4delphi/releases

i use Delphi 11 Alexandria.
i remove SKIA from getit and install it from your link,
But it is the same
I checked the SKIADIR variable and the path is correct.
Do I need to delete bpls manually?

@kabiri Can you made a test? Just run the follow ShowMessage code:
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses
  Skia;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowMessage(SkVersion);
end;

end.

OK

@kabiri To help you I have to be able to simulate your problem, so I need more information. Your Alexandria is 11.2 or previous?Can you tell me the device model and OS version? Perhaps the problem is in the way you load the image, so it would be interesting for you to run the same code that I used to test it so that we can compare the results. https://github.com/skia4delphi/skia4delphi/issues/197#issuecomment-1375782397

I think I understand the problem.
when i create this file
`unit Project.Startup;
interface
implementation
end.
initialization
GlobalUseXXX;
GlobalUseSkia := True;`
and use it
uses
System.StartUpCopy,
FMX.Forms,
Skia.FMX,
Project.Startup in 'Project.Startup.pas',
....
Trouble happens

@kabiri My test also set the GlobalUseSkia := True;, to enable the render replacement to the Skia, and it works here perfectly.
Can you test the simple project I created? TestBitmapColor.zip

Again, it works fine here:

Can you take a print of the entire Library Path of your IDE?

You mean that?
$(BDSLIB)$(PLATFORM)\Release;$(BDSCatalogRepository)\BossExperts-1.0\Source;$(BDSCatalogRepository)\DelphiEventBus-2.0\source;$(BDSCatalogRepository)\TFrameStand-1.8-11\Src\source;$(BASECMP)\UniDAC for RAD Studio 11\Lib\Android64;$(BASECMP)\Kastri\API;$(BASECMP)\Kastri\Controls;$(BASECMP)\Kastri\Core;$(BASECMP)\Kastri\Features\ADB;$(BASECMP)\Kastri\Features\AudioPlayer;$(BASECMP)\Kastri\Features\Barcode;$(BASECMP)\Kastri\Features\Biometric;$(BASECMP)\Kastri\Features\Camera;$(BASECMP)\Kastri\Features\Connectivity;$(BASECMP)\Kastri\Features\FilesSelector;$(BASECMP)\Kastri\Features\Firebase;$(BASECMP)\Kastri\Features\Geofence;$(BASECMP)\Kastri\Features\Location;$(BASECMP)\Kastri\Features\NFC;$(BASECMP)\Kastri\Features\Notifications;$(BASECMP)\Kastri\Features\Proximity;$(BASECMP)\Kastri\Features\ShareItems;$(BASECMP)\Kastri\Features\SMS;$(BASECMP)\Kastri\Features\SoundPlayer;$(BASECMP)\Kastri\Features\SpeechRecognition;$(BASECMP)\Kastri\Features\SymbolScanner;$(BASECMP)\Kastri\Features\UniversalLinks;$(BASECMP)\Kastri\Features\WebBroker;$(BASECMP)\Kastri\Include;$(BASECMP)\Playground\API;$(BASECMP)\Playground\Controls;$(BASECMP)\Playground\Core;$(BASECMP)\Playground\Features\AlertView;$(BASECMP)\Playground\Features\AppUpdate;$(BASECMP)\Playground\Features\Beacons;$(BASECMP)\Playground\Features\Location;$(BASECMP)\Playground\Features\MediaManager;$(BDSCatalogRepository)\BossExperts-1.0\Source;$(BASECMP)\RESTRequest4Delphi\src;$(BASECMP)\dataset-serialize\src;$(BASECMP)\RTLFixer\RTL-Packages\Source;$(BDSCatalogRepository)\GLibWMI-3.1\sources;$(BASECMP)\woll2woll\firepower\14.0\source;$(BASECMP)\GBg Shamsi date 2;$(BASECMP)\ZigShamsiPicker;$(BASECMP)\JVEsuite;$(BASECMP)\ZigControlAutoMover;$(BASECMP)\Kastri\Features\TextToSpeech;$(BDSCatalogRepository)\DelphiEventBus-2.0\source;$(BASECMP)\Kastri\Include;$(BASECMP)\UniDAC for RAD Studio 11\Lib\Android64;$(BASECMP)\alcinoe\source;$(BASECMP)\sgcWebSockets professional\libD11$(Platform);$(BASECMP)\Kastri\Features\AdMob;$(BDSCatalogRepository)\SVGIconImageList-11-3.9.3\source;$(BDSCatalogRepository)\SVGIconImageList-11-3.9.3\Image32\source;$(BDSCatalogRepository)\SynEdit-11\source;$(BDSCatalogRepository)\SynEdit-11\source\Highlighters;$(BDSCatalogRepository)\MobilePermissions\Source;$(BASECMP)\Steema TeeChart Pro VCL FMX Source Code 2021.33\Compiled\Delphi28.android64\Lib;$(SKIADIR)\Source;$(SKIADIR)\Source\FMX
when i use Project.Startup :

when i don't use Project.Startup :

I finally simulate the problem.

It's occurs when you use the Skia but without it render (i.e, without the GlobalUseSkia := True;) and you use an image format provided by skia library (we only register image decoders that the FMX doesn't support, like bmp, gif, webp, ico...). Now, we will fix it, but as workaround, you can just enable our render (it will not work with alcinoe), or you can also replace the image format to PNG or JPG, to avoid the Skia codecs.

As a maybe related question. What do you mean ‘it does not work with alcinoe’ because:Im using the alicinoe vertical listbox with the Skia enabled and with the TskAnimated image which works great. Op 10 jan. 2023 om 19:28 heeft Vinícius Felipe Botelho Barbosa @.***> het volgende geschreven:
I finally simulate the problem.
It's occurs when you use the Skia but without it render (i.e, without the GlobalUseSkia := True;) and you use an image format provided by skia library (we only register image decoders that the FMX doesn't support, like bmp, gif, webp, ico...). Now, we will fix it, but as workaround, you can just enable our render (it will not work with alcinoe), or you can also replace the image format to PNG or JPG, to avoid the Skia codecs.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

As a maybe related question. What do you mean it does not work with Alcinoe because: I'm using the Alicinoe vertical listbox with the Skia enabled and with the TSkAnimated image which works great.

@Spelt Alcinoe is one of the few libraries that are not compatible with Skia's renderer, that is, with GlobalUseSkia := True; on mobile, because in several units it makes TCanvas hardcasts, like TGPUCanvas(ACanvas).xxx , and since our renderer registers our own TCanvas, hardcasting it into the default canvas will give an AV. I reported this to them issue 235 (Compatible with custom Canvas) and from what I've seen in recent changes @Zeus64 is adapting the code to support custom canvas. Maybe you don't have a problem, because the part of the code you use doesn't do this hardcast, or you're only using it on Windows.

Of course I GlobalUseSkia := True; I have set it in the Project.Startup.pas file. Because in the main program (the demo I uploaded was not like that) it was saying that the canvas service was already running, that's why I used this method.
Unfortunately, I could not use alcinoe, and only its path was added to Delphi.

I think it's little more complicate than this. To be able to create bitmap in background thread, In alcinoe we use TTexture instead of TBitmap and we use directly the OS API (on Android/iOS) to create the bitmap. TTexture work under OpenGL and for this we must work with the TGPUCanvas

I think it's little more complicate than this. To be able to create bitmap in background thread, In alcinoe we use TTexture instead of TBitmap and we use directly the OS API (on Android/iOS) to create the bitmap. TTexture work under OpenGL and for this we must work with the TGPUCanvas. Of course we can maybe swap all of this to skia, but I doubt that in skia we can work with Tbitmap in background thread but need to check

@Zeus64 Thanks for considering this!
TBitmap with or without Skia already supports drawing in background thread normally (there is only one or two issue, related to the fact that System.Messaging is not thread safe and TCanvas.Destroy and TTextLayout use the same, but it is extremely rare this type of error occurs). TBitmap's limitation for background thread drawing is that it is not done in a really parallel way, as TCanvas has a lock that locks all others (including the UI) to make drawings between BeginScene and EndScene, and this is a limitation of FMX, and even enabling Skia, nothing changes about it.
However, it is possible to draw images in the background thread using only the Skia APIs, to don't lock the rendering, and then convert the resulting SkImage to a TBitmap, or even directly paint the resulting SkImage on the canvas, if it is of the TSkCanvasCustom type .
In case you choose to draw using the Skia APIs, we can make something that facilitates this (on the Skia4Delphi side). A TSkFMXCanvasWrapper class that would be a TCanvas that would encapsulate a desired SkCanvas, and then every part of the drawing would be done by drawing on a TCanvas, without Skia APIs.
There are several possibilities.

@kabiri If you choose the 'replace .bmp format to .png or .jpg' workaround, it might only work if you add GlobalDisableSkiaCodecsReplacement := True;

@viniciusfbb i change bmp to png and set GlobalDisableSkiaCodecsReplacement := True;
The problem is solved for now.
Thanks

Fixed in last release (v4.1.0)


IO, EOF, and Connection Errors when indexing

We get lots of errors whenever we reindex. They eventually resolve and clear out. The 3 errors we see repeatedly are

EOFError: end of file reached
IOError: stream closed in another thread
Blacklight::Exceptions::ECONNREFUSED: Connection refused - Unable to connect to Solr instance

This appear to be resolved.


core dataset features

A user should be able to interact with a dataset against a local directory.
Initialise a local directory as a dataset
deploifai dataset init

The entire local directory is linked to the remote dataset. It becomes a mirror of the dataset.
Might need to write some kind of config into the global configuration file: save the absolute path of the local directory and the dataset together?
Push data
Upload files to the linked dataset, given a path to a

directory (can be the local directory .): upload entire directory
a file: upload this file

deploifai dataset push [local-path]

The local directory hierarchy should be respected when uploaded data to the remote dataset, i.e. the mirror is upheld. That means careful path prepending is necessary.
This command should only work if the current directory is a directory linked to a dataset, or a subdirectory there of.
Pull data
Downloads files from the linked dataset, given a remote path. A remote path can be

a directory

deploifai dataset pull [remote-path]

The remote directory hierarchy should be respected when downloading data to the local directory, i.e. the mirror is upheld. That means careful path prepending is necessary.
This command should only work if the current directory is a directory linked to a dataset, or a subdirectory there of.
Get info about the current directory
Checks if the current directory is linked to a dataset. This command should also work if it runs inside a subdirectory of the main directory linked to the dataset.
deploifai dataset info

Expected output:
In root of directory linked to dataset
Linked to dataset-name

In subdirectory of directory linked to dataset
Linked to dataset-name/subdirectory-1/subdirectory-2

@utkarsh867 could you give me an opinion on this design?


[BUG] 2023-08-16 21:02:57,141 [ERROR] KeyError: 'username'←[0m

Before submitting a bug report...

[X] This bug wasn't already reported.
(I have checked every bug report on GitHub)

Title

[X] The title is no longer "[BUG] Title" and I edited it with the right error name.

Describe the bug
Hello i get this problem
New version available !
Removing old files...
Downloading...
Extracting...
Done !
Starting...
←[38;5;39m2023-08-16 21:02:57,168 [INFO] ****************************************←[0m
←[38;5;196m2023-08-16 21:02:57,169 [ERROR] KeyError: 'username'←[0m
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\Microsoft-Rewards-Farmer-master\main.py", line 24, in main
    executeBot(currentAccount, notifier, args)
  File "C:\Users\Administrator\Desktop\Microsoft-Rewards-Farmer-master\main.py", line 127, in executeBot
    with Browser(mobile=False, account=currentAccount, args=args) as desktopBrowser:
  File "C:\Users\Administrator\Desktop\Microsoft-Rewards-Farmer-master\src\browser.py", line 23, in __init__
    self.username = account["username"]
KeyError: 'username'

Copy and paste your error
Hello i get this problem
New version available !
Removing old files...
Downloading...
Extracting...
Done !
Starting...
←[38;5;39m2023-08-16 21:02:57,168 [INFO] ****************************************←[0m
←[38;5;196m2023-08-16 21:02:57,169 [ERROR] KeyError: 'username'←[0m
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\Microsoft-Rewards-Farmer-master\main.py", line 24, in main
    executeBot(currentAccount, notifier, args)
  File "C:\Users\Administrator\Desktop\Microsoft-Rewards-Farmer-master\main.py", line 127, in executeBot
    with Browser(mobile=False, account=currentAccount, args=args) as desktopBrowser:
  File "C:\Users\Administrator\Desktop\Microsoft-Rewards-Farmer-master\src\browser.py", line 23, in __init__
    self.username = account["username"]
KeyError: 'username'

Screenshots

Value of dashboard variable
    var appDataModule = angular.module("rewardsDataModule", []);

    var areaConfig = {
        areaPrefix: "Rewards",
        serviceEndpointRoot: "/api/",
        templateRoot: "/Areas/Rewards/ScriptsOneUI/Components/",
        testHooksAllowed: false,
        testHookQueryParams: {},
        punchCardUrlFormat: "/dashboard/{0}",
        isMobileViewModeEnabled: true,
        showDebugInfo: false,
        catalogItemImg: "//az15297.vo.msecnd.net/images/rewards/rc/{0}",
        isVisualParityTest: false,
        useNewDBS: false,
        raDbsEnabled: true,
    };

Please show you accounts.json file, it seems it's malformed

Please show you accounts.json file, it seems it's malformed

I mean redacting your emails and passwords but showing the structure of the file.

HEllo sir sorry for late

FIXED


Question about the camera points

Hi!
First of all, I'm really impressed by your work and I have a question about your code.
input_v = cam_rgb_points.attr[:, [0]]
this was in the training file so what is the camera point and why we are using this as input initial vertex features?
Another question is, what happens if we use global coordinates instead of relative coordinates for the edge feature extraction?
Thank you

Hi @thehasnism, Thank you for the questions.
The attr from cam_rgb_points are [lidar_intensity, r, g, b], the lidar intensity are a part of lidar data so we keep them in the vertex features.  As for the cam_rgb_points.xyz, they are lidar points in the camera coordinate frame. We train the model and predict the labels in the camera coordinate frame.
The global coordinates distinguish each individual point. When the object translates for distance, the global coordinates of its points changes while the relative coordinates can remain invariant. So if we use global coordinates, the network needs to handle objects at all possible locations. But if we use relative coordinates, the network sees the same object regardless of the object's location. Hope it helps. Thank you.

Hi @thehasnism, Thank you for the questions.
The attr from cam_rgb_points are [lidar_intensity, r, g, b], the lidar intensity are a part of lidar data so we keep them in the vertex features.  As for the cam_rgb_points.xyz, they are lidar points in the camera coordinate frame. We train the model and predict the labels in the camera coordinate frame.
The global coordinates distinguish each individual point. When the object translates for distance, the global coordinates of its points changes while the relative coordinates can remain invariant. So if we use global coordinates, the network needs to handle objects at all possible locations. But if we use relative coordinates, the network sees the same object regardless of the object's location. Hope it helps. Thank you.


Remove the CLI from main package to publish it separately

Hi and first thanks for the package!
I tried to setup a Lustre application by using Vite to leverage on existing tooling (live reload, etc.).
Unfortunately, Vite refuses to build when internal node modules (like child_process) are required. Because of the imports chain, the CLI is imported in the Lustre package, and Vite refuses to build because of the presence of node modules.
Because of the nature of Lustre to be 100% browser compatible, I think it could gains to separate the CLI from the package, to avoid requiring node modules in browser.
Right now, to make it work, I had to do something like this:
// vite.config.js
import * as path from 'path'
import gleam from 'vite-gleam'

const childProcess = path.resolve(process.cwd(), './src/polyfills/child_process.js')
const fs = path.resolve(process.cwd(), './src/polyfills/fs.js')

export default {
  resolve: {
    alias: [
      { find: 'node:child_process', replacement: childProcess },
      { find: 'node:fs', replacement: fs },
    ],
  },
  plugins: [gleam()],
}

// src/polyfills/child_process.js
export const spawnSync = () => {}

// src/polyfills/fs.js
export const statSync = () => {}
export default {}

It's working, and the main function will never be used in the frontend, so it's not a big deal, but it would greatly improve as a quality-of-life to kickstart a project.
It could easily be separated by having a lustre-cli package, no? Unless it's not compatible with gleam -m lustre? In this case, isn't it possible to not bundle the CLI parts in browser?

Hey, thanks for opening this! I'd really like to avoid moving the CLI into a separate package. Most people coming to Lustre will not be super experienced with frontend/js tooling and it's very high on my priorities to make the experience for those people as painless as possible: it feels like a bit of a bummer to add an extra step before they can get building.
That said it's also super important that Lustre plays nice with proper production-ready tooling! I will investigate and see if we can come up with a solution. I think some part of the problem is that gleam generates imports for unused modules so even if we mark the main function as Erlang-only it will still generate unused imports for modules like glint and simplifile, and that can upset tree-shaking because imports can have side effects. If you go poking in the cli source you'll see some awful hack I had to introduce to get esbuild to work – similar to your resolve alias trick above.
We'll work it out! 💪

Thanks for your quick answer!
I think we can also properly let the CLI in the package as long as production-ready folks used to use specific tools (Webpack, Vite, etc.) are aware of what's happening and can integrate the package easily. I spent a couple of hours trying to understand what's happening, but I really wanted Gleam and Lustre to work on my frontend. I can clearly think that someone who don't want it really much won't take so much time in a setup while others languages have things like Vite and others CLI.
In a first time, having a proper, complete setup guide with current build tool used in modern JS stack could greatly help the adoption of the framework, mainly because we need to use the existing tooling almost every time when pushing to production and having to fight against the habits acquired in JS ecosystem (and if you need that or this specific library, it's so much easier to use Vite to manage node_modules and all).


Upload with APIv2

Enable file_upload with APIv2 using data table understanding

Soon. Planning a major upgrade to APIv2 (Shane already started on it), but this would be mid-way step.


[SPARK-39861][PYTHON][DOCS] Deprecate Python 3.7 Support

What changes were proposed in this pull request?
This PR aims to deprecate Python 3.7 support at Apache Spark 3.4.0.
Why are the changes needed?
Apache Spark 3.4 will be released on February 2023 and will be supported for next 18 months.

https://spark.apache.org/versioning-policy.html

Before Spark 3.4.1, Python 3.7 is going to reach End Of Support on 2023-06-27. Although Apache Spark 3.4 will work with Python 3.7 still for a while, there is no proper and official way to support Python 3.7 from that time.

https://www.python.org/downloads/

Does this PR introduce any user-facing change?
Yes, but the users will see only a deprecation warning log and docs.
How was this patch tested?
Pass the CIs.

cc @HyukjinKwon , @ueshin , @zero323 , @xinrong-meng , @itholic

cc @viirya , @huaxingao , @sunchao , too

But it is better to open this for a while for others to take a look.

Thank you, @viirya , @sunchao , @huaxingao , @ueshin . Merged to master for Apache Spark 3.4.

Thanks for the fix!


[ALLUXIO-2018] Reduce log severity in GCS UFS

Addresses https://alluxio.atlassian.net/browse/ALLUXIO-2018

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/10357/
Test PASSed.

LGTM


[#380] Add missing date extraction functions

Fixes #380

Description

Mostly done. The missing parts are

[ ] Date extract WEEK_IN_YEAR + documentation that this might be more natural
[ ] Date extract YEAR_OF_WEEK + documentation. Possibly gives previous year 2000-01-01 is 1999
[ ] Date extract documentation regarding ISO standard and possibly surprising results of WEEK
[ ] Date truncation documentation
[ ] YEAR_WEEK function that produces the string YYYY-WW from a timestamp
[ ] epoch_diff
[ ] microsecond_diff
[ ] week_diff
[ ] quarter_diff
[ ] Date diff documentation update

Related Issue

Fixes #380
Motivation and Context

Do you want to work on the diff and trunc function implementations as well or just these?

Yes, I'll probably keep extending the PR but just want to make sure I've covered every dialect properly for these changes first.

Ok, you will probably have to apply the following as well to fix the build: https://github.com/Blazebit/blaze-persistence/pull/829/commits/1e99c925ed6c04a61e598972af834c1c99adbc5f

I'll rebase on 1e99c92 then 😄

I added date_trunc functions to the PR. All tests pass but the DB2 ones that halt : https://travis-ci.org/Blazebit/blaze-persistence/jobs/575628343 . No idea what is going on there :/

I think the problem was that the DB2 connection acquisition takes so long that we ran into a Travis CI timeout because we had no output for more than 10 minutes. I fixed that now by improving the test performance.

Let's see what it does 😄

There is something not entirely right with the timezones it seems:
(under PostgreSQL)
Failed tests:
1697  DateDiffTest.testTimestampWithDateDiff:235 expected:<-17544> but was:<-17550>
1698  DateDiffTest.testTimestampWithParameterDiff:285 expected:<397> but was:<396>
1699  ValuesClauseTest.testValuesEntityFunctionLikeCalendar:208 expected:<java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=7,WEEK_OF_YEAR=34,WEEK_OF_MONTH=4,DAY_OF_MONTH=23,DAY_OF_YEAR=235,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=9,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=0]> but was:<java.util.GregorianCalendar[time=1566496800000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=7,WEEK_OF_YEAR=34,WEEK_OF_MONTH=4,DAY_OF_MONTH=22,DAY_OF_YEAR=234,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=6,HOUR_OF_DAY=18,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=0]>

https://travis-ci.org/JWGmeligMeyling/blaze-persistence/jobs/575740890

Let's see if it works now. I think I found the issue.

[ ]  Date extract WEEK_IN_YEAR + documentation that this might be more natural

How do you want to implement this one? DAY_IN_YEAR % 7 + 1 ?

[ ]  Date extract YEAR_OF_WEEK + documentation. Possibly gives previous year 2000-01-01 is 1999

This one is going to be tricky, so far I've found an approach for one database.

[ ]  Date extract documentation regarding ISO standard and possibly surprising results of WEEK

I can add this.

[ ]  Date truncation documentation

I can add this.

[ ]  YEAR_WEEK function that produces the string YYYY-WW from a timestamp

I can add this.

[ ]  epoch_diff
[ ]  microsecond_diff
[ ]  week_diff
[ ]  quarter_diff
[ ]  Date diff documentation update

I'm personally not so invested in having diff functions, because I just subtract timestamps from each other and have a custom type that maps a PGInterval to a java Interval type which gives me a lot more clarity about the time difference (i.e. is it millis? seconds?).

How do you want to implement this one? DAY_IN_YEAR % 7 + 1 ?

Date extract WEEK_IN_YEAR + documentation that this might be more natural
How do you want to implement this one? DAY_IN_YEAR % 7 + 1 ?

That's one possibility, but there are database functions that support that as well for some DBMS.

Date extract YEAR_OF_WEEK + documentation. Possibly gives previous year 2000-01-01 is 1999
This one is going to be tricky, so far I've found an approach for one database.

If the DBMS doesn't support it, we could do SUBSTRING(YEAR_WEEK(...), 1, 4)

I'm personally not so invested in having diff functions, because I just subtract timestamps from each other and have a custom type that maps a PGInterval to a java Interval type which gives me a lot more clarity about the time difference (i.e. is it millis? seconds?).

I understand that, but blaze-persistence currently has no way to abstract intervals yet. Also, I'm not sure if we can do it for all DBMS, so having this as fallback is nice. On top of that, I'm not sure if a plain interval can provide all the same details. Just ask yourself if a 30 day interval is a month? That depends, but can be answered clearly when considering two timestamps which is why these functions matter.

MySQL has various modes for WEEK(), but none seems to match the idea behind WEEK_IN_YEAR: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week . I'm not at all sure whether there is any other kind of week we could support besides ISOWEEK that would make sense as a standard, unless we add an option to specify the mode.  Porting all the various modes to different dialects though may require us to create quite extensive custom functions.  We could use ROUND(DAY_IN_YEAR / 7, 0) as implementation for WEEK_IN_YEAR, but I don't think this has any actual sensible meaning.
I haven't found many implementations for YEAR_OF_WEEK or YEAR_WEEK in databases, but I think we should just truncate the date by week and then extract / format the result.
epoch_diff and microsecond_diff are trivial.
week_diff: would you expect ROUND(days_diff / 7, 0) or the number of iso weeks in between (in which case we probably end up having to to account for the difference in years separately)?
quarter_diff: I think we agree that this should be ROUND(month_diff / 3, 0) ? (3 months in every of the 4 quarters).
Equivalently, should add_weeks (#524) add 7 days?  And should add_quarter then add 3 months? Or should these methods truncate to the start of the iso week or quarter, and then add the interval?

ROUND(DAY_IN_YEAR / 7, 0)

Sounds good, but does ROUND(1 / 7, 0) produce 1?

YEAR_OF_WEEK

Maybe do something like YEAR(TIMESTAMP - 6 days)?

YEAR_WEEK

Maybe do something like YEAR(TIMESTAMP - 6 days) || WEEK(TIMESTAMP)?

week_diff: would you expect ROUND(days_diff / 7, 0) or the number of iso weeks in between (in which case we probably end up having to to account for the difference in years separately)?

IMO we should follow the standard and return the full weeks between timestamps. Not sure if it makes sense to have a separate function that returns +1 when crossing a week boundary.

quarter_diff: I think we agree that this should be ROUND(month_diff / 3, 0) ? (3 months in every of the 4 quarters).

Again, yes. Only full quarters are counted.

Equivalently, should add_weeks (#524) add 7 days? And should add_quarter then add 3 months? Or should these methods truncate to the start of the iso week or quarter, and then add the interval?

Good question. PostgreSQL doesn't allow quarter in intervals, so I think we might better stay away from offering that functionality. IMO we shouldn't add support for add_quater. Adding a week should add 7 days. For all other arithmetic, one can first truncate and then add the amount that is needed.

On second thought, maybe let's define add_quarter as adding 3 months i.e. add_quarter('2000-02-28', 1) will produce '2000-05-28'

I don't think YEAR(TIMESTAMP - 6 days) is reliable if the year starts on the start of a week, and that day is the value used  for timestamp.

Maybe YEAR(TRUNC_WEEK(TIMESTAMP))?

I think thats the way to go yes👍🏻

Added some more methods, made some more tests pass. Still struggling with DB2, but going stronger now. Lets see what CI says tomorrow morning. It seems there's only date diff to go.

MySQL only allows the MICROSECONDS unit, no MILLISECONDS: https://travis-ci.org/Blazebit/blaze-persistence/jobs/582965103#L1543 also see https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timestampadd
PostgreSQL invocations are failing because you are missing single quotes: https://travis-ci.org/Blazebit/blaze-persistence/jobs/582965105#L1576 Adding units should look like ?1 + interval ?2 || ' day'
SQLServer doesn't allow plurals for the units https://travis-ci.org/Blazebit/blaze-persistence/jobs/582965106#L1555 also see https://docs.microsoft.com/de-de/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-2017
AFAIU DB2 always requires pluralized units: https://www.ibm.com/developerworks/community/blogs/SQLTips4DB2LUW/entry/dateadd?lang=en
The DB2YearWeekFunction should use the concat operator || instead to concat the elements.
Oracle tests are failing because you are missing single quotes around the second argument: https://travis-ci.org/Blazebit/blaze-persistence/jobs/582965108#L1945 Adding units should look like ?1 + interval ?2 || '' day
Not sure why EclipseLink is failing, but I'll look into that.
More comments inline

Hmm the postgres tests are too bad. Newer versions do support this syntax. The str concatenation requires casting for some parameter types. Anyways, lets deal with that now 🙈
Thanks for looking into all the test failures!

IMO we should also look into adapting the epoch functions of Oracle.
A new Oracle implementation could look like cast(cast(?1 as timestamp) - to_date('1970-01-01', 'yyyy-mm-dd') as int) * 86400
Although I am not sure how this works regarding TZs, it might be worth looking into as the current implementation is pretty complex.

IMO we should also look into adapting the epoch functions of Oracle.
A new Oracle implementation could look like cast(cast(?1 as timestamp) - to_date('1970-01-01', 'yyyy-mm-dd') as int) * 86400

This would only consider days and disregard all time-based units right?

Although I am not sure how this works regarding TZs, it might be worth looking into as the current implementation is pretty complex.

I think it works if Oracle converts the timestamp to ISO on a cast to any timestamp without timezone, which I think it does. If not, then the implementation we're trying to replace also does not consider different TZs either.

This would only consider days and disregard all time-based units right?

The cast should be the outermost part cast((cast(?1 as timestamp) - to_date('1970-01-01', 'yyyy-mm-dd')) * 86400 as int)

Also, please remove unnecessary imports in EclipseLinkFunctionRenderContext to resolve the checkstyle issue

I should have addressed the test failures and your review comments now.
What remains is a couple of diff methods:

[ ] epoch_diff
[ ] microsecond_diff
[ ] week_diff
[ ] quarter_diff
[ ] Date diff documentation update

And if we decide to do the epoch functions too:

[ ] epoch_microseconds - epoch + microseconds or native function (#493)
[ ] epoch_milliseconds - epoch + milliseconds or native function (#493)
[ ] epoch_seconds - alias for epoch (#493)
[ ] epoch_days - epoch / 86400 or native function (#493)

I'll first resolve any pending issues in the existing tree. It would be nice to finally see the suite pass on commit 0df78d2. I am a bit occupied for the rest of the day, so it will probably be tomorrow before I can look into the other methods.

Ah damnit, the CI PostgreSQL is too old for the alternative syntax too... That sucks

I'll first resolve any pending issues in the existing tree. It would be nice to finally see the suite pass on commit 0df78d2. I am a bit occupied for the rest of the day, so it will probably be tomorrow before I can look into the other methods.
I think the main issues are fixed now, so we can focus on the remaining functions.

Are you sure that timestamp subtraction yields a double that is precise to the millisecond?
According to Oracle docs it does and is apparently the only viable way AFAICT.

For example in PostgreSQL the statement would return the difference as days in an integer value. And do we trust that no rounding errors occur here that affect the outcome?
Not sure, I guess we have to try, but the current implementation extracts all fields separately and adds them up which is very inefficient.

epoch_diff:
I am pretty sure that this should be an alias for second_diff. In fact, we depend on epoch extraction in the implementation of second diff for a couple of implementations, i.e. : (select cast(trunc(EXTRACT(EPOCH FROM t2::timestamp)) - trunc(EXTRACT(EPOCH FROM t1::timestamp)) as integer) from (values (?1, ?2)) as temp(t1,t2)).
microsecond_diff
For databases that do not support DATE_DIFF, we can multiply the epoch diff by 1M, as long as the epoch diff is returned in a floating point value rather than a rounded integer. Otherwise we might be able to extract the microseconds part from the DBMS native interval type and add this to the result of millisecond_diff. It seems that the Microsecond diff function for Oracle will  become particularly nasty, as the ones for second and millisecond are already quite sophisticated.
week_diff
This is pretty well defined as floor(day_diff/7). I think we should not even bother with DBMS native implementations. For example, when extracting the weeks from a PostgreSQL interval, I had to compensate for the year_diff part again. Knowing our day_diff implementation is sane, the division and floor operation will be a relatively easy modification.
quarter_diff
Same as week_diff, but then floor(month_diff/3)
epoch_microseconds
The current epoch function returns an Integer, but for timestamps with high enough precision, most DBMSes will return a float. Therefore, this should be equivalent to our implementation for epoch * 1M.
epoch_milliseconds
The current epoch function returns an Integer, but for timestamps with high enough precision, most DBMSes will return a float. Therefore, this should be equivalent to our implementation for epoch * 1M.

It seems that the Microsecond diff function for Oracle will become particularly nasty, as the ones for second and millisecond are already quite sophisticated.

That's why I proposed to adapt the Oracle implementation. I think the following should do the same as the previous implementation: cast((cast(?1 as timestamp) - to_date('1970-01-01', 'yyyy-mm-dd')) * 86400 as int) although we might want to cast to bigint.
I agree with the rest regarding diff functions.
The epoch stuff should use bigint and Long in Java.

[ ] epoch_microseconds - epoch + microseconds or native function (#493)
[ ] epoch_milliseconds - epoch + milliseconds or native function (#493)
[ ] epoch_seconds - alias for epoch (#493)
[ ] epoch_days - epoch / 86400 or native function (#493)
[ ] Oracle timetstamp arithmetic optimization tests
[ ] extract documentation update