v3.0.7 segfault at liblmdb.so.0.0.0

It appears in v3.0.7 that some changes have been done in regards to LMDB that cause a segfault in the library.
Environment:

CentOS 7 or CentOS Stream 8
nginx v1.22.0 compiled with latest release version of nginx security module and libmodsecurity v3.0.7 (compiled library with ./configure --with-lmdb --with-pcre2)
latest release of OWASP CRS

Result: any URLs being accessed trigger:
[2766481.294938] nginx[18205]: segfault at 7c ip 00007fad3894fd91 sp 00007ffcabc55b50 error 4 in liblmdb.so.0.0.0[7fad3894c000+14000]
[2766481.300369] Code: ff ff 48 8d 78 40 e8 3e ed ff ff e9 02 ff ff ff 66 0f 1f 84 00 00 00 00 00 41 57 41 56 41 55 41 54 55 53 48 89 fb 48 83 ec 18 <44> 8b 6f 7c 48 8b 6f 20 41 81 e5 00 00 02 00 4c 8b 7d 40 0f 84 86

Hi @dvershinin ,
Are you able to provide a stack trace?

@martinhsv
gdb nginx-debug /tmp/cores/core.nginx-debug.626957
GNU gdb (GDB) Red Hat Enterprise Linux 8.2-16.el8
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from nginx-debug...Reading symbols from /usr/lib/debug/usr/sbin/nginx-debug-1.22.0-4.el8.x86_64.debug...done.
done.

warning: Can't open file (null) during file-backed mapping note processing

warning: Can't open file (null) during file-backed mapping note processing

warning: Can't open file (null) during file-backed mapping note processing
[New LWP 626957]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `nginx: worker process                         '.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f77fb751221 in mdb_txn_renew0 (txn=txn@entry=0x0) at mdb.c:2676
2676		MDB_env *env = txn->mt_env;
Missing separate debuginfos, use: yum debuginfo-install libnghttp2-1.33.0-3.el8_2.1.x86_64 ssdeep-libs-2.14.1-7.el8.x86_64
(gdb) info threads
  Id   Target Id                          Frame
* 1    Thread 0x7f77fe47db80 (LWP 626957) 0x00007f77fb751221 in mdb_txn_renew0 (txn=txn@entry=0x0) at mdb.c:2676
(gdb) thread 1
[Switching to thread 1 (Thread 0x7f77fe47db80 (LWP 626957))]
#0  0x00007f77fb751221 in mdb_txn_renew0 (txn=txn@entry=0x0) at mdb.c:2676
2676		MDB_env *env = txn->mt_env;
(gdb) bt
#0  0x00007f77fb751221 in mdb_txn_renew0 (txn=txn@entry=0x0) at mdb.c:2676
#1  0x00007f77fb75289c in mdb_txn_begin (env=0x55db81b496a0, parent=parent@entry=0x0, flags=524288, flags@entry=0, ret=ret@entry=0x7fffe5a084a0) at mdb.c:2907
#2  0x00007f77fc75dbe0 in modsecurity::collection::backend::MDBEnvProvider::MDBEnvProvider (this=0x7f77fca3b6d0 <modsecurity::collection::backend::MDBEnvProvider::GetInstance()::instance>) at collection/backend/lmdb.cc:509
#3  0x00007f77fc75dcdb in modsecurity::collection::backend::MDBEnvProvider::GetInstance () at collection/backend/lmdb.cc:47
#4  modsecurity::collection::backend::LMDB::txn_begin (this=0x55db80ab3a60, flags=131072, ret=0x7fffe5a08538) at collection/backend/lmdb.cc:45
#5  0x00007f77fc75f31f in modsecurity::collection::backend::LMDB::resolveMultiMatches (this=0x55db80ab3a60, var="<IP_ADDRESS>_d7ed64233a3c9ab4b245cc581bfd1eb1f02ff333::::PREVIOUS_RBL_CHECK", l=0x7fffe5a08880, ke=...) at collection/backend/lmdb.cc:411
#6  0x00007f77fc75ca74 in modsecurity::collection::Collection::resolveMultiMatches (this=this@entry=0x55db80ab3a60, var="PREVIOUS_RBL_CHECK", compartment="<IP_ADDRESS>_d7ed64233a3c9ab4b245cc581bfd1eb1f02ff333", compartment2="", l=l@entry=0x7fffe5a08880, ke=...) at ../headers/modsecurity/collection/collection.h:177
#7  0x00007f77fc6b09c9 in modsecurity::variables::Ip_DictElement::evaluate (this=0x55db80b68110, t=0x55db81b358e0, rule=<optimized out>, l=0x7fffe5a08880) at /usr/include/c++/8/bits/basic_string.h:940
#8  0x00007f77fc7171b1 in modsecurity::RuleWithOperator::evaluate (this=0x55db80b69070, trans=0x55db81b358e0, ruleMessage=std::shared_ptr<class modsecurity::RuleMessage> (use count 2, weak count 0) = {...}) at rule_with_operator.cc:278
#9  0x00007f77fc713af9 in modsecurity::RuleWithActions::evaluate (this=0x55db80b69070, transaction=0x55db81b358e0) at /usr/include/c++/8/ext/atomicity.h:98
#10 0x00007f77fc707c2a in modsecurity::RulesSet::evaluate (this=0x55db81605a80, phase=<optimized out>, t=0x55db81b358e0) at rules_set.cc:210
#11 0x00007f77fc6f2344 in modsecurity::Transaction::processRequestBody() () at transaction.cc:979
#12 0x00007f77fca3f2f9 in ngx_http_modsecurity_pre_access_handler (r=0x55db81a44590) at ModSecurity-nginx-1.0.3/src/ngx_http_modsecurity_pre_access.c:212
#13 0x000055db7f7360d7 in ngx_http_core_generic_phase (r=0x55db81a44590, ph=0x55db81a4ac28) at src/http/ngx_http_core_module.c:898
#14 0x000055db7f73185d in ngx_http_core_run_phases (r=r@entry=0x55db81a44590) at src/http/ngx_http_core_module.c:876
#15 0x000055db7f731939 in ngx_http_handler (r=r@entry=0x55db81a44590) at src/http/ngx_http_core_module.c:859
#16 0x000055db7f73dc42 in ngx_http_process_request (r=r@entry=0x55db81a44590) at src/http/ngx_http_request.c:2180
#17 0x000055db7f777c01 in ngx_http_v2_run_request (r=0x55db81a44590) at src/http/v2/ngx_http_v2.c:3995
#18 0x000055db7f777dae in ngx_http_v2_state_header_complete (end=0x55db81af0c60 "", pos=0x55db81af0c60 "", h2c=0x55db81b30850) at src/http/v2/ngx_http_v2.c:1919
#19 ngx_http_v2_state_header_complete (h2c=0x55db81b30850, pos=0x55db81af0c60 "", end=0x55db81af0c60 "") at src/http/v2/ngx_http_v2.c:1896
#20 0x000055db7f778c16 in ngx_http_v2_state_field_len (h2c=h2c@entry=0x55db81b30850, pos=<optimized out>, end=end@entry=0x55db81af0c60 "") at src/http/v2/ngx_http_v2.c:1579
#21 0x000055db7f778e82 in ngx_http_v2_state_header_block (h2c=0x55db81b30850, pos=<optimized out>, end=0x55db81af0c60 "") at src/http/v2/ngx_http_v2.c:1495
#22 0x000055db7f7764d5 in ngx_http_v2_read_handler (rev=0x55db81ac0a00) at src/http/v2/ngx_http_v2.c:437
#23 0x000055db7f720ab8 in ngx_epoll_process_events (cycle=0x55db80a8b190, timer=<optimized out>, flags=<optimized out>) at src/event/modules/ngx_epoll_module.c:901
#24 0x000055db7f714b6a in ngx_process_events_and_timers (cycle=cycle@entry=0x55db80a8b190) at src/event/ngx_event.c:248
#25 0x000055db7f71e26d in ngx_worker_process_cycle (cycle=cycle@entry=0x55db80a8b190, data=data@entry=0x0) at src/os/unix/ngx_process_cycle.c:721
#26 0x000055db7f71cad7 in ngx_spawn_process (cycle=cycle@entry=0x55db80a8b190, proc=0x55db7f71e210 <ngx_worker_process_cycle>, data=0x0, name=0x55db7f7e2432 "worker process", respawn=respawn@entry=0) at src/os/unix/ngx_process.c:199
#27 0x000055db7f71fb5a in ngx_reap_children (cycle=0x55db80a8b190) at src/os/unix/ngx_process_cycle.c:598
#28 ngx_master_process_cycle (cycle=0x55db80a8b190) at src/os/unix/ngx_process_cycle.c:174
#29 0x000055db7f6f10c8 in main (argc=<optimized out>, argv=<optimized out>) at src/core/nginx.c:383

I was able to reproduce a crash in CentOS7. The crux of the issue appears to be that the ModSecurity code that opens the physical files uses '.' -- current working directory (cwd) -- for the start of the file path. In this environment cwd, was '/' which is not directly writeable.
This is not a new issue is v3.0.7. I was able to cause the exact same problem in v3.0.6 with CentOS7. (However, since in v3.0.6 a different process creates and opens the files, it may be that the set of use cases where this will occur is not identical.)
What worked as a workaround for me was to 1) create empty, physical files where I want them then 2) create, within '/', symbolic links to those files. E.g.
cd /tmp
touch modsec-shared-collections
touch modsec-shared-collection-lock
chown nginx:nginx modsec-shared-collections
chown nginx:nginx modsec-shared-collections-lock

cd /
ln -s /tmp/modsec-shared-collections modsec-shared-collections
ln -s /tmp/modsec-shared-collections-lock modsec-shared-collections-lock
chown nginx:nginx modsec-shared-collections
chown nginx:nginx modsec-shared-collections-lock

Longer term we should probably consider one or both of the following:
a) Having the code use '.' for the file path in the call to mdb_env_open is limiting for the user, and makes things somewhat fragile to idiosyncrasies of different environments and what the process thinks the cwd is. It may be worth creating a new ModSecurity configuration directive so that the path can optionally be specified by the user.
b) It wouldn't hurt to have better error handling so that what is happening here is more obvious.

a different process creates and opens the files

Thank you. Actually, this was precisely the breaking change for me:

Prior to 3.0.7, the collections file was apparently created with the master NGINX process, thus root user, due to which there was never a permissions issue
But as of 3.0.7 it is created with the NGINX worker process thus it needs nginx user to be able to write in the target directory...

It may be worth creating a new ModSecurity configuration directive

I highly agree with having that.

Yes, that's right. Since it is an nginx worker thread that now does this, what it thinks is its working directory and what its permissions are matter.
Besides the workaround that I suggested yesterday, another option is to make use of the nginx configuration item 'working_directory'. This allows you to specify the working directory of a worker process. E.g.
working_directory /tmp;

For most users this is probably both a simpler and more natural way to handle this. One can use whatever directory one wishes, as long as the nginx users has the appropriate permissions.

@martinhsv hope you can have a look at the pull request I made. My main goal is to prevent the segfault if users misconfigured their environment (which as of v3.0.7 becomes very easy even if libmodsecurity and nginx were installed with the correct permissions/configuration at first).
If they change the user directive in NGINX configuration this will cause a segfault because the collections file cannot be created/accessed). The pull request makes LMDB no-operational for such a case, but at least NGINX won't crash miserably.

I'm not sure I understand what you mean regarding the nginx 'user' directive. If one were to set user root, then the worker processes would run with root as the process owner, and everything should work. I wouldn't recommend that, however.
I think it's safer to leave the worker processes running as the user 'nginx'. And adjust the file location (and permissions if necessary):

Set the working_directory for the nginx user to a directory that is writeable by that user
if this is a ModSecurity upgrade and you want to retain your old lmdb data, move the two modsec-shared-collection* files to the directory specified in (1), and change the ownership of the files to nginx:nginx

(I'll comment on your PR separately.)

Closed via #2761


How to disable the (Bot) thing in the time bar?

Describe your problem here.
title

Are you modding a build from source or with Lua?
Lua
What is your build target?
Linux
Did you edit anything in this build? If so, mention or summarize your changes.
No response

Describe your problem here.
title

Are you modding a build from source or with Lua?
Lua
What is your build target?
Linux
Did you edit anything in this build? If so, mention or summarize your changes.
No response

You don't :D


Show modifier

Hello, could you please add a function modifier into the output.
Thank you

This plugin relies on compiler output, but the compiler does not generate documentation for modifiers or internal functions, so that is not possible for now.


POC of error handling

This is only a poc of how I suggest we handle errors. Here we catch and rethrow an ex-info with the original exception as the cause. If the user only uses the top level exception they can replace implementations without having to redo the error handling on the application.
WDYT?

@mynomoto That's an interesting problem and approach, I hadn't thought about uniform error handling yet.
Perhaps functions should be wrapped in a catch-all macro what just returns the original exception? Or perhaps callers should always catch Exception and then deal with the specifics themselves?

@borkdude I think that there are always tradeoffs :wink:
How I see this atm:

We could do nothing and if users catch anything related to json errors and changes implementations they will need to change what they catch if they use specific errors. They can catch Exception but if are more than one possible error and they need to know the difference it will change and code will need to change.
We could catch anything and wrap. It is easy and simple to implement but if users need any information about the error they will need to check the original exception and code will need to change when changing implementations.
We could attempt to catch and rethrow specific exceptions but that would be a lot of work. There are many different possible exceptions on clojure.data.json alone, and I'm not sure if there is a mapping between different library exceptions. The data available on the exception is also different with cheshire returning error position but clojure.data.json not.

I don't think that this is very important here because in a certain way invalid json is in the end invalid, the effect is the same as in the app cannot process it. This type of discussion will be more important for an http client because connection errors and timeouts are different in important ways.
Another advantage to having errors defined in this library is making testing easier because we could expose functions that construct the exceptions so users can simulate errors in json processing easily.


Fetch a list of podcasts with their meta-information

Integrate with the Supabase backend to fetch a list of all podcasts with all of their meta information and the URL to the audio file. For now, just dump it as JSON somewhere.
Acceptance criteria:

Every podcast from Supabase is fetched along with all of its meta information (we'll filter it out later)
No private tokens are leaked in the client build
Fetching works on both the main deployment and the preview deployments (on subdomains of cast-iu.pages.dev)

I think it will be best to use GraphQL to be free about the resulting data format

Are the author and coverUrl supposed to be required/non-nullable? In #41 it seems from the screenshot that they can be null

Yeah, they should be non-nullable. @VanishMax, could you please ensure they are?


"Lozna" is listed in the drop-down menu

Description:
"Lozna" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "Lozna" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Lozna, SĂLAJ".


Crawler Integration in AP

What issues does this PR close?
### Checklist
- [ ] The PR title is short and expressive.
- [ ] I have updated the CHANGELOG.md. See [changelog_update.md](https://github.com/sovity/authority-portal/tree/main/docs/dev/changelog_updates.md) for more information.
- [ ] I have updated the Deployment Migration Notes Section in the CHANGELOG.md for any configuration / external API changes.
- [ ] I have performed a **self-review**

Closed in favor of #358


Document required version of python-asciimathml  in README

The default version of python-asciimathml available in pip is not compatible with python 3.
As you mentioned in the changelogs notebook within mikidown, users need to install the python 3 compatible version of asciimathml.
However, using the default version, mikidown will start but the notes will not be displayed ad users have no chances to find out which version to install to use it with mikidown.
I would suggest to add with information directly in the README.mkd field, preferable in the dependence section.

Hey there. Does this note here make it clearer for future users? - https://github.com/ShadowKyogre/mikidown/tree/develop#dependencies

Yes, this is clearer!


issue when reproducing the results

Reproduced results do not meet the paper's result despite using same aux dataset and same training configurations.

Thank you for your interest in our paper.  We have checked and confirmed the reproducibility of our code.
Could you provide more information about your results, e.g., (1) the dataset and network you used. (2) If the performance of baseline (standard training with MSP score) could be reproduced? (3) If the classification accuracy of openmix could be reproduced? (4) Do you run the experiments based on our codebase, or just implement the openmix method in your own codebase?

I have tried to reproduce your results with exact same experimental setup, using RandImages 300k images as the auxiliary outlier.
As you can see below, for CIFAR10 ID benchmark, the AUROC value is significantly lesser than the reported 92.09±0.36. The model was trained with resnet110.

In your log, the accuracy of CIFAR 10 is only 85%, while it should be 94% normally. Therefore, there must some wrong in your code. I suggest to check the optimizer, learning rate etc. in your code to reproduce the accuracy of standard training (baseline, without using our openmix). And no wonder, the AUROC is far less than the our reported results with only 85% accuracy.

Closed as no further updates.


[Fix] Refactor Manage operational layers

Description
This PR:

Fixes a bug in Manage operational layers where removed layers would disappear after the popover was closed.
Refactors the sample since it has been a problem child since day one. I replaced the drag to reorder functionality (which was a large source of the issues) with a swap button. Hopefully, this implementation fares better going forward.

Linked Issue(s)

swift/issues/5790

How To Test

Tap on the minus button to remove a layer
Tap on the plus button to re-add a removed layer.
Tap on the swap button to change which layer is rendered on top.

Screenshots

Before
After

Thank you!


Marks Percentage Calculator, resolving issue#150

Description 📜
It is calculator that takes the marks of the subject out of 100 and will calculaye the percentage.
fixes # 150

Checklist ✅

[x] I follow Contributing Guidelines & Code of conduct of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm GSSOC'22 contributor
[ ] Have you added a working video of your calculator ?

Screenshots / Gif (Optional) 📸

update changes


Add whitelist option

Currently tb looks at every table by default. Debezium Connector supports a whitelist for postgres and mysql
https://debezium.io/documentation/reference/1.1/connectors/postgresql.html#postgresql-property-table-whitelist
I exposed that to the cli.
Not used to writing Java, and forgot to turn my code formatter off. But, seems to be working for me

 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.

@deklanw I'm going to close this in favor of the one that I just posted that doesn't have as much whitespace churn, but thank you so much for making it happen!


[feature request] support SHOW MEASUREMENTS where name =~ /.*paul.*/

Since 0.9 is it no longer possible to search through measurements with a regex by the name of the measurement ?
Sorry if this has been answered already.

@juddgaddie currently you cant filter measurements with a regex.

Docs issue fixed by https://github.com/influxdb/influxdb.com/commit/be70610deaa39f35bb5a3fe1b09e24928ac6443b

Are there any plans to introduce filtering on measurements ?

yes

@mjdesa is there an issue opened already so we can subscribe?

@bubenkoff I thought there was, but I cant seem to find it. I'll reopen this ticket and relabel it as a feature request.

thanks!

@bubenkoff how many unique measurements do you have? Is there a reason you aren't using tags?

thousands, but i agree, it's a bit strange to have that many
we're now reducing that number to hundreds

WHERE name =~ /.*paul.*/ will prevent name from being used as a tag key.  Is there an alternative syntax we could use?  Maybe...
SHOW MEASUREMENTS FROM /.*paul*./ WHERE name = 'foo'

or
SHOW MEASUREMENTS WITH NAME =~ /.*paul*./ WHERE name = 'foo'

SHOW MEASUREMENTS WITH NAME =~ /.*paul*./ would fit the SHOW TAG VALUES statement, e.g. SHOW TAG VALUES FROM database WITH KEY = 'something'.
Another alternative would be the MySQL style LIKE for regexes.
SHOW MEASUREMENTS FROM database WITH NAME LIKE /.*/ WHERE tagkey = 'tagvalue'

Replied on the duplicate ticket, but what about
SHOW MEASUREMENTS WHERE MEASUREMENT =~ /.*/

Implemented by #4501


How to acquire the Multi-PIE dataset?

Hi, I try to find a way to acquire the Multi-PIE dataset. When I check the home page of the Multi-PIE dataset, this home page shows that "Details on how to obtain the database are described here".  However, this link is link to a platform. And I have no way to acquire the dataset. The page is shown below.

I want to know where can I acquire the Multi-PIE dataset. Thanks for your help.

It seems that they change the website, maybe directly email the data owner can help.


Some helper functions that might be useful

I'd like to share a few helper classes that I'm using. I like to have my choices separated as "constants" and avoid the use of strings whenever possible.
For example:
ONLINE = 'ONLINE'
OFFLINE = 'OFFLINE'
DRAFT = 'DRAFT'

STATES = Choices(
    ('ONLINE',  1, 'Online'),
    ('DRAFT',   2, 'Draft'),
    ('OFFLINE', 3, 'Offline'),
)

That is not really DRY (repeating online a few times) and a typo between the first ONLINE and Online can introduce a really subtle and hard to debug bug. So what I tend to do is:
ONLINE = 'ONLINE'
OFFLINE = 'OFFLINE'
DRAFT = 'DRAFT'

STATES = Choices(
    *[
        (lambda c, idx: (c, idx, c.lower().title()))(value, idx)
        for idx, value in enumerate([ONLINE, OFFLINE, DRAFT], start=1)
    ]
)

Which produces the same result AND is not using a single string. Plus, if I ever want to change a value or search for it, it's way more easier (IDE's will have a better time dealing with variable references). To make it more readable I've implemented a few classes:
class EnumeratedChoices(Choices):
    def __init__(self, *choices, **kwargs):
        start = kwargs.pop('start', 1)  # Default start = 1
        super(EnumeratedChoices, self).__init__(*[
            (lambda c, idx: (c, idx, c.lower().title()))(value, idx)
            for idx, value in enumerate(choices, start=start)
        ])

STATES = EnumeratedChoices(ONLINE, OFFLINE, DRAFT) # Produces the same result

And also:
class CharChoices(Choices):
    def __init__(self, *choices, **kwargs):
        super(CharChoices, self).__init__(*[
            (lambda c: (c, c.lower(), c.lower().title()))(value)
            for value in choices
        ])

STATES = CharChoices(ONLINE, OFFLINE, DRAFT)

To produce:
[
    ('ONLINE', 'online', 'Online'),
    ('OFFLINE', 'offline', 'Offline'),
    ('DRAFT', 'draft', 'Draft')
]

Hope it helps someone.

Hello!
I think this can be useful but I won't put this in the library. Because it only works for english languages :) In the majority of cases, for non english people, the display value should be translated, and not only the "constant" converted. So it may be a good place in a toolbox, but I guess not in the lib.

My current idea is two classes

AutoChoices, that is your CharChoices, but that will have to class attributes that could be overridden by passing them to the constructor (so the user can simply inherit from this class to use its own function, or just pass it for a one-time usage)

a display_transform argument which is a function to convert the constant to the display. Default to lambda const: const.lower().replace('_', ' ').capitalize()
a value_transform argument which is a function to convert the constant to the value. Default to lambda const: const.lower()

AutoDisplayChoices, which is the same but without auto-managing the value, so it will accept a list of two-tuples. Same method display_transform as for AutoChoices


SQL: Resolve column type conflicts in favor of newer segments.

Helps with schema evolution from e.g. long -> float, which is supported
on the query side.

👍

LGTM, will wait for nishant's comment to be resolved though

@nishantmonu51 @jon-wei pushed an update for nishant's comment

:+1:


added api connection_timeout to recover from lost connections

if connection lost during listening the _send method does not return cause it calls self.session.request without the timeout keyword argument which defaults to None. i added an optional keyword argument to MatrixHttpApi and MatrixClient that specifies a timeout to pass to self.session.request

i'd love to see this being merged


add docker ps -a check step to README to confirm nothing has crashed

Add a sanity check after running all the docker-compose files to make sure none of the services have crashed on startup.

close due to project shutdown


Issue in MDIconButton

in android MDIconButton.set_size calculating bg size is too big
i fix it with
  def set_size(self, interval):       print("here...")       self.width = (           "48sp" if not self.user_font_size else self.user_font_size + sp(25)       )       self.height = (           "48sp" if not self.user_font_size else self.user_font_size + sp(25)       )

@AnEx07
Please edit the example code and attach screenshots that show the icon size before and after your changes...

output in desktop

output in android
version = "0.0.1"
from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.uix.button import MDIconButton
from kivy.metrics import sp
KV = '''
MDScreen:
MDIconButton:
    icon: "language-python"
    pos_hint: {"center_x": .5, "center_y": .75}
    md_bg_color: [1,0,0,1]
    user_font_size: "30sp"

NewMDIconButton:
    icon: "language-python"
    pos_hint: {"center_x": .5, "center_y": .35}
    md_bg_color: [1,0,0,1]
    user_font_size: "30sp"

'''
class NewMDIconButton(MDIconButton):
def set_size(self, interval):
print("here...")
self.width = (
"48sp" if not self.user_font_size else self.user_font_size + sp(25)
)
self.height = (
"48sp" if not self.user_font_size else self.user_font_size + sp(25)
)
class Example(MDApp):
def build(self):
return Builder.load_string(KV)
Example().run()

@AnEx07 I don't see any problem ...

the problem is the background size is too big for a given user_font_size in current MDIconButton as shown in upper icon button of  output on android screenshot but the background size in lower icon button is seems to be ok while user_font_size is same in both

here real issue i face...

output in desktop

also output in desktop but similar ratio

output in android..

@AnEx07 I don't see this behavior on mobile devices ...

test_src.zip
can you please execute this script

@AnEx07 Please attach the minimal code that reproduces this behavior...

version = "0.0.1"
from kivy.lang import Builder
from kivymd.app import MDApp
from kivymd.uix.button import MDIconButton
from baseimport import *
from kivy.metrics import sp
KV = '''
MDScreen:
MDIconButton:
id: top1
icon: "delete-sweep"
pos_hint: {"center_x": 0.5,"center_y": 0.75}
right: self.parent.right - sp(50)
    user_font_size: "25sp"
    mipmap: True
    md_bg_color: [0.8,0,0,0.5]

MDIconButton:
    icon: "delete-sweep"
    x: top1.x-sp(30)
    y: top1.y-sp(30)

    right: self.parent.right - sp(50)

    user_font_size: "25sp"
    mipmap: True
    md_bg_color: [0.8,0,0,0.5]

MDIconButton:
    icon: "delete-sweep"
    x: top1.x+sp(30)
    y: top1.y-sp(30)

    right: self.parent.right - sp(50)

    user_font_size: "25sp"
    mipmap: True
    md_bg_color: [0.8,0,0,0.5]

NewMDIconButton:
    id: top2
    icon: "delete-sweep"
    pos_hint: {"center_x": 0.5,"center_y": 0.35}
    right: self.parent.right - sp(50)

    user_font_size: "25sp"
    mipmap: True
    md_bg_color: [0.8,0,0,0.5]

NewMDIconButton:
    icon: "delete-sweep"
    x: top2.x-sp(30)
    y: top2.y-sp(30)

    right: self.parent.right - sp(50)

    user_font_size: "25sp"
    mipmap: True
    md_bg_color: [0.8,0,0,0.5]

NewMDIconButton:
    icon: "delete-sweep"
    x: top2.x+sp(30)
    y: top2.y-sp(30)

    right: self.parent.right - sp(50)

    user_font_size: "25sp"
    mipmap: True
    md_bg_color: [0.8,0,0,0.5]

'''
class NewMDIconButton(MDIconButton):
def set_size(self, interval):
print("here...")
self.width = (
"48sp" if not self.user_font_size else self.user_font_size + sp(25)
)
self.height = (
"48sp" if not self.user_font_size else self.user_font_size + sp(25)
)
class Example(MDApp):
def build(self):
return Builder.load_string(KV)
Example().run()

please try that one

print("current...")
print(self.user_font_size) # >>> 59.125
print(dp(self.user_font_size)) # >>> 162.59375
print(dp(23)) # >>> 63.25
print(dp(self.user_font_size + 23)) # >>> 225.84375
print("48dp" if not self.user_font_size else dp(self.user_font_size + 23)) # >>> 225.84375

print("new...")
print(self.user_font_size) # >>> 59.125
print(sp(25)) # >>> 59.125
print(self.user_font_size + sp(25)) # >>> 118.25
print("48sp" if not self.user_font_size else self.user_font_size + sp(25)) # >>> 118.25

here is output comparison of current and my script...
please let me know if i can help with anything else.

I think the problem accrues  when you trying to specify the font size in Kivy language and  function(def set size) in the together.
Hope this is what you looking for. I have tested the code works fine on my Samsung phone.
version = "0.0.1"
  from kivy.lang import Builder
  from kivymd.app import MDApp
  from kivymd.uix.button import MDIconButton
  from kivy.metrics import sp

  KV = '''
  MDScreen:
      MDIconButton:
          id: top1
          icon: "delete-sweep"
          pos_hint: {"center_x": 0.5,"center_y": 0.75}
          right: self.parent.right - sp(50)

          user_font_size: "25sp"
          mipmap: True
          md_bg_color: [0.8,0,0,0.5]

      MDIconButton:
          icon: "delete-sweep"
          x: top1.x-sp(30)
          y: top1.y-sp(30)

          right: self.parent.right - sp(50)

          user_font_size: "25sp"
          mipmap: True
          md_bg_color: [0.8,0,0,0.5]

      MDIconButton:
          icon: "delete-sweep"
          x: top1.x+sp(30)
          y: top1.y-sp(30)

          right: self.parent.right - sp(50)

          user_font_size: "25sp"
          mipmap: True
          md_bg_color: [0.8,0,0,0.5]

      NewMDIconButton:
          id: top2
          icon: "delete-sweep"
          pos_hint: {"center_x": 0.5,"center_y": 0.35}
          right: self.parent.right - sp(50)

          user_font_size: "25sp"
          mipmap: True
          md_bg_color: [0.8,0,0,0.5]

      NewMDIconButton:
          icon: "delete-sweep"
          x: top2.x-sp(30)
          y: top2.y-sp(30)

          right: self.parent.right - sp(50)

          user_font_size: "25sp"
          mipmap: True
          md_bg_color: [0.8,0,0,0.5]

      NewMDIconButton:
          icon: "delete-sweep"
          x: top2.x+sp(30)
          y: top2.y-sp(30)

          right: self.parent.right - sp(50)

          user_font_size: "25sp"
          mipmap: True
          md_bg_color: [0.8,0,0,0.5]

  '''

  class NewMDIconButton(MDIconButton):
      pass

  class MDIconButton(MDIconButton):
      pass

  class Example(MDApp):
      def build(self):
          return Builder.load_string(KV)

  Example().run()


Allow minting in phases

"borrowed" the idea from https://www.youtube.com/watch?v=fnEsaDUfjpU
But opted to leave maxSupply intact for greater backward and future-proof compatibility.

Hi @it-is-zods,
thank you for this contribution. Unfortunately I can't accept this PR right now because I'm busy freezing the features in v2 and paving the way for the v3 development which will include many major changes. I'll keep this proposal in mind when picking features for the next version.
Thank you for your time and please don't feel discouraged by this.


Include spectral analysis algorithm

Possible contender for simulations vs obs evaluations.

@martinleduc Could be describe what you have been using ? Algorithm, implementation, expected input and output...

Closing until there is more clarity over what is required.


Windows support

Hi!
I'm a Windows user and I'm in dire need of a good htop alternative that works on Windows terminals. ytop seems amazing and I would love to be able to use it!
I noticed when trying to install through cargo that there's a bunch of compilation errors, so I assume the project isn't quite there yet, but I'm willing to help if that's of any interest!

Hey, I would definitely like to add windows support.
The main issue is that https://github.com/rust-psutil/rust-psutil which is the main resource monitoring library that we are using doesn't have any windows support yet. I know there's quite a few other resource monitoring libraries in rust and many of them do have windows support, so what we could do is add one of them as a ytop dependency specifically on windows and then hook the widgets up to it which should get things working. There's a list of all of the rust resource monitoring libraries at the bottom of the rust-psutil readme that we could go through to find one that works: https://github.com/rust-psutil/rust-psutil#related-projects.
Eventually, I would like to add windows support to rust-psutil (likely by copying one of these other libraries) but that would be more work.
Any help is appreciated!

If it is of any help, bottom uses the sysinfo crate.


Adding  Unword It a reverse dumb-shard multiplayer game  that is based on HTML, CSS, and JS.

New Game
it is a digital twist on the classic game of charades. Players describe words in reverse order, challenging the opposing team to guess the original word.
Gameplay:

Teams take turns describing and guessing words
Describing team sees the word in reverse
Guessing team attempts to identify the word
Points awarded for correct guesses or when time runs out
Game continues for a set number of rounds or until a target score is reached

hey @Sulagna-Dutta-Roy can you please assign me this issue under GSSOC.


DR-HSH009S: Initial observations & PTC value not updating in real-time

Hi,
As we've discussed before Jeff (and other contributors) I wanted to say a huge "thank you!" for this integration. I use it all the time for my fans. I really appreciate everyone's hard work a lot.
Over the weekend I purchased and installed a DR-HSH009S wall-mounted heater. The integration exposes a climate entity which is phenomenal and so far it's been working fantastic.
I've jotted down the few things that I have observed the past few days after setting it up:

From what I can tell, there's no attribute on the climate entity itself to tell if the heater is currently heating or not (when in Auto mode). The closest thing I can tell is the "PTC" switch. I'm not sure if that is what it is intended for or not. Anyways, anecdotally, I've noticed it can take minutes to update sometimes.

Reproduce steps:
a) Set heater to Auto mode, temp setting 72 for example, current temp in room 70.
b) Heater heats for a while, then shuts off once 72 reached.
c) Heater cycles on and off to keep the temp in the room (Auto setting)
However the PTC value sometimes switches on and off when the heater turns on and off, but sometimes not, and it sometimes takes a few minutes. Not sure if this is a Dreo issue on their side, or not.

It'd be nice to be able to control the "swing angle" of the heater's lower fin (there are 4 options: modulate, up, middle, down). I can do some API digging if there is interest.

I wonder if the integration should actually not expose the "target temperature" number entity? Since it's kind of covered in the climate entity? What do we think?

Anyways, just in case it's helpful I figured I'd write this up. Again, THANK YOU for this integration!
I'm on latest Dreo integration (1.0.0).

Matt

Please attach the diagnostics for the heater so we can see what properties are coming back to the app.  In general, if the app can do it, we can do it in HASS too.
The challenge without having the device is that I can only guess at what the app sees.


Translate services-networking/ingress-controllers.md in Korean.

문서를 번역했습니다.
리뷰 부탁드립니다.
#17730
/language ko

/assign @ianychoi

When checking an issue, there is an issue that has been uploaded first, and the assigned PR is canceled.
#17302


Request not matching route with defaults

A request like /api/test is resulting in 404. A request like /api/test/hello works fine as expected.
public class TestController : Controller
{
    [Route("api/test/{seg1=foo}")]
    public string onevariablesegmentwithdefaults(string seg1 = null)
    {
        return $"onevariablesegmentwithdefaults:{seg1}";
    }
}

This is working fine with RC2 final packages, so looks like a regression
@rynowak

@javiercn

I'll look at it.

I suspect this might have worked by chance in the previous code. I don't see tests for this, I'm guessing that /{controller=Home}/{action=index} or similar would not have worked in the previous version

I think I found the issue and a potential fix for it. We are not constructing the tree properly, when we have default parameters we don't put the route in the matches list of previous nodes on the tree.
I believe if (part.IsParameter && (part.IsOptional || part.IsCatchAll)) should be if (part.IsParameter && (part.IsOptional || part.IsCatchAll || part.DefaultValue != null)) on https://github.com/aspnet/Routing/blob/dev/src/Microsoft.AspNetCore.Routing/Tree/TreeRouteBuilder.cs#L336
I need to look deeper into the issue to make sure all scenarios are covered. I'll add more tests regarding default values, but I'm almost sure that in the previous version of the code it worked because we only tested one default parameter.
/cc @rynowak

Discussed this with @Eilon. Marked for 1.0.1 if you think otherwise voice your concerns @kichalla @rynowak

how can we write somthing like this
[Route("api/test/{number=12:regex(\d{2})}")]

Hi, it looks like you are posting on a closed issue/PR/commit!
We're very likely to lose track of your bug/feedback/question unless you:

Open a new issue
Explain very clearly what you need help with
If you think you have found a bug, include detailed repro steps so that we can investigate the problem

Thanks!


Insanely smart (predictive) select+parse for Collecting event labels

When I type in a verbatim label, then I need to break it down.
There is little reason that mouse-over select on many elements of the label shouldn't be able to auto-categorize the moused over bit into the respective parsed out bit.  In other words, given a fragement of text in a collecting event, match it to it's respective semantics, and furthermore, if those semantics match (e.g. to a person's name) automatically suggest that person.
Pervious interfaces allow users to highlight text and then tag that text with the field.  Here we imagine a interface that does predictive tagging, of a sort.
Combining the mouse over of the text with a second key press to confirm, reject, or modify the selection would result in a novel interface that at the outset would seem to let curators break text into fields by mearly looking at it.

Coordinates and dates are readily parsed from the label without a highlight (may require a confirmation). In my experiments with the insect collection data. The automatic coordinates and date extractions are 95% accurate.

It is already implemented for: date, coordinates, elevation, collecting method.


Breakpoints

Codecov Report

Merging #23 into master will increase coverage by 0.59%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #23      +/-   ##
==========================================
+ Coverage   41.11%   41.70%   +0.59%
==========================================
  Files          22       22
  Lines         197      199       +2
  Branches       20       20
==========================================
+ Hits           81       83       +2
  Misses        105      105
  Partials       11       11

Impacted Files
Coverage Δ

src/components/HomeHeroSection.js
100.00% <ø> (ø)

src/App.js
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Add colors

Color codes:

green: timer is in its first half of duration
yellow: timer is in its second half of duration
red: timer is in its last quarter of duration

Test #ff0000

Added in https://github.com/claudiodangelis/i3-timer/commit/4747cad246c7ecd787931e9ce76e3371f57efce1


Thanks

Thanks for taking a stand and pledging to fight the good fight.  We need more "Internet heroes" like you.

That's my thought exactly. I'm sure you'll receive support from other people as well. Maybe EFF will also offer support.

kudos, count me in.

Thanks for your support!

mee2


TypeError: Cannot read property '1' of null

TypeError: Cannot read property '1' of null
    at findCommentsInRaws (/home/itgalaxy/web/dev0.cms.dev.itgalaxy.company/public_html/wp-content/themes/insteria/node_modules/stylelint-scss/dist/utils/findCommentsInRaws.js:144:34)
    at /home/itgalaxy/web/dev0.cms.dev.itgalaxy.company/public_html/wp-content/themes/insteria/node_modules/stylelint-scss/dist/rules/double-slash-comment-whitespace-inside/index.js:18:50
    at /home/itgalaxy/web/dev0.cms.dev.itgalaxy.company/public_html/wp-content/themes/insteria/node_modules/stylelint/dist/postcssPlugin.js:134:46
    at Array.forEach (native)
    at /home/itgalaxy/web/dev0.cms.dev.itgalaxy.company/public_html/wp-content/themes/insteria/node_modules/stylelint/dist/postcssPlugin.js:113:33

Got this error on:
/*!
 *  Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */

and
/* Example with animate.css
@import "animate.css/source/_base.css";
@import "animate.css/source/fading_entrances/fadeIn.css";
*/

Got this error on rules:

partial-no-import
double-slash-comment-empty-line-before
double-slash-comment-inline
double-slash-comment-whitespace-inside
operator-no-newline-after
operator-no-newline-before
operator-no-unspaced

Wow, thanks.

Please update to 1.3.1 and see if it is fixed for you.

@dryoma thanks! I'm going to try now

@dryoma
The error still occurs:
TypeError: Cannot read property '1' of null
    at findCommentsInRaws (/home/itgalaxy/web/dev0.cms.dev.itgalaxy.company/public_html/wp-content/themes/insteria/node_modules/stylelint-scss/dist/utils/findCommentsInRaws.js:76:123)
    at /home/itgalaxy/web/dev0.cms.dev.itgalaxy.company/public_html/wp-content/themes/insteria/node_modules/stylelint-scss/dist/rules/double-slash-comment-whitespace-inside/index.js:18:50
    at /home/itgalaxy/web/dev0.cms.dev.itgalaxy.company/public_html/wp-content/themes/insteria/node_modules/stylelint/dist/postcssPlugin.js:134:46
    at Array.forEach (native)
    at /home/itgalaxy/web/dev0.cms.dev.itgalaxy.company/public_html/wp-content/themes/insteria/node_modules/stylelint/dist/postcssPlugin.js:113:33

@dryoma
On this:
.dropdown-menu:not(.level-0) {
  margin: 0;

  a {
    white-space: normal;
  }
}

@dryoma maybe best ignore comments between selectors, property values, etc? In stylelint we add note to docs about it and wait postcss v6, regexp not good solution for parsing scss, css and etc, i think we will get a lot of issues using reg exp to parse code and it will just be a headache :sob: This is just my opinion.

First off, sorry for the inconvenience.
The regexes are actually not so much of a problem - I just missed a couple of cases; neede more tests, but 'IT happens. The thing here seems to be PostCSS itself; trying to figure out who's on the wrong here.
As for the comments: we really need to parse them as in SCSS missing //-comments seems a major fault. Not to mention that we have a rule specifically for requiring/prohibiting all comments to be inline. So if it is possible to fix all those, I'd definitely try to do so (unless it takes too long).

@evilebottnawi please see if the new patch fixed the issue for you.

@dryoma works fine, thanks for fast fixes :smile:


2000 heat

In the industrial blast furnace I need 2000 heat to melt platinum how can I increase the heat FYI I already have 2 lava buckets

Dude, go to the discord for questions, generally Github issue tabs are used for actual technical issues, like Crashes or Recipes not being right, or just stuff being broken in general.
here is literally the link: https://discord.gg/qfEAtfY
go, don't clog up githubs with issues that people can answer on like, forums and discord servers.


Unix epoch timestamp display option; copy-able field

Similar to https://github.com/rerun-io/rerun/issues/1714 - would it be possible to have a "unix epoch" timestamp display option? Sometimes external tools or code UIs use unix epoch seconds.
Also, is it possible to make the text there copy-able? Stretch-goal - make it a paste target that jumps the time to the pasted value.
E.g.<PHONE_NUMBER>2.733373 here on the timestamp panel:

Sounds good! The easiest way to implement this would be to add a UnixEpoch as another variant in enum TimeZone.
Selectable labels (all labels) will come in the next major release of Rerun. Making it editable is a nice idea though.

Is someone working on that?

@MacOS, no not right now, if you want to take a stab at it just go ahead! :)


refactor secure session

To work on scell+smessage instead of handcrafted thing:

[ ] theory
[ ] verification
[ ] c prototype
[ ] compare performance
[ ] merge implementation

somewhere in the future

I have a feeling that we won't dig into this, and no further public updates are planned, so I close this issue.


[WIP] Add trvavis CI

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@d341fff). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #3   +/-   ##
=========================================
  Coverage          ?   65.51%
=========================================
  Files             ?        3
  Lines             ?       29
  Branches          ?        1
=========================================
  Hits              ?       19
  Misses            ?        9
  Partials          ?        1

Continue to review full report at Codecov.

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


Abort due to constraint violation: Abort due to constraint violation error

Happens in database.cc when obmexperiments are saved (line 3328)

        // OBM experiments
        err = saveRelatedModels(user->ID(),
                                "obm_experiments",
                                &user->related.ObmExperiments,
                                changes);

I have local db file that shows this error.
More details in case: 221542

cannot reproduce at the moment


Description:
validate pics field =>  multiple images !
below is config json :
{
"validation": {
"rule": "image|max:8000"
},
"resize": {
"width": "1000",
"height": "null"
}
}
maybe pics is an array , not image, so fail !!!
$validator = Validator::make($request->all(), [
'person.*.email' => 'email|unique:users',
]);
Like this,  how to config  ?        * is supported / foreach in array ???

Your issue description is not clear.  Please limit issues to a single concern/question.
The "Multiple Images" field stores paths to images as a JSON array.  Validation rules regarding images will not work as currently implemented.  This definitely needs to be cleaned up/refactored.

Yes, need expland definitely to support JSON array !     * can be used .


TinyFPGA AX2: Set internal oscillator as default

NOTE: In draft mode and awaiting for upstream PR to be merged
This PR changes the TinyFPGA AX2 board to use the internal high-speed oscillator by default, since the board has no external clock and thus no default sync domain.
Notice: This PR is dependent on https://github.com/nmigen/nmigen/pull/575 being merged. Until then, it would cause an error since OSCH is not a valid resource on the TinyFPGA AX2 board.

FWIW, I checked out both this PR and nmigen/nmigen#575 locally. They both work fine when paired with some quality-of-life changes I intend to submit after this PR is merged.

@jreyesr There seems to be a bit of MachXO* activity in Amaranth as I type this. So it jogged my memory about this; would you be willing to mark this as ready to merge now that #575 was merged?

Hello @cr1901! Wow, it's been a while. Yes, this PR is ready to merge from my side, I just rebased the changes on top of current main. And many thanks for remembering this PR!


top_k for MulticlassRecall is not working as expected

🐛 Bug
The MulticlassRecall function with a top_k > 1 and the average parameter set to "macro" is not behaving as anticipated. Ideally, as top_k increases, the results should increase. However, on certain occasions, this isn't the case.
To Reproduce

code sample
import torch
from torchmetrics.classification import MulticlassRecall

num_classes = 200
preds = torch.randn(5, num_classes).softmax(dim=-1)
target = torch.randint(num_classes, (5,))

recall_val_top1=MulticlassRecall(num_classes=num_classes, top_k=1, average="macro")
recall_val_top5=MulticlassRecall(num_classes=num_classes, top_k=5, average="macro")
recall_val_top10=MulticlassRecall(num_classes=num_classes, top_k=10, average="macro")
recall_val_top100=MulticlassRecall(num_classes=num_classes, top_k=100, average="macro")

print(recall_val_top1(preds, target), recall_val_top5(preds, target), recall_val_top10(preds, target),recall_val_top100(preds, target)) ```

it returns tensor(0.) tensor(0.0357) tensor(0.0213) tensor(0.0154)

Expected behavior
The results is expected to rise as k grows.
Environment

TorchMetrics version: 1.2.1 (and how you installed: pip):
Python & PyTorch Version: 3.10.0 & 1.12.1
Any other relevant information such as OS (e.g., Linux): OS

Additional context
I checked the function _adjust_weights_safe_divide where it calculates the recall for function _precision_recall_reduce
and am unsure of this snippets:
      weights = torch.ones_like(score)
        if not multilabel:
            weights[tp + fp + fn == 0] = 0.0
      return _safe_divide(weights * score, weights.sum(-1, keepdim=True)).sum(-1)

In a multiclass scenario, when calculating top-k results, the number of false positives (fp) tends to increase with a higher value of k. This, in turn, augments the value of weights.sum(-1, keepdim=True)  and consequently reduces the final recall@k. Also wondering when calculate macro avg recall, should it be  weights[tp + fn == 0] = 0.0 ?

top_k for MulticlassAccuracy doesn't work as expected either.


Fuzzy version matching not working as expected with<EMAIL_ADDRESS>

Using golang 1.19 in .tool-versions will not install and use the actual latest golang 1.19 release.
Actual:
❯ rtx global --fuzzy<EMAIL_ADDRESS>❯ rtx exec<EMAIL_ADDRESS>-- go version
go version go1.19 darwin/arm64

Expected:
❯ rtx global --fuzzy<EMAIL_ADDRESS>❯ rtx exec<EMAIL_ADDRESS>-- go version
go version go1.19.5 darwin/arm64

This is probably related to the fix of not doing a fuzzy search, when there is an actual release matching the release number and golang not using a strict x.y.z version numbering scheme.
And it might not be something, we're able to fix without changes to .tool-versions syntax.
This issue might therefore be just for documentation purposes.
Work-around (add a dot to the end of the version) :-):
❯ rtx exec<EMAIL_ADDRESS>-- go version
go version go1.19.5 darwin/arm64

ohh I see. This one is more complicated because golang doesn't use 1.19.0 so it breaks our prefix matching. I'm not sure what we need to do for this one yet.

I think you're right, we may need to do something in .tool-versions like this:
golang prefix:1.19

the workaround isn't a proper solution since it would only work if at least 1 patch version exists for a runtime. I'm sure you already know this but I thought it was good to point out anyways.

Maybe one solution would be to somehow dispatch pattern matching to a plugin

seems we're further along than asdf here (unless I'm doing something wrong):
~ ❯ asdf latest golang 1.2
No compatible versions available (golang 1.2)
~ ❯ asdf latest golang 1.1
No compatible versions available (golang 1.1)
~ ❯ asdf latest golang 1.19
No compatible versions available (golang 1.19)
~ ❯ asdf latest golang
No compatible versions available (golang [0-9])

Yeah, I already thought this might not be easy or worth to work on. As you guessed, I know that I need to wait for the first patch version, for my workaround to work. But I think, this is fine.
Thanks for checking, how asdf was handling this.
In my opinion, this issue can be closed. If another user searches for this, he can find this discussion and workaround. And if he has a valid reason, can either reopen or create a new issue.

I think it deserves to stay open, this is a definite issue. Perhaps someone will come along with a smart idea on resolving it.

Running into this while trying to uninstall the old version 1.20 which removes the newly installed patch version 1.20.1

that's not surprising. The behavior of rtx uninstall I've never really decided on when it comes to prefixes. Perhaps for now I should take out the prefix matching completely so you'd always have to specify exact versions for uninstall.

if it's screwing with your workflow for any reason just do rm -rf ~/.local/share/rtx/installs/golang/1.20. I am working on a big refactor that will touch this so I should be able to get around to fixing it soon.

#145 will fix the uninstall issue

the whole golang thing is also fixed in #145 but I haven't documented it yet and it isn't working everywhere. It also may change a bit. If you set golang prefix:1.20, then it will behave like you want it to.


2024 April Update: Section 1.2.x Logic, Section 19 HKU Improvement, Handler Fixes, Prelim Fixes

Overall Review of Changes:
Thank you @MrSteve81 for the enhancements to this release!

Improved 19.x section logic for Windows local user SIDs and HKU support.
Reboot handler and logic Improvement with skip_reboot var feature.
win_skip_for_test var update with additional description
Mislabeled control fix for win19cis_rule_2_3_1_4, win19cis_rule_18_9_7_2, win19cis_rule_18_9_32_6_2, win19cis_rule_2_3_1_1, win19cis_rule_2_3_1_2, win19cis_rule_2_3_1_3
Improved logic for win19cis_cloud_based_system 1.2.x controls.

Issue Fixes:
Azure Cloud Logic for 1.2.x Section from @mfortin
Enhancements:
Improved Reboot Handler and SID user Logic for all local accounts
How has this been tested?:
Locally and Azure

Thank you @georgenalen !


[WIP] kernelmptcp: 0.91.3 -> 0.92.1

Motivation for this change
I would like to benefit from the many 0.92 additions (http://multipath-tcp.org/pmwiki.php?n=Main.Release92), mostly additional socket options.
Things done
I've just changed the version number/updated sha, yet when I want to build the kernel, I have some trouble upon the config generation (because it's a different kernel):
 warning: unused option: ARM_KPROBES_TEST
warning: unused option: B43_PCMCIA
warning: unused option: CPU_NOTIFIER_ERROR_INJECT
error: unused option: DRM_I915_KMS
builder for ‘/nix/store/fzkidgj6i9ia1v745wffm5dzl1vhmmlc-linux-config-4.1.38-mptcp_v0.92.1.drv’ failed with exit code 255

I am not sure what's the best course of action is to solve this kind of problems ?
Cheers

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Fits CONTRIBUTING.md.

@layus any tip :) ?

Hi @teto,
Thank you for pinging me. I lost interest on this because seemingly nobody was using it. I am glad to be wrong :-).
To update the mptcp kernel, you need to mimic the corresponding kernel in nixpkgs. linux 4.4 was recently removed, so you have to copy it from git history at https://github.com/NixOS/nixpkgs/blob/991745046f51d95411436b02822e0daabf5246cc/pkgs/top-level/all-packages.nix?utf8=✓#L12089-L12100 and also resurrect the related patches.
In this case, mptcp 92.1 is a 4.4.83 kernel as per https://github.com/multipath-tcp/mptcp/blob/v0.92.1/Makefile#L1-L3. You also need to update the modDirVersion and branch accordingly.
In your case I guess the meta.branch attribute was missing. That one is used in picking the right config options in https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel/common-config.nix.

See also https://github.com/teto/nixpkgs/pull/1 ;-)

That improved the situation quite a bit, i.e., it now compiles
checking for references to /tmp/nix-build-linux-4.4.83-mptcp_v0.92.1.drv-0 in /nix/store/hiipbya20i6fmk2811vs9w6k5vn74pav-linux-4.4.83-mptcp_v0.92.1-dev...
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
wrong ELF type
cannot find section .dynamic

as it doesn't sound too dramatic, I tried booting it via  boot.kernelPackages = pkgs.linux_mptcp; in my configuration.nix but it ends with attribute ‘extend’ missing, at /home/teto/nixpkgs/nixos/modules/system/boot/kernel.nix:26:31; full trace

sudo LANG=C nixos-rebuild switch --show-trace                ~/nixpkgsbis
building Nix...
building the system configuration...
error: while evaluating the attribute ‘config.system.build.toplevel’ at /home/teto/nixpkgs/nixos/modules/system/activation/top-level.nix:252:5:
while evaluating ‘foldr’ at /home/teto/nixpkgs/lib/lists.nix:34:20, called from /home/teto/nixpkgs/nixos/modules/system/activation/top-level.nix:132:12:
while evaluating ‘fold'’ at /home/teto/nixpkgs/lib/lists.nix:37:15, called from /home/teto/nixpkgs/lib/lists.nix:41:8:
while evaluating ‘showWarnings’ at /home/teto/nixpkgs/nixos/modules/system/activation/top-level.nix:98:18, called from /home/teto/nixpkgs/nixos/modules/system/activation/top-level.nix:105:16:
while evaluating ‘foldr’ at /home/teto/nixpkgs/lib/lists.nix:34:20, called from /home/teto/nixpkgs/nixos/modules/system/activation/top-level.nix:98:23:
while evaluating ‘fold'’ at /home/teto/nixpkgs/lib/lists.nix:37:15, called from /home/teto/nixpkgs/lib/lists.nix:41:8:
while evaluating the attribute ‘warnings’ at /home/teto/nixpkgs/lib/attrsets.nix:199:44:
while evaluating anonymous function at /home/teto/nixpkgs/lib/modules.nix:73:45, called from /home/teto/nixpkgs/lib/attrsets.nix:199:52:
while evaluating the attribute ‘value’ at /home/teto/nixpkgs/lib/modules.nix:310:9:
while evaluating the option `warnings':
while evaluating the attribute ‘isDefined’ at /home/teto/nixpkgs/lib/modules.nix:342:5:
while evaluating ‘filterOverrides’ at /home/teto/nixpkgs/lib/modules.nix:417:21, called from /home/teto/nixpkgs/lib/modules.nix:326:18:
while evaluating ‘concatMap’ at /home/teto/nixpkgs/lib/lists.nix:102:18, called from /home/teto/nixpkgs/lib/modules.nix:423:8:
while evaluating ‘concatMap’ at /home/teto/nixpkgs/lib/lists.nix:102:18, called from /home/teto/nixpkgs/lib/modules.nix:321:17:
while evaluating anonymous function at /home/teto/nixpkgs/lib/modules.nix:321:28, called from undefined position:
while evaluating ‘dischargeProperties’ at /home/teto/nixpkgs/lib/modules.nix:384:25, called from /home/teto/nixpkgs/lib/modules.nix:322:62:
while evaluating the attribute ‘value’ at /home/teto/nixpkgs/lib/modules.nix:214:48:
while evaluating the attribute ‘config.warnings’ at /home/teto/nixpkgs/nixos/modules/system/boot/systemd.nix:714:5:
while evaluating ‘mapAttrsToList’ at /home/teto/nixpkgs/lib/attrsets.nix:223:23, called from /home/teto/nixpkgs/nixos/modules/system/boot/systemd.nix:714:29:
while evaluating the attribute ‘services’ at /home/teto/nixpkgs/lib/attrsets.nix:199:44:
while evaluating anonymous function at /home/teto/nixpkgs/lib/modules.nix:73:45, called from /home/teto/nixpkgs/lib/attrsets.nix:199:52:
while evaluating the attribute ‘value’ at /home/teto/nixpkgs/lib/modules.nix:310:9:
while evaluating the option `systemd.services':
while evaluating the attribute ‘isDefined’ at /home/teto/nixpkgs/lib/modules.nix:342:5:
while evaluating ‘filterOverrides’ at /home/teto/nixpkgs/lib/modules.nix:417:21, called from /home/teto/nixpkgs/lib/modules.nix:326:18:
while evaluating ‘concatMap’ at /home/teto/nixpkgs/lib/lists.nix:102:18, called from /home/teto/nixpkgs/lib/modules.nix:423:8:
while evaluating ‘concatMap’ at /home/teto/nixpkgs/lib/lists.nix:102:18, called from /home/teto/nixpkgs/lib/modules.nix:321:17:
while evaluating anonymous function at /home/teto/nixpkgs/lib/modules.nix:321:28, called from undefined position:
while evaluating ‘dischargeProperties’ at /home/teto/nixpkgs/lib/modules.nix:384:25, called from /home/teto/nixpkgs/lib/modules.nix:322:62:
while evaluating the attribute ‘condition’ at /home/teto/nixpkgs/lib/modules.nix:465:14:
while evaluating the attribute ‘condition’ at /home/teto/nixpkgs/lib/modules.nix:465:14:
while evaluating the attribute ‘condition’ at /home/teto/nixpkgs/lib/modules.nix:465:14:
while evaluating the attribute ‘services.klogd.enable’ at /home/teto/nixpkgs/lib/attrsets.nix:199:44:
while evaluating anonymous function at /home/teto/nixpkgs/lib/modules.nix:73:45, called from /home/teto/nixpkgs/lib/attrsets.nix:199:52:
while evaluating the attribute ‘value’ at /home/teto/nixpkgs/lib/modules.nix:310:9:
while evaluating the option `services.klogd.enable':
while evaluating the attribute ‘isDefined’ at /home/teto/nixpkgs/lib/modules.nix:342:5:
while evaluating anonymous function at /home/teto/nixpkgs/lib/modules.nix:331:19, called from /home/teto/nixpkgs/lib/modules.nix:331:14:
while evaluating the attribute ‘value._type’ at /home/teto/nixpkgs/lib/modules.nix:422:73:
while evaluating the attribute ‘value.content’ at /home/teto/nixpkgs/lib/modules.nix:480:14:
while evaluating the attribute ‘default’ at /home/teto/nixpkgs/nixos/modules/services/logging/klogd.nix:12:7:
while evaluating ‘versionOlder’ at /home/teto/nixpkgs/lib/strings.nix:351:22, called from /home/teto/nixpkgs/nixos/modules/services/logging/klogd.nix:12:17:
while evaluating ‘getVersion’ at /home/teto/nixpkgs/lib/strings.nix:375:16, called from /home/teto/nixpkgs/nixos/modules/services/logging/klogd.nix:12:31:
while evaluating the attribute ‘boot.kernelPackages.kernel’ at /home/teto/nixpkgs/lib/attrsets.nix:199:44:
while evaluating anonymous function at /home/teto/nixpkgs/lib/modules.nix:73:45, called from /home/teto/nixpkgs/lib/attrsets.nix:199:52:
while evaluating the attribute ‘value’ at /home/teto/nixpkgs/lib/modules.nix:310:9:
while evaluating the option `boot.kernelPackages':
while evaluating ‘apply’ at /home/teto/nixpkgs/nixos/modules/system/boot/kernel.nix:26:15, called from /home/teto/nixpkgs/lib/modules.nix:305:11:
attribute ‘extend’ missing, at /home/teto/nixpkgs/nixos/modules/system/boot/kernel.nix:26:31

@teto Part 1 does not seem too dramatic. It is mostly a failure to detect elf files that leads patchelf to fail verbosely in https://github.com/NixOS/nixpkgs/blob/e3b562e0e2012155e635a3122b3f0046700c8c47/pkgs/build-support/setup-hooks/audit-tmpdir.sh#L22-L23.
And yes, you need boot.kernelPackages = pkgs.linuxPackages_mptcp;, boot.kernelPackages requires the attribute set that describes the kernel plus its packages/modules, not the raw kernel (as it name suggests ;)
Does it work for you now ?

I booted it and it worked. I've rebased and updated the PR. Thanks for your help.

Why am I requested for a review as code owner? I don't own these parts.

I've not requested any special reviewer, I thought it was an automatic thing ?

I think I get why: my first rebase was wrong so it included many commits from other areas (python commits etc). I've force pusehd a fix but the bot didn't rescan it to fix the required reviews.

Any update ? the old kernel is troublesome with setuid https://github.com/NixOS/nixops/issues/745

@NeQuissimus You may be the best one to review this, if another review is still needed. As for me, I would merge this ASAP, as 1) It works and 2) @teto seems to be one of the very few to use it. If he thinks it's ready, it is.

LGTM from that I can tell. Never used this before...

It's very possible that I write some sort of tests for this kernel for my personal usage. I wouldn't mind upstreaming it (or a subset) if there is any intereset for nixos. I could understand that testing a low interest package might be more a burden than anything for the nixos team anyway let me know. I confirm that rebooting with this kernel displayed yes on amiusingmptcp.de .
If you have any tip regarding kernel testing with nixos, let me know (I haven't checked the 'writing tests' documentation yet though, I guess it resorts to nixops).

@teto

It's very possible that I write some sort of tests for this kernel for my personal usage. I wouldn't mind upstreaming it (or a subset) if there is any intereset for nixos. I could understand that testing a low interest package might be more a burden than anything for the nixos team anyway let me know. I confirm that rebooting with this kernel displayed yes on amiusingmptcp.de .
If you have any tip regarding kernel testing with nixos, let me know (I haven't checked the 'writing tests' documentation yet though, I guess it resorts to nixops).

Usually, it is best to look at existing tests in nixos/tests :-). I would be glad to test your tests, and help writing them if need be.


Redirect route are refresh only for one provider

What version of Traefik are you using (traefik version)?
1.21
What is your environment & configuration (arguments, toml...)?
I have static frontend declared in file part.
I'm connected to eureka provider to get backend, but I think other provider are concerned
[file]
[frontends.api]
backend = "backendEurekaMyApp"
[frontends.api.routes.test_1]
rule = "PathPrefixStrip:/main"
What did you do?
I redirect frontend with rule "PathPrefixStrip" to backend declared in eureka part.
at startup,  i try url localhost/main/info, I get "404 not found" because backend is not here yet.
After 30 seconds, backend appeard in eureka. I refresh url. I still get "404 not found".
Eureka has been refresh, but File rules frontend not.
Temporary workarround.
After few hours of search, I found a solution, I declared static rules in eureka tmpl instead of "File" part, so frontend rule is refresh in the same time as backend.
What did you expect to see?
Furthermore, I think scope refresh is not applied in the same way depending rules used "Host", "PathPrefixStrip".
For host rule, refresh seem to be done in all case
What did you see instead?
Thee is multiple solution:

First one could be to add details in documentation about refresh scope. (tell to add static frontend rule in the same provider as backend

2.Second, refresh should be done for all provider, but may be it not the more efficient.

Could you please post the output of a --debug run while you are expecting the refresh to have happened? Thank you!

  [frontends.myapp]
  backend = "backendMYAPP"
    #[frontends.myapp.routes.test_1]
    #rule = "Host:api.tropevent.loc"
    [frontends.myapp.routes.test_1]
    rule = "PathPrefixStrip:/myApp"

Here is the code with frontend in file provider
traefik_1      | time="2017-04-02T11:24:20Z" level=debug msg="Configuration received from provider file: {\"frontends\":{\"myapp\":{\"entryPoints\":[\"https\",\"http\"],\"backend\":\"backendMYAPP\",\"routes\":{\"test_1\":{\"rule\":\"PathPrefixStrip:/myApp\"}},\"priority\":0}}}"
traefik_1      | time="2017-04-02T11:24:20Z" level=debug msg="Last file config received more than 2s, OK"
traefik_1      | time="2017-04-02T11:24:20Z" level=debug msg="Creating frontend myapp"
traefik_1      | time="2017-04-02T11:24:20Z" level=debug msg="Wiring frontend myapp to entryPoint https"

traefik_1      | time="2017-04-02T11:24:20Z" level=debug msg="Last eureka config received less than 2s, waiting..."
traefik_1      | time="2017-04-02T11:24:21Z" level=debug msg="Basic auth success..."
traefik_1      | time="2017-04-02T11:24:22Z" level=debug msg="Waited for eureka config, OK"
traefik_1      | time="2017-04-02T11:24:22Z" level=debug msg="Creating frontend myapp"
traefik_1      | time="2017-04-02T11:24:22Z" level=debug msg="Wiring frontend myapp to entryPoint https"
traefik_1      | time="2017-04-02T11:24:22Z" level=debug msg="Creating route test_1 PathPrefixStrip:/myApp"
traefik_1      | time="2017-04-02T11:24:22Z" level=debug msg="Creating backend backendMYAPP"
traefik_1      | time="2017-04-02T11:24:22Z" level=error msg="Undefined backend 'backendMYAPP' for frontend myapp"
traefik_1      | time="2017-04-02T11:24:22Z" level=error msg="Skipping frontend myapp..."

We can see thath frontend my app is not reconfigured at end ("Skipping").
Now, here is example, adding frontend rule in  eureka.t

You might possibly be affected by #679?

Could you try again with version 1.2.3+?

Hello,
I tested today with 1.2.3 docker image.
I still have th message "level=error msg="Skipping frontend myapp...""

It's been a while, sorry for the delay.
@w3blogfr any chance for you to try again with the latest 1.3 release?

Sorry for the long delay.
I just tryied today with 1.3.3, and still the same "skipping" message in log

I just tryied with 1.3.8 and still the same problem.
Thank you @w3blogfr for the workarround :)

It's not possible to use a backend defined by a provider  (Eureka, Docker, ...) in a frontend defined by another provider (File, Docker, ...)


Remove target dir for Dockerfiles before creating them

Cleanup target dir for Dockerfiles before generating them to have a clean start.

/assign @pierDipi


Text-label signal distortions

Great work, the signal is extracted beautifully, thank you.
Question: For the embedded lead labels on our ECG (e.g. "aVF" text), it looks like the letter "V" gets interpreted as part of the signal, and the signal can be distorted within the first 35 samples or so. There are also cases where the signal intercepts the text label, causing a similar distortion.
We may be able to collaborate with DSP groups on this noise, but I wanted to check if you know of any work already done on this. Don't want to reinvent the wheel. :)

Thank you for your good words!
One solution is to "draw" the bounding box closer to the ECG waveform and keep the letters outside.
Feel free to develop that feature. No, I am not aware.


Import scss from node_modules as string.

How to import scss files from node_modules as string, similar to how we import component scss files. When I try to do import scssFile from 'ionic-angular/path/to/scss-file.scss'; I get undefined. I understand I could do this using require() or @import in scss file. But I need to do it in this way because I am compiling scss using sass.js so I can have dynamic color variables.

Your should be able to provide relative path to the file using '../' notations. Let's say if you need to define the file inside the component located clients folder, you should be able to use import as
import from '../node_modules/ionic-angular/path/to/scss-file.scss'

@hsdhillon Yes I tried that, but when I console log the value it's undefined. and I don't get an error that the file was not found, so it is finding the file, but for some reason it is undefined.

@Urigo Any suggestions for this issue? I'm trying to import some scss files in node_modules from the imports folder. Is this possible from a .ts file?

@vacarsu Unfortunately, adding custom loaders is not available in Meteor's build system. However, if you use Webpack, you can use the following loader: https://github.com/jtangelder/sass-loader. You can use whatever loader you desire, as long as it fulfills what you wish for, and you use it right, then that's the way to go. We have a tutorial in our websites which guides you through building an application using Webpack and Meteor and it's available here: https://angular-meteor.com/tutorials/whatsapp2/ionic/setup. Take your time to investigate about Webpack and its bundling system, and see how you can combine it with Meteor in a way that is right for YOUR application, it might take you some time. Please give me your feedback so I can know if my answer was helpful.

@DAB0mB I think you're misunderstanding what I'm trying to do, I already am compiling the scss with sass.js, and that works, but importing scss files from node_modules returns undefined.I can import scss files fine from component folders, etc. But I cannot from node_modules for some reason.

@vacarsu  You can also compile it natively if you want using node-sass. This way you have more control of what's going on.

Try the following:
@import "~lib-name/sass-file-name";

In addition, Ionic uses the following syntax for their stylesheets:
@import "{}/node_modules/ionicons/dist/scss/ionicons.scss";

Whatever works best for you....

Neither of those options will work for me. While they do work, I have to import them from TS files so I have them as strings.

everyone please try to new and updated angular-compilers  package.
It supports:

Typescript compilation
Assets compilation (HTML, styles)
Angular's AoT compilation
Rollup's bundling with Tree Shaking

Please open a new issue if you encountered one.

Hi, i'm trying to implement a dynamic theme import.
This worked at meteor 1.5 and now I get this error, because "require" have be stopped read scss:

Error: Cannot find module '../../shared/styles/themes/theme-a.scss'

My code:
import { Injectable } from '@angular/core';

const themeA = require('../../shared/styles/themes/theme-a.scss');
const themeB = require('../../shared/styles/themes/theme-b.scss');
const themeC = require('../../shared/styles/themes/theme-c.scss');
const themeD = require('../../shared/styles/themes/theme-d.scss');
const themeE = require('../../shared/styles/themes/theme-e.scss');
const themeF = require('../../shared/styles/themes/theme-f.scss');
const themeG = require('../../shared/styles/themes/theme-g.scss');
const themeH = require('../../shared/styles/themes/theme-h.scss');

@Injectable()
export class ThemesService {

    styleTag: any;
    defaultTheme: string = 'A';

    constructor() {
        this.createStyle();
        this.setTheme(this.defaultTheme);
    }

    private createStyle() {
        const head = document.head || document.getElementsByTagName('head')[0];
        this.styleTag = document.createElement('style');
        this.styleTag.type = 'text/css';
        this.styleTag.id = 'appthemes';
        head.appendChild(this.styleTag);
    }

    setTheme(name) {
        switch (name) {
            case 'A':
                this.injectStylesheet(themeA);
                break;
            case 'B':
                this.injectStylesheet(themeB);
                break;
            case 'C':
                this.injectStylesheet(themeC);
                break;
            case 'D':
                this.injectStylesheet(themeD);
                break;
            case 'E':
                this.injectStylesheet(themeE);
                break;
            case 'F':
                this.injectStylesheet(themeF);
                break;
            case 'G':
                this.injectStylesheet(themeG);
                break;
            case 'H':
                this.injectStylesheet(themeH);
                break;
        }
    }

    injectStylesheet(css) {
        this.styleTag.innerHTML = css.default;
    }

    getDefaultTheme() {
        return this.defaultTheme;
    }

}

There is another option?

so is it actually possible to import an scss file from inside node_modules folder? I tried to import an scss file from inside node_modules with fourseven:scss installed. no luck.


Flekschas/js api new cursor location

Description
What was changed in this pull request?
There's a new event one can listen to called cursorLocation which returns the location of the cursor when hovering a higlass instance.
Why is it necessary?
Because mouseMoveZoom only works when a track is able to extract data under the mouse cursor. Right now only the HeatmapTiledPixiTrack supports that. but in order to just get the location of the mouse cursor a track doesn't have to do anything. Ideally mouseMoveZoom is renamed to something like trackDataUnderCursor but that's another PR.
When the event is triggered it's publishing a subset of HiGlassComponent.mouseMoveHandler(). E.g.,
{
  absX: 727
  absY: 545
  dataX:<PHONE_NUMBER>.3999963
  dataY:<PHONE_NUMBER>.4500015
  isFrom2dTrack: true
  isFromVerticalTrack: false
  relTrackX: 702
  relTrackY: 33
  relX: 717
  relY: 535
}

And this works when mousing over any track.
Checklist

[ ] Unit tests added or updated
[x] Documentation added or updated
[x] Example added or updated
~[ ] Screenshot for visual changes (e.g. new tracks)~
[x] Updated CHANGELOG.md

  isFrom2dTrack: true
  isFromVerticalTrack: false

Why not have something like:
  sourceTrackOrientation: [2d | vertical | horizontal],
  tracks: [track1Obj, track2Obj]

?
Where tracks would contain the track objects that are below the cursor?
Also, is there a reason you don't include the tracks under the cursor already?


json method missing from RequestBuilder in 0.10.0, breaks backward compatibility

reqwest::RequestBuilder used to have a 'json' method that has disappeared with 0.10.0 -- which breaks my code.
Getting the unsurprising error:
no method named json found for type reqwest::RequestBuilder in the current scope
method not found in reqwest::RequestBuilder
I'd expect either that the version gets bumped to 1.0.0 if this is an API breaking change. Or that the json method sticks around for backwards compatibility.

Arg, need to enable feature now:
[dependencies]
reqwest = { version = "0.10", features = ["blocking", "json"] }

Thanks for your follow up.

thanks but please fix as documentation shows otherwise!
thanks!


OnDestroy() is misspelled

The OnDestroy function is spelled OnDestory

I am pulling a branch to change it.


Suggest integrate with git config

Hi, I found http_proxy and https_proxy from os environ don't work in some circumstances, e.g. launch vscode directly, extension such as go installs its dependencies from vscode inside through git , then it will bypass these settings.
I work around it by scripts below:
export socks_url="http://<IP_ADDRESS>:1087"

set_git_proxy() {
    git config --global http.proxy $socks_url
    git config --global https.proxy $socks_url
}

unset_git_proxy() {
    git config --global --unset http.proxy
    git config --global --unset https.proxy
}

echo_git_proxy() {
    echo "[http.proxy]"
    git config --global http.proxy
    echo "[https.proxy]"
    git config --global https.proxy
}

Now just turn on git proxy globally with set_git_proxy, install or upgrade components anywhere, and end up with unset_git_proxy.
Hope this helps, best regards~

Good idea! I will support this feature soon.

Please update to 0.2.0!


[FIX] Debian calls the idmapd service nfs-common

This is a very quick and easy fix for Debian Jessie. I checked with apt-file in an old Wheezy install and they call it nfs-common, too.

Hi, thanks for your commit. That was fixed in #28. So it should work now!


getContextData &/ getImageData creates DOMException: SecurityError

code: 18 columnNumber: 0 data: null filename: "http://localhost:9966/node_modules/gif.js/dist/gif.js" lineNumber: 2 message: "The operation is insecure." name: "SecurityError" result:<PHONE_NUMBER> stack: "[3]</GIF</GIF.prototype.getContextData@http://localhost:9966/node_modules/gif.js/dist/gif.js:2:12027\n[3]</GIF</GIF.prototype.getImageData@http://localhost:9966/node_modules/gif.js/dist/gif.js:2:12451\n[3]</GIF</GIF.prototype.getTask@http://localhost:9966/node_modules/gif.js/dist/gif.js:2:13029\n[3]</GIF</GIF.prototype.renderNextFrame@http://localhost:9966/node_modules/gif.js/dist/gif.js:2:11823\n[3]</GIF</GIF.prototype.render@http://localhost:9966/node_modules/gif.js/dist/gif.js:2:9303\nfn_save/<@http://localhost:9966/js/editor.js:456:4\n"
The above DOMException has been generated with these parameters:

clientside-only code,
HTML header has CORS code as such:
<meta http-equiv="Content-Security-Policy" content="   img-src		'self'    			filesystem    			http://localhost    			http://localhost:9966    			http://<IP_ADDRESS>    			http://<IP_ADDRESS>:9966   			http://www.fen-to-image.com;    connect-src localhost:9966   			ws:;   style-src 	'self' 'unsafe-inline';    script-src 	'self'    			filesystem    			http://localhost    			http://localhost:9966    			http://<IP_ADDRESS>    			http://<IP_ADDRESS>:9966   			'unsafe-inline'   			'unsafe-eval';">
i retrieve the images from [www.fen-to-image.com](http://www.fen-to-image.com/image/24/single/rnbqkbnr/pppppppp/8/8/3P4/8/PPP1PPPP/RNBQKBNR b KQkq d3 0 1) in advance, create an  for each of them, resulting fine as the images are visible to both eye & code
i access the images trough the document.images collection as such:
var gifAnim = new GIF({   			width: 240,   			height: 240,   			workers: 2,   			quality: 10   		});   		_.map($('#TheImageSet img'), function(n, i){   			gifAnim.addFrame(document.images.namedItem("ss_" + i));   		});   		gifAnim.render();
this created the named trouble. any ideas or clues where i can investigate more? i tried all various things I can think of.

the fun is, when i try to add that attribute, the image isnt visible & loaded anymore. does that means the source server isnt setup for cors? is there any way to ensure that the server (which is other parties set up) has cors enabled or disabled? thanks
Sent from my iPad

On 14 Apr 2018, at 08:21, Isaiah Odhner<EMAIL_ADDRESS>wrote:
A security error means the canvas is being tainted.
images are visible to both eye & code
They can be visible to the eye and to some code, but not to code that tries to read the pixel data.
Try putting crossorigin="anonymous" on your img tags.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

any way to ensure that the server (which is other parties set up) has cors enabled or disabled?

You can look in the chrome devtools Network tab, refresh if needed, then click on a resource and view the headers. It looks like there's no Content-Security-Policy header.
I'd recommend you generate your own images, or use a table.
Looks like there's a library for this: http://chessboardjs.com/


⚒ Adjust the appearance of the toolbar on mobile devices

Summary

I've resolved the problem of the missing toolbar on mobile browsers.
Preview: https://liam-erd-sample-acagd5sze-route-06-core.vercel.app/
Related Issue

Changes

device/browser
Before
After

iPhoneSE(Safari)

Android(Chrome)

I've checked on Firefox🔥 and Brave🦁 as well, and there seems to be no issue.
Testing

Other Information

@MH4GF
Thanks for catching that🙏. I've removed the width and height attributes from the SVG and tested it on a real device.


Improve package structure

How to categorize this PR?

/area dev-productivity
/kind enhancement
What this PR does / why we need it:

Move monitoring-related components to pkg/component/monitoring/*
Move Gardener components to pkg/component/gardener/*
Move autoscaling-related components to pkg/component/autoscaling/*
Move networking-related components to pkg/component/networking/*
Move Garden cluster-related components to pkg/component/garden/*
Move Seed cluster-related components to pkg/component/seed/*
Move Shoot cluster-related components to pkg/component/shoot/*
Move node mgmt-related components to pkg/component/nodemanagement/*
Move observability-related components to pkg/component/observability/*
Move etcd-related components to pkg/component/etcd/*
Move Kubernetes components to pkg/component/kubernetes/*
Move pkg/envtest to test/envtest
Move pkg/mock to third_party/mock
Move pkg/{openapi,registry} packages to pkg/apiserver/*
Move pkg/operation to pkg/gardenlet/operation

Release note:

The `pkg/envtest` package has been moved to `test/envtest`. Most component packages in `pkg/component` have been moved. The `pkg/openapi` and `pkg/registry` packages have been moved to `pkg/apiserver/*`.

/assign

I managed to go through most of the commits, and plan to try out the PR locally as well.
I just have one question for now - is the nodemanagement/* location ok for the dependency-watchdog? It seems to fit the prober component of the dependency-watchdog, but not the weeder.
As an alternative, I could suggest using the seed/* directory, but don't really have too strong of an opinion.

/assign

I managed to go through most of the commits, and plan to try out the PR locally as well.
I just have one question for now - is the nodemanagement/* location ok for the dependency-watchdog? It seems to fit the prober component of the dependency-watchdog, but not the weeder. As an alternative, I could suggest using the seed/* directory, but don't really have too strong of an opinion.

I think it shouldn't matter much - I'd prefer to keep it as is since DWD's main task is preventing massive node terminations when getting unavailable.

Shouldn't /pkg/component/observability/monitoring/logging.go be in /pkg/component/observability/logging/logging.go

This /pkg/component/observability/monitoring/logging.go file is used for providing logging configuration for the monitoring components. Hence, it should be "correct" there. But I anyways expect this file to disappear eventually as part of https://github.com/gardener/gardener/issues/9065.

Plutono can be kept inside monitoring?

Since Plutono is used for both monitoring and logging, I decided to put it into pkg/component/observability. Doesn't this make sense to you?

I think it shouldn't matter much - I'd prefer to keep it as is since DWD's main task is preventing massive node terminations when getting unavailable.

Alrighty
/approve

/retest


Add dependency version check before executing operators

Signed-off-by: Kaiyuan Hu<EMAIL_ADDRESS>

Codecov Report

Merging #1421 (603f54b) into main (61f50d5) will increase coverage by 0.01%.
The diff coverage is 36.36%.

:exclamation: Current head 603f54b differs from pull request most recent head bfe441d. Consider uploading reports for the commit bfe441d to get more accurate results

@@            Coverage Diff             @@
##             main    #1421      +/-   ##
==========================================
+ Coverage   68.36%   68.37%   +0.01%
==========================================
  Files         296      299       +3
  Lines       16269    16360      +91
  Branches     2647     2658      +11
==========================================
+ Hits        11122    11186      +64
- Misses       4407     4430      +23
- Partials      740      744       +4

Impacted Files
Coverage Δ

towhee/engine/operator_loader.py
70.00% <36.36%> (-5.00%)
:arrow_down:

towhee/utils/git_utils.py
51.89% <0.00%> (-0.88%)
:arrow_down:

towhee/models/bridgeformer/bridge_former.py
48.27% <0.00%> (ø)

towhee/models/bridgeformer/__init__.py
100.00% <0.00%> (ø)

towhee/models/bridgeformer/bridge_former_utils.py
50.00% <0.00%> (ø)

towhee/models/clip/clip.py
87.20% <0.00%> (+1.77%)
:arrow_up:

Continue to review full report at Codecov.

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

/lgtm
/approve


Basic collision

This PR adds collision detection between geometries in general, and between player and world in particular. It's all working nicely, though I want to do some clean up and refactoring.
Major change to maze structure: rather than think about paths as the primary geometry making up the environment, we now use blocks and wedges. Blocks are where paths would be, wedges fill the space in between, and paths just become the empty space. The major advance is that we can do simple and sensible collision detection between the player and these elements, which was otherwise becoming very complex. Adding obstacles now becomes easy because they occupy space just like wedges and blocks.
We may need to slightly tweak how we think about schemas, etc, but for the purpose of collision detection it's clearly a win.

Reviewed offline with @sofroniewn , merging in


Add pause() function.

The pause() function allows the user to pause the cropping by unbinding
the events but keeping the css, html and data alive.
It can be re-enabled by another call to pause(). You can specify a
boolean for force the pause or unpause regardless of previous status.

Reopening with the latest version. This already includes the fix for HammerJS in PR85, but I still provided the PR85 as standalone in case you want to include the fix but not the pause() method.
Turns out that HammerJS's .off() method does not restore native events, so scrolling was impossible. I fixed it by using hammerit.get('pinch').set({enable: false}); (or true) in the pause method instead.
Since the first version I also added the ability to start the cropbox paused with the "paused" option.
I updated the readme accordingly.
Tried it on Chrome, FF, Chrome Android, Safari iOS and IE9 without any issues.

Hopefully last commit on this: added correct handling of the mousewheel event when using HammerJS.
For performance reasons in my project I only load mousewheel on desktop and HammerJS on mobile, but I took the time to test it out with both and fixed what needed to be fixed.


feat(pubsub): round robin publisher connections

Allow applications to create multiple channels in a single publisher.
Currently there are other bottlenecks that makes this change a bit
redundant, but it is easier to merge ahead of more changes.

This change is

PTAL


Tweaks to search bar animation

Changed linear transitions to cubic-bezier taking inspiration from material design guidelines.

 [Search] Animation improvements


Commits for new module for supporting RHOAR on RHEL 7

@tradej Perhaps not the most elegant fix but I moved the commits for the new module to another branch and reset the rhoardoc-1531 branch to only the refactoring changes. Though perhaps this is not quite correct because this branch, rhoardoc-1531-2, includes the refactor changes too.

Can one of the admins verify this patch?

Changes in this PR are continued in #1256 . Closing this PR without merging.


Build failure due to newer environment variable append syntax

This pill request addresses a build failure do to the newer syntax.
https://github.com/Biktorgj/meta-qcom/pull/7

Merged, thank you!


Update npm package config

General Support Request
This repo's npm package is way over-bloated.
npm notice === Tarball Details ===
npm notice name:          @aurodesignsystem/webcorestylesheets
npm notice version:       4.8.0
npm notice filename:      @aurodesignsystem/webcorestylesheets-4.8.0.tgz
npm notice package size:  1.3 MB
npm notice unpacked size: 3.2 MB
npm notice shasum:        9fea1d4a848b07da26352cad02d8ce73d7cda712
npm notice integrity:     sha512-OqhYU9v4TLRTW[...]O/HTZzvX8pWpA==
npm notice total files:   127

The .npmignore still has references to .travis.yml
This config should also be updated so that we are simply bringing over the ./src directory and only processed files are in the ./dist dir.
Support request
Update the .npmignore to reduce the size of this package and increase install performance.
Exit criteria
This issue can be closed once there is an updated npm config and there is a demonstratable difference in bundle size.

With updated config
npm notice === Tarball Details ===
npm notice name:          @aurodesignsystem/webcorestylesheets
npm notice version:       4.8.0
npm notice filename:      aurodesignsystem-webcorestylesheets-4.8.0.tgz
npm notice package size:  42.3 kB
npm notice unpacked size: 228.9 kB
npm notice shasum:        35e31f9c45a9f8f6977312d42dcd4c957bba1ff3
npm notice integrity:     sha512-aTkmlhSHTa9+c[...]J3VCLC+ImYUzQ==
npm notice total files:   60
npm notice
aurodesignsystem-webcorestylesheets-4.8.0.tgz


Add some checks to avoid access of undefined

The 'Tab' did work on my browser, but I've removed it in the PR as u suggested.
I guess hte only interesting change here is commit b14479d which fixes the wheel scroll when inline editing in an grid.


Add a ServerAdminTool to control BlobStore

Add BlobStoreControl as a new type of Operation in ServerAdminTool.
Add new case and associated methods to send BlobStoreControlRequest.

Codecov Report

Merging #889 into master will decrease coverage by 0.03%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master     #889      +/-   ##
============================================
- Coverage     66.92%   66.89%   -0.04%
- Complexity     4241     4245       +4
============================================
  Files           356      356
  Lines         27791    27817      +26
  Branches       3528     3531       +3
============================================
+ Hits          18600    18609       +9
- Misses         8223     8246      +23
+ Partials        968      962       -6

Impacted Files
Coverage Δ
Complexity Δ

.../com.github.ambry/tools/admin/ServerAdminTool.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...in/java/com.github.ambry.store/BlobStoreStats.java
69.61% <0%> (-1.44%)
80% <0%> (-2%)

...b.ambry.network/BlockingChannelConnectionPool.java
63.47% <0%> (-1.31%)
8% <0%> (+1%)

...java/com.github.ambry.router/GetBlobOperation.java
91.06% <0%> (-0.21%)
34% <0%> (-1%)

...ain/java/com.github.ambry.router/PutOperation.java
90.72% <0%> (+0.6%)
83% <0%> (+1%)
:arrow_up:

...java/com.github.ambry.store/CompactionManager.java
87.85% <0%> (+0.71%)
19% <0%> (ø)
:arrow_down:

...ava/com.github.ambry.store/BlobStoreCompactor.java
93.54% <0%> (+1.11%)
122% <0%> (+3%)
:arrow_up:

.../java/com.github.ambry.router/DeleteOperation.java
93.23% <0%> (+1.5%)
44% <0%> (+1%)
:arrow_up:

.../src/main/java/com.github.ambry.store/Journal.java
91.37% <0%> (+1.72%)
20% <0%> (+1%)
:arrow_up:

...github.ambry.rest/AsyncRequestResponseHandler.java
90.87% <0%> (+2.28%)
23% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

@vgkholla Testing for stop/start blobstore is done in Perf cluster. Will send you the link of all the results.