Plotting annotations fix

closes #164
This PR fixes the issue reported in #164. The problem was that when filtering the anndata object it would result in an anndata object with potentially 0 rows. This PR checks whether the anndata object to be added to the metadata has 0 rows. If this is the case then the adata metadata is set to be None. Also if there is no table, adata will be none, but in addition region_key will also be None.
In addition to the implementation of @aeisenbarth this handles the case when a table is present, but there are no annotations for a given element.

I added a test that integrates the sdata_widget and adata view widget. Not certain whether we want to move these in a particular file or whether this is ok.

We're currently processing your upload.  This comment will be updated when the results are available.

Thanks @melonora for the fix! The bug that I have reported in https://github.com/scverse/napari-spatialdata/issues/164 is gone.
During my review I have anyway spotted two parts of the code to double check.
One is the use of a instance_key when in other equivalent parts of the code region_key was used.
The other is that I noticed that the current implementation is not robust against reordering of the rows of the table (as I show in the code below). I think that this can be fixed by replacing the function _get_metadata_adata() with a call of match_table_to_element() (https://github.com/scverse/spatialdata/blob/bf3377fd36f94ef51a233ae71312b1c28e978e6e/src/spatialdata/_core/query/relational_query.py#L134), which returns a table where the rows are reordered to match the element. Anyway, I can't exclude that the bug is caused by the strange use of instance_key that I commented above.
Here is the code to reproduce the behavior. The table is essentially the same, but the two visualizations are different.
##
from napari_spatialdata import Interactive
from spatialdata.datasets import blobs

sdata0 = blobs()
table0 = sdata0.table

table1 = table0.copy()
table1.obs = table1.obs.iloc[::-1]
sdata1 = blobs()
del sdata1.table
sdata1.table = table1

print(table0.obs['instance_id'])
print(table1.obs['instance_id'])
##
Interactive(sdata0)
Interactive(sdata1)

sdata0:

sdata1:

On this topic, @kevinyamauchi @giovp I think this bug is a symptom that we should drop region, region_key, instance_key altogether and just use the obs indices, and by limiting tables to annotate 0 or 1 spatial element, but not more than 1.

@melonora I have checked if this happens for circles and it seems it doesn't: the two plots are identical when sorting the rows. So it seems that the bug is not do to not using match_table_to_element() but to the use of instance_key where there should be region_key. I haven't verified this further yet.

I see, will look into it

Still trying to understand the reasons for the behavior observed above. Sharing some initial considerations.

in model.py, we should drop labels_key and call it instance_key https://github.com/melonora/napari-spatialdata/blob/fa33e6292b668b38ce7a7f2058740c989857ae08/src/napari_spatialdata/_model.py#L268;
labels_key is indeed used only for labels, as per this line self.model._labels_key = layer.metadata["region_key"] if isinstance(layer, Labels) else None from _view.py; https://github.com/melonora/napari-spatialdata/blob/fa33e6292b668b38ce7a7f2058740c989857ae08/src/napari_spatialdata/_view.py#L256
when we call region_key=.... instance_key... in line https://github.com/melonora/napari-spatialdata/blob/fa33e6292b668b38ce7a7f2058740c989857ae08/src/napari_spatialdata/_viewer.py#L234C8-L234C8, the error is not on the right hand side, but it is in the function argument, which should be called instance_key. Currently the region_key value is assigned to labels_key in model.py.
There is no place where the instance_key/labels_key is used to sort the rows of the table, so no surprise that after permuting the rows of the table the plots are wrong. But for some reasons for circles the plots is correct after permuting the rows. I haven't yet understood why.
We should do a deep cleaning of _model.py, it's full of legacy code that makes things messy.

Let's merge this PR as it is, since it fixes the case empty tables, and break the problem in two smaller ones. Let's make a PR for cleaning up _models.py and after that let's fix the plotting when the rows of the table are shuffled.


stackedArchitecture with Beamer

https://github.com/slovnicki/beamer so I was wondering is it possible to integrate beamer with stacked architecture since it wraps around the navigator 2.0 ?

@abdulahadfolio Hey, i got it working and then couldn't figure out how to abstract the navigation into a service that's injectable through the locator.
I'll spend some more time to figure it out when I get some time.

just wondering why is this closed do we have an implementation for web?


make http_endpoint optional

Hi,
This is a PR to make it possible to use the Zipkin plugin to propagate the trace context via Kong without sending the actual trace data to a remote Zipkin server. The use case for this is that we do not use the Zipkin UI to visualize traces - however we are still interested to correlate requests via trace information which we collect via log files. By making the http_endpoint configuration optional it makes it possible for us to use the out-of-the-box functionality of the plugin for the propagation without having to set up additional infrastructure to handle the collection of the actual trace data.

Merged in #94, with slight changes and tests. Thanks!


CRL has expired

After having worked splendidly for about half a year my piVPN server installation refuses connecting clients.  From the server log file, it seems that the CA certificate has expired. I have looked around and there are some guides how to renew it, but nothing specific for the piVPN installation, so it is not directly clear how to apply it.  Maybe this could be an option in the pivpn menu? Any suggestion how to resolve it?
Fri Jul 27 13:07:46 2018 us=790264 MULTI: multi_create_instance called
Fri Jul 27 13:07:46 2018 us=790712 <IP_ADDRESS>:53808 Re-using SSL/TLS context
Fri Jul 27 13:07:46 2018 us=790800 <IP_ADDRESS>:53808 LZO compression initializing
Fri Jul 27 13:07:46 2018 us=791129 <IP_ADDRESS>:53808 Control Channel MTU parms [ L:1622 D:1172 EF:78 EB:0 ET:0 EL:3 ]
Fri Jul 27 13:07:46 2018 us=791215 <IP_ADDRESS>:53808 Data Channel MTU parms [ L:1622 D:1450 EF:122 EB:406 ET:0 EL:3 ]
Fri Jul 27 13:07:46 2018 us=791412 <IP_ADDRESS>:53808 Local Options String (VER=V4): 'V4,dev-type tun,link-mtu 1570,tun-mtu 1500,proto UDPv4,comp-lzo,keydir $
Fri Jul 27 13:07:46 2018 us=791483 <IP_ADDRESS>:53808 Expected Remote Options String (VER=V4): 'V4,dev-type tun,link-mtu 1570,tun-mtu 1500,proto UDPv4,comp-l$
RFri Jul 27 13:07:46 2018 us=791670 <IP_ADDRESS>:53808 TLS: Initial packet from [AF_INET]<IP_ADDRESS>:53808, sid=e68cd7e3 4f098689
WRRWWRRWRFri Jul 27 13:07:46 2018 us=932679 <IP_ADDRESS>:53808 VERIFY ERROR: depth=0, error=CRL has expired: CN=XXXXXXX
Fri Jul 27 13:07:46 2018 us=932886 <IP_ADDRESS>:53808 OpenSSL: error:14089086:SSL routines:ssl3_get_client_certificate:certificate verify failed
Fri Jul 27 13:07:46 2018 us=932924 <IP_ADDRESS>:53808 TLS_ERROR: BIO read tls_read_plaintext error
Fri Jul 27 13:07:46 2018 us=932958 <IP_ADDRESS>:53808 TLS Error: TLS object -> incoming plaintext read error
Fri Jul 27 13:07:46 2018 us=932991 <IP_ADDRESS>:53808 TLS Error: TLS handshake failed
Fri Jul 27 13:07:46 2018 us=933160 <IP_ADDRESS>:53808 SIGUSR1[soft,tls-error] received, client-instance restarting

After changing som search terms I got the answer on this forum. Now the client can connect again without doing any changes to it .ovpn client file.  Maybe still could be useful to include as an option to the piVPN menu?
https://github.com/pivpn/pivpn/issues/343

Very useful, thanks! Had this problem last week and solved it by reinstalling pivpn. Wished to find a better way.

I am having this issue, I reinstall and issue still not solved ?
any ideas ?

I can now confirm that existing client will be able to connect again when the CRL "next update" date gets updated.

Thanks a lot for your help!

To check the expiration date, do:
sudo openssl crl -in crl.pem -text

On my side, I modified the file /etc/openvpn/easy-rsa/vars and added (see last line)

Thx a lot @ChristianTremblay, this solved the problem for me, too.

@thenktor Thank you for your help

@ChristianTremblay

On my side, I modified the file /etc/openvpn/easy-rsa/vars and added (see last line)

Hi i have a little issue with this fix. It works fine until reboot. Everytime i change the vars file and reboot, the changes are lost. What am i missing?
I have applied this fix on another raspi before and it worked just fine, even after reboot.


Favicon not found

link rel="shortcut icon" href="chrome-extension://afdgaoaclhkhemfkkkonemoapeinchel/data:image..."
The HTML element should be:
link rel="shortcut icon" href="data:image..."

Yeah, I had a look into this and fixed the bug in the dev branch (at the moment at main on github) so that'll be all fixed up next update. You should see it all fixed up after that :)


Encountered ValueError  during training

Hi!
It's really a nice work! But I'm facing a problem while training:

When training train.py with the command: python train.py chem --data_root Dataset/chem/ --preset synthesizer/presets/chem.json, it occurs to the ValueError: 'Multi-valued hyperparameters cannot be empty: all_test_images.' I can't find the hyperparameter throughout the code that named 'all_test_images'.
Am I Assigning the wrong values of 'name of run'? Is it a directory like '/Dataset/chem' or the random name that we gave such as 'chem'? I have tried the training with different 'name' values, such as 'chem', '/Dataset/chem' or '/Dataset/chem/preprocessed/', it didn't work, still report the same error.
Looking forward to your answer! Thanks a lot!

Hello
Can you please print the variable `all_test_images' and run your command and paste the printed output here?
I am suspecting that the data_root path specified is incorrect. That is, the script was unable to find test images. So, could you also do an ls inside the Dataset folder and the Dataset/chem folder and paste it here?

Thanks for your reply!
I'm afraid that the variable `all_test_images' is not defined in the code, it appeared out of the blue.

The contents of Dataset and Dataset/chem are as below:

I'm afraid that the variable `all_test_images' is not defined in the code, it appeared out of the blue.

https://github.com/Rudrabha/Lip2Wav/blob/5247a82aef611059fb8c176422e8bbd64f5d0bef/train.py#L19
Please also verify if there are images in the subfolders of the preprocessed folder.

Ohhh! I noticed that the code was downloaded in June 2nd, and now I have downloaded the latest version, there's no more question. Thanks for your patience again!!!


Please help me: No implementation found for method create on channel agora_rtc_engine

No implementation found for method create on channel agora_rtc_engine
I using the latest version
Devices:
Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19041.1415]
Error:
[ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method create on channel agora_rtc_engine)
#0      MethodChannel._invokeMethod
package:flutter/…/services/platform_channel.dart:165

#1      RtcEngine.createWithContext
package:agora_rtc_engine/src/rtc_engine.dart:161

#2      DesktopAppController.initPlatformState
package:live_window/…/controller/desktop_home_controller.dart:19

for windows? pls use the dev/flutter2-iris branch.

for windows? pls use the dev/flutter2-iris branch.

I can't pubget dev/flutter2

@LichKing-2234 thanks u <3. i'm will try


Added support for Laravel 5.3

dupe of #24

Thanks! Although I'm still getting the error messages when installing with composer:
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: remove illuminate/database v5.3.4
    - Conclusion: don't install illuminate/database v5.3.4
    - nanigans/single-table-inheritance 0.6.0 requires illuminate/database 5.2.* -> satisfiable by illuminate/database[v5.2.0, v5.2.19, v5.2.21, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.31, v5.2.32, v5.2.37, v5.2.43, v5.2.45, v5.2.6, v5.2.7].
    - nanigans/single-table-inheritance 0.6.1 requires illuminate/database 5.2.* -> satisfiable by illuminate/database[v5.2.0, v5.2.19, v5.2.21, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.31, v5.2.32, v5.2.37, v5.2.43, v5.2.45, v5.2.6, v5.2.7].
    - Can only install one of: illuminate/database[v5.2.0, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.19, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.21, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.24, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.25, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.26, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.27, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.28, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.31, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.32, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.37, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.43, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.45, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.6, v5.3.4].
    - Can only install one of: illuminate/database[v5.2.7, v5.3.4].
    - Installation request for illuminate/database (locked at v5.3.4, required as ^5.2) -> satisfiable by illuminate/database[v5.3.4].
    - Installation request for nanigans/single-table-inheritance 0.6.* -> satisfiable by nanigans/single-table-inheritance[0.6.0, 0.6.1].

Installation failed, reverting ./composer.json to its original content.

you probably need 0.7.0 which was just released.

Brilliant, many thanks!


fix: remove spurious newline

Not immediately obvious why, but causes the version string extraction
to break for upgrade script publication
https://github.com/supabase/postgres/actions/runs/8900354674/job/24441719357

d'oh, right, it would result in an empty line as well. Will make the script more resilient as well

@darora if you keep seeing the CI issue where the nix install runs out of space on the ci run, please let me know.


Add consumer metric reporting to PubSub.

Codecov Report

Merging #379 into master will increase coverage by 0.01%.
The diff coverage is 62.5%.

@@             Coverage Diff              @@
##             master     #379      +/-   ##
============================================
+ Coverage     47.23%   47.25%   +0.01%
  Complexity     2676     2676
============================================
  Files           639      639
  Lines         17177    17196      +19
  Branches       1248     1248
============================================
+ Hits           8114     8126      +12
- Misses         8596     8603       +7
  Partials        467      467

Impacted Files
Coverage Δ
Complexity Δ

...y/heroic/consumer/pubsub/PubSubConsumerModule.java
62.8% <100%> (ø)
5 <0> (ø)
:arrow_down:

...a/com/spotify/heroic/consumer/pubsub/Receiver.java
68% <60%> (-16.62%)
3 <1> (ø)

...com/spotify/heroic/consumer/pubsub/Connection.java
78.94% <62.5%> (-1.74%)
7 <0> (ø)

...e/src/main/java/com/spotify/heroic/HeroicCore.java
71.85% <0%> (+0.49%)
30% <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 caa752e...52ea06d. Read the comment docs.


SELinux should be permissive

SELinux should be permissive at the very least. This allows for quicker enablement with no need to relabel the filesystem to enable it again, and will still generate logs of policy violations to aid troubleshooting.

Done


Shouldn't the end user know better what font to use?

A counter point to #195
I don't think the website should change because someone is unable to read the default font they have set for their browser
I, for example, would much rather the website use my default font

Hm yes, but I think it's reasonable to think that someone would prefer to use another kind of font, like a serif...

My suggestion is to just remove the font-family rule in the stylesheet entirely
I tested on Firefox, Brave and Vimb
Brave (based on Chromium) and Vimb (based on WebKitGTK from what I understand) let you defined a general "default" font that will be used when no font is specified
Firefox lets you use either the serif or the sans-serif font as the default
So the user will be shown whatever is the default


[SPARK-39620][Web UI] Use same condition in history server page and API to filter applications

What changes were proposed in this pull request?
Updated REST API /api/v1/applications, to use the same condition as history server page to filter completed/incomplete applications.
Why are the changes needed?
When opening summary page, history server follows this logic:

If there's completed/incomplete application, page will add script in response, using AJAX to call the REST API to get the filtered list.
If there's no such application, page will only return a message telling nothing found.

Issue is that page and REST API are using different conditions to filter applications. In HistoryPage, an application is considered as completed as long as the last attempt is completed. But in ApplicationListResource, all attempts should be completed. This brings inconsistency and will cause issue in a corner case.
In driver, event queues have capacity to protect memory. When there's too many events, some of them will be dropped and the event log file will be incomplete. For an application with multiple attempts, there's possibility that the last attempt is completed, but the previous attempts is considered as incomplete due to loss of application end event.
For this type of application, page thinks it is completed, but the API thinks it is still running. When opening summary page:

When checking completed applications, page will call script, but API returns nothing.
When checking incomplete applications, page returns nothing.

So the user won't be able to see this app in history server.
Does this PR introduce any user-facing change?
Yes, there will be a change on /api/v1/applications API and history server summary page.
When calling API, for application mentioned above, previously it is considered as running. After the change it is considered as completed. So the result will be different using same filter. But this change should be OK. Because attempts are executed sequentially and incrementally. So if an attempt with bigger ID is completed, the previous attempts can be considered as completed.
For history server summary page, previously user is not able to see the application. Now it will appear in the completed applications.
How was this patch tested?
Add a new unit test HistoryServerPageSuite, which will check whether HistoryPage behaves the same as ApplicationListResource when filtering applications. To implement the test, there's a minor change of HistoryPage, exposing a method called shouldDisplayApplications to tell whether the summary page will display applications.
The test verifies that:

If no completed/incomplete application found, HistoryPage should not display applications, and API should return an empty list.
Otherwise, HistoryPage should display applications, and API should return a non-empty list.

Currently 2 scenarios are included:

Application with last attempt completed but previous attempt incomplete.
Application with last attempt incomplete but previous attempt completed.

Can one of the admins verify this patch?

Hm, can you try retriggering tests? I'm not clear if it's related

Hm, can you try retriggering tests? I'm not clear if it's related

Have rerun the test. Checks have passed.

Merged to master


Potential bug: Incompatibility with NumPy 2.0 leads to AttributeError

Description
The recent upgrade to NumPy 2.0.0 introduces a breaking change due to the removal of np.sctypes. This update has resulted in deepsensor raising an AttributeError upon import when paired with the new version of NumPy. This indicates that the current deepsensor codebase is not compatible with NumPy 2.0.0's updated API, causing it to break. Indeed, the documentation for NumPy 2.0.0 indicates that np.sctypes has indeed been removed from the namespace:
https://numpy.org/devdocs/numpy_2_0_migration_guide.html#changes-to-namespaces
Here is the full traceback received after trying to import deepsensor.torch:
Traceback (most recent call last):
  File "~/DeepSensor/NumPy-issue/deepsensor_numpy_test.py", line 1, in <module>
    import deepsensor.torch
  File "~/deepsensor_numpy_test/lib/python3.10/site-packages/deepsensor/__init__.py", line 20, in <module>
    from .data.processor import DataProcessor
  File "~/deepsensor_numpy_test/lib/python3.10/site-packages/deepsensor/data/__init__.py", line 2, in <module>
    from .loader import TaskLoader
  File "~/deepsensor_numpy_test/lib/python3.10/site-packages/deepsensor/data/loader.py", line 1, in <module>
    from deepsensor.data.task import Task, flatten_X
  File "~/deepsensor_numpy_test/lib/python3.10/site-packages/deepsensor/data/task.py", line 5, in <module>
    import lab as B
  File "~/deepsensor_numpy_test/lib/python3.10/site-packages/lab/__init__.py", line 9, in <module>
    from .generic import *
  File "~/deepsensor_numpy_test/lib/python3.10/site-packages/lab/generic.py", line 11, in <module>
    from .types import (
  File "~/deepsensor_numpy_test/lib/python3.10/site-packages/lab/types.py", line 99, in <module>
    Int = Union[tuple([int, Dimension] + np.sctypes["int"] + np.sctypes["uint"])]
  File "~/deepsensor_numpy_test/lib/python3.10/site-packages/numpy/__init__.py", line 397, in __getattr__
    raise AttributeError(
AttributeError: `np.sctypes` was removed in the NumPy 2.0 release. Access dtypes explicitly instead.. Did you mean: 'dtypes'?

Sorry to be the bearer of bad news @wesselb, but the error seems to come from the lab package when it tries to access a numpy function. This breaking change, which has also broken lab, could be reported as a separate issue here:
https://github.com/wesselb/lab/issues
This error will affect users who pip install deepsensor using the repository in its current form. One straightforward solution would be pinning the NumPy version in the requirements/requirements*.txt files to the most recent compatible version (i.e. numpy<=1.26.4 or numpy<2).
Reproduction steps
1. Create a new virtual environment for testing (e.g. `deepsensor_numpy_test`, as seen above)
2. pip install `deepsensor` 0.3.6 and its dependencies (including NumPy 2.0.0)
3. Try to import deepsensor code (e.g. `import deepsensor.torch`)
4. Get the Traceback shown above

Version
I am using python 3.10.9. Here is a truncated package list from pip list for completeness:
dask                     2024.6.2
deepsensor               0.3.6
matplotlib               3.9.0
netCDF4                  1.7.1
NeuralProcesses          0.2.6
numpy                    2.0.0
pandas                   2.2.2
pip                      24.1
scikit-learn             1.5.0
scipy                    1.13.1
seaborn                  0.13.2
torch                    2.3.0
xarray                   2024.6.0

The breaking change appears to affect the lab package, which is not pip installed. I found the version number in my virtual environment here: ~/deepsensor_numpy_test/lib/python3.10/site-packages/lab/_version.py, indicating that I'm using the latest version of lab==1.6.5.
OS
Linux

Posted a related issue for the lab package here:
https://github.com/wesselb/lab/issues/20

This should be fixed in v1.6.6.

Thanks, @wesselb. I updated to numpy==2.0.0 and backends==1.6.6, and the AttributeError did not appear again, so that's good news.
Unfortunately, there is a new error when you run import deepsensor.torch:
Traceback (most recent call last):
  File "/home/dannes/DeepSensor/NumPy-issue/deepsensor_numpy_test.py", line 1, in <module>
    import deepsensor.torch
  File "/home/dannes/deepsensor_numpy_test/lib/python3.10/site-packages/deepsensor/__init__.py", l
ine 20, in <module>
    from .data.processor import DataProcessor
  File "/home/dannes/deepsensor_numpy_test/lib/python3.10/site-packages/deepsensor/data/__init__.p
y", line 2, in <module>
    from .loader import TaskLoader
  File "/home/dannes/deepsensor_numpy_test/lib/python3.10/site-packages/deepsensor/data/loader.py"
, line 1, in <module>
    from deepsensor.data.task import Task, flatten_X
  File "/home/dannes/deepsensor_numpy_test/lib/python3.10/site-packages/deepsensor/data/task.py",
line 5, in <module>
    import lab as B
  File "/home/dannes/deepsensor_numpy_test/lib/python3.10/site-packages/lab/__init__.py", line 9,
in <module>
    from .generic import *
  File "/home/dannes/deepsensor_numpy_test/lib/python3.10/site-packages/lab/generic.py", line 11,
in <module>
    from .types import (
  File "/home/dannes/deepsensor_numpy_test/lib/python3.10/site-packages/lab/types.py", line 99, in
 <module>
    Int = Union[tuple([int, Dimension] + np.dtypes["int"] + np.dtypes["uint"])]
TypeError: 'module' object is not subscriptable

I hate to suggest it, but I wonder if migrating to NumPy 2.0 will be a moderately big undertaking? There were a lot of changes. Anything I can do to support this effort?

@DaniJonesOcean Are you sure that you are running backends==1.6.6? The line that the traceback is showing corresponds to an older version. C.f., these are the current line 99 and surrounding lines:
# Numeric types:
Int = Union[tuple([int, Dimension] + np.core.sctypes["int"] + np.core.sctypes["uint"])]
Int = set_union_alias(Int, "B.Int")
Float = Union[tuple([float] + np.core.sctypes["float"])]

I hate to suggest it, but I wonder if migrating to NumPy 2.0 will be a moderately big undertaking? There were a lot of changes. Anything I can do to support this effort?

Possibly this is the case, yes. :( I'm currently unable to locally run PyTorch 2.3, which is required for NumPy 2, so this is difficult to debug. Any help would be greatly appreciated!

@wesselb When I run pip list, I get the following:
> pip list | grep backends
backends                 1.6.6
backends-matrix          1.3.0

So at least as far as pip is concerned, I'm running backends==1.6.6. (Full disclosure: I'm not really familiar with how packages like lab are bundled together under something like backends. So I might be missing something.)

Possibly this is the case, yes. :( I'm currently unable to locally run PyTorch 2.3, which is required for NumPy 2, so this is difficult to debug. Any help would be greatly appreciated!

I'll do what I can! Maybe other can hop in and assist as well?

@DaniJonesOcean Could you try reinstalling in a fresh environment? This looks like something has gone wrong. Line 99, which gives the error, isn't what it should be (I double checked the package on PyPI).

I'll do what I can! Maybe other can hop in and assist as well?

Thank you! :) Once a little bit of time frees up for me, I should be able to start digging into this too.

@DaniJonesOcean, I've digged into this, and I think backends==1.6.6 should be compatible with NumPy 2.0. There is one incompability in a dependency fdm. You can locally hotfix this as follows:
virtualenv -p python3.9 venv
. ./venv/bin/activate
pip install torch neuralprocesses
sed -i 's/np\.math/np/g' ./venv/lib/python3.9/site-packages/fdm/fdm.py
sed -i 's/np\.factorial/math.factorial/g' ./venv/lib/python3.9/site-packages/fdm/fdm.py
sed -i '1s/^/import math\n/' ./venv/lib/python3.9/site-packages/fdm/fdm.py

After this, the following snippet should run correctly:
import numpy as np
import torch

import neuralprocesses.torch as nps

print(np.__version__)  # 2.0.0
print(torch.__version__)  # 2.3.1+cu121

model = nps.construct_convgnp()
pred = model(torch.randn(1, 1, 4), torch.randn(1, 1, 4), torch.randn(1, 1, 10))

# Runs OK!

I will release a fix for fdm soon. For the moment, you can use the above hotfix.

Fantastic, thank you @wesselb!

@wesselb thanks for looking into this - can we close now?

@tom-andersson Ouch, this definitely fell off my radar. I've made some initial progress, but the issue hasn't yet been solved. Let push this back up on my priority list again.

I've opened a PR on fdm to hopefully go towards fixing this issue.

@davidwilby I've released a new version v0.5.0 which includes your PR. Thanks again for putting together a PR for this!! @DaniJonesOcean, would you be able to test if that fixed the problem for you?

I can confirm that the problem seems to be fixed!
My test:

Create a new python environment (deepsensor-test-env)
pip install deepsensor torch
In python3, run import deepsensor.torch

And the code successfully imports! That's the extent of my testing at the moment. There is a warning that is raised, but it looks unrelated:
/Users/dannes/DeepSensor/deepsensor-test/deepsensor-test-env/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
  warnings.warn(

@wesselb and @davidwilby, thanks so much for working on this! I'm glad to see this working again.  : )

(Personally, I'm happy for this issue to be closed when you're ready)

@DaniJonesOcean, that's great to hear! Thanks again, @davidwilby. :) Since the problem seems to be fixed, I think the issue can be closed, so I'll go ahead and do that. :)

@all-contributors please add @DaniJonesOcean for bug


[Windows]TNB ver_30 Special symbols and blank space not allowed in my accounts

Bug Description
A clear and concise description of what the bug is.
Steps to Reproduce
Steps to reproduce the behavior:

Launch the TNB manager app
Click on my accounts (+)
Select create new account
Give nick name "@#$%^^&  ^&*"
click on create button

Expected behavior
Doesn't allowed special symbols as a my accounts
Actual behavior
special symbols and blank space allowed as a my accounts
Screenshots/Recordings
https://prnt.sc/vo6jm8
OS and Browser

OS: Windows
Browser  Chrome

Special symbols are fine for nicknames.

Special symbols are fine for nicknames.


charset: sort the charset by its name

What problem does this PR solve?
What is changed and how it works?
just sort the charset by its name.
Check List
Tests

Unit test

/merge


Use cors on static files only?

I have the following line in my code:
app.use(express.static("public", { maxAge: "1h" }));

Ideally, I'd only allow cors on this route. What would be a good way to do that?

As per the express documentation:

app.use([path,] callback [, callback...])

app.use(cors(options), express.static("public", { maxAge: "1h" }));


Dev mode assertions

We want to be able to perform certain assertions during development mode that are stripped out in prod mode.
Valid component structure

[ ] Sidenav
[ ] Cards

a11y

[ ] Progress bar and circle have descriptions
[ ] Buttons have text or a label
[ ] Inputs / checkboxes / radio buttons have a label.

(add more to this issue as we encounter them)

cc @chuckjaz is this something you might be interesting in driving at some point over the next couple of quarters?

Might be something that the new TypeScript transformer pipeline could help with

Yes. We should consider implementing a generic way to detect when to remove annotations.

One accessibility check we could have, allow below:
<mat-button-toggle [aria-label]="foo"></mat-button-toggle>
<mat-button-toggle aria-label="{{foo}}"></mat-button-toggle>
<mat-button-toggle aria-label="some string"></mat-button-toggle>
While we disallow below:
<mat-button-toggle [attr.aria-label]="foo"></mat-button-toggle>


Causal values interpretation

Hi, Kindly help with the interpretation of the causal influence values estimated/predicted by the PC timeseries algo..
In the example given in  this document url,   the causal parents predicted are  [('5', -3), ('2', -1)] .
How should we interpret these causal strengths?
For instance, for a target vertex "0",

Would this mean that parent "5" with value -3 has a much weaker causal influence than the parent '2'  with value -1 ?  Does negative values indicate a weaker causal influence ?

Is there a min-max numeric range for the predicted causal values like -10 to  +10 ?

Thank you in advance.

Hi nsankar, the list of predicted parents [('5', -3), ('2', -1)] implies that the following nodes are the parents of variable 0:

node number 5 at time step t-3 from the current time step t.
node number 2 at time step t-1 from the current time step t.
This list does not contain the strength of the causal links. If you are interested in finding the strength of the discovered causal links, you can look at result['value_dict']. It contains a dictionary, where keys are the node names (or IDs), and the corresponding value can be interpreted as the strength of the causal link.


Added TypeScript definition for lz-string module

Added a TypeScript definition file (*.d.ts) for the lz-string main library. The interface is pretty basic but provides IntelliSense support and type safety.
https://typescript.codeplex.com/wikipage?title=Writing Definition (.d.ts) Files
I am thinking about adding typings to the lz-string library itself. What are your feelings about this step? Before I put any work into this, I want to be sure it is welcome.

Thanks for the pull request. I'll do a release most likely this weekend.


Generalize UI components

Create a ui package as a subset of the menu package. This should include the following UI components:

uiComponent interface which defines the basics of each type of UI component (position, size)
button
uiList (scrollable)

SpaceObjectList
ButtonList

textInput

This is sort of a sub-issue of #49

I'm reconsidering whether or not this is necessary.

Closing this for now, may be reopened later.


[Feature Request] Array assignment using temporary value

Is your feature request related to a problem? Please describe.
Currently to assign new values to an existing array, user has to declare and initialize new array and assign it to an existing one: godbolt
float4 main() : SV_TARGET
{
    int arr[4] = {0, 0, 0, 0};
    int arr2[4] = {1,0,1,0};
    arr = arr2;
    return float4(arr[0], arr[1], arr[2], arr[3]);
}

Not being able to assign array temporary in this case can cause confusion as can be seen for example here and here.  GLSL supports this kind of assignment fwiw.
Describe the solution you'd like
The solution would be to support assigning array temporaries. In that case, this would compile:
float4 main() : SV_TARGET
{
    int arr[4] = {0, 0, 0, 0};
    arr = int[4]{1,0,1,0};
    return float4(arr[0], arr[1], arr[2], arr[3]);
}

It could also be written as  arr = {1,0,1,0}; and arr = int[]{1,0,1,0};
Describe alternatives you've considered
The alternative would be to do what glslcc does when cross compiling glsl to hlsl, declare static const array and assign it to an array.

Thanks for the suggestion - I've moved this to hlsl-specs which is where we track proposed changes to the HLSL language.

We'll need to figure out a stance on this request when we come to adding more complete pointer support.

Would be useful for https://github.com/microsoft/DirectXShaderCompiler/issues/5823


I think this lib doesn't recognize opacity

Trying to export a c3js chart, first I'm creating a rect filled with white color before the chart so it doesn't render it grey, but as you can see, there are these black areas which display as white on the HTML
http://i.imgur.com/YWs0zjL.png

Also the XY axis are much thicker, very strange...

I use saveSvgAsPng to save some charts I make using d3.js. I found that I have to manually set some styles even if they appear the way I want them to by default in the browser if I want them to also appear that way when exported by saveSvgAsPng. For example I manually set:
.style('font-family', 'Fira Sans')
.style('font-size', 12)

for I am creating with d3.js even though they already appeared the way I wanted them in the browser. Those .style statements made the font styles persist into the exported png. So maybe try setting the axis thickness and area fill colours manually and see if that helps.

@thelinuxlich The black areas are caused by the default fill on paths. Set the fill attribute or CSS to none on those elements and it should solve the problem.
Does the in-browser SVG version of the chart show the black areas, or only the saved image?
If only the saved image shows the black areas, then the save function isn't getting cleared fill style for some reason.

hi,
you have to use selectorRemap option to git rid of black areas and XY axis issue.
for example :
saveSvgAsPng(document.getElementById('test'), 'test.png', {
  selectorRemap: function(s) {return s.replace(/.c3 /g, '')}
});

Another issue with c3js charts is that the axis labels don't have the good font, which is define in :
.c3 svg {
  font: 10px sans-serif; }

But i didn't found a solution for this issue.
(sorry for my english, hope that my answer is still understandable)

Hi,
I have a similar issue with the c3 chart styles where the c3 styles that are included in the rendered chart are not getting translated into the png. Would you be able to provide an example to use selectorRemap and modifyStyle to resolve the issue to get the in-browser styles to the saved png?
thanks.


Select the dimension in which the (boundary) coefficients are projected

….When using a vector grid function, it was not possible to specify a subset of the components of the vectors in which you want to project the coefficients and only a full array for all dimensions had to be passed. This is important if you have a problem with essential boundary conditions only along some axes and you do not want to overwrite the solution along the other axes for example.
The proposed fix does not add a special method for that, but only checks if the pointers to the coefficients are not NULL and do not project anything to that component in that case.  Moreover, it serves as a protection against dereferencing NULL pointers.

Thanks @najlkin, good PR!


Register stats directories with Rails::CodeStatistics.register_directory

Rails main uses Thor for the bin/rails stats command instead of
Rake. This means stats directories need to be added in the Railtie.
The global constant STATS_DIRECTORIES defined by Rails, has been
deprecated in favor of Rails::CodeStatistics.register_directory.
https://github.com/rails/rails/blob/8c7754dfdf39ed94cc93bbc40ee721c311b6d32c/railties/CHANGELOG.md?plain=1#L1-L11

I'm going to close this in favour of #2784 but can you double check for me that my refactored implementation meets your needs?

Fix for this released in 6.1.5 and later


Permissions issue on Heroku Deploy. Attributes not passed via git.

Which operating system and version is the project developed on?
Linux (general)
Which version of ruby is the project developed on?
2.2.3
Which version of npm is the project developed on?
3.10.8
Which version of ember-cli is the project developed on?
1.13.13
What is the rails version?
4.2
What is the ember-cli-rails version (from Gemfile)?
0.8.3
What is the ember-cli-rails-addon version (from package.json)?
"rondale-sc/ember-cli-rails-addon"
Is your application server multi-threaded
(such as puma and unicorn) or is it multi-process (such as thin and webrick)?
Puma
How is the application deployed?
Manual Heroku Deploy
Issue
Alright, now that I got through all of that. I'm trying to convert a capistrano deploy over to heroku. Updated ember-cli-rails, ran the heroku generator, set build packs, pushed to heroku.
I get this error:
remote:        > undefined postinstall /tmp/build_2fc013553dfb362c78bacfaf58530cdb
remote:        > ./bin/heroku_install
remote:
remote:        sh: 1: ./bin/heroku_install: Permission denied
remote:
remote:        npm ERR! Linux 3.13.0-105-generic
remote:        npm ERR! argv "/tmp/build_2fc013553dfb362c78bacfaf58530cdb/.heroku/node/bin/node" "/tmp/build_2fc013553dfb362c78bacfaf58530cdb/.heroku/node/bin/npm" "install" "--unsafe-perm" "--userconfig" "/tmp/build_2fc013553dfb362c78bacfaf58530cdb/.npmrc"
remote:        npm ERR! node v6.9.1
remote:        npm ERR! npm  v3.10.8
remote:        npm ERR! code ELIFECYCLE
remote:        npm ERR! undefined postinstall: `./bin/heroku_install`
remote:        npm ERR! Exit status 126

Or, in other words, it's getting a permission denied on ./bin/heroku_install
I thought, well maybe it's an issue with permissions, but an ls -l returns:
ls -l ./bin/
total 16
-rwxrwxr-x 1 kayakyakr kayakyakr 129 Oct 11 19:04 bundle
-rwxrwxr-x 1 kayakyakr kayakyakr 157 Jan 24 10:30 heroku_install
-rwxrwxr-x 1 kayakyakr kayakyakr 146 Oct 11 19:04 rails
-rwxrwxr-x 1 kayakyakr kayakyakr  90 Oct 11 19:04 rake

So I determined this is an issue with passing permissions through git. I modified package.json to look like:
{
  "scripts": {
    "postinstall": [
      "chmod a+x bin/heroku_install",
      "./bin/heroku_install"
    ]
  },
  "devDependencies": {
    "bower": "*"
  },
  "cacheDirectories": [
    "home/node_modules",
    "home/bower_components",
    "node_modules"
  ]
}

which forced the permission change on postdeploy itself and it worked. So that'd be my suggestion to deal with this issue hitting various people.

@kayakyakr thanks for opening this issue!
I've created https://github.com/thoughtbot/ember-cli-rails/pull/512.
Could you take a look at it and modify your application's package.json to us sh instead of ./, then report back here with the results?

That seems to work as well, Sean. Cleaner an implementation, too.


Wiz Support

I noticed that there is no real NuGet package for Phillips Wiz, which is a hub-less light that Phillips sells. The light discovery is IP based and it seems the light configuration is very similar to Hue. Would you be interested in a pull request to support Wiz if I can make it work?

I didn't know about Philips Wiz, and I don't have access to any Philips Wiz hardware. If it's included in this project, people will come to me for support, questions, bugs etc and I won't be able to help them.
So it's best to create a new seperate project and NuGet package that targets the Philips Wiz products.
I'll be happy to include a link to your project.

I didn't know about Philips Wiz, and I don't have access to any Philips Wiz hardware. If it's included in this project, people will come to me for support, questions, bugs etc and I won't be able to help them.
So it's best to create a new seperate project and NuGet package that targets the Philips Wiz products.
I'll be happy to include a link to your project.


Change order of replacing old connection with new one in ForceReconnect

Purpose

This PR aims to address issue #38

Pull Request Type
What kind of change does this Pull Request introduce?

[X] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

Other Information

One other note is it might be valuable to create a new issue along the way of merging this PR and closing #38 to capture the last point that isn't yet resolved by this PR:

3. Dispose old connection - this one can still cause problems to any thread still using the connection, not sure what to do with it.

Tested force connect manually, ran all the samples successfully


Briefing on dev dependency tracking

What is it?
How do we get all the dependency data and link it to projects?

@ccerv1 can you clarify the scope of this issue?
I think we still need an issue for GitHub repo => package dependencies.
We only have package => package dependencies atm.

Dependency Tracking Project Update
Objective
The main goal of this project is to create a comprehensive graph that shows:

Which developer tools are being used by Optimism projects (both onchain projects and other OSS tools)
When these projects started using these tools

From the graph, we can easily analyze downstream impact associated with these tools, including:

Number of dependents
Downstream gas fees
Downstream active developers
etc.

Requisite Data Sources

deps.dev dataset:

Maintained by Google
Covers various package managers (NPM, Go, Maven, Python, Rust/Cargo)
Available in BigQuery (full dataset ~45 terabytes)

GitHub data:

Software Bill of Materials (SBOM) for relevant projects
Shows which repositories import specific packages (e.g., Ethers) into their package.json or requirements

Onchain project data:

List of projects identified as being part of Optimism (e.g., in OP Atlas)
Potential to expand to other relevant projects that haven't signed up for Retro Funding (e.g., all of OSO projects)

NPM standard metrics:

Downloads
Releases

Progress

Created a snapshot of the deps.dev dependency graph:

Focused on the last month of data
Limited to first-level (direct) dependencies
Currently only looking at NPM packages
Snapshot size: ~35 gigabytes

Developed a preliminary deps.dev query to match Optimism projects with their dependencies:

Caveat: this only identifies projects with packages that include another package, so this doesn't capture applications that  simply include the package in their dependencies
Ethers had 60 matches (out of 500+ Optimism projects on OSO)
Results include both web3-specific packages (e.g., Ethers, Viem, OpenZeppelin) and general-purpose packages (e.g., Axios, Lodash, React)

Next Steps

Incorporate GitHub SBOM data:

Extract and process SBOM data for relevant projects
Identify which repos using specific packages (e.g., Ethers) are associated with the Optimism ecosystem

Improve project identification:

Review the matching process to identify more potential projects
Consider including projects with active contracts that aren't yet in OSO or OP Atlast

Deduplicate results:

Remove duplicate entries pointing to the same GitHub organization (e.g., Ethers and Ethers project)

Integrate NPM metrics:

Incorporate download statistics, release information, and other relevant metrics from NPM

Expand data sources:

Consider including Python and Rust packages in the analysis
Explore ways to efficiently query the full deps.dev dataset for more comprehensive results

Metrics implementation:

Create a long list of potential metrics
Work with badgeholders to refine list of metrics


tag project with remarkable-tablet

In an effort to make projects for the reMarkable tablet easier to find on GitHub, a common topic named remarkable-tablet has been established (See reHackable/awesome-reMarkable#1).
It would be awesome if you could tag this project with the remarkable-tablet topic.
There's more info on Classifying your repository with topics available in the GitHub help.
A list of already tagged projects can be found here: Projects in Topic remarkable-tablet.

Thank you for the great suggestion. I added remarkable-tablet to the project topics.


Invalid value for master_password (cannot contain [/@"' ])

Description
When creating a new Redshift cluster, I am facing the following error when using the attribute create_random_password = true
│ Error: invalid value for master_password (cannot contain [/@"' ])
│
│   with module.redshift_dwh.aws_redshift_cluster.this[0],
│   on .terraform/modules/redshift_dwh/main.tf line 62, in resource "aws_redshift_cluster" "this":
│   62:   master_password                  = var.snapshot_identifier != null ? null : local.master_password
│
╵

Versions

Module version [Required]: 4.0.2

Terraform version: v1.2.6

Provider version(s): registry.terraform.io/hashicorp/aws v4.33.0

Reproduction Code [Required]
module "redshift" {
  source  = "terraform-aws-modules/redshift/aws"
  version = "4.0.2"

  node_type = "dc2.large"

  master_username        = "redshift"
  create_random_password = true

Expected behavior

The attribute create_random_password = true helps creating the password automatically.
Actual behavior

The randomized password has special characters that Redshift does not allow for creation.
Additional context

For workaround, I have done as follows

added a custom random_password resource to remove special characters.
set create_random_password = false
manually set master_password with reference to my custom random_password resource

closed in #72


Rotation Support

For the game I am making, I need sprites to be able to rotate.
Could this feature be added to the library?

Yes, it can be implemented, but it should be a part of Transform2D and have all stuff like parent -> child rotation computations OR foundation should refuse to use 2D and instead use all 3D Unity.Transform components and instead of constructing matrix in shader just pass it in. So I need to think what is a better way.
If you want it right here and now, then you can implement it by yourself.
There are 3 possible ways I can imagine of how it can be done. (as a shader reference I will use https://github.com/Antoshidza/NSprites-Foundation/blob/main/Graphics/Regular Render/RegularNSprites_Shader.shader)

Sending rotation float4 struct to StructuredBuffer<float4> in your shader and then in setup function apply this structure as a rotation (quaternion) in float4x4 matrix construction. Though I'm not sure of how to apply rotation to matrix (seems we can use this as an example)
Using unity buil-in Unity.Transform systems to have float4x4 matrix and pass this value to shader (in this way all we need is to just stop using Transform2D from this foundation and use built-in solution + register it's matrix component as instanced, if I'm not mistaken it called something like LocalToWorld)
Constructing 2D matrix as it goes in built-in Unity.Transforms matrix but only for 2D needs. It can be smaller matrix or just leave unused 4x4 matrix components in default values. Then as previous way says - pass it in shader as StructuredBuffer<float4x4>.

After a bit thinking I've decide that

If you want to use 2D it is better to implement 2D rotation to avoid passing and allocate unnecessary data + still possible to do this
If you want to use 3D then it is better to stick with unity's Unity.Transforms and register theirs components as instanced components for NSprites.

What type of game you developing? 2D / 2,5D / 3D ?

Hi, the game I'm currently making is 2d. If you want an idea of what I'm trying to make, think reassembly, but way bigger.

After some fiddeling around, I've got it to work on my fork https://github.com/JeroenoBoy/Fundering

That's good. I've been on vacation, so no can return to work. I need to complete authoring refactoring, and then merge your changes, because I see that you also find and fix those bugs.

From now this package allows rotations (merged)


Code cleanups, take two

This PR contains a4b020a from #57 plus another couple of minor fixes.
It omits the more controversial 1449745 from that PR.

Thanks! More fixes on the way, or may I merge this?

Good to merge.


Create CI Workflow for visual regression testing

The docusaurus site has an interesting suggestion for setting up an automated visual regression testing workflow. See here..
https://docusaurus.io/blog/upgrading-frontend-dependencies-with-confidence-using-visual-regression-testing
This might be something we want to add.

Hi @hexsecs I can do this!

@devilkiller-ag - Awesome! I'll assign to you.

@hexsecs Kindly check the PR I have created

@hexsecs Kindly check the PR I have created

Thanks! We'll take a look!


Make dependencies less restrictive

I've noticed that dependencies were incorrect because
https://github.com/yourlabs/django-autocomplete-light/tree/3.2.2
don't support django 2.0 :( first mention about django 2.0 is here:
https://github.com/yourlabs/django-autocomplete-light/tree/3.3.4
Pinning dependencies for libraries is bad pattern, it causes conflicts. I'm not sure if what I made is not too loose, but should still be an improvement.
Tested locally on
django==2.0.13
django-autocomplete-light==3.3.5

@Alexander3 I believe this is done for testing only - the requirements.txt file for the repo is not used for the dependency pinning of the library, which is done by install_requires in setup.py.


Using environment variables in idf_component.yml causes error (IDFGH-12061) (PACMAN-799)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.3-dev-1922-g5454d37d49
Operating System used.
macOS
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
None
What is the expected behavior?
The rules test is supposed to work if I am reading the documentation correctly?
What is the actual behavior?
When building the application, 4 errors are generated right at the start.
https://docs.espressif.com/projects/idf-component-manager/en/latest/reference/manifest_file.html#environment-variables-in-manifest specifies that environment variables can be used in values, not sure if that implies or excludes values used in conditional rules.
Steps to reproduce.
Example idf_component.yml:
  idf:
    version: ">=5.2.0"
  espressif/esp_lvgl_port:
    version: ">=1.4.0"
  led_strip:
    version: ">=2.5.3"
  jsmn:
    version: ">=1.1.0"
  joltwallet/littlefs:
    version: ">=1.14.0"
  lvgl/lvgl:
    version: ">=1.4.0"
    path: ../../../z-repo/lvgl
  espressif/esp_wrover_kit:
    version: ">=1.5.0~2"
    rules:
      - if: target == esp32 && ${cmakeMODEL} in [ dk41 ]

Build or installation Logs.
CMake Error at /Users/andremaree/DevSpace/z-sdk/esp-idf.v5x/tools/cmake/build.cmake:544 (message):
  ERROR: 4 problems were found in the manifest file
  /Users/andremaree/DevSpace/z-projects/irmacs/main/idf_component.yml:

  Invalid manifest format

  Invalid dependency format

  Dependency version spec format is invalid

  Invalid if clause format "ac00 in [ dk41 ]".  You can specify rules based
  on current ESP-IDF version or target like: "idf_version >=3.3,<5.0" or
  "target in [esp32, esp32c3]"

  Documentation:
  https://docs.espressif.com/projects/idf-component-manager/en/latest/reference/manifest_file.html#rules

More Information.
No response

Hello @ammaree
Thank you for opening the issue,
The documentation doesn't say it clearly enough, but the if clause only supports idf_version and target in the left of comparison.
Since we introduced support for environment variables in the manifest, we may remove this limitation, but I cannot give an exact timeline right now.
As an ugly workaround, maybe you can “misuse” idf_version in the rule. (Please don't tell anyone I suggested this)
something like:
...
    rules:
      - if: target == esp32 && idf_target ${cmakeMODEL_esp_wrover_kit} 1.0.0

And set cmakeMODEL_esp_wrover_kit to > or <. You also need to write some logic in the project level CMakeLists.txt to define this environment variable. This is definitely not a nice solution, but I cannot come up with anything better right now.

@kumekay
Thanks for the feedback, have made the changes you suggested and it works.
Challenge now is that our options for dynamically selecting components are VERY limited using this mechanisms. We currently have 4 different components of which 1 or sometimes 2 need to be included based on the hardware platform and  library selected, so no way we can solve the problem effectively using this.
Any idea what can be done to try and speed up the process for broader support of environment variables in the manifest?
It will make a huge difference to our ability to optimise the build process, and remove some complexity.....

@ammaree We had an internal discussion, and we will include this feature in the coming major release next month. Then the syntax like && ${cmakeMODEL} in [ dk41 ] should work.
But unfortunately, I don't have a better solution right now

@kumekay
Thanks for the feedback. If the patch is reasonably simple you are welcome to send me the patch to try prior to official release.
Working without the functionality continues to be a big pain so happy to be your guinea pig.

@ammaree Sure, we will mention it in this issue as soon as it is available

@kumekay
Any update on this functionality, please .......

Hello @ammaree
To make this possible (and fix a few other issues) we are refactoring the whole processing of manifest files, so the change turned out to be massive. However, it's close to being done, you may expect it on GitHub next week.

Thanks, I will be monitoring this thread for good news...

@ammaree  I apologize, but the path wasn't merged yet, I'll keep you updated.

Please, sooner the better…
On 24/04/22, 10:52, "Sergei Silnov"<EMAIL_ADDRESS>wrote:
@ammareehttps://github.com/ammaree I apologize, but the path wasn't merged yet, I'll keep you updated.
—
Reply to this email directly, view it on GitHubhttps://github.com/espressif/idf-component-manager/issues/53#issuecomment-2068848800, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAYT7GAODZ3VFGEGGGO22HLY6TFV7AVCNFSM6AAAAABC4YGVYCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRYHA2DQOBQGA.
You are receiving this because you were mentioned.Message ID: @.***>

@ammaree
Current main can support this https://github.com/espressif/idf-component-manager?tab=readme-ov-file#installing-a-development-version-of-the-component-manager
Right now you need to use the commit before the version bump, so ESP-IDF dependency checker won't complain: https://github.com/espressif/idf-component-manager/commit/b543e18dd76df29d51a9a481928519ff3a031951

Any update on the status here?
Is it still limited to the development version or has it been included in the latest IDF updates?

Just saw the answer in the release notes, v1.5.3 released 2 days ago but this feature held back for v2.0.0
We have great reluctance to use beta versions in production development thus would be forced to suffer development pain whilst waiting for the official v2.0.0 release.
Please, please, please....

@ammaree All the features planned for 2.0 are merged, but a few bugs need to be fixed before the release. It's our priority now.

closing the issue since 2.0.0 has been released.


Add detection for live test failures in JS pipelines.

This pipeline adds a classifier for failure in JS live tests.

/cc @Azure/azure-sdk-eng merging immediately so we can start classifying these pipeline errors.


Consider adding support for Web Bluetooth API?

Are there any plans to support the Web Bluetooth API with this adapter?

Given that Expo is very close enabling direct support for react-native-ble-plx and given that Expo works cross-platform: Android, IOS and Web, there is definitively going to be a need for including Web Bluetooth support. Consider the need in PWAs -- progressive web apps.


fix: use non-fqdn url for grafana to support non-standard cluster names

Description
Currently, grafana-operator uses FQDN names for its calls to grafana API (e.g. http://grafana.monitoring.svc.cluster.local:3000), which is incompatible with custom cluster names.
For internal DNS requests, there's no need to rely on FQDN, <svc-name>.<namespace>:<port> format is perfectly fine.
The PR addresses that.
Additional changes:

Some code style issues are automatically fixed by gofumpt;
Fixed staticcheck complaint about error formatting.

Relevant issues/tickets
Fixes: https://github.com/grafana-operator/grafana-operator/issues/592
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Checklist

[ ] This change requires a documentation update
[X] I have added tests that prove my fix is effective or that my feature works
[ ] I have added a test case that will be used to verify my changes
[ ] Verified independently on a cluster by reviewer

Verification steps

Deploy grafana instance with any spec
Make sure operator is able to communicate with grafana:

For clusters with standard names, operator should work just as before;
For clusters with a custom name, operator should start working.

Works fine with preferService: False but I get this error on OpenShift when set to True
	running periodic dashboard resync
2022-07-19T12:27:11.335+0100	ERROR	failed to get or create namespace folder for dashboard	{"folder": "hstefans", "dashboard": "", "error": "Get \"http://admin:***@grafana-service.hstefans:3000/api/folders\": dial tcp: lookup grafana-service.hstefans: no such host"}
github.com/go-logr/zapr.(*zapLogger).Error
	/home/hstefans/go/src/github.com/grafana-operator/grafana-operator/vendor/github.com/go-logr/zapr/zapr.go:132
sigs.k8s.io/controller-runtime/pkg/log.(*DelegatingLogger).Error
	/home/hstefans/go/src/github.com/grafana-operator/grafana-operator/vendor/sigs.k8s.io/controller-runtime/pkg/log/deleg.go:144
github.com/grafana-operator/grafana-operator/v4/controllers/grafanadashboard.(*GrafanaDashboardReconciler).reconcileDashboards
	/home/hstefans/go/src/github.com/grafana-operator/grafana-operator/controllers/grafanadashboard/grafanadashboard_controller.go:294
github.com/grafana-operator/grafana-operator/v4/controllers/grafanadashboard.(*GrafanaDashboardReconciler).Reconcile
	/home/hstefans/go/src/github.com/grafana-operator/grafana-operator/controllers/grafanadashboard/grafanadashboard_controller.go:101
github.com/grafana-operator/grafana-operator/v4/controllers/grafanadashboard.SetupWithManager.func1
	/home/hstefans/go/src/github.com/grafana-operator/grafana-operator/controllers/grafanadashboard/grafanadashboard_controller.go:184
github.com/grafana-operator/grafana-operator/v4/controllers/grafanadashboard.SetupWithManager.func2
	/home/hstefans/go/src/github.com/grafana-operator/grafana-operator/controllers/grafanadashboard/grafanadashboard_controller.go:193
2022-07-19T12:27:11.335+0100	ERROR	error updating dashboard	{"name": "simple-dashboard", "namespace": "hstefans", "error": "Get \"http://admin:***@grafana-service.hstefans:3000/api/folders\": dial tcp: lookup grafana-service.hstefans: no such host"}

code looks good other than that


The issue with UDP ports for built-in OpenVPN and Syslog functionality

Are you using SoftEther VPN 5.x?

[X] Yes, I'm using SoftEther VPN 5.x, not 4.x.

Version
5.02.5187
Component
VPN Server
Operating system & version
Debian 12.8
Architecture or Hardware model
x86_64
Steps to reproduce
We started a migration of our multiple location deployment of SoftEther VPN server from the latest stable version 4.42 Build 9798 RTM to version 5.02.5187 in order to mitigate discovered by AWS team Vulnerability Disclosure - SoftEther VPN with L2TP - 2.75x Amplification.
After installing a new version of SoftEther VPN server from scratch and trying to establish a connection using default port UDP 1194 and OpenVPN functionality, we faced an issue that this port was not listening and users couldn't connect via it. Also, it is not possible to set this port in SoftEther VPN server management utility. It's just reset any change there related to the port under the OpenVPN configuration section.
root :: vpn ➜  ~ » sudo ss -tuln | grep ':1194'
tcp   LISTEN 0      4096         <IP_ADDRESS>:1194       <IP_ADDRESS>:*
tcp   LISTEN 0      4096            [::]:1194          [::]:*

As a workaround, we started to use TCP port 1194 which fixed this specific issue.
But later we noticed that the built-in syslog functionality not working as well as I believe it using UDP port 514 for log transfer. We send all packet logs to remove the server. This behavior is visible only on version 5.02.5187 when everything is ok under version 4.42 Build 9798 RTM.
Can you please take a look at this issue?
Thank you.
✔ Expected Behavior

Successfully connected to SoftEther VPN server via UDP port 1194 and OpenVPN client
Syslog successfully transferred to a remote syslog server.

❌ Actual Behavior

Can't connect to SoftEther VPN server via UDP port 1194 and OpenVPN client
Syslog not transferred to a remote syslog server, there are no packets capture directly on VPN server on Syslog port

root :: vpn ➜  ~ » tcpdump -i any 'port 1514'
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
^C
0 packets captured
2 packets received by filter
0 packets dropped by kernel

Anything else?
No response

You should update to the latest Server Manager, because the UDP ports now apply to WireGuard as well.

You should update to the latest Server Manager, because the UDP ports now apply to WireGuard as well.

Thanks for this solution with OpenVPN, now it looks ok. Any known issue with syslog or additional configuration for it, as it still not working, I don't see any additional configuration for it in syslog section and tcpdump show that no packets generated by VPN appliance.

Is there anything related in the server's logs?

Nothing suspicious. I tried to enable/disable syslog function - did not help.
[21:25:59] root :: vpn ➜  ~ » cat /usr/local/libexec/softether/vpnserver/server_log/vpn_20241112.log
2024-11-12 10:17:48.857 ------------------------------------------------------
2024-11-12 10:17:48.857 SoftEther VPN Server Developer Edition Version 5.02 Build 5187 (English)
2024-11-12 10:17:48.857 Compiled 2024/11/12 10:10:55 by root at vpn
2024-11-12 10:17:48.857 Log Messages are written with UTF-8 Encoding Format.
2024-11-12 10:17:48.857 The SoftEther VPN Server has been started.
2024-11-12 10:17:48.898 IPsec Module: The IPsec ver 2.0 (ISAKMP/IKEv1) processing module is started.
2024-11-12 10:17:48.948 Loading the configuration file.
2024-11-12 10:17:49.434 Monitoring the directory "/usr/local/libexec/softether/vpnserver". If the amount of available free disk space becomes less than 100.00 MBytes, the backup files for log files and configurations that are saved on the sub-directories of this directory will be automatically deleted in the order of oldest first. The amount of free disk space that determines when to start deletion can be modified by changing the "AutoDeleteCheckDiskFreeSpaceMin" item in the configuration file.
2024-11-12 10:17:58.822 ------------------------------------------------------
2024-11-12 10:17:58.822 SoftEther VPN Server Developer Edition Version 5.02 Build 5187 (English)
2024-11-12 10:17:58.822 Compiled 2024/11/12 10:10:55 by root at vpn
2024-11-12 10:17:58.822 Log Messages are written with UTF-8 Encoding Format.
2024-11-12 10:17:58.822 The SoftEther VPN Server has been started.
2024-11-12 10:17:58.852 IPsec Module: The IPsec ver 2.0 (ISAKMP/IKEv1) processing module is started.
2024-11-12 10:17:58.923 Loading the configuration file.
2024-11-12 10:17:59.446 Monitoring the directory "/usr/local/libexec/softether/vpnserver". If the amount of available free disk space becomes less than 100.00 MBytes, the backup files for log files and configurations that are saved on the sub-directories of this directory will be automatically deleted in the order of oldest first. The amount of free disk space that determines when to start deletion can be modified by changing the "AutoDeleteCheckDiskFreeSpaceMin" item in the configuration file.
2024-11-12 10:21:31.777 Administration mode [RPC-48]: The server's syslog send function setting has been updated.
2024-11-12 10:21:39.049 Administration mode [RPC-48]: A new encryption algorithm name for the server has been set. The new encryption algorithm name is "AES128-SHA".
2024-11-12 10:21:39.290 Administration mode [RPC-48]: The server's Internet keep-alive setting has been updated.
2024-11-12 16:43:45.413 Administration mode [RPC-58]: The server's syslog send function setting has been updated.
2024-11-12 16:43:51.748 Administration mode [RPC-58]: A new encryption algorithm name for the server has been set. The new encryption algorithm name is "AES128-SHA".
2024-11-12 16:43:51.808 Administration mode [RPC-58]: The server's Internet keep-alive setting has been updated.
2024-11-12 16:50:10.091 ------------------------------------------------------
2024-11-12 16:50:10.091 SoftEther VPN Server Developer Edition Version 5.02 Build 5187 (English)
2024-11-12 16:50:10.091 Compiled 2024/11/12 10:10:55 by root at vpn
2024-11-12 16:50:10.091 Log Messages are written with UTF-8 Encoding Format.
2024-11-12 16:50:10.091 The SoftEther VPN Server has been started.
2024-11-12 16:50:10.131 IPsec Module: The IPsec ver 2.0 (ISAKMP/IKEv1) processing module is started.
2024-11-12 16:50:10.212 Loading the configuration file.
2024-11-12 16:50:10.755 Monitoring the directory "/usr/local/libexec/softether/vpnserver". If the amount of available free disk space becomes less than 100.00 MBytes, the backup files for log files and configurations that are saved on the sub-directories of this directory will be automatically deleted in the order of oldest first. The amount of free disk space that determines when to start deletion can be modified by changing the "AutoDeleteCheckDiskFreeSpaceMin" item in the configuration file.

Also, general server logs didn't show any issue related to this.

Does this happen with both TCP and UDP?

I don't see anything related to the choice of protocol for transferring the log to the syslog server in the server admin management utility, so I think that the "default" UDP protocol is used for syslog messages.

Also checked tcpdump on the server with build 4.42 Build 9798 RTM and see next there:
[21:56:06] root :: vpn ➜  ~ » tcpdump -v -i any port 1514
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
21:56:21.048406 eth0  Out IP (tos 0x0, ttl 64, id 61764, offset 0, flags [DF], proto UDP (17), length 298)
    <IP_ADDRESS>.55997 > <IP_ADDRESS>.1514: UDP, length 270

So I guess UDP is also used in 5.02.5187 as the default protocol.
Is there any known workaround to switch syslog to TCP?

Oh, sorry, I just realized there is no way to switch to TCP: #513
@domosekai Why was the issue closed?


Fix I2C device numbers

The I2C device number is changed for the new e-pucks, see:
https://github.com/gctronic/Pi-puck/commit/bc50619edb4570116553a1203b7bf78f36b31c71

Sorry, I missed the CI failure, it should be fine now


Docker Image throwes Java Error

Hi, I've been having the problem for a while now that the dependency scanner I use in my gitlab pipeline fails. I'm using the latest Docker image and the container is thrown away after each run of the pipeline, so I don't think the database is compromized or anything. I have also tried removing all volumes and containers on the runner, but the error still persists. Here is the output of the dependency scanner:
$ /usr/share/dependency-check/bin/dependency-check.sh --project Name --out ./reports/ --format JSON --format HTML --scan . --enableExperimental --failOnCVSS 7
java.util.zip.ZipException: invalid entry CRC (expected 0xc030c281 but got 0x55798fab)
	at java.base/java.util.zip.ZipInputStream.read(ZipInputStream.java:223)
	at java.base/java.util.zip.ZipInputStream.closeEntry(ZipInputStream.java:142)
	at org.h2.util.Utils.loadResource(Utils.java:420)
	at org.h2.util.Utils.getResource(Utils.java:386)
	at org.h2.message.DbException.<clinit>(DbException.java:74)
	at org.h2.message.TraceObject.<clinit>(TraceObject.java:108)
	at org.h2.Driver.connect(Driver.java:59)
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
	at org.owasp.dependencycheck.data.nvdcve.DatabaseManager.initialize(DatabaseManager.java:187)
	at org.owasp.dependencycheck.data.nvdcve.DatabaseManager.<init>(DatabaseManager.java:125)
	at org.owasp.dependencycheck.data.nvdcve.CveDB.<init>(CveDB.java:242)
	at org.owasp.dependencycheck.Engine.openDatabase(Engine.java:995)
	at org.owasp.dependencycheck.Engine.doUpdates(Engine.java:868)
	at org.owasp.dependencycheck.Engine.initializeAndUpdateDatabase(Engine.java:683)
	at org.owasp.dependencycheck.Engine.analyzeDependencies(Engine.java:609)
	at org.owasp.dependencycheck.App.runScan(App.java:256)
	at org.owasp.dependencycheck.App.run(App.java:188)
	at org.owasp.dependencycheck.App.main(App.java:83)
[INFO] Checking for updates
[INFO] NVD CVE requires several updates; this could take a couple of minutes.
[INFO] Download Started for NVD CVE - 2002
[INFO] Download Complete for NVD CVE - 2002  (919 ms)
[INFO] Processing Started for NVD CVE - 2002
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.fasterxml.jackson.module.afterburner.util.MyClassLoader (file:/usr/share/dependency-check/lib/jackson-module-afterburner-2.13.2.jar) to method java.lang.ClassLoader.findLoadedClass(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.fasterxml.jackson.module.afterburner.util.MyClassLoader
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Download Started for NVD CVE - 2003

[...]
[INFO] Processing Complete for NVD CVE - Modified  (1858 ms)
[INFO] Begin database maintenance
[INFO] Updated the CPE ecosystem on 124831 NVD records
[INFO] Removed the CPE ecosystem on 3499 NVD records
[INFO] End database maintenance (20250 ms)
[INFO] Begin database defrag
[INFO] End database defrag (8002 ms)
[INFO] Check for updates complete (147688 ms)
[INFO]
Dependency-Check is an open source tool performing a best effort analysis of 3rd party dependencies; false positives and false negatives may exist in the analysis performed by the tool. Use of the tool and the reporting provided constitutes acceptance for use in an AS IS condition, and there are NO warranties, implied or otherwise, with regard to the analysis or its use. Any use of the tool and the reporting provided is at the user’s risk. In no event shall the copyright holder or OWASP be held liable for any damages whatsoever arising out of or in connection with the use of this tool, the analysis performed, or the resulting report.
   About ODC: https://jeremylong.github.io/DependencyCheck/general/internals.html
   False Positives: https://jeremylong.github.io/DependencyCheck/general/suppression.html
💖 Sponsor: https://github.com/sponsors/jeremylong
[INFO] Analysis Started
[INFO] Finished File Name Analyzer (0 seconds)
[INFO] Finished MSBuild Project Analyzer (0 seconds)
[INFO] Finished Dependency Merging Analyzer (0 seconds)
[INFO] Finished Version Filter Analyzer (0 seconds)
[INFO] Finished Hint Analyzer (0 seconds)
[ERROR] Exception occurred initializing NPM CPE Analyzer.
[ERROR] Exception occurred initializing CPE Analyzer.
[INFO] Finished False Positive Analyzer (0 seconds)
[INFO] Finished NVD CVE Analyzer (0 seconds)
[INFO] Finished Sonatype OSS Index Analyzer (1 seconds)
[INFO] Finished Vulnerability Suppression Analyzer (0 seconds)
[INFO] Finished Dependency Bundling Analyzer (0 seconds)
[INFO] Analysis Complete (4 seconds)
[INFO] Writing report to: /builds/name/name/./reports/dependency-check-report.json
[INFO] Writing report to: /builds/name/name/./reports/dependency-check-report.html
[ERROR] An exception occurred accessing the database
[ERROR] An exception occurred accessing the database

Maybe I'm missing something fundamental here, but maybe someone has an idea what I can try to get the scanner running again. Thanks in any case!

To get the scanner running again you need to clear the local nvd caches as the current NVD stream gz file for one of the datastreams is correct. You can do so by running the purge goal. Your issue is essentially #4165, so it should be fixed once your pipeline picks up an image with the just-release version 7.1.0 of DependencyCheck.

Hi, thanks for looking at this issue but I think you should reopen the issue because my problem is not solved by a suggested solution :(
I am using the latest image in the pipeline (build about 11 hours ago) I have deleted all images, containers and volumes on the runner for testing purposes, so it is really clean and fetches everything again. Nothing is cached from Docker (yes this is not necessarily useful but the current setup). So the container throws the error described above even with the container in version 7.1.0.
I also tried to perform a --purge in the container. To do this, before I run the dependency-check.sh with information about the project, I ran dependency-check.sh --purge once via pipelinecommand. But because the Docker container is brand new there is no database yet and the following output comes back:
$ /usr/share/dependency-check/bin/dependency-check.sh --purge
[INFO] Unable to purge database; the database file does not exist: /usr/share/dependency-check/data/odc.mv.db

Do you have any other idea what I could try? I had read that the source error may have to do with a corrupted jar. By the way, I am using a virtualized Ubuntu with Docker 20.10.12 installed.
Many greetings

Hey it's me again :D
I have found the problem and solved it. You have updated versions of alpine or dotnet in your last commits.
I have had a very similar problem with my Sonarqube instance that no longer ran after an Alpine update. The issue is here: https://github.com/SonarSource/docker-sonarqube/issues/544
Because everything is virtualized with a KVM-CPU there seems to be missing commands in the instruction set, which Java uses. I changed the CPU type to SandyBridge for my CPU (which matches the virtualization host) and tadaa it runs again.


Fix parsing features for new devices

I tested the proposed solution on my new devices with the bundled script
and home-assistant-toshiba_ac . Both tests were successful.
For future reference, my devices are:

Toshiba SHORAI EDGE RAS-B13N4KVSG-E UI
Toshiba RAS-2M18U2AVG-E U.E.MULTISPLIT
Toshiba SEIYA RAS-B13J2KVG-E UI

Hello,
wrong fix on fcu_state.py :(
B should be set only for digit which does not deal with negative value, and temperature can be negative

Actually after thinking about this, other values in fcu_state.py are designed to be parsed as signed as well.


Plurality of examples key

I've noticed two instances of the example key in 2.0 of the specification: once in Response Object as examples, and once in Schema Object as example. Was this by design?

Yes. Under the response object you can add multiple examples, one per supported mime type. In the schema object you can have only one example per property.

Noted with thanks.


V0.7

In this PR:

updates auth to v0.7
automatically sets idField based on database
locks down user service

Also not broken but is dependent on https://github.com/feathersjs/feathers-authentication/pull/139.


Consider "unwrap()/isWrapperFor()" method

In JDBC,Wrapper interface is implemented(extended) by other interfaces in order to allow user to retrieve specific implementation.
Since SPI is defines as interface, user might need to work on actual implementation instances. Especially this is true when instance is wrapped by delegation or proxy.

What is the use case for unwrapping besides usage of API extensions (such as PostgresStatement)?
Is unwrapping really required or is unwrapping a consequence that drivers do not model their API extensions as an interface?

So, one of the usecase is spring-boot autoconfiguration.
Let's say, postgres client-factory has jmx attributes specific to postgres.
In order to auto-register the jmx bean, autoconfiguration needs to introspect the bean(client-factory) whether it can be casted to the postgres client-factory.
If this is a wrapped(proxy or delegated) bean, there is no way to introspect the bean.
This is where unwrap will be used.

Yes, I understand that since I recently made this PR.
https://github.com/spring-projects/spring-boot/pull/15206
This is the use case I described above :)
However, if the bean is wrapped by non-spring, then spring aop framework cannot unwrap/extract it.

Thanks a lot for the details. If we would add a wrapping aspect to R2DBC SPI, I would advise to place it in a less prominent way than JDBC does. JDBC includes unwrapping methods in a lot of their interfaces which is sort of cluttering the API.
How about just providing an additional interface that can be picked up by wrapping/proxying libraries and libraries that are interested in unwrapping in a non-invasive way?
We could provide
interface Wrapped {
    Object unwrap();
}

as a standalone interface. Proxies would implement that interface and give access to the underlying object. We provide a minimal API to allow unwrapping and I think unwrapping should be an edge-case anyway and not the regular thing that is used by regular client code.
Thoughts?

This approach sounds good to me.
It doesn't clutter existing SPIs.
It is wrapper's responsibility to implement(or respond) the unwrap() call.
In my datasource-proxy-r2dbc, ProxyObject does same, and similar in Advised#getTargetSource in spring.
When it comes to unwrapping time, it is a bit of more code to find the target one:
Class<?> targetClass = ...;  // class that I'm looking for

while(true) {

  if(targetClass.isInstance(candidate)) {
    return candidate;  // found
  } else if(candidate == null) {
    return null;  // not found
  }

  if(candidate instanceof Wrapped) {
    candidate = ((Wrapped)candidate).unwrap();
  } else {
    candidate = null;  // cannot unwrap
  }
}

I agree unwrapping is not a major use case; so it should be ok to let unwrapper write code like this to find the target. Rather, making SPI non invasive has bigger benefit.

Care to submit a pull request?

sure, will do tomorrow. :)

Thinking bit more about the usage, I think there are two use cases:

simply I want to unwrap and get the original object
I want to unwrap to a specific class which might be wrapped multiple times.

For use case 1, this can be done by current API:
Object unwrap();

For the second use case, it can be done by the for-loop I commented above, or having this method:
<T> T unwrap(Class<T> targetClass);

In my opinion, I think we do NOT implement the second usecase for now. It can be achieved by first use case with for-loop. Later IF there is a requirement to this, then may consider adding it for simplicity.
Another thing, during the meeting call, there was a mention of generics.
In JDBC, it is NOT restricting unwrap() to be bound to the wrapper class type.
For example, the above mentioned spring-boot usecase, it is unwrapping/extracting DataSourceProxy object from DataSource, however DataSourceProxy does NOT implement DataSource interface.
It's very much a corner case. However, it may be good to be aware of it.
So, if we want to add a generics, maybe it would be like this:
<T> T unwrap();

Since this is an unchecked type cast(it expects the receiver's type), I think it's not be recommended for SPI.

This would be the typical pattern for proxy.
// proxy handler class
class ConnectionInvocationHandler implements InvocationHandler {

  private Connection delegate;

  public ConnectionInvocationHandler(Connection delegate) {
    this.delegate = delegate;
  }

  @Override
  public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    if("unwrap".equals(method.getName()) {
      return this.delegate;   // can delegate or choose to return own result
    }
    ...
  }
}

Creating a proxy:
Connection originalConn = ...

// interfaces that the proxy can cast to
Class[] interfaces = new Class[]{Connection.class, Wrapped.class};  // specify "Wrapped"
InvocationHandler handler = new ConnectionInvocationHandler(originalConn);

Connection proxyConn = (Connection) Proxy.newProxyInstance(classLoader, interfaces, handler):

Using the proxy:
// unchecked type cast
Connection extracted = ((Wrapped<Connection>)proxyConn).unwrap();

// or defensive way
Object extracted = ((Wrapped)proxyConn).unwrap();
if(extracted instanceof Connection) {
  ...
}

Theoretically, it is possible to create an uber proxy-handler that works for multiple SPIs, but that may not be realistic.
The caller of the proxy would perform unchecked type cast or just retrieve as an object then may check with instanceof for defensive approach.
For writing a concrete class with delegation would be what @nebhale wrote above.
Wrapper interface with generics would be:
// style-1
interface Wrapped<T> {
  T unwrap();
}

or
// style-2
interface Wrapped {
  <T> T unwrap();
}

non-generic:
// styel-3
interface Wrapped {
  Object unwrap();
}

Making wrapper generic or not may be a subtle detail for user.
I'm fine with any style. Probably go with style-1 to incorporate with the concrete class with delegation?
Let me know, I'll update the PR. (currently, PR is style-3)


Auto Height

Hi,
It would be good to have an Auto Height feature, to allow you to use landscape and portrait images and have it change the height and padding of the portrait image to fit within the dimensions of the wider images.
I hope this makes sence.
Thanks
Daniel

There is an adaptiveHeight setting. Tried it recently, but think it works better when a single image displays at a time.


Turn off formatOnSave

For me, this was affecting files in the wallet folder while I had open the monorepo as a root folder in my workspace. It was applying the bracketSpacing: true rule in particular every time I hit save.
Turning this flag off fixed the issue.

This is because we have an empty ESLint file with no rules. I thought this might happen. @snario you can set this setting locally for now instead of for the workspace in your local settings

This is because we have an empty ESLint file with no rules. I thought this might happen. @snario you can set this setting locally for now instead of for the workspace in your local settings

Workspace settings override user settings.
I looked, and didn't find a way to have something like settings.local.json that overrides settings.json.
How can I set formatOnSave locally that doesn't involve editing settings.json?

Woops I thought it was the other way

Then the fix is to have a good ESLint config in all packages

Actually it turns out the reason it was happening is because there is some default formatter on VS Code and that thing was being run.

@snario Yea sorry for that. I have always had Prettier set as my default formatter.
Can we close this?

I thought we weren't going to merge this?


Author index page should list first and last name in one table column

Scenario
When a user visits the authors index page
Then it should have columns titled 'Name' and 'Homepage'
Hints
Feature: an overview page of all saved authors (index action on AuthorsController), new view (app/views/authors/index.html.erb).
Create a separate file (ending in _spec.rb) for feature tests for this page.
The overview page should contain an HTML table with the headings "Name" and "Homepage", listing the full names as well as homepages of authors and should link to individual author's detail pages. The page should also contain a link to add new authors.
The have_link method might be helpful to test the existence of links:
expect(page).to have_link 'New', href: new_author_path
Here is the relevant section (5.8) of the Rails Guide.
Error

Expected to find visible css "th" with text /name/i but there were no matches. also found "title", "text", "", which matched the selector but not all filters.

10 exercise tests have passed. There are 44 in total. You will solve multiple at once towards the end.

Sorry, it's not working for me yet:
Scenario
When a user visits the authors index page
Then it should have columns titled 'Name' and 'Homepage'
Error

Expected to find visible css "th" with text /name/i but there were no matches. also found "title", "text", "", which matched the selector but not all filters.

If you have problems solving this task, please don't hesitate to contact the teaching team!

Sorry, it's not working for me yet:
Scenario
When a user visits the authors index page
Then it should have columns titled 'Name' and 'Homepage'
Error

Expected to find visible css "th" with text /name/i but there were no matches. also found "title", "text", "", which matched the selector but not all filters.

If you have problems solving this task, please don't hesitate to contact the teaching team!


Output is different between *nix and travis

Not sure what's causing this but I did see an issue opened similarly with Windows and *nix so maybe it's a cross platform bug.
When testing against this branch on my OSX laptop I get no issues at all yet on travis I see a few that don't even point to the correct lines.
➜  medusa git:(add_js_linting) yarn test-js
yarn test-js v0.20.3
$ xo
✨  Done in 7.42s.

static/js/manage/backlog-overview.js:70:18
  ⚠  70:18  Expected error to be handled.   handle-callback-err
  ⚠  83:18  Expected error to be handled.   handle-callback-err
  ✖  70:27  err is defined but never used.  no-unused-vars
  ✖  78:17  Extra space after key status.   key-spacing
  ✖  83:27  err is defined but never used.  no-unused-vars

https://travis-ci.org/pymedusa/Medusa/builds/205416269

You're caching your node_modules on Travis. This why that's a bad idea.

I'm not sure what you mean by that? We use yarn and we cache the yarn cache not the npm cache?

This results in stale dependencies (of which would be ESLint for example) on Travis. That's most likely why you're seeing different results. Try clearing the Travis cache: https://docs.travis-ci.com/user/caching/#Clearing-Caches

We haven't cached the node_modules before and I tried clearing the cache. It's also testing against our own code so I don't see how the cache of deps would cause anything at all.


Game archive?

Hi, do you know where I can find the game archive? I have googled and come up short. Thanks!

It seems @bigfug has taken care of that now! There is a zip file in the root directory of the repo now.
Do you want to tell me a little bit about how you knew about Rylween and your experiences with it? I think it's amazing that people are still doing stuff with this little game in 2023, and I have actually started porting it to a standalone ncurses based kind of thing, including making the game world (which is pretty hard coded), totally configurable.

Awesome, thanks!
I actually only recently discovered Rylween. I've always been a fan of roguelikes but recently saw the game on a Zeus BBS and thought it was cool. Then I noticed this repo :)


Url Rewrite and Mod Rewrite Maps

Both RewriteMap in mod_rewrite and rewriteMap in UrlRewrite are not supported in our rewrite module. From the initial scraping of examples, both of these features were rarely used, but it would be a nice addition.
From apache:

The RewriteMap directive defines an external function which can be called in the context of RewriteRule or RewriteCond directives to perform rewriting that is too complicated, or too specialized to be performed just by regular expressions. The source of this lookup can be any of the types listed in the sections below, and enumerated in the RewriteMap reference documentation.

Ex:
RewriteMap MapName MapType:MapSource
From IIS:

A rewrite map is an arbitrary collection of name-value pairs that can be used within rewrite rules to generate the substitution URL during rewriting. Rewrite maps are particularly useful when you have a large set of rewrite rules and all of these rules use static strings (that is, when there is no pattern matching used). In those cases, instead of defining a large set of simple rewrite rules, you can put all the mappings into the rewrite map as keys and values between the input URL and the substitution URL. Then, to look up the substitution URL based on the input URL, you will have one rewrite rule that references the rewrite map.

Ex:
<rewriteMap name="MyRewriteMap" defaultValue="">
    <add key="a.html" value="b.html" />
</rewriteMap>

@jkotalik do you happen to know if there's an eta on this.  Also, a nice-to-have: if a rewritemap provider interface is exposed and pluggable we could easily extend this to support things like db lookup, etc http://www.iis.net/learn/extensions/url-rewrite-module/using-custom-rewrite-providers-with-url-rewrite-module

There's no ETA for this feature, we're still gauging interest in it.

@Tratcher how are you guys gauging interest? where can i go cast my vote?

@davidpeden3 Discussion here is sufficient

I'm very interested in this feature as well.

@Tratcher i've got this feature implemented for IIS but am now blocked by https://github.com/aspnet/BasicMiddleware/issues/59 so i'm going to tackle that next. i'll submit a PR for both once they're in a good spot.

@davidpeden3 interesting. I recommend keeping the PRs separate to simplify the review process.

@Tratcher certainly. i have global rules implemented now as well but am struggling with dependency issues in the test project so i'm currently unable to execute tests (which means that i would be writing them blind) and having to resort to manual testing to validate my code. i may give the 1.1.0 preview assemblies a try to see if that resolves my issue.

Yes running tests in VS with pre-release runtimes can be difficult to set up. Our command line build scripts set up a self-contained environment and can run the tests more reliably.

@Tratcher i've got everything working as far as rewrite maps and global rules are concerned but realized that i need to actually proxy the request as it's not going anywhere. i found https://github.com/aspnet/Proxy but it looks like it can't be used as a reverse proxy because it's hardcoded to a static host and port. rather than messing with this repo, too, i think i'm gonna just write my own reverse proxy middleware that will do basically the same thing but use the rewritten uri.
am i on the right track here or am i missing something obvious in this rewrite middleware that handles proxying the rewritten requests?

Wait, what requires forwarding? global rules? I don't see that in the description, only that it mutates the full url. (let's take the global rules discussion over to #59)


[New Feature]: Extract to transformation function code action for record to record mappings

Description
The feature mentioned in the $title is an useful feature for the Data Mapper. It is helpful when there are lengthy input and output records to be mapped.
Please refer to the following issue:
https://github.com/wso2/ballerina-vscode/issues/527
Describe your problem(s)
No response
Describe your solution(s)
No response
Related area
-> Editor
Related issue(s) (optional)
https://github.com/wso2/ballerina-vscode/issues/527
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

Below are two possible user flows for suggesting the code action:

Selecting Range from Code: Users can select a range from the code encompassing multiple records. Subsequently, VSCode will prompt a quick pick menu to choose the target or output record type.

Cursor Placement at Record Type Definition: Users can place the cursor at the definition of a record type. Then, we suggest a quick pick menu to select all input records that required transform function.

Using above two approaches we can identify source and target record types. Once identified, we can generate an arrow function for transformation.
However, if we leaving the body empty would trigger a set of 'missing non-defaultable required record field' diagnostics.
This is something we should avoid.
We can write an algorithm to populate the body with dummy mappings by default. However, for data mappings involving large record types, this could lead to erroneous mappings (functional errors).
@YasithD @madushajg Is the above mentioned user flow is that you intended? What is your thoughts on populating the body of the arrow function?

Hi @LakshanWeerasinghe,

Using above two approaches we can identify source and target record types. Once identified, we can generate an arrow function for transformation.

For the approach can we have something similar to the currently available Extract to function code action?
https://github.com/ballerina-platform/ballerina-lang/assets/59837420/a36d3b29-896f-4e4f-b788-1bed4dec95f4

We can write an algorithm to populate the body with dummy mappings by default. However, for data mappings involving large record types, this could lead to erroneous mappings (functional errors).

For the default behaviour the default value mapping would work in the Data Mapper.

This will be the flow of actions.

User positions the cursor within the value expression or selects a range within the value expression of a specific field (where both the value expression and the field are of record type), VS Code will suggest the "extract to transform function" code action.

Upon receiving the suggestion, the user can select the "extract to transform function" code action from the VS Code interface.

Upon selection, the Language Server will generate a new expression-bodied function. This function will include default value mappings. The selected value expression is replaced by a function call expression to the newly generated function.


Minor simplifications/optimizations to AbstractByteBuf methods

Motivation
While working on other changes I noticed some opportunities to streamline a few things in AbstractByteBuf.
Modifications

Avoid duplicate ensureAccessible() checks in discard(Some)ReadBytes() and ensureWritable0(int) methods
Simplify ensureWritable0(int) logic
Make some conditional checks more concise

Result
Cleaner, possibly faster code

@netty-bot test this please

@njhill
hi, I have a confusion about this modification. According to the comment of ensureAccessible, every time we try to access the buffers content, we should call ensureAccessible to check it.
According to this statement, in the discardReadBytes method, the content of the current ByteBuf has been modified(call setBytes(0, this, readerIndex, writerIndex - readerIndex)) under the branch of readerIndex! = WriterIndex. Why did it not call ensureAccessible to detect it?

@carryxyh setBytes is a public method and so itself will check accessibility... hence the redundant check on that path

@njhill
Solved my confusion, thank you very much...


Contributors Image In Readme

I think it is a great feature to add contributors image in README file. It really motivate to contributors. It is dynamically order the contributors.

If you want to this feature on README so I want to do this issue  !! 😄

Hey @Vishal-raj-1 Thanks for proposing this idea. Please go ahead with this issue, just make sure that the images are linked with the contributors github profile.
Happy Coding :)

Hey @Vishal-raj-1 Thanks for proposing this idea. Currently we are using a bot for this. Please go ahead with this issue, just make sure that the images are linked with the contributors github profile.

Sure


DNX command line changes

@Rick-Anderson @danroth27 @Tratcher @Erikre Please review

Can we update the console app image to use beta7 instead of beta6?

Also, can you add some text that clarifies

:watch:

@danroth27 You'll need to reshoot the image that requires the change from beta6 to beta7. I've made the other changes.

:shipit:


Update HALs, uncomment commented code in S2 power domain enable

I can maybe add that this closes #228 ?

Could https://github.com/esp-rs/esp-hal/pull/681 be related somehow?

mhhhh - I guess a problem there should break more examples 🤔 I have no idea to be honest
I will create an issue for this weird thing - at least there is a "workaround"