Several fixes, attributes and data stream channel support

Few days back I merged your repo with mine. In my branch I fixed several issues and warnings.
Plus I tried to implement attributes and data stream support in this project. Please have a review and take picks you want.

Hi @ashar02, is not clear to me why you have changed NSString streamId in favor to use a NSDictionary, IMO is harder to handle a dictionary since you never know what is/could be inside, in opposition the method firm is much more clear passing streamId which also is what Licode supports.
I am seeing a few conflicts that prevent a smooth merge, did you look at those?
Thanks.

Hi @zevarito
Yes you are right that streamId is quite easy to handle. But many time easy handling takes your control off. Anyway, the reason is that I want to display 'displayName' with each publish / subscribe streams. Also if some one publishes 'audio only' then I have to check from attributes and display video box to 'audio only stream'.
Let me know if you want to make these things in some other way?
Also I am checking the conflicted files to make it smooth!!

@ashar02 well, I don't know about your particular use case, I moved lot of things into my app domain to avoid adding my personal use cases as-well trying to keep it simple and generic usable for everyone, also trying to keep it as closet to the Javascript API is good but that is not mandatory.
I have to review your changes with more time and in deep. I was planning to add some new features to the library that I want to discuss with you since we both seems to be the only ones involved on developing this. Perhaps we can start with that practice, discuss the implications before start coding so we can ensure an API that unless it is unavoidable doesn't brake previous versions. What do you say?

@zevarito to show display name is very common need in every audio/video conferencing application. That is why I did this!!
I agree to discuss and adopt proactive approach before start coding.

Hi @ashar02, so I was looking a little bit more around the streamId vs NSDictionary, I might be getting this wrong, but I am not identifying any practical use for the Dictionary inside the client code and signaling code, I am seeing that all methods have changed to support dictionary but it is only a "pass around" of it. If I am right on this, the core components should not be aware about all the metadata that you might want to associate with the stream, this can be easily supported by the "wrapper" app having a mapping there for stream ids and as many metadata you might want to handle there.
So, I am up for the data channel, code and example improvements and project meta/settings, but need to be convinced about the dictionary/streamId thing.
Let's try to PR as atomically as we can so it is easier to discuss review and merge, if we start them from master and keep the cycle everything will be smoother.
Let me know your thoughts.

Okay, let me resend pull request after latest code merging.


Rerun failed tests up to 5 times before complete fail

Band aid fix for all the random failing tests on GitHub.
If tests fail, give them 5 more chances to pass before declaring the action failed.
Does not get rid of the occasional xdist hang up.

I run sometimes into timeouts already now (at least with my modified time check. NFS??). How does this relate to our maximal runtime?

What about
https://docs.pytest.org/en/6.2.x/flaky.html
via pytest.mark.xfail?
Especially this deeper link
https://github.com/pytest-dev/pytest-rerunfailures
Seems to do something similar, but allows more fine grained control via
@pytest.mark.flaky(reruns=5)

Some testing with pytest-rerunfailures caused me a lot of headache and segmentation faults after x reruns.
Considering pytest comes with failure reruns already, I don't see the need for it.


add optional epoch stop

On very small "local" training datasets I noticed it trains for max steps of 10000 (hundreds of epochs).
This enforces an epoch stop if num_train_epochs is set, if not default behavior stays the same.
Usage example
python qlora.py --num_train_epochs=2

It is supported by default. No need to add another argument.
Just set max_steps to -1.
By default, the value for train epochs is 3.0

Okay will close this.


Add HostAliases to Glossary page

#5993
I added a HostAliases to the glossary page. I request help with adding the right tags for the term, please. Thank you!

@cody-clark Thank you for the merge :)


ENH: Adjudicators

This is my initial pass at some refactoring of what @tacaswell built for the adjudicators. I've elevated adjudicators to a separate module, and will build in the communication to the base class.
TODO

[ ] Pay careful attention to the schema used for messages sent to the adjudicator, and enforce rigidly (and explainably). Tom has put some of this in the docs already, and enforces using data.base_agent.format_suggestion
[ ] Decide, are adjudicators sending one or multiple suggestions to the queue at a time? Continuous or one off? This could be baked into the adjudicate_mode, but then that mode will also need a carefully validated document.
[ ] Build in agent publishers to send to Kafka topic instead of the queue. This can be the same topic that they read from <tla>...agents..., or we can ask for a new topic. These will use the schema from the top point.
[ ] Add re_managers to the adjudicators.

@tacaswell if you could peak at AdjudicatorBase and sanity check what I did there, particularly with spin, aka yeet. Otherwise, it was mostly me adding lengthy names where I had to pause to understand what an attribute was.

https://github.com/NSLS-II-PDF/mmm-experiments/pull/24/commits/757413fa161cfba66e5a74b4a7cb32f491214297 Closes #19

@tacaswell I think this is ready for a merge if you'd like to do the honors.


Command export_emails not working with custom AUTH_USER_MODEL

Currently the command works with data from standard django model user, today the fixed fields are used ('last_name', 'first_name', 'username', 'email').
It would be interesting in cases where the model user is customized with other fields, for example: ('name', 'email').

https://github.com/django-extensions/django-extensions/commit/baa62556c4da0ee6eeede30f6b9ef32aed88a4ee will allow users to customize the values() and order_by part of the queryset.
This should at least give you the option to only query for ('name', 'email') and not have errors for the missing fields. (EXPORT_EMAILS_ORDER_BY and EXPORT_EMAILS_FIELDS in settings.py)
The full_name(...) function can now be overridden (EXPORT_EMAILS_FULL_NAME_FUNC) to allow for any custom function to create the full_name.
One thing to note is that this allow for people with custom User models to use export_emails but it does not help putting your custom fields into the output of export_emails. Eg: the vcard or outlook option will not be able to pickup on additional fields like Job Title since they currently have no support for it.
I would be happy to accept PR's to extend the current formats (eg: support more fields in outlook, vcard, etc), add support for custom format functions or the ability to customize the queryset and/or provide a mapping dictionary for fields.
I hope this helps you and other people :-)


Requesting a new release to be able to use qunit ^2.10.0

Would it be possible to cut a new release of ember-qunit? I'm interested the updated version of qunit ^2.10.0 which changes the way only works.
If there's anything I can help with to make the process smoother, I'd be happy to help.

cc @rwjblue - it looks like master already has the needed version, so no PR required. Just a release needed.

2.10 is already allowed by the current range, there isn't a release required for y'all to grab it. Most likely you just need to update your lock file. For example, with yarn I would usually suggest one of the following:

rm yarn.lock node_modules && yarn (reroll your yarn.lock completely)
yarn remove ember-qunit && yarn add ember-qunit
add resolutions for "qunit": "^2.10.0", run yarn, then remove the resolution, run yarn again

There may be other / nicer ways, but these are the common ones I've used...

Good point. Closing :-).


Consider increasing flexibility of time-varying selectivity for base model

As noted in my comment on issue #175, the very large estimated size of the 2014 cohort is dependent on the fishery catching lots of age-2 fish in 2016 (and an above average amount of age-1s in 2015). However, changes in selectivity (or availability if the age-6 fish were more in Canada toward the end of the 2016 fishing season) could contribute to the observed proportions of these cohorts in the catch.
I've uploaded a model 33 to the Google Drive that has the standard error of the deviations on the selectivity parameters increased from 0.03 to 0.3. The original 0.03 value was based on an analysis that Jim Thorson and Allan Hicks conducted a few years ago (described in an open access paper here: https://academic.oup.com/icesjms/article/72/1/178/814992/Random-effect-estimation-of-time-varying-factors). However, they made some assumptions, including that the same standard error parameter was applied to control the flexibility at each age, when in fact it may be greater for some ages than others.
Ultimately, a model with greater flexibility in selectivity may simply be more plausible than one with an enormous 2014 recruitment.

I think this is a great idea Ian, good thinking... and perhaps this can be compared with the base model in one of our sensitivity groups (for plotting) and leave out the max age selectivity sensitivities as they were in the document last year (unless they show something drastically different, but doubtful)

Great idea, I set up a new sensitivity group for it and made a couple of plots. See commit fc63b1fe0ff6c889ea0544aee4d73ead835842077

I remembered that Thorson's function for the Laplace Approximation described in the manuscript mentioned above is built into r4ss as "NegLogInt_Fn". The example function call in the help for this function appears to be unchanged from applying it to a hake model from the past, so I was able to update it to reflect the parameter numbers associated with our current range of years with time-varying selectivity and run it again.
I made a copy of the model 33 folder and used the following commands:
direc <- "C:/github/hake-assessment/models/33B_Sen_Laplace_test/"
if("Optimization_record.txt" %in% list.files(direc)) {
  file.remove(file.path(direc,"Optimization_record.txt"))
}
Opt = optimize(f=NegLogInt_Fn,
    interval=c(0.002, 0.15),
    maximum=FALSE,
    File=direc,
    CTL_linenum_List=list(127:131),
    ESTPAR_num_List=list(88:217),
    Int_Group_List=1,
    PAR_num_Vec=NA,
    Version=1, Intern=TRUE)

This produced the following output
> Opt
$minimum
[1] 0.0291631779252872

$objective
[1]<PHONE_NUMBER>17605

which I believe is suggesting that the 0.03 would be revised downward to 0.029.
However, I believe that this is a case where the pure statistical theory may not match well with the need for a plausible model so we should explore alternative criteria for setting these variance parameters.

Note, to examine the variability of the estimated annual deviation in each selectivity parameter, if the model is named "model", these quantities have parameter labels like "AgeSel_1P_3_Fishery_DEVadd_1991" (where the first 1 designates the fleet number and the 3 designates the parameter number). The estimated values start with parameter 3 because Parameter 1 sets selectivity at age 0 to 0.0 and parameter 2 represents the change in selectivity from age 0 to age 1, which is fixed as a reference age since the maximum selectivity is scaled to 1, resulting in one fewer degree of freedom than the number of ages estimated.
Anyway, the standard deviation of the devs for each estimated parameter for the fishery can be found as
sd(model$parameter$Value[grep("AgeSel_1P_3_Fishery_DEV", model$parameters$Label)])
sd(model$parameter$Value[grep("AgeSel_1P_4_Fishery_DEV", model$parameters$Label)])
sd(model$parameter$Value[grep("AgeSel_1P_5_Fishery_DEV", model$parameters$Label)])
sd(model$parameter$Value[grep("AgeSel_1P_6_Fishery_DEV", model$parameters$Label)])
sd(model$parameter$Value[grep("AgeSel_1P_7_Fishery_DEV", model$parameters$Label)])
or we could generalize that by building the parameter label string in a  loop.

Thanks for this Ian, this would've taken me a long time to figure out!

Here's a potential support for a choice of time-varying selectivity flexibility SD of 0.20.
I looked at old assessment docs.
In 2013, we had fixed selectivity in the base model and did a sensitivity looking at time-varying selectivity with 0.05 and 0.20 values for this SD quantity we're trying to set.
In 2014 time-varying selectivity with a SD value of 0.20 was included in the Operating Model of the MSE and we explored values of 0.05 and 0.20 in the Estimation Model.  Table A.5 (page 120) of the 2014 assessment document shows that there's a big difference between no time-varying selectivity in the assessment, but not too much difference between the two values of 0.05 and 0.20, especially in the metrics related to depletion. However, in the metrics related to catch, increasing the SD value from 0.05 to 0.20 in the assessment reduces the probability of 0 catch (due to stock being estimated as below 10%,) from 3% to 1%.
Those results are dependent on the assumption that the variability in the OM is 0.20, and it would have been good to have a case where the OM was 0.05 and the EM was 0.20 (that is, overestimating the degree of time-varying selectivity), but we didn't seem to run that scenario.
In 2014, Thorson had also developed this Laplace Approximation approach to estimating the variability of this quantity, so the base model ended up with SD=0.03. See last 2 paragraphs of page iii in 2014 assessment (7th page of PDF) for discussion on this.
Nevertheless, in addition to Andy noting that results stabilize around 0.2, we could justify the choice of 0.2 as a value that was tested in an MSE context and performed as well or better than the smaller value (under the assumptions of a more-variable OM).

Here are the likelihoods (the 'TOTAL' row in   model$likelihoods_used  ) for some of the  models for the sensitivity runs for the std error of selectivity (quickly doing it manually):
std error          likelihood
0.03
0.05                 162
0.07
0.09                 154.9
0.15
0.20                 146.6
0.25                 144.6
0.30                 143.0
As Ian thought on the phone, there is no optimum in this range. (I assume these are -ve log-likelihoods, so 143 is the 'most likely').
[Writing this before reading Ian's latest comment]

Ian's comments sound good to me.  It seems like 0.2 and other values behaved similarly before, and we find that the historical results don't change when the value is changed, so that seems consistent.  [though is that because only the final few years are likely to show a change in estimated biomass etc.? - I can't quite get my head around it]. I have to leave in a minute but will look up the references later to try and understand it better, though happy to defer to Ian's expertise and rationale, as he understands this better.

Hi everyone,
I'm exposing myself and the fact that I occasionally peek at the email
notifications through Github. I figured that it is OK since this is all on
public Github.
I apologize if I'm off-base since I'm not thinking about hake, but am
thinking about the IPHC annual meeting next week, but I don't think that
looking at the likelihood alone is not useful for a random effect
parameter.  According the Thorson et al (2014), there are two components to
the log likelihood to maximize for a random effect is the summation of the
log penalized likelihood and half of the negative log determinant of the
Hessian matrix (equation 6 and preceding paragraph). This is what was used
to determine the value of 0.03.  I can't remember the explanation of why
the two components pull against each other (Thorson may), but I do remember
plotting the two components separately. It may be in a JTC presentation.
In addition, after we did the MSE work, we concluded that introducing even
a small amount of variability resulted in significant improvement, and
increasing that variation resulted in minimal gains.
Anyways, my Friday thoughts and feel free to ignore.
Good luck on the document!
Allan
PS: I have not looked at any of the document, just some of the emails that
come through.
On Fri, Jan 20, 2017 at 2:14 PM, Ian Taylor<EMAIL_ADDRESS>wrote:

Here's a potential support for a choice of time-varying selectivity
flexibility SD of 0.20.
I looked at old assessment docs.
In 2013, we had fixed selectivity in the base model and did a sensitivity
looking at time-varying selectivity with 0.05 and 0.20 values for this SD
quantity we're trying to set.
In 2014 time-varying selectivity with a SD value of 0.20 was included in
the Operating Model of the MSE and we explored values of 0.05 and 0.20 in
the Estimation Model. Table A.5 (page 120) of the 2014 assessment document
shows that there's a big difference between no time-varying selectivity in
the assessment, but not too much difference between the two values of 0.05
and 0.20, especially in the metrics related to depletion. However, in the
metrics related to catch, increasing the SD value from 0.05 to 0.20 in the
assessment reduces the probability of 0 catch (due to stock being estimated
as below 10%,) from 3% to 1%.
Those results are dependent on the assumption that the variability in the
OM is 0.20, and it would have been good to have a case where the OM was
0.05 and the EM was 0.20 (that is, overestimating the degree of
time-varying selectivity), but we didn't seem to run that scenario.
In 2014, Thorson had also developed this Laplace Approximation approach to
estimating the variability of this quantity, so the base model ended up
with SD=0.03. See last 2 paragraphs of page iii in 2014 assessment (7th
page of PDF) for discussion on this.
Nevertheless, in addition to Andy noting that results stabilize around
0.2, we could justify the choice of 0.2 as a value that was tested in an
MSE context and performed as well or better than the smaller value (under
the assumptions of a more-variable OM).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/cgrandin/hake-assessment/issues/194#issuecomment-274194239,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF4OZS_VKKK-9a41G6mcdXWJ7F6z3qUjks5rUTG7gaJpZM4Lo3Ij
.

Andy, thanks for the likelihoods.
Allan, thanks for peeking. That's the benefit of a public repository. The issue is that the model with the small amount of time-varying selectivity estimates a recruit deviation of 3.3 for 2014, which results in an MLE estimate of 2014 recruitment which is 3-times larger than 2010 and seems to us to not be plausible.
I don't really understand the theory behind Thorson's approach, but yes, the monotonic improvement in likelihood is not accounting for the "cost" of more flexibility. Thorson's method attempts to estimate that cost to find a good balance, but there's no guarantee that it will provide a better assessment model.
I'll share some further thoughts in a subsequent comment once I gather them.

We knew you couldn't stay away....!
Yeah, Ian mentioned what you explained during our call today.  We (I) don't fully understand the pull as you say, but do understand about the principle of random effects and likelihoods.  We decided to not use the likelihood as a determinant, just was one thing to look at to see how it changed as SD was adjusted upwards.  We'd like to explore this further, perhaps revisiting your and JTs analysis during the next off season.

I may be able to help re-run Thorson's analysis to re-estimate the
variance.  Does the estimated deviate in 2014 decline to reasonable values?
I think that calculating Thorson's likelihood would be simple in the
profile that you have already done, but I've already interfered enough.
Good luck,
allan
On Fri, Jan 20, 2017 at 2:46 PM, Ian Taylor<EMAIL_ADDRESS>wrote:

Andy, thanks for the likelihoods.
Allan, thanks for peeking. That's the benefit of a public repository. The
issue is that the model with the small amount of time-varying selectivity
estimates a recruit deviation of 3.3 for 2014, which results in an MLE
estimate of 2014 recruitment which is 3-times larger than 2010 and seems to
us to not be plausible.
I don't really understand the theory behind Thorson's approach, but yes,
the monotonic improvement in likelihood is not accounting for the "cost" of
more flexibility. Thorson's method attempts to estimate that cost to find a
good balance, but there's no guarantee that it will provide a better
assessment model.
I'll share some further thoughts in a subsequent comment once I gather
them.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cgrandin/hake-assessment/issues/194#issuecomment-274200407,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF4OZcJ-4Ru5Si8TsRJgtVIO3AogUEiMks5rUTlRgaJpZM4Lo3Ij
.

Allan, we thought the same, but managed to repeat it already and it produced almost identical results. See email in this thread from 4 hours ago.

Here are two more things that I realized while looking at the model.
First, looking at the vector of deviations over time shows that the largest deviations are estimated for 2015 and 2016, so my suggestion to look at the standard deviation of the estimated deviations may not make sense.
That is, instead of computing the SD of the vector using
sd(model$parameter$Value[grep("AgeSel_1P_3_Fishery_DEV", model$parameters$Label)]) you could save and plot the vector of values
vec_P3 <- model$parameter$Value[grep("AgeSel_1P_3_Fishery_DEV", model$parameters$Label)]
vec_P4 <- model$parameter$Value[grep("AgeSel_1P_4_Fishery_DEV", model$parameters$Label)]
vec_P5 <- model$parameter$Value[grep("AgeSel_1P_5_Fishery_DEV", model$parameters$Label)]
vec_P6 <- model$parameter$Value[grep("AgeSel_1P_6_Fishery_DEV", model$parameters$Label)]
vec_P7 <- model$parameter$Value[grep("AgeSel_1P_7_Fishery_DEV", model$parameters$Label)]
plot(0, type='o', xlim=c(1991,2016), ylim=c(-.3,.3), ylab="deviation")
lines(1991:2016, vec_P3, col=1)
lines(1991:2016, vec_P4, col=2)
lines(1991:2016, vec_P5, col=3)
lines(1991:2016, vec_P6, col=4)
lines(1991:2016, vec_P7, col=5)

Just remembered that I can just drag images, so will do that here.

That suggests that tuning the flexibility based on the estimated values for all years might not be right if the most recent years really did have more unusual ocean conditions and potentially more different selectivity than in the past.
Second, one reason why the change in time-varying selectivity impacts the 2014 recruitment so much, but not the earlier part of the time series is that the "End year standard recruitment devs" defined on line 66 of the control file is set to 2013 in the models we've been using.  Since there is information about the 2014 recruitment in the data, I think we should change this value to 2014.
I've uploaded a model 40 which has this change implemented. The time-series is almost identical but the equilibrium recruitment shows a change of about 10% because the large 2014 recruitment is now included in the set of values that are more directly connected to the equilibrium around which the recruitments vary.
For more info on the setup in Stock Synthesis which allows a separate vector of "early", "main", and "late"+"forecast" recdevs see the SS 3.24 User Manual "Appendix A: Recruitment Variability and Bias Corrections" starting on page 125.
In conclusion my suggestions based on all this thinking are

Go forward with a time-varying selectivity SD of 0.20 unless we find some better way to choose a value greater than 0.03 (which produces implausibly high 2014 recruitment estimates)
Change the "End year standard recruitment devs" from 2013 to 2014.

sounds good to me - model run 20 is a sensitivity to including the 2014 into the standard devs time series, which may be a the same as model 40 unless model 40 also uses the SD=.20

just downloaded model 40 and it is strictly a sensitivity to 2014 (SD=0.03 for tv-select) so this will be the same as model 20.  But I still agree that there is enough info now to include 2014 into the main period

Not to make things too complicated, but there is a subtle difference between models 20 and 40. Model 20 looked at the sensitivity of changing the range of years with the maximum bias adjustment from 2013 to 2014 (line 76 of control file), while model 40 changed the end of the vector of "main" recdevs from 2013 to 2014 (line 66 of control file).
The common practice with the bias adjustment is to have the period with max adjustment cover those years with the most information about recruitment and taper off at the end as the uncertainty increases. 2014 recdev is definitely more uncertain than 2013 and before so I think keeping the max bias adjustment on line 76 at 2013 makes sense.
However, given that there is definitely SOME information about the 2014 recruitment, even if it's really uncertain,  suggests that it should be included in the main vector of deviations, not a separate vector that extends into the forecast.

I forgot to mention that the bias adjustment issues go away when you do MCMC because the MCMC explores the uncertainty within each recdev as well as variability among them, so an MCMC for models 19 and 20 should produce identical results.
But including 2014 in the main vector of recdevs (which is constrained to sums to 0) will have some impact on both MLE and MCMC and should cause the equilibrium to better reflect the "average" recruitment, including the uncertain estimate for 2014.
So my suggestion (which I'm open to moving away from) would be to take model 40, change the SD of the time-varying selectivity parameters form 0.03 to 0.20 (or some other value), and consider that as a potential new base model and run the MCMCs on it.

Need a clarification (for when we write up): in the 2016 assessment (p39; copied from 2015) phi=0.03 is defined as the standard deviation for the penalty function. In 2014, on page iii it says phi is the 'random effects variance' [not standard deviation], although phi^2 is used on p144.  So I presume phi is the standard deviation (just a typo in page iii), yes?
Probably worth having the half-page of 2014 Appendix C text in this year's assessment if we're going to change the value from 0.03, rather than just refer to 2014. I can do that next week.

Agree with Ian's latest comments. Don't fully understand it all but seems logical. So, modifying model 40 with 0.20, and use that as base run (presumably will look similar enough to the sensitivity we did earlier).

I think 2014 page iii is typo in using the term variance.
I look in TPL file for SS version 3.24S and it has the line
 for(j=MGparm_dev_minyr(i);j<=MGparm_dev_maxyr(i);j++)
 {parm_dev_like += 0.5*square( MGparm_dev(i,j) / MGparm_dev_stddev(i) );}

where the MGparm_dev_stddev is the value from the 12th column of the parameter line. If we assume that quantity is phi, then this matches matches the equation on page 144 (170th page of PDF) in the 2014 assessment and we should just continue to call it a "standard deviation for the penalty function" and not use the term  "variance" unless we square it.

Sounds good. I'm watching soccer while running all.r and slowly trying to make progress on a few of the issues that are assigned to me.

Oops, my previous reply was supposed to be for issue #195. I think I'll close this issue to clean things up as it seems we've decided to go forward with the more flexible time-varying selectivity unless something in model 41 looks unexpectedly problematic.


Supporting the project

Hi @olli991
Can you please put in some links (maybe in the FAQ "How can I support this project"?) for ways we can support this project and the contributors ongoing efforts? I can see some on the other Toolbox project page, but not this one.
You've enable the average Joe to easily unlock all features and remove CP, which is saving people a lot of money if they don't otherwise have the knowhow.
I purchased my fist Discover Media unlocked, but have just unlocked a unit for my girlfriend's Tiguan myself and the toolbox is amazingly simple to use.
Thanks again for this, your efforts are truly appreciated
Stu

Thanks but we don't have any ways to support us. You can support us by contributing to the repo. Or maybe sending us a Delphi unit to thinker with 🤣


fix: ErrorSpan - switch to initial variant

Overview
Fixes some bad behavior in Forms (esp GridForm) where this was happening for FormGroups with larger rows:

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: ABC-123
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change

📬Published Alpha Packages:@codecademy/gamut-kit@0.4.26-alpha.b8788a.0@codecademy/gamut-labs@19.6.1-alpha.b8788a.0@codecademy/gamut@34.7.1-alpha.b8788a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://60c8dc5decb581251cf8a4d6--gamut-preview.netlify.appDeploy Logs


createNumberMask onReject triggered by thousandsSeparator

sorry, found another related (to #353) but different bug.
When using the createNumberMask with includeThousandsSeparator set to true...
The "," triggers the onReject callback (in addition to the onAccept callback being called).
Take the following example:
As you type 12345 (all acceptable characters in the number mask...)..  all 5 keypresses should trigger onAccept, none should trigger onReject.
What happens is... The first three key presses (123) don't trigger either callback. Keypress 4 (1,234) triggers onAccept, keypress 5 (12,345) triggers onAccept and onReject.
This issue is about triggering onReject on keypress 5.  (the other issue, where the first 3 keypresses are not triggering onAccept, is #353)

Since we've decided to remove onReject and onAccept, I'm closing this.


Fix TensorFlowLiteSwift Interpreter use-after-free bug

TensorFlowLiteSwift Interpreter has use-after-free bug, releasing underlying Model after init(modelData: Data), causing EXC_BAD_ACCESS.

Hi @yishuangP Can you please review this PR ? Thank you!

Is there any internal updates for this issue?

Hi @yishuangP Can you please review this PR ? Thank you!

Hi @yishuangP Can you please review this PR ? Thank you!

Hi @yishuangP Can you please review this PR ? Thank you!

Hi @yishuangP , Can you please review this PR ? Thank you!

Hi @yishuangP , Can you please review this PR ? Thank you!

Hi @yishuangP , Can you please review this PR ? Thank you!

Hi @yishuangP , Can you please review this PR ? Thank you!


Fix error handling before ShellOutError

Just reduce the nest:)

That makes sense:) Thanks! I close this.


fix: match attribute names with current API

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)

Closes #77

Changes:

To match with the Content API of Ghost:

replace Article model (Content-Type in Strapi) with post
use snake_case in the field names (Note: Default models and attributes provided by Strapi are locked to use camelCase.)
rename User.displayName to User.name
rename tag.isPublic to tag.visibility and set it as text field

Content API:
https://ghost.org/docs/content-api/

rename tag.isPublic to tag.visibility and set it as text field

Wouldn't it be better to keep the visibility as an enum field as it has only two values, public and internal.

LGTM. Once the merge conflicts are resolved, I'll merge the PR


Update add-credential.md

Tag for Touch should be 0x7a

I'm not too sure how this change introduced the build failures.


Cannot install example dockerfile

I am unable to install any docker images as jupyter kernels. All attempts end with ValueError: kernelspec already exists: /Users/ben/Library/Jupyter/kernels..
Steps to reproduce:

Create Dockerfile with contents from https://github.com/MrMino/dockernel/blob/master/example_dockerfile
Run the following:

docker build --tag dockerneltest .
pip install dockernel
dockernel install dockerneltest

Results:
Traceback (most recent call last):
  File "/Users/ben/opt/anaconda3/bin/dockernel", line 8, in <module>
    sys.exit(main())
  File "/Users/ben/opt/anaconda3/lib/python3.7/site-packages/dockernel/__main__.py", line 6, in main
    return run(sys.argv)
  File "/Users/ben/opt/anaconda3/lib/python3.7/site-packages/dockernel/app.py", line 7, in run
    return run_subcommand(parsed_args)
  File "/Users/ben/opt/anaconda3/lib/python3.7/site-packages/dockernel/cli/main.py", line 23, in run_subcommand
    return parsed_args.func(parsed_args)
  File "/Users/ben/opt/anaconda3/lib/python3.7/site-packages/dockernel/cli/install.py", line 77, in install
    install_kernelspec(location, kernelspec)
  File "/Users/ben/opt/anaconda3/lib/python3.7/site-packages/dockernel/kernelspec.py", line 163, in install_kernelspec
    raise ValueError(f"kernelspec already exists: {kernelspec_dir}.")
ValueError: kernelspec already exists: /Users/ben/Library/Jupyter/kernels.

Huh, that's weird. The kernel should install into .../kernels/{kernel_id}. May I know which version of dockernel and which OS are you using?

Got the same problem. I'm using Docker version 20.10.8.
I believe this is relevant: https://github.com/docker/cli/issues/2868#issuecomment-741774889
When using the new buildkit the ContainerConfig is empty, so https://github.com/MrMino/dockernel/blob/master/dockernel/cli/install.py#L59 returns an empty string.
A workaround is to build the image with env DOCKER_BUILDKIT=0 docker build xxxx.
Maybe use image id or the first repo tag as kernel_id instead?

@akialbz yes, that might be it. I need to dive deeper into it (and it won't happen sooner than December), but if someone wants to fix this - PRs welcome.


update(docs): improve information in  the configuration docs

Proposed Changes

Docs suggestions. When I was trying to setup docs, I had to use the online docs, and finding out anything was an awful pain especially because I had to search through the code.

I did not create an issue first because having something concrete to comment about is faster than explaining my suggestions, and then implementing them. The PR is of course not final, I would like to first know you thoughts, improvements, and I have a few questions. When all is done, I would adjust the JSON, TOML etc. parts as well.
Questions:

Why is the section "Using commands on scanned files as comments" in "Running KICS" rather than configuration section?
Does verbse flag work? When we set it verbose=false there was no difference with verbose=true that we could see.
type: "type of queries to use in the scan" does that require list of queries?

I submit this contribution under the Apache-2.0 license.

Also, I am happy to do more changes in the docs in this PR if consistency with other docs would be an issue, just let me know.

You can find a more detailed documentation about the scan flags here.

Oh so that is where all the explanations are! Completely my opinion, but wouldn't it be better to have this information in the configuration part as well? Or at least I think that a link in the configuration saying ... "Full configuration options can be found in CLI, and if you want to disable kics in some parts of files see Running KICS", would immensely help. I would say duplicating the information would be good as well, but I don't think it is worth the extra maintenance from your side.
Also, another topic would be could KICS have only docs for actually "getting started" in the getting started section? Rather than basically all the docs? Eg. I would expect maybe installation, running KICS examples and references to the actual configuration, and how to read results than all this:

Then again I think this would be too much conversation in a single PR.

You can find a more detailed documentation about the scan flags here.

Oh so that is where all the explanations are! Completely my opinion, but wouldn't it be better to have this information in the configuration part as well? Or at least I think that a link in the configuration saying ... "Full configuration options can be found in CLI, and if you want to disable kics in some parts of files see Running KICS", would immensely help. I would say duplicating the information would be good as well, but I don't think it is worth the extra maintenance from your side.

We totally agree with you! The configuration documentation should be definitely improved. We can present an example of a configuration and refer the command's doc as you suggested. Do you mind updating?
I would like to thank you for noticing, taking the time to contribute, and give your feedback.

Also, another topic would be could KICS have only docs for actually "getting started" in the getting started section? Rather than basically all the docs? Eg. I would expect maybe installation, running KICS examples and references to the actual configuration, and how to read results than all this:

We will discuss this matter with the Product Manager. As soon as we have some decision, I will let you know. Once again, thank you so much for your feedback 🚀

Then again I think this would be too much conversation in a single PR.

You can use the GitHub discussions or contact us via<EMAIL_ADDRESS>if you want 😊

I have added all the changes that I have "imagined". Let me know what you think, and what would need to be adjusted. :+1:

@rafaela-soares

Regarding the "Getting Started" section on the website, we will try to take care of it as soon as possible.

I dont think you need to rush it, but it was somewhat confusing to see all of the documentation in the "Getting Started" section.

The verbose flag gives information about the logs (WRN, INF, ...). If you need help with that, let me know. For example:

Maybe I was making a mistake somewhere, but I could swear that I still saw these WARN messages. Although, we did enable only WARN and above warning messages.

Still thank you for such a quick responses!


strange remark regaring runmodal/run methods

can you please explain the meaning of this paragraph? Both sentences tells exactly the same

Use this method, or the Report.Run Method, if you do not know the specific report that you want to run when you are designing your application. If you do know the specific report that you want to run, then you can use the RunModal Method or the Run Method.

the same problem is here as well:
https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/report/reportinstance-run-method

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 362b245a-50b0-26e1-7578-03efaae73a70
Version Independent ID: be84c6ce-f172-3207-2f89-9eeb42484d43
Content: Report.RunModal(Integer [, Boolean] [, Boolean] [, var Record]) Method - Business Central
Content Source: dev-itpro/developer/methods-auto/report/report-runmodal-method.md
Service: dynamics365-business-central
GitHub Login: @SusanneWindfeldPedersen
Microsoft Alias: solsen

They mean to use the static methods if the object ID of the report is variable, e.g. comes from user input - because in that case you can't declare an AL variable of an unknown report type.
That said, using static Report.Run(Report::"Object Name") is also fine to run a specific report, if nothing from a report object variable is needed - then it avoids declaring one when not required (same for codeunits, etc.)

Now i got it, but it's very hard to missread it since it looks almost exactly the same. Perhaps adding 'static' would help here?

In addition to that, definitions of RunModal also are indetical. Wouldn't be better to mention 'variable' in the first definition?


Improvements to shape detection article.

What's changed, or what was fixed?
Revision in preparation for move to web.dev
Fixes: https://github.com/GoogleChrome/web.dev/issues/1297
Target Live Date: 2019-08-28

[ ] This has been reviewed and approved by @tomayac
[x] I have run npm test locally and all tests pass.
[x] I have added the appropriate type-something label.
[ ] I've staged the site and manually verified that my content displays correctly.

CC: @petele

Whoops!
There were 1 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2019/01/shape-detection.md#L109 - Line must be at most 100 characters

:tada: This has been pushed live to https://developers.google.com/web/


Bump Homebrew formula on new release

Which issue does this fix?

It addresses concerns from https://github.com/jakedeichert/mask/pull/63#pullrequestreview-430275973
Describe the solution

Automatically sends PR to homebrew-core repo on every new release. 🎉

Hey @vladimyr this PR looks very helpful!
However, after looking at mislav/bump-homebrew-formula-action, I'm a bit concerned about this:

You should enable GITHUB_TOKEN only if the repository that runs this Action is private and if COMMITTER_TOKEN has the public_repo scope only. GITHUB_TOKEN will be used for verifying the SHA256 sum of the downloadable archive for this release.

In their documentation, it seems that this is required:
env:
          COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}
          # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}    # optional i guess?

Anyway, have you used this action successfully before? Any idea why GITHUB_TOKEN is only recommended for private repos? When searching GitHub for GITHUB_TOKEN, it's in many public repositories... so I'm a bit confused here.
If you're unsure, maybe I should post an issue over there to figure out why.

Anyway, have you used this action successfully before?

If you count https://github.com/starship/starship releases as my fault then the answer is yes 😄

Any idea why GITHUB_TOKEN is only recommended for private repos? When searching GitHub for GITHUB_TOKEN, it's in many public repositories... so I'm a bit confused here.

That's just naming, for example, starship calls it HOMEBREW_API_TOKEN: https://github.com/starship/starship/blob/35a0a20f5c4fea6a08e1b91ff631b089eef8fc50/.github/workflows/deploy.yml#L26-L34
People usually name any Github API token as GITHUB_TOKEN. Here is what is important to understand. This action has 2 inputs, one is optional. The first is used for creating pull requests in the Homebrew repo and the second is optionally used in case software, it is bumping formula for, lives in the private repo so action itself could actually access it. Former is named COMITTER_TOKEN later is GITHUB_TOKEN. But those are just parameter names, you may as well call them FOO & BAR inside your secrets config 🙃
Because mask lives in the public repo you only need commiter token and I used the Github token that was already in use inside that workflow → GITHUB_TOKEN. Does this answer your concerns?

@vladimyr thanks for describing this process! That clears things up a lot.
Next time I prep a release, I'll aim to get this PR merged and see how it goes :)


ts_sync_prod() not working

I am trying to get the tensor product between 2 FiniteTransistionSystem but when i call the function i get this error:
File "/usr/local/lib/python2.7/dist-packages/tulip/transys/algorithms.py", line 227, in ts_sync_prod
prod_ts = super(FiniteTransitionSystem, self).tensor_product(
NameError: global name 'self' is not defined
I checked around in the API documentation but i cannot find examples of how to use that or in general how to get a product transition system. Is this function still under development or ?

The module tulip.transys.algorithms contains excerpts from older code that were moved there during an overhaul (e.g., 1392b3ed2939ba177eedd055397f819201475ead). They have not been reimplemented, and are not currently under development. Older versions can be found at [1, 2]. The module transys.products may also be of interest.
If these transition systems are to be translated to formulas, then the products of interest can also be constructed by appropriately combining the resulting formulas.
[1] https://github.com/tulip-control/tulip-control/blob/v1.1a/tulip/transys/automata.py#L393
[2] https://github.com/tulip-control/tulip-control/blob/v1.1a/tulip/transys/transys.py#L897


unable to download files from inside a file group

Given a release that has files in a file-group, I am unable to figure out how to download a file from it. For example, pivotal-container-service, I can list the files available:
ubuntu@bosh-stemcell:~$ pivnet product-files -p  pivotal-container-service -r 1.0.4
+--------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+
|   ID   |                      NAME                       | FILE VERSION  |                                        AWS OBJECT KEY                                         |
+--------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+
|  76620 | PCF-PKS-NCP OSL                                 |           1.0 | product-files/pivotal-container-service/open_source_licenses-NSX_Container_Plugin-<IP_ADDRESS>.txt |
|  76616 | PCF-PKS 1.0 OSL                                 |           1.0 | product-files/pivotal-container-service/open_source_license_PCF-PKS_-_1.0_-_GA.txt            |
| 143263 | pivotal-container-service-1.0.4-build.5.pivotal | 1.0.4-build.5 | product-files/pivotal-container-service/pivotal-container-service-1.0.4-build.5.pivotal       |
+--------+-------------------------------------------------+---------------+-----------------------------------------------------------------------------------------------+

The files in the file-groups do not show up, but are visible with another command, the fgs command:
+-----+-----------------------+--------------------------------+
| ID  |         NAME          |       PRODUCT FILE NAMES       |
+-----+-----------------------+--------------------------------+
| 977 | PKS CLI - v1.0.4      | PKS CLI - Mac, PKS CLI -       |
|     |                       | Linux, PKS CLI - Windows       |
| 978 | Kubectl CLIs - v1.9.7 | Kubectl v1.9.7 - Mac, Kubectl  |
|     |                       | v1.9.7 - Linux, Kubectl v1.9.7 |
|     |                       | - Windows                      |
+-----+-----------------------+--------------------------------+

But how can I download them? Trying the dlpf command with any glob doesn't seem to see any of the files in the file-group.

FWIW I was able to download the individual product file with wget, after getting the product-file uri from pivnet file-groups -p pivotal-container-service -r 1.0.4 --format json | jq .
with
wget -d --header="Authorization: Token XXXXXXXXXXXXXXXXXXXXXXX" https://network.pivotal.io/api/v2/products/pivotal-container-service/releases/104377/product_files/143260/download
(for example)
It would make a lot of sense to be able to download the individual product-file, as the entities are readily available in the json output.

We added this feature enhancement to our internal backlog.

should be fixed in v0.0.51


feat(EMI-1798): add partner offer note in notification panel

This PR resolves EMI-1798
Description
Add partner offer note in notification panel according to the designs

PR Checklist

[ ] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[x] I would like at least one of the reviewers to run this PR on the simulator or device.
Just a check on android since I find it impossible to run on my machine setup

Changelog updates
Changelog updates

Cross-platform user-facing changes

Partner offer note added to notification panel - leamotta

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Cross-platform user-facing changes (Partner offer note added to notification panel - leamotta)

  Generated by :no_entry_sign: dangerJS against c3bc3bb0ada706da629dad83cce8eda9313a60b5

@MrSltun good observation, I updated the image source!


Fix "method_lines" issue in utils/pullrequest.js

Function pullRequest has 45 lines of code (exceeds 25 allowed). Consider refactoring.
https://codeclimate.com/github/bluzi/travis-buddy/utils/pullrequest.js#issue_5aae5dcc685bd90001000032

test from Code Climate Support - 👍 looks good!


Please add these Italian High Schools

Link to courses and descriptions are inside each commit

@fromthestone First stage of verification passed, official domain is iiscolombo.edu.it as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@fromthestone Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Better handling of bad configuration

Change client to better respond to bad configuration input.  HTTP 400 Bad Request
"Beautify" grabbit.sh a bit, respond better to failure, and hide sensitive input data (username, password)

@sagarsane @jdigger

Ready for review


Custom OPA Rules

Overview
Is it possible to create our custom rego rules and use it for scanning ?
Problem

Solution

Alternatives

Additional context

Hi @ssnmworld and thank you for asking.
In general, the answer is yes. You can write manually a control, add the control to a framework, and scan using the --use-from flag. That being said, I do not recommend doing so because we do not have it documented and the flow is tedious.
Unfortunately, we do not have it documented and out-of-the-box support because we are working on other interesting features. But this is in our roadmap :)
Maybe @yuleib can assist you here.

can i work on this?

Yes, it is documented here how to write a custom control.
I explained here how to run the custom control.
We would have a better integration with custom controls in the future :)


fix(FX-3252): Featured fairs on homepage link to fair 'Overview' tab by default

FX-3252
Before

After

Thanks for working on this @anastasiapyzhik! Before we commit to just clobbering the URLs, I wanted to understand where they came from. Here's what I found out (TL;DR the URLs for featured fairs are set by hand at admin.artsy.net/featured_links):

Ok, so these are fetched via a query to OrderedSets, and we actually just have a hardcoded ID that corresponds to the homepage rail:

{
  orderedSet(id: "529939e2275b245e290004a0") {
    items {
      __typename
      ... on FeaturedLink {
        id
        internalID
        title
        subtitle
        href
        image {
          cropped(width: 95, height: 63) {
            src
            srcSet
          }
        }
      }
    }
  }
}

And here's the API call that returns those items: https://api.artsy.net/api/v1/set/529939e2275b245e290004a0/items
An orderedSet can be a bunch of different things. In the case of the homepage, we only care about FeaturedLinks
Those are set in the admin panel: https://admin.artsy.net/featured_links
Here's an example of a specific featured link for one of the current fairs: https://admin.artsy.net/featured_link/6135d728fbee4c000c9bb02c
So currently those links are simply set in a way that includes /booths or /artworks
Also, we do something really goofy with these links: our MP resolver sets internalID to be whatever the last thing in the href is. So if the href is https://www.artsy.net/fair/the-armory-show-2020/booths, internalID will be booths. That doesn't seem like ideal behavior! https://github.com/artsy/metaphysics/blob/e5b974c2047d36f707ea2a8a23cc276410f13144/src/schema/v2/featured_link.ts#L15

I'm going to start a thread in #fairs-and-friends with members of the fairs team to understand why those links are being set with /booths or /artworks. I think probably that's either intentional and we shouldn't change it, or it's a mistake and they can simply set them differently in the future!

Closing this PR - confirmed with Fairs team that those links are intentional for now and that they will link to the overview page once there are artworks there https://artsy.slack.com/archives/C01129C3MTJ/p1631015214030600, https://artsy.slack.com/archives/C01129C3MTJ/p1631028504048400


Suggestion: more flexible Loadout presets

Wouldn't it be easier to use loadout presets directly from the game (which can be up to 10) than your own in several sections (titans, gold, ...) which need to be maintained and updated separate?
Next to each Titan can be empty field for the number which loadout to use. For example, I use for some Titans loadout based on Power and for another Drop, so in the end it's not so flexible and I must manually select loadout.
Second thing, I don't know about allocation file, but taking care of those piles of numbers for Gear sections is a pain.
thanks for consideration

The loadout system is designed this way so you don't have to buy loadout slots. If you use in game loadouts you're effectively limiting early game players to 1 or 2 loadouts tops.

but as it is now it also uses only two loadouts or not? one for Titans and second for Gold (and update them once for a while)

Titans, Gold, Yggdrasil, Money Pit is 4.

I thought you would have some use for "build-in" presets and even more in later game, but if this is better then... ok


Initial active link

Branched from fisshy/react-scroll#59
Currently link active states are not calculated until the first scroll event occurs. This change calculates link active states whenever scroll elements are first mounted (so the active state will already be set on a fresh page load)

Woops, had a typo in my code. Force pushed the fix.

Actually, disregard this PR completely, it doesn't work at all. Sorry about that, jumped the gun


Perfect bot doesn't answer questions and subtracts one from diversionBots

Title.

diversionBot subtraction fixed, perfectBot behavior still slow and inaccurate

mainBot is so consistent that perfectBot doesn't need to exist; remove code


fix: input.stream is null when copied for namespaced commands

There are some cases where io.input is recreated, but the input.stream attribute is not properly copied over. This fixes an upstream edge case issue in Poetry.

Thanks, rebased and reformatted changes.


Documentation says BIO_s_dgram_pair is thread-safe, but BIO relies on single-threaded patterns

I noticed the docs for BIO_s_dgram_pair say:

BIO_recvmmsg(3), BIO_sendmmsg(3), BIO_read(3), BIO_write(3), BIO_pending(3), BIO_get_write_guarantee(3) and BIO_flush(3) may be used by multiple threads simultaneously on the same BIO datagram pair. Specific BIO_ctrl(3) operations (namely BIO_CTRL_PENDING, BIO_CTRL_FLUSH and BIO_C_GET_WRITE_GUARANTEE) may also be used. Invoking any other BIO call, or any other BIO_ctrl(3) operation, on either half of a BIO datagram pair while any other BIO call is also in progress to either half of the same BIO datagram pair results in undefined behaviour.

This was surprising to me given how BIO works. I'm not sure this is actually meaningfully thread-safe. Although the BIO does internally locked, we have a couple of single-threaded patterns in BIO:
First, the BIO_read and BIO_write wrappers, without any locks, update some state: https://github.com/openssl/openssl/blob/master/crypto/bio/bio_lib.c#L288 and https://github.com/openssl/openssl/blob/master/crypto/bio/bio_lib.c#L359
More fundamentally, the BIO API itself is single-threaded. Instead of returning everything directly, BIO likes to store outputs on the BIO for the caller to query later, notably retry flags. The new BIO_read_ex APIs seem to have gone further in this direction in incompatibly replacing an in-band EOF return with out-of-band EOF state. See https://github.com/openssl/openssl/issues/8208.
This is a single-threaded API pattern: even if language-level race conditions are eliminated with locking, the application still has a race condition if another thread uses the BIO in between, say, BIO_read and BIO_should_read.

Yeah, I think this is a mistake, actually only  the BIO_recvmmsg(3) and BIO_sendmmsg(3) are supposed to be simultaneously usable.


Implement layout modes

When pressing CTRL + scroll layout view in the opened window should change accordingly so is wit the pinch in to zoom in and pinch out to zoom out

This will come when the different layout modes are available.

Layout modes will be be available when the v0.7.3 release rolls out.

Hi, was about to open a ticket about the possibility to adjust the dimensions of the contents of a folder with touchpad zoom. Is that linked to this issue?


Takeoff pro support

Description:
This PR adds support for the Pro version of Titan Takeoff Server. Users of the Pro version will have to import the TitanTakeoffPro model, which is different from TitanTakeoff.
Issue:
Also minor fixes to docs for Titan Takeoff (Community version)
Dependencies:
No additional dependencies
Twitter handle: @becoming_blake
@baskaryan @hwchase17

thanks @hoyungcher!


Integration tests throw error at the end

When running ./scripts/test-integration.sh, any extension test suite will succeed but still show the following error right at the end. Note that the process still exits with 0, though.
[main 2021-01-19T10:29:07.561Z] [uncaught exception in main]: TypeError: Cannot read property 'isDevToolsFocused' of null
[main 2021-01-19T10:29:07.561Z] TypeError: Cannot read property 'isDevToolsFocused' of null
    at BrowserWindow.n.isDevToolsFocused (electron/js2c/browser_init.js:33:2600)
    at Function.n.getFocusedWindow (electron/js2c/browser_init.js:33:1603)
    at WindowsMainService.getFocusedWindow (/home/joao/Work/vscode/out/vs/platform/windows/electron-main/windowsMainService.js:998:53)
    at WindowsMainService.sendToFocused (/home/joao/Work/vscode/out/vs/platform/windows/electron-main/windowsMainService.js:1015:40)
    at CodeApplication.onUnexpectedError (/home/joao/Work/vscode/out/vs/code/electron-main/app.js:248:88)
    at ErrorHandler.unexpectedErrorHandler (/home/joao/Work/vscode/out/vs/code/electron-main/app.js:34:60)
    at ErrorHandler.onUnexpectedError (/home/joao/Work/vscode/out/vs/base/common/errors.js:43:18)
    at Object.onUnexpectedError (/home/joao/Work/vscode/out/vs/base/common/errors.js:60:34)
    at Emitter.fire (/home/joao/Work/vscode/out/vs/base/common/event.js:486:34)
    at LifecycleMainService.beginOnWillShutdown (/home/joao/Work/vscode/out/vs/platform/lifecycle/electron-main/lifecycleMainService.js:137:34)
    at App.<anonymous> (/home/joao/Work/vscode/out/vs/platform/lifecycle/electron-main/lifecycleMainService.js:117:46)
    at Object.onceWrapper (events.js:422:26)
    at App.emit (events.js:315:20)
    at App.windowAllClosedListener (/home/joao/Work/vscode/out/vs/platform/lifecycle/electron-main/lifecycleMainService.js:106:36)
    at App.emit (events.js:327:22)
    at /home/joao/Work/vscode/out/vs/platform/lifecycle/electron-main/lifecycleMainService.js:383:36
    at async LifecycleMainService.kill (/home/joao/Work/vscode/out/vs/platform/lifecycle/electron-main/lifecycleMainService.js:369:13)
    at async NativeHostMainService.exit (/home/joao/Work/vscode/out/vs/platform/native/electron-main/nativeHostMainService.js:443:13)
[main 2021-01-19T10:29:07.561Z] [uncaught exception in main]: TypeError: Object has been destroyed
[main 2021-01-19T10:29:07.561Z] TypeError: Object has been destroyed
    at SharedProcess.onWillShutdown (/home/joao/Work/vscode/out/vs/code/electron-main/sharedProcess.js:54:20)
    at /home/joao/Work/vscode/out/vs/code/electron-main/sharedProcess.js:36:80
    at Emitter.fire (/home/joao/Work/vscode/out/vs/base/common/event.js:479:38)
    at LifecycleMainService.beginOnWillShutdown (/home/joao/Work/vscode/out/vs/platform/lifecycle/electron-main/lifecycleMainService.js:137:34)
    at BrowserWindow.<anonymous> (/home/joao/Work/vscode/out/vs/platform/lifecycle/electron-main/lifecycleMainService.js:209:26)
    at BrowserWindow.emit (events.js:327:22)
    at /home/joao/Work/vscode/out/vs/platform/lifecycle/electron-main/lifecycleMainService.js:383:36
    at async LifecycleMainService.kill (/home/joao/Work/vscode/out/vs/platform/lifecycle/electron-main/lifecycleMainService.js:369:13)
    at async NativeHostMainService.exit (/home/joao/Work/vscode/out/vs/platform/native/electron-main/nativeHostMainService.js:443:13)

@bpasero I had to revert this as it was blocking the extension viewlet from loading. git bisect pointed to this commit and revert resolves the issue. could repro the issue in OSS on windows and macOS

@bpasero I had to revert this as it was blocking the extension viewlet from loading. git bisect pointed to this commit and revert resolves the issue. could repro the issue in OSS on windows and macOS

👏

👏


[Question] Future plans for compatibility with Bedspreads?

I came across this mod while browsing through CurseForge, and I think it looks cool. However, I saw on the mod page that it isn't compatible with Bedspreads, which is something we already have in our modpack. Is that due to some conflict between the two mods in how they modify banner functionality, or is it simply something you noticed and have on a "do something about this in the future maybe" list? I'd love to use both mods, but understand if there's a technical reason why they cannot be made to work together.

Hello, thanks for the issue report! Because of how BannerAdditions changes banners, a full rewrite of Bedspreads would be necessary in order for it to work with BannerAdditions. So unfortunately, Bedspreads will probably never work with BannerAdditions and I have no plans on making it work. Sorry for the inconvenience and I wish you luck on your modpack.

I understand. Thanks for the response!


fix(iroh): do not remove the rpc lockfile if an iroh node is already running

Description
Previously, we were running RpcStatus::clear, every time we ran the iroh start command (start::run_with_command).
This meant that even when we correctly exited the iroh start command in with the error "iroh is already running", we would then remove the rpc lock file, even though iroh was still running in a different process.
Any subsequent calls to iroh console or any other iroh commands that expected an iroh node to be running, would assume that a node was no longer running because the rpc lock file was gone.
This PR adds a new concrete AlreadyRunningError that we return from start_node. Before we run RpcStatus::clear, we check for the AlreadyRunningError, and do not clear the lockfile if that error is present.
Notes & open questions
One big change in this PR
Using the iroh_data_root function makes it impossible to test anything at the iroh::start level, because the IROH_DATA_DIR env var makes sure that nothing can be tested in isolation. Setting the env var in one test, clobbers setting it in another.
I have a commit that adjusts the code to:

run iroh_data_dir() once in main.rs
cascades the iroh_data_dir down through the code from there
remove any other references to calling iroh_data_dir anywhere else

Would love some more eyes and opinions tho.
This mostly effects commands::console and commands::start
Change checklist

[x] Self-review.
[x] Documentation updates if relevant.
[x] Tests if relevant.

I have a commit that adjusts the code to:
* run `iroh_data_dir()` once in `main.rs`

* cascades the `iroh_data_dir` down through the code from there

* remove any other references to calling `iroh_data_dir` anywhere else

Would love some more eyes and opinions tho.

excellent choice


[RFR] Exposed an a11yToggle function on global object

This PR makes it possible to use dynamically injected toggles.

Nice.

YOLO.


Add pdf icon after each citation

Add function:
Would it be possible to add icon to open specific pdf directly from the screen where specific citation appear?

To Reproduce
Steps to reproduce the behavior:

When I  '...'
Then I '....'
And I '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please identify where you experience this bug:
*** One of ***

Development (native|docker : shaw)
Sandbox -
Production
Browser [e.g. chrome, safari]

Sorry, it is issue for the production.

implemented as a radial annotation button in the list of references.


setupFiles can't be found when using browser-resolve Jest resolver

🐛 Bug Report
I just upgraded all of our testing libraries to their latest version, including Jest.
Our test suite was dependant on the Jest configuration browser field which had been deprecated now.
I followed the instructions on how to reproduce the behaviour of that browser configuration field and added the following to my Jest configuration file:
"resolver": "browser-resolve"

Since then, when I run our test suite, it directly fails because Jest can't find a local setupFile defined as follow:
"setupFiles": [
    "<rootDir>/test/setup.js"
]

It fails with the following error:
Validation Error:

  Module <rootDir>/test/setup.js in the setupFiles option was not found.
         <rootDir> is: /Users/path/to/application/root

While the displayed path is actually correct and points to my setup script.
To Reproduce
Here's my full Jest configuration file which should be enough to reproduce:
{
  "collectCoverage": true,
  "collectCoverageFrom": [ "src/**/*.{js,jsx}" ],
  "coverageDirectory": "public/coverage/",
  "moduleFileExtensions": ["js", "json", "jsx", "yaml"],
  "moduleNameMapper": {
    "\\.scss$": "identity-obj-proxy"
  },
  "resolver": "browser-resolve",
  "setupFiles": [
    "<rootDir>/test/setup.js"
  ],
  "transform": {
    "\\.yaml$": "yaml-jest",
    "\\.jsx?$": "babel-jest"
  },
  "testResultsProcessor": "jest-sonar-reporter",
  "testURL": "http://localhost:8080/my-application",
  "verbose": true
}

Expected behavior
Local setup files should be resolved properly.
envinfo
  System:
    OS: macOS 10.15.6
    CPU: (8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
  Binaries:
    Node: 12.18.3 - /usr/local/opt/node@12/bin/node
    npm: 6.14.6 - /usr/local/opt/node@12/bin/npm
  npmPackages:
    jest: 26.4.2 => 26.4.2

Any update on this? I'm having the same bug.

Jest 26.6.3 with Node.js v15.10.0 on Ubuntu 20.10

Without the setupFiles option, this is also affecting node_modules packages:
Module /home/piranna/github/randomUUID/node_modules/jest-jasmine2/build/index.js in the testRunner option was not found.
         <rootDir> is: /home/piranna/github/randomUUID

Seems like the resolver option is plainly broken.


Services Polishing

Additional info For Services:

Create service details page

Add Selector & Ports (public ports link to target like service list page) tabs to detail resource-tabs default tabs

Selector Tab

Top section is table of selector key values
if Related Resources tab does not find selected pods we should add them below the key value selectors above edit (wes): Pods have there own tab on service details page

Service Create Page

Selectors - Hide the info bubble (if no selector...) if we have selectors input  edit (wes): We will not hide it completely. When no selectors have been entered, the info message will display the warning. If selectors exist the info bubble will show how many pods are targeted by the current selectors.
Session Affinity - Move info bubble to tooltip on tab title
External Name

Move info bubble to tooltip on tab title
Swap basic input for Labeled Input - edit (wes): new label is DNS Name. this follows the patten of the docs

Listener IPs

Rename tab -> IP Addresses
Remove External IPs label unless both Cluster IP and External IP input are available, then show External IP label.
Move tooltip currently on External IPs label to tab title tooltip

~wireframe here~

On 2.5-head - commit id: 2ba49cb

Selector tab is added.
Create service --> Nodeport --> Selectors --> Info text seen "If no selector is created, manual endpoints must be made." .
Pods have a separate TabWhen you add a key value pair, this message is not seen.
Session Infinity has an Info tool tip
External Name --> Has a tool tip
External name has a label - DNS Name
Listener IPs --> Renamed to IP Addresses
Create Cluster IP --> IP Addresses has External IPs input.
Tool tip moved to title

On 2.5-head - commit id: 2ba49cb

Selector tab is added.
Create service --> Nodeport --> Selectors --> Info text seen "If no selector is created, manual endpoints must be made." .
Pods have a separate TabWhen you add a key value pair, this message is not seen.
Session Infinity has an Info tool tip
External Name --> Has a tool tip
External name has a label - DNS Name
Listener IPs --> Renamed to IP Addresses
Create Cluster IP --> IP Addresses has External IPs input.
Tool tip moved to title


Consistantly do or do not emit the final line

https://github.com/googlefonts/fontmake-rs/blob/62579d5bfa35916c2006b15bab6bc4e0c6f7e0a8/fontir/src/ir.rs#L744-L754

I double checked this and it was intentional like that, I even added a test to ensure this behavior.
https://github.com/googlefonts/fontmake-rs/blob/62579d5bfa35916c2006b15bab6bc4e0c6f7e0a8/fontir/src/ir.rs#L838-L854
Note that this GlyphPathBuilder works from a list of points (not segments, nor path drawing commands) and is intended to convert from points to kurbo path elements (aka drawing commands).
If the self.path.elements().last() is a PathEl::LineTo, that is because the last point of the closed contour is actually of type "line" (i.e. the last method of GlyphPathBuilder to be called immediately before the GlyphPathBuilder::close_path() was a line_to()).
See how GlyphPathBuilder is used to build a BezPath from norad contour point list in UFO glyph:
https://github.com/googlefonts/fontmake-rs/blob/62579d5bfa35916c2006b15bab6bc4e0c6f7e0a8/ufo2fontir/src/toir.rs#L22-L52
If the current point is already of type "line", and we're closing the BezPath, so this point can be either 1) != first point, in which case we decided we always want to emit an explicit closing line to make closePath noop, or 2) it is an actual duplicate point that overlaps the first point; if we were to not emit a lineTo in the second case, then this duplicate point would be lost because it'd be confused with the closePath-implied closing line. Hence we must emit the lineTo unconditionally when the last point is of type "line".

If I apply the following change to make the LineTo case conditional

Naively I think I might have expected to remove the condition from the quad/curve case, that is to literally always output the implicit closing line.

please let's not rehash the stale discussion we already had in https://github.com/fonttools/fonttools/issues/3093.
In this particular piece of code, we are not dealing with SVG paths in which the spec mandates that Z always adds a possibly zero-length line segment.
There is nothing implicit in our source UFO/Glyphs contours which are specified as a list of points, and that's what the GlyphPathBuilder is meant to translate into a kurbo::BezPath (sequence of path drawing commands). Technically this GlyphPathBuilder should really be named ContourPathBuilder because it only works on single contours.
E.g. the following contour is deemed closed because it not start with a "move", thus it should be understood as a cyclical list of points that starts and ends on the same point; there is no implicit line, only 2 cubic curve segments each starting where the previous one ends, a total of (4 - 1) * 2 == 6 points:
<contour>
  <point x="0" y="0" type="curve" />
  <point x="1" y="1" />
  <point x="2" y="2" />
  <point x="3" y="3" type="curve" />
  <point x="4" y="4" />
  <point x="5" y="5" />
</contour>

The relevant passage from the UFO spec is where it describes the "move" point type: https://unifiedfontobject.org/versions/ufo3/glyphs/glif/#point-types
The Glyphs paths work the same way, only difference is they carry an additional closed bool flag (instead of signalling the open-ness with the type of the first point "move") and they prefer to store the starting "node" of a closed contour at the end of the nodes list, but the essence does not change. E.g. this is Glyphs v2:
1 1 OFFCURVE
2 2 OFFCURVE
3 3 CURVE
4 4 OFFCURVE
5 5 OFFCURVE
0 0 CURVE

this is the same as Glyphs v3:
(1,1,o)
(2,2,o)
(3,3,c)
(4,4,o)
(5,5,o)
(0,0,c)

The way we should encode this closed contour as a BezPath is like this:
let contour = BezPath::from_vec(vec![
    PathEl::MoveTo((0.0, 0.0)),
    PathEl::CurveTo((1.0, 1.0), (2.0, 2.0), (3.0, 3.0)),
    PathEl::CurveTo((4.0, 4.0), (5.0, 5.0), (0.0, 0.0)),
    ClosePath,
]);

... and not like this:
let contour = BezPath::from_vec(vec![
    PathEl::MoveTo((0.0, 0.0)),
    PathEl::CurveTo((1.0, 1.0), (2.0, 2.0), (3.0, 3.0)),
    PathEl::CurveTo((4.0, 4.0), (5.0, 5.0), (0.0, 0.0)),
    PathEl::LineTo((0.0, 0.0)),  // hm wait, where is this coming from?!
    ClosePath,
]);

Fair enough. Is there a terse way to express this we could put in a comment? - it looks like a bug when you glance at that code.

Maybe I'll try to write one and see if you agree with it


Deprecate accounts CLI

After merging https://github.com/ChainSafe/lodestar/pull/3296 the accounts CLI is not really necessary anymore. Consider deprecating it or at least removing it from documentation
Lighthouse did already deprecate it and it has been successful among users. Everyone uses Launchpad generated keystores

Also some solutions like https://github.com/stake-house/wagyu-key-gen and other interfaces coming online to make it easier to generate keys.


fix: upgrade to version 3.0.666

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign macox
You can assign the PR to them by writing /assign @macox in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jenkins-x-bot-test: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gsm
821813b18dad5c7ca8269309d8a2dfc39032dc89
link
/test gsm

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

@jenkins-x-bot-test: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gsm
821813b18dad5c7ca8269309d8a2dfc39032dc89
link
/test gsm

vault
821813b18dad5c7ca8269309d8a2dfc39032dc89
link
/test vault

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

@jenkins-x-bot-test: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gsm
821813b18dad5c7ca8269309d8a2dfc39032dc89
link
/test gsm

vault
821813b18dad5c7ca8269309d8a2dfc39032dc89
link
/test vault

kube
821813b18dad5c7ca8269309d8a2dfc39032dc89
link
/test kube

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

/retest


Fix is_package indentation bug

Encountered this bug while playing around with snorkel.
The bug was that we never go through a single iteration of the loop because either True is returned or False is immediately returned. Instead we should be looping through all packages, and if True is never returned, False should be returned.

Hi @AndyLc, we've moved the information extraction version of Snorkel (v0.7) to https://github.com/snorkel-team/snorkel-extraction. Feel free to reopen this PR there! Just ping me and I'll accept right away.


Domain.Features mistakenly used the wrong type for APIC

APIC used FeatureState instead of the struct specifically designed to track this feature.

retest this please

Update is a no-op. I couldn't remember if I touched the docstrings addressed in https://github.com/kubevirt/kubevirt/pull/723

ok to test

retest this please

retest this please

retest this please

retest this please

@fabiand the patch was old. Please wait at least for Travis next time.


Non-existent image returns 200 with empty body

In 2.x code, when AccessDenied error returned from S3, Tachyon responded with a status code of 404. https://github.com/humanmade/tachyon/blob/v2.6.3/lambda-handler.js#L21-L30
Reviewing the code in version 3 (specifically the lambda-handler.ts file), it seems that the behavior of responding with a 404 status code for an AccessDenied error from S3 is not implemented resulting in getting a 200 response with an empty body for non-existent files.
Lambda log
{
    "errorType": "AccessDenied",
    "errorMessage": "Access Denied",
    "name": "AccessDenied",
    "$fault": "client",
    "$metadata": {
        "httpStatusCode": 403,
        "requestId": "XXXXX",
        "extendedRequestId": "XXXXX",
        "attempts": 1,
        "totalRetryDelay": 0
    },
    "Code": "AccessDenied",
    "RequestId": "XXXXX",
    "HostId": "XXXXX",
    "message": "Access Denied",
    "stack": [
        "AccessDenied: Access Denied",
        "    at throwDefaultError (/var/task/node_modules/@smithy/smithy-client/dist-cjs/default-error-handler.js:8:22)",
        "    at /var/task/node_modules/@smithy/smithy-client/dist-cjs/default-error-handler.js:18:39",
        "    at de_GetObjectCommandError (/var/task/node_modules/@aws-sdk/client-s3/dist-cjs/protocols/Aws_restXml.js:4330:20)",
        "    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)",
        "    at async /var/task/node_modules/@smithy/middleware-serde/dist-cjs/deserializerMiddleware.js:7:24",
        "    at async /var/task/node_modules/@aws-sdk/middleware-signing/dist-cjs/awsAuthMiddleware.js:14:20",
        "    at async /var/task/node_modules/@smithy/middleware-retry/dist-cjs/retryMiddleware.js:27:46",
        "    at async /var/task/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/flexibleChecksumsMiddleware.js:58:20",
        "    at async /var/task/node_modules/@aws-sdk/middleware-logger/dist-cjs/loggerMiddleware.js:7:26",
        "    at async Runtime.streamify_handler [as handler] (file:///var/task/dist/lambda-handler.js:26:23)"
    ]
}

I tried working on this but could not figure out how to change the status code from a streamed response.
Here's a WIP that returns "File not found" in body if there's an error. But the status code is still 200: https://github.com/humanmade/tachyon/pull/177


analytics.track modify passed arguments

I want to log an object with a dayproperty.
I pass it to analytics.track before sending it to my server, and what happens next is completely unbelievable.
a = {day: "2015-05-28"};
analytics.track('foo', a);
a; // Object {day: Thu May 28 2015 02:00:00 GMT+0200 (CEST)}

... Why ? :cry:
Why would my object be modified by a tracking library?
Do what you want with the data but please: CLONE IT before! :sob:

sad...

@ianstormtaylor @ndhoule, could you please advice on this ?
I'm not sure it's intended.

As a workaround you can call clone yourself before giving us the object.

@QuentinFchx this is definitely an issue, thanks for reporting. Here's the offending line of code:
https://github.com/segmentio/facade/blob/1.4.7/lib/facade.js#L25
In all other cases we clone the object before using it, but isodate-traverse modifies the object in place; in a previous version it cloned its input first. I'll bet that's where the issue was introduced. So the mutation issue is limited to properties that are in a date-ish format, but any mutation is not OK—totally reasonable concern.
I'll prep a fix and some regression tests for this first thing tomorrow morning when I get in.

Thanks a lot guys :+1:
You're completely right, the proper fix would be to clone the object in my code.
However, because I'm using it in a cordova application, it implies a new release on the different app stores (versus analytics being updated and users only having to relaunch the app :smile:)

Thanks for the answers, is there an ETA, for the release of the fix?

Sorry for taking to long to wrap this up. This was fixed in https://github.com/segmentio/facade/pull/81.
This is up on Segment's CDN as of last night, and the built version of analytics.js in this repo also contains the fix.
Thanks for your patience!

Thank you :)


feat: support pdm as a python package manager

Description
PDM is a Python package and dependency manager. It would be helpful since it can keep track of the packages' version and dependencies.
pdm add numpy

It will add the dependencies to pyproject.toml and pdm.lock. So users can have the latest Python package dependencies in the environment. We can add a hook (maybe an init script) to update the Python dependencies when the container is created.
What do we need to support?

pdm cache info mount the cache
enable PEP 582 by default
detect the required Python version in pyproject.toml
add a hook to install all the dependencies and dev dependencies
pdm is not tested under the machine learning environment, it could be very slow to resolve the dependencies graph

cc @frostming

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

Then how to support this in envd? Should we introduce a new func install.pdm_pacages?

It's highly related to Python. I think it can be a parameter in install.python(use_pdm=True). Thus you may not need to specify another Python version if you're working on a PDM-managed Python project.
Before that, we should verify whether PDM is suitable for ML dev or not. My main concern is the speed. Lots of ML libraries are not pure Python, PDM will try to get all platform lock info (correct me if I'm wrong).

PDM author here. IMHO the cross-platform lockfile is overkill for an in-container dev environment. The lockfile is made for sharing but you are not likely to share it outside of the container. In a container, you only need to ensure the packages are compatible with the exact platform you choose to build the container and the cross-platform resolution seems a waste. Therefore, pip would suffice in this situation.


Bug: Customer only sees one rendition

Our integration with the mist-api-connector and the API may be causing streams to be marked as 'inactive' erroneously when a stream is started and stopped in quick succession. This is causing customers to see only one rendition in their players, causing confusion.
We should do some tests in order to recommend to customers some amount of time to wait before stopping and restarting streams.
It is currently unclear if this is a display issue (i.e. transcoding is happening normally) or if no transcoding is happening. Step 1 is to investigate whether or not transcoding is happening.

@victorges What do you think about calling this resolved now? Seems like Dave is in good shape.

Seems to be that same b-frame issue after all. The problem happened when the user streamed a video that had been recorded by a previous Wowza deployment of them, which would not surprise me if they contained some B-frames after all.


Update Robot and Marbles to run in Google Colab

Update all the robot and marbles tutorials so that they immediately run in Google Colab from a URL like https://colab.research.google.com/github/BlockScience/cadCAD/blob/master/tutorials/robot-marbles-part-1/robot-marbles-part-1.ipynb
This would require adding a cell in the notebook that pip installs cadCAD
%%capture #avoid printing the output of pip install
!pip install cadCAD

Add direct links to the top of every notebook and to the README

Moved https://github.com/cadCAD-org/demos/issues/3


Possible font weight solution

By adding fontWeight to KeyboardAppearanceProvider, the default behavior of font weights can be set along with the current text and font options.
There is a corresponding pull request in the SwiftUI repo.

Great additions, thank!
However, if I were to merge these two PRs, the images would not get a light font weight anymore, right?

Great additions, thank!
However, if I were to merge these two PRs, the images would not get a light font weight anymore, right?

DemoKeyboardAppearanceProvider provides the light font weight for actions with images now in the SwiftUI demo app.  There's no way to do a similar check StandardKeyboardAppearanceProvider or in the UIKit demo app because the extension that gives actions standard images is only in the SwiftUI library.  However, the UIKit part of the library doesn't even use system images by default because it's still targeting iOS 11/12, right?

DemoKeyboardAppearanceProvider provides the light font weight for actions with images now in the SwiftUI demo app.  There's no way to do a similar check StandardKeyboardAppearanceProvider or in the UIKit demo app because the extension that gives actions standard images is only in the SwiftUI library.  However, the UIKit part of the library doesn't even use system images by default because it's still targeting iOS 11/12, right?

Short answer: yes!  Images still get light font weight in the SwiftUi demo app 👍🏻

Short answer: yes!  Images still get light font weight in the SwiftUi demo app 👍🏻

I'll add a fallback to the view, so that custom weights is applied, but the old .light toggle still exists.

I'll add a fallback to the view, so that custom weights is applied, but the old .light toggle still exists.


Markdown guidance

Following a discussion with @jamietanna here, should we have some guidance around markdown, even if that's to say no preferences around usage?
I'm in favour of setting a max line length and using breaks within a sentence as I find it makes using the terminal and comparing changes in commits easier, but I do appreciate that's not easy to maintain with some editors including GitHub's web interface and some parsers/renderers handle differently. So, I'd happily follow guidance saying not to break sentences if it was noted and included somewhere, or maybe we note that there's no set guide as long as the output renders correctly?

Per my comment, I'd prefer that its not broken up, because then it allows i.e. the user's text editor to break it as appropriate, for instance if they need it to be broken at different limits to improve accessibility, as well as generally, I find it easier to read / edit when it doesn't need to be manually chopped and changed

@benthorner I remember this seem debate coming up in GOV.UK and us coming to an agreement (no max line lengths) do you know if that was documented anywhere? I wonder if it can feed into this

@kevindew I remember a discussion but not the context or the outcome, unfortunately. I thought it was in a PR but it might have been Slack. I've had a look at a load of PRs and can't see anything about it.
@OllieJC could you clarify what this issue is about? Is it about commit / PR messages, or anywhere we write Markdown e.g. READMEs?
Personal take: don't break lines manually except in commit / PR messages. Those two exceptions are partly out of habit, but they also seem to be the default behaviour of Vim, so let's go with the flow there.
In support of no line breaks: we force it (automatically) on code (on GOV.UK), so we shouldn't force it with Markdown either.

@OllieJC any additional thoughts on this?
We could add a page to the Style guides section if we think it will be useful to teams. If not, I'll close the issue


mypy: Fix strict-optional errors for test files.

Fix mypy --strict-optional errors in zerver/tests

Automated message from Dropbox CLA bot
@umkay, it looks like you've already signed the Dropbox CLA. Thanks!

@sharmaeklavya2  if you could review that would be great, thanks!

Merged after fixing a couple bugs, thanks @umkay!

(I think the bugs may have been rebase conflicts from someone else having adding some new code using an import you removed)


feat: add support for background and feature hooks

add fix UT
update test deps

Coverage increased (+0.08%) to 98.715% when pulling f6d685f23334d3359568bc7d34b33a76664d8e6a on feat/support-background-and-feature-hooks into 832525667d1c1b0e2c57f600f6401c2f85c3b942 on master.


Store password securely

Passwords should not be stored in cleartext but rather hashed and salted for security reasons (https://www.okta.com/blog/2019/03/what-are-salted-passwords-andpassword-hashing/). See the tutorial for how you hash and salt a password in PHP

This was handled in commit d68751e in issue #3


Add retry loop for internal::ConnectionImpl::ExecuteSql

We need to:

[ ] Implement the functionality.
[ ] Write a unit test verifying that it tolerates at least one transient error when idempotent.
[ ] Write a unit test verifying that it stops on the first transient error if not idempotent.
[ ] Write a unit test verifying that it stops on the first permanent error.
[ ] Write a unit test verifying that it stops when there are too many transient failures.

This is probably blocked by #271.

Fixed in #927


Attributes with slash

Hello. Could you look on my implementation of support slash on attribute.

Strange thing. It passed on my local mashine with ruby 1.9.3 @mlafeldt could you take a look.


refactor: rename kusionctl to kusion

related: #178

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Files with Coverage Reduction
New Missed Lines
%

pkg/engine/operation/parser/parser.go
3
75.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.09%

Covered Lines:
4578

Relevant Lines:
6329

💛  - Coveralls


Fix for issue #16

Only try to get the application context if the request property is found, otherwise fallback to HttpContext.Current as a last ditch attempt at getting a context which could also return null but hey, we tried...

Thanks for the pull request! I am so sorry for not looking at this sooner. I will merge this today.


Option for exchanging the visual differentiation for content / empty pages

Hi guys,
First, I want to express my appreciation for this extremely helpful and making-my-life-easier extension!
I was wondering if it's possible to add another option for exchanging the visual differentiation for content / empty pages. The reason is that in my graph, I have many more content pages than empty pages and I found gray background showed on almost everywhere on the page is a little bit annoying. However, gray ground is a great solution to identify the empty page so that I can dive into it and do some summarization there. So I want to have the exchange option for the visual differentiation.
Thank you for taking this request into account.

Hi,
I will considere this option for the next update, but in the meantime, you can add this CSS block on your [[roam/css]] page:
.rm-page-ref--link:has(+ span > sup.rc-notvoid-page),
.rm-page-ref--link:has(+ span + span > sup.rc-notvoid-page) {
  background-color: inherit;
}
.rm-page-ref--link:has(+ span > sup.rc-void-page),
.rm-page-ref--link:has(+ span + span > sup.rc-void-page) {
  background-color: rgba(128, 128, 128, 0.1);
}

Hi @fbgallet
It works! Thank you so much for such a quick reply!


Manim write text out of the window

Describe the error
When I use the Scene TextExample found here, only part of the text show up. I need to zoom out to see everything, and when I save the video, I can only see like I haven't zoom out.
Code and Error
Code:
This Scene TextExample.
Error:
Can't see some words.
Environment
OS System: Windows 10
manim version: Release 1.0.0
python version: 3.9.4

This is the output:
https://user-images.githubusercontent.com/73761711/115927849-665e6500-a485-11eb-95d2-fd50e69fe841.mp4


Support for 32 Bit Windows Users

we cant run the editor because its not supported, please provide support to 32 bits

Version 2.4 of the editor was compiled as AnyCPU, meaning that it should work on x32 and x64 machines. Are you having issues with launching the latest version on your x32 machine and if so, what kind of error is being shown?


All Contributors

I believe that a good way to value project developers is to use https://github.com/kentcdodds/all-contributors that allows all employees to be rewarded for any task they may perform. What do you think? Can we implement this here?

I believe that this could work.

https://www.freecodecamp.org/forum/t/announcing-our-freecodecamp-2018-top-contributor-award-winners/201353
FCC has literally thousands of people who contribute to our community by leading discussions, helping each other, sharing resources, reporting bugs, and so on. A running list of them would be totally unmanageable. However, FCC has begun naming "Top Contributors" annually and they do not consider code contributions alone. Community moderators, video creators, and article writers and editors were included in the 2018 Top Contributors list.

Hi @MatheusRV
Thanks for the feedback.
@ArielLeslie is right. There are tens of thousands of contributors, who help us with our publications, forum, youtube channels, study groups and chat rooms.
As much as we would love to reward every contribution, the scale of the contribution has lead us to take certain rationale.
We have already broken the pull request tab of this repository that simply says 5000+. Adding a PR for each contributor increases the complexity to a scale that is beyond what we can comprehend here.
We could never, confirm each addition for their involvement without a misjudgement, hence making the effort somewhat futile.
The best way we have found to reward is by recognising hundreds of top contributors across the entire community and not just code, who have spent time and efforts continuously for a certain period of time.
We have started a series of top contributors parties, as a gesture for their sincere efforts in making the community what it is.
You can read more about it in the announcement linked in the previous post.
This recognition of top contributors is yearly. We award them with a badge like so:

Thanks a lot for your feedback.

@raisedadead there is a CLI for that (https://github.com/jfmengels/all-contributors-cli)

Any tooling will not serve the purpose of adding all the contributors across all our communities, a large no of whom are not even working on GitHub in any way. Offline Study groups, Youtube, Reddit etc.
Again, the spec will just add them on GitHub, which is just one small part of the entire community.


How to reproduce zero-shot performance?

NDT2 is a great job for neural decoding! With the detail exp configs, it's convenient to reproduce most result showed in paper. But I got stucked in reproducing the zero-shot performance(subplot 1 in Figure 13)

Here was my attempt to do this:
Using dataset.eval_ratio=1 to guarantee zero-shot，and use all Indy sessions to pretrain and supervised finetuning. My max eval R^2 is 0.168，which has a great gap to 0.7.

Could you please help me to figure this out? Specific exp config, wandb run id or reproduce steps would be a great help! Thanks.

Sorry for the delay. I'm not immediately sure what might be happening, but let me try to trace down the configs for you.
https://github.com/joel99/context_general_bci/blob/main/scripts/figures/intra_decode.py#L250 shows the line that generated the zero-shot datapoint. This corresponds specifically to the following run: https://github.com/joel99/context_general_bci/blob/9c17b374af15abcdc294ea35cc6f2d91431a0d18/scripts/figures/intra_decode.py#L29, so you can find the wandb run here:  https://wandb.ai/joelye9/context_general_bci/runs/wc24ulkl/overview
I hope this helps with reproduction. Please ping my email if I'm not responding here.


Create privacy page

At present we do not have any analytics enabled that require us to comply with GDPR and/or point people towards a privacy statement. It would however still be nice of us to tell people in the interest of transparency.
For this, a privacy page must be created and linked to in the footer. The contents of it could be as short as:

Note that we track visits to this website using Netlify server-side analytics. Because site activity is tracked anonymously without cookies or personally identifying information, Netlify Analytics is fully GDPR compliant.

I just checked all graduated CNCF projects, none of them has a privacy page, but all of them say this at the bottom of the page:

Documentation Distributed under CC-BY-4.0
© 2021 The Linux Foundation. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page.

Maybe we could copy relevant bits from https://www.linuxfoundation.org/privacy/?

I just checked all graduated CNCF projects, none of them has a privacy page, but all of them say this at the bottom of the page:

Documentation Distributed under CC-BY-4.0
© 2021 The Linux Foundation. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page.

The section below has been added.