heads up another new GAF

signalling GAPS
external-go-data/GO-0023052_gap_filling.gaf.txt
(It might have control characters, could you check?)

could you have a look at this? I don't think it will load if I left control characters (if you remind me of the one liner I can fix next time)

Thanks. Embarrassingly I made the file in xcel.  Shhhh......
In my defence I use vi as a c-line editor...

external-go-data/GO-0023052_gap_filling.gaf.txt

It loaded without error.

hmm that's odd, the signalling total didn't change...

According to the log:
http://curation.pombase.org/dumps/builds/pombase-build-2018-02-28/logs/log.2018-02-28-20-00-49.gaf-load-output
the NAS total went up by the right amount.
It went from:
3510 | Non-traceable Author Statement

to:
3577 | Non-traceable Author Statement

I'll have a look at what the filtering is doing.

here is one example,
http://pombase-dev.bioinformatics.nz/gene/SPAC1556.03
no "signalling" annotation.
v

here is one example, http://pombase-dev.bioinformatics.nz/gene/SPAC1556.03

I think the GO ID and with columns might be mixed up in the GAF file.  SPAC1556.03 has this annotation:
GO:0070647  protein modification by small protein conjugation or removal  NAS  with signaling  GO_REF:0000051  249

"with signalling"

Oh bummer, I know what I did now.
Shoot. I copied a previous file and   forgot it had a with column. I assumed the GO ID was column 5 and   replaced it with the intended one.
Bummer....don't load the file. I'll sort it tomorrow.

perl -pi -e 's/GO:0023052/\t/g' GO-0023052_gap_filling.gaf.txt
perl -pi -e 's/GO:0070647/GO:0023052/g' GO-0023052_gap_filling.gaf.txt
which is what I intended.
Did I do that correctly  (did I need to replace the with filed entry by  a tab or will tat insert an extra column/)
I committed it anyway....

perl -pi -e 's/GO:0023052/\t/g' GO-0023052_gap_filling.gaf.txt

That added an unneeded tab.  It just needs to be:
perl -pi -e 's/GO:0023052/\t/g' GO-0023052_gap_filling.gaf.txt

I've removed the extra tabs and checked it in.  I've also restarted the nightly load.  It will still finish before morning.

Thank you!

Looks like it worked:
https://www.pombase.org/gene/SPAC1556.03

yep all good!


Same configuration doesn't work for specific WIT

Hello,
I have a VSTS scrum process, which contains: Task, Feature, Epic, Defect, Enhancement. When running the migration for individual work item types: Feature, Task, Epic all fields I want in VSTS are getting populated with the data from TFS On prem.
When I do: "Migrate all Enhancement work items from TFS to VSTS" strange things happens:

Area Path, Iteration Path, Reason, State gets migrated;
History gets migrated;
Tags are migrated;

BUT - no other field, even with the default value from TFS doesn't get migrated. I've tried to do individual fields with FieldtoFieldMapConfig:
	{
      "ObjectType": "VstsSyncMigrator.Engine.Configuration.FieldMap.FieldtoFieldMapConfig",
      "WorkItemTypeName": "Enhancement",
      "sourceField": "Developer.Description",
      "targetField": "Developer"
        },

And it is not working. AND to bring more confusion, when I change from Enhancement to Feature/Task/Epic - data gets migrated.
I've done everything I could think of except reinstalling the tool.

Reinstalling will not help.
The tool loops though all of the fields on the source work item and maps that field, with the same refname, to a field in the target work item.
If you are not getting fields migrated then the renames are not matching, even on field mapping you have listed.
Try changing the field mapping from "WorkItemTypeName": "Enhancement" to "WorkItemTypeName": "*".
When you do an Enhancement migration, even though the other fields don't get migrated you should see a table in the history that shows all of the original field names and their values even if the data did not migrate. Can you see this data in the history?


HSEARCH-2805 Upgrade to Checkstyle 8.0

https://hibernate.atlassian.net/browse/HSEARCH-2805

Merged, thanks!


Add support for fish tab completions

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary (I couldn't find anything that would need updating)

Description
If the user’s default shell is fish when fastlane enable_auto_complete is ran a completion file will be copied to ~/.config/fish/completions, rather than the user being prompted to add a shell script to their rc file.
Motivation and Context
Prior to this PR fastlane did not support tab completions with the fish shell, meaning that when running fastlane enable_auto_complete users would be provided with instructions that will not work in their shell, and would be left without a way of enabling tab completion.
To test these changes I ran bundle exec fastlane enable_auto_complete with fish as my default shell. A fastlane.fish file was copied to ~/.config/fish/completions. I then changed my default shell to bash using chsh -s /bin/bash, loaded a new session, and ran bundle exec fastlane enable_auto_complete again. This time the old behaviour happened.

I signed it!

Hi folks - any other changes needed to get this in?

@mfurtak Nope, it was ready. Sorry for the delay!

No worries, thanks folks! 🙌


Support for state parameter for OAuth 2?

I'm unable to use scribe-java due to the need to pass in the state parameter as defined here:
https://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.1.1

Oauht 2.0 support is deprecated. It's easy enough to do without needing any library.


SIP to add store ability to Pool struct.

I don't see any immediate problems with this from the DeepBook side.
The main thing questions I would ask would be:

whether coupling tightly to the implementation quirks of DeepBook Pool's is a good idea for third-party protocols
whether this coupling will lead to pressure to make changes that make sense for the third-party protocols, but not for DeepBook in the future (leading to frustration on one or both sides).

On (1), the things I wonder about are the burned pool creation fee of 100 SUI (third-party protocols might not want it, or might want a different fee) and the "burn trading fees rather than collecting them" scheme, which seem someone DeepBook-idiosyncratic. I would expect that some third-party protocols would want a different fee, to collect the fee rather than burn it, etc.
On (2), this is of course a hypothetical concern, but is motivated by the desire to allow other Pool implementations to evolve in the way that makes sense. One concrete scenario to think through:

In the future, say a third-party protocol X wants to add a function that allows the funds in quote_asset_trading_fees to fund grants for building on X (very reasonable)
DeepBook does not want this function to exist, because its fees are burned (also reasonable)
There's no way to distinguish DeepBook pools from third-party pools at the code level, so someone would be left upset

Two questions to think about given the above:
A. What are the pros/cons of creating a separate copy of the Pool code for third-party protocols to customize/publush as they see fit, rather than reusing the DeepBook code?
B. If reusing DeepBook Pools does make sense, should we add a PoolOwnerCap that can be used for extracting fees in third-party protocols + make the API for creating a shared DeepBook pool immediately burn this cap?

Two questions to think about given the above: A. What are the pros/cons of creating a separate copy of the Pool code for third-party protocols to customize/publish as they see fit, rather than reusing the DeepBook code? B. If reusing DeepBook Pools does make sense, should we add a PoolOwnerCap that can be used for extracting fees in third-party protocols + make the API for creating a shared DeepBook pool immediately burn this cap?

A. Pros:
Having the changes contained in deepbook core will allow the entire community + us at mysten to review the changes to the deepbook code. We can guarantee that the changes are audited + well tested. This prevents community members from nefariously forking the code and claiming "This is a deepbook fork" while bumping up fees in some capacity or something of the sort.
I think deepbook should still charge 100 SUI pool creation fees for the following reaons:

discourage the usage of pools indiscriminately (i.e. spamming the network with pool objects, especially since right now we cannot delete a shared object)
We are charging for the infrastructure of building deepbook + maintaining deepbook.

However, by giving future fees generated by deepbook to the protocol building on top, these protocols will eventually earn the 100 sui fee back.
Cons:

We need to create future proof pool work where changes are generic enough to support multiple protocols.
The emitting of events is still a problem since wrapping Pool in a different smart contract will cause events to be emitted under a separate package (but maybe this could be a feature not a bug to distinguish protocols)

B. I do think we should add this feature to encourage usage of deepbook as a primitive.

I do think we should add this feature to encourage usage of deepbook as a primitive.

This seems like the most important argument--I did not previously realize that the absence of store basically makes nontrival integration of third-party protocols with DeepBook impossible. Strongly supportive of this SIP now!

https://github.com/MystenLabs/sui/pull/14398
Closing this SIP


Deal with errors better

Most commonly 429s (when you hit the API limit) but also in case of server failure, wrong server endpoint setting, etc

The commit 11bb4c2987c55d019e169d0d717bdf140874bcd4 that added error events also expanded server error coverage to everything in the documentation (https://mapzen.com/documentation/search/http-status-codes/). Since I didn't really expand on what "better" meant I will assume we're doing it "okay" and close this issue. If we have more specific improvements for handling errors we can open a new issue or re-open this one.


Improve L2G model selectivity

As a developer I want to monitor the number of hits in every L2G iteration because it is an important indicator tof the model's selectivity
Background
The number of genes that receive a score above 0.5 for the same credible set is an interesting metric of the model's selectivity.
We observe a negative tendency in the last 3 iterations, the percentage of credible sets with a single prioritised gene has decreases, while the percentage with 2 or more has increased.
Freeze 4 (curated gold standards)
+----+------+-----+
|hits| count|    %|
+----+------+-----+
|   1|277894|76.32|
|   2| 65886| 18.1|
|  >2| 20327| 5.58|
+----+------+-----+

Iteration 5 (curated gold standards)
+----+------+-----+
|hits| count|    %|
+----+------+-----+
|   1|312521|74.69|
|   2| 78196|18.69|
|  >2| 27734| 6.63|
+----+------+-----+

Iteration 6 (gold standards based on L2G hits in production)
+----+------+-----+
|hits| count|    %|
+----+------+-----+
|   1|236372|68.97|
|   2| 80396|23.46|
|  >2| 25930| 7.57|
+----+------+-----+

This metric is not something that we monitor during training.
Tasks

[ ] Monitor this metric in future iterations
[ ] How can we model the features so that the distinction between genes is clearer?
[ ] Can we implement a strategy in the selection of positives/negatives in the gold standards to prioritise one over the other?

Analysis of credible sets with multiple prioritised genes (L2G >= 0.5)
I have prepared a dataset with cases where the assigned genes are more than 1, and I have prepared some quality metrics based on the availability of features. So that now I have a dataframe like this one:
+--------------------------------+---------------+------------------+----------------------------------------------+
|studyLocusId                    |geneId         |score             |qualityControls                               |
+--------------------------------+---------------+------------------+----------------------------------------------+
|696aa17876038f0b46ac65c5e27d3fa7|ENSG00000075213|0.982434345980689 |[]                                            |
|696aa17876038f0b46ac65c5e27d3fa7|ENSG00000170381|0.7804732926950384|[VEP features missing, Coloc features missing]|
+--------------------------------+---------------+------------------+----------------------------------------------+

Looking at cases like this, it is clear why ENSG00000075213 is the top ranked gene. And it is clear as well that, regardless of the iterations we do on the VEP or Colocalisation features to finetune them, we are not going to improve the selectivity because we simply lack any functional genomics data for ENSG00000170381.
My question was to analyse systematically how many times we have this scenario.
Take aways

There are 106,326 unique affected credible sets (22%), where there is more than one gene with a score > 0.5
Among those, in 75% of cases we prioritise 2 genes only, whereas we have more than 2 causal genes for 25,930 credible sets
In 43% of cases, there is a significant (>= 0.15) score gap between the top and second-ranked genes.
There is a significant amount of missing data, with over 50% of predictions having at least a feature group completely missing (VEP, Coloc, or Distance). As we know, this is a major limitation in our current model
However, in ~34% of cases, the top-ranked gene has no quality control flags while the other genes do. This indicates that the model performs well when annotation for all feature groups is available

I think the most informative table is this one, where I try to understand the source of selectivity issues:
+-----------------------------------------------------------+--------------+------------------------------------------+
|flags                                                      |granular_count|general_flag                              |
+-----------------------------------------------------------+--------------+------------------------------------------+
|[First and incomplete VEP, Second and incomplete VEP]      |31002         |Both Incomplete - same group              |
|[Second and incomplete VEP, First and complete features]   |17318         |Only first complete                       |
|[Second and incomplete VEP, First and incomplete Coloc]    |15491         |Both Incomplete - different groups        |
|[Second and complete features, First and complete features]|14189         |Both Complete                             |
|[Second and incomplete Coloc, First and incomplete Coloc]  |7475          |Both Incomplete - same group              |
|[First and incomplete VEP, Second and complete features]   |5308          |Only second complete                      |
|[Second and incomplete Coloc, First and complete features] |4895          |Only first complete                       |
|[Second and incomplete Coloc, First and incomplete VEP]    |4597          |Both Incomplete - different groups        |
|[Second and complete features, First and incomplete Coloc] |3248          |Only second complete                      |
|[First and incomplete VEP]                                 |2764          |Genes have same score                     |
|[First and incomplete Coloc]                               |32            |Genes have same score                     |
|[First and complete features]                              |6             |Genes have same score                     |
|[First and incomplete Coloc, First and complete features]  |1             |Genes have same score - different features|
+-----------------------------------------------------------+--------------+------------------------------------------+

The largest category, 31,002 cases, is where both the first and second ranked genes don't have VEP information. This means that at least they have Distance and Coloc annotation, which is susceptible of improving.
The second largest category is Only first complete, with 22,213 credible sets, where changes in the feature modelling won't yield any benefits because simply there's no data. This is the case of the example highlighted above.
It's also interesting the 14,189 cases where both genes are complete. Also another scenario where a better modelling could improve the selectivity.

It'd be good to reproduce this in future iterations. Code is here https://gist.github.com/ireneisdoomed/31086fe5ef8ddb76dd06d22c54950e2d

These are the predictions with the feature matrix computed taking the max in the neighbourhood (PR), and using the curation for model training
gs://ot-team/irene/l2g/08112024/locus_to_gene_predictions
Selectivity looks slightly better, with 99,541 credible sets with multiple genes
+----+------+
|hits| count|
+----+------+
|  >2| 24192|
|   1|247555|
|   2| 75349|
+----+------+

SOA in the L2G Paper
From @addramir:

55.4% loci had a single gene with l2g>0.5
1.4% had >=2 genes with l2g>0.5
43.2% had 0 genes with l2g>0.5

12/11_GSP_cs_selected_freez6_v5_nbh_ratio
Another set of predictions testing 2 things:

Less filtered and much bigger gold standard: Based on old L2G hits, here credible sets are picked up based on distance, and not based on the availability of functional genomics data.

+---------------+------+
|goldStandardSet| count|
+---------------+------+
|       positive| 15863|
|       negative|332719|
+---------------+------+

Path: gs://genetics-portal-dev-analysis/yt4/20241024_EGL_playground/GSP_cs_selected_freez6_v5.parquet

Redefinition of the neihbourhood features to match the old L2G. For every credible set, instead of substracting the max in the region, we divide them.
Path: gs://ot-team/irene/l2g/12112024/feature_matrix

Predictions are really unselective, we have flipped the coin.
+----+------+
|hits| count|
+----+------+
|  >2|453793|
|   1|  7812|
|   2| 10113|
+----+------+

IMO we are observing a huge overfitting here. I think it'd be a very good idea to plot a learning curve to decide training set size and to diagnose how fit is the model.

locus_to_gene_egl_stringent
This model was trained by @@xyg123 based on a selected list of Effector gene pairs.
Model used is here opentargets/locus_to_gene_egl_stringent
Strikingly, the selectivity is exactly the same as the previous results based on a very different gold standard.
+----+------+
|hits| count|
+----+------+
|  >2|453793|
|   1|  7812|
|   2| 10113|
+----+------+

The commonality between 2 runs is the feature matrix, I'm going to train the model with a previous GS to see if the new neighbourhood features are the culprit.
This is the config for these predictions:
step: locus_to_gene
      step.run_mode: predict
      step.predictions_path: gs://genetics-portal-dev-analysis/xg1/Chembl_l2g_goldstandards/Predictions/EGL_predictions_2410_freeze6_stringent
      step.feature_matrix_path: gs://ot-team/irene/l2g/12112024/feature_matrix
      step.credible_set_path: gs://ot_orchestration/releases/24.10_freeze6/credible_set
      step.hf_hub_repo_id: opentargets/locus_to_gene_egl_stringent
      step.session.spark_uri: yarn

It looks one to one the same. Very suspicious. Also, did you filter by protein coding genes only?

12/11_curation_1211_fm
Following up from my previous comment, and to check whether the problem was coming from the changes in the nbh features, I've rerun the model with the ETL curation and the 12/11 feature matrix. Results look good this time:
# This is all genes
+----+------+
|hits| count|
+----+------+
|  >2| 23024|
|   1|250890|
|   2| 81803|
+----+------+

@addramir In fact, these features seem to perform slightly better than the previous approach where nbh features were substracted and not divided.
Again, my hypothesis is that @xyg123 model must have a big overfitting problem.
# config
  - id: l2g_train
    # prerequisites:
    #   - l2g_feature_matrix
    params:
      step: locus_to_gene
      step.run_mode: train
      step.wandb_run_name: 12/11_curation_1211_fm
      step.hf_hub_repo_id: opentargets/locus_to_gene
      step.hf_model_commit_message: "chore: model trained with 12/11 fm and curation gs"
      step.model_path: gs://ot-team/irene/l2g/12112024-etl/locus_to_gene_model/classifier.skops
      step.credible_set_path: gs://ot_orchestration/releases/24.10_freeze6/credible_set
      step.variant_index_path: gs://ot_orchestration/releases/24.10_freeze6/variant_index
      step.feature_matrix_path: gs://ot-team/irene/l2g/12112024/feature_matrix
      step.gold_standard_curation_path: gs://genetics_etl_python_playground/input/l2g/gold_standard/curation.json
      step.gene_interactions_path: gs://genetics_etl_python_playground/static_assets/interaction # OTP 23.12 data
      step.hyperparameters.n_estimators: 100
      step.hyperparameters.max_depth: 5
      step.hyperparameters.loss: log_loss
      +step.session.extended_spark_conf: "{spark.kryoserializer.buffer.max:500m, spark.sql.autoBroadcastJoinThreshold:'-1'}"
    # prerequisites:
    #   - l2g_feature_matrix
  - id: l2g_predict
    prerequisites:
      - l2g_train
    params:
      step: locus_to_gene
      step.run_mode: predict
      step.predictions_path: gs://ot-team/irene/l2g/12112024-etl/locus_to_gene_predictions
      step.feature_matrix_path: gs://ot-team/irene/l2g/12112024/feature_matrix
      step.credible_set_path: gs://ot_orchestration/releases/24.10_freeze6/credible_set
      step.hf_hub_repo_id: opentargets/locus_to_gene
      step.session.spark_uri: yarn
    prerequisites:
      - l2g_train

New models based on a new feature matrix that includes the changes explained in 12/11_curation_1211_fm AND that only considers protein coding genes when calculating neighbourhood features (this is what we internally agreed to call feature matrix 0).
13/11_curation_1311_fm_0
Better results in terms of selecting one single hit.
1. We have more credible sets with at least one hit

Out of 455,950, 387,695 (85%) have a prediction with a score higher than 0.5. This is +45k credible sets compared to freeze 6

2. Increase is not happening at the expense of being less selective

There are 104,464 credible sets for which we prioritise 2 or more genes. This still represents ~22% of the total data, but we have improved the ratio of credible sets with more than 2 hits.

hits
count_freeze6
count_latest_run

1
236,372
283,231

2
80,396
86,768

>2
25,930
17,696

(latest run refers to training/predicting based on protein coding genes)
Side note
# Another model i did without training/predicting based on protein coding only also showed better results than yesterday's iter
+----+------+
|hits| count|
+----+------+
|  >2| 13029|
|   1|276153|
|   2| 73333|
+----+------+

13/11_curation_1311_fm_1
https://wandb.ai/open-targets/gentropy-locus-to-gene/runs/xe52ckzb?nw=nwuseropentargets
New model based on a new feature matrix. Here we are testing a different approach for neighbourhood features again: if there is no data for any gene, we set the feature to 1. This kind of follows the same rationality of defining the neighbourhood feature in terms of how similar the feature for that credible set/gene is to the best result in the credible set gene. 1 meaning more similar; 0 more dissimilar. Given the sparsity of the data, this is quite a big change.
Results are worse than the previous iteration, therefore we are ditching this approach.
+----+------+
|hits| count|
+----+------+
|  >2| 20958|
|   1|267721|
|   2| 89665|
+----+------+

Feature comparison with Production
This is a bit off-topic but I've joined the feature matrix of the gold standard used in the production version of Genetics with our best feature matrix to date (gs://ot-team/irene/l2g/13112024/feature_matrix), to try to compare.
I used the study, variant, and gene IDs to overlap both matrices. Of course I didn't get a full coverage, but it's decent to check some examples
+-------+---------------+-----+
|isMatch|goldStandardSet|count|
+-------+---------------+-----+
|   true|              1|  120|.   --> Positives that overlap
|   true|              0|  255|   --> Negatives that overlap
|  false|              0| 4523|.   --> Negatives that don't overlap
|  false|              1|  232|.   --> Positives that don't overlap
+-------+---------------+-----+
# isMatch=True means that we have annotation from production + new FM
# goldStandardSet=1 is a positive in the production model, 0 is a negative

I checked 2 examples from the isMatch=True/goldStandardSet=1 set, and features look really different in general except for VEP. So it's not trivial to compare numbers. One instance:
# The first number corresponds to production, the second to the new FM
 studyId                                | GCST000697
 variantId                              | 11_71456403_G_T
 geneId                                 | ENSG00000172893
 goldStandardSet                        | 1
 isMatch                                | true
 distanceSentinelTssNeighbourhood       | {-0.07058997682092816, 0.9992582}
 pQtlColocClppMaximumNeighbourhood      | {NULL, 0.0}
 pQtlColocH4Maximum                     | {NULL, 0.0}
 sQtlColocClppMaximumNeighbourhood      | {NULL, 0.8942154}
 distanceSentinelFootprintNeighbourhood | {-8.170751423757535, 0.9987693}
 pQtlColocClppMaximum                   | {NULL, 0.0}
 eQtlColocClppMaximum                   | {-4.412610208756248, 0.017186046}
 score                                  | {0.08474060148000717, 0.9262663000832196}
 vepMaximumNeighbourhood                | {0.15151515151515152, 0.5}
 distanceFootprintMean                  | {9.048126517379467, 0.99753845}
 vepMean                                | {0.00999822290936213, 1.00455785E-4}
 sQtlColocH4MaximumNeighbourhood        | {NULL, 0.0}
 distanceSentinelFootprint              | {8.170751423757535, 0.9987693}
 sQtlColocH4Maximum                     | {NULL, 0.0}
 distanceTssMeanNeighbourhood           | {-0.02001154467391153, 0.99940073}
 pQtlColocH4MaximumNeighbourhood        | {NULL, 0.0}
 vepMeanNeighbourhood                   | {0.11433660812052467, 0.07359571}
 geneCount500kb                         | {13, 22.0}
 eQtlColocClppMaximumNeighbourhood      | {-0.5586822723679621, 0.8503973}
 distanceSentinelTss                    | {8.170751423757535, 0.9987693}
 sQtlColocClppMaximum                   | {NULL, 0.01753}
 distanceFootprintMeanNeighbourhood     | {-2.9054150635869664, 0.9983251}
 eQtlColocH4MaximumNeighbourhood        | {NULL, 0.0}
 vepMaximum                             | {0.1, 0.33}
 distanceTssMean                        | {9.097634560962991, 0.99748087}
 eQtlColocH4Maximum                     | {NULL, 0.0}

It's interesting to compare scores:

Correlation between old and new scores for the gold standards that overlap (375 cases): 0.669
When I look at the positives that overlap, 30% of them have a score lower than 0.5 in production. These, with the new results, represent a 7.5% only.
When I look at the negatives that overlap, 9% of them have a score higher than 0.5. Our L2G score is higher in this case, where 22% of the negatives have a score higher than > 0.5.

PRODUCTION
Positives
Negatives

score < 0.5
37
232

score >= 0.5
83
23

120
255

NEW
Positives
Negatives

score < 0.5
111
197

score >= 0.5
9
58

120
255

This kind of correlates with our impression that our L2G scores are higher than production. One of the causes likely being that our feature matrix is richer:
+-------+--------------------+--------------------+
|summary|           old_score|           new_score|
+-------+--------------------+--------------------+
|  count|                 375|                 375|
|   mean| 0.27418680242449045|  0.4754586410401808|
| stddev|  0.3048912971331486| 0.37092390686746796|
|    min|0.008100325241684914|0.050166188832806664|
|    max|  0.9093976616859436|  0.9940283410709758|
+-------+--------------------+--------------------+

👉 Dataset gs://ot-team/irene/l2g/13112024/feature_matrix_comparison_w_production
Gist: https://gist.github.com/ireneisdoomed/df08850b94cf4553d6c1c3df0a3c0afb

fm_v0_training_v1
https://wandb.ai/open-targets/gentropy-locus-to-gene/runs/lc5323st?nw=nwuseropentargets
FM0 is used. Training is based on 452 GSPs.
Confusion matrix is rather bad. However predictions are very selective and conservative.
Predictions:
gs://ot_orchestration/benchmarks/l2g/fm0/gs_v1/locus_to_gene_predictions
+----+------+
|hits| count|
+----+------+
|  >2| 1908 |
|   1|240906|
|   2| 17836 |
+----+------+

fm_v0_training_v4
https://wandb.ai/open-targets/gentropy-locus-to-gene/runs/d4gvgarn?nw=nwuseropentargets
FM0 is used. Training is based on 452 GSPs but without selection of CSs.
Confusion matrix is rather good. Predictions are very selective and conservative.
Predictions:
gs://ot_orchestration/benchmarks/l2g/fm0/gs_v4/locus_to_gene_predictions
+----+------+
|hits| count|
+----+------+
|  >2| 1014 |
|   1| 240951 |
|   2| 12794 |
+----+------+

13/11_curation_1311_fm_0
https://wandb.ai/open-targets/gentropy-locus-to-gene/runs/ayzj3vtq?nw=nwuseropentargets
FM0 is used. Training is based on whatever is integrated into ETL.
Following @ireneisdoomed numbers. For some reason my numbers a bit different using the provided predictions (and filtering by isProteinCoding).
Predictions:
gs://ot-team/irene/l2g/13112024/locus_to_gene_predictions_0
When using l2g>=0.5:
+----+------+
|hits| count|
+----+------+
|  >2| 17696 |
|   1| 283231 |
|   2| 86768 |
+----+------+

Hover using l2g>=0.8 makes everything better:
+----+------+
|hits| count|
+----+------+
|  >2| 658 |
|   1| 259860 |
|   2| 21650 |
+----+------+

Gold standard run statistics:
The table below contains the orchestration tags that can be used to reproduce the locus_to_gene step runs for conducted with various arbitrary gold standards:

Training run
orchestration tag

fm_v0_training_v1
https://github.com/opentargets/orchestration/releases/tag/l2g-fm_v0_gs_v1

fm_v0_training_v2
$80

fm_v0_training_v3
$420

fm_v0_training_v4
$420

fm_v0_training_v5
$420

To validate some predictions further, there are some numbers comparing old L2G with the new ones:
Assuming this as the latest old L2Gs:  gs://genetics-portal-dev-staging/l2g/220712/predictions/l2g.full.220712.parquet
The new ones correspond to the models.
Both datasets were filtered by protein coding only and by L2G>=0.05.

13/11_curation_1311_fm_0

Predictions: gs://ot-team/irene/l2g/13112024/locus_to_gene_predictions_0
Overlap with the old by studyId and geneId: 352633 rows
Number of unique studyIds: 6367
Correlation between L2Gs: 0.521
Using L2G>=0.5 as threshold, the concordance between datasets:
+---------+---------+------+
|new_score|old_score|count |
+---------+---------+------+
|1        |0        |82195 |
|1        |1        |91527 |
|0        |0        |151760|
|0        |1        |27151 |
+---------+---------+------+
82K new genes.
91K resemblance.
27K is lost.
Using L2G>=0.8 as threshold, the concordance between datasets:
+---------+---------+------+
|new_score|old_score|count |
+---------+---------+------+
|1        |0        |91885 |
|1        |1        |22517 |
|0        |0        |230092|
|0        |1        |8139  |
+---------+---------+------+
Even more new genes: 91K
23K resemblance.
8K is lost.

fm_v0_training_v4

Predictions: gs://ot-team/irene/l2g/13112024/locus_to_gene_predictions_0
Overlap with the old by studyId and geneId: 305543 rows
Number of unique studyIds: 6346
Correlation between L2Gs: 0.477
Using L2G>=0.5 as threshold, the concordance between datasets:
+---------+---------+------+
|new_score|old_score|count |
+---------+---------+------+
|1        |0        |35738 |
|1        |1        |61477 |
|0        |0        |155334|
|0        |1        |52994 |
+---------+---------+------+
Using L2G>=0.8 as threshold, the concordance between datasets:
+---------+---------+------+
|new_score|old_score|count |
+---------+---------+------+
|1        |0        |22487 |
|1        |1        |9123  |
|0        |0        |252780|
|0        |1        |21153 |
+---------+---------+------+

@addramir what about the old L2G > 0.5 and new L2G > 0.8?

@project-defiant calculated for fm_v0_training_v5.
New l2g>0.8, old l2g>0.5
+---------+---------+------+
|new_score|old_score|count |
+---------+---------+------+
|1        |0        |23429 |
|1        |1        |48511 |
|0        |0        |160951|
|0        |1        |65521 |
+---------+---------+------+

Seems that the score has shifted forwards gs+

Some benchmarking of fm0_v5.1_best_cv model.
Overlap with old L2G: 6372 studies.
Correlation between new and old L2G: 0.5866224203281499
L2G>=0.5
+---------+---------+------+
|new_score|old_score|count |
+---------+---------+------+
|1        |0        |52686 |
|1        |1        |91679 |
|0        |0        |127666|
|0        |1        |22447 |
+---------+---------+------+

1 per cs: 345498
2 per cs: 18619
>2 per cs: 2227


Postgis Support

Adding PostGis Support.
Disclaimer:
It's my first pull-request. Please let me know if I made anything wrong.

@joaojoyce Thank you very much for your contribution


support Safari

I don't own a Mac, so help from someone who does, and who has web development experience, would be appreciated.

Maybe the "XML namespace" in SVG is a problem? One problem is that the SVG in side and main view stop before the bottom of the page.


Add auto-generate samples for MachineLearning and Nginx

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
API changes are not detected in this pull request.


Fix PCRE link in get started docs

This is just a simple typo correction. Does this still require the Contributor License Agreements mentioned in the contributing guidelines?

Can one of the admins verify this patch?

Looks like the answer is yes :smile:
I signed it!

Thanks, can you update to master?

Sure thing, it should be up to date now. Let me know if there's anything else I need to do.

Apparently github changed their icons for when the changes are out of date, and they chose a color that matched the indication for 'this has a merge conflict'.  Sorry for the noise.

Merged


sos

I got this
/Users/apple/Desktop/ZWWDVersion3V3.1/venv/bin/python /Users/apple/Desktop/JLing/JLing.py
Traceback (most recent call last):
File "/Users/apple/Desktop/JLing/Snowboy/snowboydetect.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'Snowboy._snowboydetect'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/apple/Desktop/JLing/JLing.py", line 2, in
from Speak import JLing_Speak
File "/Users/apple/Desktop/JLing/Speak.py", line 11, in
from Snowboy.snowboy import Snowboy_JLing
File "/Users/apple/Desktop/JLing/Snowboy/snowboy.py", line 2, in
from . import snowboydecoder
File "/Users/apple/Desktop/JLing/Snowboy/snowboydecoder.py", line 6, in
from . import snowboydetect
File "/Users/apple/Desktop/JLing/Snowboy/snowboydetect.py", line 17, in
_snowboydetect = swig_import_helper()
File "/Users/apple/Desktop/JLing/Snowboy/snowboydetect.py", line 16, in swig_import_helper
return importlib.import_module('_snowboydetect')
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_snowboydetect'

没有安装插件: snowboy ?

https://blog.csdn.net/weixin_40490238/article/details/102300225

https://blog.csdn.net/weixin_40490238/article/details/102300225
刚看到，已经解决了，是这个问题，非常感谢。


Virtua Fighter PC crashes at start

Hi, first of all english is not my native language, so i apologize in advance if for some misundertanding/confuse writing.
I'm trying to use cnc-ddraw with Virtua Fighter PC (1996 DirectDraw PC port of Saturn version), but when i try to open the game its just generates a empty window and the game crashes. I tried various options but the results are the same, i even changed to "hook=2" and "renderer=gdi" in the .ini but its does not make any difference.
Here's the files generated by ddraw:
cnc-ddraw.log
cnc-ddraw.dmp.zip (i zipped the last one because github didn't let me upload the file directly)
Thanks in advance

Found the problem but I don't have a good solution yet, but here's a build with a workaround that should be playable for now:
cnc-ddraw.zip

Thanks a lot, the game is working now.


Flink runner: support per transform parallelism through PipelineOptions.

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify.
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @aljoscha @kennknowles

I think this is a topic that deserves some discussion on the<EMAIL_ADDRESS>mailing list.

This should probably be experimental for the time being.
@peihe, how do you see the importance of this flag vs. taking the time to get the right API for this type of configuration?

R: @kennknowles


different behaviour in web and cli az ad app credential

Describe the bug
Creating a secret with long description has different constraints on the web and with cli.
az ad app credential reset --id "my-ad-app" --credential-description "long-description-for-secret"
# When present, application key identifier cannot be empty and can be at most 32 bytes.
# Parameter name: applicationKeyIdentifierValue

However in the portal interface it works good:

Expected behavior
I would expect that the length requirements on web and cli should be the same
Environment summary
Windows-10-10.0.16299-SP0
Python 3.6.6
Shell: powershell.exe
azure-cli 2.0.80 *
azure-cli-iot-ext 0.8.3

HI @jiasli  could you pls have a look? thanks.

add to S166.

This is because Azure CLI uses customKeyIdentifier while Azure Portal use displayName which only belongs to the private 2.0 API.
Since AD Graph has been deprecated, you may use az rest with Microsoft Graph. According to the  Microsoft Graph API doc for passwordCredential, customKeyIdentifier has been deprecated. Please use displayName instead.

Property
Type
Description

customKeyIdentifier
Binary
Do not use.

displayName
String
Friendly name for the password. Optional.

Please see the detailed explanation and solution at https://github.com/Azure/azure-cli/issues/10234#issuecomment-577049720.
BTW, we will track MS Graph issues at https://github.com/Azure/azure-cli/issues/12946.


Any chance of unique hits implementation?

Maybe like Impressionist gem - by IP or session.

I can implement and create pull request if the author permits.

Sorry it's taken me so very long to respond to this.
I'm open to the idea, but hesitant. If it could be done without affecting performance or bloating the data storage much, then I'm all for it.

Has this already been implemented?

Sorry to revive this thread after so many years, but I was wondering if there's any chance this might be revisited? I'm very partial to using punching bag over impressionist for the performance benefits and act as taggable integration, but filtering page views by session would be helpful.


quension: the benchmark cannot consume

I use the following command to produce the messages， and then execute another command to consume the messages, but cannot consume any messages, why?
sh producer.sh -n xxx.xxx.xxx.xxx:9876 -t topic_test
sh consumer.sh -n xxx.xxx.xxx.xxx:9876 -t topic_test

@powerfulsnail Could you give more information about this, and it would be very nice if you can find the reason about this by dig viewing the client log, it located in the ~/logs/rocketmqlogs/ path.
Besides, ISSUE only used for bug report or feature quest, and please discuss your question about RocketMQ in our mailing list firstly: https://rocketmq.apache.org/about/contact/


Add license

Hi @DorsaRoh ,
that's a fantastic repository! I was just wondering under which conditions one could reuse the code and materials provided here, e.g. for teaching my students. Would you mind adding a license file? If you're new to licensing and/or wonder which license to use, you can read more in this blob post: https://focalplane.biologists.com/2023/05/06/if-you-license-it-itll-be-harder-to-steal-it-why-we-should-license-our-work/
Thanks!
Best,
Robert

Hi @haesleinhuepf,
Thanks for the kind words! I’ve added a license to the repo—feel free to use the materials. Let me know if you need anything else! :)
Best,
Dorsa


API Manager - Changes the content type of an upload file

I have .NET api rest backend and we use the API Manager as doorman for our backend APIs the issue is that we have an endpoint that receives a formData from angular that has 5 properties, 4 strings and 1 image file (we used type:file with no format and type:string combined with format binary), but when the PUT passes through the manager, the content type changes from png to text-plain, so when the PUT is completed we go to the directory to check the uploaded file and its always corrupted, because of the change of type.
Any ideas on how to approach this ?
Our endpoint definition is this one currently:
"/api/WidgetCard/ActualizarConfig": {
"put": {
"tags": [
"WidgetCard"
],
"operationId": "WidgetCard_ActualizarConfig",
"consumes": ["multipart/form-data"],
"produces": [
"application/json"
],
"parameters":[
{
"name":"Imagen",
"in": "formData",
"type":"string",
"format":"binary"
"required": false
},
{
"name":"seccionId",
"in": "formData",
"type":"string",
"required": true
},
{
"name":"configuracion",
"in": "formData",
"type":"string",
"required": true
},
{
"name":"usuario",
"in": "formData",
"type":"string",
"required": true
},
{
"name":"auth_token",
"in": "formData",
"type":"string",
"required": false
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object"
}
}
}
}
}

We have tried lots of things but we get the same result.

Hi @sherlock-jr is this with API Manager 3.2.0? Seems this has been fixed in later versions. [1] Also please let us know whether you are using a WUM updated pack for API Manager.
[1] https://github.com/wso2/wso2-axis2/issues/170

We are using version 2.6.0


added zone affinity balancing strategy

in order to support this change, first updated sarama-cluster to accept
arbitrary balancing strategies.  the Balancer interface is patterned off its
counterpart in kafka-go to ease a port of this functionality.

Thanks for the feedback, guys.  Closing this PR to keep master in sync with upstream, but #2 will merge these changes into a stable branch for us to reference in dep.


Library for Flutter?

Will your library be coming for Flutter?

@lavara123 a Flutter SDK is currently not in scope.


Support automatic reload on file change #43

https://github.com/timothycrosley/hug/issues/43

Coverage remained the same at 100.0% when pulling 0a9c1d6c11df93a15ac0d2b0812a2436a56a985d on cag:develop into 7809307f11e1b07cfcdf158b48ac1ae808a20774 on timothycrosley:develop.

Very very cool! I know this will make a lot of people happy when merged in and released, I'll take a look at it tonight

Thanks! Sorry I've been silent: I've just been busy. I've been meaning to do a bit of refactoring and I also wanted to make it more optional. I know somebody who is unable to install watchdog on his machine, so I didn't want to make that a hard dependency for this project.

Aw... I'm actually currently looking at the Python module reloading in more detail. If the serve method needs to stay, I'm going to have to refactor this a bit more. IIRC I didn't remove the server() method, but if the serve() method is important, there are still ways to make this happen. Unfortunately, that would mean either mean muddying up the api.py file a bit with watchdog dependencies or doing some sort of convoluted dependency injection. If you have any recommendations, I'll gladly look into them.

This has mysteriously stopped working on my computer, and is not working on some machines. I'm trying to patch reload() to work for this, but right now, maybe the best way is to kill and restart the whole process with something external.


Correctly define requirements for emulated hue

Description:
Emulated hue sometimes starts without its components installed.
Related issue (if applicable): fixes #3518
Checklist:
If code communicates with devices, web services, or a:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass

Oh, and due to the CRLF fix you have a conflict

@balloob I believe this is ready to merge now.

🐬  !


PrivacyConfig raises an error

Hi! I've been through an error today with hugo, with today's version. As it didn't happen with yesterday's version I'm assuming it's something related to the commits of today (may 22nd). Following the error, I'm guessing it has to be related to this line in a today's commit (probably a long shot).
https://github.com/gohugoio/hugo/commit/353148c2bc2cdb9f2eb8ee967ba756ce09323801#diff-b6f13a226785cb790bdcbccf6762ace3L1154
The error raised is:
Building sites … ERROR 2018/05/22 23:59:54 Error while rendering "page" in "post/": template: theme/_default/single.html:1:3: executing "theme/_default/single.html" at <partial "head.html" ...>: error calling partial: template: _internal/google_analytics.html:1:16: executing "_internal/google_analytics.html" at <.Site.PrivacyConfig....>: can't evaluate field PrivacyConfig in type *hugolib.SiteInfo

I've checked with two different themes and both of them raise the same error, so I'm assuming it has to be directly related to Hugo.

This is related to the upcoming GDPR compliant release of Hugo that will offer site admins various options regarding 3rd party tracking.
The error is because you will need to provide site wide privacy configuration for the GA internal template to work.
The configuration is not yet documented.

Hi @onedrawingperday Thanks for your answer!
My Travis-CI integration is failing (I assume that everyone's will be failing); is there a workaround to get hugo in a previous version? I mean while the release is not ready, and then revert the use of the old version when I can properly apply the needed changes.

@yamila-moreno I will fix this now. Sorry about the noise and thanks for the heads up.

@yamila-moreno If you see anything else being broken in the coming days please let us know.
The coming release is very tricky.

Sure! :+1:

It worked! Kudos and thank you very much


[Feature] "End" Line Selector

Currently, line selectors need a start and end line number to work.
/**
 * @includeExample path/to/your/example.ts:1-5,10
 */
function myFunction() {
    // ...
}

However, it would be much easier to have an end-line selector that ends at the end of the file.
For example, the example below will only selects lines starting from 2 to the end of the file. This makes it easier on the dev to maintain these Typedocs, as the file they are referring might expand in the future, but they still want to exclude a beginning few lines, for whatever reason.
/**
 * @includeExample path/to/your/example.ts:2-
 */
function myFunction() {
    // ...
}

Good idea, I didn't find an official notation for selecting lines in a file, but it does look like the good way. You can implement it, or I'll do it in an upcoming version.

I've never contributed to open source before, but I would love to give it a shot!
You mentioning about an official notation got me thinking about a more expressive "line selection" syntax.
Please see #9 for my thoughts on this!


Add "Undo" functionality

I often find myself accidentally moving/removing a node, so it would be nice to be able to undo my last action.

Thanks. We already have undo for removing. We will add it for other actions.

Added undo.


snap of dijo

I've created a snap version of this app and released on snapstore.
Added snap installation instruction into readme file.
check that out:: https://snapcraft.io/dijo

Much appreciated, thanks!


RTL support

First, thanks for great angular plugin.
I created template by using this plugin.
This is demo: http://www.emporium.themeseason.com/
But seems plugin doesn't support RTL.
Can you provide any documentation about RTL support?
How can make carousel work properly in RTL?

Are you talking about the change direction or pagination / scrollbar not having RTL support?

Are you using directive or component and is there any difference in operation? If not then its Swiper issue.

I'm using directive. Okey, hope this is not ngx-swiper-wrapper issue.

With directive this wrapper does not effect the Swiper controls in any way so it must be a Swiper issue.

You can use below CSS codes for support RTL:
.swiper-container{
	direction: ltr;
}
body.rtl .swiper-slide{
	direction: rtl;
}

You should add rtl class to the body too.


ckeditor justify property doesn't appear for ,, and other relatable tag. Works only for the  tag

I have modified the toolbars of my ckeditor. My code is below :
'gjs-plugin-ckeditor': {
position: 'left',
options: {
customConfig: '',
language: 'en',
startupFocus: true,
extraAllowedContent: '();{}', // Allows any class and any inline style
allowedContent: true, // Disable auto-formatting, class removing, etc.
enterMode: CKEDITOR.ENTER_BR,
extraPlugins: 'sharedspace,justify,colorbutton,panelbutton,font',
toolbar: [['Styles', 'Format', 'Font', 'FontSize'],
['Bold', 'Italic', 'Underline', 'Strike'],
{ name: 'paragraph', items: ['NumberedList', 'BulletedList'] },
{ name: 'links', items: ['Link', 'Unlink'] },
{ name: 'colors', items: ['TextColor', 'BGColor'] },
{ name: 'justify', items: ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'] }
]
}
}
The problem is that the justification tool option appears only for the div tag and not for the other tags.
The below screenshot represents the behaviour with tags other than div tag

The below screenshot represents the behaviour for the div tag

The behaviour should be the same for both the tags. Can't figure out the reason.
Any ideas ?

@Priyamvada07091992 Any update on this?
Did you find any solution on this


Issue when installing through pip for Linux

Output from pip3 install disnake-ext-ipc
Defaulting to user installation because normal site-packages is not writeable
Collecting disnake-ext-ipc
  Using cached disnake-ext-ipc-2.2.0.tar.gz (10 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-b18pd6yz/disnake-ext-ipc_de6f23b2fc654bdfafa8485f7c098463/setup.py", line 40, in <module>
          with open("requirements.txt") as stream:
      FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
--- Logging error ---
Traceback (most recent call last):
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/utils/logging.py", line 177, in emit
    self.console.print(renderable, overflow="ignore", crop=False, style=style)
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_vendor/rich/console.py", line 1752, in print
    extend(render(renderable, render_options))
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_vendor/rich/console.py", line 1390, in render
    for render_output in iter_render:
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/utils/logging.py", line 134, in __rich_console__
    for line in lines:
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_vendor/rich/segment.py", line 245, in split_lines
    for segment in segments:
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_vendor/rich/console.py", line 1368, in render
    renderable = rich_cast(renderable)
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_vendor/rich/protocol.py", line 36, in rich_cast
    renderable = cast_method()
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py", line 130, in __rich__
    pip_cmd = get_best_invocation_for_this_pip()
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py", line 58, in get_best_invocation_for_this_pip
    if found_executable and os.path.samefile(
  File "/usr/lib/python3.9/genericpath.py", line 101, in samefile
    s2 = os.stat(f2)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pip3.9'
Call stack:
  File "/home/netmin/.local/bin/pip3", line 8, in <module>
    sys.exit(main())
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/cli/main.py", line 70, in main
    return command.main(cmd_args)
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 101, in main
    return self._main(args)
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 223, in _main
    self.handle_pip_version_check(options)
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 148, in handle_pip_version_check
    pip_self_version_check(session, options)
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py", line 237, in pip_self_version_check
    logger.info("[present-rich] %s", upgrade_prompt)
  File "/usr/lib/python3.9/logging/__init__.py", line 1442, in info
    self._log(INFO, msg, args, **kwargs)
  File "/usr/lib/python3.9/logging/__init__.py", line 1585, in _log
    self.handle(record)
  File "/usr/lib/python3.9/logging/__init__.py", line 1595, in handle
    self.callHandlers(record)
  File "/usr/lib/python3.9/logging/__init__.py", line 1657, in callHandlers
    hdlr.handle(record)
  File "/usr/lib/python3.9/logging/__init__.py", line 948, in handle
    self.emit(record)
  File "/home/netmin/.local/lib/python3.9/site-packages/pip/_internal/utils/logging.py", line 179, in emit
    self.handleError(record)
Message: '[present-rich] %s'
Arguments: (UpgradePrompt(old='22.1.2', new='22.2.2'),)

Is this on purpose (i.e. encouraging other ways to install?)

Hey, Fixed the error, thanks for the post


Expand symbol! into type-level list instead of N-tuple

Summary
Currently, the macro symbol!("hello") would be expanded into:
(Char<'h'>, Char<'e'>, Char<'l'>, Char<'l'>, Char<'o'>)

We should instead expand it into:
Product![Char<'h'>, Char<'e'>, Char<'l'>, Char<'l'>, Char<'o'>]

This is so that we can more easily define generic implementations work on the symbol types. For example, we can define a HasString trait that would be implemented for the type-level list of chars:
pub trait HasString {
  fn string() -> String;
}

impl HasString for Nil {
  fn string() -> String {
    String::new()
  }
}

impl<T, R, const C: char> HasString for Cons<Char<C>, R>
where
  R: HasString
{
  fn string() -> String {
    let mut str = R::string();
    str.push(C);
    str
  }
}

Closed by #36


runtime parameter with multiple values

We discussed in the linked issue (below) to enable a multi-value runtime parameter.
tl,dr; We want to tell a text box detection app to use both slate and credit TimeFrames (and possibly more) at the runtime.
This issue to track discussion and implementation of the proposal in the comment.

Also, here are we assuming that the options for property keys and values are fixed? If a new tool is added that produces a new type for frameType, will downstream apps need to be updated to allow that frame type as a parameter?

I think that's true if the parameter specification of the downstream app uses choices field. One can define a parameter without more-constraining choices but loosely specify possible values in the human readable text (in description field).

Is the objection against not having the frameType=text part in the input?

Yes. The input object is under-specified in that the app in fact wants certain kinds of TimeFrame, but any.

  "multiple-select-allowed": "true",

I like this idea. With recent conversation with GBH, we might want to add a parameter to pick labels of interest to the spacy NER app. We can either go with whitelisting or blacklisting, but at the end of the day it can look something like this;
"parameters":
 {
   "name": "discard-ne-label",  # going with a blacklist
   "type": "string",
   "choices": ["person", "organization", "date", "ord", ... ],
   "multiple-select-allowed": "true",
   "description": "make app to ignore certain NE labels in the output MMIF"
 }

And finally on the URL form for multi choice params, I also prefer a succinct form
https://someapp/?run-on-timeframe=slate,credits

But, I also believe going with repeating the key with each value is a safer way
https://someapp/?run-on-timeframe=slate&run-on-timeframe=credits

Simply because in the succinct form, we have to worry about parameter values that (possibly) include literal commas , in them, even though that's not so likely to happen.
Originally posted by @keighrim in https://github.com/clamsproject/clams-python/issues/29#issuecomment-854893951

Few points to decide;

URL format for the multi-valued parameters. Two methods were suggested in the above. For the safety reason I said in the above, my vote is for repeated keys (key=val1&key=val2). Also flask supports convenient parsing of such multi-valued query strings.
What to do when two or more values are passed to a parameter that doesn't allow multi-value? Either the first or the last value should be used. In the case of flask, it only keeps the first value.


Contribution Guideline

Is your feature request related to a problem? Please describe.
MONAI tutorial repo lacks a guideline on how to contribute tutorials to the repository, which imposes burdens on maintainer.
Describe the solution you'd like
Adding a CONTRIBUTING.md to the root path.
A draft of the outline

Welcome message and introduction

Contributing process (similar to the process in the MONAI Core repo)

Submitting PR in GitHub
Signing the commits with git commit -s
Adding licensing/copyright information for new .ipynb and .py files

Code scripts: at the top
Jupyter notebook: first markdown block

As used in the MONAI repo, contributors first raise an issue, create a branch in contributor's forked repo (suggested by @yiheng-wang-nv).
Update the README.md in the root dir for new tutorials (suggested by @binliunls)
Info about how to test the tutorial changes in a user's local environment (suggested by @wyli) .

Style

Requirements (which will go through pre-commit checks/CI tests)

Add standard cellblocks "Setup environment" and "Setup imports" for every notebook.

"Setup environment" should include the pip commands !pip install to install MONAI and other necessary packages.
"Setup imports" should import all the library and end with monai.util.print_config().

Text outputs should be limited to avoid a large trunk of text outputs (maybe 50 lines should be the limit?)
Each folder should have a README.md (suggested by @KumoLiu).

Recommendations (won't be covered by tests, but reviewers will take a look)

If a dataset needs to be used with the script, contributor needs to provide links to the dataset and make a note about the dataset's licensing info. For example, some dataset may be used for non-commercial purposes only.
Avoid large files (dataset files, notebooks > 5M?)
Private information should be removed. For example, user name in the file paths in the notebook outputs and metadata.
Hyperlinks

avoid linking MONAI tutorial resources in the repo using web link (instead, use relative file paths)
avoid linking folders (folder links do not work well in Jupyter notebooks)
for graphs, it is recommended to download them and add to the repo in the ./figure folder

Benchmarking

To meet the requirement of the MONAI Toolkit, A100 should be the standard device for benchmarking in all notebooks. (Contributors may have difficulties to get the computation resources. In that case, can the NV team do it after the initial PR is merged?)

CI Test Guide (suggested by @tangy5 )

documents of what CI will test and how to pass them

Adding @KumoLiu @binliunls @yiheng-wang-nv @tangy5 @Nic-Ma @wyli @dongyang0122 @myron @holgerroth @finalelement for visibility. Any suggestion/comments/questions are welcomed!

Adding licensing information

So far, not all tutorials in the repo have license information, thus will we supply them first?
In addition, is it similar to model zoo that for a new contributed tutorial, license for both dataset and code should be covered?

Requirements (which will go through pre-commit checks/CI tests)
Suggest to attach a template

Adding licensing information

So far, not all tutorials in the repo have license information, thus will we supply them first? In addition, is it similar to model zoo that for a new contributed tutorial, license for both dataset and code should be covered?

Thanks @yiheng-wang-nv . Yes, we needed licensing info for every existing notebook and script file.
The license for dataset may not need coverage. As Andy suggested before, we can add a sentence in the notebook to make a note. For example:
"In addition, please notice that some datasets used in application tutorials are under a noncommercial license. You may not use these datasets for commercial purposes."

Requirements (which will go through pre-commit checks/CI tests)

Suggest to attach a template

Sounds like a direction I can check! Can you give an example? Thanks @yiheng-wang-nv

Requirements (which will go through pre-commit checks/CI tests)

Suggest to attach a template

Sounds like a direction I can check! Can you give an example? Thanks @yiheng-wang-nv

sure. I can submit a PR to address the template after we align all requirements.

Contributing process (similar to the process in the MONAI Core repo)

suggest to add two steps (used in MONAI core) before submit PR:

create a ticket
create a new branch in your fork

Do we allow external works to contribute after approval, and strictly follow guidelines? We definitely don't want to include too much works with free degree. But some great related work might benefit to the MONAI community, as some works are not suitable for MONAI Core. Will Tutorial repo a place that house these types of work?
Just like Model-Zoo.

We need clear notebook check guideline for contributors.
Currently, some CI tests and checks are confusing, contributor doesn't know what to handle...
For example, for tutorial notebook including training/inference with epochs, what CI tests will do and rules.
If no training, how to add to the list to avoid triggering such CI tests.
Similar things apply for python script based tutorial as well. We can have a guideline.

@tangy5 The question to me is how we can make guideline helpful, instead of restrictive in the contributor's work. For example, we can provide template with some notes about the CI tests, if that's helpful.

Welcome message and introduction
Contributing process (similar to the process in the MONAI Core repo)

Submitting PR in GitHub
Signing the commits with git commit -s
Adding licensing information for new .ipynb and .py files

Code scripts: at the top
Jupyter notebook: first markdown block

(Updated by @yiheng-wang-nv) As used in the MONAI repo, contributors first raise an issue, create a branch in contributor's forked repo.
I‘d like to suggest we add a step for update the tutorial readme with new tutorials after uploading tutorials.

Yes that's a good one too. Thanks @binliunls !

Hi @tangy5 ,
We are doing open source project, always welcome community contributions following the guideline.
Thanks.

Just three small suggestions:

We may also need to add README.md for each project folder not only for the README in the root dir.
If both jupyter notebook and script are included, it is recommended that contributors can implement the code using torch or ignite separately. If possible, it is recommended to add multi-GPU implementation in the script.
l also think “Check first data shape and visualize” can be a standard cellblock that helps users better visualize what the input looks like.

Thanks!

this looks like a duplicate ticket of https://github.com/Project-MONAI/tutorials/issues/761, https://github.com/Project-MONAI/tutorials/issues/118 cc @finalelement
would be great to include some info about how to test the tutorial changes in a user's local environment.

I think the "Adding licensing information" here means to add the copyright information:
# Copyright (c) MONAI Consortium
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

Thanks.

Hi @KumoLiu ,
Thanks for the suggestions, for your 2 and 3, I think we should only mention it for a training task related tutorial. We have many tutorials only show some functionality or module features.

It looks like the new version of monai.config.print_config() will print where the __init__.py is on the user's system, which will leak username in the path if their environment is configured by conda with the default settings @wyli @Nic-Ma .
Mine is like:
MONAI __file__: /home/adminn/miniconda3/envs/nb_test/lib/python3.8/site-packages/monai/__init__.py

Should we remove this recommendation?
Private information should be removed. For example, user name in the file paths in the notebook outputs and metadata.

Hi @KumoLiu

Just three small suggestions:

We may also need to add README.md for each project folder not only for the README in the root dir.

We need to add README.md retrospectively for all existing folders. What do you recommend putting in those README.md?

If both jupyter notebook and script are included, it is recommended that contributors can implement the code using torch or ignite separately. If possible, it is recommended to add multi-GPU implementation in the script.

I imagine there are three inexplicit levels of asks in the guideline:

required (which will be enforced and tested by CI/CD)
recommend (reviewers will check)
encourage (no obligation, completely up to the contributors)

I think the implementation work package may vary between contributions, and I would suggest we just "encourage" people to do this.

l also think “Check first data shape and visualize” can be a standard cellblock that helps users better visualize what the input looks like.

I added this in the example_feature.ipynb in my PR #1125 . It is difficult to construct a test for such lines in a Jupyter notebook in a CI/CD. Making it "required" would be good but challenging.


ValueError: list.remove(x): x not in list

Something must be broken with PEX_IGNORE_ERRORS
$ pex flask -o /tmp/flask.pex
$ PEX_PYTHON=pypy /tmp/flask.pex
Traceback (most recent call last):
  File "/tmp/flask.pex/.bootstrap/_pex/pex.py", line 311, in execute
    working_set = self._activate()
  File "/tmp/flask.pex/.bootstrap/_pex/pex.py", line 76, in _activate
    for dist in env.activate():
  File "/tmp/flask.pex/.bootstrap/_pex/environment.py", line 132, in activate
    self._working_set = self._activate()
  File "/tmp/flask.pex/.bootstrap/_pex/environment.py", line 179, in _activate
    resolved = self._resolve(working_set, all_reqs)
  File "/tmp/flask.pex/.bootstrap/_pex/environment.py", line 150, in _resolve
    reqs.remove(unresolved_req)
ValueError: list.remove(x): x not in list

This is an issue with DistributionNotFound from pkg_resources providing wonky exception arguments.  e.args[0] is the actual Requirement and e.args[1] is the set of project_names of the last hop of projects requiring e.args[0].  This means that deleting e.args[0] from the reqs will not be sufficient to prevent an infinite loop here.  I think the only way around this is to resolve one req at a time.

I hit this same stack trace when I build a pex on OS X, but then tried to run it on linux without any linux-specific bdists included.


[O/T] any contributor who can solve mailflow installation problems?

I know this is off-topic, but we seem to be stuck trying to install the mailflow python2.7-based Mail bundle on Big Sur. If anyone can help out, it would be much appreciated.
https://github.com/arachsys/mailflow
There is no Issues section there, but a small discussion can be found in one of the pull request topics here: https://github.com/arachsys/mailflow/pull/3

General advice: Copy the UUIDs from my Info.plist then read my postinstall.
For Big Sur, the mailbundle also has to be signed and notarized.

Line 1: yep, did that
Line 2: that seems to be the problem then… signing & notarization… but how do developers test their mailbundles? Always properly sign & notarize before any testing?

I develop on a 10.15 machine but if you need to test on Big Sur, you can just copy the mailbundle to: "/Users/${USER}/Library/Application\ Support/Mail/Plug-ins/Bundles/Library/Mail/Bundles" using Finder

@JayBrown Again, feel free to knock off my Finder Apple Script. You can also see my GitHub Actions workflow to see how I setup my pkg installer too.
The whole process is essentially:

Include the Mail.app UUIDs in Info.plist
compile with Xcode 12 against Big Sur's Mail.app for arm64 (e.g. Apple Silicon) support, enable hardened runtimes (everything to pass notarization)
package everything into a pkg
sign and notarize (then staple) the whole pkg
the pkg contains a postinstall script which: quits mail, copies the mailbundle to /Library/Mail/Bundles/ then:

[Big Sur only] copies it also to ~/Library/Application\ Support/Mail/Plug-ins/Bundles/Library/Mail/Bundles
or [10.15 and below] runs codesign --remove-signature on the mailbundle


Transient database errors with offload enabled cause workflow to fail

Summary
If there is a transient database connection error with offload enabled, then active workflows are marked as failed. I would at least expect some kind of retry.
Diagnostics
What Kubernetes provider are you using?
GKE
What version of Argo Workflows are you running?
2.11.0-rc1
Paste the logs from the workflow controller:
kubectl logs -n argo $(kubectl get pods -l app=workflow-controller -n argo -o name) | grep ${workflow}

 time="2020-11-02T13:32:42Z" level=error msg="hydration failed: dial tcp 10.X.X.X:5432: connect: connection refused" namespace=default workflow=XXXX
 time="2020-11-02T13:32:42Z" level=error msg="Failed to archive workflow" err="dial tcp 10.X.X.X:5432: connect: connection refused" namespace=default workflow=XXXX

Seems to be caused by controller.go:517 which marks any workflows as 'error' if hydration fails.

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

This should be fixed. I think we should create a RetryingOffloadNodeStatusRepo that delegates to another OffloadNodeStatusRepo - but adds retry using wait.ExponentialBackoff. Would you be interested in submitting a PR?

Thanks - I’m afraid I don’t have capacity to work on this in the immediate
future.
On Thu, 5 Nov 2020 at 22:47, Alex Collins<EMAIL_ADDRESS>wrote:

This should be fixed. I think we should create a
RetryingOffloadNodeStatusRepo that delegates to another
OffloadNodeStatusRepo - but adds retry using wait.ExponentialBackoff.
Would you be interested in submitting a PR?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/argoproj/argo/issues/4464#issuecomment-722689502, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABO7LQMZGTQPAZVYYKLT3TSOMTRXANCNFSM4TLJAWZQ
.

https://github.com/argoproj/argo/commit/ee848921348676718a8ab4cef8e8c2f52b86d124

Can you try with v2.11.7?

I tried turning off incoming connections for the DB for a few seconds while a workflow was running, and got this, which looks like a hard fail on dehydration:
workflow-controller-59d5969b9d-9j568 workflow-controller time="2020-11-09T16:37:01Z" level=warning msg="Failed to dehydrate: pq: database \"staging_codec\" is not currently accepting connections" namespace=staging workflow= XXXX-7ldnh
workflow-controller-59d5969b9d-9j568 workflow-controller time="2020-11-09T16:37:01Z" level=info msg="Updated phase Running -> Error" namespace=staging workflow= XXXX-7ldnh
workflow-controller-59d5969b9d-9j568 workflow-controller time="2020-11-09T16:37:01Z" level=info msg="Updated message  -> pq: database \"staging_codec\" is not currently accepting connections" namespace=staging workflow=XXXX-7ldnh

How long was your database offline for?

Ah - about a minute and I can see that the maximum retry is under a second.
How about having more retries for DB connection issues? eg single-AZ
database deployments with Amazon RDS can have outages of several minutes
during maintenance.
On Mon, 9 Nov 2020 at 19:34, Alex Collins<EMAIL_ADDRESS>wrote:

How long was your database offline for?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/argoproj/argo/issues/4464#issuecomment-724231399, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABO7LSI2BXTVUU2WJSLWELSPA747ANCNFSM4TLJAWZQ
.

Maybe a transient error should not fail the workflow, instead, it should leave it running?

Yes - I think if there's an error accessing the database on hydration then we should leave it running and try again later. However if the error is on dehydration then we could end up with a set of workflow updates that we can't persist, I don't see a good way out of that so failing the workflow seems reasonable.

@jessesuen interesting point - SQL database could be offline for minutes.

For hydration, was can just re-queue the workflow and try again.
For dehydration data might be lost.

What should we do - keep retrying for minutes?

@markterm I've created an engineering build for you to test:
docker pull argoproj/workflow-controller:nr

It looked like this worked :)

Just checking if this is going to be merged?

I've just re-implemented this is a simpler version. It's targetted for v2.12 which is rc-3 today.

great - thanks!
On Mon, 23 Nov 2020 at 18:21, Alex Collins<EMAIL_ADDRESS>wrote:

I've just re-implemented this is a simpler version. It's targetted for
v2.12 which is rc-3 today.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/argoproj/argo/issues/4464#issuecomment-732340270, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AABO7LXJU7ZBIYJ5S6Z2D2TSRKRZZANCNFSM4TLJAWZQ
.

Merged into https://github.com/argoproj/argo/releases/tag/v2.12.0-rc4


add option to show arithmetic moving average like excel graph

Feature Proposal
add option to show arithmetic moving average like excel graph

Possible Implementation
No response

@insinfo I forgot to mention https://github.com/Makanz/chartjs-plugin-trendline, another plugin which could address your use case


Duplicate ExcelDefaults wix property?

The issue goes away if I delete the second ExcelDefaults fragment. Otherwise, it won't build.
https://github.com/smith-chem-wisc/MetaMorpheus/blob/master/MetaMorpheusSetup/Product.wxs#L445

fixed in #1357


Client Generator: Custom config-key with minus (-) get translated to underscore (_) in the generated code.

If a custom config-key setting is used, the value of config-key gets its "-" replaced with "_".
Example:
quarkus.openapi-generator.codegen.spec.my_json-config-key=my-api

results in
@RegisterRestClient(baseUri="...", configKey="my_api")

Sure, will have a look. Earliest next week though.

@mcruzdev I think it's reasonable to have the - added to the regexp in case of a custom config like this. 🤔

Any progress?


Feature/typescript todo example

Typescript Todos Example - ticket: https://github.com/reactjs/redux/issues/2489

Hi guys,
not sure if there are some fans of TypeScript ✌ - but definitely it's good alternative to Flow. For Redux there is already Flow todos example - but TypeScript example project is missing, and you need to search it in alternative sources.
So I thought, might be nice idea to create todos also in TypeScript! 😏
Sub-project is based on Flow example, rewritten to typescript, added required typings and changed React create app scripts to support typescript.
Hope this might be good start for new guys adopting redux in TypeScript. And for experienced TypeScript devs to get always fresh ideas from this example (maintained by redux community).
Soo.. what do you think?

Hi guys, you did great work on Redux typescript typings, can you take a look at my PR please @DanielRosenwasser @aikoven @raineorshine @use-strict

@jurosh I'd rather not involve a fork of react-scripts if we can avoid it. If there are divergences in functionality, examples may behave differently between the examples. I'd like to keep things as normalized as possible. Thank you, though!


This moves /var/opt to /var/vcap/data/root_opt

Similar to what we do with /var/log, we've seen issues where
people are installing 3rd party software on stemcells using automation.
For example, the Microsoft OMI Agent.
This software gets installed into /var/opt and logs into /var/opt/omi/log.
This ends up filling up the root disk eventually and VMs need
to be recreated. This software has no configuration options to log
into /var/log (and it seems that logging into /var/opt/THING/log
may be the correct linux spot to log to)
While this is not the suggested way to install software
onto a stemcell, this type of software is often put there
by people not involved with Bosh lifecycles.
Signed-off-by: Joseph Palermo<EMAIL_ADDRESS>

We weren't thrilled about adding a new SetupOptDir method to the Platform Interface as this method doesn't really apply to Windows platforms, but it seemed better than the other options for testability.
From a design perspective, the SetupLogDir and SetupOptDir functionality seems like it should actually be part of SetupRootDisk, but there are actually a lot of other things that also could be bucketed into that same category, and since SetupRootDisk is doing a bunch of partitioning and resizing we didn't want to complicate the tests for that with additional factors.

Force pushed an update. There were some changes needed for the integration test helpers to clean up the mount points between tests.


C++ exceptions not caught in opening bad project with pymolpro.Project()

import pymolpro
import pysjef
import os, shutil
pname = 'check_empty.molpro'
shutil.rmtree(pname)
os.mkdir(pname)
open(pname+'/Info.plist','w').write('')
try:
    p=pymolpro.Project(pname)
except:
    print("exception caught")

fails:
libc++abi: terminating due to uncaught exception of type sjef::runtime_error: error in loading /Users/sacpjk/current/PAPT/check_empty.molpro/Info.plist
No document element found

but is OK if pysjef.Project() is called instead.

It seems to be working now.


Fails due to usupported docker-compose version

Steps to reproduce - Run the playbook on a Ubuntu 16.04 TLS server
Result - ansible-playbook fails on task [scalelite : Tear down existing services] with the following error msg:

Configuration error - Version in "/root/scalelite-run/docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the services key, or omit the version key and place your service definitions at the root of the file to use version 1.

The module community.docker.docker_compose only supports compose versions 1 and 2. The docker-compose.yml file we get from https://github.com/ebbba-org/scalelite-run.git declares version: '3'

Sorry I just seen this issue now.
Ubuntu 16.04 is no longer supported, please use Ubuntu 18.04 LTS or preferred Ubuntu 20.04 LTS


Bump to go 1.21

HIVE-2197

/assign @dlom

/lgtm

security fail is a low-sev issue with no fix published yet. See https://issues.redhat.com/browse/HIVE-2406
/override ci/prow/security


Monitor: Add a stack info to the Processes overview list

Currently we can see only which make it difficulty to find a particular process:


Add deployed website url in the readme file

In the readme file there is not link for the deployed live website url. If the url is present then we can just click on it and see the all the eligible repositories without cloning and running locally.

Thanks Vinod! I added it


enhancement Compatible with python 2.6 and keep the codestyle consistent

Proposed changes
Issue Number: close #xxx
Explicit numbering of format fields is required in python 2.6 and earlier, and we have done this before in doris.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


SQL Based_SQL Action: Before adding long running scenario query, the workflow is succeeded.

Describe the Bug with repro steps
1.Create a project and add Stateful workflow in VS code.
2.Convert your workflow in SQL Based.
3.Open Designer and add http trigger and sql_Execute query_EXEC wait2;
4.Save, Debug the workflow and run the workflow.
Expected: The workflow should be failed after 2 minutes.
Actual: The workflow is succeeded after 2 minutes and some runs are in running state(when opened the monitoring view shows failed after 10+ minutes).
What type of Logic App Is this happening in?
Standard (VSCode)
Which operating system are you using?
Windows
Are you using new designer or old designer
New Designer
Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
Yes
Workflow JSON
{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "Execute_query": {
                "type": "ServiceProvider",
                "inputs": {
                    "parameters": {
                        "query": "EXEC wait2;"
                    },
                    "serviceProviderConfiguration": {
                        "connectionName": "sql",
                        "operationId": "executeQuery",
                        "serviceProviderId": "/serviceProviders/sql"
                    }
                },
                "runAfter": {}
            }
        },
        "contentVersion": "<IP_ADDRESS>",
        "outputs": {},
        "triggers": {
            "When_a_HTTP_request_is_received": {
                "type": "Request",
                "kind": "Http"
            }
        }
    },
    "kind": "Stateful"
}

Screenshots or Videos

Browser
VS Code
Additional context
VS Code extension - 4.71.5

I am also facing the same issue in portal, I have added bug for the same.
Raised one issue

Issue repro in the latest VS code request
VSIX Version: 4.85.2


Fixed link to open source community

fixes #499
Before:
https://github.com/mdazfar2/HelpOps-Hub/assets/162733812/1880b9d4-a001-4eab-a9a6-645f2eb147e4
After:
https://github.com/mdazfar2/HelpOps-Hub/assets/162733812/83eb92ad-5bc4-4324-ab96-6437dc9e72ab

@mdazfar2 please review my PR and merge it under gssoc . If there is anything else I could work on , do let me know , I will be happy to work on it.

@mdazfar2 sure..sorry I didnt notice that

https://github.com/mdazfar2/HelpOps-Hub/assets/162733812/e5c2aeab-7e39-4a71-b26e-2c7b1671940f
done

@Maana-Ajmera update sync fork

@mdazfar2 doing it

@mdazfar2 done

@Maana-Ajmera I think you removed line from the link from some pages

@Maana-Ajmera I think you removed line from the link from some pages

@mdazfar2 no sir, I have not removed it , it was not there in the code, should I add it ?

Yes

@Maana-Ajmera I think you removed line from the link from some pages

@mdazfar2 no sir, I have not removed it , it was not there in the code, should I add it ? , you can check from the code I have changed..I didnt remove it

Yes

@mdazfar2 ok

@mdazfar2 done

@mdazfar2 , links and line are now present in every page

@Maana-Ajmera I'll see after some time as my laptop isn't with me right now.

@Maana-Ajmera I'll see after some time as my laptop isn't with me right now.

@mdazfar2 Thank you .. and sorry for my mistakes, I should have observed them earlier.

@Maana-Ajmera It's okay, everyone makes these small mistakes. It happens to me too. By the way, you are a good developer.

@Maana-Ajmera It's okay, everyone makes these small mistakes. It happens to me too. By the way, you are a good developer.

@mdazfar2 Thank you for your kind words...if there is anything else I could do , do let me know ... I am really enjoying working on this project.

Sure @Maana-Ajmera


checkSchemaOverlap console.log

Why here console.log? May be remove it?
https://github.com/aldeed/node-simple-schema/blob/2b8f902e0d8d84eb923f9cf0cca2124f03f41cf8/lib/SimpleSchema.js#L681

Removed


Bot ignores incubate eggs config #4766

Short Description
egg["km"] returns decimal 2.0 , 5.0 or 10.0.
The config uses integers.
Convert egg["km"] return value to integers.
Fixes/Resolves/Closes (please use correct syntax):

#4766

Ah, nice catch. Couldn't see wth was going on before.
Thanks!

Great catch! 👍


Delete metadata

What does this PR do and why?
This PR adds the ability to delete metadata through the website UI. Users with access can delete metadata either by the action dropdown, or by using the checkboxes and clicking the Delete Metadata button.
Screenshots or screen recordings
Delete by action dropdown:
Screencast from 2024-02-14 08:09:23 AM.webm
Delete multiple fields with checkboxes and modal:
Screencast from 2024-02-14 08:09:51 AM.webm
Metadata page for user < Maintainer access:

How to set up and validate locally

Navigate to a sample's metadata page
Ensure you are able to delete metadata by both the action dropdown and with the checkboxes and Delete Metadata button
Logic for attachment checkboxes was slightly altered due to the implementation of the metadata checkboxes, so ensure the following:
a) Ensure checking off files and metadata does not enable the other's action buttons (ie: checking off metadata does not enable concatenate/delete files buttons, checking off files does not enable the delete metadata button)
b) Ensure file concatenation behaves as expected
c) Check both files and metadata for deletion. Ensure deleting one set does not affect the other set (ie: deleting files does not affect any metadata)
Ensure a user with access < Maintainer does not see metadata checkboxes, action dropdown, or the Delete Metadata button.

PR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

[x] I have evaluated the PR acceptance checklist for this PR.

Because the files and metadata now share a url, and therefore would share checkbox logic, I've had to specify the query path in order for the checkboxes to not overlap with one another (ie: attachment checkboxes not enabling delete metadata and vice versa).
This has led to a cumbersome implementation where I've had to add tab: 'files' to all redirects and navigation to 'namespace_project_sample_url(edit sample, clicking sample from groups samples page, etc.) so that the query?=filesis in the URL. Just wondering if this is fine or there's a better solution for this. Maybe a before_action checking if theparam[:tab].nil?` and then add the files query to the URL if nil? params[:tab] is not nil when clicking between files/metadata tab on the sample show page, but would be nil from anywhere else.
Let me know if this doesn't make sense!

Because the files and metadata now share a url, and therefore would share checkbox logic, I've had to specify the query path in order for the checkboxes to not overlap with one another (ie: attachment checkboxes not enabling delete metadata and vice versa).
This has led to a cumbersome implementation where I've had to add tab: 'files' to all redirects and navigation to namespace_project_sample_url (edit sample, clicking sample from groups samples page, etc.) so that the query ?tab=files is in the URL. Just wondering if this is fine or there's a better solution for this. Maybe a before_action checking if the param[:tab].nil? and then add the files query to the URL if nil? params[:tab] is not nil when clicking between files/metadata tab on the sample show page, but would be nil from anywhere else.
Let me know if this doesn't make sense!

I came up with a workaround:

All routing is back to normal - initial click onto a sample#show will not include any queries in the URL, but clicking between files/metadata and soon to be history tabs will have ?tab=<TAB NAME>
Added an empty div in attachments/_table which will contain the sample ID
in stimulus controller selection_controller, I check for this empty div, if it is present, we used a hard coded path for storageKey that contains ?tab=files. This will allow both the initial routing and routing which includes ?tab=files to have the same 'set' of checkboxes stored.
In stimulus controller attachments/selected_attachments, I've had to set the default storageKey to have a hard coded ?tab=files as well.

I think this solution is the most flexible... Let me know if you think of an alternative idea.


Fixes #6211

This adds a SubstructMatchParams object to ChemicalReaction and uses that to control substructure matching.
It also adds a substructMatchParamsToJSON() function so that we can easily and flexibly serialize those parameter objects.
Fixes #6211

@jones-gareth : can you please take a look at this?

The new fun is that the windows CI builds have started to timeout semi-regularly due to conda environment resolution taking too long. I will do a PR in the near future with either a switch to mamba or use of the new solver.

I can look at it this weekend

LGTM - we may want to add some forward looking documentation, but this does what it says on the tin.

@greglandrum LGTM, we may want a forward plan where useChirality defaults to True to reduce surprising users in the future.


Fix .capybara_root with partial Rails environment loaded

In our tests we are not loading the entire Rails environment to speed up our suite, but we do require a number of ActiveSupport/ActionView helpers. This breaks capybara-screenshot as the Rails module is loaded, but ::Rails.root raises NoMethodError.
This is a minor fix to ensure that the ::Rails.root function is callable.

Would love to get this merged!

Thanks very much, @mattheworiordan !

Thanks very much, @mattheworiordan !

Thanks very much, @mattheworiordan !

Thanks very much, @mattheworiordan !


Authelia can not build a user's distinguised name

Hi @clems4ever
Since implementing the new group filter whereby Authelia now attempts to build a user's distinguished name from parts there is an issue when a user's username is not a component of their distinguished name.
e.g. user Joe has a username joe and a cn of Joe Blogs, resulting in a dn of cn=Joe Blogs,ou=users,dc=example,dc=com
When Joe logs in to Authelia with his username joe she builds his dn resulting in cn=joe,ou=users,dc=example,dc=com which is there queried against the LDAP server for group membership. However this fails as this dn is not recognised.
After a bit of googling it would appear that some say the cn must be unique, others use it as the full firstname lastname as in this case; instead relying on another attribute like the sAMAccountName to be the unique identifier for a given domain (as in my use case).
I'm ready for some testing and helping in any way I can!!!
Cheers.

Hello @jmccoy555 , I will provide you with a fix in few minutes. Thank you so much again for the time you spent before finding the issue! I'll keep you posted.

All fixed. Thanks :)

Hello @jmccoy555 , my release model was not very good so far. I wanted to do a one-off version only containing the fix you need but given what I have now I need to create a new release branch for this specific patch. I would like to avoid that to not have plenty of release branches. Do you mind if I release your fix with the latest fixes already in master (the configuration might break, but not by much).
From now on, I will use 'develop' branch to add features and do MRs and use master only for releasing only.

On which branch are you? master?

Yes, just pulled the docker image with master tag, about an hour since last build.
Will this go to a specific version soon?

I've almost forgot I've done the fix to publish the master tag in dockerhub, great!
Yes, it will go into a 3.6.0 very soon but as I said Authelia will then be expecting some new attributes in configuration and since I added a configuration validator at startup, old configuration might need to be updated but it's really not a big deal. I think it will only be a matter of adding sender to Gmail and SMTP notifier.

But compared to previous versions, the validator will tell you what's wrong in the configuration.

Yes, just the sender had to be added.


Make @emeralt/storage-gcs credentials optional

Credentials shouldn't be required, because @google-cloud/storage supports authentication via env variables.

Fixed in b983a9a89ef8c0979406d75ba8c9f6d874ac3027, will be available in v0.5.0 ✨


optimization: replacing commonly used HTTP strings with enumerations.

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind bug
/kind documentation
/kind enhancement
/kind good-first-issue
/kind feature
/kind question
/kind design
/sig ai
/sig iot
/sig network
/sig storage

What this PR does / why we need it:
Code optimization:
replacing commonly used HTTP strings with enumerations.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

Does this PR introduce a user-facing change?

other Note

/approve

/approve

/approve

/lgtm


Possible missing items

Hi,
You might want to add the following items to the "Korthian items" filter :

Zovaal's Dark Carafe - 187236
Collapsing Riftstone - 186969
Tasty Mawshroom - 187153
Ashen Liniment - 187421
Trained Gromit Carrier - 187508
Korthite Crystal - 186017 (not sure about this one, it's kind of a legendary crafting material)

Thanks !

I added them all, except Korthite Crystal, because it is considered a tradeskill item.


All requests blocked by CORS

I am sending a POST request to a Murmux API from a React frontend like so:
const requestOptions : RequestInit = {
    method: 'POST',
    headers: { 'Content-Type': 'application/json', 'authorization': 'Bearer ' + auth},
    body: JSON.stringify(body),
    mode: 'cors'
};

await fetch(url, requestOptions).then(response => response.json()).then((result) => {
    return result;
}).catch((error) => {
    return error;
});

The result of this is that I get an error in the console:
Access to fetch at 'http://localhost:8080/submit/style' from origin 'http://localhost:5173' has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.

Removing the Authorization header gives the same error aimed at Content-Type instead
In fact, the CORS example in the repo doesn't work for me either, the requests are still being blocked.
Here is how I have set up my routing. I have tried to use the withHeaders function as well but no configuration seems to work. Is there a way to disable CORS entirely?
MxCors cors = new MxCors(new MxCors.Options().withMethods(MxMethod.ANY).withOrigin("*").withAllowCredentials(true), routes.getRoutes());

try {
    murmux.rootHandler(new MxRouter().prefix("/", cors)).listen(PORT);
    System.out.println("Server running on port: " + PORT);
}catch(Exception e) {
    e.printStackTrace();
}

Hey, thanks for reaching out! I'll take a look at the repro code.
In the meantime, just remove the MxCors handler, and CORS functionality should be gone entirely.
Thanks!


How do I change font size of card text and card title?

new prop will be added to customize this behavior in 1.15.

@BladeRunner713 please use the new prop fontSizes to customize the fonst sizes.


Share Testflight version and run an incentive around mobile wallet

Chore
What we need to achieve and who for
Tasks

[ ] Publish latest version to AppCenter
[ ] Share it with community
[ ] Have Dan set up an incentive

Notes

We did this