[Wav2Vec2] Zero-shot Transfer model on Common Voice - Espeak version for Chinese

❓ Questions
Hey Quintong, @alexeib, @michaelauli,
Thanks a lot for open-sourcing the model weights of your recent paper Simple and Effective Zero-shot Cross-lingual Phoneme Recognition!s
Since Espeak-ng has split Chinese support cmn to cmn and cmn-latn-pinyin to support pinyin inputs, however in the latest version 1.51 cmn has the bug to predict the tone (which treats the tone as number), like the case for "你好" ("ni3 hao3" for pinyin) in version 1.51:
espeak-ng -v cmn "你好" -x --ipa=1
espeak-ng -v cmn-latn-pinyin "你好" -x --ipa=1
espeak-ng -v cmn-latn-pinyin "ni3 hao3" -x --ipa=1

and the result is below:
(en)_n_ɪ5_θ_ɹ_ˈiː5_ h_ˌeɪ5_ə5_θ_ɹ_ˈiː5_(cmn)_
n_ˈiɜ_ χ_ˈɑu2_
n_ˈiɜ_ χ_ˈɑu2_

Furthermore, I test the XLSR-53 model to predict IPA for Chinese speech, the test case in Chinese text is 宝马配跛骡鞍，貂蝉怨枕董翁榻。 and the result is:
pɑu5mɑ5piɛ5kwɑ5plu5a5ntjɑu5tɕha5njiɛ5ntɕiɛ5ntonɡ5vəɜŋpɑ5

and I use the Espeak-ng v1.51 to convert the text back to IPA is this (after text clean for _ and ˈ):
pɑuɜmɑ2phei5po2luoɜa5ntjɑu5ts.haɜnyæ5nts.əɜntonɡ2wuə5ŋthɑ5

which is not consistent with the prediction. So I believe the reason is that the Espeak version I used is not the same in your implementation. Could you tell me the Espeak version that you used and the command or script for Chinese?
Thanks a lot!

Hi @happylittlecat2333,
I should have used v1.50 of espeak. I used cmn for Mandarin and yue for Cantonese.
Some example outputs

Thanks a lot @xuqiantong - that's super useful!

Hey Quintong, @alexeib, @michaelauli,
Thanks for your information. I changed the espeak version to v1.50, but I found a significant bug in Chinese tone for pronunciation. The problem is also described in espeak-ng issues. The IPA transcription result seems wrong for the languages with tone changes(e.g., Chinese mandarin).
Some example outputs
from espeakng import ESpeakNG

esng = ESpeakNG(voice='cmn')
ipa = esng.g2p('镜子', ipa=1)    # "jing4 zi5" for pinyin
print(ipa)
ipa = esng.g2p('经过', ipa=1)    # "jing1 guo4" for pinyin
print(ipa)
ipa = esng.g2p('妈 麻 马 骂', ipa=1) # "ma1 ma2 ma3 ma4" for pinyin
print(ipa)
ipa = esng.g2p('jing1 jing2 jing3 jing4', ipa=1)
print(ipa)

tɕ_ˈi5_ŋ_ ts_i̪1_
tɕ_ˈi5_ŋ_ k_ˈuo5_
m_ˈɑ5_ m_ˈɑɜ_ m_ˈɑ2_ m_ˈɑ5_
tɕ_ˈi5_ŋ_ tɕ_ˈiɜ_ŋ_ tɕ_ˈi2_ŋ_ tɕ_ˈi5_ŋ_

You can see that the result for the second character '麻' introduced a new vowel ɜ(Unicode 025C).
And the tone changes are represented as 5, none, 2, 5 for each character respectively.
For "jing1" and "jing4" espeak converted them to the same pronunciation "tɕ_ˈi5_ŋ_".
According to Wikipedia, this doesn't seem right, so I checked other representations.
If we do not use IPA, the tones are correct
ipa = esng.g2p('妈 麻 马 骂')
print(ipa)
ipa = esng.g2p('ma1 ma2 ma3 ma4')
print(ipa)

m'A55_| m'A35_| m'A21_| m'A51_|
m'A55_| m'A35_| m'A21_| m'A51_|

Here, the system correctly identified the same vowel [A] for all characters and accurately distinguished tone changes.
So, I think the problem is the conversion script for IPA transcription. I also test espeak version v1.51 and found that the bugs still remain.  So do you have any suggestions or advices for this bug?
Thanks a lot!


Fail to pick image using image_picker plugin on Android 10

In Android 10, there is a problem that images cannot be loaded from the gallery using the image_picker plugin.
https://github.com/flutter/flutter/issues/40339
This seems to be due to Android 10's external storage access policy.
I solved the problem by adding the requestLegacyExternalStorage property to the AndroidManifest file.
It would be nice if the content was added to the readme page of the image_picker plugin.

Duplicate of #40339


Update sbt-stryker4s to 0.16.0

About this PR
📦 Updates io.stryker-mutator:sbt-stryker4s from 0.14.3 to 0.16.0
📜 GitHub Release Notes - Changelog - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.stryker-mutator", artifactId = "sbt-stryker4s" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "io.stryker-mutator", artifactId = "sbt-stryker4s" }
}]

❗ Note that the Scala Steward config file `.scala-steward.conf` wasn't parsed correctly
DecodingFailure at .pullRequests.frequency: cron4s.InvalidCron: Either DayOfMonth and DayOfWeek must have a ? expression

labels: sbt-plugin-update, early-semver-major, semver-spec-minor, version-scheme:semver-spec, commit-count:1

Superseded by #124.


Missing pasta executable

Hi,
I'm setting up podman to run my containers through systemd. The command that actually runs is:
/usr/bin/podman run --name=systemd-trader-portal --cidfile=/run/user/1000/trader-portal.cid --replace --rm --cgroups=split --sdnotify=conmon -d<PHONE_NUMBER>48.dkr.ecr.us-east-1.amazonaws.com/trader-portal:main

When I run this command myself, I see the following error:
Error: could not find pasta, the network namespace can't be configured: exec: "pasta": executable file not found in $PATH

I'm not sure if this is something I'm supposed to install on my own, or if it should be provided by this role.

This is because alvistack.containers_common will handle passt install, see https://github.com/alvistack/ansible-role-containers_common/blob/master/vars/ubuntu-22.04.yml#L32
Moreover, you could refer to https://github.com/alvistack/ansible-role-podman/blob/master/ansible-galaxy-requirements.yml and https://github.com/alvistack/ansible-role-podman/blob/master/molecule/default/converge.yml for the exact Ansible dependency.


PS7 should also respect the old Windows PowerShell GPO registry settings

Summary of the new feature/enhancement
As part of the side-by-side work for PSCore6, PSCore6 uses a different set of registry paths for GPO policies.  This means admins can set policies separately for Windows PowerShell vs PowerShell Core, but makes it more difficult to manage.
Proposed technical implementation details (optional)
For PowerShell 7, pwsh should look in both paths.

Which policy take precedence?
What if the lower precedence policy says to implement a higher security policy than the higher precedence policy?
We already have the configuration file with the PowerShell Configuration RFC to resolve these, which leads to many issue.

In all honesty I think that this should be set to a single location in the v7 timeline unless there is a real need to have different settings applied to Windows PowerShell and PowerShell Core.
With preference being set to apply GPO settings above & additionally to config file settings as this would allow admin defined and user defined settings to work in tandem with no issue, especially when it comes to transcription

For PSCore6, we explicitly wanted side-by-side so it's GPO settings were in a different registry path than Windows PowerShell.  However, since we are positioning PowerShell 7 as a replacement for Windows PowerShell, users would expect existing GPO to take effect with PS7.  In the case that both the WnPS and PSCore6 GPO settings are set, we should default to the most strict interpretation and log it appropriately.  Since we don't know how many users are using the PSCore6 GPO settings, I don't think we can just ignore them since 7 is an iteration over 6.

Considering the v6 GPO settings had not been well documented I personally would not expect that many people would be using them.
Also, I personally can't see what benefit having different locations would have brought, other than offering unnecessary complexity & not having a singular location for items like transcription logging which causes 6 not to be caught by users that had set up the GPO locations on existing environments.
This means that currently there is the potential that a malicious actor can install PS v6 in an environment that has implemented the PSv5 over the shoulder transcription logging settings (either via GPO or via RegEdit / PowerShell Script/DSC to add needed reg keys) and find that they have been subject to a breach that has used Pwsh and they have no visibility of this due to the Registry location changes.
Changing this, to me was the wrong decision, and as such I personally think the v6 locations should be deprecated and the v5 ones be the only ones used in PSv7 as this enforces a catch all scenario that would catch PSv5, PSv6 (if you re-released all versions with this change back) and then also PSv7 too going forward too.

For those reading this and have used the Registry Keys in https://devblogs.microsoft.com/powershell/powershell-the-blue-team/ for Psv5
There was a change in the v6 time line that changed where these reg keys were set to be different and as such broke Over the Shoulder Transcription when using these keys
You can use the below gist to enable this properly for both PSv5 and Psv6 on windows machines
https://gist.github.com/kilasuit/e7c276ca67929ae54369f726877dab08#file-enable-overtheshoulderpstranscription-ps1
You can also use this configuration in PowerShell.config.json in the PowerShell Location ( C:\Program Files\PowerShell\6\powershell.config.json)
https://gist.github.com/kilasuit/e7c276ca67929ae54369f726877dab08#file-powershell-config-json
Note though that you can use either the powershell.config.json or the Registry keys, as in my testing with both being defined, the regkeys take preference and Override the powershell.config.json with 6.2.0
Ideally I would like it to use both to force transcription set via GPO / RegKeys to 1 location and via the PowerShell.config.json file to be set to another location that I specify.
This would allow both Admin over the shoulder transcription and user level over the shoulder transcription to run in parallel and provides the greatest level of flexibility for both Admins and Users, without users requiring to Add  Start-Transcription into their PowerShell Profiles.

@PowerShell/powershell-committee reviewed this.  Recommendation is to keep the policy settings separate between WinPS and PS7.  It would be confusing to see Windows PowerShell when looking for PS7 settings and also new settings for PS7 may come up that wouldn't apply to WinPS5.1.  For PS7, we should have an option per setting to "Use Windows PowerShell Policy" so that users can set it for WinPS5.1 and have it respected by PS7.  However, if WinPS5.1 ever gets removed, then PS7 policy would be equivalent to not set so could be problematic.  Request is to have RFC authored for this.

RFC was created:  https://github.com/PowerShell/PowerShell-RFC/pull/180

Fixed via https://github.com/PowerShell/PowerShell/pull/10468


WIP: extend and robustify WAIC

This PR implements all the work Josh and I have done to do online WAIC calculation and add marginal WAIC and grouped WAIC.
It takes the code Josh wrote for his thesis (which was all embedded in buildMCMC) and reorganizes to create a buildWAIC nf with relevant methods per dev meeting discussion 2021-02-08. Also changes some naming and reorganizes the return list of WAIC-related quantities. Finally, it sets up configureMCMC, buildMCMC, runMCMC and nimbleMCMC to work with the new implementation.
Off-line WAIC with calculateWAIC is retained for back compatibility (if one sets enableWAIC and turns off online WAIC via control$onlineWAIC = FALSE.
Still to do:

update the manual
add tests.

Open questions that I'd like feedback from Perry and Daniel on eventually (not needed at the moment):

the return value is an extensive list containing some pieces that are not used in many cases; other approaches?
naming of return elements, control list elements, and methods could use a second eye
should I be predefining C++ code for the waicList? Perhaps related, if I recompile the MCMC without recompiling the model, I get a compilation error related to the waicList.
the WAIC is a single nimbleFunction not a nimbleFunctionList. I'm not entirely clear if there is a need for it to be a nimbleFunctionList.
how should we modify the printing out of MCMC configuration information to mention WAIC (and possibly if marginal and grouping is used)
to allow users to assess convergence of WAIC, we may want to allow users to get WAIC for each chain when using multiple chains. For now, I get an aggregated WAIC. Could also let users specify that they want to see how WAIC varies within increasing number of MCMC samples (similar to use of convergenceSet) but that is going to make the inputs and outputs even more complicated.

One thing to think about is that while online calculation is great, a user has to commit to their burnin in advance. We could comment on this in our docs. If we really wanted to we could also add marginal WAIC and grouping to the calculateWAIC "post-hoc" functionality.

@guhauhsoj this PR takes your work in the update_waic branch and rearranges it to use a nimbleFunction specific to WAIC that is used within buildMCMC. I did a bunch of renaming and some reorganizing of inputs and outputs, but the core calculations are as you had them. That said, there's a chance I might have introduced an error. If you have a chance and interest please take a look and see if you have any comments.
I also added some text to the chapter_MCMC.Rmd of the manual and info to the roxygen related to WAIC.

Some thoughts from a discussion amongst Perry, Daniel, Chris:

Piling everything into a big output list seems not optimal. How about having a small core list of main outputs, obtained by getWAIC and then a different get method that returns the more voluminous stuff in a separate list format.
Another suggestion was to provide an argument to runMCMC and perhaps nimbleMCMC controlling how much was returned, but I think we tentatively decided not to 'pollute' these functions with more arguments. At least for runMCMC a user can still call methods of the mcmc object that could call out to methods of the waic object. And we've always said that nimbleMCMC is only for high-level use.

@danielturek What would you think about one additional argument to runMCMC (but not to nimbleMCMC) that says whether the user wants per-chain WAIC or an aggregated WAIC. This would allow a user to get at uncertainty in WAIC in terms of posterior mixing if desired. Not sure what it would be called. Perhaps perChainWAIC. It would default to FALSE (i.e., aggregated WAIC).
Another option would be to change the  currentWAIC arg (currently a logical) to become a character string, one of "none", "all-chains", or "per-chain".

I just pushed a commit that splits the output list into a core list and a 'details' list. @danielturek @perrydv when you get around to looking at this (no hurry at all), see what you think.
I have not yet updated the roxygen or manual to reflect splitting the output given I'm not sure what we'll ultimately decide on.

@paciorek I'm still wading / working through this (there's obviously a lot to look at).  Brief comments for now, before the release, I wonder if maybe some review (and possible changes) to the naming conventions might be worthwhile - really  thinking about simplicity and consistency.  Ideas, among others, that came to mind:
Changing waicControl into controlWAIC, to better match with enableWAIC, and also the original control list.
Otherwise - Can we take this opportunity to fully remove the burnIn argument from the calculateWAIC method?  It's been unsupported and deprecated essentially since it was released, then immediately changed to nburnin.
Why the re-naming in the calcualteWAIC method, of logAvgProb to logAvgProbCalc, and WAIC to WAICCalc?
Why the line
contains = nimbleFunctionVirtual()

in the buildWAIC nimbleFunction?
Keep the marginalizeNodes control list element called that, rather than changing it to latentNodes in buildWAIC ?

Other aliases we might also add, to the Roxygen documentation: WAIC, and enableWAIC.

Maybe change the name of the nItsMarginal argument to niterMarginal, for better consistency with other MCMC arguments?

@paciorek @perrydv
Noting that buildMCMC executes the line:
waic <- buildWAIC(model, mvSaved, conf$waicControl)

regardless of whether WAIC is enabled.  I understand this is necessary for compilation of the MCMC, that the waic object be properly created.  But as a result, all of the code in buildWAIC is compiled for every MCMC, even if we're not using WAIC.
Could it instead look like (sorry if I mess up some syntax):
waicList <- nimbleFunctionList(WAIC_virtual_NF)
if(enableWAIC)   waicList[[1]] <- buildWAIC(model, mvSaved, conf$waicControl)  ## same as current
if(!enableWAIC)  waicList[[1]] <- buildDummyFunctionThatCompilesQuickly()      ## new

Then, both buildWAIC and buildDummyFunctionThatCompilesQuickly inherit from WAIC_virtual_NF, to make this work, and technically both contain the same methods.
Do we think this is worthwhile?
I'm coming from the angle that so many people seem to use the MCMC, it would be a shame to slow down compilation for everyone when only (what seems like) a small subset make regular use of WAIC.

Small preference that online and thin variables be accessed from the waic object using access methods:
methods = list(
    getOnline = function() {
        returnType(double())
        return(online)
    }
    getThin = .....   ## same
)

This also alleviates the need for the setupOutputs() call that's presently in buildWAIC setup function, which we basically never use.  And would lead to a simpler implementation of buildDummyFunctionThatCompilesQuickly from my previous comment, where the access methods could look like:
methods = list(
    getOnline = function() {
        returnType(double())
        return(0)
    }
    getThin = .....   ## same
)

I'm not sure, does
export(waicDetailsList)

need to be added to the NAMESPACE file also, in addition to export(waicList) ?

Responses to Daniel's helpful comments:

change to controlWAIC: done
removing burnIn: done.
As far as re-naming in the calculateWAIC method, of logAvgProb to logAvgProbCalc, and WAIC to WAICCalc, I think Josh might have done this. I'll revert the naming. Good catch.
As far contains = nimbleFunctionVirtual(), I think at one point I thought I needed that. I'll defer until we discuss point #8 below.
Keep the marginalizeNodes control list element called that: done.
Other aliases: done.
niterMarginal: done
I like the idea of avoiding unnecessary compilation by having a nimbleFunctionList. Let's discuss on Tuesday.
I'm fine with getThin() and getOnline. I understand the logic, but I'm guessing there are various other places in the system where we don't have getters.
NAMESPACE fix: done.

@danielturek just want to re-raise this with you from a comment above:
What would you think about one additional argument to runMCMC (but not to nimbleMCMC) that says whether the user wants per-chain WAIC or an aggregated WAIC. This would allow a user to get at uncertainty in WAIC in terms of posterior mixing if desired. Not sure what it would be called. Perhaps perChainWAIC. It would default to FALSE (i.e., aggregated WAIC).
Another option would be to change the current WAIC arg (currently a logical) to become a character string, one of "none", "all-chains", or "per-chain". Though if we changed the meaning of the WAIC arg, I guess we would want to do the same for that arg to nimbleMCMC.

Daniel and I agreed to add perChainWAIC as an arg to runMCMC with default of FALSE. This is now in the waic_update_nf branch. Per-chain WAIC only works for offline WAIC as doing it for online would involve a bunch of recoding and would complicate the WAIC output. Plus one can always get per-chain WAIC by simply running a loop.

@danielturek @perrydv This is a (hopefully) full and nearly final draft of WAIC, including implementation of  ideas for user-friendly offline WAIC that we discussed back in July. I still need to look it over to think about corner cases in terms of how a user might access WAIC, but given the short timeline to release I thought I'd point you to it if you'd like to take a look. I suspect Daniel particularly will like to see the full interface. Any feedback or thoughts on cases I might have missed are very welcome.
Ignore the test failures; I don't expect them to be substantive.
The key changes are:

online WAIC is the default if one has enableWAIC=TRUE in configureMCMC or buildMCMC. For online WAIC there is now the multitude of different cases we handle (marginal vs. conditional, grouped data nodes vs. ungrouped) that Josh and I worked on and that I put into this branch back in July.
one can get our former offline behavior with enableWAIC = TRUE and controlWAIC = list(online = FALSE). This modality now uses an offline WAIC nf (buildOfflineWAIC) that is built within buildMCMC. The original WAIC calculation code formerly in mcmc$calculateWAIC has been moved to the run method of the buildOfflineWAIC.
I have added a standalone function (not nimbleFunction) called calculateWAIC that can be applied to an MCMC or a matrix of samples without having to enabled the WAIC at the time of building the MCMC. This function calls buildOfflineWAIC and runs the resulting compiled nf to do the calculations and return the simple WAIC output that we currently produce. Side note: this will fail gracefully if the needed variables were not monitored in the MCMC. I believe this is the additional functionality we decided we wanted at our July conversation about WAIC.
When we run multiple chains, one can get WAIC for each chain individually if using offline WAIC per the previous note in this PR.

roxygen and manual are updated for online WAIC but not yet for the new post hoc offline WAIC functionality.

I tried to look at all code in this PR.  Mostly minor comments below.
Looks like changes to UserManual/src/UserManualRefs.bib have evidence of an old merge conflict at the very end (line 258)
User manual chapter_MCMC.Rmd line 457, ".... or a matrix containing posterior samples..."
Line 646 of the same file has the wrong name for the NIMBLE option, it should read "MCMCenableWAIC".
Commented lines of code in MCMC_WAIC.R?  Beginning on like 105, ending on line 158?  Looks like this belongs in nimbleList_core.R ?
Logic behind the default iterations for calculating marginal WAIC being 1000?  It's fine with me, I have no problem with this, just wondering what that's based on?
Maybe this is too in the weeds.  But, if a model has dependence structure as:
theta -> latent1 -> latent2 -> data
and we only want to marginalize over latent1 for calculating marginal WAIC, then I think the code in MCMC_WAIC.R lines 197-200 won't handle this correctly.  In this case, the marginalizeNodes vector over which to integrate for calculating marginal WAIC will include latent2, not what the user wanted.  (affecting calculations on lines 264-265).
The user-facing options look good.  Complicated, but providing many options.  This is an extensive revision of WAIC (understatement), and it's a lot to digest.  But I have no additional comments about the options provided to users (which seem to be encompassing of anything I can think of), and the additions of the dummy WAIC function in  buildMCMC, and also the option for post-MCMC (offline) calculation of WAIC from the MCMC, or from a matrix of posterior samples, are good additions.
LGTM, pending comments above.

@danielturek thanks, I've fixed all of these issues.
As far as 1000 it is ad hoc based on a small number of example models Josh was trying. But we do give the user the ability to change it and to realize it is too few.
Good point about two sets of latents. We could think about redefining 'data' nodes to be all downstream stochastic nodes including latent2 in your nomenclature (i.e., how well can we predict latent2 rather than the actual data, which wouldn't be affected by changing latent1). But I'm not sure whether WAIC as formally defined includes this case. So I think we should leave ti as it is and add a warning if we find additional latent nodes.

@danielturek @perrydv I'll merge this in unless and lingering thoughts.

@guhauhsoj We've finally merged in all the WAIC work -- thanks again for your work on this. You'll see that while the user interface is different than when you last added code, it's all built around the core numerical implementation that you provided.


Time Inject - Incorrect time

Describe the bug
A clear and concise description of what the bug is.
2 Time inject nodes with settings shown in attached screenshots both show the same time in status and both trigger at this time.  One node has a time offset of -20 minutes.
Screenshots
If applicable, add screenshots to help explain your problem.

Expected behavior
A clear and concise description of what you expected to happen.
Expect nodes to display correct status and trigger at the appropriate times.
System information (please complete the following information):

Node Version 1.1.6
Node-Red Version 1.1.3

Additional context
Add any other context about the problem here.
Restarted HA and Node-Red.  Issue still there.

Tried adding a new Time-Inject.
Set a time to 13:00 and added 10 minutes offset.
The 10 minutes are not added.  Status shows 1:00:00.
Adding -10 minutes offset and the status shows 12:59:59

Hello, same issue here - in 1.1.3 it was still working. Since upgrade to 1.1.6 it does not calculate correctly.

Is it possible to downgrade to 1.1.3?

As far as I know you can simply uninstall the new version
npm uninstall node-red-contrib-sun-position
and install old version as specific via command line (not possible via gui/palette)
npm install<EMAIL_ADDRESS>You should check if the changes between 1.1.3 and 1.1.6 affect you before doing.
Npmjs.com says there is 1.1.3

I cannot remove node-red-contrib-sun-position if it is being used.
I don't fancy deleting all the nodes I'm using from the palette.
Also, as you say, I don't know if the changes affect my flows.

you have to uninstall via console then the used nodes are not checked - afterwards restart nodered and you have the old version back. If it was working before the update to 1.1.6 then it should work. But make a complete backup to be sure.

Node red is an addon to Home assistant.  Can't use the console.

I have the same with RaspberryMatic (RedMatic) but I can use SSH to login to console - there should be something simmilar on Home assistant but if you are not familiar with it I guess you have to wait for the update.

I can ssh but Hassio has limited commands.

In the following screen grab, sunset is at 19:27:27.
The tooltip shows that the 10 minute offset is added but somehow it is not used when the node is triggered.

I'm seeing this as well. I've got the sunset offset by -30 and it's not changing.
The within time node (which I presume is yours as well) does correctly offset the time.
Latest version of enhanced inject.
Here is a screenshot of the appropriate details from the node:

As an interim solution I'm using:
https://flows.nodered.org/node/node-red-contrib-eztimer
This seems to work well, but it doesn't have the same flexibility as the Time-inject node.

Please reopen issue if Problem still occurs in Version 1.1.7


os: remove 5ms sleep on Windows in (*Process).Wait

In our Windows implementation of os/Process.Wait, we always do a 5 millisecond sleep:
func (p *Process) wait() (ps *ProcessState, err error) {
	handle := atomic.LoadUintptr(&p.handle)
	s, e := syscall.WaitForSingleObject(syscall.Handle(handle), syscall.INFINITE)
	switch s {
	case syscall.WAIT_OBJECT_0:
		break
	case syscall.WAIT_FAILED:
		return nil, NewSyscallError("WaitForSingleObject", e)
	default:
		return nil, errors.New("os: unexpected result from WaitForSingleObject")
	}
	var ec uint32
	e = syscall.GetExitCodeProcess(syscall.Handle(handle), &ec)
	if e != nil {
		return nil, NewSyscallError("GetExitCodeProcess", e)
	}
	var u syscall.Rusage
	e = syscall.GetProcessTimes(syscall.Handle(handle), &u.CreationTime, &u.ExitTime, &u.KernelTime, &u.UserTime)
	if e != nil {
		return nil, NewSyscallError("GetProcessTimes", e)
	}
	p.setDone()
	// NOTE(brainman): It seems that sometimes process is not dead
	// when WaitForSingleObject returns. But we do not know any
	// other way to wait for it. Sleeping for a while seems to do
	// the trick sometimes. So we will sleep and smell the roses.
	defer time.Sleep(5 * time.Millisecond)
	defer p.Release()
	return &ProcessState{p.Pid, syscall.WaitStatus{ExitCode: ec}, &u}, nil
}

Sleeps in code are always gross. They're either too fast (and still flaky) or too slow (incurring extra delays on everybody when not needed).
This bug is about figuring out what we're doing wrong on Windows that made us need that sleep in the first place.
https://go-review.googlesource.com/c/go/+/84175 was one attempt to remove it, but the goal then was fixing a Windows XP test failure (for #17245), and it didn't fix the XP failure. We no longer support XP, though, so maybe that CL is okay now.
But maybe it's not correct.
There was also https://golang.org/cl/84896 from @johnsonj to use jobs to wait for process completion on windows, but it was "not working as expected on Server 2008" and @alexbrainman had concerns in https://github.com/golang/go/issues/17245#issuecomment-353811567 (that whole thread is worth a read, even if it's mostly about debugging an XP issue, which might've been related to this bug.)

If you do not delete executable file immediately after its process exits, then you could remove that 5ms sleep, and nothing will change for you.
So we really need that extra sleep mainly to make cmd/go work properly, because cmd/go runs programs and deletes them immediately.
Perhaps we could move that 5ms sleep from os package and into cmd/go code.
Alex

It should be possible to delete a file after it finishes executing, for any program, not just cmd/go.
This bug is about figuring out what synchronization we're missing.

This bug is about figuring out what synchronization we're missing.

I understand that. I was suggesting what to do in case we cannot find such synchronization.
Alex

Is the sleep needed on every process we want to wait on?
WinApi docs state that

... if you have a thread that creates windows, use MsgWaitForMultipleObjects or MsgWaitForMultipleObjectsEx, rather than WaitForSingleObject.

We might want to use a different wait method on windows?

When I tried to remove the sleep in https://go-review.googlesource.com/c/go/+/84175 I was doing it mostly for debugging Windows XP problems (#2866 and #17245), and it apparently didn't work.
But we don't support Windows XP anymore, so maybe we can remove it now?
But I forget everything about Windows I had learned while researching that patch.
/cc @alexbrainman @jordanrh1

I've seen a lot of code that waits on a process handle, and none of it sleeps. It would be a major bug if you couldn't trust a process handle to be signaled at the right time, and would surely be fixed. The sleep must be masking a problem somewhere else. I'm all for removing the sleep and seeing what shakes loose.

I'm all for removing the sleep and seeing what shakes loose.

SGTM
Alex

@bradfitz @jordanrh1
CL 145221 have broken windows-2008 builder - latest snapshot of https://build.golang.org/

Even one failure on windows-2012 https://build.golang.org/log/d37c2bad6c49d20fe4bec6f1a8d380e583ea79e8
What should we do now?
Alex

Haven't we seen those errors in the past, though? I guess removing the 5ms sleep just makes them more likely?
Is there some other handle we're not closing quickly?
@jordanrh1, could you audit some of these code paths and make sure we're doing things right? (clearly we aren't)

I'm not seeing anything obviously wrong with the code, but these are the things I'm suspecting:

might be behavior of OS that it signals process handle before files are released
might have to do with stdout/stderr handles
might have to do with child processes
might be a code defect in os.exec

To rule out (1), I want to see if I can repro the issue with a simple C program. If it is (1), then a Sleep may be the best solution, especially if Go's contract is that all files used by the process are released by the time Wait() returns.

Haven't we seen those errors in the past, though? I guess removing the 5ms sleep just makes them more likely?

Yes, these errors happens more often. Maybe it was happening on Windows XP is even more often.

Is there some other handle we're not closing quickly?

I think that once process handle is signaled - syscall.WaitForSingleObject returns - the process is exited. So opened handles could not matter here. But I could be wrong about that.

I'm suspecting:

might be behavior of OS that it signals process handle before files are released
might have to do with stdout/stderr handles
might have to do with child processes
might be a code defect in os.exec

To rule out (1), I want to see if I can repro the issue with a simple C program. If it is (1), then a Sleep may be the best solution, especially if Go's contract is that all files used by the process are released by the time Wait() returns.

I do not see how to write similar C program for (1). The program that fails is cmd/go tests - how do you write C program that imitate cmd/go test?
I don't see how it could be related to (2). Like I said above, we wait for syscall.WaitForSingleObject on process handle to return, so whatever handles process opens, they should be all closed now. And when new process starts, we use syscall.DuplicateHandle to create stdin, stdout and stderr handles for child process and close the handles immediately - see syscall.StartProcess for details.
I am not sure what to say about (3) and (4).
Should I revert CL 145221 in the meantime?
Alex

Should I revert CL 145221 in the meantime?

Sure? Super sad, but we don't have good short-term leads.
If you do, please reopen this bug and reference both this bug in the commit, and #23171.
/cc @aclements

I do not see how to write similar C program for (1). The program that fails is cmd/go tests - how do you write C program that imitate cmd/go test?

How about creating an executable file (probably by just making a copy of an existing executable), run it, WaitForSingleObject, and then try to delete it, and do that in a loop? If the theory is that Windows signals the process handle before releasing the file, that should test it.
Is there any way to wait for locks on a file to be released? We can't just do that unconditionally here (there could be other copies of the binary running, too), but maybe we could make remove willing to block for a little while if the file is locked before failing?

Yes, what @aclements suggested.
I should mention that I don't have any cycles to test this until the 19th.

reopen this bug and reference both this bug in the commit, and #23171.

https://go-review.googlesource.com/c/go/+/148957

How about creating an executable file (probably by just making a copy of an existing executable), run it, WaitForSingleObject, and then try to delete it, and do that in a loop?

I will try to do what you have asked. I would not be surprised, if the system configuration or OS version will also matter here - imagine, if you have an antivirus program eager to catch executable with virus in them, or another "helpful" service.

Is there any way to wait for locks on a file to be released? We can't just do that unconditionally here (there could be other copies of the binary running, too), but maybe we could make remove willing to block for a little while if the file is locked before failing?

I am not sure what locks you are talking about. Please, explain more.
All errors, we see here, happen during cmd/go test. Perhaps, the exe in questions starts itself as a child, and then parent process exists, and we notice parent exit, but do not wait for the child? But all examples of faults are simple run of a program - they do not look like starting any child processes.
Alex

I will try to do what you have asked.

I created github.com/alexbrainman/winapi/tree/master/issue25965.TestIssue25965
The test runs required exercise for both Go version (only syscall package is used) and C version. The test fails immediately on my Windows 7 computer. But it was much harder to make it fail on my Windows 10 computer - I managed to make it fail after I added a loop of 100 iterations around the test - so be warned that the test might take a while to run. Anyway my Windows 10 output looks like this:
c:\>u:\test
PASS

c:\>u:\test
--- FAIL: TestIssue25965 (84.83s)
    main_test.go:166: running c exe failed: exit status 1 iteration 56: CopyFile failed (5)
FAIL

c:\>u:\test
--- FAIL: TestIssue25965 (92.83s)
    main_test.go:143: iteration 83 failed: CopyFile: Access is denied.
FAIL

c:\>u:\test
--- FAIL: TestIssue25965 (64.27s)
    main_test.go:166: running c exe failed: exit status 1 iteration 14: CopyFile failed (5)
FAIL

c:\>

Let me know, if you want me to do anything else.
Alex

Keep in mind that users with a poorly implemented anti virus installed may get the issue "executable binary is locked a bit after the process exited" anyway, independent on how solid you do the implementation here.
I haven't tested but I think the right solution (if it works) would be:

Create the executable with FILE_FLAG_DELETE_ON_CLOSE, do not close the handle.
Launch the program.
Wait for the program to quit.
Close the handle.
When all handles are closed, the file would be deleted. That said, the file deletion is still asynchronous ¯_(ツ)_/¯. If you want to wait for the file to be effectively deleted, you'd have to wait for it and that's more work.

My proposal assumes FILE_SHARE_DELETE is usable, as requested in #32088.

Keep in mind that users with a poorly implemented anti virus installed may get the issue "executable binary is locked a bit after the process exited" anyway, independent on how solid you do the implementation here.

I agree.

I haven't tested but I think the right solution (if it works) would be:

I wasted enough time here. If you want to try and implement this, go ahead. We will review your code.
Alex

Thanks, anyhow I'd prefer this to be slated on go1.14 since it's a significant behavior change that could have subtle behavior impact so I'll plan to work on this later.

I'd prefer this to be slated on go1.14 since it's a significant behavior change that could have subtle behavior impact so I'll plan to work on this later.

SGTM.
Alex

This comment was originally part of a discussion in "syscall: starting a process with large number of arguments is way too slow #41825". It was suggested that I also post it here:
Thoughts on the 5ms delay:
I have been assured in past conversations with the Go team that without the delay errors sometimes occur when deleting the executable immediately after return from process wait.
A comment in the code says "// NOTE(brainman): It seems that sometimes process is not dead when WaitForSingleObject returns...."
I suspect that a more accurate statement would be "the process is complete but the executable has not yet been closed".
Is the contract of "wait" that the executable is closed on return?
By far most external process launches don't care whether the executable is closed before completion is signaled. Closing of the executable is part of the OS's cleanup after running a process and may be done concurrently after wait returns -- the caller should not have to wait for that cleanup given that it is usually not necessary to wait.
For Windows, those few programs that run processes and then delete the executable (such as "go run"?) might have to deal with an executable that is still open. Note that Unix does not have this concern, since it's OK to remove an open file (then the file is later physically deleted by the OS as soon as it has no openers left).
Suggestion:

remove the unconditional 5ms delay
in the few programs that want to delete the executable after completion, the client should:

be sure to check the status of the deletion operation
if error:

retry a few times, with a small delay between retries (assuming that the executable will soon be closed)
give up if success does not happen soon, announcing the failed deletion (if possible)

This suggestion does require that client programs take care if they want to delete the executable, I would say that programs that don't are relying on undocumented behavior -- I have seen no promise in the documentation that the executable is closed on return from Wait.
Random thought:
Offer an alternative Wait function: WaitAndRemoveExecutable ??

I've given another shot with CL 463840. It's novel approach is that it calls WaitForSingleObject not on the handle itself but on a handle with SYNCHRONIZE rights. Well, this thread is quite long, so it might also been tried before, but if someone did, I haven't seen it.

The contract of  WaitForSingleObject is to wait until the process
is complete. It is NOT to wait until the executable file has been closed
(is this right? -- I'm no Windows expert, but it seems to be the case). But
the expectation of  WaitForSingleObject is  that the executable will be
closed soon. Not waiting for file closure is probably good, since the vast
majority of external process invocations do not require deletion of the
executable when finished -- that is done only by a few tools that
build-run-delete. Why should invocations of external processes that don't
require deletion of their executables always wait a ms or two or three
longer? Perhaps it is the responsibility of build-run-delete tools to
manage that fact that the executable might not already be deleted by the OS
when the process completes.
Dealing with that is pretty simple. On process
completion (when WaitForSingleObject returns) just retry closing a few
times:
WaitForSingleObject()
i := numberOfRetries
for ; i > 0; i-- {
    if err := attemptToDeleteExecutable(); err != nil {
         waitAShortTime()
    }
}
if i == 0 {
    // Indicate error that executable could not be deleted
}

I have used this technique in other programming languages for exactly this
issue. Instead of a fixed delay, it waits only as long as necessary. And
it's only used for those rather rare cases where the executable has to be
deleted after the process completes. The downside? Code like this has to be
put into a few tools (e.g. go run). This issue exists only in Windows,
since in *nix it's OK to "remove" an open file -- actual deletion occurs
automatically when the file is closed.
I suggest:
-- Go should return from Wait as soon as WaitForSingleObject returns.
-- Tools that have to delete executables when their processes complete
should incorporate retry loops similar to the example above.
On Sat, Jan 28, 2023 at 11:09 AM Quim Muntal @.***>
wrote:

I've given another shot with CL 463840. It's novel approach is that it
calls WaitForSingleObject not on the handle itself but on a handle with
SYNCHRONIZE rights. Well, this thread is quite long, so it might also
been tried before, but if someone did, I haven't seen it.
—
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/25965#issuecomment-1407466047, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABLA2AMIK3EZ4E6HXSLIXX3WUVVF5ANCNFSM4FFZIIIQ
.
You are receiving this because you commented.Message ID:
@.***>

@bobjalex

Tools that have to delete executables when their processes complete
should incorporate retry loops similar to the example above.

The problem with that philosophy is that many programs don't know whether the data they are deleting may include recently-executed programs. That forces either a layering violation (the use-agnostic tool needing to know about executables) or additional latency (the use-agnostic tool performing spurious retries).
This is not a theoretical problem: the Go testing package is one such tool. (See CL 371296.)

That also raises the problem of: how long do you retry for? If you attempt only a small number of retries, you'll have false-positive failures; but if you attempt a larger number of retries, then the latency in the cases where the retries are spurious gets worse and worse. For a project like Go that aims to support a wide variety of hardware and platforms, there isn't an obvious setting that addresses both of those constraints.

Replying to myself with a little correction to the example retry loop for
deleting a just-completed process's executable file. It should be:
cmd := exec.Command(...)
cmd.Start()
...
cmd.Wait()
i := numberOfRetries
for ; i > 0; i-- {
    if err := attemptToDeleteExecutable(); err != nil {
         waitAShortTime()
    }
}
if i == 0 {
    // Indicate error that executable could not be deleted
}

This was supposed to be Go application code. Previously the first line of "
WaitForSingleObject()" would not be typically be part of an application.
On Tue, Jan 31, 2023 at 11:12 AM Bob Alexander @.***> wrote:

The contract of  WaitForSingleObject is to wait until the process
is complete. It is NOT to wait until the executable file has been closed
(is this right? -- I'm no Windows expert, but it seems to be the case). But
the expectation of  WaitForSingleObject is  that the executable will be
closed soon. Not waiting for file closure is probably good, since the vast
majority of external process invocations do not require deletion of the
executable when finished -- that is done only by a few tools that
build-run-delete. Why should invocations of external processes that don't
require deletion of their executables always wait a ms or two or three
longer? Perhaps it is the responsibility of build-run-delete tools to
manage that fact that the executable might not already be deleted by the OS
when the process completes.
Dealing with that is pretty simple. On process
completion (when WaitForSingleObject returns) just retry closing a few
times:
WaitForSingleObject()
i := numberOfRetries
for ; i > 0; i-- {
    if err := attemptToDeleteExecutable(); err != nil {
         waitAShortTime()
    }
}
if i == 0 {
    // Indicate error that executable could not be deleted
}

I have used this technique in other programming languages for exactly this
issue. Instead of a fixed delay, it waits only as long as necessary. And
it's only used for those rather rare cases where the executable has to be
deleted after the process completes. The downside? Code like this has to be
put into a few tools (e.g. go run). This issue exists only in Windows,
since in *nix it's OK to "remove" an open file -- actual deletion occurs
automatically when the file is closed.
I suggest:
-- Go should return from Wait as soon as WaitForSingleObject returns.
-- Tools that have to delete executables when their processes complete
should incorporate retry loops similar to the example above.
On Sat, Jan 28, 2023 at 11:09 AM Quim Muntal @.***>
wrote:

I've given another shot with CL 463840. It's novel approach is that it
calls WaitForSingleObject not on the handle itself but on a handle with
SYNCHRONIZE rights. Well, this thread is quite long, so it might also
been tried before, but if someone did, I haven't seen it.
—
Reply to this email directly, view it on GitHub
https://github.com/golang/go/issues/25965#issuecomment-1407466047, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABLA2AMIK3EZ4E6HXSLIXX3WUVVF5ANCNFSM4FFZIIIQ
.
You are receiving this because you commented.Message ID:
@.***>

I took another stab at this.
I'm pretty sure that all boils down to Windows not deleting a file when syscall.DeleteFile is used, but just marking it for deletion. This behavior is known to be problematic (e.g. https://github.com/dotnet/runtime/issues/27958 and https://github.com/PowerShell/PowerShell/issues/8211) when implementing recursive directory removal, i.e. os.RemoveAll, because a deleted file is deleted asynchronously. This can potentially make deleted files appear multiple times when traversing a directory for deletion, and what's worst is that the second syscall.DeleteFile call on the same file will return ERROR_ACCESS_DENIED.
This behavior is not documented, but it's what I could gather from exploring different sources, including the aforementioned dotnet and PowerShell issues.
Going back to the 5ms sleep, it seems that deleting an executable file whose process has just been released makes the asynchronous deletion process take more than for normal files. If we add the fact that testing cleanup calls os.RemoveAll on folders that are normally just a handful of files, the chances that the second time os.RemoveAll calls Readdirnames returns an executable file already marked for deletion are high. Thus, the additional sleep time gives to the OS more time to do whatever cleanup is necessary before trying to remove the file using is.RemoveAll, reducing the chances to trigger the race condition.
Luckily for us, the syscall.DeleteFile behavior changed in Windows 10 1903. It no longer deleted files asynchronously but follows the POSIX semantics of deleting files synchronously, making it impossible to trigger the race condition in os.RemoveAll. Therefore, we can drop the 5ms sleep when running on newer Windows versions. Again, this behavior is not documented, but multiple frameworks already depend on it, see for example https://github.com/dotnet/corefx/pull/38186.


edit paragraph

"language declaration" may need to be called something else, but I'd like some similar description of what it is.

Thanks for the PR. I added comments in the code.

Coverage decreased (-0.5%) to 86.594% when pulling 285b97d235dd29cf4142ee3ee7de2895b0b84510 on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.5%) to 86.594% when pulling 285b97d235dd29cf4142ee3ee7de2895b0b84510 on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.5%) to 86.594% when pulling 285b97d235dd29cf4142ee3ee7de2895b0b84510 on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.5%) to 86.594% when pulling a84286c1718ee3319e00f127539b3f1d1556d5c1 on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling<PHONE_NUMBER>6fefc498d7e0e76a41ba0498bbca67 on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling 1a5edd861f355eecb07ed6d9f5a26a9c6781b01e on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling 1a5edd861f355eecb07ed6d9f5a26a9c6781b01e on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling 1a5edd861f355eecb07ed6d9f5a26a9c6781b01e on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling 19e686da042cbd2fde9534b7d33c4868a9b7835d on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling 19e686da042cbd2fde9534b7d33c4868a9b7835d on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling f996d280dfb1f8e9b60ee29d8e13730ed8c5ee71 on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling f996d280dfb1f8e9b60ee29d8e13730ed8c5ee71 on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling f996d280dfb1f8e9b60ee29d8e13730ed8c5ee71 on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.544% when pulling 0374e1459bbdc62f7cd0d7ae63796c69e36d757e on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

What is your reasoning for moving the Multitracks and merges section to before transitions? Given that transitions only apply to playlists it seems silly to start with playlists, jump to multitracks, and then cover transitions.

Coverage decreased (-0.6%) to 86.544% when pulling 0374e1459bbdc62f7cd0d7ae63796c69e36d757e on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.528% when pulling 17e72c31b278b505a2d16abe401733ac07e79c0a on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.528% when pulling 17e72c31b278b505a2d16abe401733ac07e79c0a on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Coverage decreased (-0.6%) to 86.528% when pulling 17e72c31b278b505a2d16abe401733ac07e79c0a on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Looking at your commit message, it looks like you answered my previous message:

What is your reasoning for moving the Multitracks and merges section to before transitions? Given that transitions only apply to playlists it seems silly to start with playlists, jump to multitracks, and then cover transitions.

multitracks are mentioned before transitions in Playlists, so Multitr…

Anyway, this seems odd to me, since transitions are more closely bound (logically) to playlists. Thus, it seems very odd to me to have:
Playlists
Multitracks
Multitrack-tool
Playlist-tool
The order
Playlists
Playlist-tool
Multitracks
Multitrack-tool
Makes more more sense to me. If you want, you could merge them so that the structure is more like:

Playlists

Playlist form
Transitions

Multitracks

Multitrack form
Merges

Coverage decreased (-0.1%) to 87.013% when pulling f5880ecf967e5b0ffb33b9ab3f1094ed79f6242b on CAHollenbeck:master into 1936d021101f1d6772f20bcbde2bdec18ebdd7db on videolang:master.

Has there been any more progress on this?

Just another quick ping to here about the status of this PR.


[Feature] integrate starlet cache filesystem

Signed-off-by: Kevin Xiaohua Cai<EMAIL_ADDRESS>What type of PR is this：

[ ] bug
[X] feature
[ ] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

run starrocks_admit_test

run starrocks_admit_test


[Issue-2452] Show custom network on the token list when nominate

Related issue: #2452

🚀 Deployed on https://pr-2458--sw-web-runner.netlify.app


java: ignore files with 'sources' in the name

@tedwon happy with the proposal?

LGTM 👍 Additionally, I'd like to suggest adding ignoring '-javadoc.jar' files as well. e.g. https://maven.repository.redhat.com/ga/org/apache/commons/commons-collections4/4.2.0.redhat-00001/

LGTM


fix: Resolve issue with incorrect destination filenames

optimizeExternalImages function concatenates the entire filename in the sources list to the destination, leading to an incorrect destination.
E.g:
externalImages: {
    sources: [
        'foo/bar/source/example.jpg',
    ],
    destination: 'foo/bar/dist',
}

Leads to: foo/bar/dist/foo/bar/source/example.jpg

I had intended for it to work that way, as (at least in the usecases I've seen) most people want to keep the directory structure they started with when outputting the optimized images.
I'd be open to a PR which enables this functionality behind a flag, but I can't accept it as is.
Put it behind an option like "flattenOutput" or something similar (i'm really bad at naming), and I'd be happy to merge it in!


Implement "Do not use placeholder elements" as new diagnostic SA1651

Fixes #536

Looks good!
Maybe we can use the github wiki for documentation on new rules for now. Its infortunatly a bit limited and doesnt support PRs. If needed I could host something on my server.
Before you merge this I think we should wait for more opinions on this.

The changes since last time I had a look at this look good and I think this one can be merged if there are no non trivial merge conflicts holding it back.


Intent classification error : Asks for atleast 2 classes in the sample when there are 2 samples already

Hello,
I am using the below code to train my model :
from rasa_nlu.converters import load_data
from rasa_nlu.config import RasaNLUConfig
from rasa_nlu.model import Trainer
#from pprint import pprint
#from jsonmerge import merge
#import json

#base = json.loads(open('./data/trainData.json').read())
#head = json.loads(open('./data/testData.json').read())

training_data = load_data('./data/trainData.json')
#pprint(train_data)

#trainer = Trainer(RasaNLUConfig("config_spacy.json"))
trainer = Trainer(RasaNLUConfig("config.json"))
trainer.train(training_data)

and this is the config file I am using:
{
  "backend": "spacy_sklearn",
  "path" : "./models",
  "data" : "./data/trainData.json",
  "pipeline": ["nlp_spacy", "ner_spacy", "ner_synonyms","intent_featurizer_spacy","intent_featurizer_ngrams","intent_classifier_sklearn"]
}

However  it throws an error saying:
ValueError: This solver needs samples of at least 2 classes in the data, but the data contains only one class: 0

Clearly this is not the case as my training data has more than 2 classes(of intent - buy & explore).
A sample of the trainingData:
{
  "rasa_nlu_data": {
    "common_examples": [
      {
        "text": "I want a shoe of black color and size 9",
        "intent": "buy",
        "entities": [
          {
            "start": 9,
            "end": 14,
            "value": "shoe ",
            "entity": "product"
          },
          {
            "start": 17,
            "end": 23,
            "value": "black ",
            "entity": "color"
          },
          {
            "start": 38,
            "end": 39,
            "value": "9",
            "entity": "size"
          }
        ]
      },
      {
        "text": "I want a shoe of brand adidas and size 10",
        "intent": "buy",
        "entities": [
          {
            "start": 9,
            "end": 14,
            "value": "shoe ",
            "entity": "product"
          },
          {
            "start": 23,
            "end": 30,
            "value": "adidas ",
            "entity": "brand"
          },
          {
            "start": 39,
            "end": 41,
            "value": "10",
            "entity": "size"
          }
        ]
      },

Can you please help regarding this.

There should be a statistic printed at the beginning when starting the training, can you post these results here (contains how many intents / entities + samples of each).

This is the full transcript of the messages thrown:
C:\Users\shuvayan.das\Downloads\Chatbot_Python\entityRecognition\RASA_NLU>python
-m rasa_nlu.train -c config.json
INFO:root:Trying to load spacy model with name 'en'
INFO:root:Added 'nlp_spacy' to component cache. Key 'nlp_spacy-en'.
INFO:root:Training data format at ./data/trainData.json is rasa_nlu
INFO:root:Training data stats:
- intent examples: 32 (2 distinct intents)
- found intents: buy, explore
- entity examples: 32 (7 distinct entities)
- found entities: brand, color, gender, price, product, product-sub-category, size
INFO:root:Starting to train component nlp_spacy
INFO:root:Finished training component.
INFO:root:Starting to train component ner_spacy
INFO:root:Finished training component.
INFO:root:Starting to train component ner_synonyms
INFO:root:Finished training component.
INFO:root:Starting to train component intent_featurizer_spacy
INFO:root:Finished training component.
INFO:root:Starting to train component intent_featurizer_ngrams
C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packages\rasa
_nlu\featurizers\ngram_featurizer.py:175: FutureWarning: in the future, boolean
array-likes will be handled as a boolean array index
sentences = np.array(sentences)[mask]
C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packages\rasa
_nlu\featurizers\ngram_featurizer.py:176: FutureWarning: in the future, boolean
array-likes will be handled as a boolean array index
labels = np.array(labels)[mask]
Traceback (most recent call last):
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\runpy.py",
line 184, in _run_module_as_main
"main", mod_spec)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\runpy.py",
line 85, in _run_code
exec(code, run_globals)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\rasa_nlu\train.py", line 83, in
do_train(config)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\rasa_nlu\train.py", line 73, in do_train
interpreter = trainer.train(training_data)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\rasa_nlu\model.py", line 157, in train
updates = component.train(*args)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\rasa_nlu\featurizers\ngram_featurizer.py", line 64, in train
self.all_ngrams = self._get_best_ngrams(sentences, labels, spacy_nlp)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\rasa_nlu\featurizers\ngram_featurizer.py", line 127, in _get_best_ngrams
return self._sort_applicable_ngrams(ngrams, sentences, labels, spacy_nlp)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\rasa_nlu\featurizers\ngram_featurizer.py", line 184, in _sort_applicable_ngr
ams
clf.fit(X, y)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\linear_model\randomized_l1.py", line 112, in fit
sample_fraction=self.sample_fraction, **params)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\externals\joblib\memory.py", line 283, in call
return self.func(*args, **kwargs)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\linear_model\randomized_l1.py", line 54, in _resample_model
for _ in range(n_resampling)):
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\externals\joblib\parallel.py", line 758, in call
while self.dispatch_one_batch(iterator):
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\externals\joblib\parallel.py", line 608, in dispatch_one_batch
self._dispatch(tasks)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\externals\joblib\parallel.py", line 571, in _dispatch
job = self._backend.apply_async(batch, callback=cb)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\externals\joblib_parallel_backends.py", line 109, in apply_async
result = ImmediateResult(func)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\externals\joblib_parallel_backends.py", line 326, in init
self.results = batch()
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\externals\joblib\parallel.py", line 131, in call
return [func(*args, **kwargs) for func, args, kwargs in self.items]
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\externals\joblib\parallel.py", line 131, in
return [func(*args, **kwargs) for func, args, kwargs in self.items]
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\linear_model\randomized_l1.py", line 377, in _randomized_logistic
clf.fit(X, y)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\linear_model\logistic.py", line 1186, in fit
sample_weight=sample_weight)
File "C:\Users\shuvayan.das\AppData\Local\Continuum\Anaconda3.3\lib\site-packa
ges\sklearn\svm\base.py", line 875, in fit_liblinear
" class: %r" % classes[0])
ValueError: This solver needs samples of at least 2 classes in the data, but the
data contains only one class: 0)
It seems the error is in the sklearn liblinear model part and I have found this bug elsewhere :
https://github.com/lensacom/sparkit-learn/issues/49
If this is the case I believe random shuffling of the records has to be implemented before feeding the data to the models.

Right, so this is somewhat tricky. During the training the data gets shuffled and split into multiple cross validation folds. It seems like the splitting creates partial data sets that only contain one of the classes. So you should add more examples, but we should also find away around this (reduce the number of splits?)

Yes adding more records will help but I saw somewhere that randomizing the records might help. I will try with more records and let you know the results.


Apply sources doesn't work

I have a remote source I am trying to add to a style I am working on, but when I press apply after putting the map ID in, nothing happens. The apply button does not work. OSX 10.9.5.

Looks like there is a space between the listed sources (after the comma). If you hit Apply with a space in between sources, you should see a pop up similar to this:

Try removing the space.

@Mcgrupp34 Currently Atom Shell (the package around Mapbox Studio as a desktop app) doesn't support the error message you see in @GretaCB's screenshot (#805) so there isn't good feedback for formatting errors. We're working on getting better feedback for this, in the meantime, make sure there aren't any spaces between your map ids.

Did the trick, thank you.
On Wed, Jan 14, 2015 at 3:19 PM, Camille Teicheira<EMAIL_ADDRESS>
wrote:

@Mcgrupp34 https://github.com/Mcgrupp34 Currently Atom Shell (the
package around Mapbox Studio as a desktop app) doesn't support the error
message you see in @GretaCB https://github.com/GretaCB's screenshot (
#805 https://github.com/mapbox/mapbox-studio/issues/805) so there isn't
good feedback for formatting errors. We're working on getting better
feedback for this, in the meantime, make sure there aren't any spaces
between your map ids.
—
Reply to this email directly or view it on GitHub
https://github.com/mapbox/mapbox-studio/issues/1123#issuecomment-69984027
.

--
Zack Walker
Cartographer
888 Brannan St
San Francisco,CA 94103
See my favorite listing https://www.airbnb.com/rooms/239790


Updated to referencing latest version of EventGrid dataplane SDK

Updated to latest version of SDK + removed classes that are now defined in SDK.

@kalyanaj : Thanks for your contribution! The author, @banisadr, has been notified to review your proposed change.

#sign-off


Multiple XCode error on version 0.8.2

Rules

To report a bug and help us to provide the solution as fast as possible, please follow the instructions below:
1 - Describe the bug
A clear and concise description of what the bug is.
OBS: avoid to use the expression "its not working" or "is working" or any other variation. These expressions can mean anything and at same time doesn´t bring any useful information. As soon you rewrite these expressions, you naturally going to be more precise and clear.
2 - Provide us as much information as possible
To help us to understand your issue, provide with your bug report all the relevant informations, such as:

Your plugins list inside the file pubspec.yaml (at least all notification plugins)
What platform did you found the issue
What devices did you found the issue
How are you initializing the plugin
How are you creating the notification
The output of flutter doctor command

OBS: To post a source code in your issue, please use the markdown below:
print('Your source code goes here');

3 - How To Reproduce the Error
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

...or if you prefer, you can provide us a simple example app on GitHub with the issue already reproduced instead of the steps 2 and 3.
4 - Expected behavior
A clear and concise description of what you expected to happen.
5 - Screenshots
Uncategorized (Xcode): Command SwiftDriver emitted errors but did not return a nonzero exit code to indicate failure

Error (Xcode): no such module '__ObjC'
/Users/ranielangelojumamil/Library/Developer/Xcode/DerivedData/Runner-cbhpizwsqyjmltdabkwequqxnueq/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner.private.swiftinterface:15:18
Runner.private.swiftinterface:15

Error (Xcode): failed to verify module interface of 'Runner' due to the errors above; the textual interface may be broken by project issues or a compiler bug
/Users/ranielangelojumamil/Library/Developer/Xcode/DerivedData/Runner-cbhpizwsqyjmltdabkwequqxnueq/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner.private.swiftinterface:0:0

Error (Xcode): no such module '__ObjC'
/Users/ranielangelojumamil/Library/Developer/Xcode/DerivedData/Runner-cbhpizwsqyjmltdabkwequqxnueq/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner.swiftinterface:15:18
Runner.swiftinterface:15

Error (Xcode): failed to verify module interface of 'Runner' due to the errors above; the textual interface may be broken by project issues or a compiler bug
/Users/ranielangelojumamil/Library/Developer/Xcode/DerivedData/Runner-cbhpizwsqyjmltdabkwequqxnueq/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner.swiftinterface:0:0

Could not build the application for the simulator.
Error launching application on iPhone 14 Pro Max.

Exited (1).

6 - Additional context
Add any other context about the problem here.

Did you set the xcode settings correct ?
That was also my fault

This became a blocker for our project and we probably need to look for alternate package which can work on Xcode15

This became a blocker for our project and we probably need to look for alternate package which can work on Xcode15

mine is working fine on Xcode15 and iOS 17 after setting the build options as they recommend.
In Runner Target:
Build libraries for distribution => NO
Only safe API extensions => NO
iOS Deployment Target => 11 or greater
In all other Targets:
Build libraries for distribution => NO
Only safe API extensions => YES
iOS Deployment Target => 11 or greater

This became a blocker for our project and we probably need to look for alternate package which can work on Xcode15

mine is working fine on Xcode15 and iOS 17 after setting the build options as they recommend.
In Runner Target:
Build libraries for distribution => NO Only safe API extensions => NO iOS Deployment Target => 11 or greater In all other Targets:
Build libraries for distribution => NO Only safe API extensions => YES iOS Deployment Target => 11 or greater

Can I set this params on CI ( Github Actions ) ?


CookBook for VS2015

Can you please make a cookbook recipe for VS2015 and build in VSTS? It took me 8 hours to get it to work and I am interested is what the "official" steps would be.
Cross linked from the quick start repo.

Hey Mark -
As a first draft, I created a blog post with steps.
I hope to get feedback before converting the post to a cookbook on VS 2015. Could you take a look at see how close it is to the steps you came up with? Thanks!

Let's continue in #1502


Data type judgment and optimization

If shorthandblacklist, the second parameter of the tranform function, misuses a string, such as' fontmargin ', abbreviations are also allowed.
Maybe it's more rigorous to add typescript or verify data type here.
https://github.com/styled-components/css-to-react-native/blob/master/src/index.js#L85

Yeah, that's a good should. Maybe we should remove the default argument, then Array.isArray(shorthandBlacklist) && shorthandBlacklist.includes(…) - we should get a perf win from that too


An option to specify which estimation settings apply to tokens

Hey there, great mod and look forward to trying it some more. I was wondering if there could be a setting in place that'd allow the dm to choose if certain health estimations apply to player characters or npcs.

For example, here I have it set so that there are 3 ranges for the game. I understand that you can choose if the estimates apply to either player characters & npcs, however there I think it'd be great if you can further specify if say for instance, only the 50% health estimate applies to npcs while pc's can utilize all 3.
Apologies if I'm not making much sense or if this is already a setting in place, but I appreciate the consideration all the same!

Add another table
Only input the 50% estimate
Set its JS Rule to type === "npc"

Oh this is great! Thank you so much, and just for future reference. For player characters, would it be `type === 'pc'?

It depends on the system. On dnd5e, it is character. You can check all the actor types in a system by inputting Object.keys(CONFIG.Actor.sheetClasses) on the console, ignoring the base.
You're welcome. If that's all, I'll be closing this issue.


Verbose output

I found it useful to see what the script does, as it does it; So, I added a --verbose, and shortcut -v, flag. PR coming in a few seconds.

Closing older issues.


Overview Slide

Configuration options to add an overview slide at the end. I experiemented with setting the positioning and scale
of this slide based on the number of slides in the presentation, but ultimately decided it was better to just let the
user configure the x, y, and scale of this slide manually in the config.

@smerrill, what do you think?


docs: add maven badge to readme

We'll need to hold this PR until we ensure the artifact is published on Sonatype. It's 404 right now.


[Bug]: autoExtensions bad case "./components/button/index.js"

Version
rslib 0.0.8

Details

.
├── src
│   ├── button
│   │   └── index.tsx
│   └── index.ts
└── tsconfig.json

input
// index.ts
import button from './button';

expected behavior
import button from './button/index.mjs';

actual behavior
import button from './button.mjs';

Reproduce link
none
Reproduce Steps
none

By the way, in bundless mode, if cannot resolve, error message should be emitted

Does other support patch mainFiles as of now? For bundle mode, support index in mainFields is fine. In bundleless mode, I feel it's too lose somehow.

esbuild by default could handle index mainFiles, but when the target module is externalized, it will not adding index as well.
https://esbuild.github.io/try/#YgAwLjI0LjAALS1idW5kbGUgLS1mb3JtYXQ9ZXNtIC0tZXh0ZXJuYWw6Jy4vYScAZQBlbnRyeS5qcwBpbXBvcnQgeCBmcm9tICcuL2EnCmV4cG9ydCB7IHggfQAAYS9pbmRleC5qcwBleHBvcnQgZGVmYXVsdCA1
If we wish to support this feature, we need to use getResolve in the external function to get the resolved path, but currently getResolve is not supported.
I think we can temporarily disable mainFiles in bundleless mode to avoid this too loose behavior.

Same as https://github.com/web-infra-dev/rslib/issues/238, we should check whether getResolve hook in Rspack will be supported in the nearly future.

We should also handle when ./folder/index.ts and ./folder.ts exists at the same time, there may also be .ts, .tsx, .jsx file existing.

We should also handle when ./folder/index.ts and ./folder.ts exists at the same time

We could just follow Rspack's default order.

there may also be .ts, .tsx, .jsx file existing.

getResolve could handle all of these.

Is there an issue to follow for this? Or a quick way to catch this issue? You mentioned disabling mainFiles?

Is there an issue to follow for this? Or a quick way to catch this issue? You mentioned disabling mainFiles?

You can write the full path when writing source code to avoid this issue.
- import button from './button';
+ import button from './button/index';

Is there an issue to follow for this? Or a quick way to catch this issue? You mentioned disabling mainFiles?

You can write the full path when writing source code to avoid this issue.

import button from './button';

import button from './button/index';

The hard part is finding them all :) So was wondering if there was a quick way, I'll look into it thanks!

There's not a rational way to find the /index by leveraging Rspack without getResolve function, there are some workarounds such as manually check before resolving, but that's a bypass implementation which is an alternative to mainFiles.

Thanks for the quick response, makes sense. I guess #251 will help flag these issues.


Routine dep upgrades

Coverage remained the same at 93.714% when pulling 7d039c9fd9d8a5ce9adda9165eff10389139a31a on RickCarlino:friday into fd7f096651d123dca0a8bc6af833fc0f80f48af9 on FarmBot:staging.


fix: [#650] - Added 'mountPath' as possible merge-key to avoid that 'name' is treated as unique value for volumeMounts

In issue #650 we ran into the problem that volumeMounts were not correctly merged. This happens when you have multiple volumeMounts that all refer to the same volume, but using different mountPaths. The reason for this seems to come from the merging-algorithm in the meta-controller, which is a bit fuzzy and incorrectly assumes that 'name' always has a unique value (which is not the case here, because 'name' refers to the volume and the same volume can be used for multiple volumeMounts).
In this pull-request we added an "mountPath" option as extra option to the list of possible mergeKeys. This fixes the issue for us, and I think it is reasonably safe to assume that the mountPath property is normally unique.

Hmmmm, so difficult to get through the github merge process. It is only one line that was added to the code, do I really have to study to find out how this "codecov" robot and "signed-off-by" process works? I would be just as happy if this PR was rejected and that someone else who does know the rules and procedures of this repo would add this extra line, or tell me why our fix was wrong.
Is there anything that I can do to speed up the process? Maybe @grzesuav? It would be really nice if you can pick it up from here, and/or give some feedback.

@EmielBruijntjes when you click details on DCO it tell you what to do

also ,please squash the commits to single one, with fix(#650) : Add 'mountPath' as merge key as we use semantic commits

Could you be so kind to help me out with this? I am not so experienced with git. I only know 'git commit' and 'git push' (sorry about that). If this was a 500 line change I would be more than happy to do all the studying, write unit tests and so on, but could you just take a look at our 1-line change and give feedback like "no, this stinks" or "yes, this is helpful" -- I prefer to fail fast here.

if it helps then I am for it, ultimate solution for all the issues with merging will be switching to SSA, I can create separate PR with that if you are not advanced with git

https://github.com/metacontroller/metacontroller/pull/663

Great, awesome! I close this one then.


[Text Analytics] Add a sample for model versions

@assafi asked for a sample to set model versions so this PR adds one.

@kristapratico it is in a private email thread with the docs team and Assaf and they want to explore adding a sample for this. I will let you know if they want to proceed with it.


Cupcake website page creation - Components/Link page

chsanche created the following on Sep 23:

User Story

As an IBM.com page creator

I need to: have a good understanding of the components, patterns, etc

so that I can: do my day to day work without confusion.

Additional information

Cupcake website page development priority can be viewed via #1664.
Link page on v19a website can be viewed here.
Link page on the current Carbon Design website can be viewed here

Task

Collaborate with @Olivia-Flory for the content creation.

Acceptance criteria

[ ] Content and design created and reviewed with the stream lead, the developer and Wonil.
[ ] Shared with the Carbon and IDL team for feedback.
[ ] Content and design accepted by Wonil and Linda.
[ ] Create the dev. issue for coding as the next step.

Original issue: https://github.ibm.com/webstandards/digital-design/issues/1749

On Oct 07, chsanche commented:
@Wonil-Suh1 @Olivia-Flory
Below is the Cupcake version Link page. Please take a look and let me know what we need to edit, add, or take off.
FYI - The Documentation section is a placeholder.

Here is the demo set up for the three link variants

On Oct 07, chsanche commented:
@Jeff-Chew @Kenny-Lam
Question: For the documentation, we only support react, correct? I have Angular just as an example if we are going to add more platforms we will be supporting.
FYI: Carbon is thinking to have the react code (under the demo) editable but no final decision yet.

On Oct 07, Jeff-Chew commented:
@chsanche we shouldn't say Angular is coming soon, right now we should say React, with Vanilla coming soon.
cc: @Kenny-Lam

On Oct 07, chsanche commented:
@Jeff-Chew Got it. That's why I put the "FYI - The Documentation section is a placeholder." and needs your guidance on what to include with what status, etc.

On Oct 07, Jeff-Chew commented:
@linda-carotenuto @Wonil-Suh1 @chsanche for Angular and VueJS, should we have something like Open for Contributions? Just a thought...

On Oct 07, Olivia-Flory commented:
@chsanche
Thank you for sending! A few comments:
For the demo, here's a small update I think would make sense:

remove Primary list
change text + icon on the right to text + icon (same phrasing as button)
disable the option for link and icon when inline is selected

For the content
Is some of the content coming from Carbon?
I ask because I'm confused where a few of the things under "Styles" came from and if we should be adding those to the modifiers within the demo / if Carbon is planning to add those to their codebase? We don't have a few of them in the codebase:

icon only
link with tooltip
I'm not sure if we want to include Text and icon left because we don't want to encourage people to use these.

Color missing "be", updated below
The link color should be set to default.
Structure
This bit is a little confusing to me because our links are not underlined by default, so maybe it should say something like:
Links can be grouped horizontally or vertically, and must be underlined when in a group for accessibility. (Guessing that is why they "must be underlined"
There is no documentation / specs "following" showing the proper distance between links, we should write it out if we are including that. I'm guessing Carbon thinks 16 or 24px is the right amount, but we will need to check with them?

On Oct 08, chsanche commented:
@Olivia-Flory Thank you for taking a look at the content.
For the demo, The primary list is removed. FYI: The modifier and status will change based on the variant selected, so for "Inline", we do not need to disable anything.
The "Styles" content is from our v19a website Link Usage page.
I took the Text and icon left option off and updated the color and structure section copy. Let me know if it works better now. You are correct, the underline recommendation is for an accessibility reason, but Carbon is taking the recommendation off soon since it's different than their component setting.

Updated mock up:


Improvements to tmon.py: callbacks, fix error handling, configure py.test cmd

I could imagine to re-use parts from watchdog, e.g. for the callbacks here.
This allows for e.g.:
tmon.py --pytest-cmd "py.test-2.7 --reuse-db" \
    --cb-success 'notify-send --urgency=low --expire-time=500 --category=transfer.complete "Yeah"' \
    --cb-failure 'notify-send --urgency=critical --expire-time=3000 --category=transfer.error "Test failed: {}"'

nice.
Would it be possible to remove the whole tmon.py thing and just use
https://github.com/gorakhargosh/watchdog#shell-utilities
Is that what you mean by "I could imagine to re-use parts from watchdog, e.g. for the callbacks here." ?
https://github.com/tarpas/testmon/issues/4

I'll follow up in #4.

I think until tmon gets replaced/dropped this PR is still useful.
Should I rebase it?

Wouldn't just a single callback command with self exlaining parameter name
fulfill your needs? (like --notify-result)
On Thu, Mar 26, 2015 at 5:50 PM, Daniel Hahler<EMAIL_ADDRESS>wrote:

I think until tmon gets replaced/dropped this PR is still useful.
Should I rebase it?
—
Reply to this email directly or view it on GitHub
https://github.com/tarpas/testmon/pull/3#issuecomment-86619699.

Yes, although then you need to use a wrapper / script to handle the success/failure case yourself.

This functionality will be replaced by pytest-watch .


Update continuous-integration.yml

exit sudo mode after installing tools on osx
Fixes issue #1204
Brief summary of changes
exit sudo in workflow, remove extra chmods from build.xml
Testing I've completed
CHANGELOG.md (choose one)

no need to update because...
updated...

Resulting artifact after undoing sudo and permissions has the same old problems and doesn't launch. Any other ideas to try, @chrisdembia ? Thanks


nextcloud: how to configure caching / no extraOptions-like hook?

Currently, the nextcloud modules has a set list of config options (in services.nextcloud.config), and no extraOptions-style hook for freeform text which should be appended to nextcloud's configuration file.
In particular, I am unable to figure out how to set up redis caching with the nextcloud module — the description for services.nextcloud.caching.redis states that "you still need to enable Redis in your config.php", but there is no description of how to do that, and no corresponding option in the module.
I think the module should offer something like services.nextcloud.config.extraOptions, particular since this is probably also an issue for other possible configurations of nextcloud (given that its full list of configuration paramaters is prohibitively long) — or am I just missing something obvious?

Same problem ;(


Cannot remove incorrect bif files

With shows like South Park, videos can be placed out of order as the order you use for the files (i.e DVD order) may not be the same as the order used for the metadata (i.e Aired Order).
This can lead to files having incorrect bif thumbnails. However, even after deleting said bif files and generating a new set, the old bif files still remain; leading the timeline to be inaccurate.
Is there any databases or json file I need to change to update the link to the files?

There are json files that are made along with the .bif files in the same folder, but everything is generated using the episode file names so I wouldn't think changing the order visually would affect anything. If you use the default ordering are the trickplay images correct?

Sometimes; as the metadata would get updated to match the file associated with the trick-play images. But considering that it's often just 1 or 2 episodes out of order, I normally opt to just rename/replace the incorrect episodes. However, when scrolling the timeline, I still see the thumbnails of the old episodes; even after I've deleted the old .bif files and rerun the scheduled task. This is the same with accidental duplicates of episodes. Deleting/replacing the erroneous file still results in jellyscrub using the .bif files generated from the previous video; leading to the incorrect trickplay images.


175623 - [High] [Newsroom] Not able to publish using Sidekick

Severity - 2 High
This bug is logged as we cannot publish in Franklin using sidekick. There is no toolbar displayed as seen in screenshot below.
Azdo link: https://dev.azure.com/accenturecio26/WebContentDigAssetMgmt_PR1093/_workitems/edit/175623
cc: @ravkiran @amol-anand @raymond-h-dev

@veejayricana as discussed in the slack channel, this won't work until we release a new sidekick. should be resolved shortly

We released a new sidekick on Friday. This should work now.

@veejayricana if you download the latest sidekick, this is fixed.

Hi @amol-anand and @ravkiran, reopening this issue as still we are encountering issue in the new update sidekick.

Fix for Scenario 2 should be coming tomorrow.
For Scenario 1 - you can add a project to the sidekick only from either the github url to the project OR from the main--*.hlx.page/live url of the project.

This should be fixed now

Hello. As discussed in our call and in slack, we need the RCA for this issue. Thanks.

we were still rolling out the support for vanity domains for sharepoint, and some of the GEOs werent ready yet, when we switched the sharepoint

hi @tripodsan  is this the RCA for this issue?

Can you please provide details like
Why did the issue happen?
How can we prevent it from happening again?

RCA: we were still rolling out the support for vanity domains for sharepoint, and some of the GEOs werent ready yet, when we switched the sharepoint


Saving memory consumption from copies of vectors.

In these patches, I do the following:

Passing constant references of vectors instead of passing copies.
Return constant references of vectors instead of copies.

The mantra is saving memory consumption from copying vectors.

@lubatang Thanks for this PR.
@mbartling I'm taking the honor to merge this PR : )


fix #20

Do the checklist before submitting the PR:

[x] Have you read the guidelines mentioned in CONTRIBUTING.md?
[ ] Have you squashed your commits?

Q: What version of Node.js you've used in the project?
A: v11.8.0
Q: Mention the Issue Number!
A: #20

Give additional information regarding the PR below:

Codecov Report

Merging #21 into master will not change coverage.
The diff coverage is 94.11%.

@@          Coverage Diff           @@
##           master     #21   +/-   ##
======================================
  Coverage    97.7%   97.7%
======================================
  Files          23      23
  Lines         262     262
======================================
  Hits          256     256
  Misses          6       6

Impacted Files
Coverage Δ

src/kaprekar/index.js
94.44% <ø> (ø)
:arrow_up:

src/lucky/index.js
100% <ø> (ø)
:arrow_up:

src/smith/index.js
100% <ø> (ø)
:arrow_up:

src/smart/index.js
100% <ø> (ø)
:arrow_up:

src/catalan/index.js
92.3% <ø> (ø)
:arrow_up:

src/length/index.js
66.66% <0%> (ø)
:arrow_up:

src/sort/index.js
100% <100%> (ø)
:arrow_up:

src/factorial/index.js
100% <100%> (ø)
:arrow_up:

src/armstrong/index.js
100% <100%> (ø)
:arrow_up:

src/isOdd/index.js
100% <100%> (ø)
:arrow_up:

... and 12 more

Continue to review full report at Codecov.

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


Require 'ses' component for storage-only installs

Prior to the big crowbar repo merge, the SUSE Enterprise Storage package
was named 'crowbar-barclamp-suse-enterprise-storage'.  Now it's got a
nice short component name ('crowbar-ses'), so need to update the install
script to match.
Signed-off-by: Tim Serong<EMAIL_ADDRESS>

Related question: crowbar-ses presently lives at https://github.com/tserong/crowbar-ses. It would be best if this were moved to either the crowbar org (because it's a crowbar component) or the SUSE org (because it's for a specific SUSE product), but I don't mind either way. What do other crowbarians think?

+1
(I feel it should be in the SUSE org, but don't have a super strong opinion about that; would be happy to let it live in crowbar org too)

+1


ADS: Popup Menus

Task/Issue URL: https://app.asana.com/0/1174433894299346/1203687084841388
Description
This PR fixes the Popup Menus, ensuring no TextViews are used and the Browser Menu respects the disabled state
Steps to test this PR
Smoke test Browser Popup
UI changes

Before
After
After

Current dependencies on/for this PR:

develop

PR #2668

PR #2720   👈
PR #2717
PR #2714
PR #2713
PR #2711
PR #2710
PR #2709
PR #2706
PR #2705
PR #2703
PR #2670

This comment was auto-generated by Graphite.


MacBook external display VSCODE text blurred

When my MacBook Pro is connected to the Dell 2419h monitor, the font color is very light with VS Code on and very bright without the external monitor. I tried to find a solution online by following the instructions in this blog and typing on the command line:
defaults write com.microsoft.VSCode.helper CGFontRenderingFontSmoothingDisabled -bool NO
After that, I restarted vscode and still couldn't solve it. My MacBook Pro system is Big Sur. It is worth mentioning that Intelli J editor doesn't have such a problem

Was this working better in previous version? You can download the previous one from: https://az764295.vo.msecnd.net/stable/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/VSCode-darwin.zip

Thank you very much.
发自我的iPhone
------------------ Original ------------------
From: VS Code Issue Triage Bot<EMAIL_ADDRESS>Date: Tue,Mar 2,2021 7:27 PM
To: microsoft/vscode<EMAIL_ADDRESS>Cc: LegalHigh<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [microsoft/vscode] MacBook external display VSCODE text blurred (#117160)
Closed #117160.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Bug - Saving hour in quarters

Follow the rental slot logic, a particular time should be considered as the number of quarters it contains.
For example, the hour we save for 11:45 AM is 47.

Hi Assaf!
The functions have been fixed and tested.
Please let me know if you notice any further problems


layout file: Layout name has to be lowercase

Even if the layout property in devices has capital letters in it, the layout listed under "layouts" has to be lowercase.

Fixed e0b0416


Build failure: ceph

Steps To Reproduce
Steps to reproduce the behavior:

build ceph-18.2.1

Build log
  > -- Found Lua: /nix/store/08zyyd4wzvsxpcfr70g8cwfa81mfqrsy-lua-
  5.4.6/lib/liblua.so;/nix/store/m71p7f0nymb19yn1dascklyya2i96jfw-glibc-2.39-52/lib/libm.so (found suitable version "5.4.6",
  minimum required is "5.3")
   > -- Found Cython: 0.29
   > CMake Error at /nix/store/ll2b6cslly4v30im7qk34f9y21ziiz1i-cmake-3.29.6/share/cmake-3
  .29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
   >   Could NOT find uring (missing: URING_LIBRARIES)
   > Call Stack (most recent call first):
   >   /nix/store/ll2b6cslly4v30im7qk34f9y21ziiz1i-cmake-3.29.6/share/cmake-
  3.29/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
   >   cmake/modules/Finduring.cmake:11 (find_package_handle_standard_args)
   >   src/blk/CMakeLists.txt:61 (find_package)
   >
   >
   > -- Configuring incomplete, errors occurred!
   For full logs, run 'nix log /nix/store/z4l2j2dky74andgny0lkn2shdrvccppx-ceph-18.2.1.drv'.
   error: 1 dependencies of derivation '/nix/store/pl39g7jnz6bnfzhb5d4f5nnrdydyn9cp-system-path.drv' failed to build
   error: 1 dependencies of derivation '/nix/store/ns94x5b42rcdgyf3pc60rvw8b0zs0kq0-nixos-system-razer-
  24.11.20240708.655a58a.drv' failed to build

┏━ 1 Errors:
⋮
┃        >   Could NOT find uring (missing: URING_LIBRARIES)
┃        > Call Stack (most recent call first):
┃        >   /nix/store/ll2b6cslly4v30im7qk34f9y21ziiz1i-cmake-3.29.6/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:…
┃        >   cmake/modules/Finduring.cmake:11 (find_package_handle_standard_args)
┃        >   src/blk/CMakeLists.txt:61 (find_package)
┃        >
┃        >
┃        > -- Configuring incomplete, errors occurred!
┃        For full logs, run 'nix log /nix/store/z4l2j2dky74andgny0lkn2shdrvccppx-ceph-18.2.1.drv'.
┣━ Dependency Graph:
┃          ┌─ ⏸ X-Restart-Triggers-dbus waiting for 1 ⚠
┃       ┌─ ⏸ unit-dbus.service
┃       │        ┌─ ⚠ ceph-18.2.1 failed with exit code 1 after ⏱ 34s in configurePhase
┃       │     ┌─ ⏸ system-path
┃       │  ┌─ ⏸ X-Restart-Triggers-polkit
┃       ├─ ⏸ unit-polkit.service
┃    ┌─ ⏸ system-units
┃ ┌─ ⏸ etc
┃ ⏸ nixos-system-razer-24.11.20240708.655a58a
┣━━━ Builds
┗━ ∑ ⏵ 0 │ ✔ 3 │ ⏸ 16 │ ⚠ Exited after 1 build failures at 01:39:30 after 1m13s
Error:
0: Command exited with status Exited(1)

### Metadata
- system: `"x86_64-linux"`
 - host os: `Linux 6.9.7, NixOS, 24.11 (Vicuna), 24.11.20240703.9f4128e`
 - multi-user?: `yes`
 - sandbox: `relaxed`
 - version: `nix-env (Nix) 2.18.4`
 - nixpkgs: `/nix/store/dk2rpyb6ndvfbf19bkb2plcz5y3k8i5v-source`

Add a :+1: reaction to issues you find important.

please search recent issues and PRs: https://github.com/NixOS/nixpkgs/issues?q=in%3Atitle+ceph
fixed in https://github.com/NixOS/nixpkgs/pull/325059


Energy extract models

This branch produces an EnergyTxTlExtract with limited fuel resources. This new Extract makes use of a new Component, Metabolite, and a new Mechanisms including OneStepPathway in mechanisms_metabolic.py and Energy_Transcription_MM and Energy_translation_MM. These are collectively used recreate the Model from Vipul's paper with a few minor modifcations to avoid time dependent rates and simplify some of the species. These results are detailed in a new jupyter notebook in the advanced examples folder along with a parameter file that includes rates from Vipul's paper.
Note: This PR is built on top of the initial_concentrations PR.

Somehow lots of initial concentration-related stuff leached into this PR. Can you remove those unrelate changes? It will be a git challenging, but it is doable, here a guide on how to do so:
https://www.youtube.com/watch?v=ElRzTuYln0M&ab_channel=TheModernCoder

Maybe we just merge initial concentration first then do this one, then those should disappear right?

Maybe we just merge initial concentration first then do this one, then those should disappear right?

Good idea! If William rebase/merge this branch with the dev, after #209  gets merged into dev then most of the problems go away. My fear is that there is initial concentration-related stuff in this PR that is not in the other PR. (After rebase/merge we will see that)

Maybe we just merge initial concentration first then do this one, then those should disappear right?

Good idea! If William rebase/merge this branch with the dev, after #209 gets merged into dev then most of the problems go away. My fear is that there is initial concentration-related stuff in this PR that is not in the other PR. (After rebase/merge we will see that)

At the top of the PR I noted it was built on top of the initial conditions PR so I could use those features and not have to rewrite things later.


Create rake task generate:tweets to create filler

Every twitter handle will be given 12 tweets formatted
@<handle> tweet #X
This should be run after a rake db:seed when testing.

closed for fix up


osd.traineddata leads core dump when psm =0

super@super-lap:/home/tesseract-lstm$ bin/tesseract --psm 0 ./tessinput.tif stdout
Page 1
Segmentation fault (core dumped)

https://github.com/tesseract-ocr/tesseract/issues/1167

@zdenop, please close this issue.


bugfix: casing for servicemonitor is different than prometheus config

This PR fixes this error from prometheus
msg="skipping servicemonitor" error="relabel configuration for replace action needs targetLabel value"

/cc @adriengentil

/lgtm