Add custom username validating rule

Signed-off-by: Masudur Rahman<EMAIL_ADDRESS>
A working example : https://play.golang.org/p/-DQw9WVOxEc

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


config change trash_file_expire_time_sec to 0

long time ago, doris may lost data due to program bug:

during migrate or clone,  may cause new replica lost data;
a tablet may delete all its replicas.

But all these bugs had been solved.   There's hardly no user use trash to restore data for prod env.  Even a user can use a http to restore data from trash,  it still cann't use immedidately  because  fe not contains its meta.
On the other hand,  trash has cause other problems:

make unbalance because not deleleted the trash data;
be chose disks not RR because the disks may suddently delete a lot trash data when disk's usage over 80%;
had more disk load.

Considering all this, we make trash_file_expire_time_sec change to 0.  If user really want to keep trash,  they need to set trash_file_expire_time_sec > 0 manually.

run buildall

run p0

run p0


Fixes #928 - Checking for ldap users

i'll merge this PR once i pull jackie's branch and give it a quick test


FATAL:  role "teslamate" does not exist

Describe the bug
I get [FATAL:  role "teslamate"] does not exist when trying to backup or restore the Teslamate database
Expected behavior
backup or restore without a Fatal error
How to reproduce it (as minimally and precisely as possible):
I destroyed the Droplet on Digital Ocean, started a new Droplet and reinstalled Teslamate using Traefik: same Fatal error
Relevant entries from the logs
Last login: Sat Sep 12 08:39:47 on ttys001
iMac:~ admin$ ssh<EMAIL_ADDRESS><EMAIL_ADDRESS>password:
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-42-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sat Sep 12 06:47:38 UTC 2020

  System load:                      0.12
  Usage of /:                       18.7% of 24.06GB
  Memory usage:                     51%
  Swap usage:                       1%
  Processes:                        151
  Users logged in:                  1
  IPv4 address for br-909955cce917: <IP_ADDRESS>
  IPv4 address for docker0:         <IP_ADDRESS>
  IPv4 address for eth0:            178.62.xx
  IPv4 address for eth0:            <IP_ADDRESS>

0 updates can be installed immediately.
0 of these updates are security updates.

The list of available updates is more than a week old.
To check for new updates run: sudo apt update

********************************************************************************

Welcome to DigitalOcean's 1-Click Docker Droplet.
To keep this Droplet secure, the UFW firewall is enabled.
All ports are BLOCKED except 22 (SSH), 2375 (Docker) and 2376 (Docker).

* The Docker 1-Click Quickstart guide is available at:
  https://do.co/3j6j3po#start

* You can SSH to this Droplet in a terminal as root: ssh<EMAIL_ADDRESS>
* Docker is installed and configured per Docker's recommendations:
  https://docs.docker.com/install/linux/docker-ce/ubuntu/

* Docker Compose is installed and configured per Docker's recommendations:
  https://docs.docker.com/compose/install/#install-compose

For help and more information, visit https://do.co/3j6j3po

********************************************************************************

To delete this message of the day: rm -rf /etc/update-motd.d/99-one-click
Last login: Sat Sep 12 06:40:01 2020 from 213.xx
root@docker-ubuntu-s-1vcpu-1gb-ams3-01:~# docker-compose exec -T database pg_dump -U teslamate teslamate > tesselmate.bck
pg_dump: error: connection to database "teslamate" failed: FATAL:  role "teslamate" does not exist
root@docker-ubuntu-s-1vcpu-1gb-ams3-01:~# docker-compose logs
Attaching to root_teslamate_1, root_grafana_1, root_database_1, root_mosquitto_1, root_proxy_1
database_1   |
database_1   | PostgreSQL Database directory appears to contain a database; Skipping initialization
database_1   |
database_1   | 2020-09-12 06:44:48.358 UTC [1] LOG:  starting PostgreSQL 12.4 (Debian 12.4-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
database_1   | 2020-09-12 06:44:48.358 UTC [1] LOG:  listening on IPv4 address "<IP_ADDRESS>", port 5432
database_1   | 2020-09-12 06:44:48.358 UTC [1] LOG:  listening on IPv6 address "::", port 5432
database_1   | 2020-09-12 06:44:48.360 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
database_1   | 2020-09-12 06:44:48.410 UTC [24] LOG:  database system was shut down at 2020-09-12 06:42:51 UTC
database_1   | 2020-09-12 06:44:48.424 UTC [1] LOG:  database system is ready to accept connections
database_1   | 2020-09-12 06:48:31.211 UTC [58] FATAL:  role "teslamate" does not exist
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Starting Grafana" logger=server version=7.1.5 commit=9893b8c53d branch=HEAD compiled=2020-08-25T08:27:17+0000
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config loaded from" logger=settings file=/usr/share/grafana/conf/defaults.ini
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config loaded from" logger=settings file=/etc/grafana/grafana.ini
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.data=/var/lib/grafana"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.logs=/var/log/grafana"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.plugins=/var/lib/grafana-plugins"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.provisioning=/etc/grafana/provisioning"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.log.mode=console"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_DATA=/var/lib/grafana"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_LOGS=/var/log/grafana"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PLUGINS=/var/lib/grafana-plugins"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PROVISIONING=/etc/grafana/provisioning"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SERVER_ROOT_URL=https://dograf.g358xh.nl"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_ANALYTICS_REPORTING_ENABLED=FALSE"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_ADMIN_USER=admin"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_ADMIN_PASSWORD=*********"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_DISABLE_GRAVATAR=true"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_SECURITY_ALLOW_EMBEDDING=true"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_USERS_ALLOW_SIGN_UP=false"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_AUTH_ANONYMOUS_ENABLED=false"
proxy_1      | time="2020-09-12T06:44:48Z" level=info msg="Configuration loaded from flags."
mosquitto_1  |<PHONE_NUMBER>: mosquitto version 1.6.12 starting
mosquitto_1  |<PHONE_NUMBER>: Config loaded from /mosquitto/config/mosquitto.conf.
mosquitto_1  |<PHONE_NUMBER>: Opening ipv4 listen socket on port 1883.
mosquitto_1  |<PHONE_NUMBER>: Opening ipv6 listen socket on port 1883.
mosquitto_1  |<PHONE_NUMBER>: mosquitto version 1.6.12 running
mosquitto_1  |<PHONE_NUMBER>: New connection from <IP_ADDRESS> on port 1883.
mosquitto_1  |<PHONE_NUMBER>: New client connected from <IP_ADDRESS> as TESLAMATE_302E3437343 (p2, c1, k60).
teslamate_1  | 08:44:54.038 [info] Already up
teslamate_1  | 08:45:16.358 [info] Version: 1.20.0-dev
teslamate_1  | 08:45:17.297 [info] Refreshed api tokens
teslamate_1  | 08:45:17.306 [info] Scheduling token refresh in 5 wk 5 d
teslamate_1  | 08:45:17.310 [info] Running TeslaMateWeb.Endpoint with cowboy 2.8.0 at :::4000 (http)
teslamate_1  | 08:45:17.313 [info] Access TeslaMateWeb.Endpoint at http://xxx
teslamate_1  | 08:45:18.106 [info] Starting logger for '** BATTERY LOW **'
teslamate_1  | 08:45:18.132 [info] MQTT connection has been established
teslamate_1  | 08:45:18.978 car_id=1 [info] Start / :offline
teslamate_1  | 08:45:19.854 [info] tzdata release in place is from a file last modified Wed, 11 Sep 2019 19:35:17 GMT. Release file on server was last modified Fri, 24 Apr 2020 04:15:20 GMT.
teslamate_1  | 08:45:21.639 [info] Tzdata has updated the release from 2019c to 2020a
teslamate_1  | 08:46:08.953 [info] GET /
teslamate_1  | 08:46:08.972 [info] Sent 200 in 19ms
teslamate_1  | 08:46:36.551 [info] GET /
teslamate_1  | 08:46:36.556 [info] Sent 200 in 4ms
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_AUTH_BASIC_ENABLED=true"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Path Home" logger=settings path=/usr/share/grafana
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Path Data" logger=settings path=/var/lib/grafana
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Path Logs" logger=settings path=/var/log/grafana
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Path Plugins" logger=settings path=/var/lib/grafana-plugins
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Path Provisioning" logger=settings path=/etc/grafana/provisioning
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="App mode production" logger=settings
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Connecting to DB" logger=sqlstore dbtype=sqlite3
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Starting DB migration" logger=migrator
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Starting plugin search" logger=plugins
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Registering plugin" logger=plugins name="Direct Input"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Registering plugin" logger=plugins name="Pie Chart"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Registering plugin" logger=plugins name="Map Panel"
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Registering plugin" logger=plugins name=Discrete
grafana_1    | t=2020-09-12T06:44:48+0000 lvl=info msg="Registering plugin" logger=plugins name=TrackMap
grafana_1    | t=2020-09-12T06:44:49+0000 lvl=info msg="HTTP Server Listen" logger=http.server address=[::]:3000 protocol=http subUrl= socket=
grafana_1    | t=2020-09-12T06:45:46+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr=<IP_ADDRESS> time_ms=0 size=29 referer=
grafana_1    | t=2020-09-12T06:45:46+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr=<IP_ADDRESS> time_ms=0 size=29 referer=
grafana_1    | t=2020-09-12T06:46:16+0000 lvl=eror msg="Failed to look up user based on cookie" logger=context error="user token not found"
grafana_1    | t=2020-09-12T06:46:16+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/d/xo4BNRkZz status=302 remote_addr=<IP_ADDRESS> time_ms=1 size=29 referer=https://dobeta.g358xh.nl/
grafana_1    | t=2020-09-12T06:46:22+0000 lvl=info msg="Successful Login" logger=http.server User=admin@localhost
grafana_1    | t=2020-09-12T06:47:26+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr=<IP_ADDRESS> time_ms=0 size=29 referer=
grafana_1    | t=2020-09-12T06:47:31+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr=<IP_ADDRESS> time_ms=0 size=29 referer=
root@docker-ubuntu-s-1vcpu-1gb-ams3-01:~#

Data
For example, to export charge data after January 1, 2020:
$ docker-compose exec database psql teslamate teslamate -c
"COPY (select * from charges where date > '2020-01-01') TO STDOUT WITH CSV HEADER" > charges.csv
gives same error: FATAL:  role "teslamate" does not exist
$ docker-compose exec database psql teslamate teslamate -c
"COPY (select * from charging_processes where start_date > '2020-01-01') TO STDOUT WITH CSV HEADER" > charging_processes.csv
gives same error: FATAL:  role "teslamate" does not exist
To export drive data after January 1, 2020:
$ docker-compose exec database psql teslamate teslamate -c
"COPY (select id, car_id, drive_id, date, elevation, speed, power, odometer, ideal_battery_range_km, est_battery_range_km, rated_battery_range_km, battery_level, usable_battery_level, battery_heater_no_power, battery_heater_on, battery_heater, inside_temp, outside_temp, fan_status, driver_temp_setting, passenger_temp_setting, is_climate_on, is_rear_defroster_on, is_front_defroster_on from positions where date > '2020-01-20') TO STDOUT WITH CSV HEADER" > positions.csv
gives same error: FATAL:  role "teslamate" does not exist
$ docker-compose exec database psql teslamate teslamate -c
"COPY (select * from drives where start_date > '2020-01-01') TO STDOUT WITH CSV HEADER" > drives.csv
gives same error: FATAL:  role "teslamate" does not exist
Environment

TeslaMate version: v1.20dev
Type of installation: Docker
OS TeslaMate is installed on: Digital Ocean Docker Droplet
User OS & Browser: Ubuntu
Others:

It looks like you are not using default postgres user teslamate, check  your .env  file to make sure

Thanks! I will check and report back

I confirm that's the solution. I had the same error and using the correct user defined in the .env file solved the point


burpsuite: 2021.12 -> 2022.12.7

Description of changes
Updated Burpsuite 2021.12 -> 2022.12.7.
https://portswigger.net/burp/releases/professional-community-2022-12-7?requestededition=community
I switched it to running under a buildFHSUserEnv in order to get the integrated chrome browser working. Linking out to the nixpkgs-packaged version of chromium doesn't really work well.

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

@bennofs I see your thumbs up, but I'm unsure if you actually reviewed the PR or not?
(Also, I did do a force push since then for a version bump)

Oops, reverted, seems master changed too much between when this PR was submitted and when I merged it so the CI status was lying.


text layer line-height text-color

how to get some text properties like line-height text-color  relative to css value

as i know  'line-height' in ps and css is different。maybe "line-height" == "line-height-ps" - "word-height"
but where to get a "word-height" in psd-tools

how to get a rgb color from 'FillColor': {  				'Type': 1,  				'Values': [1.0, 0.20001, 0.20001, 0.20001]  			},

is every number/float value in engine_dict should multiply layer.transform[3] like font_size ?

@kyamagu thx very much

I cannot answer any specific question on details like this, as there is no official specification. You can only try and see if the value is desired one

I cannot answer any specific question on details like this, as there is no official specification. You can only try and see if the value is desired one

ok...


Improvement in the UI of Schedule List Screen

Actual Behaviour
Currently, the schedule list looks something like this.

Expected Behaviour
Sort the list according to time and adding more details to the field.

@mariobehling @the-dagger @mananwason Can we update the UI  to the propose one if you liked it? Suggestions welcomed! :)

Looks better. 👍
Also I'd suggest changing the overall background of the app to white from gray which looks a bit dull imo.


Single column CSV file to list of string

How to use Readfile method for single column CSV file? I want to read file directly into list of string only not into any custom type class.

What have you tried?

I have tried below code.
var list= fastCSV.ReadFile<string>("sample.csv", ',', (o, c) => { o = c[0]; return true; });
However, I used any existing class type that has a string property as a work around.


refactor configs to runtimes

Values to move to donfig config.py:

connection_string (environment variables can be imported with donfig)
cache_paths (intermediate and results)
xpersist serializer


% in the beginning of lines isn't read

Steps to reproduce:

Open an empty buffer
Type %s-%s
Press C-e l to read current line
Note that the first % isn't pronounced

Yep, reproduced on my end... now to find out why.

@parhamdoustdar when debugging this, I noticed it happens with the default mac server, can you confirm?  That means it is when moving it over to the Voiceover system.
Still can fix it by doing the replacement with "percent" on my end, but strange.

By putting the % -> "percent" change in the core replacements, was able to fix it but it is boggling.

Hi,
I just verified, this does also happen with the Mac speech server.
Could it be that the speech generation API uses % as an escape sequence on MacOS? If you just run swiftmac and put in q {%%s} <RET> d, the percent sign gets spoken, which makes me think that it’s an escape sequence for something.
I think the solution might be to replace  % in the beginning of a string with %%. I also verified that something like q {%%} just produces “percent”, which means that you don’t have to escape the second percent sign, just the first.
TL;DR:

%s should become %%s
%% should become %%%
I’m also very curious if we can figure out what these escape sequences are. Maybe they will save you some work in the future, or make the code smaller, if you can use these escape sequences?

On 14 Jan 2024, at 02:29, Robert Melton @.***> wrote:
@parhamdoustdar https://github.com/parhamdoustdar when debugging this, I noticed it happens with the default mac server, can you confirm? That means it is when moving it over to the Voiceover system.
Still can fix it by doing the replacement with "percent" on my end, but strange.
—
Reply to this email directly, view it on GitHub https://github.com/robertmeta/swiftmac/issues/18#issuecomment-1890815825, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACWCG67G75UQRO3XDVGTTDYOMYGDAVCNFSM6AAAAABBWUKSSCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJQHAYTKOBSGU.
You are receiving this because you were mentioned.

@parhamdoustdar it actually gets stranger if you keep adding in more % entries.    It is som something in the voiceover system for sure, because I dug down and made sure the extract strings are going over to voiceover. But, if you have a string like
% % % % % % % % % % % %
You get an incorrect reported number of percents and it is not off by one.

But, 1.0.5 should fix it for now until I puzzle out why exactly it happens.  But at least it happens on mac server as well.

Wow. Now I know what you mean by painfully figuring VoiceOver out.

On 14 Jan 2024, at 18:22, Robert Melton @.***> wrote:
But, 1.0.5 should fix it for now until I puzzle out why exactly it happens. But at least it happens on mac server as well.
—
Reply to this email directly, view it on GitHub https://github.com/robertmeta/swiftmac/issues/18#issuecomment-1891011060, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACWCG5WZS6N2EG4VI54WJDYOQH45AVCNFSM6AAAAABBWUKSSCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJRGAYTCMBWGA.
You are receiving this because you were mentioned.


Image size differences

I am seeing different image size than what I am seeing in dockerhub
docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
amazoncorretto                  latest              52ca599541e8        6 hours ago         344MB
amazoncorretto/alpine-preview   11-alpine-jre       82cfcce06d61        34 hours ago        134MB
amazoncorretto/alpine-preview   11.0.8-alpine-jre   82cfcce06d61        34 hours ago        134MB
amazoncorretto/alpine-preview   11.0.8-alpine       7347a8c33c1f        34 hours ago        322MB
In dockerhub I am seeing different sizes any issue with my docker version or I am testing this too early?

Hi @yrsurya,
Thank you for contacting us.
The dockerhub images sizes are compressed images sizes. Once pulled to the local environment, the docker images command shows the uncompressed image size.

Thanks for reply , even I found that now as there is open issue for long time ago - https://github.com/docker/hub-feedback/issues/331.
Also can you please confirm if above mentioned alpine images are final? i saw AWS announcements but not able to find official corretto-alpine image other than preview one
Today Amazon Corretto is releasing its July quarterly critical updates. This release also includes Corretto 8 & 11 support for Alpine Linux, Corretto 8 with JFR (JDK Flight Recorder) which can be used with JMC (JDK Mission Control) built for (to support) Corretto, Corretto 11 32bit x86 for Linux and ARM64 optimizations for both Corretto 8 & 11.

Hi @yrsurya, sorry for the delay in reply. We have recently moved to amazoncorretto/amazoncorretto as official repo for alpine image. We recommend you to switch to that repository. Please let us know if you have further question regarding the size or image.


Performance issue on basic string operations

Hello,
First of all thank you for this amazing project.
We have a few questions regarding string manipulation in ONNX runtime extensions. Specifically, we are trying to incorporate simple string manipulations directly in our ONNX models, such as "string_upper" and "string_join".
However, we have observed a significant impact on performance. These operations appear to be unexpectedly expensive as it seems more expensive than matrice multiplication (our string are always rather short, less than 30-40 characters). For instance, adding a "string_upper" operation on five features increases the inference time by a factor of 3 for a batch size of 1, and doubles the inference time for a batch size of 10 on our benchmarks.
Even worse, but expected, when not fully vectorised (for example we want to string upper some features and lower some others) those times adds up practically linearly (processing 1 vector with 10 features is almost 10 times faster than splitting this vector and applying it separately on those 10 features). It can be a real performance issue if we want to apply different simple transforms based on the feature.
We generated a benchmark to show you this you can regenerate using the linked python notebook.
Benchmark_example.ipynb.zip
Here is the profiing with split/unsplit string upper operation. We can see that a simple operation like toUpper takes by itself time than the whole MLP.:

We suspect that the high cost may be due to the overhead of copying. Is there a reason we do all those copies ? Why are we obligated to do so ?
PS: We have verified that we are correctly using en_US.utf8.
Have you encountered this issue before? Is this performance impact expected? Could you provide any insights or recommendations on how to optimize these operations?
Thanks a lot

I think the most of time was spent on Python->C++->Python conversion and new/delete objects in C++.
The copying you mentioned is to create an output object actually which will be re-used later in the loop.
The excessive use of string manipulation has not been thoroughly considered on development, and implementation are based on C++ in a simple way.  It might require a fine granularity on CPU profiling to see how we can improve the efficiency which may lead to a complicated C++ implementation.
Is there any real case that a model need more string operations than MatMul and other operations, or is it just a test?
And  the input string should UTF-8 encoded.

Hello @wenbingl sorry for the delay in the answer,
Actually, this is something we are experiencing in production, the preprocessing of String takes 70% of the CPU of the total. (with unstack, upper, and stack methods)
What bothers us is, that string_upper's onnx operator seems slower than Python's equivalent string.upper().
Our issue is in Scala but seems reproducible in Python, so I will just give you a minimal example in Python to reproduce.
Using two benchmarks, one doing the string.upper() in Python, the other one letting string_upper onnx operator doing it. And we've got a consequent difference in terms of performance.
Execution time: 8.37116679904284 +/- 1.2217764614101005 us
Execution time: 35.20608749677194  +/- 1.7959354508589989 us

(here is the benchmark reproducer)
Regarding the performances, I could give it a look using some profiling on the C++ code if you think this could be a valuable contribution!
Do you have in mind someone having similar issues? Are we missing something obvious? (such as String encoding or something?)
Thanks for your time and help

Hello @wenbingl sorry for the delay in the answer,
Actually, this is something we are experiencing in production, the preprocessing of String takes 70% of the CPU of the total. (with unstack, upper, and stack methods) What bothers us is, that string_upper's onnx operator seems slower than Python's equivalent string.upper().
Our issue is in Scala but seems reproducible in Python, so I will just give you a minimal example in Python to reproduce.
Using two benchmarks, one doing the string.upper() in Python, the other one letting string_upper onnx operator doing it. And we've got a consequent difference in terms of performance.
Execution time: 8.37116679904284 +/- 1.2217764614101005 us
Execution time: 35.20608749677194  +/- 1.7959354508589989 us

(here is the benchmark reproducer)
Regarding the performances, I could give it a look using some profiling on the C++ code if you think this could be a valuable contribution! Do you have in mind someone having similar issues? Are we missing something obvious? (such as String encoding or something?)
Thanks for your time and help

Yes, the C++ profiling will be very helpful to see how much time was spent on this upper function, and ORT session. Then we can decide on the next steps.


Integrate tikz-uml

https://perso.ensta-paristech.fr/~kielbasi/tikzuml/ - very recommended by @diehlpk

I will take care of it this week


HTML to MD bug: spaces inside inline formatting elements (em, strong, etc.) should be put outside

The italics are not rendered in the Markdown below because of a bug in the HTML to Markdown converter:

text with italics

Markdown output:
text with_ italics_

What the Markdown output should be:
text with _italics_

Sorry, this feature is not supported anymore.


Add legal document access to project

From Canada-Through-Time created by willtheorangeguy: willtheorangeguy/Canada-Through-Time#13
From Snoopy-Landing-Page created by willtheorangeguy: willtheorangeguy/Snoopy-Landing-Page#11
From PyWorkout created by willtheorangeguy: willtheorangeguy/PyWorkout#15
Add buttons or commands that display each of the legal documents when they are executed.
The following need to be completed:

[ ] Universal License
[ ]  Universal EULA
[ ]  Universal Terms and Conditions
[ ]  Univeral Priacy Policy

Added as .html files to the legal folder.


Update tested AGP versions

from 7.0.2 to 7.0.3
from 7.1.0-alpha10 to 7.1.0-beta01

Pre-tested commit build failed.

@bot-gradle test and merge

OK, I've already triggered a build for you.


Release 04/04

Description of changes

See commits for changes included.
CDK / CloudFormation Parameters Changed

https://github.com/aws-amplify/amplify-category-api/pull/2409

Issue #, if available

N/A
Description of how you validated changes

Unit tests
E2E tests

Checklist

[x] PR description included
[x] yarn test passes

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Wait on https://github.com/aws-amplify/amplify-category-api/pull/2416 for release.


[5.8] Fix belongsToMany->wherePivot condition for boolean columns

Description
Fixes breaking change introduced in #28192, which used weak comparison which in turn caused searching for boolean values belongsToManyRelation->wherePivot('primary', true) (without specifying operator) (See #28251 for more details) in the pivot table to evaluate to true for the conditions $operator == 'in' / $operator == 'not in'.
Switching to typed comparison takes care of this issue.

Maybe we should revert #28192 completely. Even with this fix, ->wherePivot('foo', 'in') is broken.

Maybe we should revert #28192 completely. Even with this fix, ->wherePivot('foo', 'in') is broken.

You tested this, because that should be taken care of by this portion of the where() function.
        [$value, $operator] = $this->prepareValueAndOperator(
            $value, $operator, func_num_args() === 2
        );

@JeroenBoesten wherePivot() works differently:
->wherePivot('foo', 'in') calls ->where('foo', 'in', null, 'and')
This is also the reason why #28192 didn't break ->where('foo', true).

I'm going to revert that entire PR.

Should at least the test(s) be added so that it screams at people just in case they add it in future again?


Configuration inheritance with extends

Type of Issue
[ ] Bug Report
[X] Feature Request

Description
I have a mono repo with a lot of angular project, and I want to share the ng-package.json configuration among them, similar to the tsconfig.json
I'd like to have support for configuration inheritance with extends

Relates to #190: ng-package.js to read dynamic configuration


[Feature] Automatically load env file to env

Hi! I would add a next step in the action that if the __type__ is env,  run the following shell script directly to load the vars into the environment
- shell: bash
  run: export $(xargs < ${__filename__})

Are you sure this is useful? It will pass the variable to environment of runner, not remote host.


protoc-gen-prost-crate: remove insertion point comment in output

Currently, protoc-gen-prost-crate leaves the insertion point comment as-is in the output Cargo.toml. It should probably remove it.

This is a normal part of how insertion points work with protoc. Each individual plugin won't know if it is the last plugin in the pipeline, and protoc always preserves the comment after inserting above the comment. In addition, protoc only provides a mechanism to insert more things at insertion points, never to remove anything generated, so I can't support this from within the plugin.
In this case, if you really want those comments to disappear, what might be best is to run this command post generation, which will delete any line that includes @@protoc_insertion_point:
find <OUTPUT_DIR> -type f -exec sed -i '' '/@@protoc_insertion_point/d' '{}' ';'

Fair enough, I also failed to notice it's a protoc thing, and not protoc-gen-prost-crate thing.
In the end, I believe that this might usually be updated manually anyway, from the output, so it can easily be also fixed manually. And I personally decided not to use protoc-gen-prost-crate anyway, after more evaluation.


chart-testing: add runtimeInputs

Description of changes
Turns out that chart-testing execs a few other binaries at runtime, so they do not get automatically detected by nix.
Things done
The primary ones are listed upstream, https://github.com/helm/chart-testing#prerequisites, however they also callout to echo, so we have tacked on coreutils for good measure.

Built on platform(s)

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

[x] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

cc @AtkinsChang (maintainer)

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1338

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1373

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1416


docs: make new 2023 triage team guide

This one I will do, just making the issue to remember to do so.

bonus: make a video on Netlify's feature peak.


Error message in console when creating a new Questionnaire

Expected behaviour
Creating a Questionnaire should happen without error
Actual behaviour
When creating a Questionnaire an error is logged to the browser console:

Steps to reproduce the behaviour

Login
Create a Questionnaire
Error is logged when app forwards you to the new Questionnaire

Technical information
Browser
Chrome
Operating System
macOS
Screenshot

https://github.com/ONSdigital/eq-author/pull/409

Please close this issue once merged: https://github.com/ONSdigital/eq-author/issues/397


NPM Badges in Readme

Add Badge from https://nodei.co/ to the readme file

Hey, I'd like to work on this ticket

Just want to be clear, adding the badge involves publishing the project to NPM -- do you want me to go ahead with that?

Aha. Hmm. We should probably wait until we have some code before pushing to NPM.

... but if we push the empty code base, at least we claim the name in NPM.

closed by #19


another question for 0.24

When run my code, it seems like the right numbers are coming out. But the way they are structured are super weird (as down below).
my code is:
i = 0
answer_024 = []
while (i < 1500):
if i>0 and (i/19).is_integer():
answer_024.append(i)
i += 1

print(answer_024)

I just want one list where the number only occurs once.
Best regards
Signe
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]
[19, 38]

Hi Signe
As I cannot see the indentation in the posed code, I cannot be sure about your problem.
However, it looks like you print answer_022 in the loop so you print the list 1500 times. You could try to print after the loop to check the final answer.
I hope this answers the question.
Kind regards Lasse


Android N support

There seems to be some issue with the android N update. After entering the question/feedback when a user tries to enter the email address the cursor moves back to the title edit box and is never able to enter the email address hence can't submit.

Same issue here

Any update on this issue?

Hey guys -- to help me narrow down the test cases can you provide the following details:

Android and Kernel versions of Android N (available via Phone status menu)
which devices? emulated or physical?
which version of our Android SDK?

I've been unable to reproduce this running our demo app (UVDemo) with version 1.2.5 of our SDK on emulated Nexus 5X / 6P running Android N 7.0, 3.10.0 kernel.

Hi,
It doesn't work on a physical Nexus 6P on Android 7.0 kernel 3.10.0 but it works (as you said) on emulators (Genymotion Nexus 6P 7.0 PREVIEW)
Basically, I'm not doing anything complicated, I'm just calling this in my application class :
Config config = new Config("...");
UserVoice.init(config, this);
and
UserVoice.launchContactUs(activity); when I need it.

Thanks for the info @Christophe668. Can you try rebuilding with the changes in my tracking branch?
cd <local_repo>; git checkout -b SD_androidN origin/SD_androidN
I've made some changes to update dependencies to use the latest Android SDK support / build libraries.
In related news, I'm still unable to repro. We successfully installed and ran the UVDemo on a Nexus 5X early this morning...

I tried on a Nexus 6P and a Nexus 5X on Android 7.0 but it doesn't seems to fix the problem unfortunately. I can't tell you why this happens but if you need more info, I would be glad to help

It would be helpful if I could try to reproduce the problem using your source, or some small app derived from your source that still exhibits the issue. I tried, unsuccessfully, to repro yesterday using a new app built on the SDK.
--Shaun

On Oct 11, 2016, at 4:54 AM, Christophe668<EMAIL_ADDRESS>wrote:
I tried on a Nexus 6P and a Nexus 5X on Android 7.0 but it doesn't seems to fix the problem unfortunately. I can't tell you why this happens but if you need more info, I would be glad to help
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Hi @shdunning,
You can find a simple example demo here which fails on a physical Nexus 6P 7.0 :
https://github.com/Christophe668/UserVoiceNSupportBugdemo
The scenario is exactly the same. I'm just doing an initialisation and launching the contact form directly after a click on the fab.
The project was generated wuth the Android Studio new project's wizard. Nothing else was added or modified.
I hope this will help you.

@Christophe668 unfortunately, I was able to run your app successfully on a Nexus 5X running 7.0 (I don't have access to a 6P). Let's rule out some simple dev env configuration settings. Here's what I've been building with (nothing too out of the ordinary):

Android Studio / Plugin version 2.2.1
JRE 1.8.0_112
Gradle version: 2.14.1

Also, what subdomain are you using to initialize your config?  Can you try demo.uservoice.com and see if you still experience the issue? For example,
        Config config = new Config("demo.uservoice.com");

I was able to test it on a Nexus 5x 7.0 today and it works well this time. It's probably not a configuration issue then.
You can see the bug on this video : http://sendvid.com/3nutrgh1
The domain we are using is seristapp.uservoice.com.

 Can you ensure that your device and build env are completely updated?

@Christophe668 we also have another independent confirmation that UserVoice SDK is working now with latest Nexus 6P updates.

Thanks for the info, unfortunately I won't be able check further why this is happening on my device in the coming days. If I have more time in the future, I will inform you if I find somthing.


style: improve visibility and update conditional classes for TextBlank component

Jira issue(s)
https://selleolabs.atlassian.net/browse/LC-317
Overview

changed the color of text in blank field

Screenshots

Could we replace this color with one of the primary options from our style guide? Link to Figma


Adds Simple MLFlow materializer

This isn't ready to be shipped. But shows how one could create something that saves to MLFlow easily.
Things to consider -- what is the structure a model function should output if we want to capture extra things?
Changes
How I tested this
Notes
Checklist

[ ] PR has an informative and human-readable title (this will be pulled into the release notes)
[ ] Changes are limited to a single goal (no scope creep)
[ ] Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
[ ] Any change in functionality is tested
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged / future TODOs are captured in comments
[ ] Project documentation has been updated if adding/changing functionality.

Closing in favor of #945


[#230] Update publish_docs_to_wiki workflow to use publish_wiki of github_action_workflow repository

Close https://github.com/nimblehq/android-templates/issues/230
What happened 👀
The Nimble team has published a publish-github-wiki-action to support our team NOT creating a publishing wiki workflow manually. We should use it as an advantage.
Insight 📝
Now we only need to have a step to call publish-github-wiki-action
Proof Of Work 📹

@nimblehq/android-chapter Can anyone give one more review/approval? 💯

@manh-t We can't merge this pull request yet unfortunately 😢
@bterone suggests we wait until v1.0 (he's working on it now), because of this unresolved PR

@manh-t We can't merge this pull request yet unfortunately 😢
@bterone suggests we wait until v1.0 (he's working on it now), because of this unresolved PR

@Tuubz I see 😭 so I will take the next train then.


[windows] PreamblePatcher::Patch() fails from time to time in Release

Hello,
Got the recent state of the code, testing under Win10 x64 with VS2022 (AMD Ryzen Threadripper 2950X CPU, have no idea whether it actually matters though).
From time to time, completely sporadically, all the unit tests that presume patching start to fail (Release config). When it happens,
PreamblePatcher::Patch() method always fails for the "_expand" function returning the SIDESTEP_FUNCTION_TOO_SMALL error code.
Debug config always works just fine.
It happens completely unpredictably. All unit tests may work flawlessly tens of times, and then, for some mistirious reason, all of them start failing with the symptoms described above.
It happens not just for unit tests - my test application I'm trying to patch works similarly (sometimes patching succeeds and all works just fine, sometimes the application exits via the abort() at the very beginning due to the patching failure).
I have no clue what might be the reason and why the problem is floating, ready to do the extra testing and provide the debug info, any advice on where to start would be highly appreciated.
Thank you.

Thanks for filing ticket. So I am seemingly unable to reproduce this on my windows test machine. Could be something on your system playing games with whatever dlls shipped with your OS?
I think we can test this if you retry your tests in safe mode.

Hi alk,
Thank you for the response.
You mean - boot Windows in safe mode and then run the unit tests? Any specific instructions on testing procedure in safe mode?
Thank you.

Just have those .exe built and run. Same way that causes trouble for you


Symfony Log/Cache files not writable for [www-data] group

Q
A

Issue Type
Bug

Deployer Version
4.0

Local Machine OS
Debian Jessie (8.6)

Remote Machine OS
Debian Jessie (8.6)

Description
When the deployer-user is different from the http-user, writable files does not seem to be writable for the http-user
Steps to reproduce
First of all, I can not really tell if it actually is a bug or a problem with my remote server's user conf
I took a Symfony 3 app as example (just the symfony full stack, nothing else).
The deployer app is on a different server than the development/production/whatever server.
I have a deploy-user user which is :

declared  in the www-data group
allowed to restart apache server on the remote server
allowed to connect to the remote server using his ssh public key

When I try to deploy the app on the remote server, the deployment is OK (writtable_dirs task is passing).
But when you take a look at the var/logs/dev.log permissions, the www-data users are unable to write on the file (the deploy user can).
chgrp and acl writable_mode are facing the problem :)
777 writable_mode works but I think I will have a problem when doing a bin/console cache:clear on next deployment :-1: (See next comment for the actual error)
Content of deploy.php
<?php
namespace Deployer;

require __DIR__.'/../vendor/deployer/deployer/recipe/symfony3.php';

// Configuration
set('repository', '<repo_of_your_sf3_project');

{...}

//works on first deploy but crashes after :)
//set('writtable_mode', '777');

//does not work
//set('writtable_mode', 'acl');
//set('writtable_mode', 'chgrp');

// Servers
serverList(__DIR__.'/servers.yml');

{...}

Output log
With enabled option for verbose output -vvv.
logs.txt
Files and Directories rights
//log files

//cache files

As you can see above, the cache and log files does not have write permissions for www-data group
As a result, the symfony app throw a beautiful exception :+1:

Thanks for your help

Concerning the 777 writable mode, I, as expected, have an error after warming up the cache ;)

I have the same issue with a vanilla Laravel install. Forcing 777 permissions works, but as noted above isn't ideal. Any fix for this?

It's looks line misconfigured server. Try to setup setfacl.

Ok, can you be more specific on the setup setfacl part ?

Install setfacl, setup sudo to not ask password, set('writable_more', 'acl');

OK ;)
setfack is installed on my server. Maybe the sudo part is missing but, as the deployer user is in the www-data group, I don't think the sudo is required (but I might be wrong !).
On another part, I think you forgot the -R option on chmod +a version ;) (debian allows chmod +a)
Content of common.php line 416 / 417
if (strpos(run("chmod 2>&1; true"), '+a') !== false) {
    // Try OS-X specific setting of access-rights

    run("$sudo chmod +a \"$httpUser allow delete,write,append,file_inherit,directory_inherit\" $dirs");
    run("$sudo chmod +a \"`whoami` allow delete,write,append,file_inherit,directory_inherit\" $dirs");
} elseif (commandExist('setfacl')) {
    if (!empty($sudo)) {
        run("$sudo setfacl -R -m u:\"$httpUser\":rwX -m u:`whoami`:rwX $dirs");
        run("$sudo setfacl -dR -m u:\"$httpUser\":rwX -m u:`whoami`:rwX $dirs");
    } else {
        ...
    }
    ...
}

file permissions setup symfony

Just tested with adding the -R on chmod +a => the problem persist.
I will try to allow my user to make a sudo chmod +a without passwd prompt and I let you know.

I'll will add chown type too.

be careful to let the deployer user allowed to remove the files...

Added all: chmod, chown, chgrp or acl.
I think to return to acl as was before.

Well, so best way is still ACL. Returned it back.

After a long research the problem is not coming from ACLs or chmod ...
The problem is that, at this time, symfony 3 installation returns some php notices and, THIS, automatically creates a log file (without the right rights ...).
[2016-11-17 16:25:27] php.INFO: The Symfony\Bundle\MonologBundle\DependencyInjection\Compiler\DebugHandlerPass class is deprecated since version 2.12 and will be removed in 3.0. Use AddDebugLogProcessorPass in FrameworkBundle instead. {"type":16384,"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\monolog-bundle\\DependencyInjection\\Compiler\\DebugHandlerPass.php","line":14,"level":28928,"stack":[{"function":"handleError","class":"Symfony\\Component\\Debug\\ErrorHandler","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\monolog-bundle\\DependencyInjection\\Compiler\\DebugHandlerPass.php","line":14,"function":"trigger_error"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Debug\\DebugClassLoader.php","line":142,"args":["C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\monolog-bundle\\DependencyInjection\\Compiler\\DebugHandlerPass.php"],"function":"require_once"},{"function":"loadClass","class":"Symfony\\Component\\Debug\\DebugClassLoader","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\monolog-bundle\\MonologBundle.php","line":38,"function":"spl_autoload_call"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\Kernel.php","line":592,"function":"build","class":"Symfony\\Bundle\\MonologBundle\\MonologBundle","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\Kernel.php","line":561,"function":"prepareContainer","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\Kernel.php","line":476,"function":"buildContainer","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\Kernel.php","line":117,"function":"initializeContainer","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Bundle\\FrameworkBundle\\Console\\Application.php","line":68,"function":"boot","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Console\\Application.php","line":118,"function":"doRun","class":"Symfony\\Bundle\\FrameworkBundle\\Console\\Application","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\bin\\console","line":27,"function":"run","class":"Symfony\\Component\\Console\\Application","type":"->"}]} []
[2016-11-17 16:25:36] php.INFO: The Symfony\Bundle\MonologBundle\DependencyInjection\Compiler\DebugHandlerPass class is deprecated since version 2.12 and will be removed in 3.0. Use AddDebugLogProcessorPass in FrameworkBundle instead. {"type":16384,"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\monolog-bundle\\DependencyInjection\\Compiler\\DebugHandlerPass.php","line":14,"level":28928,"stack":[{"function":"handleError","class":"Symfony\\Component\\Debug\\ErrorHandler","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\monolog-bundle\\DependencyInjection\\Compiler\\DebugHandlerPass.php","line":14,"function":"trigger_error"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Debug\\DebugClassLoader.php","line":142,"args":["C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\monolog-bundle\\DependencyInjection\\Compiler\\DebugHandlerPass.php"],"function":"require_once"},{"function":"loadClass","class":"Symfony\\Component\\Debug\\DebugClassLoader","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\monolog-bundle\\MonologBundle.php","line":38,"function":"spl_autoload_call"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\Kernel.php","line":592,"function":"build","class":"Symfony\\Bundle\\MonologBundle\\MonologBundle","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\Kernel.php","line":561,"function":"prepareContainer","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\Kernel.php","line":476,"function":"buildContainer","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\Kernel.php","line":117,"function":"initializeContainer","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Bundle\\FrameworkBundle\\Console\\Application.php","line":68,"function":"boot","class":"Symfony\\Component\\HttpKernel\\Kernel","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Console\\Application.php","line":118,"function":"doRun","class":"Symfony\\Bundle\\FrameworkBundle\\Console\\Application","type":"->"},{"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\bin\\console","line":27,"function":"run","class":"Symfony\\Component\\Console\\Application","type":"->"}]} []
[2016-11-17 16:25:37] php.DEBUG: symlink(): Could not fetch file information(error 3) {"type":2,"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Filesystem\\Filesystem.php","line":334,"level":28928} []
[2016-11-17 16:25:37] php.DEBUG: symlink(): Cannot create symlink, error code(1314) {"type":2,"file":"C:\\Users\\c16556a\\PhpstormProjects\\gitlab.com\\craft\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Filesystem\\Filesystem.php","line":334,"level":28928} []

When you read the symfony doc about permissions, it looks like we need to do a rm -rf var/cache/* var/logs/* which we can't do because it will erase the logs of previous releases ....


S3Client corrupts stack (or heap) on Ubuntu 24.04

Describe the bug
on AWS c7i.large EC2 instance
attempt to initialize and use an instance of Aws::S3::S3Client in a non-trivial production program and the S3Client seems to corrupt the stack resulting in SIGILL, Illegal Instruction.s
The "Hello S3" sample program here  is still functional. Calling ListBuckets() from our application environment is also successful and does not cause stack corruption. So the bug may be localized to specific functions (other functions called in my application are GetObject, PutObject, ListObjects, and HeadObject)
Expected Behavior
Continue functional operation of a production application built against the aws-sdk on Ubuntu 24.04 (migrating from Ubuntu 22.04)
Current Behavior
Some portions redacted of identifying information
Thread 1 "*****" received signal SIGILL, Illegal instruction.
0x00005555555ba215 in *********::******** (fh=@0x7fffffffdc18: 0x5555558fe1d0,
    readback=..., offsets=std::vector of length 50, capacity 50 = {...}, headerSize=528)
    at /home/ubuntu/*****/*****/include/*****.cpp:288
288        assert(headerSize == (readOffsets*sizeof(long)+readHeaders*sizeof(*************)));

Reproduction Steps
on AWS c7i.large EC2 instance, install AWS SDK per the documentation here
    1  sudo apt update
    2  sudo apt upgrade
    3  sudo apt install build-essential
    4  sudo reboot
    5  sudo apt install build-essential
    6  sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
    7  cmake
    8  sudo apt install cmake
    9  git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
   10  ls
   11  mkdir aws-sdk-build
   12  cd aws-sdk-build/
   13  ls
   14  cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_ONLY="s3"
   15  make
   16  sudo make install
   17  sync
   18  cd
   19  curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
   20  unzip awscliv2.zip
   21  sudo apt install unzip
   22  unzip awscliv2.zip
   23  cd aws
   24  ls
   25  sudo ./install
   26  aws --version
   27  cd
   28  ls
   29  mkdir .aws
   30  cd .aws
   31  ls
   32  vim config
   33  vim credentials

Now attempt to initialize and use an instance of Aws::S3::S3Client in a non-trivial production program and the S3Client seems to corrupt the stack resulting in SIGILL, Illegal Instruction.s
The following are snippets of how the S3Client is instantiated by my application to confirm that it was blowing up the stack. Previously, we instantiated the client on the heap, and it caused SIGILLs in a different heap location. I rewrote to the following to instantiate it on the stack since the sample S3 Hello program creates the client on the stack, and the SIGILL backtrace moved to stack memory (when the program continues on to attempt to read and parse the file it downloaded from S3).
AWSHelper.hpp
class AWSHelper
{
   public:
      static AWSHelper* getInstance();
      void shutdown();
      int S3Init();
   protected:
      AWSHelper();
   private:
      ~AWSHelper();

      static AWSHelper* m_instance;

      //Aws::S3::S3Client* m_s3client;
      static Aws::SDKOptions m_sdkoptions;
      Aws::Client::ClientConfiguration m_sdkClientConfig;
      Aws::S3::S3Client m_s3client;

AWSHelper.cpp
#include "AWSHelper.hpp"

using namespace Aws;

AWSHelper* AWSHelper::m_instance = NULL;
Aws::SDKOptions AWSHelper::m_sdkoptions;

AWSHelper* AWSHelper::getInstance(){
    if(m_instance == NULL){
        m_sdkoptions.loggingOptions.logLevel = Utils::Logging::LogLevel::Debug;
        Aws::InitAPI(m_sdkoptions);
        m_instance = new AWSHelper();
        m_instance->S3Init();
    }
    return m_instance;
}

AWSHelper::AWSHelper()
{

}

int AWSHelper::S3Init()
{
   Aws::S3::S3Client m_s3client(m_sdkClientConfig);
   //m_s3client = Aws::S3::S3Client();

   return 0;
}

void AWSHelper::shutdown()
{
   SDKOptions options;
   options.loggingOptions.logLevel = Utils::Logging::LogLevel::Debug;
   Aws::ShutdownAPI(options);
}

Possible Solution
This was and still remains functional on Ubuntu 22.04 as well as RHEL9.
Suspect there is a bug or lack of support for gcc 13 in Ubuntu 24.04
Additional Information/Context
No response
AWS CPP SDK version used
1.11.367
Compiler and Version used
gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0
Operating System and version
Ubuntu 24.04 LTS -- Linux ip-172-31-15-168 6.8.0-1010-aws #10-Ubuntu SMP Thu Jun 13 17:36:15 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Hi @torchedplatypi ,
Thank you for providing your build steps and some reproduction code.
Please refer to our basic-use doc:

The SDK for C++ and its dependencies use C++ static objects, and the order of static object destruction is not determined by the C++ standard. To avoid memory issues caused by the nondeterministic order of static variable destruction, do not wrap the calls to Aws::InitAPI and Aws::ShutdownAPI into another static object.

Unfortunately, the provided sample and the stack trace do not contain enough information to confirm that it is the case from our documentation. It would be great if you could provide a complete reproduction sample.
The important part missing in the sample at the moment is about when your shutdown method is called. To have things work without an undefined behavior, both m_sdkClientConfig and m_s3client must be destructed before the shutdown is executed. This is due to our legacy API design that allows undefined behavior usage, we are trying to improve it, but we can't change much without breaking existing API contracts.
Additionally,

int AWSHelper::S3Init()

is not doing anything except creating and destroying a temporary local object m_s3client.
Your AWSHelper::m_s3client is default constructed and m_sdkClientConfig is not used, I guess you'd want to use your client config for the client creation.
Best regards,
Sergey

I do call the shutdown function from our main binary. Here are the snippets of invoking our AWSHelper (which is our wrapper object Singleton, around an Aws::S3::S3Client):
int main(int argc, char** argv):
   ... parse CLI args ...

   AWSHelper* awsHelper = AWSHelper::getInstance();

   // this call is functional
   awsHelper->S3ListBuckets();

   //continue using awsHelper to do things, which now fail (stack corrupted before we get to shutdown)

   //never get here
   awsHelper->shutdown();

Regarding int AWSHelper::S3Init() not doing anything, that was an artifact of me scrambling this morning to attempt to initialize our wrapper object AWSHelper as a Singleton with a member variable Aws::S3::S3Client m_s3client. I assumed that declaring the private member Aws::S3::S3Client m_s3client without invoking the constructor Aws::S3::S3Client m_s3client() would not successfully create a client with default config. That is actually OK. Our prior functional app used a default configuration.
Here is our original version, where the S3Client was initialized on the heap for easier management with our wrapper object:
AWSHelper.hpp
class AWSHelper
{
   public:

      static AWSHelper* getInstance()
      {
         static AWSHelper* m_instance;// = NULL;
         if (m_instance == NULL)
         {
            m_instance = new AWSHelper();
            m_instance->S3Init();
         }
         return m_instance;
      }

      void shutdown();

      // S3 utility fns
      int S3Init();
      int S3ListBuckets();
      std::vector<std::string> S3ListFiles(std::string bucketName);
      std::vector<std::string> S3ListFiles(std::string bucketName, std::string prefix);
      int S3DownloadFile(std::string bucketName, std::string fileName, std::string outDir);
      int S3DownloadFile(std::string bucketName, std::string fileName, std::string outDir, std::string outFilename);
      int S3UploadFile(std::string bucketName, std::string fileName, std::string dir);
      int S3UploadFileToDir(std::string bucketName, std::string bucketPath, std::string fileName, std::string localdir);
      int S3FileExists(std::string bucketName, std::string key);
      int S3DeleteObject(std::string objectKey, std::string fromBucket);

   private:
      AWSHelper();
      ~AWSHelper();

      Aws::S3::S3Client* m_s3client;

AWSHelper.cpp
#include "AWSHelper.hpp"

using namespace Aws;

AWSHelper::AWSHelper()
{
   SDKOptions options;
   options.loggingOptions.logLevel = Utils::Logging::LogLevel::Fatal;

   //The AWS SDK for C++ must be initialized by calling Aws::InitAPI.
   InitAPI(options);
   {
   }
}

int AWSHelper::S3Init()
{
   m_s3client = new Aws::S3::S3Client();
}

void AWSHelper::shutdown()
{
   SDKOptions options;
   options.loggingOptions.logLevel = Utils::Logging::LogLevel::Debug;
   Aws::ShutdownAPI(options);
}

I imagine I am running into an issue with wrapping into a static object, but in execution I am declaring S3Client as a static variable inside a non-static class, which I don't believe is the edge case your basic-use doc note actually covers.
I have been unable to find documentation, is there a canonical way to initialize and keep a singleton Aws::InitAPI and S3Client?

Hi @torchedplatypi ,
I agree that it is likely not the case of using the AWS SDK from a static wrapper. (You still have the issue that S3Client is getting destructed after ShutdownAPI is called, but your app execution does not reach that point).
Regarding the issue, unfortunately, there is still not enough information to triage the issue.
It would be great to have a reproduction code or full/more stack trace at the moment of a segfault.
According to the info provided, there is something within the SDK / app at
//continue using awsHelper to do things, which now fail (stack corrupted before we get to shutdown)

That results in a segfault.
I've tried searching for a assert(headerSize == (readOffsets*sizeof(long)+readHeaders*sizeof(*************))); in the SDK code base but could not find anything. It seems that you have a debug build (that have asserts enabled), you could try to launch the app with a debugger attached and break at the moment of the assertion triggered.
Another thing I could suggest is to enable lower level logging within the SDK (and then search for ERROR / FATAL messages in the SDK log).

I have been unable to find documentation, is there a canonical way to initialize and keep a singleton Aws::InitAPI and S3Client

So far we've only advised against such usage in our documentation (to avoid wrapping the SDK Init-Shutdown methods and a client into a static class), but this is a recurring ask, so I guess we will have to provide a guidance / "API handle" wrapper. I can't give any estimate when it can be done though.
Best regards,
Sergey

Hi Sergey,
Thank you for the responses.
I do not intend to abandon this, but currently, I cannot prioritize paring down our source base to a minimal example of just the SDK usage. My company can opt to pause the Ubuntu 22.04->24.04 migration as 22.04 is an LTS which is not EOL until 2027, so we can return to this issue at a less pressing time crunch.
"It's never a bug in the kernel" :) Our implementation is inherently more suspect than the SDK or any tools/library changes from the Ubuntu upgrade. So it can very plausibly still be an issue with our implementation. But our implementation has been working for some time.
If I solve via an implementation change (I will keep poking at it, with your comments here at hand for some extra info I didn't have previously) I will update here.
Otherwise I will try to come update with a useful full stack trace if I can demonstrate it more minimally scoped to the SDK.
If that means closing this one, and reopening when I have better debugging information, that's OK too. Please proceed

A quick question,
so you can confirm that it works on the Ubuntu 22.04 but exactly the same code started to fail on 24.04?
It gives us some pointers to check in regards of OpenSSL and libCurl versions updated.

Yes I can confirm that.
In my debugging, I spun up two fresh c7i EC2 instances, one with 22.04 and one with 24.04, ran the bash history steps I have pasted above in the Reproduction Steps.
This installed utilities, AWS SDK, and AWS CLI to check and confirm our AWS S3 credentials worked.
I then checked out our private repository and built and ran. 22.04 was functional, 24.04 failed.
This was an attempt to isolate the problem to the OS release (as opposed to instance type [we'd previously been using burstable instances], or system configuration. I cannot think of any other variables that might be confounding.

I tried running the hello_s3 sample in an ubuntu 24.04 docker container and it still runs fine. Here is the dockerfile that I used:
FROM ubuntu:24.04

#install deps
RUN apt-get update
RUN apt-get install -y git cmake zlib1g-dev libssl-dev libcurl4-openssl-dev build-essential

#clone and build sdk
RUN git clone --depth 1 --recurse-submodules https://github.com/aws/aws-sdk-cpp && \
    cd aws-sdk-cpp && \
    mkdir build && \
    cd build && \
    cmake -DAUTORUN_UNIT_TESTS=OFF -DBUILD_ONLY="s3" .. && \
    cmake --build . && \
    cmake --install .

#copy code and build sample application
RUN mkdir sdk-example
COPY CMakeLists.txt sdk-example/CMakeLists.txt
COPY hello_s3.cpp sdk-example/hello_s3.cpp
RUN cd sdk-example && \
    mkdir build && \
    cd build && \
    cmake .. && \
    cmake --build .

Does this only fail when you run it on a c7i EC2 with ubuntu 24.04? Can you try running the docker container to see if you still get the crash


Convenience methods for mute/deaf.

Mute/deafen convenience methods with reason support.
Some documentation fixes which I assume come from migrating the v1 codebase to v2.

This is UNTESTED. Making the PR now so people can suggest changes early on.

So the setters on impl. classes exist mainly for ex. Jackson-type automatic deserialization; they aren't exposed to the end-user without explicitly casting to the impl class.

I see. I had to remove the Lombok generated ones as they were colliding with the setters in Member. I can also move the setters to the MemberImpl class itself or something.
Not sure how to get around this without renaming methods or not explicitly supporting Jackson deserializaton.

@SamOphis It's been nearly 2 months, is this going anywhere?


Frontend: Signup & Login components with firebase (test branch)

git fetch origin
git checkout 30-frontend-signup-login-components-with-firebase-test-branch

LoginScreen.tsx
SignupScreen.tsx

To run the app, cd to frontend, and run the command: expo start
In case expo start does not work, try "expo start --tunnel"


Update exnihilo to 1.7.2

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Merge conflict. Closing in favour of https://github.com/caskroom/homebrew-cask/pull/36079


Remove deprecated arguments.callee

This removes this deprecated feature to make this codebase future proof!
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee
Fixes #123

@VincentGarreau - Can you merge this path please?

@VincentGarreau  - Have you had a chance to look at this pull request yet?

Please merge?

I've NPM republished the forked version so you can npm install it easily:
https://www.npmjs.com/package/strict-particles-js
just do npm install strict-particles-js

I've NPM republished the forked version so you can npm install it easily:
https://www.npmjs.com/package/strict-particles-js
just do npm install strict-particles-js

You can find many PR like this already fixed in tsParticles

I've NPM republished the forked version so you can npm install it easily:
https://www.npmjs.com/package/strict-particles-js
just do npm install strict-particles-js

You can find many PR like this already fixed in tsParticles

tsParticles has totally different visual effects, they're not so nice.

Yes, totally different
https://codepen.io/matteobruni/pen/dyqmBeV
Totally


Added macro expansion support

1. Added new macro: VERIFY_AND_CLEAR_MODULE_FUNC
2. Added macro expansion support for:

RESTORE_MODULE_FUNC
VERIFY_AND_CLEAR_MODULE_FUNC_EXPECTATIONS
VERIFY_AND_CLEAR_MODULE_FUNC
REAL_MODULE_FUNC
INVOKE_REAL_MODULE_FUNC

3. Renamed patch_module_func_ to patch_module_func_non_optimized and moved it to the private namespace: gmock_win32::detail

OMG, this is about VERIFY_AND_CLEAR_MODULE_FUNC_EXPECTATIONS.

I realized I had omitted VERIFY_AND_CLEAR* during the initial implementation, so I added it later to align with GMock. Now, we have two variants:
// Verifies and removes the expectations
VERIFY_AND_CLEAR_MODULE_FUNC_EXPECTATIONS(GetCurrentProcessId);

// Verifies and removes the expectations and removes the default actions set by ON_CALL
VERIFY_AND_CLEAR_MODULE_FUNC(GetProcessIdOfThread);

When I wrote the first tests, doubts arose about the correctness of its functioning, but I decided to leave all the questions for later. In short, it was not a priority. I hope there is a fix, but I can’t check right now.

In GMock, the expectations of a mock object are verified upon its destruction. However, since we do not destroy our objects, we must manually verify our expectations after each test. There are different cases when it can have different behavior (perhaps we should mention these nuances in the documentation):

In the general case, we should verify expectations after every test case, similar to how a Mock object would be destroyed. This can typically be done in the TearDown method.

In specific cases, particularly when functions used are also part of GMock (e.g. during ::testing::Mock::VerifyAndClear* calls), we should first call RESTORE_MODULE_FUNC and after that, we can call VERIFY_AND_CLEAR_MODULE_FUNC_* (so it would work properly with real functions).

OMG, this is about VERIFY_AND_CLEAR_MODULE_FUNC_EXPECTATIONS.

I'm going to make a new tag 1.2.2 with these changes:

Added support for Win32 API forwarding
Added support for macro expansion across all macro definitions
Added VERIFY_AND_CLEAR_MODULE_FUNC macro
Fixed a typo related to 12 arguments
Fixed C++20 compilation errors and warning 4702

... we do not destroy our objects ...

Yes, this is it, now everything is clear.

I'm going to make a new tag 1.2.2

Yeah, a new version is always a holiday! I am glad.
We'll probably introduce "SemVer" soon. It will be possible to connect it with CI.


📎 Implement suppression of plugin diagnostics

Description
Plugin diagnostics currently cannot be suppressed by biome-ignore comments. We need to confirm what syntax we want to use, but I would suggest the following since it's pretty close to regular rules:
// biome-ignore plugin/myCustomPlugin: <reason>

Then the analyzer needs to be extended so the diagnostics are indeed suppressed. It's a relatively well-contained task, but does require some knowledge of the analyzer internals.

Hi~ I read the related code on how suppression work, and have some basic idea how to implement this. Can you help to assign this to me? thanks!
I'll draft a simple design doc for review before start coding.


Issue while building/Running IOS App

Hi @evilrat ,
We are not able to run or build the IOS app using the plugin. We get below attached error if we try to run. Can you check this.

No implementation for ios...work is complete but package side crosses 100mb so unable to upload it for now...will do it by first week on aug

Hi @evilrat ,
We are not able to run or build the IOS app using the plugin. We get below attached error if we try to run. Can you check this.

If you want it anyway i can put it on github...directly as a dev branch...you can use it for now

Hi @evilrat ,
We are not able to run or build the IOS app using the plugin. We get below attached error if we try to run. Can you check this.

If you want it anyway i can put it on github...directly as a dev branch...you can use it for now

@evilrat yes , kindly put it on github for now , we shall use it until you provide the stable release on August as you have mentioned.

Hi @evilrat ,
We are not able to run or build the IOS app using the plugin. We get below attached error if we try to run. Can you check this.

If you want it anyway i can put it on github...directly as a dev branch...you can use it for now

@evilrat Thanks for the response. Yes , kindly put it on github for now , we shall use it until you provide the stable release on August as you have mentioned. Can you also let me when can you put the dev branch on github so that we can make internal arrangements for the release

flutter_zoom_sdk:
git:
url: git@github.com:evilrat/flutter_zoom_sdk.git
ref: dev

@evilrat Thanks for sharing , as per the above dependency I tried running pub get but it is still loading even after 30mins of time. Is this the proper way mention the implementation on yaml file

@evilrat Thanks for sharing , as per the above dependency I tried running pub get but it is still loading even after 40mins of time. Is this the proper way to mention the implementation on yaml file

add http link in place of ssh....and try


Make classpath hashing more lightweight

It would be good to have the option to bypass the calculation of a file hash code if the size has not changed and the timestamp has not changed (just the timestamp should be ok). This has huge performance potential... avoiding doing work at all.
Possibly there could be some trigger that the file timestamp must be older than an hour or something... to avoid user interaction problems.
NIO allows a fast mechanism for collecting bulk metadata, it should be possible to traverse a directory and get all of this information very quickly before deciding what needs to be rehashed.

See link for a proof of concept that basically removes the bottleneck entirely. Should really be implemented in the zinc layer but I have no way of doing that and testing it in a live sbt.

It would be good to have the option to bypass the calculation of a file hash code if the size has not changed and the timestamp has not changed (just the timestamp should be ok). This has huge performance potential... avoiding doing work at all.

We can use the checksums in the same jars to detect whether something has changed or not (all zip files have checksums in their headers). In fact, it's not clear why we compute a hash of the jars instead of reusing the checksum in the header.

@jvican ha! That's a pretty good idea. Although I still think file size / timestamp is a pretty damn good low bar for everything. But having custom hashes sounds like an excellent idea, especially if the file already has a checksum!

For completeness I raised PRs against launcher and sbt to enable monkey patching to let me play around. Until they are working and merged I'm afraid I can't help.
https://github.com/sbt/launcher/pull/43
https://github.com/sbt/sbt/pull/3643

I second the idea of using less safe but faster comparison options. Not sure about zip file signatures. Afaik zip files don't contain a hash over all the content but only crc32s for each file which would mean that you would have to read (probably significantly) into the content to collect all the hashes (but would probably still be faster than reading all the data). Getting just file system metadata should be still faster.

Clear reproduction in https://github.com/cakesolutions/sbt-cake/tree/sbt-perf-regression
type sbt cpl to compile all test phases.

Getting just file system metadata should be still faster.

This is not viable. System metadata is really unreliable, and I would not like the incremental compiler to misbehave because of it.
I think that reading checksums from the zip file could be done in a fast way with some tweaks.

This is not viable. System metadata is really unreliable, and I would not like the incremental compiler to misbehave because of it.

Hmm, relying on modification times, sizes, and other stat information is also how git and rsync work in the default cases. If it is reliable enough for those kinds of more critical infrastructure, wouldn't it be for zinc as well?
The incremental compiler is an optimization that will often be used in an interactive system. In that case, the system metadata should just be assumed to be reliable enough to be used. If it is not (for whatever reason) it should be the user who decides to switch to an even more reliable mechanism.

system metadata like timestamps and file size? I have never seen that to be incorrect. Given that we're talking about external dependencies, it would be a fair assumption that they never change.
I know for a fact that scalac can't handle the case where a jar file changes... the whole classpath needs to be reloaded and I doubt zinc is even considering that.

Hmm, relying on modification times, sizes, and other stat information is also how git and rsync work in the default cases. If it is reliable enough for those kinds of more critical infrastructure, wouldn't it be for zinc as well?

I don't have any data to show you because I've rarely had problems with it, but I can point out two facts:

The Zinc compiler hashes source files to detect changes because there were problems in the past with just checking the file metadata. If that happened with source files, it will also happen with jars. Mark Harrah documented it somewhere.

Pants and Bazel exist in part because you cannot trust system's metadata -- I believe reading they had some issues with it. As a result, they hash everything.

The incremental compiler is an optimization that will often be used in an interactive system.

The incremental compiler is the default way of using the Scalac compiler, I doubt users would tell you they consider it an optimization. Zinc is just another compiler and as such it's better if it's as reproducible as possible.

I know for a fact that scalac can't handle the case where a jar file changes... the whole classpath needs to be reloaded and I doubt zinc is even considering that.

That has to do with the classpath handling of scalac, it's not related to this ticket. I also believe it's improved in the last release IIRC.

The real hash can look inside the file, but the cache of the hash (which is what we're talking about here) is perfectly fine using file metadata.

Which cache of the hash? We're discussing what Zinc should do to check if the classpath has changed, and for that it currently uses hashing of the contents. There's no cache of the hash...
I believe that either the CRCs in the jar file or plain hashing (like we're doing right now) are the only two options here.
If we assume that we go with the hashing aproach, the effect should be minimal. For example, xxHash can do 5.4GB/s. Even if we assume a gigantic classpath of 1gb, that would not even be more than 250 ms (giving it some margin for IO and latency).

the resolution to this ticket is to add a cache around the hash, using filesystem metadata to do so. See my Proof of Concept to sbt-io.
This is proposed as a 1.0.x binary compatible solution, so changing the actual hashing algorithm is out of scope and considered elsewhere.

the resolution to this ticket is to add a cache around the hash, using filesystem metadata to do so. See my Proof of Concept to sbt-io.

Exactly, so maybe this was just a misunderstanding? The idea was not to remove hashes completely but to avoid recalculation when files have not changed.

No, I really meant it: using filesystem metadata to figure out if a file has changed or not is a bad idea.
I'm all for removing the duplication for the transitive jar hashing that happens in multi-build project, but I don't think that the caching should do more than just that.

@jvican I'd need to see some solid evidence of the meta data being unreliable before I could agree with you. Removing transitives would be an even bigger exposure... what if I went and swapped out scala-library.jar or (more likely, and the reason why I suspect Eugene added jar caching in the first place) some dependent jar that is part of my build? Your approach wouldn't notice this.

Related ticket that explains why source file hashing is used, even though there's not much evidence: https://github.com/sbt/sbt/issues/685. In essence, the precision of lastModified is poor.
I've had a private chat with @fommil and it looks like we've converged to use the filesystem metadata for jars, given that the jars mostly come from the ivy or coursier cache and not from the build (via packageBin).

I would also like to say that I am in favour of a very rare case of
undercompilation (which can be resolved by a clean) rather than a constant
overhead to catch a rare edge case.
No matter what, some hashing will be needed, right? It might as well be
fast. Or does this PR introduce serious complexity baggage that will be
difficult to get rid of?
Am 09.11.2017 11:36 vorm. schrieb "Jorge"<EMAIL_ADDRESS>
Related ticket that explains why source file hashing is used, even though
there's not much evidence: sbt/sbt#685
https://github.com/sbt/sbt/issues/685. In essence, the precision of
lastModified is poor.
I've had a private chat with @fommil https://github.com/fommil and it
looks like we've converged to use the filesystem metadata for jars, given
that the jars mostly come from the ivy or coursier cache and not from the
build (via packageBin).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/sbt/zinc/issues/433#issuecomment-343114883, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAJPMsRZpZi8ReQbZA-A4JlEJpxk2v5Sks5s0tW8gaJpZM4P5VWu
.

I've had a private chat with @fommil and it looks like we've converged to use the filesystem metadata for jars, given that the jars mostly come from the ivy or coursier cache and not from the build (via packageBin).

Sounds good.

Timestamps can miss changes with a fidelity of 1 second (and the OS could lie and retain the original timestamp). File sizes can also lie (a single char change). But the combination of both of these things means that the probability of not picking up on the change is so low that it isn't worth considering. And a workaround is always to restart sbt or zinc.

Yes that's a good point. The link to the description of the git modification detection logic also talked about that. They also use the last modification check to decide whether a change might have changed in the same second as the hash has been computed or not.

It is possible to have both correctness and performance for this case if file watching is used to invalidate cache entries. sbt already has facilities to do this, afaik (as do all other consumers of zinc), so exposing a callbacky invalidation API would allow callers to bring their own invalidation. I believe @romanowski opened a PR for such a thing...?
Assuming that that invalidation API exists and is used by the relevant consumers, having a default/fallback impl that used filesystem metadata would be ok.


User Administrator rights

The description for User Administrator rights reads as "Can manage all aspects of users and groups, including resetting passwords for limited admins." But I have just discovered that User Administrators cannot upload profile images without additional Exchange Admin rights. Can this be investigated or added into the description please.

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

ID: 0767aac4-fcd9-eaac-2c30-8f17d8eadd92
Version Independent ID: a380a828-03f9-e037-3a62-e4165fda7cb6
Content: Admin role descriptions and permissions - Azure AD
Content Source: articles/active-directory/users-groups-roles/directory-assign-admin-roles.md
Service: active-directory
Sub-service: users-groups-roles
GitHub Login: @curtand
Microsoft Alias: curtand

@itsorch Thank you for your feedback . We will investigate and update the thread further.

@itsorch How and where are you updating the profile picture?

I had to request exchange admin rights, which then gave me the ability to sort this out, 2 days passed my deadline, very stressful, but done now.

@itsorch could you please give required details so that we can investigate and update the document?
Were you updating the profile picture on Azure Portal or anywhere else? Were you using Graph API or directly updating the picture on the portal?

With only User Administrator rights, I tried to update other users Photo in both Azure AD and the Office 365 Portal. Neither worked.
We had to add Exchange Administrator rights for me to update them in the Office 365 portal.
I still cannot update the photos in Azure AD and I now have the following rights:
Exchange Administrator
User Administrator
SharePoint Administrator
Teams Administrator
We have done some testing and it seems that only Global Administrators can update a users Photo in Azure AD.

@itsorch I just tested setting profile picture on Azure Portal using User Administrator account (not Global Admin) and didn't encounter any issue. I tested this on two different Azure Tenants and it worked on both tenants.
The issue appears to be specific to your tenant. If you would like to further investigate into it, I would suggest you to open a support case using Azure Portal.

Hi Amanmcse, thats not right though, you say you tested it, but was the user an Exchange admin? What were the parameters of the test? This documentation is supposed to help me sort this out, but currently it doesn't. What could possibly be wrong in my tenant that prevents this from working?

@itsorch I tested with User Administrator role only. I didn't assign any other role.

I created a new user in Azure AD using Azure Portal.
Assigned only User Administrator role to the user. No Exchange admin or any other role was assigned.
Edited profiles of other users in Azure Portal and successfully updated profile picture.

This platform is not for troubleshooting. We use this platform to fix the documentation related issues. As the expected behavior is as per the document, you should open a support case to identify the issue or possible causes.


Use native ESM and update dependencies

I triead once again, what PR #37 tried to do.
I also replaced some old dependencies:

'exec-buffer' -> 'execa' and 'tmp'
'xo' -> 'eslint'

I added the 'stripMetadata' option, as #27 suggested.

'xo' -> 'eslint'

I'm not interesting in this change.


Not found receiver device for chrome cast (iOS)

In Googlecast SDK version 4.3.2 Cannot found receiver device. But in v.3 with GCKDeviceScanner it work.
I already test with GoogleHome app , Youtube  and sample v.3 app , It's founded

You can file any Cast SDK issues here: https://issuetracker.google.com/issues?q=componentid:190205 status:open&s=modified_time:desc


Improve matching of regexp domains

I need to do partial matching on domains for ignoring the subdomain-part. This was not working and I discovered that the reason was the matchIndependentOfBody method which did simple string-matching regardless of basePath being a regular expression.
I have fixed that and included a test-case that only passes when the changes are included.

Hello and sorry for the late response. Please rebase on top of (or merge in) latest master as the tests are (finally) green again.


Fixing with passing tests

I pulled the hostname stuff out of the initialize and moved it to a separate function.  Current tests pass, and the original functionality is basically restored.

Ok. looks like it now sets the section based on setup_from_edgerc and not from the url. Is that right?


Add LICENSE

Hello!
I've noticed that fzf-lua doesn't have a LICENSE file yet, so I wanted to bring that to your attention.
nvim-fzf has an AGPL license, so if you'd like to use the same LICENSE, that would be the easiest way to resolve this.
Otherwise, I can look into providing an exception if you have any problems with this. I'll have to reach out to contributors in that case, and it'll be a bit messy.

Great! Sorry about the hassle, GPL vs MIT is kind of an ideological thing, I use GPL when I think something should remain open source forever.

Hey @ibhagwan , would you consider re-licensing as MIT?
Would allow other nVim plugins released under MIT to borrow code from fzf-lua.

I personally don’t have any objection but given I initially based the plugin on code from nvim-fzf I would have to respect @vijaymarupudi’s decision. That said if @vijaymarupudi agrees we can go ahead with the change.

Personally, I like the AGPL and its virality, and I don't really see any disadvantage to the AGPL for an open source ecosystem like neovim and its plugins.
That said, if there is a strong need to change the license, I will consider it. I will say that it's probably difficult to change the LICENSE at this point. If someone volunteers to put in the time to contact all contributors to nvim-fzf and get them to approve the license change, it could happen.

AGPL is restrictive license: https://opensource.google/documentation/reference/using/agpl-policy not much different from GPL.
I believe it's a grey area whether having a AGPL/GPL licensed plugin as a "dependency" to one's project, or people "copying" example codes would lead to potential violation, but having a Apache or MIT compatible license would be much better and less restrictive in general.

I understand that's it is restrictive, but it's restrictive in a way that makes more software open-source and protects the contributions of the contributors. Makes sense why a company like Google which depends on proprietary software would be against it. They don't want to share their source code. The safe choice for a project that wishes to use an AGPL dependency is to use the AGPL.
Practically speaking, I don't think the license restricts anyone from building / using the project. All neovim plugins of interest are open-source, and issues only arise if someone wants to build proprietary software on top. That's not something I think is likely, but I will hear arguments otherwise.

@vijaymarupudi, AGPL is sometimes disallowed even for internal, non-deployed development in companies. That means that developers working in those companies cannot use this plugin at all.
What would effort would it take to change the license? Or has changing the license become a non-starter in the meantime?

Sure, sounds like enough people want this.
nvim-fzf has 7 external contributors. Organize an effort to get them to approve the LICENSE change in an issue over there, and then I can change it, thereby also allowing fzf-lua's license to change.

Started https://github.com/vijaymarupudi/nvim-fzf/issues/58. Please check and confirm that MIT as a target is acceptable to you. I chose MIT as most other plugins I use are using the MIT license.

https://github.com/ibhagwan/fzf-lua/commit/ace9968be267b034e450be4feaf6e9107bc34fbd
Ty @Roniyahe54 for taking the lead on this.


Poor RTL support in the main editor.

Prerequisites

[x] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
Poor support for RTL language.
RTL text is not highlitable.
Steps to Reproduce

type some RTL Language like Arabic or Persian inside a quotation. Like this : "سلام این یک جمله فارسی است".
Try to select a word or a phrase from within the quote.
Or try to add a new word in the sentence. It's typed somewhere else... [magical]

Versions
Atom    : 1.19.7
Electron: 1.6.9
Chrome  : 56.0.2924.87
Node    : 7.4.0
OS : Windows 10

Thanks for taking the time to contribute!  As mentioned below, there are existing issues with RTL text that you can subscribe to if you'd like.
About this part:

Or try to add a new word in the sentence. It's typed somewhere else... [magical]

Curious if you can share a GIF or screencast of this behavior?  I just want to make sure this has already been captured in an existing issue.

We noticed that this is a duplicate of issues like https://github.com/atom/atom/issues/12282, https://github.com/atom/atom/issues/10132, and https://github.com/atom/atom/issues/13612. You may want to subscribe there for updates.
Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.

@rsese I am closing this as a duplicate. Let me know if you want to keep this open ✌


Error: Can't find uploader config

[PicGo INFO]: Before transform
[PicGo INFO]: Transforming...
[PicGo INFO]: Before upload
[PicGo INFO]: Uploading...
[PicGo WARN]: failed
[PicGo ERROR]: Error: Can't find uploader config

我用法不对么..

solved!