Refactoring and Enhancement (Ongoing)

Looks very promising so far!
Please keep the is { } and is null as they are a part of the code convention used throughout the code.

Is there a document describing this convention I can reference? Otherwise I personally recommend changing this convention, as it does not offer any real readability, structural or performance advantages.

Is there a document describing this convention I can reference? Otherwise I personally recommend changing this convention, as it does not offer any real readability, structural or performance advantages.

Unfortunately there's no convention yet. I did not expect anyone to contribute to the code; so there's still some collaboration preparation to be done to say the least. But for now I think it is easiest to keep the is syntax as I am not personally interested in changing it as of now. (I got the habit of using is from my workplace, so it makes the most sense for me right now!)
Code base is still not mature so of course this is subject to change - most of the code is. So I appreciate any structural & code style based feedback!

Here are the biggest changes I would only work on if they were confirmed wanted...

Replace the ConsoleHelper with a basic Logging class, with different LogLevels (Typesafe Enum Pattern, probably)
Rework the entire commands system into something more dynamic, with things like an automated 'help' command and metadata-based argument parsing and related error messages, likely using some light reflection.
Rework the way processes are selected. Honestly the only real thing needed here is at least a way to use a PID, or the ability to select a specific process out of several of the same name.

Regarding 1., I'd be interested in some feedback regarding b65b90f (see 3f5e6e1 for the actual commit message, I kind of messed up there, might rewrite history a little later).

Here are the biggest changes I would only work on if they were confirmed wanted...
1. Replace the ConsoleHelper with a basic Logging class, with different LogLevels (Typesafe Enum Pattern, probably)

2. Rework the entire commands system into something more dynamic, with things like an automated 'help' command and metadata-based argument parsing and related error messages, likely using some light reflection.

3. Rework the way processes are selected. Honestly the only real thing needed here is at least a way to use a PID, or the ability to select a specific process out of several of the same name.

Regarding 1., I'd be interested in some feedback regarding b65b90f (see 3f5e6e1 for the actual commit message, I kind of messed up there, might rewrite history a little later). Its a solution that only works on windows, so I figured it would be fine for a windows-only autoclicker, but this behavior is honestly not needed that badly anyway.

ConsoleHelper is a really bad excuse for not spending the time to not use a proper logging library like Serilog or log4net or whatever. If time was spent to actually make logging good I would love to see a library being implemented in a way that makes sense for such a little application as this is.

This would be great, the command system right now is very lightweight and simple, but if it could be made a lot better and you wish to put in the work, sure, I'd love to review it!

It's a double edged sword. Because I want to achieve a lot with this one.
Two of the biggest/the biggest goals:

Be able to let any non-advanced windows user be able to use this application within both standalone and browser usage.
Let advanced users be able to configure and use the application in a way where they are able to meet pretty specific needs. (This is where the need for multiple clickers and clicker names grew).

Currently I think it does a great job of making it simple for standalone applications, but it's a hassle to pick for example browser window processes. I haven't put in a lot of time on this yet, but I want another way to fetch processes that is intuitive enough for a non-advanced windows user to make it work. If you have any suggestions here feel free to send them to me or make a draft in another PR.


DM-38795: Fix API documentation

The URL for the OpenAPI documentation incorrectly had an extra leading slash. Remove the extraneous slash.

Nope, every slash is significant.


[cleanup][test] Delete useless test

Modifications
Delete these useless intergration tests
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Codecov Report

Merging #21238 (6df3fd7) into master (be4ab66) will increase coverage by 38.59%.
Report is 1 commits behind head on master.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             master   #21238       +/-   ##
=============================================
+ Coverage     34.63%   73.23%   +38.59%
- Complexity    12097    32495    +20398
=============================================
  Files          1698     1887      +189
  Lines        130451   140138     +9687
  Branches      14252    15428     +1176
=============================================
+ Hits          45187   102625    +57438
+ Misses        79262    29416    -49846
- Partials       6002     8097     +2095

Flag
Coverage Δ

inttests
24.08% <ø> (?)

systests
24.79% <ø> (-0.05%)
:arrow_down:

unittests
72.53% <ø> (+40.57%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1472 files with indirect coverage changes

How do you identify these tests as "useless"?

Ah, it's pulsar-2.2~-2.5, we already not support these versions.

we already not support these versions

@Technoboy- here we have one question: do we still keep compatible with those versions? These tests do sanity checks that new version clients can talk to old version servers, this is part of our compatibility promise.
We also have pulsar-client-1x-base. If we don't need to ensure compatibility use <= 2.8, we may not need to maintain those modules also.
What do you think?

we already not support these versions

@Technoboy- here we have one question: do we still keep compatible with those versions? These tests do sanity checks that new version clients can talk to old version servers, this is part of our compatibility promise.
We also have pulsar-client-1x-base. If we don't need to ensure compatibility use <= 2.8, we may not need to maintain those modules also.
What do you think?

The reason for this PR is that when I was working on #21221, I found that some scripts in the test were no longer universal. I wanted to change them, but found that they had little practical significance. Therefore, I want to delete all the related tests in this PR. If it goes according to your opinion, indeed, they should all be deleted. However, we may need to discuss in the mail.


Fixed address alignment

Checklist

[x] I have read the Contribution & Best practices Guide.
[x] My branch is up-to-date with the Upstream development branch.
[x] I have added necessary documentation (if appropriate)

Short description of what this resolves:
Fixed the address alignment by placing the address next to the location icon

Fixes #2135
Test link

@aayusharora @abishekvashok can you pls review?


replace /members with /users

Design Doc:
https://docs.google.com/document/d/1xvllP-qyZBAHFzp5Oh-7d-bTh_JHX7Ps_KsOTUSkPYE/edit?usp=sharing
Changes done:
The /members route is being used in 3 different pages to use all the Users Data and it is replaces with /users route with a similar response:

Task creation page

Online-members page

Test Coverage Stats:

tests are failing , kindly look into it

Fixed them, thanks for pointing out 👍🏻


Fixed Upvoot error and UI Improvements

Done following changes changes :-

UI Improvements
Fix Upvote Error Issue When Not Logged In
Change saving location for Images
Add new logo.

Please review and approve.
Thanks,
Omkar.

Looks good to me

Reopening PR which was closed by mistake.

Reopening PR which was closed by mistake.


Become VIRUS-MVP

Resolves #183 and resolves #170 and resolves #185

Need to also remove in-code references to COVID-MVP


ignore splitting tags with escaped commas in series

Influxgraph crashes when parses series with escaped comma in tags.
Example:
Telegraf's mysql input produes a measurement mysql_variables with tag tls_version, which can contain escaped commas:
mysql_variables,tls_version=TLSv1.1\,TLSv1.2,source=telegraf,protocol_version=10 thread_statistics=0,sync_relay_log_info=10000,thread_pool_size=2,tls_version="TLSv1.1,TLSv1.2",threa    d_concurrency=10,thread_pool_oversubscribe=3,...<PHONE_NUMBER>000000000
This results with tag_values like:
[u'tls_version', u'TLSv1.1\\'], [u'TLSv1.2']
and:
(...)
  File "/opt/graphite-api/site-packages/influxgraph/templates.py", line 274, in _make_path_from_template
    for (tag_key, tag_val) in tags_values:
ValueError: expected length 2, got 1

The proposed change uses negative lookbehind assertion to avoid that.
I haven't noticed performance degradation using re.split().

This has been handled in a different way. The use of regex dropped performance by 10% which is significant enough (see nosetests -s tests/index_perf.py).
Thank you for the PR though, much appreciated! If you would like to be added as collaborator to the project I'd be happy to do that.


Launcher issues on CoolMUC

Appears to be an affinity problem with the launcher on CoolMUC.  Controller complains that MPI process is not bound to distinct CPUs.
GEOPM_TRACE=tutorial_0_trace GEOPM_TIMEOUT=5 GEOPM_PROFILE= LD_DYNAMIC_WEAK=true GEOPM_REPORT=tutorial_0_report OMP_PROC_BIND=true GEOPM_CTL=process LD_PRELOAD=libgeopm.so MV2_ENABLE_AFFINITY=0 KMP_AFFINITY=disabled KMP_WARNINGS=FALSE I_MPI_PIN_DOMAIN=[0x10000000000000000,0x2,0x4,0x8,0x10,0x20,0x40,0x80,0x100,0x200,0x400,0x800,0x1000,0x2000,0x4000,0x8000,0x10000,0x20000,0x40000,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0x10000000,0x20000000,0x40000000,0x80000000,0x100000000,0x200000000,0x400000000,0x800000000,0x1000000000,0x2000000000,0x4000000000,0x8000000000,0x10000000000,0x20000000000,0x40000000000,0x80000000000,0x100000000000,0x200000000000,0x400000000000,0x800000000000,0x1000000000000,0x2000000000000,0x4000000000000,0x8000000000000,0x10000000000000,0x20000000000000,0x40000000000000,0x80000000000000,0x100000000000000,0x200000000000000,0x400000000000000,0x800000000000000,0x1000000000000000,0x2000000000000000,0x4000000000000000,0x8000000000000000] mpiexec.hydra -ppn 64 -n 128 ./tutorial_0

MPI_COMM_WORLD size: 126
Sleeping for five seconds
Warning: <geopm> Controller handshake failed, running without geopm.
<geopm> MPI ranks are not affinitized to distinct CPUs
Error: <geopm> Runtime error: ControlMessageImp::wait(): mpp3r03c01s04 : is_ctl=1 : is_writer=1 : Timed out waiting for status 2: at geopm/src/ControlMessage.cpp:111
Error: <geopm> Runtime error: ControlMessageImp::wait(): mpp3r03c01s09 : is_ctl=1 : is_writer=1 : Timed out waiting for status 2: at geopm/src/ControlMessage.cpp:111

There are three things:

The tutorial do not have impi as a launcher option. Should this be added?
The tutotiral_env sets srun as default even if MPIEXEC is chosen. GEOPM_LAUNCHER has to be set to a not matching paramter, but has to be set.
When not using the complete node the launcher fails. (Examples are using 10 processes on 2 nodes, but in this case the communication split is wrong. Using -ppn 64 and -n 128 is working (KNL). when setting I_MPI_PIN=1 and I_MPI_PIN_DOMAIN=core. (default of I_MPI_PIN_DOMAIN=[0x2,...,0x800...] triggers warnings.)

Still investigating.

For anyone trying to get builds going on CoolMUC3, I had to add:
export CPATH=${MKL_INCDIR}
Before I built in order to work around this being missing from the Intel and MKL modules.

I'm seeing unit test failures around affinity:
FAIL: scripts/test/pytest_links/TestAffinity.test_1rank_no_env_threads_noht
FAIL: scripts/test/pytest_links/TestAffinity.test_2rank_no_env_threads
FAIL: scripts/test/pytest_links/TestAffinity.test_2rank_no_env_threads_noht
FAIL: scripts/test/pytest_links/TestAffinity.test_3rank_no_env_threads
FAIL: scripts/test/pytest_links/TestAffinity.test_3rank_no_env_threads_noht

It turns out one of the auto loaded modules on CoolMUC3 sets OMP_NUM_THREADS:
setenv          OMP_NUM_THREADS 1

Adding unset OMP_NUM_THREADS to the bottom of my .bashrc made my unit tests pass.

It sure looks like something is broken with IMPI pinning:
$ OMP_NUM_THREADS=4 geopmlaunch impi -n 4 -ppn 4 ./print_affinity

mpiexec.hydra -ppn 1 -n 1 geopmread --cache

GEOPM_CTL=process LD_DYNAMIC_WEAK=true GEOPM_REPORT=geopm.report OMP_PROC_BIND=true GEOPM_PROFILE= LD_PRELOAD=libgeopm.so MV2_ENABLE_AFFINITY=0 KMP_AFFINITY=disabled KMP_WARNINGS=FALSE I_MPI_PIN_DOMAIN=[0x2,0xf000000000000,0xf0000000000000,0xf00000000000000,0xf000000000000000] mpiexec.hydra -ppn 5 -n 5 ./print_affinity

Warning: <geopm> Controller handshake failed, running without geopm.
<geopm> MPI ranks are not affinitized to distinct CPUs
Rank: 0 cgroup CPUs: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255] omp CPUs: [24,27,157,31]
Error: <geopm> Runtime error: ControlMessageImp::wait(): mpp3r03c05s03 : is_ctl=1 : is_writer=1 : Timed out waiting for status 2: at geopm/src/ControlMessage.cpp:111

I can reproduce on mr-fusion:
$ OMP_NUM_THREADS=4 geopmlaunch impi -n 4 -ppn 4 ./print_affinity

mpiexec.hydra -ppn 1 -n 1 geopmread --cache

GEOPM_CTL=process LD_DYNAMIC_WEAK=true GEOPM_REPORT=geopm.report OMP_PROC_BIND=true GEOPM_PROFILE= LD_PRELOAD=libgeopm.so MV2_ENABLE_AFFINITY=0 KMP_AFFINITY=disabled KMP_WARNINGS=FALSE I_MPI_PIN_DOMAIN=[0x2,0xf000000000000,0xf0000000000000,0xf00000000000000,0xf000000000000000] mpiexec.hydra -ppn 5 -n 5 ./print_affinity

Warning: <geopm> Controller handshake failed, running without geopm.
<geopm> MPI ranks are not affinitized to distinct CPUs
Rank: 0 cgroup CPUs: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255] omp CPUs: [128,2,69,67]
Error: <geopm> Runtime error: ControlMessageImp::wait(): mr-fusion2 : is_ctl=1 : is_writer=1 : Timed out waiting for status 2: at geopm/src/ControlMessage.cpp:112

However, it runs just fine on Chameleon:
$ FI_PROVIDER=tcp OMP_NUM_THREADS=4 geopmlaunch impi -n 4 -ppn 4 ./print_affinity

mpiexec.hydra -ppn 1 -n 1 geopmread --cache

GEOPM_CTL=process LD_DYNAMIC_WEAK=true GEOPM_REPORT=geopm.report OMP_PROC_BIND=true GEOPM_PROFILE= LD_PRELOAD=libgeopm.so MV2_ENABLE_AFFINITY=0 KMP_AFFINITY=disabled KMP_WARNINGS=FALSE I_MPI_PIN_DOMAIN=[0x2,0xf0,0xf00,0xf0000,0xf00000] mpiexec.hydra -ppn 5 -n 5 ./print_affinity

Rank: 0 cgroup CPUs: [4,5,6,7] omp CPUs: [6,7,7,5]
Rank: 1 cgroup CPUs: [8,9,10,11] omp CPUs: [8,11,9,10]
Rank: 2 cgroup CPUs: [16,17,18,19] omp CPUs: [16,19,17,18]
Rank: 3 cgroup CPUs: [20,21,22,23] omp CPUs: [20,23,22,20]

Ok, there's some sort of issue with IMPI interpreting the CPU mask.  This looks sane to me:
$ OMP_NUM_THREADS=4 I_MPI_PIN_DOMAIN=[0x2,0xf0000000000000] mpiexec.hydra -ppn 2 -n 2 ./print_affinity
Rank: 0 cgroup CPUs: [1] omp CPUs: [1,1,1,1]
Rank: 1 cgroup CPUs: [52,53,54,55] omp CPUs: [52,53,54,55]

This looks bonkers:
$ OMP_NUM_THREADS=4 I_MPI_PIN_DOMAIN=[0x2,0xf00000000000000] mpiexec.hydra -ppn 2 -n 2 ./print_affinity
Rank: 0 cgroup CPUs: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255] omp CPUs: [0,1,2,3]
Rank: 1 cgroup CPUs: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255] omp CPUs: [0,1,2,3]
IPL WARN> domain mask syntax error, allowed value: hex number list enclosed in []

The only delta between the first and second test above is an extra 0 in the second rank's mask.
We never see that IPL WARN message when the launcher is used because the Controller ranks are hanging.

In addition to the "0x" issue, KMP_AFFINITY=disabled seems to be preventing proper pinning:
This is OK:
$ OMP_NUM_THREADS=4 I_MPI_PIN_DOMAIN=[2,f000000000000,f0000000000000,f00000000000000,f000000000000000] mpiexec.hydra -ppn 5 -n 5 ./print_affinity
Rank: 0 cgroup CPUs: [1] omp CPUs: [1,1,1,1]
Rank: 1 cgroup CPUs: [48,49,50,51] omp CPUs: [48,49,50,51]
Rank: 2 cgroup CPUs: [52,53,54,55] omp CPUs: [52,53,54,55]
Rank: 3 cgroup CPUs: [56,57,58,59] omp CPUs: [56,57,58,59]
Rank: 4 cgroup CPUs: [60,61,62,63] omp CPUs: [60,61,62,63]

This is not:
$ KMP_AFFINITY=disabled OMP_NUM_THREADS=4 I_MPI_PIN_DOMAIN=[2,f000000000000,f0000000000000,f00000000000000,f000000000000000] mpiexec.hydra -ppn 5 -n 5 ./print_affinity
Rank: 0 cgroup CPUs: [1] omp CPUs: [1,1,1,1]
Rank: 1 cgroup CPUs: [48,49,50,51] omp CPUs: [48,51,48,51]
Rank: 2 cgroup CPUs: [52,53,54,55] omp CPUs: [52,54,52,54]
Rank: 3 cgroup CPUs: [56,57,58,59] omp CPUs: [56,59,56,59]
Rank: 4 cgroup CPUs: [60,61,62,63] omp CPUs: [60,63,60,63]

This is only an issue on CoolMUC and is not reproducible on internal clusters.

Next, removing KMP_AFFINITY makes tutorial_0 work without issue single node:
$ GEOPM_TRACE=tutorial_0_trace GEOPM_PROFILE= LD_DYNAMIC_WEAK=true GEOPM_REPORT=tutorial_0_report OMP_PROC_BIND=true GEOPM_CTL=process LD_PRELOAD=libgeopm.so MV2_ENABLE_AFFINITY=0 KMP_WARNINGS=FALSE I_MPI_PIN_DOMAIN=[2,f000000000000,f0000000000000,f00000000000000,f000000000000000] mpiexec.hydra -ppn 5 -n 5 ./tutorial_0
MPI_COMM_WORLD size: 4
Sleeping for five seconds

However it still fails multinode (-n is now 10):
$ GEOPM_TRACE=tutorial_0_trace GEOPM_PROFILE= LD_DYNAMIC_WEAK=true GEOPM_REPORT=tutorial_0_report OMP_PROC_BIND=true GEOPM_CTL=process LD_PRELOAD=libgeopm.so MV2_ENABLE_AFFINITY=0 KMP_WARNINGS=FALSE I_MPI_PIN_DOMAIN=[2,f000000000000,f0000000000000,f00000000000000,f000000000000000] mpiexec.hydra -ppn 5 -n 10 ./tutorial_0
Warning: <geopm> Controller handshake failed, running without geopm.
<geopm> MPI ranks are not affinitized to distinct CPUs
MPI_COMM_WORLD size: 9
Sleeping for five seconds
Error: <geopm> Runtime error: ControlMessageImp::wait(): mpp3r03c05s01 : is_ctl=1 : is_writer=1 : Timed out waiting for status 2: at geopm/src/ControlMessage.cpp:111
(hang)

print_affinity is not indicating any issues on 2 nodes:
$ OMP_NUM_THREADS=4 I_MPI_PIN_DOMAIN=[2,f000000000000,f0000000000000,f00000000000000,f000000000000000] mpiexec.hydra -ppn 5 -n 10 ./print_affinity
Rank: 0 cgroup CPUs: [1] omp CPUs: [1,1,1,1]
Rank: 1 cgroup CPUs: [48,49,50,51] omp CPUs: [48,49,50,51]
Rank: 2 cgroup CPUs: [52,53,54,55] omp CPUs: [52,53,54,55]
Rank: 3 cgroup CPUs: [56,57,58,59] omp CPUs: [56,57,58,59]
Rank: 4 cgroup CPUs: [60,61,62,63] omp CPUs: [60,61,62,63]
Rank: 5 cgroup CPUs: [1] omp CPUs: [1,1,1,1]
Rank: 6 cgroup CPUs: [48,49,50,51] omp CPUs: [48,49,50,51]
Rank: 7 cgroup CPUs: [52,53,54,55] omp CPUs: [52,53,54,55]
Rank: 8 cgroup CPUs: [56,57,58,59] omp CPUs: [56,57,58,59]
Rank: 9 cgroup CPUs: [60,61,62,63] omp CPUs: [60,61,62,63]

Ok after reading:
https://doku.lrz.de/display/PUBLIC/Running+parallel+jobs+on+the+Linux-Cluster
The magic for running multi-node in an interactive session is to set --tasks-per-node properly when you issue salloc.   I was just now successful running tutorial_0 by issuing:
$ salloc -N2 -t 2:00:00 --tasks-per-node=5
(wait for allocation)
$ GEOPM_TRACE=tutorial_0_trace GEOPM_PROFILE= LD_DYNAMIC_WEAK=true GEOPM_REPORT=tutorial_0_report OMP_PROC_BIND=true GEOPM_CTL=process LD_PRELOAD=libgeopm.so MV2_ENABLE_AFFINITY=0 KMP_WARNINGS=FALSE I_MPI_PIN_DOMAIN=[2,f000000000000,f0000000000000,f00000000000000,f000000000000000] mpiexec.hydra -ppn 5 -n 10 ./tutorial_0
MPI_COMM_WORLD size: 8
Sleeping for five seconds

I verified that the report contains 2 nodes.
According to that documentation, it looks like specifying --tasks-per-node is also required for batch scripts, but I have not yet checked.

If I issue salloc -N2 then try to use IMPI to control process placement on the nodes, everything gets allocated to the first node:
$ mpiexec.hydra -ppn 1 -n 2 hostname
mr-fusion2
mr-fusion2

Ok.  This works:
$ salloc -N2
$ scontrol show hostnames > hosts
$ mpiexec.hydra -bootstrap slurm -f hosts -n 2 -ppn 1 hostname
srun: Loaded msrsave restore plugin.
srun: Loaded geopm plugin.
mcfly10
mcfly11

https://slurm.schedmd.com/mpi_guide.html#intel_mpiexec_hydra
https://scicomp.jlab.org/docs/intelMPIJobs

After doing some more poking around, I'm able to run all the tutorials I've tried so far on CoolMUC3 with srun as long as I explicitly set my PMI library prior to invoking the tutorial script:
export I_MPI_PMI_LIBRARY=/usr/lib64/libpmi.so

(This library doesn't exist on our internal clusters, but it looks like it is available in the OHPC repos as slurm-libpmi-ohpc.x86_64.)
If you have to launch via mpiexec.hydra you have to specify the hosts you have allocated with -f <host_file>.  I'm going to see if I can cook that logic into the launcher somehow.  If SLURM is doing resource management it's easy to get via scontrol.  Otherwise it'll have to be manually specified.

Ok.  I think I've gotten to the bottom of all the issues with IMPI, SLURM, and CoolMUC3.
One of the fixes has already been merged to dev:
7777303
The remainder are up for review now:
397916c
2c3f94a
With these patches (currently available on my branch: bgeltz-issue-614), all of the tutorials work by setting OMP_NUM_THREADS to something resonable and using GEOPM_LAUNCHER=impi.  An example:
$ OMP_NUM_THREADS=4 GEOPM_LAUNCHER=impi ./tutorial_0.sh

Launching via srun also works, but there is a catch:  The /etc/slurm/slurm.conf file contains an entry MpiDefault that specifies the default type of MPI to be used (more here and here).  CoolMUC3 has this set to none.  IMO this is misconfigured and should be set to pmi2.  The workaround is to use --mpi=pmi2 in your srun command.


[REEF-873] fix FileSystemPartitionInputDataSet id issue

This PR is to change the way to generate id for FileSystemPartitionInputDataSet. Original way was trying to derive the id from the input file name so that to make it easy to recognize. Given the fact that the input file name itself is can be random number, and the long file name may cause errors in parsing it, we would like to choose a simpler way to generate the id.
JIRA: REEF-873
This closes #

@jwang98052  I have done the review. Some minor comments.

@dkm2110 I have addressed review comments and the change has been pushed in. Please review/merge.

@dkm2110  Review comments addressed.

I will test and merge

merged


Broken POIs at zoom 20

Hi,
when zoomed to max level (20) POIs are displayed badly using mapboxgl js. In mapbox studio with same style it works ok.
zoom_19

zoom_20

Hmm that is interesting - but it is all overzooming.
The only things that can affect this on the vector tile side are buffers (which are quite large for POIs already) afaik and since we only render down to z14..not deeper.


There is an issue when adding new tasks, the log record is not loaded after a run.

Workaround is add task(s) and restart RsyncUI. The issue is only when new tasks are added
There is a minor non critical issue when adding new tasks, the log record after a run for new task is not loaded when viewing logs. The bug is fixed and a new release will come in a week or two.

Fixed in version 1.8.6


Fails to install 1.9.2 on Yosemite

Running rbenv install 1.9.2-p330:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
couldn't understand kern.osversion `14.0.0'
Downloading ruby-1.9.2-p330.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/23ef45fdaecc5d6c7b4e9e2d51b23817fc6aa8225a20f123f7fa98760e8b5ca9
Installing ruby-1.9.2-p330...

BUILD FAILED (OS X 10.10 using ruby-build 20140926)

Inspect or clean up the working tree at /var/folders/f5/10yx8t4j7vx3rx7lff6jfpxr0000gn/T/ruby-build.20141007124752.9733
Results logged to /var/folders/f5/10yx8t4j7vx3rx7lff6jfpxr0000gn/T/ruby-build.20141007124752.9733.log

Last 10 log lines:
couldn't understand kern.osversion `14.0.0'
ld: warning: directory not found for option '-L/Users/chrisedwards/.rbenv/versions/1.9.2-p330/lib'
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  ./tool/generic_erb.rb -c -o encdb.h ./template/encdb.h.tmpl ./enc enc
miniruby(17709,0x7fff7c00a300) malloc: *** error for object 0x100801808: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
miniruby(17708,0x7fff7c00a300) malloc: *** error for object 0x100801808: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
make: *** [.rbconfig.time] Abort trap: 6
make: *** Waiting for unfinished jobs....
make: *** [encdb.h] Abort trap: 6

Hey everyone, what's the current status of this? Anyone succeeded eventually or we should just give up?
This is the error I'm currently getting with any 1.9.2 regardless the patch level. Also 1.9.2 is the only one that seem affected, previous versions down to 1.8.6 compiles just fine.
The same error is spat out with a previously compiled 1.9.2-p330 that I installed and still have on my system from before Yosemite.
I hope it helps.

I'm still having issues with this currently.  Does anyone have a working solution?

Sometimes a working solution gets reported but it doesn't work consistently. A much better course of action for you would be to upgrade your project to latest 1.9.3. Are you unable to do that?

As it turns out I am, but the documentation on Veewee is currently (I'm about to submit a pull request) unclear about supported versions of ruby.  As it currently stands, only 1.9.2-p320 is currently mentioned.

@chrisRidgers the problem is not with Veewee documentation or anything it's a deeper problem related to OSX Yosemite and ruby itself. People who don't have Yosemite are still able to compile this without any issue.

Fair point, I only mentioned the Veewee documentation because it's through that project that I've ended up here looking for a solution.
As it turns out, Veewee's current supported version is 2.2.0.  Had the documentation said as much I wouldn't have had issues :p

I know you meant well, I just wanted to clarify to be thorough

I've just spent a lot of time to figure how to handle this without luck.
I'm trying to install ruby 1.9.2-p0 on Yosemite. I've tried brew tap homebrew/dupes ; brew install apple-gcc42
Here's the config.log:
https://gist.github.com/fro/cb761a1f41275cbccb2a
Does someone has succeeded in installing 1.9.2-p0 on Yosemite?

@fro as I mentioned already the answer is simple, you can't.

@MarcoDeBortoli Then, I'll switch to 1.9.3, thanks.

@fro yeah, that's the only solution unfortunately, it's problem with Yosemite itself that cannot be resolved or even if it can it's not worth the effort

This worked for me:
brew install gcc48
CC=/usr/local/Cellar/gcc48/4.8.4/bin/gcc-4.8 rvm install 1.9.3

@martinwells that's ruby 1.9.3, the problem is with ruby 1.9.2


Merge-revealed procedure for consignments

Matching https://github.com/rgb-org/rgb-core/pull/23

ACK.


error creating vendor when globalize is installed

My multi vendor installation was working well until today I installed
https://github.com/spree-contrib/spree_globalize
When creating a new vendor, it complains that:
NameError in Spree::Admin::VendorsController#create
undefined local variable or method `translation_class' for #<ActiveRecord::Relation []>

The created vendors are still working well, but cannot create new vendor.

Yeah, I figure it out days ago. Is problem from globalize gem from spree.
Create a migration file and add:
class AddTranslationToVendor < ActiveRecord::Migration[6.0]
  def up
    unless table_exists?(:spree_vendor_translations)
      params = { name: :string, about_us: :text, contact_us: :text, slug: :string }
      Spree::Vendor.create_translation_table!(params, { migrate_data: true })
    end
  end

  def down
    Spree::Vendor.drop_translation_table! migrate_data: true
  end
end

And then in models/spree add a decorator called vendor_decorator.rb:
module Spree::VendorDecorator
  def self.prepended(base)
    base.translates :name, :about_us, :contact_us, :slug, fallbacks_for_empty_translations: true
  end

  Spree::Vendor.include SpreeGlobalize::Translatable
end

::Spree::Vendor.prepend(Spree::VendorDecorator)

This is the patch solution, maybe later If I have time this will be an PR for globalize gem.

thanks @drkpkg for the quick patch. I will try it later.
I think this issue should be handled inside spree_multi_vendor extension instead of globalize extension.
The reason is globalize extension may not have knowledge of the extensions installed.  but spree_multi_vendor need to be globalize friendly.
Is there a general requirement for any extension to be globalize extension friendly?
As an example, I found in https://github.com/spree-contrib/spree_static_content , the migration generated is with

if defined?(SpreeGlobalize)

Thanks for the answer @xu4wang, spree_multi_vendor doesn't need the globalize gem dependency, so if the gem add it as default maybe will break some deployed systems in my perspective. I'm thinking in a new gem as patch that can be work with spree_multi_vendor without break the migrations in case globalize will not be in the dependencies. Gonna try something tomorrow and will post the results here :)

Well, I make the PR into master, I hope this will works well and don't break another implementations with spree multi vendor :)
Feel free to suggest!

Yeah, I figure it out days ago. Is problem from globalize gem from spree.
Create a migration file and add:
class AddTranslationToVendor < ActiveRecord::Migration[6.0]
  def up
    unless table_exists?(:spree_vendor_translations)
      params = { name: :string, about_us: :text, contact_us: :text, slug: :string }
      Spree::Vendor.create_translation_table!(params, { migrate_data: true })
    end
  end

  def down
    Spree::Vendor.drop_translation_table! migrate_data: true
  end
end

And then in models/spree add a decorator called vendor_decorator.rb:
module Spree::VendorDecorator
  def self.prepended(base)
    base.translates :name, :about_us, :contact_us, :slug, fallbacks_for_empty_translations: true
  end

  Spree::Vendor.include SpreeGlobalize::Translatable
end

::Spree::Vendor.prepend(Spree::VendorDecorator)

This is the patch solution, maybe later If I have time this will be an PR for globalize gem.

I verified the patch solution with current release of Spree, globalize,multi-vendor gem. So far so good.  Thanks @drkpkg !

The Pull request was approved, now we have support for spree globalize :)

Hello, I'm facing an issue relating to this ticket (I think)
I'm getting an error when I want to access Vendor in the admin panel

This is the error:

Normally my gem is up to date! My migration look like that
class AddTranslationsToVendor < ActiveRecord::Migration[4.2]
  def up
    params = { name: :string, about_us: :text, contact_us: :text, slug: :string }
    if defined?(SpreeGlobalize)
      Spree::Vendor.create_translation_table!(params, { migrate_data: true })
    end
  end
end

Compare to your code above, I don't know if the difference has an impact ?
1/
unless table_exists?(:spree_vendor_translations)

end

2/ The name of the migration has no "s" for translate in your code above but has one in migration of your PR

Any tips ?
Thanks for letting me know 🍻

If you follow the proccess of install will be ok. I try in a clean installation and I can't reproduce the error.
If you have the patch code I write before delete it and use the clean install of the gem.
bundle exec rails g spree_multi_vendor:install

I have still some troubles with translating, but at least it resolve this problem
Thanks a lot for your help :)

Does it work for you when you want to update a vendor ? (Name, Slug, State, ..)
With the current code, if I want to update a vendor, this is the error

To resolve the problem, I just remove this line and all look to work fine

What about you ?


Research Expenditures Report: Stacked Bar by Source?

Feedback from David Bailey:
Should we add a stacked bar chart that has ND-only Expenditures by source for all categories (Federal, Institutional, etc.) in addition to the line chart if you select Total Expenditures - similar to what we have on the Research Expenditures by Division Report?

I realized this is a different question from what we discussed on Res Exp by Division. The regular Research Expenditures report is showing sources already, so it might make sense to break those sources down further. On the other hand, do we even have that level of detail in the Institutions dataset?
If the data exist, this is probably worth at least trying out. If the data aren't there, of course, there's nothing more to do.

We do have source data in the Institutions dataset, but the expenditures for each source are in separate fields (unlike the division dataset which just has one funding source field). So we wouldn't be able to do stacked bars, unfortunately, at least not without a lot of work to manipulate the data. I can think about alternative ways to display this data but I'm not sure if it will be worth the effort.

too much effort for the value at this point.


Add localization of arbitrary assets

It is important to provide a feature to localize any type of assets. Example use cases include localizing text in a texture, in-game dialogue in a sound file, a cut scene, etc.
This should work similar to the current text localization. The user defines the path to a folder, the output format and the extension of the asset. This folder should then contain the localized files named after the language identifier and the given extension. The plugin should then select the correct asset based on the already used algorithm.
We should provide options to the user to configure how the assets are loaded. For most assets it will make sense to only load the first matching locale, not all possible fallbacks like we have right now.
The text localization should be adapted to use this new asset localization system under the hood.

Closed in favor of #20.


MultiMonitor Alleg Minimizing

Alleg will minimize seemingly randomly. Usually its when I'm clicking in the investments pane, but will occasionally occur when I'm piloting (but I haven't got it to occur yet when I'm turreting)
It seems that when I'm running alleg in fullscreen, I can move my mouse onto my other monitor, and when I click or right-click alleg will minimize. My mouse cursor will not show, but its the only explanation I can think of.
You can find my DxDiag file attached to this ticket, or here:
http://dl.dropbox.com/u/153439/DxDiag.txt
Imported from trac ticket #225,  created by LANS on 10-20-2010 at 19:46, last modified: 11-22-2011 at 20:34

I've found a workaround:
I can disable one monitor and then play alleg normally.
Trac comment by LANS on 11-11-2010 at 07:22

I think no one in our current population plays, alleg with multi monitors. so i think we should not focus on this.
We  can always reopen the issue if demand arises.


[Unity][BYOC] CoreML Scaffolding

This PR lands P4 of CoreML tracker.
Although it produces the right results, its CPU performance is currently quite worse than expected on my Macbook with Intel chips.
For more performance analysis on more recent Apple silicon, I'd like to land the functionality first and then iterate over to identify the performance issue as the next step (P5).

@vinx13 @yelite do you mind take a look at this pr


pass sf::Vector2 and sf::Vector3 by value instead of by references

Prerequisite Checklist

[X] I searched for existing issues to prevent duplicates
[X] I searched for existing discussions on the forum to prevent duplicates
[X] I understand SFML's scope and believe the feature fits it

Describe your feature request here
Simple structs like these should be passed by value instead of by references in many places and get* functions should return by value too.
Use Cases
nothing really it is just for speed for some poor compilers that couldnt like inline the 1-line function and is scared of const_cast
changing the variable.
I guess simple things should look simple a this struct is just 2 variables of trivially copy-able types therefore it should be passed by copy and it avoids indirections in larger functions using them.
EDIT: functions that are defined in another translation unit and takes a parameter by const reference the caller has to assume that the called function could change the paramter and the compiler has to take that into account
void f(int const&) f could change its arguement and that is legal only if the passed int arguement was not orignally const.
API Example
No response

Can you provide a benchmark where this matters?
Generally speaking, if the function is called so frequently that it becomes significant in the benchmark, it should be inlined and whether the vector is passed by value or by reference shouldn't be important.

As far as I’m aware there’s no noticeable difference between passing a sf::Vector2i or sf::Vector2f by value or const reference. However I do think 3D vectors are large enough that passing by const reference is superior so I don’t see why we’d ever change 3D vector parameter to be passed by value.

Closing this issue until we receive more evidence for why passing by value is an improvement.

hey sorry for the extremely late reply yikes 3 whole weeks.
passing by reference means if the compiler cannot know the body of the function means that your variable could be theoritcally changed by the function
void print(sf::Vector2f const&); // defined in another translation unit

int main() {
    sf::Vector2f v{4,2};
    print(v);
    return v.x; // won't be optimized into return 4 since this could change by the function
// since the function could const_cast it away!
}

by reference
by value

Reopened because you provide some more evidence. Haven't looked deeply into it yet but it seems worth consideration.

Curious what @vittorioromeo has to say about passing vectors by value having optimizer implications. This is not an argument I've heard before with regard to value vs const ref parameters, but those godbolt links seem to illustrate it well.

It also saves keystrokes I say that is another benefit /joke
sad that const references are not really const if you get what I mean.

Can you provide a benchmark where this matters?
Generally speaking, if the function is called so frequently that it becomes significant in the benchmark, it should be inlined and whether the vector is passed by value or by reference shouldn't be important.
I'm also not convinced that passing something like Vector3 by value would be faster than by-reference in all cases, again a benchmark would help.

definitely Vector3 of float and int would be faster as for double it may not be faster or slower but without any testing but I think it would be faster still due to guranteeing that the function is not modifying the variable.
functions defined in another translation unit (most of SFML function are defined in another translation unit)
then it cannot be inlined without LTO

Can you provide a benchmark where this matters?
Generally speaking, if the function is called so frequently that it becomes significant in the benchmark, it should be inlined and whether the vector is passed by value or by reference shouldn't be important.
I'm also not convinced that passing something like Vector3 by value would be faster than by-reference in all cases, again a benchmark would help.

definitely Vector3 of float and int would be faster as for double it may not be faster or slower but without any testing but I think it would be faster still due to guranteeing that the function is not modifying the variable.
functions defined in another translation unit (most of SFML function are defined in another translation unit)
then it cannot be inlined without LTO

I'm of the opinion that a change of this magnitude requires some empirical evidence. What you're saying sounds plausible but I'm reluctant to make such a broad, sweeping change unless I'm confident it results in better code generation by the compiler.

@ChrisThrasher
What more evidence do you need (asking politly)?
most SFML functions are not defined inline and taking const reference parameters means that the variable could be changed inside the function by const_cast as representable by the godbolt links (simplified) and this is 100% legal and the standard obligates the compiler to not assume about the functions, the example is simple but they represent the piont out of line functions taking const lvalues could mosify their parameters legally
void f(const int& x,bool is_const) {
     if(!is_const)
           const_cast<int&>(x) = 5; // legal if x is not referencing a const object
}

//code
int i = 0;
f(i,false);
std::cout << i; // the compiler is not allowed to replace it by 0 since the function if cannot be inlined can modify the value.

const int ci = 0;
f(ci,true);
std::cout << ci; // const objects cannot be modified and modifying them by const cast results in undefined behavior.

Now is this code good lol no but the compiler has to take this in account and all compilers msvc,clang,gcc all take this into account. and most SFML functions don't need to reference the value they just need the values in there so take them by copy and make the optimizer more happy.
also I would recommend making making one line functions that are bassicly wrapper as inline to prevent kinda costly mistakes like this
sf::VertexBuffer v;
for(std::size_t i = 0;i < v.size();++i); // oops! calling v.size() everytime it is defined out of line so that means it will call it everytime!

If you want stronger evidence
you can try asking yourself why are int and floats and doubles passed by value and not by const reference? apply that to these simple structures who are nothing more than a wrapper around them

@ChrisThrasher
What more evidence do you need (asking politly)?

As mentioned previously, I believe Thrasher is seeking some benchmarks to give empirical evidence of the speed up gains you mentioned. I think it's a reasonable request in this scenario and I think others would also be interested in seeing the results.

Here are the rules I was working with as of yesterday to determine whether a parameter ought to be a value or const&:

sizeof(T) < CPU register width -> value parameter
sizeof(T) == CPU register width -> doesn't matter
sizeof(T) > CPU register width -> const& parameter

I've discussed this more with some C++ peers of mine and have come to learn some details I wasn't previously aware of.  I now realize my mental model is incorrect. That in<T> template you shared matches with what they described with the small difference of using <= instead of < as you wrote. The idea of using a template to determine parameter type is really interesting. It's probably overkill for SFML but I think it's a really interesting idea.
The most common 2D vectors are sf::Vector2i, sf::Vector2u and sf::Vector2f. All 3 of these template specializations use template arguments that are 32 bits wide. That means all three of these types fit into the <= 2 * CPU register criteria whether we're talking about 32 bit or 64 bit platforms. For that reason I think it's a good idea to convert those to value parameters like you're proposing. I think this is a change we can justify based on first principles without bothering with benchmarks.
3D vectors are a bit harder since common specialization like Vector3f are bigger than 2 CPU registers on 32 bit platforms but less than 2 CPU registers on 64 bit platforms. The C++ Core Guidelines guideline you referenced says "two or three words (doubles, pointers, references) are usually best passed by value" so perhaps this is another case were we use value parameters knowing it's good enough on 32 bits and optimal on 64 bit platforms. While we treat 32 bit platforms as a first class citizen, ultimately we ought to prefer 64 bit compiles since those are much more common and will only be more common at times goes on.
TL;DR I think this is a good idea 👍🏻

https://github.com/SFML/SFML/compare/master...value_parameters
Did some quick find/replace to swap over to value parameters to see what it would look like.

https://github.com/SFML/SFML/pull/3140
At a minimum we can make this change for all 2D vectors. Whether we make the change for 3D vectors can be discussed further and handled in a separate PR if at all. Certainly the majority of the value to be gained is by changing how we handle 2D vectors which are used much more prolifically than 3D vectors.

sizeof(T) < CPU register width -> value parameter
sizeof(T) == CPU register width -> doesn't matter
sizeof(T) > CPU register width -> const& parameter

well yea this is bad that means if using a 32 bit platform you will pass double by const reference.

https://github.com/SFML/SFML/pull/3140
At a minimum we can make this change for all 2D vectors. Whether we make the change for 3D vectors can be discussed further and handled in a separate PR if at all. Certainly the majority of the value to be gained is by changing how we handle 2D vectors which are used much more prolifically than 3D vectors.

for 3D vectors of float and int they are still worth it to be passed by value because inside the functions they have to do pointer derefencing while by value is not.
the core guidelines say 2 or 3 words I took the minimum to be absolutely safe.

@Bambo-Borris
I have no benchmark ready right now But I have posted Godbolt links that show the differences and optimizations possible by pass by value

Closed because I think we're done as much towards this goal as is going to happen. Future PRs welcome if any low hanging fruit from missed, but for the most part we've now addressed this with #3140, #3170, and #3179.


Email text modification

Problem
* The email text is not properly positioned like other text.

* I marked the problem with a green marker.

[X] I am contributing to an open-source program in GSSOC'24.

@Shashanktriathi1703 please assign this issue to me under gssoc

@Shashanktriathi1703 I have assigned u this time .But please from next time try to raise the issues using the issue templates in the "NEW ISSUE" section


Sync: chunk user requests

The site can't handle huge syncs. Even a bulk patch of 10k users will crash the service. Chunk the requests into groups of 1000 users and await them sequentially. Testing showed that concurrent requests are not scalable and would also crash the service.
10k user patch without chunking. This caused the site service to crash and respond with 524.

10k user patch with chunking and concurrent requests. The operation succeeded but there was some CPU throttling. It implies that this won't scale well (the situation that triggered the discovery of this issue was a sync of over 80k users).

This compares the two aforementioned tests (start times indicates by the vertical lines):

I have no graphs for chunking without concurrent requests (i.e. what this PR does) but we know that this approach works as it was done in production with internal evals too.

Coverage increased (+0.02%) to 56.718% when pulling f444864473931463199916bfa587216b75caf578 on bug/backend/bot-4x/chunk-sync-requests into cbeb6eb674d334efc756dde76b433f67130e9bb3 on master.

Coverage increased (+0.02%) to 56.718% when pulling f444864473931463199916bfa587216b75caf578 on bug/backend/bot-4x/chunk-sync-requests into cbeb6eb674d334efc756dde76b433f67130e9bb3 on master.


Race condition or deadlock in Close()

I am having a pretty terrible time trying to debug this. Things seem to get hung up in multiple places inside of Close().
There are times when it fails to obtain a lock and just gets stuck there forever. And there are times when it can't seem to send on w.close. Any help would be appreciated.
I've added some logging to Close() like so.
func (w *Watcher) Close() {
	fmt.Println("=== starting close")
	w.mu.Lock()
	fmt.Println("=== have lock in close")
	if !w.running {
		w.mu.Unlock()
		return
	}
	w.running = false
	w.files = make(map[string]os.FileInfo)
	w.names = make(map[string]bool)
	w.mu.Unlock()
	// Send a close signal to the Start method.
	fmt.Println("=== sending close")
	w.close <- struct{}{}
	fmt.Println("=== returning from close")
}

In some instances, the last message I get is === starting close. And in some instances it is === sending close. And then other times it works just fine.
Here is the code I am using. Let me know if you need to see more.
func listenForChanges(ctx context.Context, w *watcher.Watcher) {
	w.AddRecursive(outputDirectory())
	go func() {
		haveChange := false
		for {
			select {
			case <-ctx.Done():
				logger.Println("timed out")
				w.Close()
				return
			case err := <-w.Error:
				logger.Println(err)
			case event := <-w.Event:
				logger.Println("found change", event.Name())
				haveChange = true
			case <-w.Closed:
				return
			case <-time.After(200 * time.Millisecond):
				if haveChange {
					logger.Println("we have enough changes")
					w.Close() // This is the line I am calling it from most often when it fails
					return
				}
			}
		}
	}()
}

It is probably worth noting that the directory I am watching contains about 6000 files.
Thanks in advance.

This seems to happen when a file event comes in after Close() has been called

There is at least one deadlock going on here. When Close() is called, if events are still being published, Close() is trying to obtain a lock (https://github.com/radovskyb/watcher/blob/master/watcher.go#L702) but an event as been published to w.Event (https://github.com/radovskyb/watcher/blob/master/watcher.go#L595) which means that it has the lock.
At the same time there is nothing reading from w.Event because we are still trying to complete Close(). So Close() can never get the lock because nothing is reading from w.Event. And nothing is reading from w.Event because we are trying to Close().
I am unsure if this is caused by my code or something that should be handled by watcher.
I was able to work around it by dumping the 'extra' events around the call to Close() like so.
case <-time.After(200 * time.Millisecond):
  if haveChange {
    logger.Println("we have enough changes")
    quit := make(chan bool)
    go func() {
      for {
        select {
        case event := <-w.Event:
          logger.Println("extra event:", event.Name())
        case <-quit:
          return
        }
      }
    }()
    w.Close()
    quit <- true
    return
  }

It feels like this is something that watcher should handle. If I have time I'll see if I can fix it in a more elegant way inside of watcher, and submit a pr.

Even I am facing same issue with my application. Application hangs and unable to process new event .I believe this should be handled inside watcher package .

It's not documented, but essentially in the current implementation it's not supported to call Close() from your event polling go routine, or in any way that causes your event handling routine to stop draining w.Event. I think the only safe way to do it without changing the code would be to run Close() in a go routine then have your event handler continue pulling events but as soon as you get a read from w.Closed you can safely exit.
I played around with fixing this earlier today actually, it wasn't such a big change but I discarded it in the end as I didn't really need it. Essentially I changed the places that were writing to w.Event to be in a select which was also reading from w.close. I also changed Close() to do close(w.close) so it could be read multiple times.

Regarding allowing Close() to be called from the polling go routine, I just looked at the code again now. There is a second issue which is that retrieveFileList() holds the mutex for the duration of the iteration, which will prevent Close() from being able to execute. So more work will be needed beyond what I outlined above.


[Backport] [v0.8] Fix missing elasticsearch-curator package v5.8.3 in APT repo

Don't we need backport of #2269?

Not sure if the selective upgrade is backported that for.

Don't we need backport of #2269?

Not sure if the selective upgrade is backported that for.

As I understand it's related and elasticsearch-curator was added to selective upgrades to be able to skip that in case of such errors.

Don't we need backport of #2269?

Not sure if the selective upgrade is backported that for.

As I understand it's related and elasticsearch-curator was added to selective upgrades to be able to skip that in case of such errors.

Yeah, I know but just wondering if this feature was actuall backported.

Don't we need backport of #2269?

Not sure if the selective upgrade is backported that for.

As I understand it's related and elasticsearch-curator was added to selective upgrades to be able to skip that in case of such errors.

Yeah, I know but just wondering if this feature was actuall backported.

This feature is not present in v0.8. Even if would be, it would not help to avoid issues like this, since all packages are always downloaded.

/azp run


[Bug]: Task run finished should return task return value

Replication of the Problem
return task.run()  should correct return each task result data.
Problem
return task.run()  should correct return each task result data.
  async run(context) {
    if (!this.renderer) {
      this.renderer = new this.rendererClass(this.tasks, this.rendererClassOptions, this.events);
    }
    await this.renderer.render();
    this.ctx = this.options?.ctx ?? context ?? {};
    await Promise.all(this.tasks.map((task) => task.check(this.ctx)));
    try {
// Maybe should be return?
      await Promise.all(this.tasks.map((task) => this.concurrency.add(() => this.runTask(task))));
      this.renderer.end();
    } catch (err) {
      if (this.options.exitOnError !== false) {
        this.renderer.end(err);
        throw err;
      }
    }
    return this.ctx;
  }

Environment
"listr2": "6.6.0",
Log Output
No response
Preflight

[X] Read/Search existing issues and the provided documentation.
[X] Be sure to not open an issue in the looking for contributions section.
[X] Checking the latest version of the software to confirm it has not been fixed already.

I sincerely apologize for the late reply; it has slipped through my mind.
Please read the documentation about context where you can already use it to return values as defined in the example here.
It is not the same thing but you can selectively return results from your tasks instead of replacing them all and accessing them through array indexes like tasks[0][1] for your first task and second subtask for example.
I can not break this behavior since this also comes from the original as well as being a core part of the operation.


Added readme page for use with cmake

Hi @haknkayaa, Thank you for your contribution.
I think that the "Then include Neumorphism..." part is not required for the cmake part.
Also, some parts are repeated, so if it's ok, I'll make a minor refactor.


Update version to 0.7.2?

Issue:
The latest version of flask-flatpages on conda forge creates an error when used together with the latest markdown version in the same channel (see attached traceback.png).

The context is that I am using flask, flatpages, and frozen flask in order to create a static blog based on a collection of markdown files as posts.
The problem seems to be the call markdown.markdown(text, extensions) in file "/home/jepersson/.miniconda3/envs/blog/lib/python3.8/site-packages/flask_flatpages/utils.py", line 53, in the pygmented_markdown function. The the second positional argument extensions is now apparently a keyword argument and the call has been updated to reflect this in version 0.7.2 of flask-flatpages which is the current (2020-08-09) latest version in the official repository.
Will it be possible to issue an update of the feedstock as a solution to this problem?
I am asking via this issue due to the last three automatic update builds seems to not have been approved and I am unsure about this feedstocks status at this point, hence me being hesitant to put in the time to go through the documentation an send in my own PR.

Environment (conda list):

$ conda list

# packages in environment at /home/jepersson/.miniconda3/envs/blog:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       1_gnu    conda-forge
ca-certificates           2020.6.20            hecda079_0    conda-forge
certifi                   2020.6.20        py38h32f6830_0    conda-forge
click                     7.1.2              pyh9f0ad1d_0    conda-forge
flake8                    3.8.3                      py_1    conda-forge
flask                     1.1.2              pyh9f0ad1d_0    conda-forge
flask-flatpages           0.6                      py38_0    conda-forge
frozen-flask              0.15                       py_1    conda-forge
importlib-metadata        1.7.0            py38h32f6830_0    conda-forge
itsdangerous              1.1.0                      py_0    conda-forge
jinja2                    2.11.2             pyh9f0ad1d_0    conda-forge
ld_impl_linux-64          2.34                 hc38a660_9    conda-forge
libffi                    3.2.1             he1b5a44_1007    conda-forge
libgcc-ng                 9.3.0               h24d8f2e_14    conda-forge
libgomp                   9.3.0               h24d8f2e_14    conda-forge
libstdcxx-ng              9.3.0               hdf63c60_14    conda-forge
markdown                  3.2.2                      py_0    conda-forge
markupsafe                1.1.1            py38h1e0a361_1    conda-forge
mccabe                    0.6.1                      py_1    conda-forge
ncurses                   6.2                  he1b5a44_1    conda-forge
openssl                   1.1.1g               h516909a_1    conda-forge
pip                       20.2.1                     py_0    conda-forge
pycodestyle               2.6.0              pyh9f0ad1d_0    conda-forge
pyflakes                  2.2.0              pyh9f0ad1d_0    conda-forge
python                    3.8.5           h4d41432_2_cpython    conda-forge
python_abi                3.8                      1_cp38    conda-forge
pyyaml                    5.3.1            py38h1e0a361_0    conda-forge
readline                  8.0                  he28a2e2_2    conda-forge
setuptools                49.2.1           py38h32f6830_0    conda-forge
sqlite                    3.32.3               hcee41ef_1    conda-forge
tk                        8.6.10               hed695b0_0    conda-forge
werkzeug                  1.0.1              pyh9f0ad1d_0    conda-forge
wheel                     0.34.2                     py_1    conda-forge
xz                        5.2.5                h516909a_1    conda-forge
yaml                      0.2.5                h516909a_0    conda-forge
zipp                      3.1.0                      py_0    conda-forge
zlib                      1.2.11            h516909a_1006    conda-forge

Details about  conda and system ( conda info ):

$ conda info

     active environment : blog
    active env location : /home/jepersson/.miniconda3/envs/blog
            shell level : 1
       user config file : /home/jepersson/.condarc
 populated config files : /home/jepersson/.condarc
          conda version : 4.8.3
    conda-build version : not installed
         python version : 3.8.3.final.0
       virtual packages : __glibc=2.31
       base environment : /home/jepersson/.miniconda3  (writable)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/jepersson/.miniconda3/pkgs
                          /home/jepersson/.conda/pkgs
       envs directories : /home/jepersson/.miniconda3/envs
                          /home/jepersson/.conda/envs
               platform : linux-64
             user-agent : conda/4.8.3 requests/2.23.0 CPython/3.8.3 Linux/5.7.8-arch1-1 arch/ glibc/2.31
                UID:GID : 1000:985
             netrc file : None
           offline mode : False

I updated the package - can you check it is working now?


Handle void elements, HTML escaping in serialization code

This makes the serialized HTML valid so it can be used by outside tools.

Looks ok to me.

Published v2.16.0

Added @mwiencek as a collaborater.

@mwiencek Check out https://github.com/Raynos/min-document/blob/master/CONTRIBUTION.md

@Raynos woah, thanks! I may have cold feet for a while but I'll be mindful of that document.


Update JQuery

Update JQuery to whatever the latest is and fix any fallout.

This was completed during the hackathon.  Thanks @jeci-sarl for your assistance!


Split db.utils.init into multiple functions - Issue #458

Resolves #458
The functionality of the db.utils.init was extracted into separate functions. New tests were added into tests.db.test_utils.

[Current coverage][cc-pull] is 90.91%

Merging [#471][cc-pull] into [master][cc-base-branch] will increase coverage by 0.09%

@@             master       #471   diff @@
==========================================
  Files            18         18
  Lines          1285       1299    +14
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1167       1181    +14
  Misses          118        118
  Partials          0          0

[][cc-pull]

Powered by Codecov. Last updated by [92e5640...4c399ad][cc-compare]
[cc-base-branch]: https://codecov.io/gh/bigchaindb/bigchaindb/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/bigchaindb/bigchaindb/compare/92e56408de366ceae9987719cb6dadff62d82b01...4c399ad234998d27ddb56f53d3eec4f8d14196dc?src=pr
[cc-pull]: https://codecov.io/gh/bigchaindb/bigchaindb/pull/471?src=pr

@vrde and @r-marques I fixed the logger messages. please have another look. thanks

@vrde and @r-marques I fixed the logger messages. please have another look. thanks

looks good to me! Thanks for the refactoring :dancers:


fix: remove l from call to calculate domain

As raised by @wind4greg, fixes a typo from previous iteration of calculate_domain that required L as an input.

Multiple approvals! Editorial update fixing a typo. Merging. Thank you everyone!


bug(Redirect): Add Redirect to Rocon.ts

Is it mistaked?

@uhyo
I try to use it and all right!!
ありがとうございます 😌


Call completions more frequently and compute TS AST for Python completions

Fixes https://github.com/microsoft/pxt-minecraft/issues/1990
Issue here is the intellisense for call expressions requires our annotated TS AST, which wasn't being computed for Python. I added an additional compile (after the py2ts) to fill in this info.
Fixes https://github.com/microsoft/pxt-minecraft/issues/1989
This is because getCompletions is only called when intellisense initially pops up, and subsequent keystrokes just filter the existing list (eg if you type "PRI" quickly and wait, you'll see "PRIMED_TNT", but if you type "P", wait, then add "RI" you will not). PRIMED_TNT isn't in the initial list because it's a "ProjectileMob" and mobs.spawn is preferencing AnimalMobs. Adding incomplete: true will recompute the completions each time.
I also updated our pre-monaco completion result filtering to be case-insensitive (so that "pri" will also bring up "PRIMED_TNT").
These are all kind of perf hits--here's a build, I do think it makes the intellisense noticeably slower so it might be worth discussing whether we should ditch some of these fixes in favor of better perf. Or if folks have ideas for better fixes! (cc @darzu)
Build: https://minecraft.makecode.com/app/e1999a6e25f69f5e6ddbfe5ae1b26d967894fe03-36536a76cc

This is tricky territory. The "PRIMED_TNT" is interesting. It used to be that this would show up because the initial computation of the dropdown returned all possible matches and the subsequent filtering would always find the item no matter what you typed.
However we felt perf was too slow so I deliberately introduced limits on how many items were returned by intellisense in order to speed the initial call up. The downside of this capping is that the situation above happens.
You've found another way to do this which is to keep getting items. But I worry this will be pretty bad for perf. It used to be that filtering was very instantaneous because that was all handled by monaco.
The perfect solution I think would be if we could return some hits immediately and slowly fill in more and more intellisense items with more time, but leave all the filtering to the monaco client side.
My feeling now is that removing the capping I added is probably the right solution. The capping improved perf a bit, but I think the delta of that gain is less than the net loss from the compute it every time strategy.

Thinking a little more, I believe the best solution is if we divide up and remember the work done by the compiler and language service better.
It should be the case that a change by the user causes one compile which will then store a bunch of analysis state that was necessary for the compilation process anyway, and then subsequent calls to the language service functions (completions, snippets, hover help, etc) will be snappy because the bulk of the work was done for them already during that first compile.
Or maybe refining this a bit more, the one compile after a change can return the errors to the webapp asap and then once that's been returned the compile service immediately starts computing all remaining auxiliary data structures needed by the language service so that once a language service call is made the answer should be a quick lookup.

For this PR, my recommendation is we remove the hard limit on number of results returned.

@darzu Cool, that makes sense! Abhijith had a good suggestion, I've removed the capping in general to fix this bug, but I'm leaving it in/turning it on if the user is in light mode--my feeling is the tradeoff for slightly less accurate intellisense vs better perf goes the other way in that scenario


Support show create table for table from catalog

Feature request
Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Additional context

https://github.com/StarRocks/starrocks/pull/15193


added 'CenterCollectionView'

Project URL
CenteredCollectionView
Description
A lightweight CollectionView that 'pages' and centers it's cells 🎡 written in Swift.
Why it should be included to awesome-ios (optional)
It's pretty awesome! Checkout the README 📜
Checklist

[X] Only one project/change is in this pull request
[X] Addition in chronological order (bottom of category)
[X] Supports iOS 9 / tvOS 10 or later
[X] Supports Swift 3
[X] Has a commit from less than 2 years ago
[X] Has a clear README in English

          1 Warning

:warning:
Too many changes (when adding, please keep it to one project per Pull Request)

  Generated by :no_entry_sign: Danger

Hey @BenEmdon, remove the extra empty line. :)

Hey @BenEmdon nice lib and cool README 🙌🏻
Thanks for contributing to awesome-ios🎉🎉🎉


Add builds for python 3.6 and 3.7 on conda-forge

I was attempting to use conda-forge to install quandl which has inflection as a dependency, but it looks like inflection has only been built up to python 3.5. Is it possible to add 3.6 and 3.7?

Hi, I just released 0.4.0 in PyPI. I'm not familiar with how conda-forge works so I don't know if that will build inflection for Python 3.6 and 3.7. If it doesn't, you might want to ping the folks at https://github.com/conda-forge/inflection-feedstock. It seems that's the repo where conda-forge builds for inflection are handled.


Add Member Modal UI

Figma v2 now has the add member modal UI for Manage Members screen.

Includes success message

Need to implement the "X" to close the modal

@ibeckermayer This should be working as of my PR

Closing as it is doneskies


Chained calls to append produce compile errors on Linux

On Linux, both g++ and clang give errors for chained calls to append:
https://github.com/OutpostUniverse/OP2Utility/blob/eb764f239c8f6b8375a5b9697c0d22b36ad622e3/XFile.cpp#L144-L148
The error is:
XFile.cpp:144:42: error: no matching member function for call to 'append'
                return fs::path().append(subDirectory).append(filename)....
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/experimental/fs_path.h:223:7: note:
      candidate template ignored: requirement '__and_<__not_<is_same<path, path>
      >, __constructible_from<path, void> >::value' was not satisfied [with
      _Source = std::experimental::filesystem::v1::__cxx11::path]
      append(_Source const& __source)
      ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/experimental/fs_path.h:231:7: note:
      candidate function template not viable: requires 2 arguments, but 1 was
      provided
      append(_InputIterator __first, _InputIterator __last)
      ^
XFile.cpp:148:32: error: no matching member function for call to 'append'
        return p.append(subDirectory).append(filename).string();
               ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/experimental/fs_path.h:223:7: note:
      candidate template ignored: requirement '__and_<__not_<is_same<path, path>
      >, __constructible_from<path, void> >::value' was not satisfied [with
      _Source = std::experimental::filesystem::v1::__cxx11::path]
      append(_Source const& __source)
      ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/experimental/fs_path.h:231:7: note:
      candidate function template not viable: requires 2 arguments, but 1 was
      provided
      append(_InputIterator __first, _InputIterator __last)
      ^

In both cases it seems to be complaining about the second chained append call. Looks like a template guard is preventing the expected method from being selected. I haven't yet figured out why. I'm wondering if it might be a version difference, either between standards, or between platform. I'll look more into it.

Problems like this are good reasons to avoid using experimental libraries. If only there was a good alternative in the standard library.
If you feel like I used append wrong here or we just need to change it to work on both systems, I have no issues at all with it.

Hmm, I missed a subtle point the first time around. The append method is equivalent to operator /=. It is not equivalent to operator /. That is, it modifies the source object on the left, rather than returns a newly constructed object.
Chaining calls to append is like writing this weird looking code:
		return (fs::path() /= subDirectory /= filename).string();

Re-writing as follows seems to work:
		return (fs::path() / subDirectory / filename).string();

Granted, there are probably better ways to write the code. For this line, perhaps not start with an empty path, so a double append isn't needed. Though a deeper solution might question why we even have this whole method, and if perhaps the calling code could have been designed differently. I find the existence of this method a bit strange.
The proposed solution doesn't answer why the compiler rejected the original code. I'm still curious about that.


added link to project proosal

I made the change here instead https://github.com/NeuromatchAcademy/course-content/pull/940. This PR seemed to delete some files which I didn't want

Thanks for catching that, not sure how it happened.


(PUP-7611) Cannot squelch all deprecation warnings

This cleans up calls to warn_once with the intent of logging a deprecation. The correct form of category is 'deprecations' (a String, in plural).

CLA signed by all contributors.

I like this kind of cleanup :) Verified that this solves the problem in the ticket 👍


Frontend: Order Confirm Component

Description
This PR is about Order confirmation page.. so user can check that their order is done.
Please provide a short summary explaining what this PR is about.
Fixes #97
How to test?
npm run dev
localhost:3000/order-confirmation
Please provide a short summary how your changes can be tested?
Checklist

[X] I have performed a self-review of my own code
[X] I have followed the name conventions for CSS Classnames and filenames, Components names and filenames, Style filenames, if you are in doubt check the the project README.MD and here https://github.com/HackYourFuture-CPH/curriculum/blob/master/review/review-checklist.md
[X] I have commented my code, particularly in hard-to-understand areas, if you code was simple enough mark the box anyway
[X] I have made corresponding changes to the documentation, if you code was simple enough mark the box anyway
[X] This PR is ready to be merged and not breaking any other functionality

It looks fine .

Looks like Figma reference. 👍
Why your PR has src/client/containers/ProductPage/ProductPage.styles.css file with same content as "src/client/containers/OrderConfirmationPage/OrderConfirmationPage.styles.css" ?

I think its mistake .. I don't know how it came ..


"internal error generating TensorFlow graph" during re-write of autoencoder example

I'm running the following code: https://gist.github.com/tanmayb123/8151fd73ccc3cfd2ebf2d6c7100a292f
Inspired by this example: https://github.com/tensorflow/swift-models/blob/stable/Autoencoder/Autoencoder.swift
I'm running the code using this command "/Library/Developer/Toolchains/swift-tensorflow-DEVELOPMENT-2019-01-04-a.xctoolchain/usr/bin/swift -O MAuto.swift"
But I get this error
<unknown>:0: warning: value implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
<unknown>:0: warning: value implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
<unknown>:0: error: internal error generating TensorFlow graph:
Cannot add function 'true_/job_localhost/replica_0/task_0/device_CPU_0_MAuto' because a different function with the same name already exists.
<unknown>:0: warning: value implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
<unknown>:0: error: internal error generating TensorFlow graph:
Cannot add function 'true_/job_localhost/replica_0/task_0/device_CPU_0_MAuto' because a different function with the same name already exists.
<unknown>:0: warning: value implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
<unknown>:0: error: internal error generating TensorFlow graph:
Cannot add function 'true_/job_localhost/replica_0/task_0/device_CPU_0_MAuto' because a different function with the same name already exists.

Am I doing something wrong?

I believe this is pretty old.  Is it still reproducible?  We've turned off Graph Program Extraction for most cases last month.

I'm going to close this bug for now. Please reopen it if necessary. Thanks!


This is to fix a GSP-local installation.

A current local installation script never completes due to multiple StorageClasses definied as a default. Follow error(s) presented during install:
Error from server (Forbidden): error when creating "/var/folders/50/gkvw0hn95x30pmghtc5jf_tc001qqh/T/tmp.6Rv20YrN/gsp-cluster/charts/harbor/templates/jobservice/jobservice-pvc.yaml": persistentvolumeclaims "gsp-harbor-jobservice" is forbidden: Internal error occurred: 2 default StorageClasses were found
Error from server (Forbidden): error when creating "/var/folders/50/gkvw0hn95x30pmghtc5jf_tc001qqh/T/tmp.6Rv20YrN/gsp-cluster/charts/harbor/templates/registry/registry-pvc.yaml": persistentvolumeclaims "gsp-harbor-registry" is forbidden: Internal error occurred: 2 default StorageClasses were found
by Sebastian Szypowicz, Paul Dougan

This will need someone in the trusted developers group to hub pr checkout 369 then amend (with GPG signing) and force push the commit.


is anybody use in production environment?

we all knows , currently just a  beta version,but i still want to use in production environment。
is anybody tried? any surggerst?
thanks!

I think the version which is on dev branch is pretty solid.
We are working on production release.
I want to publish next beta version next week, but this version will be almost RC, but I want to collect some feedback from users. 👍
Thanks!

good work！
thanks~

We have been using the solution with extended user profiles and roles since february this year and it is rock solid.

Thank you for your feedback - @StrongGesmbH

@StrongGesmbH 👍🏼


Added 3 new solutions and beautified Readme.md

Hope it helps and adds some value to the repository.

If it helps pls do label for hacktober fest.
Thank you.


Missing migration ?

I'm utilising latest version on my project and a migration is generated for organisations when i run migrate:
´´´
$ dcp run web python manage.py makemigrations
Migrations for 'organizations':
/venv/lib/python3.5/site-packages/organizations/migrations/0002_auto_20170219_1936.py:
- Alter field slug on organization
´´´

django-organizations==0.9.0
Django==1.10.5

Thank you for identifying and sharing this. Fixed and out n PyPI.


reload.lua issue

On mpvnet the script seems to work but on regular mpv this error is showing.
[reload] The loadfile option must be an integer: start=367.96
[reload] Command loadfile: argument index can't be parsed: option parameter could not be parsed.

I don't know why mpvnet works but I'm guessing something to make the script consider only start=367 instead of 367.96 should work but don't know how to.

Ugh, mpv decided to make a non-backward-compatible change to the loadfile command in 0.38, wonderful.
Could you try this version in both mpv (which is broken for you now) and mpvnet (which is not broken for you now)? I'd rather to try keeping compatibility with the old versions.
--[[
	reload / by sibwaf / https://github.com/sibwaf/mpv-scripts

	Reopens the current playing file and seeks to the same timestamp on a button press ([Shift+R] by default).
    Useful for situations when you are watching YouTube/streams and your connection breaks for some reason.

	MIT license - do whatever you want, but I'm not responsible for any possible problems.
	Please keep the URL to the original repository. Thanks!
]]

local mp = require("mp")

local function reload()
    local path = mp.get_property("path")
    if path ~= nil then
        local time = mp.get_property_number("time-pos")
        mp.commandv("loadfile", path, "replace", -1, "start=" .. time)
    end
end

mp.add_key_binding("R", "reload", reload)

local mp = require("mp")

local function reload()
    local path = mp.get_property("path")
    if path ~= nil then
        local time = mp.get_property_number("time-pos")
        mp.commandv("loadfile", path, "replace", -1, "start=" .. time)
    end
end

mp.add_key_binding("R", "reload", reload)

This one works in mpv. Thanks a lot! And although I've stopped using mpvnet, since you asked it shows this error now.
[reload] Expected '=' and a value.
[reload] Command loadfile: argument options can't be parsed: option parameter could not be parsed.

Would you mind checking if this version is any better in terms of compatibility?
--[[
    reload / by sibwaf / https://github.com/sibwaf/mpv-scripts

    Reopens the current playing file and seeks to the same timestamp on a button press ([Shift+R] by default).
    Useful for situations when you are watching YouTube/streams and your connection breaks for some reason.

    MIT license - do whatever you want, but I'm not responsible for any possible problems.
    Please keep the URL to the original repository. Thanks!
]]

local mp = require("mp")

local function reload()
    local path = mp.get_property("path")
    if path ~= nil then
        local args = {}
        args["name"] = "loadfile"
        args["url"] = path
        args["flags"] = "replace"
        args["options"] = "start=" .. mp.get_property_number("time-pos")
        mp.command_native(args)
    end
end

mp.add_key_binding("R", "reload", reload)

local mp = require("mp")

local function reload()
    local path = mp.get_property("path")
    if path ~= nil then
        local args = {}
        args["name"] = "loadfile"
        args["url"] = path
        args["flags"] = "replace"
        args["options"] = "start=" .. mp.get_property_number("time-pos")
        mp.command_native(args)
    end
end

mp.add_key_binding("R", "reload", reload)

This is it. Works on both mpv and mpvnet.

Cool. Thanks for testing!


Feature Request - Brightness Control

It would be super awesome to have it control brightness as well :smile:

This will be coming very soon! Maybe in the next beta, or the one after that. I need to fix a couple things and then I'll start working on the brightness and keyboard OSDs.

+1

+100000! I have done some brightness manipulation on windows for TouchMe gesture studio in the past (albeit in native c++) . I'm happy to share that code if it would help!

This is one of my top priorities, but I do have to apologize for taking so long. Some lingering bugs that needed to be fixed have kept me busier than I would've guessed.
@YashMaster , are you using the SetMonitorBrightness API that was added in Vista, or WMI to manipulate the brightness? So far with what I've been testing, support for the new API seems a bit spotty (maybe my hardware is too old...)


Being able to check the headers of a request

✨ Feature proposal

Being able to check the headers of a request
🎯 Motivation

Right now we are using expect(global.fetch).toHaveBeenCalledWith(..., what make the usage kind of tricky.
By moving this to burrito we will provide a simple Api for checking the headers.
In addition I think is a feature that any burrito user will expect to be able to use.
👀 Example

In my head it should be part of the function toHaveBeenFetchedWith. For example, something like this:

💬 Comments

WIP on this branch 👉 https://github.com/mercadona/wrapito/tree/added-issue-94


GPIO RFID READER

Since Im using raspberry pi 1 for this project (limited usb) and have to use 1 of the USB for wifi and second for external music card. Is there an option to use a GPIO RFID CARD READER?
Can You pls advise what to configure?

I'm not sure, if a RPi 1 would work with Phoniebox.
Nevertheless there are howtos for GPIO readers in the wiki, e.g.
https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Wiring_for_RC522_card_reader
or
https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/RFID-Reader-Special

I’m closing this now, feel free to reopen, if the problem persists


Update libwebsockets to version 3.0

The file structure has changed quite a bit.
lws_peer.cpp is no longer compatible with older libwebsockets version as a new callback has been added (I could make a check for that, but I don't think it's worth it, as the library will be bundled most of the time, and OSes should update their system library at some point).
Most of the custom patch we had before are no longer needed, I only had to do a small fix for OpenBSD and FreeBSD (which is already PRed upstream warmcat/libwebsockets#1306)

akien-mga reviewed on behalf of godotengine/network

Well not really, try again GitHub :P


wrong repo url in gogs

I have deployed to a local kubernete when I create a project the url for git repo for gogs be like this http://gogs/gogsadmin/repo_name.git and the build always faild. why it did not take the correct url that is based on the IP that is in the kubernete: for example: http://<IP_ADDRESS>:32704/gogsadmin/repo_name.git

I'm having the same issue. Will post here if i find anything.


Intellectual developmental disorder, autosomal dominant 42 and Global developmental delay-neuro-ophthalmological abnormalities-seizures-intellectual disability syndrome

MONDO list the following terms as separate disorders but they are the same condition:
Global developmental delay-neuro-ophthalmological abnormalities-seizures-intellectual disability syndrome MONDO:0024252
Intellectual developmental disorder, autosomal dominant 42 MONDO:0014855
We may want to merge the terms and add the corresponding synonyms.
Of note, in NORD we have a report about this condition under the name "GNB1-Related Disorder"
Thank you! Gioconda

Dear @galyea123,
Thank you for reaching out to the Mondo Disease Ontology, part of the Monarch Initiative!
We have received your ticket and will review it as soon as possible.
If you have any additional information or updates relevant to your inquiry, please add them in a comment on this ticket. Your input is valuable in helping us understand and resolve the issue effectively.
Thank you for your patience and for your contributions to Mondo!
Sincerely,
The Mondo Team

@galyea123 Thank you for this request!
Based on review of these terms, it appears that they represent the same condition. Therefore, we will merge MONDO:0024252 'global developmental delay-neuro-ophthalmological abnormalities-seizures-intellectual disability syndrome' into MONDO:0014855 'intellectual disability, autosomal dominant 42.'
This change will appear in the next release of Mondo.

I added the synonym "GNB1-Related Disorder". However, since a variation in the GNB1 is associated with multiple different diseases, I made this synonym "broad"

@kanems please be aware that we merged the following 2 Mondo terms. Each of these terms maps to different MedGen and UMLS terms:
MONDO:0024252 (obsoleted, merged to the other Mondo term) = MEDGEN:1798905 ; UMLS:C5567482
MONDO:0014855 (kept) = MEDGEN:934741 ; UMLS:C5567482

[like]  Gioconda Alyea reacted to your message:

From: katiermullen @.>
Sent: Tuesday, November 12, 2024 9:27:48 PM
To: monarch-initiative/mondo @.>
Cc: Gioconda Alyea @.>; Mention @.>
Subject: Re: [monarch-initiative/mondo] Intellectual developmental disorder, autosomal dominant 42 and Global developmental delay-neuro-ophthalmological abnormalities-seizures-intellectual disability syndrome (Issue #7597)
@galyea123https://github.com/galyea123 Thank you for this request!
Based on review of these terms, it appears that they represent the same condition. Therefore, we will merge MONDO:0024252 'global developmental delay-neuro-ophthalmological abnormalities-seizures-intellectual disability syndrome' into MONDO:0014855 'intellectual disability, autosomal dominant 42.'
This change will appear in the next release of Mondo.
—
Reply to this email directly, view it on GitHubhttps://github.com/monarch-initiative/mondo/issues/7597#issuecomment-2471618882, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A4QAWD2SBSBW7DRDQ7YIEXT2AJXFJAVCNFSM6AAAAABRU74RWOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZRGYYTQOBYGI.
You are receiving this because you were mentioned.Message ID: @.***>
Any review, use, distribution or disclosure by others is strictly prohibited.


resources page: restrict progress bar to filtered resources

Currently the progress bar on the resources page is always for all resources rather than only the ones matching the filter. I think it would be more intuitive to only show the matching ones. The screenshot below shows that the filter matches only 45 resources but the bar shows a lot more.

@bartv I remember some discussions about this specifically. I believe it was desired behavior to always have the full bar even though some filtering might be active. Was there still things that needed to be discussed or proposed ?

It was indeed by design. Of course we can decide to change this. So not sure what to do with it.
Given the priorities this is either icebox or close.


Fixed typos dealing with by-index get/set in Row objects etc.

Made corrections per email. Might need to make changes in 2.2 also, because that is the branch that has API docs currently generated and posted from.

Second try.

One more time.

:+1: LGTM

Could you squash everything into one commit ?


Refactoring SpeedTrapListener class

Instead of implement TestListener, why not extend BaseTestListener and remove some unused methods? :smile:

@gabriel-caruso Muito obrigado, Gabriel! I did not know PHPUnit shipped with a base class for test listeners :)


bug in url re-direction?

The URL to which we link is
https://www.pombase.org/spombe/result/SPCC24B10.07
which is redirected to
https://www.pombase.org/gene/SPCc

Sorry about that.  It's fixed now.


snap build 1113 cannot execute - exec: /snap/sleek/1113/sleek/sleek: cannot execute: Permission denied

root@XXXXXX:/snap/sleek/1113# ll
total 4
drwxr-xr-x 9 root root  124 mars   5 15:49 ./
drwxr-xr-x 4 root root 4096 mars   7 12:01 ../
drwxr-xr-x 5 root root   56 mars   5 15:49 data-dir/
drwxr-xr-x 2 root root    3 mars   5 15:49 gnome-platform/
drwxr-xr-x 3 root root   39 mars   5 15:49 lib/
drwxr-xr-x 4 root root   56 mars   5 15:49 meta/
drwx------ 5 root root  457 mars   5 15:49 sleek/
drwxr-xr-x 3 root root   79 mars   5 15:49 snap/
drwxr-xr-x 4 root root   39 mars   5 15:49 usr/
This issue has been encountered by other people on this thread
https://forum.snapcraft.io/t/snap-doesnt-start-anymore-permission-denied/32536
The problem seems to be that the snap build does not have correct rights set on the sleek folder.
snap    2.58.2
snapd   2.58.2
series  16
ubuntu  22.04
kernel  5.15.0-60-generic

This is being discussed in another issue already.
I downgraded to snap again to the last working version.


command "git: add current file" does not stage file

When I use the command "git: add current file" it doesn't stage the saved modified file.
I have cygwin which uses the cygwin version of git - version 2.5.3
I also have the git bash installed which is at git version 2.6.3.windows.1
I'm not sure which one the plugin is using.

changed my path to use the git version 2.6.3.windows.1 and reinstalled the extension.  seems to behaving better now.  closing this out


Dev app: log in and server not up issues

Fri (2024-02-09) morning:

login flow was slow and not working for Sita at least, though worked for me, may have been transient
Sita and I were getting a lot of server not up errors even though the status page said it was up

possibly related are these problems showing up in browser dev tools

I was also getting a login issue too - nothing "broken" per se, but it only logged me in for a split second, then logged me out.

Thanks for reporting @avahoffman ! Did you eventually get logged in, or no?

@sckott Seems to be working now!

i think we're good now


api: Introduce & expose endpoint controller statuses

$ cilium status --all-controllers
[...]
Controller Status (0/2 failing)
  Name                               Last success   Last error   Count   Message
  sync-identity-to-k8s-pod (56326)   36s ago        never        0       no error
  sync-identity-to-k8s-pod (29898)   32s ago        never        0       no error

    $ cilium status -o json
      "controllers": [
        {
          "configuration": {
            "error-retry": true,
            "interval": "1m0s"
          },
          "name": "sync-identity-to-k8s-pod (56326)",
          "status": {
            "last-failure-timestamp": "0001-01-01T00:00:00.000Z",
            "last-success-timestamp": "2018-02-05T17:43:34.099-08:00",
            "success-count": 1
          },
          "uuid": "247d5d37-0adf-11e8-aa78-080027559fd9"
        },
        {
          "configuration": {
            "error-retry": true,
            "interval": "1m0s"
          },
          "name": "sync-identity-to-k8s-pod (29898)",
          "status": {
            "last-failure-timestamp": "0001-01-01T00:00:00.000Z",
            "last-success-timestamp": "2018-02-05T17:43:37.997-08:00",
            "success-count": 1
          },
          "uuid": "26d05710-0adf-11e8-aa78-080027559fd9"
        }

test-me-please

test-me-please

Error from previous build is odd:
02:28:04 pkg/client/client.go:218: time.Since(t).Truncate undefined (type time.Duration has no field or method Truncate)
02:28:04 Makefile:71: recipe for target 'tests-consul-ginkgo' failed

test-me-please

test-me-please

02:28:04 pkg/client/client.go:218: time.Since(t).Truncate undefined (type time.Duration has no field or method Truncate)

Truncate() is not available in go 1.8. I've worked around it.

test-me-please

test-me-please


Prepare the 0.15.0-beta.2 release

@callemall/material-ui This is ready, please review thanks :+1:

Done


WIP: OSBuild now uploads container images directly to a container registry

CRD
Add a new section in the OSBuildEnvConfig for the container registry parameters
Controller
Worker Config - update the worker configuration file
Job - Pass the secrets (auth and optional CA certificate)
Playbook - Copy the certificates to the VM
Update UT
Sample
Update the README along with create_env and the sample
Signed-off-by: Ygal Blum<EMAIL_ADDRESS>

This PR is pending the release of the new OSBuild-Worker version v59. Once it's released, the version of OSBuild-Worker, OSBuild and Composer will be updated and the code may be tested E2E

What about the changes in the osbuild_controller (postComposer requests) ?

@bardielle please note that there are additional change to the ones you review. The main part is the changes to the osbuild_controller due to the changes in the API


Trying to make the code more readable

Hi all,
I'm running some C code analysis tool that pointed me to this small code fragment. I'm suggesting this patch to try to make the source code more understandable.
Would you guys agree with this type of changes? The tools pointed me to almost many cases like this one in the source code of the project.

 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.

Thanks you very much for your patch, but the original coding style is fine. As it's a C code idiom (?:).

NGINX/TENGINE has its own coding style, refer: http://tengine.taobao.org/book/appendix_a.html#nginx-100
I will close this PR and if u have any question u could reopen it.