Robyn_refresh error when collection results

Project Robyn
Describe issue
issue - when running robyn_refresh with more than 22 incremental days i get this error below
error message:

Collecting results...
Error in RNGseq(n, seed, ..., version = if (checkRNGversion("1.4") >= :
NMF::createStream - invalid value for 'n' [positive value expected]
Calls: robyn_refresh ... robyn_run -> %dorng% -> do.call -> doRNGseq -> RNGseq

Provide dummy data & model configuration
what else is needed?
Environment & Robyn version
R version :  R version 4.0.3 (2020-10-10)
Robyn version: Robyn_3.4.8

Hey, this is very strange. I can't think of any possible cause out of the box. We'll need a reproducible dataset to replicate this error, including a dataset (true value masked) and your demo.R file for model specification. If you don't want to share publicly, please send it via email @laresbernardo and me<EMAIL_ADDRESS><EMAIL_ADDRESS>

what should i mask the data? By true value you mean features and target?

Users usually don't share real data with us but somehow randomised dataset.

ok, sent it to you email

Hi @ohad-monday
I've just run your example exactly as you sent us (with less iterations and trials) and ran OK. I'm attaching the R file I used with your demo.csv (not included). Please, be sure to update Robyn to the latest version (3.6.0 - released today) and try again.
Note that now we set iterations and trials within robyn_run() (you'll get a warning).
Do let us know if it works for you after updating.
issue_307.R.zip

@laresbernardo thank you, im checking right now.
One thing though, did you change something in the modeling part to could cause to very poor accuracy of the models?
i'm running it from the beginning of the pipeline, and the fitted models on the same data are terrible. did you change/add any param i need to add/change during the robyn_run?

hey, yes there're actually major improvement in optimisation, see here. Please also check out the new demo.R guide that introduces new functionalities and workflows. You should be also seeing new convergence message after the model runs. How many iterations are you running? Now for the simulated dataset it converges at 1.5-2k iterations.

new version - i ran it with 2500 iterations... something is completely off

refresh bug: i ran it again with the new version, still getting the same error:
Finished in 4.04 mins

Running Pareto calculations for 3000 models on 3 fronts...
Error in RNGseq(n, seed, ..., version = if (checkRNGversion("1.4") >= :
NMF::createStream - invalid value for 'n' [positive value expected]
Calls: robyn_refresh ... robyn_pareto -> %dorng% -> do.call -> doRNGseq -> RNGseq
In addition: Warning message:
In check_calibconstr(calibration_constraint, OutputModels$iterations, :
calibration_constraint set for top 10% calibrated models. 300 models left for pareto-optimal selection. Minimum suggested:

Can you share this plot with us: OutputCollect$OutputModels$convergence$moo_distrb_plot

@gufengzhou  I don't see a this plot here:

@ohad-monday make sure you're using Robyn v3.6.0 release

@laresbernardo sure! (it's from the robyn_run())
here it is:

Thanks for sharing. as you see, model hasn't converged, if you compare this with the example plot here. Esp. NRMSE hasn't moved from the right side and it reflects exactly the bad fitting plot you showed before. I recommend you to run higher iterations to try out. You can do for example 5k with 1 trial first to see if 5k converges. The reason for this change of convergence speed is that we've added lambda as extra hyperparameter to enable its automatic optimum selection. We'll fine-tune it over time to improve convergence speed.

FYI I've just committed a fix that should accelerate convergence. You should be seeing the "hills" in the plot moving left earlier compared to before. Let us know if it works.

@gufengzhou Found the reason you weren't able to reproduce the error i got. the problem is with a model with a 0 coefficient that also has calibration data for this channel. might be somehow related to the mape lift calculation for the nevegrad optimization?

Uhh, bummer. Would you be able to send me (laresbernardo @gmail.com) a CSV with anonymized data and the .R file you're using to run Robyn so I can replicate exactly your issue? It'd be really useful to debug this error in case you're not able to do it yourself and make a pull request. I'd be happy to check given that Gufeng will be on leave for some months.

@laresbernardo thanks! i shared an updated params.R in email with calibration data. the refresh supposed to end with an error. than if you will exclude the f6 feature from the calibration data, it will work.

Hi,
I also use the new version of Robyn, and found calibration result very poor. My actual and predicted result looks very similar to this .
I tried increasing iterations to 5000 ~ 7000, but the it won't converge still. What's even more strange to me is that, the trained R2 is negative.
Is there any update over this issue?
Correct me if I'm wrong, my understanding is that previous version 3.5.0 choose best lambda of Ridge regression using 10 fold cv on window period. What has changed in the method to tune lambda in 3.6.0 version? and why do you decide to make the change?
Thanks very much for your help! I'm really learning a lot from your product development and discussion here!

@kyletgoldberg Hi, thanks for your reply! I've checked the coeffecient in "pareto_aggregated.csv". The channels of interest don't have a 0 coefficient. Though after iterations it seems that results are still far from convergence, all channels in my model result have positive coef.

Thanks for taking a look - how many different calibration inputs are you using? this is a difficult one to replicate on our end since we don't have data to recreate, but if you don't have too many calibrations, would it be possible to take them out one at a time and see if it is one particular calibration input causing an issue? I suspect some interaction between the calibration and the lambda hyperparameter optimization is causing the issue

@kyletgoldberg
Thanks very much for your suggestion! I figure out why the calibration result don't converge. In my calibration data, I have one media with different testing period. But one of the testing period has an uplift too small compared to others. After dropping this testing period from calibration data, the model works fine.
But could you briefly explain what has changed about calibration in the new version? my understanding is that previous version 3.5.0 choose best lambda of Ridge regression using 10 fold cv on window period. What has changed in the method to tune lambda in 3.6.0 version? and why do you decide to make the change?
Thanks!

@kyletgoldberg
Thanks for your suggestion!
I've tried input just one media one testing period into calibration, but the result is still not working out.
My calibration data is by month, but my input data is by week. Does that possibly impact the result?
But could you briefly explain what has changed in version 3.6.0 about calibration? Cus when using previous version with calibration, the result worked fine. I think by understanding the logic of change may help me to detect the bug further.
Thanks!

@JiaMeihong That shouldn't be an issue - nothing changed in 3.6 with respect to calibration, but in 3.6 we added lambda hyperparameter to the nevergrad optimization rather than using the CV method. This should lead to better results by allowing more flexibility in learning the hyperparameters, but also seems to be leading to some convergence issues when paired with calibration data at times.
It seems like what is essentially happening here is that we are running into cases where the calibration data is so at odds with how the model wants to fit that it is never going to converge, which is a difficult problem to solve.
I saw you had edited a comment that had initially said that removing one of the calibrations with the lowest lift had got the model to work again - was that the case? It could be worth digging into how exactly the test was set up vs. how the data is collected for the channel - i.e. does the test encompass all of the spend you are measuring? etc. to ensure that they are as aligned as possible. Would be great to understand any info you have on this part to keep working to figuring this out. Thanks for your patience!

@kyletgoldberg Thanks very much for your detailed explanation! For the lambda part, I understand the version difference now.
So sorry for confusion caused by my previous comment (already deleted), it turns out I have not include calibration properly, so please ignore my previous comment.
What I found for now is, yes there's a converging issue when I try to add calibration, even just one channel of one testing period won't converge in my case; and I also played with another model without calibration, but a lot more media channels. The latter case also haven't converge after many iterations.
I got into a headache of dying kernel when iterations are too many, and thus feel that simply increasing iterations in hope of achieving convergence may not be a good idea. Would appreciate it very much if there're other workarounds to get convergence.

@JiaMeihong do you mind sharing what you get when you run the following code after the non-convergent models in both calibration and non-calibration cases?
OutputModels$convergence$moo_distrb_plot
OutputModels$convergence$moo_cloud_plot

How many media channels are you including in that second case? We generally recommend to have at least 10 observations per independent variable so that may also be adding some difficulty. Thanks again for your patience

@kyletgoldberg
Hi, please find the following plot. with 2500 iterations and 10 trials, no metrics has converged.

How many media channels are you including in that second case?
I have added 7 channels in total, and each have more one year weekly data. Though I specify just the recent one year in the window function.

@JiaMeihong could you also run that without the calibration and share how it looks?

@JiaMeihong can you give us a bit more context on your calibration inputs?

Are those experiments measuring the same KPI you are modeling (dep_var)?
Is the spend provided similar to the spend of that media channel date range?
How confident are you of the incremental results measured?

If we run a model to convergence, does the Pareto Front determination exclude solutions which are pre-convergence?

Hi @extrospective
I guess the answer would be no, because we only compare the last 5% of models with the first ones, regardless of the number of iterations. I guess you could back-engineer the values calculated for the last quantile to compare with previous models and check “when” you converged but I think that doesn’t make much sense because these values are all relative.
Additionally, we only exclude solutions (models to be considered) that are NOT in the Pareto Front(s), regardless of the convergence. We don't have a pre and pos convergence reference.

We are running Robyn 3.6.2
We had been using with calibration successfully, but we changed our target variable and are now encountering exactly the error mentioned here.
Error in RNGseq(n, seed, ..., version = if (checkRNGversion("1.4") >=  :
  NMF::createStream - invalid value for 'n' [positive value expected]
Some(<code style = 'font-size:10p'> Error in RNGseq(n, seed, ..., version = if (checkRNGversion("1.4") >= : NMF::createStream - invalid value for 'n' [positive value expected] </code>)
Error in RNGseq(n, seed, ..., version = if (checkRNGversion("1.4") >= : NMF::createStream - invalid value for 'n' [positive value expected]

If there is any wisdom on what causes that we would appreciate it, as we're on a tight deadline to turn around this model.
At first I thought it was that we had too few iterations, so we increased to 1 trial x 6000 iterations.
Here is stdout.  As you can see, we did not run the 20,000 total iterations suggested, partly because this was already 6  hours and we just wanted to see if the code ran before scaling up.
[1] "robyn_run started"
Warning in check_iteration(InputCollect$calibration_input, iterations, trials,  :
  You are calibrating MMM. We recommend to run at least 2000 iterations per trial and 10 trials to build initial model
Input data has 4411 days in total: 2010-02-01 to 2022-02-28
Initial model is built on rolling window of 365 day: 2021-03-01 to 2022-02-28
Using geometric adstocking with 40 hyperparameters (40 to iterate + 0 fixed) on 16 cores
>>> Starting 1 trials with 6000 iterations each with calibration using TwoPointsDE nevergrad algorithm...
  Running trial 1 of 1

  |
  |                                                                      |   0%
  |
  |                                                                      |   1%
  |
  |=                                                                     |   1%
  |
  |=                                                                     |   2%
  |
  |==                                                                    |   2%
  |
  |==                                                                    |   3%
  |
  |===                                                                   |   4%
  |
  |===                                                                   |   5%
  |
  |====                                                                  |   5%
  |
  |====                                                                  |   6%
  |
  |=====                                                                 |   7%
  |
  |=====                                                                 |   8%
  |
  |======                                                                |   8%
  |
  |======                                                                |   9%
  |
  |=======                                                               |   9%
  |
  |=======                                                               |  10%
  |
  |=======                                                               |  11%
  |
  |========                                                              |  11%
  |
  |========                                                              |  12%
  |
  |=========                                                             |  12%
  |
  |=========                                                             |  13%
  |
  |==========                                                            |  14%
  |
  |==========                                                            |  15%
  |
  |===========                                                           |  15%
  |
  |===========                                                           |  16%
  |
  |============                                                          |  17%
  |
  |============                                                          |  18%
  |
  |=============                                                         |  18%
  |
  |=============                                                         |  19%
  |
  |==============                                                        |  19%
  |
  |==============                                                        |  20%
  |
  |==============                                                        |  21%
  |
  |===============                                                       |  21%
  |
  |===============                                                       |  22%
  |
  |================                                                      |  22%
  |
  |================                                                      |  23%
  |
  |=================                                                     |  24%
  |
  |=================                                                     |  25%
  |
  |==================                                                    |  25%
  |
  |==================                                                    |  26%
  |
  |===================                                                   |  27%
  |
  |===================                                                   |  28%
  |
  |====================                                                  |  28%
  |
  |====================                                                  |  29%
  |
  |=====================                                                 |  29%
  |
  |=====================                                                 |  30%
  |
  |=====================                                                 |  31%
  |
  |======================                                                |  31%
  |
  |======================                                                |  32%
  |
  |=======================                                               |  32%
  |
  |=======================                                               |  33%
  |
  |========================                                              |  34%
  |
  |========================                                              |  35%
  |
  |=========================                                             |  35%
  |
  |=========================                                             |  36%
  |
  |==========================                                            |  37%
  |
  |==========================                                            |  38%
  |
  |===========================                                           |  38%
  |
  |===========================                                           |  39%
  |
  |============================                                          |  39%
  |
  |============================                                          |  40%
  |
  |============================                                          |  41%
  |
  |=============================                                         |  41%
  |
  |=============================                                         |  42%
  |
  |==============================                                        |  42%
  |
  |==============================                                        |  43%
  |
  |===============================                                       |  44%
  |
  |===============================                                       |  45%
  |
  |================================                                      |  45%
  |
  |================================                                      |  46%
  |
  |=================================                                     |  47%
  |
  |=================================                                     |  48%
  |
  |==================================                                    |  48%
  |
  |==================================                                    |  49%
  |
  |===================================                                   |  49%
  |
  |===================================                                   |  50%
  |
  |===================================                                   |  51%
  |
  |====================================                                  |  51%
  |
  |====================================                                  |  52%
  |
  |=====================================                                 |  52%
  |
  |=====================================                                 |  53%
  |
  |======================================                                |  54%
  |
  |======================================                                |  55%
  |
  |=======================================                               |  55%
  |
  |=======================================                               |  56%
  |
  |========================================                              |  57%
  |
  |========================================                              |  58%
  |
  |=========================================                             |  58%
  |
  |=========================================                             |  59%
  |
  |==========================================                            |  59%
  |
  |==========================================                            |  60%
  |
  |==========================================                            |  61%
  |
  |===========================================                           |  61%
  |
  |===========================================                           |  62%
  |
  |============================================                          |  62%
  |
  |============================================                          |  63%
  |
  |=============================================                         |  64%
  |
  |=============================================                         |  65%
  |
  |==============================================                        |  65%
  |
  |==============================================                        |  66%
  |
  |===============================================                       |  67%
  |
  |===============================================                       |  68%
  |
  |================================================                      |  68%
  |
  |================================================                      |  69%
  |
  |=================================================                     |  69%
  |
  |=================================================                     |  70%
  |
  |=================================================                     |  71%
  |
  |==================================================                    |  71%
  |
  |==================================================                    |  72%
  |
  |===================================================                   |  72%
  |
  |===================================================                   |  73%
  |
  |====================================================                  |  74%
  |
  |====================================================                  |  75%
  |
  |=====================================================                 |  75%
  |
  |=====================================================                 |  76%
  |
  |======================================================                |  77%
  |
  |======================================================                |  78%
  |
  |=======================================================               |  78%
  |
  |=======================================================               |  79%
  |
  |========================================================              |  79%
  |
  |========================================================              |  80%
  |
  |========================================================              |  81%
  |
  |=========================================================             |  81%
  |
  |=========================================================             |  82%
  |
  |==========================================================            |  82%
  |
  |==========================================================            |  83%
  |
  |===========================================================           |  84%
  |
  |===========================================================           |  85%
  |
  |============================================================          |  85%
  |
  |============================================================          |  86%
  |
  |=============================================================         |  87%
  |
  |=============================================================         |  88%
  |
  |==============================================================        |  88%
  |
  |==============================================================        |  89%
  |
  |===============================================================       |  89%
  |
  |===============================================================       |  90%
  |
  |===============================================================       |  91%
  |
  |================================================================      |  91%
  |
  |================================================================      |  92%
  |
  |=================================================================     |  92%
  |
  |=================================================================     |  93%
  |
  |==================================================================    |  94%
  |
  |==================================================================    |  95%
  |
  |===================================================================   |  95%
  |
  |===================================================================   |  96%
  |
  |====================================================================  |  97%
  |
  |====================================================================  |  98%
  |
  |===================================================================== |  98%
  |
  |===================================================================== |  99%
  |
  |======================================================================|  99%
  |
  |======================================================================| 100%

  Finished in 385.25 mins
Using robyn object location: output
Provided 'plot_folder' doesn't exist. Using default 'plot_folder = getwd()': /dbfs/robyn_output/poc/order_count_new/US/2022-02-28
>>> Running Pareto calculations for 6000 models on 3 fronts...

@extrospective could you share your session info please? i've seen this error once before when a user was running on GCP, are you running locally or on a cloud based solution?

Databricks runtime 10.2
Here is the r version info:
$platform
[1] "x86_64-pc-linux-gnu"

$arch
[1] "x86_64"

$os
[1] "linux-gnu"

$system
[1] "x86_64, linux-gnu"

$status
[1] ""

$major
[1] "4"

$minor
[1] "1.2"

$year
[1] "2021"

$month
[1] "11"

$day
[1] "01"

$`svn rev`
[1] "81115"

$language
[1] "R"

$version.string
[1] "R version 4.1.2 (2021-11-01)"

$nickname
[1] "Bird Hippie"

We pulled from the git repo 3.6.2 roughly 2 weeks ago.  checking now for details

r 4.1.2 is the maximum available in databricks runtimes at this time.

@extrospective would it be possible to try running locally to see if you get the same error? i don't think you need to run as many trials we should be able to see whether it works or not with fewer. I suspect this may be an issue with Robyn having some issues with cloud platforms so that would be a good one to rule out if we can

We will try some further tests.  not sure why "cloud platforms" should be a source of error, but as cloud platforms may have different versions of libraries, I think a library comparison between what works for you and what does not work for us is helpful.
Our next runs include:

with calibration off
locally

good point.  sessionInfo() should provide an output of all the libraries and their current versions if you could share that, I can compare that with what's working on our machines while you're working through those other runs.

I am not sure the April 12 commit is in our copy.  The prior commits should be in our copy of Robyn.

This is the sessionInfo() for our run.
We especially wanted to check rngtools and doRNG versions, but these seem okay.
So we are going to investigate data or logic on our end.
R version 4.1.2 (2021-11-01)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.4 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

locale:
 [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8
 [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8
 [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C
[10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
 [1] Robyn_3.6.2       reticulate_1.24   testit_0.13       SparkR_3.2.0
 [5] scales_1.1.1      patchwork_1.1.1   ggplot2_3.3.5     stringr_1.4.0
 [9] data.table_1.14.2 R.utils_2.11.0    R.oo_1.24.0       R.methodsS3_1.8.1
[13] readr_2.1.0       dplyr_1.0.7       plyr_1.8.7        rlist_<IP_ADDRESS>

loaded via a namespace (and not attached):
 [1] httr_1.4.2         tidyr_1.2.0        jsonlite_1.8.0     splines_4.1.2
 [5] foreach_1.5.2      here_1.0.1         RcppParallel_5.1.5 assertthat_0.2.1
 [9] lares_5.1.2        doRNG_1.8.2        yaml_2.3.5         pillar_1.6.4
[13] lattice_0.20-45    glue_1.5.0         pROC_1.18.0        digest_0.6.28
[17] rvest_1.0.2        colorspace_2.0-3   htmltools_0.5.2    Matrix_1.3-4
[21] pkgconfig_2.0.3    purrr_0.3.4        openxlsx_4.2.5     TeachingDemos_2.10
[25] tzdb_0.2.0         tibble_3.1.6       generics_0.1.1     ellipsis_0.3.2
[29] withr_2.5.0        lazyeval_0.2.2     survival_3.2-13    magrittr_2.0.1
[33] crayon_1.5.1       Rserve_1.8-10      fansi_0.5.0        doParallel_1.0.17
[37] xml2_1.3.3         hwriter_1.3.2      tools_4.1.2        hms_1.1.1
[41] minpack.lm_1.2-1   lifecycle_1.0.1    rpart.plot_3.1.0   munsell_0.5.0
[45] glmnet_4.1-3       prophet_1.0        rngtools_1.5.2     zip_2.2.0
[49] compiler_4.1.2     rlang_0.4.12       grid_4.1.2         RCurl_1.98-1.6
[53] nloptr_2.0.0       ggridges_0.5.3     iterators_1.0.14   rPref_1.3
[57] rappdirs_0.3.3     igraph_1.3.0       bitops_1.0-7       gtable_0.3.0
[61] codetools_0.2-18   DBI_1.1.1          R6_2.5.1           hwriterPlus_1.0-3
[65] lubridate_1.8.0    fastmap_1.1.0      utf8_1.2.2         rprojroot_2.0.3
[69] h2o_<IP_ADDRESS>       shape_1.4.6        stringi_1.7.6      parallel_4.1.2
[73] Rcpp_<IP_ADDRESS>       vctrs_0.3.8        rpart_4.1-15       png_0.1-7
[77] tidyselect_1.1.1

One change which was made on our end from a prior run was the addition of SparkR, so we will also test if that library is the source of an issue.

Databricks has sparkR in an empty notebook by default.
I note that there are some name conflicts with the tidyverse in sparkR.
We showed that if we turn calibration off, we do not encounter the error mentioned above.
We were unable to easily remove sparkR from the databricks test.
We will further examine whether anything about our data or its calibration contributed to the error.
[From this research we have learned about library doRNG and rngtools which can be used to trace through errors (for those who encounter this error in the future and want to investigate more rapidly.)]

I suspect there is error in liftAbs in the calibration data -> found some NAs
I assume robyn_run() would have noticed this earlier then at the final pareto generation step; as it's input to objective function.  Can checks be added for NA?
But first, I'll verify this is the source of the problem.

We have confirmed this error for us as a data issue.
The liftAbs was NA for every row in the code which triggered this error.
Based on this, I might recommend:

Robyn code detect that liftAbs is a valid float for every row. If not, throw an error

This will avoid this unusual error and check up front.
And then I think this ticket might be closed with a hypothesis that this same issue caused the other errors reported with this same symptom.

Thanks for confirming @extrospective - we will add a check for that and then close the issue out with that fix.

Thanks for the feedback and for checking the source of this issue @extrospective You're recommendation has been implemented! Feel free to close this ticket if you consider it's been fixed

I do not have the close ticket available to me.  I recommend closing.


Minor typo fixes

fixes grammar & pacman flags typo that would lead to bad practice.

Nice catches. Thanks ;)


tests: close all TesselSimulator objects in teardowns

About to re-build to make sure we're not seeing false positives

LGTM :+1:
Thanks for digging into this issue @rwaldron. It will be nice to see a green build badge again. Merge when ready.


V2

Pull Request Test Coverage Report for Build 142

0 of 0   changed or added relevant lines in 0 files are covered.
17 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.4%) to 76.335%

Files with Coverage Reduction
New Missed Lines
%

home/travis/build/asheuh/flaskie/flaskie/api/v2/models.py
17
54.43%

Totals

Change from base Build 139:
0.4%

Covered Lines:
929

Relevant Lines:
1217

💛  - Coveralls


Edge domain update

Issue in ./help/edge/fundamentals/configuring-the-sdk.md
The section about the edgeDomain only mention the "adobedc.net" domain. Based on the Jira ticket AN-248215, the old "omtrdc.net" tracking server can be used for Experience Edge implementation.
So the customer that have a CNAME that maps an "omtrdc.net" tracking server CAN use it also for WebSDK implementation.

Thank you for reporting this. We are reviewing the documentation and will update it shortly.
Tracking internally in https://jira.corp.adobe.com/browse/PLAT-86584

This issue has been fixed. Thank you.

@srhoades-adobe I don't think that this can be marked as closed. Please look at the JIRA ticket.

Reopening as Jira ticket is not resolved. https://jira.corp.adobe.com/browse/PLAT-86584


Feature/api/batch update tribe

Created a stub file for the Google Firebase DB operation.

@un7c0rn, @dzx11  I've created this stub for you to have a look. It doesn't need your approval/review. Just wanted to share it with you before I start copying/translating the Python code and writing tests for it.


Try to go around "dup illegal arguments" for singletons

This should not fail
final case class T()
final case class Test(t1: T, t2: T)
List(Test(T(), T())).singletons(_ => true) must not(throwAn[Exception])

closed with #36


Deployments / WhatIf API - Property change type "Delete" not accurate in results

As per https://docs.microsoft.com/en-us/rest/api/resources/deployments/whatif#propertychangetype the description for "Delete":
"The property exists in the current state and is missing from the desired state. It will be deleted when the deployment is executed."
However, this contradicts the behaviour observed in Azure Resource Manager templates and also the output from the /whatif API method returns properties marked as "Delete" that will not be deleted on execution.
Example:
On an ARM template defining a VM with basic properties for storageProfile:
...                 "storageProfile": {                     "imageReference": {                         "publisher": "MicrosoftWindowsServer",                         "offer": "WindowsServer",                         "sku": "2016-Datacenter",                         "version": "latest"                     },                     "osDisk": {                         "createOption": "FromImage",                         "managedDisk": {                             "storageAccountType": "Standard_LRS"                         }                     },                     "dataDisks": []                 } ...
Deltas returned:
...                    {                         "path": "properties.storageProfile.osDisk.caching",                         "propertyChangeType": "Delete",                         "before": "ReadWrite"                     },                     {                         "path": "properties.storageProfile.osDisk.diskSizeGB",                         "propertyChangeType": "Delete",                         "before": 127                     },                     {                         "path": "properties.storageProfile.osDisk.managedDisk.id",                         "propertyChangeType": "Delete",                         "before": "<ID-OF-MANAGED-DISK>"                     } ...
I believe the "Delete" delta type should only be returned if the property has been explicitly set to "null" in the source template. If the property is omitted it should ignored.
Is this expected behaviour of the /whatif api?

@inuvano-labs, can you share the original template? The What-If API is still in private preview so this noise is expected, but once I have the template, I will create an issue for it in the What-If issues so we can track it.
Once that is done this can be closed. If I don't hear back soon @rthorn17 we can close this.

Closing due to no response. @inuvano-labs - Feel free to reopen it if you can share the template.


Add module-info.java

Situation
Java 9 introduced modules on top of packages as an extra layer of encapsulation and to improve dependency management. We need a module-info.java file to unlock this feature.
Acceptance Criteria

module-info.java added
Integration test still green

Dropped. Not important at the moment.


Tab Bar Enhancements + ViewPager helper method

Couple of things in this Pull.

Inline Tabs are now shown in a HorizontalScrollView. Which mirrors what stock HC/ICS does.
Improve when Inline Tabs are shown.
Enhancements to ViewPager. Can now get access to the currently shown Object (View, Fragment, etc)
Make makeFragmentName Public. It's useful when you need to get access to the Fragments created in FragmentPagerAdapter

My only potential issue with this is that you are now exposing a new API on ViewPager which is not present in the actual compatibility library. I don't mind including bug fixes in the compat lib classes but I have to be wary of adding methods. I'm not wholly against it, I just need to consider it carefully.
Is there any reason that you are taking this approach rather than keeping track in an adapter via the setPrimaryItem callback?

I've only just seen setPrimaryItem. I'll have a look.
The Tabs stuff is good though.

That was a recent addition with the r4 ACL. GIve it a try and let me know what you think. I'm going to merge this leaving that out for now.
And yeah the tabs and publicizing of the fragment name method (a common question in IRC) looks great.

setPrimaryItem doesn't really help with this. I've done this instead using the new getCurrentItem method in ViewPager and the up-scoped makeFragmentName.
Thanks

This should really be done by using the already existing OnPageChangeListener rather than exposing new API.

My requirement was to get the Object (View, Fragment, etc) not the position int, that's already available in the new ACL library (getCurrentItem).

Sorry, I mistook getCurrentItem() for a change made by you/Jake.

I've had use for this method, and a similar method to get the item at a certain position. I've found it necessary when modifying offscreen pages which have already been created.


Create uvce.txt

@rajNVN I am sorry, I have to close this request without merging, because you requested to add a non-existent domain to this repository:
$ host uvce.edu
Host uvce.edu not found: 3(NXDOMAIN)

Please ensure you are familiar with this repository rules located at the bottom of this page and submit a new request with correct information. Thank you for the understanding!


Update docs for getBindingsProxy()

          > Does `getBindingsProxy()` have docs that will need updating too?

Yes (and thanks for reminding me! ❤): https://developers.cloudflare.com/workers/wrangler/api/#getbindingsproxy
I will update them later if that's ok by you 🙏
Originally posted by @dario-piotrowicz in https://github.com/cloudflare/workers-sdk/issues/4847#issuecomment-1916712554

Also to do:

[ ] add docs for the input options
[ ] mention the dispose function that is returned and its usage
[ ] mention how to use the AI bindings (via env variables)


Future improvements

Hi,
very good work. I have some questions:

Will TONHouse become the official network monitor of ton.org?
Google fonts is outlawed in the EU. Could you replace remote Google fonts with a local copy to comply with GDPR and to protect user privacy?

Some future improvements:

circulating, total and max supply;
current and max inflation rate;
current and maximum block time;
current and average transaction fee;
number of wallets and distribution of coins;
staked value (validators and users);
validators' stake and cumulative shake for the key values of the consensus algorithm (33% and 67%).

Thanks again

Hey @alfredonodo.
I wasn't aware of the Google fonts issue, but we can take care of that. thanks for letting me know!
Also thank you for the suggestions, I really appreciate them and will try to implement as many of them as possible for the following milestones.

Would be great to have an opportunity to inspect concrete time periods over the timelines. Thought I think you already aware about this feature, I just wanted to make sure you have it in a spotlight 😉

Would be great to have an opportunity to inspect concrete time periods over the timelines. Thought I think you already aware about this feature, I just wanted to make sure you have it in a spotlight 😉

Yes, this is already implemented for the validators' info chart on the back end, the controls to actually change the time window are not there just yet, although they are really important as well. Thanks for pointing it out!

Thank you for removing Google tracking through its fonts. I guess the rest of the improvements will be part of milestone 2 along with the data you listed in the roadmap.

Thank you for removing Google tracking through its fonts. I guess the rest of the improvements will be part of milestone 2 along with the data you listed in the roadmap.

Hi. Yes that's what I'm planning to do. I'm a bit swamped with work and school at the moment, but I'm planning to get to those in a couple of weeks and I would also appreciate any contributions, whether it be code or just suggestions!

Thank you for removing Google tracking through its fonts. I guess the rest of the improvements will be part of milestone 2 along with the data you listed in the roadmap.

Hi. Yes that's what I'm planning to do. I'm a bit swamped with work and school at the moment, but I'm planning to get to those in a couple of weeks and I would also appreciate any contributions, whether it be code or just suggestions!

Take your time to do a good job. Unfortunately, I am unable to help you with the coding, but I can suggest that you follow the network status of other projects, I think Solana beach is one of the best.

Hi,
do you have any updates on milestone 2 of the roadmap? This data and in particular the circulating and total supply are very important for the transparency of the project.
Thank you


Trap Result

Added in 4 new Result types (Result, ResultWithBacktrace, Result<T>, ResultWithBacktrace<T>) which provide a better method for trap handling than exceptions. This entire new system is opt-in, the function wrappers accept these types instead of the actual return type and then, if a trap happens, it is returned in this result struct instead of as an exception.

Result represents a function with no return value, which does not capture the trap backtrace.
ResultWithBacktrace represents a function with no return value, which captures the trap backtrace.
Result<T> represents a function which returns T, which does not capture the trap backtrace.
ResultWithBacktrace<T> represents a function which returns T, which captures the trap backtrace.

Also some associated to the TrapException:

Added a TrapCode Type property, which was an obvious omission from traps
Modified FunctionOffset and ModuleOffset of the TrapFrame to use nuint instead of int (which could cause an arithmetic overflow) (see #150)

I'm not sure what the macos failure is caused by, it looks like something wrong with the CI process itself?

That error looks an awful lot like the crashes I would see when testing throwing exceptions in WasmerSharp and Wasmtime to compare. It happened locally on mac but not windows. Frustrating to discover. I only mention it to caution against assuming the CI itself is at fault.

Unfortunately I don't have access to a mac to test on. Any hints on what fixed the problem for you that I could try?

I can try pulling your fork and see what happens for me later tonight or tomorrow. My solution was to stop using WasmerSharp. Useful, right? Ha. It just feels too much of a coincidence, given you are working with the traps, and I was testing how the two runtimes handled exceptions.

I can confirm dotnet test Wasmtime.sln does exhibit this same behavior for me locally on both x64 and ARM Macs. Sorry I can't provide any more useful advice beyond my test results at the moment. I understand the traps at a conceptual level, but have not sifted through the implementation thoroughly enough to understand exactly what is happening.

Thanks for the testing, that at least confirms it isn't just a flakey CI problem.

If possible could you share the log from the test on your Mac? Hopefully that will contain more useful information than the CI log.

I have worked around the CI failure on MacOS by replacing the stackoverflow errors which integer div zero errors. I think the problem with MacOS+Stackoverflow is a bug in wasmtime-dotnet, independent of the changes in this PR.
I've pushed up #152 which includes a test that I expect to fail on MacOS to help identify the issue.

Hi @martindevans! I'll review this today and dig into the stack overflow trap crashing the test host.

I've pushed up a commit that should address all feedback, except that last point. Thanks for the excellent review, as usual 👍

I've pushed up #153 which further develops this idea with a system for custom result types. Although the details of how it works are more complex I think it offers a better user experience for the 99% of users who can just use ActionResult/FunctionResult<T> and don't need to think about if they want a backtrace etc. It also offers a bettter experience for the remaining 1% of users with weird requirements, since they can implement fully custom result types instead of having to pick between whatever options we happen to offer.


[Bug]: Hot reload fails if extension has error on first build

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[X] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
Extension
Expected behavior
When running yarn dev on an application which contains an already broken extension (fails to build), the CLI should log an error and continue watching the files to see if it is fixed.
Actual behavior
Currently, in the previously described situation, the CLI logs the build error and the watcher process is stopped without giving any message.
Currently esBuild sets the watcher of the files, and when failing in the first build it directly kills the process here
Stack trace
No response
Reproduction steps

Got to the folder fixtures/app/extensions/checkout-ui/src/ and change one of  tags to be uneven (ie. )
Serve the fixture app by running

yarn shopify app dev --path=fixtures/app

Fix the uneven tags and observe how there is no hot reload

Operating System
Mac OS Monterrey
Shopify CLI version (check your project's package.json if you're not sure)
3.9.2
Shell
fish
Node version (run node -v if you're not sure)
v18.7.0
What language and version are you using in your application?
No response

I think this is not expected behaviour, or at least not without any communication to the developer.
What is your opinion on this @vividviolet @byrichardpowell @dmhenry?


102: Added code to handle datasets spread over multiple h5 files

Fixes #102
To test:

Confirm unit/system tests pass

This did not work after testing on i03 (https://github.com/DiamondLightSource/python-artemis/issues/111). Need to think of a better way of testing it offline

I couldn't work out what the issue was from #111. The new test works and covers the real behavior very closely, if we see something go wrong in testing again we should document the issue better.

@MattPrit and @bentom08, can you review this together?

In updating the test I found a bug on the edge case. @bentom08, can you re-review? @MattPrit, assuming it's approved feel free to merge this whilst I'm away if it helps you move forward


Update styled-components to v4

release info
https://www.styled-components.com/releases#v4.0.0
to be fixed:

injectGlobal -> createGlobalStyle
.withComponent -> 'as' prop
remove deprecated .extend
keyframes no longer returns an animation name

check if everything else is ok

innerRef -> ref


Write PUT route for interactions

It should...
...accept a userId from the frontend.
...accept an interactionId from the frontend
It should update the input for that user based on the PUT data for that Interaction.


Made RKPathMatcher thread safe to fix #2133 and #1998

RKPathMatcher had two instance variables sourcePath and rootPath, which was changed every time it was queried for a match. This was not thread safe and was the cause of two reported bugs.
The common use-case where submitting restkit requests to a concurrent dispatch queue, can result in RKPathMatcher being called almost simultaneously, which is being messed up when sourcePath and rootPath is changed in the middle of everything.
I commented out matchesPattern method as it was not used and also messed with the socPattern variable. If we shall re-enable this method, we also have to remove the socPattern variable and pass that on a pr. method call basis.
An alternative fix to this is to never keep RKPathMatcher instances and create them on a pr. match basis in RKResponseDescriptor. I tried this first, and that also worked fine, but this was a better solution i think.

The CI test fails because i commented out the unused matchesPattern:tokenizeQueryStrings:parsedArguments method btw.

I will take a look at this later, but I'll be unable to merge as long as tests are failing.

Can you just rewrite that method to use the new stateless methods?

I can do one of two things:

remove the test that tries to call the method that i have now removed
Re-enable the unused method and re-write it to also be stateless.

I would prefer solution 1, as the method changes the SOCPattern which PathMatcher is initialized with, which means that if SOCPattern should be able to change on an already initialized PathMatcher, we should pass it with every method call. Which i think is a bad solution. I would definitely prefer that at least this variable is fixed and not changed after initialisation.
Any preference on this?

Ok, i've fixed it. Rewrote the internal methods a bit, so the class still have all the same public methods while being thread-safe. It comes at cost though: initiating a RKPathMatcher with a pattern can only match paths, and initiating a RKPathMatcher with a path can only match patterns. It was kinda like this always though, as stated in some of the NSAssert messages already in the class.

do you think this can be anyway related to this as well?
Thread : Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x0000000197100174 objc_release + 20
1  MyProject                         0x000000010036bdf0 -[RKPathMatcher matchesPath:tokenizeQueryStrings:parsedArguments:] (RKPathMatcher.m:140)
2  MyProject                         0x00000001003724f4 -[RKResponseDescriptor matchesPath:] (RKResponseDescriptor.m:120)
3  MyProject                         0x000000010035c668 __RKFilteredArrayOfResponseDescriptorsMatchingPathAndMethod_block_invoke (RKObjectManager.m:73)
4  CoreFoundation                 0x0000000187692cd8 __NSArrayGetIndexesPassingTest + 576
5  MyProject                         0x0000000100358794 -[RKObjectManager appropriateObjectRequestOperationWithObject:method:path:parameters:] (RKObjectManager.m:72)

@valeriomazzeo It's most likely this issue yes.

Excellent, @megakode! Is there any way you could add some test coverage?

Hey, I am facing same problem. Using NSOperationQueue we are doing synchronistation with our backend and once in a while app crashes on RKPatchMatcher.rootPath, malloc: double free
+1 for a fix!

so, that about merge?

@e5faf5, as I said, this is waiting on added test coverage

Sorry for the late reply, haven't really thought of a test for this as the existing functionality of the class is already covered by tests, and it's a thread issue which was pretty hard to replicate already.

@megakode We have your fix already in production for almost one month and we got rid of all restkit crashes. So it was issue for this time.
Thanks :)


Tab hash in url causing page jump

It still working bad. Do you have any solution of this problem?

Same for me in 2016

Do you mean a "example.com/#" causing a jump?

This is the page: https://github.com/getman-studio/devsite/blob/gh-pages/index.html
I am using tabs:
`

Скульптура
Настінний розпис
Живопис
Декорації
Графіка
Арт

`
And the drawing one is causing the jump to top. When I remove it, or change the id to non-existent, all works ok.

It happened because I was calling
$(document).ready(function(){
    $('ul.tabs').tabs();
});

No issue now.

That is due to the size of the content reducing.  The browser handles that

Not much you can do, besides making a fixed height buffer inside #drawing (as in a div that is 600px or so tall).

You could, also, preload the images.  They aren't loaded until shown, at least for me, so the page jumped.  Once I cached them, all was good.  Just a <img src="image" width="1px" /> at the bottom (outside tabs) would do, or even using data: images

Thank you very much!
On Wed, Nov 23, 2016, 20:04 Noah Overcash<EMAIL_ADDRESS>wrote:

You could, also, preload the images. They aren't loaded until shown, at
least for me, so the page jumped. Once I cached them, all was good. Just a  at the bottom (outside tabs) would do, or even
using data: images
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Dogfalo/materialize/issues/90#issuecomment-262589041,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA6gtk5IXNE7v6stF1zx1nolXOj6XFnvks5rBIADgaJpZM4C6ful
.

Did it work?

Unfortunately haven't change to check it, I used js to fix the issue. Thanks!


having problem to identify porn images -> especaly with penises (NO its not a joke!!!)

i m running a website where a mass on photos are uploaded (upload without registration)... so i get aaaaa lot of penis-trolls or whatever makes them post their private parts... anyhow...
i tried to train inception model with tensorflow (newest version 1.x) - so i made a   folder with "penises" (approx 160 pics) and one with different images with person how dont show their penis (approx 160 pics)....
training accuracy is quit good -> over 90 % - but testing the model with other pictures - it fails really bad on detecting penises....
hmmmm, i know.. 160 pics are not that much for training, but i thing the problem is:
guy on the beach in shorts is: ok
guy on the beach with penis lurking out of his pants: is not okay..
but the difference is quite small between the pictures... because a penis is (mostly) quite a small part of the human body ... so hard to detect...
anybody could help? and no, its sounds funny, buts no joke.. i suffering under all the uploads i have to review manualy.... it's really not funny to see over 1000 penises a day :(
cheers, puck

This sounds like a really hard problem.

hoho ;)

Hopefully you'll get some good tips from people in the community.

I mean tensorflow is really a head of the curve in solving this type of thing.

Just hoping we'll get a comment from the members of this  repo.

hm, trying it again with 1000 pictures per category...

btw_ why does python classify_image.py does not classify humans?

even with 1000 per category it totally fails on this task

Growing your sample size should definitely help.

It should only be a concern if it makes your script run for more than four hours.

Fuzziness could be a problem, try to make sure your sample images are smooth.

Also try softer backgrounds to make sure the subject really pops.

penis is (mostly) quite a small part of the human body

#humblebrag

Sorry, I'm really just unloading my ideas here.

Are your sample images too similar? You have to make sure there's enough deferens between them to train the script.

Gotta head to bed. I'll get up in the morning and see if you've whipped out a solution.

@puckpuck85 i've a working solution for this problem. give me your email will be happy to share some insights. sorry can't upload it publicly.

Maybe https://github.com/yahoo/open_nsfw is helpful?

Warning: As this doesn't appear to be a bug with Tensorflow, the devs may ask for this to be moved to Stack Overflow.
@vade has posted a good answer for Caffe. Shoutout to @xdumaine for filling the issue tracker with unfunny comments instead of actually helping.
@puckpuck85 You have a couple of ways of attacking this. Your current method of classifying between different image classes has potential but will need much more training data. As you've said, the difference between many of these images can be rather subtle in some instances and more obvious in others. NSFW content can take so many forms that just 160 images won't cover the breadth of the different types of images you are likely to come across. Looking at the repo @vade posted it appears that they used a large dataset but it is private. This was labelled manually of course.
If you want to quickly bolster your dataset you can always scrape images from google images and train on that with inception. I've had surprising success with this! You can then implement a function on your website that if there is a certain uncertainty, it goes to manual review and if it is blocked it gives the user a chance to appeal or whatever.
Your alternative option (which may be slightly overkill for this situation) is to implement an object detector with annotated objects. Then you can filter out images with have detections. This is a lot of work however as i'm 99% sure that dataset does not already exist.
For the meantime I would suggest increasing your dataset. Perhaps you have a repository of "banned" images from your website that you could use to train?
I suggest you move this to Stack Overflow as, whilst your question is extremely valid and the basics of image training, it is neither a bug or feature request and i'm not sure how the devs will feel about this on their issue tracker! I'm sure it will make them chuckle.
If you decide to move this issue to Stack Overflow, please post the link here so that myself (or others that stumble upon this issue) can find the S/O thread.

@jubjamie I made jokes because this is clearly a troll issue. It's a brand new account with 0 activity who's profile picture is a meme.  Congrats. You've been bamboozled.

@xdumaine fair enough. It's not a brand new account and has activity in the area over the last few months. It's still an interesting question and I don't really regret using my saved replies and 2 minutes to reply to it haha. Regardless of context it's still an issue that's seen a number of times both on this issue tracker and stack overflow. I'd rather help someone that might need it than spam the issue tracker with nonsense.
 Cheers

i'm not trolling at all - caffe with yahoo NSFW works pretty well, but fails sometimes when it comes to close up shots from the penis.
but, i guess, it will filter 90 % - i will take this route and the rest has to be done by user reporting unwanted pics.... when it works good enough for yahoo - i'm fine.
thread can be closed - i will start the next on stackoverflow. thx all for your help so far.

@Dim25 please write me the email to -><EMAIL_ADDRESS>:)

For now:
https://github.com/infinitered/nsfwjs

Yup!  @RWOverdijk mentioned my TFJS lib
powered by
https://github.com/GantMan/nsfw_model


include center points/replicates to design

The method find_local_max_ipopt could include the possibility of including center points and/or replicates in the design.

Can you further explain what you mean? I think there is already a functionality to manually define a number of experiments that will definitely be part of the design. These experiments are excluded from the optimization process (they are still considered for optimizing all other experiments, but will remain constant during optimization). You can make use of this with the fixed_experiments argument.

The purpose of replicates (an experiment reproduced a given number, say two, of times) to quantify the experimental uncertainty. Center points are a few experiments (can be the same as the replicates) somewhere in near the middle of the design hypervolume that can help assessing nonlinearity in the modeling. These experiments must be excluded from the optimization procedure, they just need to be added at the end.

Okok, got you. When I implemented this feature my thought was that it is advantageous for the optimizer to use the information that there are certain fixed experiments. For example when you manually set two replicants in one corner of the design space (for whatever reason you want) the optimizer will know this and will not place a third point at the same corner. Would you disagree with this?
In this case: we could add another optional argument for fixed experiments that will be taken out of the optimization process completely or change the implementation for the currently existing argument accordingly.

I think that fixed_experiments can be very useful for another type of feature that is absent: augmented designs. Sometimes a user has done a few experiments already and would like to extend or augment the design space and fixed_experiments can avoid the repetition of existing experiments. Replicates/center points are different (and simpler), they just need to be added after the optimization at the end of the design matrix.

Okay, I will add such an argument (if no one else does it before) soon :)

@jsdiazpo a flag for adding center points / replicates to a design is a good idea.
For linear and linear + interaction models the center points also allows to check for non-linearities. For linear + quadratic and fully quadratic models the center point will anyway result from the optimization. Should a we add 3 replicate center points when this is set to true?
@Osburg You're right that the fixed_experiments you implemented already supports this functionality as well as augmented designs.
I don't see the benefit of adding center points only after the optimization. On the contrary, for quadratic models as well es for purely linear models with non-symmetric design spaces (constraints!) considering the center points during the optimization will lead to better designs.


THORN-2224: allow thorntail runner to work behind proxy

Issue
It appears CachingArtifactResolvingHelper is ignoring the ${user.home}/.m2/settings.xml mirror values and going to hosts direct via it's own list which is then failing as the hosts are not available.

Typically this issue occurs when running the runner behind a proxy (enterprise). As you cannot disable the hardcoded repositories building the cache takes ages to load. Behind the scenes it just times out for all dependencies.
To ensure ensure we can also enforce security policies (eg. force use of Nexus rather then online repositories) we should be able to disable these hardcoded repositories

Adaption

Change 1: added extra property

Description:
Added a property to disable default repositories 'thorntail.runner.ignore.default.repositories'
How to use:

Set system properties as usual (similar to other configurable properties)
No value needs to be set for this property, if present this means the default hardcoded repositories are ignored

Motivation:

Allows you to enforce security policies
Avoids blocked calls from proxy to even occur
In combination with user repository property you can nicely force dependency resolving to use your own artifact registry (ex. Nexus)

Change 2: allow property file for runner cache configuration

Description:
Allow users to create a file called 'thorntail-runner-cache.properties' that will set the properties for the cache
How to use:

Create a file in the root of your application called 'thorntail-runner-cache.properties'
You can choose now to configure your cache properties in this file rather than using VM arguments

Motivation:

No more need to add it to VM configuration (no volatile IDE project configuration)
Can be checked in into project repository for ease of configuration en setup without bothering developer

Feedback
No breaking changes made here to make it work. An idea I was still playing with was to allow all 'thorntail runner' properties to be set through the use of a property file. Something I should extend to all properties for the thorntail runner?
Checklist

[x] Have you followed the guidelines in our Contributing document?
[x] Have you created a JIRA and used it in the commit message?
[x] Have you checked to ensure there aren't other open Pull Requests for the same issue?
[x] Have you built the project locally prior to submission with mvn clean install?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

ok to test

Do we have to check for known names? Could we just set everything that's in the file?

My thought exactly, but this does mean that:

the file would be renamed to 'thorntail-runner.properties'
we extend functionality to configure all runner properties

I'm fine with all of the above :).. I'll make the adaption

This looks like we're overriding system properties with the values from the properties file, it should be the other way around.

You're absolutely right, the way that it's done now lowers the readability

This gets unnecessarily complex. I'll take a look at it later.

This gets unnecessarily complex. I'll take a look at it later.

You'd rather have something like this?
public class RunnerConstants {
    public static final String CACHE_STORAGE_DIR;
    public static final String IGNORE_DEFAULT_REPOSITORIES;
    public static final String USER_REPOSITORIES;
    public static final String PRESERVE_JAR;

    static {
        Properties fileProperties = new Properties();
        try (InputStream st = new FileInputStream("thorntail-runner.properties")) {
            fileProperties.load(st);
        } catch (FileNotFoundException e) {
            System.out.println("No configuration (thorntail-runner.properties) found");
        } catch (IOException e) {
            System.out.println("Could not read configuration (thorntail-runner.properties), ignoring file");
        }

        CACHE_STORAGE_DIR = getProperty(fileProperties , "thorntail.runner.cache-location", ".thorntail-runner-cache");
        IGNORE_DEFAULT_REPOSITORIES = getProperty(fileProperties, "thorntail.runner.ignore.default.repositories", null);
        USER_REPOSITORIES = getProperty(fileProperties,"thorntail.runner.repositories", null);
        PRESERVE_JAR = getProperty(fileProperties, "thorntail.runner.preserve-jar", null);
    }

    private RunnerConstants() {
    }

    private static String getProperty(Properties fileProperties, String key, String defaultValue) {
        String value = null;

        if (fileProperties.getProperty(key) !=null) {
            value = fileProperties.getProperty(key);
        }
        if (System.getProperty(key) != null) {
            value = System.getProperty(key);
        }
        return value != null ? value : defaultValue;
    }
}

That looks just about perfect to me :-)

Let's wait for CI to finish, but looking good now. Thanks!

That looks just about perfect to me :-)
I admit, I rather over-engineered the whole configuration part.. ;)

I took the liberty to take your branch, squash all the commits, provide a more detailed commit message, and most importantly, make the property name consistent with other Runner properties. So it shall be thorntail.runner.ignore-default-repositories, not thorntail.runner.ignore.default.repositories. When the CI finishes again, I'll merge the PR. Thanks again!

Thanks for cleaning up these commits Ladicek👌


Add the gmp extension, included by default.

The latest packages are pushed to the unstable debian repository to allow testing to work.


self.tableView.bottomRefreshControl = nil; throwing exception

Hello Folks,
I am having trouble removing the bottomRefreshControl from my tableView. I am currently trying to do it by setting self.tableView.bottomRefreshControl = nil; but when I do so, I get a EXC_BAD_ACCESS (code=2.
How could I remove it once it is added?
Thanks,

Possibly fixed. Try version 0.4.1


Allow configuration of SSLRedirect and SSLProxyHeaders from ingress annotations

Description
Provides the ability to set kubernetes provider defaults for SSLRedirect and SSLProxyHeaders with per frontend overrides via annotations on ingress resources.
Follows k8s ingress annotation convention for SSLRedirect and adds a namespaced SSLProxyHeaders annotation.

LGTM! 👍

I'm a bit uncertain if the SSL redirect annotation name makes sense for Traefik: The PR calls it force-ssl-redirect, which the Nginx documentation defines as:
Redirect non-TLS requests to TLS even when TLS is not configured.
There's also ssl-redirect which redirects if TLS is enabled.
Do we involve the "TLS is [not] enabled" condition somehow? If not, can/should we do it? If we cannot, should we choose a different annotation name?
I don't use TLS myself and don't have any experience with the Nginx annotation, so I cannot fully judge.
@dtomcej any thoughts?

Is there anything we can do to help move this along?

@robholland I'd be happy to hear other folks' opinion on the questions I had raised. Pinging @dtomcej again too.

Thanks for pinging me on this on @timoreimann. @mattatcha I have a PR I am working on that enables the entirety of the headers suite via annotations (so redirect, htst, custom headers etc).
@mattatcha If it is ok with you, I would like to hold this open, so I can continue to refer to it, and we can continue discussion on that new PR with the extra functionality.

Hey @mattatcha, thanks a lot for your contribution !
We think that it is better to close this issue in favor of @dtomcej PR's
@dtomcej could you link this PR to your PR when it will be ready
Thanks again for you great work @mattatcha :clap:


Celestial Pool

Make Yin and Yang koi spawn in
Generate in grove biome above y-level 100

Place a Celestial Tree in structure.


dev-u4-001 - Feature_Download - Error from WFS service. Status code: 502

during the running of the feature_download script on large data sets often the script with crash on line 119 after the allotted
attempts,
"logging.info(f"matched features {matched}")"
resulting in the error "TypeError: int() argument must be a string, a bytes-like object or a real number, not 'NoneType'"
and the logging warning ERROR:root:Error from WFS service. Status code: 502

a few extra notes

the script was worked fine on 2023/11/23 and the issues started Friday the 24
increasing the self.max_retries variable gives it a better chance of running but still has the capability to fail


Add map + list attributes

Coverage increased (+0.2%) to 97.729% when pulling 398807d188bc30d30531ef0b7a6d1e4f0a41c7fd on jmphilli:nested-validation into e2d82996f75d222cb757b2efc11e8322086c05a8 on jlafon:devel.

Coverage increased (+0.2%) to 97.729% when pulling 398807d188bc30d30531ef0b7a6d1e4f0a41c7fd on jmphilli:nested-validation into e2d82996f75d222cb757b2efc11e8322086c05a8 on jlafon:devel.

Coverage increased (+0.2%) to 97.729% when pulling 398807d188bc30d30531ef0b7a6d1e4f0a41c7fd on jmphilli:nested-validation into e2d82996f75d222cb757b2efc11e8322086c05a8 on jlafon:devel.

Coverage increased (+0.2%) to 97.729% when pulling 398807d188bc30d30531ef0b7a6d1e4f0a41c7fd on jmphilli:nested-validation into e2d82996f75d222cb757b2efc11e8322086c05a8 on jlafon:devel.

Coverage increased (+0.2%) to 97.731% when pulling 453cd351baaf635e9959d62718b5a703358dc25c on jmphilli:nested-validation into e2d82996f75d222cb757b2efc11e8322086c05a8 on jlafon:devel.

Coverage increased (+0.2%) to 97.73% when pulling 92ade5b42a82e148bfa26284f8a355997ca7969f on jmphilli:nested-validation into e2d82996f75d222cb757b2efc11e8322086c05a8 on jlafon:devel.

Coverage increased (+0.2%) to 97.73% when pulling 92ade5b42a82e148bfa26284f8a355997ca7969f on jmphilli:nested-validation into e2d82996f75d222cb757b2efc11e8322086c05a8 on jlafon:devel.

Coverage increased (+0.2%) to 97.746% when pulling af76eac12361af335eb85543242d0d5e0599a01f on jmphilli:nested-validation into e2d82996f75d222cb757b2efc11e8322086c05a8 on jlafon:devel.


Add decorator after @Get

Its posible add my own decorator after @Get decorator?  Because when I do this res seems to be not linked with express response
  @Get()
  @Decorator()
  public async getAll( @Res() res: Response) {
    res.status(HttpStatus.OK).send();

Update:
Watching this I think it can be posible

@silvelo show the code

My Decorator:
import { ROLE } from "./../shared/enums";
import { ForbiddenException } from './../shared/exceptions';

export function Roles(roles?: ROLE[]) {
  return (
    target: any,
    propertyKey: string,
    descriptor: TypedPropertyDescriptor<any>
  ): TypedPropertyDescriptor<any> => {
    const originalMethod = descriptor.value;
    descriptor.value = function(...args: any[]) {
      const user = args[0];
      let isAuthorized = true;
      if (roles) {
        isAuthorized = roles.some(rol => {
          return user.roles.some(userRol => {
            return userRol === rol;
          });
        });
      }
      if (!isAuthorized) {
        throw new ForbiddenException('No enogugh rol');
      }
      const result = originalMethod.apply(this);
      return result;
    };
    return descriptor;
  };
}

And my function:
@Get()
@Roles()
  public async getAll( @Res() res: Response) {
    res.status(HttpStatus.OK).send();
}

@silvelo imo this kind of action should be done in middleware not from decorator

Hey @silvelo !
At first I join @cojack it seems that you want to use a middleware.
But if you want to make decorators combinations you may look at decorator mixin.
There is an example here https://medium.com/@dmyl/mixins-as-class-decorators-in-typescript-angular2-8e09f1bc1f02
But I think there are a plenty of examples that you can find ;-)

@ThomRick yeah, at the first time i used middlewares but that looks very confuse, because the we had a lot of combines and that result add 2 or 4 middlewares per module, because we have 5 roles.
For that we thought to do at this way using decorators and put in controllers, this bring two improve:

A clean code because in own case we repeat the middleware a lot of times, for each module.
Make more easy reas the code.

Thanks for quickly reply.

Hey @silvelo !
I understand that problem cause I had to face it in a previous professional project but it was written in Java :-)
We used a method decorator by passing each role in an array we want to let pass through like you want to in your case.
That's better than a middleware because it's customizable by request.
So I think you should look at the mixin.
I'll try to make an example with mixin and why not tell to @kamilmysliwiec to integrate mixin in Nest to add custom decorators ;-)

@ThomRick  this will be great.
Thanks for all.

@silvelo @ThomRick I'm facing a similar dilemma. I want to have transparent route handling and plug authentication and role checking per route in the controller in most cases. Not sure what the advantage is of having this logic separated in another file (Module) and paths redefined in two places.
Something like the UseMiddlewares decorator as below.
  @Delete('v1/user/:userId')
  @Middlewares(new AuthMiddleware(['ADMIN']))
  public async deleteUser(@Req() req: IRequest, @Res() res: Response, @Param() reqParams: VDeleteUser): Promise<any> {
    const userId = reqParams.userId;
    const removedUser = await this.userService.remove(userId);
    if (removedUser === null) return this.responseService.error({
      res,
      code: HttpStatus.NOT_FOUND,
      data: { _id: userId }
    });
    this.responseService.success({ res, data: { _id: userId } });
  }

@FranciZ looks good .

I started working on an implementation but am not yet sure how decorators plug into DI so that they are applied to the instance and not only to the class. Any pointers would be appreciated here.

@FranciZ maybe instead of passing middlewares just right into controller file (because it will grow and grow...), setup them into module, fe:
import { Module, MiddlewaresConsumer } from '@nestjs/common';

@Module({
    controllers: [ UsersController ], // your controller
    components: [ UsersService ],
    exports: [ UsersService ],
})
export class UsersModule {
    configure(consumer: MiddlewaresConsumer) {
        const roles = ['admin''];
        const options = {};
        consumer.apply(AuthMiddleware)
            .with(roles, options)
            .forRoutes({path: 'v1/user/:userId', method: RequestMethod.DELETE});
    }
}

Module file is a great place for kind of this actions. Please fallow this link https://docs.nestjs.com/quick-start/middlewares.html to get more examples.

@cojack Thanks, but I'm aware of this. I'd still rather have the option to apply middleware in the controller since it'll be much more transparent. I see usefulness in defining middleware in the module if it's for all the routes of a controller or something more general. But for things like role specific access control and authentication it's much more transparent to add it as a decorator in controller imo. Having to define paths and methods affected in two different places is also something I'd rather avoid.

@cojack In my project I have this module and works fine
export class UsersModule implements NestModule {
    public configure(consumer: MiddlewaresConsumer) {
        consumer
            .apply(AuthMiddleware)
            .forRoutes(
            { path: '/users', method: RequestMethod.GET },
            { path: '/users/:id', method: RequestMethod.DELETE },
            { path: '/users/:id/favorites', method: RequestMethod.PATCH },
            { path: '/users/:id/state', method: RequestMethod.PATCH },
            { path: '/users/:id/role', method: RequestMethod.PATCH })
            .apply(RolesMiddleware)
            .with([ROLE.ADMIN])
            .forRoutes(
            { path: '/users', method: RequestMethod.GET },
            { path: '/users/:id/state', method: RequestMethod.PATCH },
            { path: '/users/:id/role', method: RequestMethod.PATCH })
            .apply(RolesMiddleware)
            .with([ROLE.USER])
            .forRoutes({ path: '/users/:id/favorites', method: RequestMethod.PATCH })
            .apply(RolesMiddleware)
            .with([])
            .forRoutes({ path: '/users/:id', method: RequestMethod.DELETE });
    }
}

But this is so confuse and grow a lot, much than the other way, @FranciZ  and me comment

Is there any chance this might get some attention? As it is, I find this (middlewares) the weakest point of the framework. I'm having a really hard time to justify repeating myself in the Module and in the controller for something that is essentially related and belongs in the same place.
Is the only fear a bloated controller or is there some other reason why this would not be suitable?

I would love to see such a feature too. We are currently working on a system that doesn't take the user role into account but a specific access right.
As we got a lot of routes already it isn't really handy to configure and maintain every single path within a module. It would be a lot easier to deal with, if we could add it as a @Decorator directly to the specific route within the controller.

Hey ! I think you talking about guard that will add in v4 release

@adrien2p thanks for the hint, just found it in the v4 commits, thank you very much! :)

Can't wait 😊 for v4, I posted this same problem about defining middlewares in modules on Gitter.


Issue not downloading even when file is there

magzdb version: latest
Python version: latest
Operating System: Win 10

Description
Similar issue as https://github.com/skyme5/magzdb/issues/67 just with Rock & Mineral (http://magzdb.org/j/1680). There is 248 issues and it only grabs 111 of them. the others are 0 byte pdfs. I can download these fine via the site.

Here it doesn't grab anything. I'm trying to download foreign affairs( https://magzdb.org/j/3271), it prints the downloading message as if it's working, but no file is downloaded.

Fixed in v1.1.9, can you test if this is resolved

@skyme5 I tested it, working fine now. Except when I use curl as the downloader. When I specify wget, aria2 or no downloader at all, it downloads just fine, but when I specify curl, the old behavior follows (it skips through every download). Curl is properly installed and added to path.
But anyways, works fine now, thanks.


Warmup future and options T-1

Description

Slice can return auxiliary data when requested by type. Adding unit test
ChainProvider and universe selection will use Quote, OpenInterest, Trade information (the first available). See https://github.com/QuantConnect/Lean/issues/6384
Backtesting universe selection data stack will use algorithms chain provider
Remove Option and Future special BaseDataCollection class
Remove Option and Future special Enumerator and factory for backtesting
Chain Provider will use the IDataCacheProvider instance to read for zip entries
During warmup, for universe selection, LiveTradingDataFeed will reuse most of backtesting stack
Fix rare race condition while creating data subscription in live trading. Where a data point could come in and the subscription could still be null causing a null reference. Adding null check
Internal subscriptions start from StartDate during warmup in live trading
Do not allow plotting during warmup and live trading, adding user warning

Related Issue

Closes https://github.com/QuantConnect/Lean/issues/6361
Closes https://github.com/QuantConnect/Lean/issues/6343
Motivation and Context

N/A
Requires Documentation Change

N/A
How Has This Been Tested?

WIP
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[x] Refactor (non-breaking change which improves implementation)
[ ] Performance (non-breaking change which improves performance. Please add associated performance test and results)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Non-functional change (xml comments/documentation/etc)

Checklist:

[x] My code follows the code style of this project.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

Closing for now, will be replaced by smaller pieces PRs


Add root path redirect

Redirects / to /docs so if you try to access the deploy preview URL, you won’t see a 404
Test plan
https://deploy-preview-349--okteto-docs.netlify.app/ should redirect to https://deploy-preview-349--okteto-docs.netlify.app/docs

Is there a way to also add this so that, when doing okteto up, /redirects to /docs?

Is there a way to also add this so that, when doing okteto up, /redirects to /docs?

Hmm, is there a way to set a base directory with Okteto?
Also, shouldn’t it follow the npm start command?


Expand context docs

I dont know how to rubby but this seems like the current trendy way of calling functions with dicts :)

Will fix my terribad Ruby for these examples

p.s. if someone beats me to this and really wants to get it done feel free to take over/claim credit :)
I'm hoping to get it done sometime this week, but this was easier than opening an issue to describe what we needed to improve on.


Resolve: #78

Also resolves #76.
This is a breaking change because the TVariables type now must extend from OperationVariables, whereas before there was no constraint.
Because this library is pre 1.0, I think this is ok.

@NullVoxPopuli Some TS tests are failing, would you take a look at these?

ah, looks like I forgot to build the package before checking types 😅
fix pushed

Released in v0.6.0. Thanks for working on this.


Doughnut chart legends issue in chart.js

Expected behavior
Doughnut chart should display data like in the mentioned image.

Current behavior

Doughnut chart is displaying data like above in image if it has more than 3-4 legends.
If anyone has solution for it, it would be really helpful.
Thanks.
Reproducible sample
this.chart0 = new Chart(ctx1, {         type: this.shadow ? 'doughnutWithShadow' : 'doughnut',         data: data,         options: options,         plugins: [this.chartService.centerTextPlugin]       });
Optional extra steps/info to reproduce
No response
Possible solution
No response
Context
No response
chart.js version
2.9.3
Browser name and version
Chrome
Link to your project
No response

Hi can this issue be assigned to me? I would like to work on this.


Lose junior personal union as republic

In EU4 you can have junior personal union members as republic and when converted, countries still have their junior personal union members in VIC3. However, once unpause the game these junior members are lost immediately.
I understand it's a scripped game mechanic for VIC3 when countries abolish monarchy they lose these peronal unions. Just wondering if anything can be done to keep them. Thanks.

Current EU4 behavior is a known "won't fix" bug. Having PU(s) as a republic causes the ruler to get random additional dynasty name which changes with every election, and overall the prospect IMO makes no sense.
I don't intend to do anything about this in Vic3, which obviously doesn't support it.


Add Outline version to http fetch header for dynamic links

Is there an existing issue that is already proposing this?

[X] I have searched the existing issues

Application
Outline Client
What are you trying to do? What is your use case?
Dynamic link web service needs to know Outline version to decide to return credentials or not.
Is your feature request related to a problem? Please describe it.
A single client can bring the whole server down for everyone by connecting from an older version.

But that's only for clients without any harmful intentions. There is another security issue, a client with harmful intentions can open dynamic link in browser, decode shadowsocks password, then use it as `ss://` without prefix and take the whole server down for everyone. This proposal is a **very soft fix** for this issue too. I couldn't think of a confident header value for a better fortification.

Describe the solution you'd like.
https://github.com/Jigsaw-Code/outline-apps/blob/dff8f19bde8864646e317e2875ab27842570b193/client/src/www/app/outline_server_repository/access_key_serialization.ts#L74

Describe alternatives you've considered
Given the current conditions, there is no way to circumvent this issue. I hope it's clear how high a priority this matter is and the significant impact it has on Outline's geographic targets.

I don't fully understand how an older Outline client can bring down a whole server. Could you give us some more insight in case there's something else we need to look into?
In any case, as I mentioned in #2067, we can add this information to the User-Agent header, which seems reasonable. It'll be easier to do once the config fetching in Go is implemented. Assigning this to @jyyi1 who is leading that work.

There are two things and both are about detection:

I'm not aware of all the changes from 1.10 all the way to 1.13 that can affect detection but purely based on experience, the feedback from a server that have clients with any version from 1.10 to 1.13 is different from a server that's only serving clients using only 1.13.
Prefix is required. With the current situation, it's quite easy to open a dynamic link and use the ss credentials without prefix. Checking the version is a soft fix for this.

So that's the power a single client can have. Once the IP is detected, no prefix gets through it, even if I setup an nginx page on it, it won't open, heck you can't even ping it. This situation is in iran, I have 2 clients in mainland china and it's not as severe there. Not related but hope to see websocket added asap.

Hi @cornzzy ,
Adding User-Agent header could be a solution. But please note that we have various Outline tools (Client, CLI, SDK utilities, etc.) that accept server keys, each with different User-Agents.   Alternatively, I would propose adding a Supported-Outline-Features header (e.g., 'prefix', 'dynamic').
Our keys should be backward compatible, meaning older clients should connect. Neither client nor server should crash in this scenario. A server crashing due to an old key sounds like an issue that needs fixing separately. Can you provide server logs to help us troubleshoot?

Sure, Outline has different client apps and there are many ss client apps out there. And the server doesn't crash. There seems to be a misunderstanding.
All I'm saying is the dynamic link web service providing the ss credentials needs to know at least Outline Client version. The goal is to only return ss credentials if version is X even though http header can be set manually outside of outline but still this little header fixes 99% of the problem. I explained here a bit more.
If version is going to be in the header across all Outline Client (GUI) builds that would be awesome and this issue can be closed.

Thanks @cornzzy , we plan to add the User-Agent header to dynamic key requests first. Also, please keep in mind there are many Outline-compatible clients, so please avoid restricting your server to just one Outline Client version.


[ALS-5047] Use a different method to get studies records

Refactor some things that looked weird.
Fix bug where search doesn't reset when string is empty.

Checklist:

[ ] Have you successfully deployed to an AWS account with your changes?
[X] Have you successfully tested with your changes locally?

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Reviewed in office hours, 12/05/2023.


typed_python Class instances should use __repr__ when available

right now we just use a generated repr and don't check whether the user has supplied one.

Would this be an appropriate test case?
@Compiled
class ClassWithRepr(Class):
def repr(self):
return "repr"
    self.assertEqual(repr(ClassWithRepr()), "repr")

I don't think the @compiled thing will work on an entire class, although
that's something we should implement. We need to test and implement both
using the repr in normal typed python, and also compiling it. So
something like
class ClassWithRepr(Class):
    def __repr__(self):
        return "repr"
    def __str__(self):
        return "str"

self.assertEqual(str(ListOf(ClassWithRepr)([ClassWithRepr()])), "[str]")
self.assertEqual(repr(ListOf(ClassWithRepr)([ClassWithRepr()])), "[repr]")

@SpecializedEntrypoint
def callRepr(x):
    return repr(x)

self.assertEqual(callRepr(ClassWithRepr()), "repr")

etc.
On Mon, Aug 5, 2019 at 8:03 PM rubidge<EMAIL_ADDRESS>wrote:

Would this be an appropriate test case?
@compiled https://github.com/compiled
class ClassWithRepr(Class):
def repr(self):
return "repr"
self.assertEqual(repr(ClassWithRepr()), "repr")

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/APrioriInvestments/nativepython/issues/185?email_source=notifications&email_token=AB6OHBHAOM7CDLKWREGD643QDC5U5A5CNFSM4ID4FGH2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3TNOEI#issuecomment-518444817,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB6OHBFCIP5VL4IWTB3YC5TQDC5U5ANCNFSM4ID4FGHQ
.

This is closed.


CONTRIBUTING.md: fix project paths

The paths to the local libpod tree where missing the ./src part which
ultimately lead to compilation errors.  Also place the git trees into
containers/libpod and not into the user's GitHub root.
Reported in #podman on IRC.
Signed-off-by: Valentin Rothberg<EMAIL_ADDRESS>

let's try it another time ... seems me and git(hub) are no friends today.


cudaMalloc error on testing dnn_semantic_segmentation_train.ex.cpp network

Hello,
My net finished training but now it won't run, it says I don't have enough memory.
Here is a screenshot:

The server has 32GB RAM but it seems it is not enough:

Should I try with a cloud server with more memory? or am I doing something wrong? maybe the file had corrupted..
Thank you Davis, best regards

If it says you are out of memory then that's the problem.  Load less data or get a computer with more memory.

I'll try it, thank you Davis


Update dependency ipython to v8.13.2

This PR contains the following updates:

Package
Type
Update
Change

ipython (source)
dev
minor
8.12.0 -> 8.13.2

Release Notes

ipython/ipython
v8.13.2
Compare Source
v8.13.1
Compare Source
v8.13.0
Compare Source
v8.12.2
Compare Source
v8.12.1
Compare Source

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Report bugs in Issues
The following are automatically added:

Add reviewers from OWNER file (in the root of the repository) under reviewers section.
Set PR size label.
New issue is created for the PR. (Closed when PR is merged/closed)
*Run pre-commit if .pre-commit-config.yaml exists in the repo.

Available user actions:

To mark PR as verified comment /verified to the PR, to un-verify comment /verified cancel to the PR.
verified label removed on each new commit push.
To cherry pick a merged PR comment /cherry-pick <target branch to cherry-pick to> in the PR.

Support only merged PRs

To re-run tox comment /tox in the PR.
To re-run build-container command /build-container in the PR.
To build and push container image command /build-and-push-container in the PR (tag will be the PR number).
To re-run python-module-install command /python-module-install in the PR.
To add a label by comment use /<label name>, to remove, use /<label name> cancel

Supported labels

hold
verified
wip
lgtm
approve
target-version-


fix for issue #235

This is the fix for https://github.com/wayfair-tremor/tremor-runtime/issues/235.

👍 there are no changes left, should we close this in favour of #281?

closing this PR since this can be achieved by lines preprocessor.


AntiCheat Hook Possibility?

Would it be possible for Depenizen to add tags so Denizen can reference a person's "hack level" according to AntiCheat?
I wanted to make a minigame area where people are only allowed in if their "hack level" is under a certain amount of points.

Added NCP, as others aren't maintained.


Editor is rendering squashed

Is there any reason it would render like this out of the box? I don't have any css applied, but it seems to be rendering at 5px in height

Minimal recreation: https://github.com/jstafford5380/issue-smashed-monaco

@jstafford5380
I also ran into this. What worked for me is the following
<MonacoEditor Id="any-id-string" ConstructionOptions="EditorConstructionOptions" CssClass="editor-class"/>

<style>
    .editor-class{
        height: 500px;
    }
</style>

I think it would be better if the element filled it's parent element completely. However, in it's current state, the "CssClass" field should be required so it can give the developer an indication to add additional styling.
Hopefully this helps...

@jstafford5380
I also ran into this. What worked for me is the following
<MonacoEditor Id="any-id-string" ConstructionOptions="EditorConstructionOptions" CssClass="editor-class"/>

<style>
    .editor-class{
        height: 500px;
    }
</style>

I think it would be better if the element filled it's parent element completely. However, in it's current state, the "CssClass" field should be required so it can give the developer an indication to add additional styling.
Hopefully this helps...

Hi @jstafford5380 and @julivanespi
As you know, filling the remaining space in the parent element in html is not as straight-forward as just setting the height to 100%. It depends on the properties of the parent and the sibling elements. So, leaving this task to you (the library consumer) was the best option. You can set the height due to your case.
As there's already a predefined css class for the editor container element, you don't need to add an extra CssClass. Just set the properties you need via this class.
.monaco-editor-container {     height: 100%; }