refactor!: rename Handler to MessageHandler

Rename Handler to MessageHandler based on feedback from PR #1158
BREAKING CHANGE: Handler has been renamed to MessageHandler to be more descriptive, along with related types and methods. This means:

Handler is now MessageHandler
HandlerInboundMessage is now MessageHandlerInboundMessage
Dispatcher.registerHandler is now Dispatcher.registerMessageHandlers

Codecov Report

Merging #1161 (9502072) into main (0e89e6c) will not change coverage.
The diff coverage is 96.99%.

@@           Coverage Diff           @@
##             main    #1161   +/-   ##
=======================================
  Coverage   88.77%   88.77%
=======================================
  Files         706      706
  Lines       16503    16503
  Branches     2678     2678
=======================================
  Hits        14651    14651
  Misses       1845     1845
  Partials        7        7

Impacted Files
Coverage Δ

packages/core/src/modules/proofs/ProofService.ts
68.96% <ø> (ø)

.../modules/connections/handlers/AckMessageHandler.ts
71.42% <50.00%> (ø)

...ctions/handlers/TrustPingResponseMessageHandler.ts
71.42% <50.00%> (ø)

...cation/handlers/V1RevocationNotificationHandler.ts
71.42% <50.00%> (ø)

...cation/handlers/V2RevocationNotificationHandler.ts
71.42% <50.00%> (ø)

...ol/v1/handlers/V1CredentialProblemReportHandler.ts
71.42% <50.00%> (ø)

...ol/v2/handlers/V2CredentialProblemReportHandler.ts
71.42% <50.00%> (ø)

...c/modules/routing/handlers/MediationDenyHandler.ts
62.50% <50.00%> (ø)

packages/action-menu/src/ActionMenuApi.ts
97.82% <100.00%> (ø)

...enu/src/handlers/ActionMenuProblemReportHandler.ts
100.00% <100.00%> (ø)

... and 71 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Issue about saving FEMM project

Hello everyone,
I have already contact Pyleecan developer about this issue by mail but I think it is better to post my isssue directly on github. This way, all the community can benefit from the solution.
For several months, I have tried to add pyleecan library to my project. Now, I am very close to my objective but I have still this annoying problem I cannot solve.
Here is the problem :
When I try to run a Femm simulation using pyleecan I have this error :
Traceback (most recent call last):
out_femm = simu_test.simu.run()

File "...\pyleecan\pyleecan\Methods\Simulation\Simulation\run.py", line 52, in run
self.run_single()
File "..\pyleecan\pyleecan\Methods\Simulation\Simu1\run_single.py", line 31, in run_single
self.mag.run()
File "...\pyleecan\pyleecan\Methods\Simulation\Magnetics\run.py", line 24, in run
out_dict = self.comp_flux_airgap(output, axes_dict)
File "...\pyleecan\pyleecan\Methods\Simulation\MagFEMM\comp_flux_airgap.py", line 96, in comp_flux_airgap
FEMM_dict = draw_FEMM(
File "...\pyleecan\pyleecan\Functions\FEMM\draw_FEMM.py", line 220, in draw_FEMM
femm.mi_saveas(path_save)  # Save
File "...\pyleecan\pyleecan\Classes_FEMMHandler.py", line 2127, in mi_saveas
self.callfemm("mi_saveas(" + self.quote(self.fixpath(fn)) + ")")
File "...\pyleecan\pyleecan\Classes_FEMMHandler.py", line 66, in callfemm
raise Exception(ErrorMsg)
Exception: error: Couldn't write to specified file.
Perhaps the file is write-protected?
Here is what I' have tried to understand the problem.
As suggested, I try to find if I have a problem to write file in the directory, Apparently not :

I tried to create and write a file in the directory in Python and I have no problem.
I tried to save manually the Femm project and to use Lua console with exactly the same path and it works perfectly.
I tried to force the Femm project to be saved in another directory and I have the same problem.
I tried many other typo with "/", "//", or even "" instead of "\" but it does not solve the problem.

Here is what I get when I use output.get_path_result :
...\pyleecan\pyleecan\Results\mag_simu_test
I hope someone can help me because I am quite stuck for the moment.
many thanks,
Simon Morel

Hello Simon,
I never had such kind of issue so it is really strange :/
To help you solve that, let's start with some usual context questions:

Are you using pyleecan from pip or from a fork/git clone ?
Which version of pyleecan/python/femm are you using ?
Your main path "..." is it in the python site-package directory ?
Which machine were you trying to draw (I don't expect it to be the issue but does it work with the simulation in the Tests folder for instance) ?
Is there any message in the console / log file (%APPDATA%/pyleecan/Pyleecan.log) ?

If you are using a fork/git clone version of pyleecan, can you add the following line just before the call to mi_saveas dans Functions/FEMM/draw_FEMM.py ?
output.get_logger().debug("Saving FEMM file at: " + path_save)
femm.mi_saveas(path_save)  # Save

To make sure that the path is correct.
What is the name of your simulation ? If it begin with a "t" the issue can be that the path contains a "\t". In Methods/Simulation/MagFEMM/get_path_save_fem.py we create the path_save with a "join" but without a call to ".replace("\", "/").
Best regards,
Pierre

Hello Pierre,
thank you for your help. Here are the answers of  your questions :

Are you using pyleecan from pip or from a fork/git clone ?
I tried both and each solution returns the error.

Which version of pyleecan/python/femm are you using ?
pyleecan 1.2.1
python 3.7.10
femm 4.2

Your main path "..." is it in the python site-package directory ?
no it is not.

Which machine were you trying to draw (I don't expect it to be the issue but does it work with the simulation in the Tests folder for instance) ?
When I run the dbugger in my project I can save and run manually the project in FEMM gui and it works perfectly.

Is there any message in the console / log file (%APPDATA%/pyleecan/Pyleecan.log) ?

2021-04-08 18:40:31-  DEBUG: Updating USER_DIR from version No_version to version 1.2.1 [Pyleecan.GUI]
2021-04-08 18:40:31-  DEBUG: Updating USER_DIR Machines in C:/Users/simon.morel/AppData/Roaming/pyleecan\Machine [Pyleecan.GUI]
2021-04-08 18:40:31-  DEBUG: Updating USER_DIR Materials in C:/Users/simon.morel/AppData/Roaming/pyleecan\Material [Pyleecan.GUI]
2021-04-08 18:40:31-  DEBUG: Updating USER_DIR Plot in C:/Users/simon.morel/AppData/Roaming/pyleecan\Plot [Pyleecan.GUI]
2021-04-08 18:40:31-  DEBUG: Updating USER_DIR GUI in C:/Users/simon.morel/AppData/Roaming/pyleecan\GUI [Pyleecan.GUI]

If you are using a fork/git clone version of pyleecan, can you add the following line just before the call to mi_saveas dans Functions/FEMM/draw_FEMM.py ?

...\pyleecan\pyleecan\Results\mag_simu_test\Femm\default_machine_model.fem (where "..." is the same path as previous "...").

Hello Simon,
In the "..." part is there any special symbol or quote maybe ? If you managed to save the file with a breakpoint then the FEMM coupling is not the issue but maybe the command itself. It the traceback you send there is:

File "...\pyleecan\pyleecan\Classes_FEMMHandler.py", line 2127, in mi_saveas
self.callfemm("mi_saveas(" + self.quote(self.fixpath(fn)) + ")")

can you check with a breakpoint what is happening here ? Maybe the generated command is wrong.
In pyleecan\pyleecan\Results\mag_simu_test you should also have a log file dedicated to your simulation. Any useful information in it ? By the way, it could be interesting to check if the folder "pyleecan\pyleecan\Results\mag_simu_test\Femm" exist (it should be empty since the error occurs when saving the fem file). If the FEMM folder doesn't exist, it can explain why the save command fails.
Best regards,
Pierre

Hello Pierre,
According to me there is no special symbol int the path. But I tried to force the FEMM project to be saved in a path as simple as Documents and I achieved to save the project. I work on a network drive and it appears that if the Lua command work in the Lua console in FEMM, the pyFEMM one doesn't.
The path shape of looks like :
"\drivename.local\folder...\folder\pyleecan"
I see nothing wrong in the log file except the process is not finished :
2021-05-04 14:35:10-  DEBUG: ################################### [mag_simu_test]
2021-05-04 14:35:10-   INFO: Starting running simulation mag_simu_test (machine=default_machine) [mag_simu_test]
2021-05-04 14:35:10-   INFO: Starting Magnetic module [mag_simu_test.Magnetics]
2021-05-04 14:35:10-  DEBUG: Drawing machine in FEMM... [mag_simu_test.Magnetics]
best regards,
Simon

I actually reuse pyleecan using pip because the library is stored on a local drive. Last time I used pyleecan with pip I forgot I had an environment variable for pyleecan, thus I was still using the cloned project.
Now It looks to work fine but I am still interested to know if we can use pyleecan or pyfemm when the library is in a network drive.
thanks,
regards,
Simon

Hello Simon,
Great to know that you managed to make it work :)
Sadly, I have no idea why it can't work on network drive :/
Best regards,
Pierre

Hello Simon,
Great to know that you managed to make it work :)
Sadly, I have no idea why it can't work on network drive :/
Best regards,
Pierre


Kernel crashing when training the model with an adata (Visium HD) with 600k bins

Hello,
I've been trying to train the model following your tutorials (single sample one) with the Visium HD lung dataset from 10X (available in their website) and in this section

# Train model
model.train(n_epochs=n_epochs,
            n_epochs_all_gps=n_epochs_all_gps,
            lr=lr,
            lambda_edge_recon=lambda_edge_recon,
            lambda_gene_expr_recon=lambda_gene_expr_recon,
            lambda_l1_masked=lambda_l1_masked,
            edge_batch_size=edge_batch_size,
            n_sampled_neighbors=n_sampled_neighbors,
            use_cuda_if_available=use_cuda_if_available,
            verbose=False)

The kernel is simply crashing mentioning a link that redirects to this: https://github.com/microsoft/vscode-jupyter/wiki/Kernel-crashes. This usually happens to me when there's too much memory usage, so I was wondering if NicheCompass has been tested in Visium HD data (which can reach over 500k bins)? Just using the normal parameters from the notebook
Thank you in advance
From the logs of the jupyter this is the only message I have:

I tried changing the parameters (mainly batch size to 512, 256 and 128), but still crashes

Hi @Rafael-Silva-Oliveira,
It is possible that you are running out of memory. We have tested NicheCompass with a dataset of 10 million cells and on our HPC it worked fine with ~300GB of memory. Depending on your computing infrastructure, I would recommend setting the batch size even lower. Also, you should make sure that adata.obsp["spatial_connectivities"] and adata.layers["counts"] are stored in sparse csr matrix format. Let me know whether this helps and if not it would be good to get more details about where you are running this.
For the purpose of testing that it is really related to memory, you could run it on a subsample of your dataset and see whether that works.
Another thing that can help is to reduce the number of neighbors and also use GPU (for better runtime and to offload some of the memory usage to GPU).

Hi @Rafael-Silva-Oliveira, It is possible that you are running out of memory. We have tested NicheCompass with a dataset of 10 million cells and on our HPC it worked fine with ~300GB of memory. Depending on your computing infrastructure, I would recommend setting the batch size even lower. Also, you should make sure that adata.obsp["spatial_connectivities"] and adata.layers["counts"] are stored in sparse csr matrix format. Let me know whether this helps and if not it would be good to get more details about where you are running this.
For the purpose of testing that it is really related to memory, you could run it on a subsample of your dataset and see whether that works.
Another thing that can help is to reduce the number of neighbors and also use GPU (for better runtime and to offload some of the memory usage to GPU).

Hey Sebastian, thank you very much for the suggestions
I changed the batch size to 16 and converted to csr matrix as such:
from scipy.sparse import csr_matrix

# Pass counts to csr matrix
adata.layers["raw_counts"] = csr_matrix(adata.layers["raw_counts"])
adata.layers["counts"] = csr_matrix(adata.layers["counts"])

# Pass spatial conns to csr matrix
adata.obsp[adj_key] = csr_matrix(adata.obsp[adj_key])

However, it is still crashing at the model training stage
Unfortunately, I don't have access to GPUs on the infrastructure I'm currently using and it is shared amongst other users of the lab, so although we have a bit over 100 GB of ram, I couldn't quite use the full amount either; My actual samples will be much smaller than the 10X Visium HD dataset, so hopefully it will work with my actual samples once I have them.
Using a subset worked (using 92k cells instead of 500k), and even though my samples will be quite small, I'm afraid some might reach memory issues and then I'll have incomplete insights extracted from those that I can't run due to memory errors
Really neat paper though, and I do welcome suggestions if you have any other tools that are capable of extracting ligand-receptor/CCI insights from high resolution spatial transcriptomics data though! :)
Thanks

I am also getting this error now with the adata subset:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[31], [line 2](vscode-notebook-cell:?execution_count=31&line=2)
      [1](vscode-notebook-cell:?execution_count=31&line=1) # Train model
----> [2](vscode-notebook-cell:?execution_count=31&line=2) model.train(n_epochs=n_epochs,
      [3](vscode-notebook-cell:?execution_count=31&line=3)             n_epochs_all_gps=n_epochs_all_gps,
      [4](vscode-notebook-cell:?execution_count=31&line=4)             lr=lr,
      [5](vscode-notebook-cell:?execution_count=31&line=5)             lambda_edge_recon=lambda_edge_recon,
      [6](vscode-notebook-cell:?execution_count=31&line=6)             lambda_gene_expr_recon=lambda_gene_expr_recon,
      [7](vscode-notebook-cell:?execution_count=31&line=7)             lambda_l1_masked=lambda_l1_masked,
      [8](vscode-notebook-cell:?execution_count=31&line=8)             edge_batch_size=edge_batch_size,
      [9](vscode-notebook-cell:?execution_count=31&line=9)             n_sampled_neighbors=n_sampled_neighbors,
     [10](vscode-notebook-cell:?execution_count=31&line=10)             use_cuda_if_available=use_cuda_if_available,
     [11](vscode-notebook-cell:?execution_count=31&line=11)             verbose=False)

File [~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:760](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:760), in NicheCompass.train(self, n_epochs, n_epochs_all_gps, n_epochs_no_edge_recon, n_epochs_no_cat_covariates_contrastive, lr, weight_decay, lambda_edge_recon, lambda_gene_expr_recon, lambda_chrom_access_recon, lambda_cat_covariates_contrastive, contrastive_logits_pos_ratio, contrastive_logits_neg_ratio, lambda_group_lasso, lambda_l1_masked, l1_targets_categories, l1_sources_categories, lambda_l1_addon, edge_val_ratio, node_val_ratio, edge_batch_size, node_batch_size, mlflow_experiment_id, retrieve_cat_covariates_embeds, retrieve_recon_edge_probs, retrieve_agg_weights, use_cuda_if_available, n_sampled_neighbors, latent_dtype, **trainer_kwargs)
    [757](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:757)     l1_targets_mask = None
    [758](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:758)     l1_sources_mask = None
--> [760](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:760) self.trainer.train(
    [761](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:761)     n_epochs=n_epochs,
    [762](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:762)     n_epochs_no_edge_recon=n_epochs_no_edge_recon,
    [763](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:763)     n_epochs_no_cat_covariates_contrastive=n_epochs_no_cat_covariates_contrastive,
    [764](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:764)     n_epochs_all_gps=n_epochs_all_gps,
    [765](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:765)     lr=lr,
    [766](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:766)     weight_decay=weight_decay,
    [767](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:767)     lambda_edge_recon=lambda_edge_recon,
    [768](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:768)     lambda_gene_expr_recon=lambda_gene_expr_recon,
    [769](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:769)     lambda_chrom_access_recon=lambda_chrom_access_recon,
    [770](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:770)     lambda_cat_covariates_contrastive=lambda_cat_covariates_contrastive,
    [771](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:771)     contrastive_logits_pos_ratio=contrastive_logits_pos_ratio,
    [772](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:772)     contrastive_logits_neg_ratio=contrastive_logits_neg_ratio,
    [773](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:773)     lambda_group_lasso=lambda_group_lasso,
    [774](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:774)     lambda_l1_masked=lambda_l1_masked,
    [775](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:775)     l1_targets_mask=l1_targets_mask,
    [776](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:776)     l1_sources_mask=l1_sources_mask,
    [777](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:777)     lambda_l1_addon=lambda_l1_addon,
    [778](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:778)     mlflow_experiment_id=mlflow_experiment_id)
    [780](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:780) self.node_batch_size_ = self.trainer.node_batch_size_
    [782](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/models/nichecompass.py:782) self.is_trained_ = True

File [~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/train/trainer.py:369](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/train/trainer.py:369), in Trainer.train(self, n_epochs, n_epochs_all_gps, n_epochs_no_edge_recon, n_epochs_no_cat_covariates_contrastive, lr, weight_decay, lambda_edge_recon, lambda_cat_covariates_contrastive, contrastive_logits_pos_ratio, contrastive_logits_neg_ratio, lambda_gene_expr_recon, lambda_chrom_access_recon, lambda_group_lasso, lambda_l1_masked, l1_targets_mask, l1_sources_mask, lambda_l1_addon, mlflow_experiment_id)
    [362](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/train/trainer.py:362) for edge_train_data_batch, node_train_data_batch in zip(
    [363](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/train/trainer.py:363)         self.edge_train_loader,
    [364](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/train/trainer.py:364)         _cycle_iterable(self.node_train_loader)): # itertools.cycle
    [365](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/nichecompass/train/trainer.py:365)                                                   # resulted in
...
File [~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/torch/nn/modules/linear.py:114](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/torch/nn/modules/linear.py:114), in Linear.forward(self, input)
    [113](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/torch/nn/modules/linear.py:113) def forward(self, input: Tensor) -> Tensor:
--> [114](https://vscode-remote+ssh-002dremote-002blcg.vscode-resource.vscode-cdn.net/mnt/work/RO_src/STAnalysis/notebooks/downstream/ST/NicheCompass/~/miniconda3/envs/nichecompass/lib/python3.9/site-packages/torch/nn/modules/linear.py:114)     return F.linear(input, self.weight, self.bias)

RuntimeError: mat1 and mat2 must have the same dtype
Output is truncated. View as a [scrollable element](command:cellOutput.enableScrolling?93034bc2-e94e-44da-895f-691a3035b428) or open in a [text editor](command:workbench.action.openLargeOutput?93034bc2-e94e-44da-895f-691a3035b428). Adjust cell output [settin](command:workbench.action.openSettings?%5B%22%40tag%3AnotebookOutputLayout%22%5D)

Any idea of what it could be?

hmm, could you check whether your counts in adata.layers["counts"] are of data type np.float32? If not, maybe try to convert them.

hmm, could you check whether your counts in adata.layers["counts"] are of data type np.float32? If not, maybe try to convert them.

That seems to work though it might take a while :)

After ~ 300 minutes training, it still crashed, so I'm afraid I won't be able to use this tool, but really neat paper nonetheless! :)

If you are still interested in trying something, with the subsampled data you should now be able to increase the batch size again considerably. Otherwise, yes, I am afraid that with a dataset of this size and CPU only this is not a recommendable tool. It pretty much requires GPU.


myLG/security.md

5.1x

I'm not sure what this PR is about as it lacks a proper commit message or description. I'm going to close it; please feel free to re-open with an explanation.


Feature/merge raw tx support

merge the raw tx changes and a fix for the unix socket server app filtering

Codecov Report

Merging #536 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #536      +/-   ##
============================================
+ Coverage      99.4%   99.41%   +<.01%
- Complexity     1443     1462      +19
============================================
  Files           232      233       +1
  Lines          4400     4459      +59
  Branches        224      224
============================================
+ Hits           4374     4433      +59
  Misses            5        5
  Partials         21       21

Impacted Files
Coverage Δ
Complexity Δ

...rum/tessera/thridparty/RawTransactionResource.java
100% <ø> (ø)
3 <0> (ø)
:arrow_down:

...ava/com/quorum/tessera/encryption/EnclaveImpl.java
100% <100%> (ø)
13 <5> (+3)
:arrow_up:

...va/com/quorum/tessera/q2t/TransactionResource.java
100% <100%> (ø)
16 <4> (+4)
:arrow_up:

...om/quorum/tessera/api/model/SendSignedRequest.java
100% <100%> (ø)
5 <5> (?)

...era/transaction/model/EncryptedRawTransaction.java
96.77% <100%> (+0.1%)
18 <1> (+1)
:arrow_up:

...um/tessera/transaction/TransactionManagerImpl.java
100% <100%> (ø)
29 <6> (+6)
:arrow_up:

Continue to review full report at Codecov.

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


Feature request: show only tree that depends on regex

I'd like to be able to see the packages that depend on e.g. Perl, and their parents.
Ideally, you'd be able to search for "perl", and then the tree makes it obvious which packages transitively and which directly depend on it. Perhaps just don't show the ones that don't depend?

Here's how I'd do this right now:

nix-tree has already has a search functionality (shortcut s), so I'd use it to search the store path I'm looking for. But it's just a case-insensitive plain text search, so no fancy expressions there.
Store paths directly depend on it are on the bottom status bar, called Immediate Parents.
nix-tree also has a why-depends mode (shortcut w), and you can see the store path transitively depend on it there. You can even navigate to one of those, highlighting the part there on the main panes.

Does that work for you?
Otherwise, we can have something like a "focus mode", where a shortcut marks the current selected store path "focused"; then only its ancestors and descendents will be visible. Then probably pressing it again will remove the focus. It kind of make sense to me, but I'm afraid of adding too many confusing functionality to it. But please let me know if you prefer something like that, or if you have another suggestion.

Ok, plain search is fine, but I'd indeed like to have this focus mode 🙂
It's just really helpful to see things in a tree structure.

Okay, I think this is a good idea. The implementation is going to be a bit tricky, because it affects many places. So I'll probably only start to look at it the next weekend.

So, here's some bad news. I think the trivial way to implement this (hide everything which is not either an ancestor or descendent of the "focused" store path) won't be as nice.
Because, imagine having the focused path at the middle pane. You'd expect the left pane to contain the parents of that path, but the above approach does not do that (it'll only show the children of the previously selected grandparent).
I think the ideal would be flipping the dependency graph and apply the mechanism for the right panes to the left pane; so having all parents of the focused path on the left, and their parents on the left of the left and so on  (it's hard to explain, sorry).
However, it is tricky to implement. Also it introduces a lot of design issues (what will the sizes mean in that case, how will why-depends/search will work). So, I don't think I'll be able to spend necessary time on it soon enough. However I will keep considering it and maybe we'll figure out a nice way to do this.

Ok, you know best :) although I don't understand the middle pane explanation. Won't you only see connected parts of the graph?

So, let's think about this graph:

And say, you navigated to node e through root -> a -> b -> e. Your panes would look like this in the current state of nix-tree.
------------------
| [b] | [e] | f |
------------------

But, this does not mean that b is the only parent of e, it merely means that the previous pane contained only b.
I think, if you were to now use the hypothetical "focus" feature on e, you'd prefer to see something like:
-----------------
| [b] | [e] | f |
|  c  |     |   |
|  d  |     |   |
-----------------

This'd make it easier to see which packages depend on e, which I think is closer to what you want. However, implementing this is tricky (mostly UX-wise).


template task breaks caching system

When using template task
- name: Put preferences for backported packages.
  template:
    src: preferences.j2
    dest: /etc/apt/preferences.d/backports
    owner: root
    group: root
    mode: 0644

with the following template
Package: *
Pin: release n={{ansible_distribution_release}}-backports
Pin-Priority: 500

ansible-bender judges that the cached image is modified by this task, even if ansible_distribution_relase is not changed.
This behavior causes unnecessary actions following template task.

Thanks for opening this issue.
This is interesting, I'd need to dig in and see what's happening.


[WIP] dcrpool: prompt user for adminpass if its not in configuration

Currently dcrpool closes if adminpass is not set. This PR sets a prompt that asks users for an adminpass rather then having to rerun the application again.

dcrpool is a daemon and not an interactive process. It is designed to run as a background service on an unattended machine, and so all required config should be provided through the config file.
Changing dcrpool into an interactive process would need to be well justified, and I'm not I really see the benefit here. Especially when the amount of additional code and new third party dependencies are considered.
I recommend opening issues about this kind of thing so the pros/cons can be discussed before starting work.

I agree with @jholdstock  here, not seeing the benefits of setting the adminpass interactively. Say that was desirable why not set rpcuser and rpcpass interactively too? See the can of worms this opens up?. Please discuss the ideas and modifications with one of us or open an issue to get some feedback before proceeding to work on it. Closing.

@dnldd  @jholdstock Aim of this was to beable to run dcrpool simply as its self on my own machine quickly from a perspective of someone who doesn't quiet have the topology in mind of all the services required to get this organism moving.  This could be done and with it provide a with --noinitialload flag like done in dcrwallet.  But rather a --initialload that gives these prompts in this PR.


KUDO init --dry-run Should Succeed Regardless of Cluster has CRDs or Not

kudo v0.15.0+
If you have kudo init a cluster and then need to work with or create manifests... it fails with:
 go run cmd/kubectl-kudo/main.go init --unsafe-self-signed-webhook-ca --version dev --dry-run -o yaml
Errors
CRD operators.kudo.dev is already installed. Did you mean to use --upgrade?
KUDO manager kudo-system/kudo-controller-manager seems to be installed. Did you mean to use --upgrade
Error: failed to verify installation requirements
exit status 255

If the cluster was new this does NOT happen.  The --dry-run isn't changing anything and we should be able to get an output without this validation error.   The solution is to change KUBECONFIG or clear cluster :(
We need to have a verify flag... or change it.  when turning off verify it still fails.
go run cmd/kubectl-kudo/main.go init --unsafe-self-signed-webhook-ca --version dev --dry-run -o yaml --verify=false
--upgrade fixes it... but this is NOT a good UX

there's challenge with cert-manager related resources. @ANeumann82 can fill in the details since he pointed it out

this really bugs me a lot, I am used to being able to get the yaml out of the CLI and hitting this all the time :(
./bin/kubectl-kudo init --version 0.15.0 -o yaml --dry-run
Errors
CRD operators.kudo.dev is already installed. Did you mean to use --upgrade?
Error: failed to verify installation requirements

I'm not sure how to fix this, to be honest. From what I see when have these options:

Change kudo init to silently upgrade an existing installation. I feel this is a bad idea, but I might be alone with this opinion.
Change kudo init --dry-run -o yaml to implicitly use --upgrade if it's not specified. I don't like it, because it changes the behaviour depending on the parameters.

If there is a third option, i'd love to hear it.
I do agree that this is weird when uninstalling KUDO, because we now need users to run kudo init --upgrade --dry-run -o yaml | kubectl delete -f - which is a mouthful. But I'd rather implement something like kudo init --uninstall, to be honest


ISPN-9086 Improve logging of topology updates

https://issues.jboss.org/browse/ISPN-9086

Rebased


Divide by 0 crash with math node and depth

Material Maker version: 0.99

OS/device including version: Windows 10 Latest

Issue description:

Had 3d view open. Inserted math node between pattern and output to divide pattern colors by 2, switched math node to divide before changing B from 0, crashed.
Steps to reproduce:

Open material maker and open 3d preview
Connect a math node output to output material depth
While B is still 0, change math mode to divide
Crash

Probably fixed by 41ee5a0. Will have to check.


fix(api-client): URL is not encoded when sent to the proxy

Currently, we just pass the request URL to the proxy (https://proxy.scalar.com?scalar_url=OUR_TARGET_URL_HERE) and this works for most cases.
It turns out, not in all cases. :) Actually we need to encode the target URL when adding it to the scalar_url parameter, otherwise we’ll get an error from the proxy:
✅ Works (regular URL)
https://proxy.scalar.com/?scalar_url=https://example.com/
❌ Doesn’t work (has a whitespace)
https://proxy.scalar.com/?scalar_url=https://example.com/?query=apple+banana
✅ Works (encoded)
https://proxy.scalar.com/?scalar_url=https%3A%2F%2Fexample.com%3Fquery%3Dapple%2Bbanana

As far as I understand it, characters can be percentage encoded, but don’t have to be encoded. That’s why it was working in most cases. With more encoding, it just works in more/all cases.


feat(block cipher): mode of operation

[ ] CBC
[ ] GCM

going to try this on top of @eightfilms's AES impl


Mac OS X : certificate verify failed (Seahorse::Client::NetworkingError)

Hello,
On Mac OS X I have the following error :
/Users/llange/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Seahorse::Client::NetworkingError)
	from /Users/llange/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:923:in `block in connect'
	from /Users/llange/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/timeout.rb:89:in `block in timeout'
	from /Users/llange/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/timeout.rb:99:in `call'
	from /Users/llange/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/timeout.rb:99:in `timeout'
	from /Users/llange/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:923:in `connect'
	from /Users/llange/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:863:in `do_start'
	from /Users/llange/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:858:in `start'
...

It seems linked with the following issue of aws-sdk-core and the fix suggested does indeed work.
If there is no adverse impact, could you please add the suggested fix ?
I added it to master/lib/terraforming.rb, just after the "require":
@@ -2,6 +2,7 @@
 require "ox"

 require "aws-sdk-core"
+Aws.use_bundled_cert!

 require "erb"
 require "json"

Thanks.

Reproduced on Windows:
c:/Ruby22/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Seahorse::Client::NetworkingError)
        from c:/Ruby22/lib/ruby/2.2.0/net/http.rb:923:in `block in connect'
...
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/aws-sdk-core-2.3.19/lib/seahorse/client/net_http/connection_pool.rb:281:in `start_session'
...
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/terraforming-0.9.1/lib/terraforming/resource/route53_zone.rb:52:in `hosted_zones'
        from (erb):1:in `apply_template'
        from c:/Ruby22/lib/ruby/2.2.0/erb.rb:863:in `eval'
        from c:/Ruby22/lib/ruby/2.2.0/erb.rb:863:in `result'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/terraforming-0.9.1/lib/terraforming/util.rb:4:in `apply_template'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/terraforming-0.9.1/lib/terraforming/resource/route53_zone.rb:19:in `tf'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/terraforming-0.9.1/lib/terraforming/resource/route53_zone.rb:7:in `tf'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/terraforming-0.9.1/lib/terraforming/cli.rb:203:in `tf'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/terraforming-0.9.1/lib/terraforming/cli.rb:190:in `execute'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/terraforming-0.9.1/lib/terraforming/cli.rb:131:in `r53z'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
        from c:/Ruby22/lib/ruby/gems/2.2.0/gems/terraforming-0.9.1/bin/terraforming:5:in `<top (required)>'
        from c:/Ruby22/bin/terraforming:23:in `load'
        from c:/Ruby22/bin/terraforming:23:in `<main>'


Unable to view permissions of public_key_read_access group in web ui [chef server 12.7.0]

Hi,
I've been tasked with detailing permissions for the various groups (users, admins, etc) as part of a SOX audit, unfortunately, I'm not able to view the permissions for the public_key_read_access group. The user I'm logged in with is a member of both users and admins, and both groups are a member of public_key_read_access. On every other group I'm able to view the permissions tab except for this one.
I looked at the database briefly and it seemed to indicate that my user had full permissions to the public_key_read_access group - is it possible that the web ui lacks the permissions to display that group somehow?
Any ideas for granting the needed permission to either myself or the user that the web ui authenticates as?
Alternatively, is there a workaround along the lines of a knife command or a psql statement I could run to show the equivalent of what the web ui would display?
Thanks,
Tim

@mynamewastaken Thank you for opening this issue. The public read access command got implemented but does have missing docs. Finding a way with a knife command or with chef-server-ctl might be the way to go forward on this.


Need reconciliation loop for node schedulable

Node controller stops posting node status, which means it also stops posting node schedulable bits.  What this implies is that when user mark a node unscheduable, it will never work, scheduler will still schedule pods on it, because node status is not updated by node controller anymore.
We need to merge status from node controller and kubelet.  node controller still syncs node, only if its observed status changed.
This is somehow similar to #6072

@davidopp @bgrant0607 @gmarek

Shouldn't the scheduler be using the Unschedulable bit in NodeSpec to decide whether a node is eligible for scheduling, rather than using NodeSchedulable condition?
(BTW @bgrant0607 had suggested in another thread that "NodeSchedulable should really be an ACK that Kubelet saw the spec bit" which I interpret to mean Kubelet should be posting NodeSchedulable, which would fix this problem. But I still think the scheduler should be looking at the spec, not the status, for unschedulable.)

We can also post the condition from kubelet BTW

Right, I the fix should be kubelet posting schedulable condition.  We've also discussed somewhere that node controller can merge the conditions.
Having scheduler looks at just status makes more sense to me. It provides a uniform view of node status to action on.

I think the scheduler should use the Schedulable value in NodeSpec, not the one in NodeStatus. Why do we care whether the node thinks it can be scheduled on?

The reasons for NodeSchedulable were:

To represent an ACK from Kubelet, since it's the last line of defense.
To enable clients to just look at NodeStatus and not look at NodeSpec when determining properties they need to reason about, such as schedulability.

I'm fine with eliminating the NodeSchedulable condition in NodeStatus, at least for now.


v1.6.380+ Regression: Glyphs’ migration to PUA can fail, get missed when rendered

Link to PDF file (or attach file here): confidential but can send over secure channel
Configuration: Any

Web browser and its version: Any
Operating system and its version: Any
PDF.js version: Any version more recent than 1.6.380
Is an extension: No

Explanation:
Starting from build 1.6.380, presumably with commit 8d036faf403fb71fd106f7f605251268feb6a658, symbolic fonts are having their glyphs moved entirely to the Private Use Area in order to work around a canvas rendition problem.
I have seen this cause an issue with one of my documents where Hangul glyphs using Arial Unicode MS do not render properly in PDF.js on or after said release (1.6.380). I have traced the problem through the codebase and think I know what the problem is.
The problem is that there are three Private Use Areas…

Basic Multilingual Plane, U+E000 - U+F8FF, 6400 glyphs
Plane 15, U+F0000 - U+FFFFD, 65534 glyphs
Plane 16, U+100000 - U+10FFFD, 65534 glyphs

…and PDF.js only moves glyphs into the first area which supposedly gives it capacity for 6400 glyphs, but I have a document that triggers a problem where certain glyphs do not render, because it is using a font marked as Symbolic and has more than that amount of glyphs, with some of them already in the U+E000 - U+F8FF range. In practice, this causes certain documents to render without all glyphs being seen and is reproducible both in Firefox Developer Edition and a custom viewer I built by pulling components from pdfjs-dist.
I have currently worked around this issue in my own system by setting that font as not symbolic, and left the following comments for your reflection —

This is probably because that the Private Use Area in question, while explicitly left undefined by the Unicode Consortium, has already been filled by vendors like Apple (which uses the last glyph 0xF8FF as an Apple icon) and Microsoft (in various Core Fonts, even Arial Unicode MS, whose version 1.01 contains 43 characters in the Private Use Area).
Therefore at this time the most immediate solution is to work around this issue by ensuring that if Arial Unicode MS is marked as Symbolic by whatever application producing a PDF, it is unmarked as Symbolic here within $Service.

It would be nice if we can either patch PRIVATE_USE_OFFSET_START and PRIVATE_USE_OFFSET_END (in src/core/fonts.js) or make PDF.js use all three Private Use Areas and ensure that it does not touch any glyph already in these areas.
I may be able to contribute that patch given enough guidance.

To use all three we'd need to modify the code that moves the glyphs to the private use area. It shouldn't be too hard to add support for all three. Alternatively, we could always use Plane 15. I seem to remember we had an issue using Plane 15 and 16, but I can remember what.

Also, do you have a PDF you can share that triggers this issue?

@brendandahl I can send the problematic page to you indeed. I have your email address embedded in the commit?

I managed to make a very small page which shows the problem. Please see attachment.
pdf-missing-embedded-glyphs.pdf

@evadne Thank you for the test-case!
However, since you remarked above that the PDF file contains sensitive information, are you aware that the file you attached still contains a lot more information than what's easily visible?
If one removes the /Cropbox entry from your PDF file, it's actually possible to recover the entire page since the information is still present in the file even though it's not visible by default.
If this is a problem, privacy wise, I'd suggest that you remove the like to the file!
And in case you want/need to remove your file, I'm attaching a reduced PDF file which contains only the text visible in your file and nothing more: issue8255_reduced.pdf.

@Snuffleupagus thanks for the trim 😃

I have a Pull Request up ☝ but not sure if that change makes sense?


minor: name optional

:tada: This PR is included in version 12.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Move Swift publishing workflow to main repo

Swift Publishing Workflow Consolidation
This PR relocates the Swift publishing workflow from the breez/breez-sdk-swift repository to the main repository. This change simplifies the publishing process by integrating it with the main repo's CI workflow.
📖 Overview
Previously, the Swift publishing workflow required separate triggers, unlike other platforms managed centrally in the main repo via the publish-all-platforms workflow. This PR enhances the Swift package publishing by:

Streamlining the publishing process by integrating the Swift package into the main repo's CI workflow.
Improving build runtime and reliability by reusing the already built binary SDK and language bindings from the main repo's workflows.

One interesting point: Because our Flutter and React Native packages rely on the Swift package at runtime, the PR includes logic to ensure that the Flutter and React Native packages are only published if the Swift package is successfully published too, preventing issues with runtime dependencies. If the Swift package is not set to be published, then the Flutter and React Native packages are published nonetheless allowing us to release updates to those packages that depend on an already published Swift package. Special thanks to @JssDWt for the solution adapted from this PR.
❓ Outstanding Questions
Before merging this PR, we need to address two key points. The first is straightforward, while the second requires some feedback.

Setting CocoaPods Token
We need to set secrets.COCOAPODS_TRUNK_TOKEN in the main repo to publish to the CocoaPods trunk. This token is currently only set in the breez-sdk-swift repo (I believe we're using @roeierez's token there). The simplest solution is to just move the token from the Swift repo to the main repo.

Publishing breez_sdkFFI.xcframework
The Swift package and CocoaPods require a download link to the breez_sdkFFI.xcframework binary artifact. Currently, we create a GitHub release in the breez-sdk-swift repo and attach the XCFramework as a binary artifact. Moving the workflow to the main repo presents a few challenges for maintaining this setup. I believe options 1 and 3 are the most straightforward, with option 2 being a viable alternative that may need some experimentation.

Option 1: Use a GitHub Personal Access Token to replicate the current setup. This would involve creating a release in the breez-sdk-swift repo from the CI workflow in the main repo. While simple, this requires using user-bound tokens with broad permissions, which isn't ideal.
Option 2: Use a GitHub app to provide short-lived tokens for the workflow. This option offers better security with non-user-bound tokens but requires more setup.
Option 3: Create the release in the main breez-sdk-greenlight repo instead of the breez-sdk-swift repo and attach the artifact there. This option is easy to set up and doesn't require special tokens, but it requires releases to be created on the main repo whenever we want to update or publish the Swift package. Not ideal, imo.
Option 4: Find an alternative hosting solution outside of GitHub for the artifact, accessible to our users.

✋ Feedback Request
I'd appreciate your thoughts on these options, particularly regarding the second point. Looking forward to your feedback. 🙏

2. Publishing breez_sdkFFI.xcframework
The Swift package and CocoaPods require a download link to the breez_sdkFFI.xcframework binary artifact. Currently, we create a GitHub release in the breez-sdk-swift repo and attach the XCFramework as a binary artifact. Moving the workflow to the main repo presents a few challenges for maintaining this setup. I believe options 1 and 3 are the most straightforward, with option 2 being a viable alternative that may need some experimentation.

We have a similar setup for go. There we pass a repo ssh key to provide commit access. https://github.com/breez/breez-sdk-greenlight/blob/main/.github/workflows/publish-golang.yml#L31. I think we can use the same construct here (so option 1).

Also check out the https://github.com/breez/breez-sdk-liquid repo, it publishes from the main publishing flow

Thanks for the feedback guys and the pointer to the other repos.
Will have a look!

Alright, I've added an action-archival step for the XCFramework (the language bindings are already archived here).
That means we're now just missing the publishing token analogous to the publishing for the Swift publishing for breez-sdk-liquid.
@yaslama Is that ok with you? I know we've previously talked about trying not to use a token. Let me know what you think. 🙏

@yaslama Is that ok with you? I know we've previously talked about trying not to use a token. Let me know what you think. 🙏

Let's use tokens for now and try to find an alternative.

Looks good it me, if it works, let's merge it. Did you test this with publish=false with some different configurations?

Looks good it me, if it works, let's merge it. Did you test this with publish=false with some different configurations?

Thanks for your feedback! 🙇 I primarily tested the syncing logic to ensure that the React Native and Flutter publishing workflows behave as follows:

Both Swift and Android packages are published: React Native and Flutter are published only if both Swift and Android publishing succeed.
Either Swift or Android package is published: React Native and Flutter are published only if the respective (Swift or Android) publishing succeeds.
Neither Swift nor Android packages are published: React Native and Flutter are published regardless of Swift or Android status, allowing for RN/Flutter patches without re-publishing Swift or Android.

Here's my test notes:

Tests using dummy binaries (publish == false)

Wokflow config: ["maven", "swift"]

https://github.com/breez/breez-sdk/actions/runs/9928882340
jobs dependent on maven and swift run after maven and swift as expected

Wokflow config: ["maven"]

https://github.com/breez/breez-sdk/actions/runs/9928828401
jobs dependent on maven and swift run after maven as expected

Wokflow config: ["swift"]

https://github.com/breez/breez-sdk/actions/runs/9928935630
jobs dependent on maven and swift run after swift as expected

Wokflow config: ["maven", "swift"]

hardcoded a fail for swift
https://github.com/breez/breez-sdk/actions/runs/9928994716
jobs dependent on maven and swift don't run as expected

Wokflow config: ["golang"]

https://github.com/breez/breez-sdk/actions/runs/9929068463
jobs dependent on maven and swift run after as expected

Tests using actual binaries (publish == false)

Wokflow config: ["flutter", "swift"]

https://github.com/breez/breez-sdk/actions/runs/9929607744
jobs dependent on maven and swift run after maven and swift as expected

Of course, CI is hard to fully test so when we merge this and see that publishing fails feel free to revert and let me know and I will fix whatever problems there might be.

⚠ Before we merge this, we need to set the SWIFT_RELEASE_TOKEN for the https://github.com/breez/breez-sdk-swift repo as a GH actions secret here.

Here's my test notes:

Tests using dummy binaries (publish == false)
        * Wokflow config: ["maven", "swift"]

                  * https://github.com/breez/breez-sdk/actions/runs/9928882340
                  * jobs dependent on maven and swift run after maven and swift as expected
        * Wokflow config: ["maven"]

                  * https://github.com/breez/breez-sdk/actions/runs/9928828401
                  * jobs dependent on maven and swift run after maven as expected
        * Wokflow config: ["swift"]

                  * https://github.com/breez/breez-sdk/actions/runs/9928935630
                  * jobs dependent on maven and swift run after swift as expected
        * Wokflow config: ["maven", "swift"]

                  * hardcoded a fail for swift
                  * https://github.com/breez/breez-sdk/actions/runs/9928994716
                  * jobs dependent on maven and swift don't run as expected
        * Wokflow config: ["golang"]

                  * https://github.com/breez/breez-sdk/actions/runs/9929068463
                  * jobs dependent on maven and swift run after as expected

Tests using actual binaries (publish == false)
        * Wokflow config: ["flutter", "swift"]

                  * https://github.com/breez/breez-sdk/actions/runs/9929607744
                  * jobs dependent on maven and swift run after maven and swift as expected

Great notes!

⚠ Before we merge this, we need to set the SWIFT_RELEASE_TOKEN for the https://github.com/breez/breez-sdk-swift repo as a GH actions secret here.
Who can help me with that?

@roeierez

⚠ Before we merge this, we need to set the SWIFT_RELEASE_TOKEN for the https://github.com/breez/breez-sdk-swift repo as a GH actions secret here.
Who can help me with that?

@roeierez

@JssDWt @cnixbtc Done.

Thanks for the corrections @dangeross. Note to myself: No more last minute changes without proofreading. Will be more careful with these things next time.
Just to double check: Is the COCOAPODS_TRUNK_TOKEN already set as a secret in this repo? If not I think @roeierez will need to add that one too.

Thanks for the corrections @dangeross. Note to myself: No more last minute changes without proofreading. Will be more careful with these things next time. I'll give it one more trial run here: https://github.com/breez/breez-sdk-greenlight/actions/runs/10706106599
Just to double check: Is the COCOAPODS_TRUNK_TOKEN already set as a secret in this repo? If not I think @roeierez will need to add that one too.

Test run failed due to some (I think) unrelated issues with building the Kotlin lang bindings. But I saw that @JssDWt did some test runs earlier that were successful. I will be on holiday for the next 2 weeks (starting on the 7th). Let me know guys if you'd prefer to merge this before or after. :)

Test run failed due to some (I think) unrelated issues with building the Kotlin lang bindings. But I saw that @JssDWt did some test runs earlier that were successful. I will be on holiday for the next 2 weeks (starting on the 7th). Let me know guys if you'd prefer to merge this before or after. :)

This is a problem that comes up after rust 1.80. I ran into this issue with cln as well, I downgraded to rust 1.79 there. Let me see how to fix this here.

@cnixbtc can you try a rebase?

@cnixbtc can you try a rebase?

Rebased onto main.

Guys, as mentioned above, I will be off the grid for 2 weeks now. I can take this over the finish line and when I'm back but of course feel free to merge it beforehand when you feel like it. Whatever it is thanks for the help so far and I'll report back in two weeks. :)

I've removed the rust caches, and now the build works. It was picking time 0.3.30, where it should have picked 0.3.36`. Or maybe the build didn't use your rebased version yet.

Alright, so I did three more test runs. For all three I used the workflow from this branch and the repo code from the 0.6.1 tag.

["flutter", "react-native", "swift"]: swift runs first, then flutter and react native in parallel
["react-native", "flutter"]: both run in parallel without waiting for the (non existing) swift build
["swift"]: runs as expected

Good to go from my side.

Just to double check: Is the COCOAPODS_TRUNK_TOKEN already set as a secret in this repo? If not I think @roeierez will need to add that one too.

@roeierez

@dangeross I checked with Roei, COCOAPODS_TRUNK_TOKEN is set.
SWIFT_RELEASE_TOKEN is set too and REPO_SSH_KEY is used by other jobs too so must be set already. 🙃


Function overloads using string singleton arg and fallback any always uses fallback

Consider the following code:
local foo: ((val: "a") -> number) & ((val: "b") -> string) & ((val: any) -> boolean) = nil

local x = foo("a")

The type of x will always be boolean, even though it matches the first overload in the list, and we want it to be number.
I did a little bit of digging, with the culprit being around this area:
https://github.com/Roblox/luau/blob/0d6aacf407d25d547ddc93266005e33365f82403/Analysis/src/TypeInfer.cpp#L4114-L4151
It seems that if I remove the final overload which allows any to be an argument, then expected types will list {"a", "b"} as singletons.
If I then introduce the any overload, expected types will just be any.
This then influences what argPack is. When expected types is {"a", "b"}, then argPack is the string singleton "a". If, however, expected types is just any, then the argPack is just the primitive String type, not the more correct string singleton.
With this, we then fail to unify when we check the first overload, so it falls back to the last overload.

Looking further, there seems to be a few possible ways this could be fixed:

Setting forceSingleton to true during this call in checkExprList: https://github.com/Roblox/luau/blob/0d6aacf407d25d547ddc93266005e33365f82403/Analysis/src/TypeInfer.cpp#L4562 This fixes the issue, but does cause a lot of tests to fail since error messages are changed since a more strict singleton type is now present. I'm not sure if this is acceptable or not
Making an any type return true in maybeSingleton, so that checkExpr creates a singleton type instead of a generic string type. This has the same "problem" as above
Make getExpectedTypesForCall to return "a" | "b" | any rather than normalising to any. Not sure this is possible.

Actually... there seems to be another solution: changing the last overload to be (val: unknown) -> boolean.
This solves the original task, without having the drawback of any causing problems during unification, causing this issue.
I want to use this in the context of require, which is typed as declare function require(target: any): any. Maybe this could be changed to target: unknown. Unsure on any consequences for this though.

Part of the problem is that a function
  f : ((S1) -> T1) & ((S2) -> T2)

is treated the same as
  f : ((S1) -> T1) & ((S2) -> T2) & ((S1 & S2) -> (T1 & T2))

and as
  f : ((S1) -> T1) & ((S2) -> T2) & ((S1 | S2) -> (T1 I T2))

You can see the loooooong discussion of why at https://github.com/Roblox/luau/blob/42a2805f85d2fff8360a8da9b7af33f30c322430/Analysis/src/Normalize.cpp#L2267
So your original function:
((val: "a") -> number) & ((val: "b") -> string) & ((val: any) -> boolean)

ought to treated as also having overloads
("a" & any) -> (number & boolean)

which is the same as
("a") -> never

We have "overhaul function overload resolution" on our roadmap, but in this case you'd get x having type number & boolean which is probably not what you want.


_domainSeparatorV4 don't equal with my calculate

Hi,
I calculate the _domainSeparatorV4 use the same code, but get different hash, why?
code is as following:

contract AirDrop is
    Initializable,
    UUPSUpgradeable,
    EIP712Upgradeable,
    OwnableUpgradeable {
    using ECDSAUpgradeable for bytes32;

    // keccak256("VerifyRequest(address nftAddr,bytes code)")
    bytes32 public constant _TYPE_HASH = 0x0770a285c5c7a6270edd5cc7e6673e602be3f33d84fbc5110f5a563b9035d607;

    function _authorizeUpgrade(address newImplementation)
        internal
        view
        override
    {
        newImplementation;
        require(msg.sender == owner(), "no auth");
    }

    function initialize(address _signer) public payable initializer {
        __Ownable_init();
        __EIP712_init("AirDrop", "1.0");
    }

    function domainSeparatorV4() public view returns (bytes32) {
        return _domainSeparatorV4();
    }

    function calcDomainSeparatorV4() public view returns (bytes32) {
        return keccak256(abi.encode(_TYPE_HASH, _EIP712NameHash(), _EIP712VersionHash(), block.chainid, address(this)));
    }

}

And when in my test contract, the result returned by domainSeparatorV4() and calcDomainSeparatorV4()  is different, what's the problem?

the version of openzeppelin-contracts-upgradeable is 4.9.3

I know, I should NOT override the _TYPE_HASH


throw when integer overflow occurs

Fixes #8701 by throwing early. The workaround is to start using V3 or V4.

LGTM. Thanks for fixing this!

Just for posterity, Pinot raw forward indexes have always had this limitation; it wasn’t a regression.


Times in the Specimen template

What times are really the most important in the specimen excel template?  My experience is almost entirely with water samples where the collection time is really what's important.  In this case, the only time most users would have is the sample collection time and the template would use that same time for both the specimen collection action in the Actions block and the value date time in the MeasurementResultValues block.  But the sample analysis time is often un-tracked or completely unknown so the result-producing specimen analysis action will not have any time associated with it.
I know there will also certainly be cases with specimens where neither the collection nor the analysis time will be known and therefor all of the times will be blank.
But are there cases where the time associated with the value date/time should be the analysis date time?  Should it be up to the user?
And, as a side note, we really need to figure out how we are going to deal with missing times in ODM2, because right now they are required fields in a number of tables.

Except for the geological examples (rocks) that Kerstin mentioned recently, where the time of collection is not crucial (and may not be known exactly), I think collection time is typically the most important piece of information. But I can think of a couple of other tricky issues:

Analyses involving radioactive decay, like 14C. Collection time is still the most important time, scientifically, but analysis time is critical in order to account for decay since collection.
Same for materials that may have a risk of undergoing biological transformation.
Process rate experiments involving multiple analyses over time

But I can imagine YODA files being used in at least two different ways:

Conveying a lot of lab and analytical details
Conveying just final results (eg, the process rate value, not the individual measurements or intermediate steps involved)

I would imagine that for CZOData, the majority of cases will be more like the second one.
I don't know if these comments help you in any way, but there they are.


another bug

https://github.com/YPetremann/Diplomacy/blob/master/control.lua#L170
gui.add(players, player2.connected and button_model or button_disaabled_model, {{caption=player2.name, name="diplomacy_force_player_button{'"..player2.name.."'}"}})
"button_disaabled_model" ... XDD
should be 'button_disabled_model'
gui.add(players, player2.connected and button_model or button_disabled_model, {{caption=player2.name, name="diplomacy_force_player_button{'"..player2.name.."'}"}})

Thanks a lot, for now I didn't test this one.
This will be solved in next release.


I am facing an issue in detecting available biometrics on samsung mobile (device model A03).

Is there an existing issue for this?

[X] I have searched the existing package issues
[X] I have read the guide to filing a bug

What package does this bug report belong to?
local_auth
What target platforms are you seeing this bug on?
Android
Have you already upgraded your packages?
Yes
Dependency versions
pubspec.lock
local_auth:
dependency: "direct main"
description:
name: local_auth
sha256: "7e6c63082e399b61e4af71266b012e767a5d4525dd6e9ba41e174fd42d76e115"
url: "https://pub.dev"
source: hosted
version: "2.1.7"
local_auth_android:
dependency: transitive
description:
name: local_auth_android
sha256: df4ccb3193525b8a60c78a5ca7bf188a47705bcf77bcc837a6b2cf6da64ae0e2
url: "https://pub.dev"
source: hosted
version: "1.0.35"
local_auth_ios:
dependency: transitive
description:
name: local_auth_ios
sha256: "8293faf72ef0ac4710f209edd03916c2d4c1eeab0483bdcf9b2e659c2f7d737b"
url: "https://pub.dev"
source: hosted
version: "1.1.5"
local_auth_platform_interface:
dependency: transitive
description:
name: local_auth_platform_interface
sha256: fc5bd537970a324260fda506cfb61b33ad7426f37a8ea5c461cf612161ebba54
url: "https://pub.dev"
source: hosted
version: "1.0.8"
local_auth_windows:
dependency: transitive
description:
name: local_auth_windows
sha256: "505ba3367ca781efb1c50d3132e44a2446bccc4163427bc203b9b4d8994d97ea"
url: "https://pub.dev"
source: hosted
version: "1.0.10"

Steps to reproduce
I am facing an issue in detection of available biometrics. I am using samsung mobile device model A03 and this mobile device is only provides the face authentication, pin, pattern, password. Fingerprint is not supported in this mobile device.
Expected results
Expected result is to get the face authention in returns of getAvailableBiometrics function.
Actual results
getAvailableBiometrics function returning empty list.
Code sample
Code sample
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:local_auth/local_auth.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State createState() => _MyAppState();
}
class _MyAppState extends State {
final LocalAuthentication auth = LocalAuthentication();
_SupportState _supportState = _SupportState.unknown;
bool? _canCheckBiometrics;
List? _availableBiometrics;
String _authorized = 'Not Authorized';
bool _isAuthenticating = false;
@override
void initState() {
super.initState();
auth.isDeviceSupported().then(
(bool isSupported) => setState(() => _supportState = isSupported
? _SupportState.supported
: _SupportState.unsupported),
);
}
Future _checkBiometrics() async {
late bool canCheckBiometrics;
try {
canCheckBiometrics = await auth.canCheckBiometrics;
} on PlatformException catch (e) {
canCheckBiometrics = false;
print(e);
}
if (!mounted) {
return;
}
setState(() {
  _canCheckBiometrics = canCheckBiometrics;
});

}
Future _getAvailableBiometrics() async {
late List availableBiometrics;
try {
availableBiometrics = await auth.getAvailableBiometrics();
} on PlatformException catch (e) {
availableBiometrics = [];
print(e);
}
if (!mounted) {
return;
}
setState(() {
  _availableBiometrics = availableBiometrics;
});

}
Future _cancelAuthentication() async {
await auth.stopAuthentication();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: ListView(
padding: const EdgeInsets.only(top: 30),
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (_supportState == _SupportState.unknown)
const CircularProgressIndicator()
else if (_supportState == _SupportState.supported)
const Text('This device is supported')
else
const Text('This device is not supported'),
const Divider(height: 100),
Text('Can check biometrics: $_canCheckBiometrics\n'),
ElevatedButton(
onPressed: _checkBiometrics,
child: const Text('Check biometrics'),
),
const Divider(height: 100),
Text('Available biometrics: $_availableBiometrics\n'),
ElevatedButton(
onPressed: _getAvailableBiometrics,
child: const Text('Get available biometrics'),
),
const Divider(height: 100),
Text('Current State: $_authorized\n'),
if (_isAuthenticating)
ElevatedButton(
onPressed: _cancelAuthentication,
child: const Row(
mainAxisSize: MainAxisSize.min,
children: [
Text('Cancel Authentication'),
Icon(Icons.cancel),
],
),
),
],
),
],
),
),
);
}
}
enum _SupportState {
unknown,
supported,
unsupported,
}

Screenshots or Videos

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.16.1, on macOS 14.1.2 23B92 darwin-arm64, locale en-PK)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)
[✓] VS Code (version 1.77.3)
[✓] Connected device (5 available)
[✓] Network resources

@m-ahsanfarooq
This is similar to https://github.com/flutter/flutter/issues/117309 so please follow-up in it for further updates.
Closing this as a duplicate.


Implemented identifier system search

Coverage decreased (-0.009%) to 95.242% when pulling ba2f5abe9d8020ca3ea8746babdec60666e14881 on cody-identifier-system-search into a88e3225c9b159ce6ad3b252ca5af05f6b5331bd on main.


⚠ Turnos 24x7 has degraded performance

In 274f33f, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 991 ms

Resolved: Turnos 24x7 performance has improved in 545e7c5.


Show developers a list of in-progress forms

Some of the new features make it easier for someone to stay in the Weaver for a longer period of time. We should make it possible to see a list of saved sessions. It will be a bit long and not helpful for everyone so we might think about filtering it based on whether they reached the download screen or not?

Fixed in #665


Refresh page and then editing messes up editor state

There's a small bug related to incremental value updates in peer-base.
I have a fix incoming shortly.

This is fixed with https://github.com/peer-base/peer-base/pull/209


DNN-7238: reducing user and module indexers memory footprint.

This is a fixed pull request for issue DNN-7238 (the older pull request was incorrect).

This will be resubmitted against the correct branch


Rust: Target Correct Rust Analyzer Extension

The matklad.rust-analyzer extension has been replaced in favor of rust-lang.rust-analyzer. Since the old extension no longer exists, I've updated the referenced extension in the dev container configurations.

Awesome, thanks!


[IOTDB-2550] Avoid show timeseries error after alter tag on sync sender

problem:
a error will be thrown when transfer a "alter timeseries add tag" statement executed by sender.

solution:
forbid alter tag statement replaying in receiver(more specificlly, forbid in o.a.i.d.sync.reciever.transfer.SyncServiceImpl#loadMetadata)

Coverage increased (+0.02%) to 67.741% when pulling 20cf51258f659f287ba6e6ec03ebc902b5c5e0c2 on yschengzi:syncAddUserGuide into 4eb8e4e5baaeea5fa1ac92240bc756b28f123523 on apache:master.


Add a "Share as Image" Feature

Describe the solution you'd like
It would be great if memos could support a feature to export a memo as a styled image. This would allow users to generate a visually appealing image of their memo content with a single click, making it easy to save locally or share on social media or with others.
The process could include:

Adding a "Share as Image" button for each memo.
Styling the exported image with a clean background, memo content, and date.
Providing the option to save the image locally or copy it to the clipboard.

Type of feature
User Interface (UI)
Additional context
I often find myself wanting to share my memos visually rather than just as plain text. This is especially useful for social platforms or when communicating with colleagues, as it provides a more engaging and shareable format. It’s a feature I’ve seen in apps like Flomo, and I believe it would be a valuable addition to Memos as well.
Thank you for considering this, and for building such an amazing tool! 😊

Memos use to have a "share as image" feature. This was removed. See chat from discord

and the removal pr


Write a Kotlin program to find digital root of a number

Description
Write a Kotlin program to find digital root of a number
Digital root of a number is the recursive sum of its digits until we get a single digit number.
Input  : 1234
Output : 1

How to contribute

Save the solution in program/FindDigitalRootOfANumber.kt file
Add FindDigitalRootOfANumber.kt file in find-digital-root-of-a-number folder

!assign


Update packaging + CI, switch aioredis -> redis

This is to match what we do in prosemirror-py: setuptools for packaging, uv for dependencies, codecov for coverage. Switches from the unmaintained aioredis to redis' async support. Also removes riot.

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella:


try fix in portal

Overview

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: [ABC-123]
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change
[ ] This PR includes testing instructions tests for the code change
[ ] The alpha package of this PR is passing end-to-end tests in all relevant Codecademy repositories

Testing Instructions

Don't make me tap the sign.
PR Links and Envs

Repository
PR Link
PR Env

Monolith
Monolith PR
Monolith Env

Portal
Portal Link
Portal Env

Another Repo
Another Link
Another Env

📬Published Alpha Packages:@codecademy/gamut@57.4.1-alpha.102a91.0@codecademy/gamut-kit@0.6.449-alpha.102a91.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://670ea0b652dd3f1c19e31439--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.1-alpha.b6c5c5.0@codecademy/gamut-kit@0.6.449-alpha.b6c5c5.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://670ebd3652dd3f43ffe31151--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.1-alpha.72706c.0@codecademy/gamut-kit@0.6.449-alpha.72706c.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://670ec21f5c232c3f7eee5c73--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.1-alpha.59c7e9.0@codecademy/gamut-kit@0.6.449-alpha.59c7e9.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://670ec8185c232c4776ee5d8b--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.1-alpha.e30e52.0@codecademy/gamut-kit@0.6.449-alpha.e30e52.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://670ed577d8f8e65d514c4224--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.1-alpha.836a6a.0@codecademy/gamut-kit@0.6.449-alpha.836a6a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://670edc803a69266d1f5da908--gamut-preview.netlify.appDeploy Logs


Removed (00.00) on landing page of BMI Calculator

Fixes Issue🛠

Closes #306
Description👨💻
Now I have made the close option align properly to the right-center.
Type of change📄

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

How this has been tested✅
I have checked that on pressing Calculate BMI, the close option is aligned properly.
Checklist✅

[☑] My code follows the style guidelines of this project
[☑] I have performed a self-review of my own code
[☑] I have commented my code, particularly in hard-to-understand areas
[☑] I have added demonstration in the form of GIF/video file
[☑] I am an Open Source Contributor

Screenshots/GIF📷

I have aligned close option now.

No need to open new second PR for aa small change or even big change. You can do any changes in opened PR only. Take care from the next time!!
Merged 🎉 @TanushreeBorase

No need to open new second PR for a small change or even big change. You can do any changes in opened PR only. Take care from the next time!!
Merged 🎉 @TanushreeBorase

Thanks for guidance


How to get start

Hello! I tried to get start with this code, but found I can't get data like "DEAP.npz". Could plz share it ?

Hi,
unfortunately I am not allowed to redistribute the data. You can request a copy of the raw data here:
Next, you can preprocess the dataset with the code from this notebook
The parameters for preprocessing can be found in the paper corresponding to this repository.
Just let me know if you need any further details. Hope this helps you!


Information about code structure in README

Is it possible to add some explanation in the README about the structure of the code and the algorithm?
It would not only make this project more educational but it would also make it easier for people to understand the code better and thus to make contributions.
Thanks.

Information has been added under the wiki tab. I am closing this issue as it has been resolved, but if you want more info posted on the wiki, please continue to comment here.


Error when running dune-release distrib

Hey all, I'm running into an issue with dune-release.1.6.2 and hoping somebody sees something I don't. I initially ran dune-release distrib and received an error from a git command, so I ran dune-release distrib --dry-run in hopes of seeing more info and noticed a line git --git-dir .git clone --local .git _build/irmin-3.4.0.build which clones an empty repository as demonstrated by:
# git --git-dir .git clone --local .git _build/irmin-3.4.0.build
Cloning into '_build/irmin-3.4.0.build'...
warning: You appear to have cloned an empty repository.
done.

Here is the original error, which makes sense if the repository is empty (and therefore doesn't have the tag):
# dune-release distrib --skip-tests
[-] Building source archive
dune-release: [ERROR] Exit code 128 from command
    `git --git-dir _build/irmin-3.4.0.build/.git --work-tree
       _build/irmin-3.4.0.build/ checkout --quiet -b dune-release-dist-3.4.0
       3.4.0`:
  fatal: '3.4.0' is not a commit and a branch 'dune-release-dist-3.4.0' cannot be created from it

If I change the git clone command to git --git-dir .git clone --local . _build/irmin-3.4.0.build  (change --local .git to --local .) it clones correctly, but I cannot use this since dune-release distrib removes the directory first. I'm on git version 2.37.2.
Any advice or help?

The best I can tell, the code at the core of this issue is very old so I guess this is something to do with my system (?). I even tried downgrading to an older version of git but behavior did not change.
I was ultimately able to successfully use dune-release distrib locally by changing the code to use "." instead of ".git".

Am I right in assuming that you are trying to release Irmin 3.4.0? Have you run dune-release tag before?
Just so I know how to reproduce this issue.

Yep, that's right. dune-release tag was run before dune-release distrib. Here is our release checklist https://github.com/mirage/irmin/blob/main/RELEASE.md#releasing-to-opam-repository-and-github.
I'm pretty confused by this issue given the code is old and I have successfully used dune-release with irmin on a different computer.
If it helps, here is my hacky patch to get a local version that allowed me to release.
diff --git a/lib/dune b/lib/dune
index 3c85f62..c3c1cde 100644
--- a/lib/dune
+++ b/lib/dune
@@ -1,5 +1,5 @@
 (library
  (name dune_release)
  (public_name dune-release)
- (libraries fmt fpath bos curly opam-state rresult bos.setup yojson
+ (libraries str fmt fpath bos curly opam-state rresult bos.setup yojson
    opam-file-format re))
diff --git a/lib/vcs.ml b/lib/vcs.ml
index dc0d5d8..2618997 100644
--- a/lib/vcs.ml
+++ b/lib/vcs.ml
@@ -147,10 +147,19 @@ let git_branch_exists ~dry_run r br =
   match run_git_quiet ~dry_run r cmd with Ok () -> true | _ -> false

 let git_clone ~dry_run ?force ?branch ~dir:d r =
+  let src =
+    (match
+       Fpath.to_string (dir r) |> Str.global_replace (Str.regexp {|\.git|}) ""
+     with
+    | "" -> "."
+    | s -> s)
+    |> Fpath.v
+  in
+
   let branch =
     match branch with None -> Cmd.empty | Some b -> Cmd.(v "-b" % b)
   in
-  let clone = Cmd.(v "clone" % "--local" %% branch % p (dir r) % p d) in
+  let clone = Cmd.(v "clone" % "--local" %% branch % p src % p d) in
   run_git ~dry_run ?force r clone ~default:Default.unit OS.Cmd.out_stdout
   >>= fun () -> Ok ()

This is very strange, given as you say this code hasn't been changed in forever and it would mean it doesn't work at all anywhere. So I went to clone irmin (btw, I think you forgot to push the commit that updates the changelog to 3.4.0 - I know because that happens to me all the time) and tried releasing (or well, building a tarball) and it… worked out of the box with dune-release.1.6.2.
It is pretty disheartening to just say "works on my machine" so let's try to investigate further. I tried the same command as you: git --git-dir .git clone --local .git _build/irmin-3.4.0.build and that has created a working clone. I use Fedora Linux so my git version should be reasonably up to date, and git --version tells me git version 2.37.2 which is even the newest release.
So maybe there is some odd setting in your git config? Maybe something strange in your .git? Could you try creating a new switch and see if it works there?

Thanks for helping to investigate. I figured out what it is, and it's a pretty funny issue (to me).
I'm using Arch, git version 2.37.2. The other computer (also running Arch) hasn't had its packages updated in a few weeks. After confirming it still worked to create the tarball with dune-release distrib, I updated its packages, and indeed -- it still worked.
So it came down to something with git. Git configs on both computers are equivalent, so I looked into the .git directory and noticed a very odd thing -- another .git directory! I have no idea how I ended up in this situation, but deleting this directory fixes the issue for me.
I learned two things with this issue:

git clone is resilient to a nested .git directory if you clone the root of the project but not the .git directory itself, which in hindsight makes sense.
Past me played a very sneaky trick on current me.

Thanks again for your help.


SOLR-16628: Ensure that InputStreams are closed after Xml parsing

See: SOLR-16628

I found a reproducible line on branch_9_1 using JDK 11 on my aging laptop.

gradlew -p solr/core test -Ptests.iters=10 --tests TestCoreContainer

Applying the changes here made this pass!  Also with simpler try-with-resources pattern in one file.
Thanks again.

RE 9.1.1 eh... I wouldn't bother, personally.  Let's see if a more serious concern is brought up.

RE 9.1.1 eh... I wouldn't bother, personally. Let's see if a more serious concern is brought up.

This makes sense to me. I suspect this has been a (mostly) latent issue for a while now. SOLR-15337 may have made it more apparent in some ways, but I think this type of issue existed, even in this part of the codebase, even before that.

Ok, so targeting 9.2 release. Does this warrant a CHANGES.txt entry? I'm thinking "no" ... nobody has actually reported this being a problem in the wild, afaik?

CHANGES.txt -- I recommend adding an entry.  It is a bug, albeit minor.
I recommend waiting until after 9.1.1 vote passes before merging or adding CHANGES.txt.  There is a chance we'll pull it into 9.1.1 even though at this moment we think not.

With 9.1.1 released, added a CHANGES.txt entry for 9.2.0 release. Pending any feedback, I plan to merge this tomorrow.


AWS CPP SDK will not build

Confirm by changing [ ] to [x] below:

[x ] I've gone though Developer Guide and API reference
[ x] I've searched for previous similar issues and didn't find any solution

Platform/OS/Hardware/Device
What are you running the sdk on?
Windows 10
Describe the question
The build of the AWS SDK as described in the doc fails repetitively.
I attempt to use
.\vcpkg\vcpkg install "aws-sdk-cpp[*]":x64-windows --recurse
it also fails with the same error when using
.\vcpkg\vcpkg install "aws-sdk-cpp[*]" --recurse
The reputed error is
CMake Error at cmake/sdks.cmake:147 (message):
applicationcostprofiler is required for build, but
aws-cpp-sdk-applicationcostprofiler directory is missing!
Call Stack (most recent call first):
CMakeLists.txt:253 (include)
I installed and pathed CMake 3.21 as the same error occurred with 3.20.2  .
Logs/output
attached
To enable logging, set the following system properties:
REMEMBER TO SANITIZE YOUR PERSONAL INFO
[build_attempt_for_aws_cpp_sdk.txt](https://github.com/aws/aws-sdk-cpp/files/6855808/build_attempt_for_aws_cpp_sdk.txt)

@MarkhailAW ,
So first... yea what's happening here is that vcpkg is installing only up to version 1.8.126, which did not have the application cost profiler service, so when it tries to find it, it isn't there. Updating the version vcpkg uses is a bit of a problem at the moment so I can't promise it changing any time soon.
Having said that there are a few things you can do here:

specify the services you are planning to use by adding them to the install command (assuming you are not planning on using the application cost profiler ), for example:

.\vcpkg\vcpkg install "aws-sdk-cpp[s3,dynamodb,lambda,ec2]" --recurse

You could build from source, it is our recommended way and the one we have more control over so we can support you better with errors that happen this way.

YES !   (and no, but that's later...)
This worked :
.\vcpkg\vcpkg install "aws-sdk-cpp[s3,dynamodb,lambda,ec2,rds,rds-data]"
--recurse
Thanks!  Now I can go get into other trouble by trying to make my code
work.....
As for the build from source...there is no joy there.  I guess this is
another incident, but the ugly short details are:
cmake c:\aws-sdk-cpp-main -G "Visual Studio 16 2019"
-DCMAKE_BUILD_TYPE=Release
....
CMake Error at CMakeLists.txt:179 (include):
include could not find requested file:
AwsFindPackage

CMake Error at CMakeLists.txt:191 (add_subdirectory):
The source directory
C:/aws-sdk-cpp-main/crt/aws-crt-cpp

does not contain a CMakeLists.txt file.
-- Add s3-crt:s3 to C2J_SPECIAL_NAME_LIST
-- Updating version info to 1.9.64
-- Custom memory management disabled
CMake Error at aws-cpp-sdk-core/CMakeLists.txt:504 (aws_use_package):
Unknown CMake command "aws_use_package".
On Wed, Jul 21, 2021 at 7:09 PM Gilberto Lopez Zayas <
@.***> wrote:

@MarkhailAW https://github.com/MarkhailAW ,
So first... yea what's happening here is that vcpkg is installing only up
to version 1.8.126, which did not have the application cost profiler
service, so when it tries to find it, it isn't there. Updating the version
vcpkg uses is a bit of a problem at the moment so I can't promise it
changing any time soon.
Having said that there are a few things you can do here:

specify the services you are planning to use by adding them to the
install command (assuming you are not planning on using the application
cost profiler ), for example:

.\vcpkg\vcpkg install "aws-sdk-cpp[s3,dynamodb,lambda,ec2]" --recurse

You could build from source, it is our recommended way and the one
we have more control over so we can support you better with errors that
happen this way.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aws/aws-sdk-cpp/issues/1717#issuecomment-884554646,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUYDO5JVGDTMVQ53T2CSGADTY5HRVANCNFSM5AX4734Q
.

Cool and good luck!
About the source build though, It looks like you didn't include the sub-modules when cloning , try running these on the repo source folder:
git pull origin main
git submodule update --init --recursive

Thanks, I'll check it out later this evening.
One last little thing.... Is there a reputable writeup for once I get this
compiled, how to get it all to link ?   I can RTFM but it seems like there
are a maze of twisty little passages, all different when it comes to doing
this successfully.   LNK-2001 is a swear word right now.
On Thu, Jul 22, 2021 at 2:23 PM Gilberto Lopez Zayas <
@.***> wrote:

Cool and good luck!
About the source build though, It looks like you didn't include the
sub-modules when cloning , try running these on the repo source folder:
git pull origin main
git submodule update --init --recursive
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/aws/aws-sdk-cpp/issues/1717#issuecomment-885135706,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUYDO5M2UANCOW4K3AZ6QP3TZBOYPANCNFSM5AX4734Q
.

I mean kind of, depends on what you are planning on using to linking, we do have a sort of guide/sample here for using cmake.
For Visual Studio it gets a little weird, we don't have a guide on how to link but the short version is :

Build the SDK (take note of the build type like, debug or release).
Create your project and do the usual: Properties ->C/C++->General-> Additional Include libraries & Properties ->Linker->General->Additional library directories & Properties->Linker->Input->Additional Dependencies,
Move dlls to the directory the executable is in, usually the Debug or Release folder.
Make sure your project is building in the same type you build the SDK. I think defaults are flipped for cmake and visual studio.


If a list is filtered, and you navigate away from the page, clicking back doesn't display the filtered list

Two scenarios:

Filtering a list, clicking on an action (e.g., edit) taking the user to a different page to do something with that item, then returning after clicking another action (e.g., save, close) needs to result in the list remaining filtered since it's within context of the experience.
Filtering a list, clicking away from the list, returning to the list via the back button needs to also maintain the filters.

This can be accomplished by either utilizing the querystring or browser storage (e.g., IndexedDB, sessionStorage). The latter will allow for the URL to be shareable.

Tested and working.


[docs] babel-plugin-import not working in v5

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
https://mui.com/guides/minimizing-bundle-size/#option-2 gives us two babel plugin options to resolve the top level imports into path imports, so that the DX is improved. However the babel-plugin-import does not seem to work with version 5 of Mui as it causes some conflicts:
Module not found: Error: Can't resolve '@mui/material/generateUtilityClass'

Also there are some typos in the config left over from v4 docs:
const plugins = [
  [
    'babel-plugin-import',
    {
      libraryName: '@mui/material',
      libraryDirectory: '',
      camel2DashComponentName: false,
    },
    'material', // here in the doc is "core" (v4) ❌
  ],
  [
    'babel-plugin-import',
    {
      libraryName: '@mui/icons-material',
      libraryDirectory: '',
      camel2DashComponentName: false,
    },
    'icons-material', // here in the doc "icons" (v4) ❌
  ],
];

Nevertheless babel-plugin-direct-import works fine as it is described in the guides ✅
Expected behavior 🤔
The expected result, is that it should work as described in: https://mui.com/guides/minimizing-bundle-size/#option-2
However I think it would more than OK if we just removed the babel-plugin-import plugin in the guide.
Steps to reproduce 🕹
Steps:

Follow the guide in https://mui.com/guides/minimizing-bundle-size/#option-2
Try to use the babel-plugin-import option
Then run Webpack

Context 🔦
Context: I was migrating from V4 to V5, and I had the imports plugin already configured for V4 due to the DX.
Motivation: Since I stumbled upon this error and lost a little bit of time, I think (IMHO) it would make sense to remove the babel-plugin-import from the guide in Mui5.
Your environment 🌎

`npx @mui/envinfo`
  System:
    OS: macOS 12.2
  Binaries:
    Node: 14.18.0 - ~/.nvm/versions/node/v14.18.0/bin/node
    Yarn: 2.4.2 - /usr/local/bin/yarn
    npm: 8.3.2 - ~/.nvm/versions/node/v14.18.0/bin/npm
  Browsers:
    Chrome: 97.0.4692.99
    Edge: Not Found
    Firefox: 96.0.2
    Safari: 15.3
  npmPackages:
    @emotion/react: ^11.7.1 => 11.7.1
    @emotion/styled: ^11.6.0 => 11.6.0
    @mui/base:  5.0.0-alpha.67
    @mui/icons-material: ^5.3.1 => 5.3.1
    @mui/lab: ^5.0.0-alpha.67 => 5.0.0-alpha.67
    @mui/material: ^5.4.0 => 5.4.0
    @mui/private-theming:  5.3.0
    @mui/styled-engine:  5.3.0
    @mui/styles: ^5.3.0 => 5.3.0
    @mui/system: ^5.4.0 => 5.4.0
    @mui/types:  7.1.0
    @mui/utils:  5.3.0
    @mui/x-data-grid: ^5.4.0 => 5.4.0
    @types/react: ^17.0.8 => 17.0.11
    react: ^17.0.1 => 17.0.2
    react-dom: ^17.0.1 => 17.0.2
    typescript: ^4.3.2 => 4.3.4

It doesn't look like this bug report has enough info for one of us to reproduce it.
Please provide a CodeSandbox (https://material-ui.com/r/issue-template-latest), a link to a repository on GitHub, or provide a minimal code example that reproduces the problem.
Here are some tips for providing a minimal example: https://stackoverflow.com/help/mcve


[BUG]: operator clusterRole's permission is insufficient to enable Rabbitmq as event source

Describe the bug
We are using Knative-Operator to configure out Knative-Eventing instance.
We observed that when we tries to enable Rabbitmq to be the event source, the operator fails to apply the manifest rabbitmq-source.yaml due to insufficient RABC permission.
The below events described the error:
18:26:35 KnativeEventing test-cluster 941:	Updated "test-cluster" finalizers
18:31:21 KnativeEventing test-cluster 2836:	failed to apply (cluster)rolebindings: clusterrolebindings.rbac.authorization.k8s.io "eventing-sources-rabbitmq-controller" is forbidden: user "system:serviceaccount:knative-eventing:knative-operator" (groups=["system:serviceaccounts" "system:serviceaccounts:knative-eventing" "system:authenticated"]) is attempting to grant RBAC permissions not currently held:
{APIGroups:["rabbitmq.com"], Resources:["bindings"], Verbs:["create" "delete" "get" "list" "patch" "update" "watch"]}
{APIGroups:["rabbitmq.com"], Resources:["bindings/status"], Verbs:["get"]}
{APIGroups:["rabbitmq.com"], Resources:["exchanges"], Verbs:["create" "delete" "get" "list" "patch" "update" "watch"]}
{APIGroups:["rabbitmq.com"], Resources:["exchanges/status"], Verbs:["get"]}
{APIGroups:["rabbitmq.com"], Resources:["queues"], Verbs:["create" "delete" "get" "list" "patch" "update" "watch"]}
{APIGroups:["rabbitmq.com"], Resources:["queues/status"], Verbs:["get"]}
{APIGroups:["rabbitmq.com"], Resources:["rabbitmqclusters"], Verbs:["get" "list" "watch"]}

Expected behavior
We expect that Rabbitmq can be used as event sources when enabled by setting cr.spec.source.rabbitmq.enabled to true.
To Reproduce

Deploy Knative-Operator v1.6.0 and create the knative-eventing namespace.

Apply the following CustomResource to deploy Knative-Eventing with rabbitmq enabled as source
apiVersion: operator.knative.dev/v1beta1
kind: KnativeEventing
metadata:
  name: test-cluster
  namespace: knative-eventing
spec:
  version: 1.6.0
  source:
    rabbitmq:
      enabled: true

Execute kubectl get events -A and observe the error message mentioned above.

Knative release version

Knative v1.6.0

Additional Context

Kubernetes VersionClient Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.2", GitCommit:"f66044f4361b9f1f96f0053dd46cb7dce5e990a8", GitTreeState:"clean", BuildDate:"2022-06-15T14:22:29Z", GoVersion:"go1.18.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.9", GitCommit:"6df4433e288edc9c40c2e344eb336f63fad45cd2", GitTreeState:"clean", BuildDate:"2022-05-19T19:53:08Z", GoVersion:"go1.16.15", Compiler:"gc", Platform:"linux/amd64"}

Suspected Root Cause
As the error messages suggested, the error is caused by insufficient access.
To enable 'rabbitmq' as event source, the clusterRole eventing-sources-rabbitmq-controller will be deployed by the operator. However, the apiGroup rabbitmq.com, included in this clusterRole, is not included in the operator serviceAccount, leading to insufficient permission.

Looking at this one...