Latest version (1.6.2) fails with Gradle 4.10 nightly snapshot

Hello spotbugs team,
I'm trying a project which is using spotbugs in version 1.6.2 with Gradle nightly snapshot. I prepared a minimalistic project which showcases this failure here. The error message is:
java.lang.BootstrapMethodError: call site initialization exception
        at com.github.spotbugs.SpotBugsPlugin.lambda$configureForSourceSet$7(SpotBugsPlugin.java:199)
        at org.gradle.util.GUtil.uncheckedCall(GUtil.java:459)
        at org.gradle.api.internal.ConventionAwareHelper$2.doGetValue(ConventionAwareHelper.java:82)
        at org.gradle.api.internal.ConventionAwareHelper$MappedPropertyImpl.getValue(ConventionAwareHelper.java:126)
        at org.gradle.api.internal.ConventionAwareHelper.getConventionValue(ConventionAwareHelper.java:109)
        at com.github.spotbugs.SpotBugsTask_Decorated.getClasses(Unknown Source)
        at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$DefaultPropertyValue$1$1.create(AbstractNestedRuntimeBeanNode.java:83)
        at org.gradle.util.SingleMessageLogger.whileDisabled(SingleMessageLogger.java:313)
        at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$DefaultPropertyValue$1.get(AbstractNestedRuntimeBeanNode.java:80)
        at com.google.common.base.Suppliers$MemoizingSupplier.get(Suppliers.java:125)
        at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$DefaultPropertyValue.getValue(AbstractNestedRuntimeBeanNode.java:138)
        at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode$DefaultPropertyValue.call(AbstractNestedRuntimeBeanNode.java:144)
        at org.gradle.util.GUtil.uncheckedCall(GUtil.java:459)
        at org.gradle.api.internal.file.collections.BuildDependenciesOnlyFileCollectionResolveContext.add(BuildDependenciesOnlyFileCollectionResolveContext.java:76)
        at org.gradle.api.internal.tasks.TaskPropertyFileCollection.visitContents(TaskPropertyFileCollection.java:53)
        at org.gradle.api.internal.file.CompositeFileCollection.visitDependencies(CompositeFileCollection.java:187)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext$TaskGraphImpl.getNodeValues(CachingTaskDependencyResolveContext.java:96)
        at org.gradle.internal.graph.CachingDirectedGraphWalker$GraphWithEmpyEdges.getNodeValues(CachingDirectedGraphWalker.java:211)
        at org.gradle.internal.graph.CachingDirectedGraphWalker.doSearch(CachingDirectedGraphWalker.java:121)
        at org.gradle.internal.graph.CachingDirectedGraphWalker.findValues(CachingDirectedGraphWalker.java:73)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:64)
        at org.gradle.execution.taskgraph.TaskDependencyResolver.resolveDependenciesFor(TaskDependencyResolver.java:46)
        at org.gradle.execution.taskgraph.LocalTaskInfo.getDependencies(LocalTaskInfo.java:89)
        at org.gradle.execution.taskgraph.LocalTaskInfo.resolveDependencies(LocalTaskInfo.java:62)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.addToTaskGraph(DefaultTaskExecutionPlan.java:167)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.addTasks(DefaultTaskExecutionGraph.java:122)
        at org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:47)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
        at org.gradle.execution.DefaultTasksBuildExecutionAction.configure(DefaultTasksBuildExecutionAction.java:44)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
        at org.gradle.execution.ExcludedTaskFilteringBuildConfigurationAction.configure(ExcludedTaskFilteringBuildConfigurationAction.java:47)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.select(DefaultBuildConfigurationActionExecuter.java:36)
        at org.gradle.initialization.DefaultGradleLauncher$CalculateTaskGraph.run(DefaultGradleLauncher.java:297)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.initialization.DefaultGradleLauncher.constructTaskGraph(DefaultGradleLauncher.java:187)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:142)
        at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:121)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:154)
        at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
        at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
        at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:50)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:44)
        at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:79)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:44)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.invoke.LambdaConversionException: Invalid receiver type interface org.gradle.api.internal.project.ProjectInternal; not a subtype of implementation type interface org.gradle.api.internal.file.FileOperations

I found this conversation but the code which is throwing the exception is not combining two types https://github.com/spotbugs/spotbugs-gradle-plugin/blob/master/src/main/java/com/github/spotbugs/SpotBugsPlugin.java#L198-L202
I tried to clone the plugin repository and upgrade Gradle to a problematic snapshot but all tests passed.
Unfortunately, that is all I was able to debug so far.

Some interesting findings. When I clone the project locally and build a snapshot version on my machine which I add to the example project I don't get the error.

My findings are:

When I build spotbugs-gradle-plugin with Gradle 4.7 (also with 4.8, 4.9) and consume it in a project with Gradle 4.10-rc-1 the project configuration fails.
When I build spotbugs-gradle-plugin with Gradle 4.10-rc-1 and then consume it from a project with Gradle 4.10-rc-1 the project configuration is successful.

I found that the JDK version doesn't matter. I think changes in interfaces which ProjectInternal is implementing are the reason why this problem is appearing.
Gradle 4.9: interface ProjectInternal extends Project, ProjectIdentifier, FileOperations, ProcessOperations, DomainObjectContext, DependencyMetaDataProvider, ModelRegistryScope, PluginAwareInternal
Gradle 4.10-rc-1: interface ProjectInternal extends Project, ProjectIdentifier, HasFileOperations, DomainObjectContext, DependencyMetaDataProvider, ModelRegistryScope, PluginAwareInternal

@KengoTODA I would like to suggest following change which should help to be compatible across Gradle versions. https://github.com/spotbugs/spotbugs-gradle-plugin/pull/40 Would you have time to review it? We would love to adopt the new version of Gradle as soon as it is out and this would be a blocker for us. Thank you.

Yes, I was able to build the plugin with those distributions without a problem too. The issue is when you try to consume plugin build against older gradle Gradle API in a project using a newer version. The method reference is used but the conversation I posted shows documented bugs in some corner cases which I believe we are seeing here https://stackoverflow.com/questions/33929304/weird-exception-invalid-receiver-type-class-java-lang-object-not-a-subtype-of The problem might be initiated by the change in Gradle but arguably this plugin is using internal API which shouldn't be consumed so hard to say whos problem is the issue. Without a new release, the plugin cannot be consumed in a project using Gradle 4.10.

Example project mentioned in my issue shows the problem https://github.com/chali/spotbugsFailExample/tree/Gradle410LambdaConversionException. Would you, please, reconsider my PR #40

Thank you @KengoTODA for reopening. Gradle 4.10 was released today. I updated the example to use it and I can confirm that spotbugs-gradle-plugin 1.6.2 still fails with the latest Gradle release. Spotbugs users cannot use Gradle 4.10. Do you have any thoughts about my PR? Can we merge it and create version 1.6.3?

@KengoTODA can we get a release with the fix from @chali. This issue is a blocker for upgrading Gradle in our enterprise. Thanks.

Also I can't build my projects with SpotBugs Gradle Plugin 1.6.2 and Gradle 4.10 with the same error message. The PR chali suggested is quite simple and well documented. Why won't your apply it?

Note that the above reference from the Gradle team is simply to point a user at this issue since they were experiencing the same problem reported here. It is not meant to indicate that Gradle is doing anything about this issue.

@KengoTODA thanks for merging the PR. Can we get a release?

Is there something holding up this being released?

Yes! @KengoTODA I'm happy to help.

@KengoTODA please respond. We are getting to the point the project may need to be forked and nobody wants that level of confusion if it can be so easily avoided.

Temporary release published for those craving a release.
WARNING: I'll might delete this release after 6 months to a year year out. If you need to do a git bisect with this version, you might want to avoid it and wait for an official release.
https://plugins.gradle.org/plugin/com.github.spotbugs.temporary

A new version is on its way: https://github.com/spotbugs/spotbugs-gradle-plugin/pull/48

Thank you @KengoTODA and @henrik242 for the 1.6.3 release! I just used it in my Gradle 4.10 build and it works great. Cheers!

1.6.3 has been released.
BTW our repository has RELEASE_PROCEDURE.md so everyone can propose a PR to release this plugin. Please have a try next. :)


https://docs.microsoft.com/en-us/azure/security-center/security-center-permissions    I would like to understand the table mentioned in the document.May i know why security admin cannot apply the recommendations (quick fix)).I need a proper understanding on this permissions who could do what

Azure documentation issue guidance
Thanks for opening an issue in the Azure technical documentation repository.
We use GitHub issues as the primary channel for customer and community feedback about the Azure documentation.
Creating an issue
We prefer that you create documentation feedback issues using the Feedback link on the published article - the feedback control on the doc page creates an issue that contains all the article details so you can focus on the feedback part.
You can also create a feedback issue here in the repo. If you do this, please make sure your issue lists:

[ ] The relevant Azure service or technology.
[ ] A link to the published documentation article that you have feedback about.
[ ] Clear, specific feedback that the author can act on.

Pull requests and article contributions
If you know the change that is needed in an article, we encourage you to submit the changes directly using a pull request. If the change is large, or if you want to contribute an entire article, follow these guidelines:

[ ] Don't surprise us with a big pull request or a pull request with a new article! Submit an issue that describes the details of the proposed large change or new article.
[ ] Include the service or technology area.

We'll route the issue to the appropriate content team for review and discussion.
Tech support and product feedback
If you would like to contact Microsoft about other things, such as product feedback or tech support, please review these guidelines:

If you need technical support using Azure, the paid and free support options are described here: https://azure.microsoft.com/support/options/.

Each article in the Azure technical documentation contains a product feedback button - it's best to submit product feedback directly from a relevant article. Otherwise, you can submit product feedback for most Azure products in the following product feedback forum: https://feedback.azure.com/forums/34192--general-feedback.

@priyankareddy20 Can you please provide us with the URL of the Azure Doc you are having issues with? We look forward to your reply.

I did provide the URL in the issue itself
On Thu, May 21, 2020, 09:23 SumanthMarigowda-MSFT<EMAIL_ADDRESS>wrote:

@priyankareddy20 https://github.com/priyankareddy20 Can you please
provide us with the URL of the Azure Doc you are having issues with? We
look forward to your reply.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/55277#issuecomment-631863422,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APPAQHLBNWIUBEV4JB7IU4TRSSQS3ANCNFSM4NGBSLKQ
.

https://docs.microsoft.com/en-us/azure/security-center/security-center-permissions
kindly explain the table mentioned w.r.t permissions
I see Security Admin cannot apply the quick fix recommendations is that so??
I  also see, dismiss alerts and recommendations in the table. There is no dismiss recommendations option in ASC.Kindly provide screenshot or steps if there is an option
Subscription Contributor cannot edit the security policy as per the table
however in the other documents, it is mentioned as Subscription contributor can change the security policy
Who can modify a security policy?
To modify a security policy, you must be a Security Admin or an Owner or Contributor of that subscription.
https://docs.microsoft.com/en-us/azure/security-center/faq-general

@priyankareddy20 The Security Admin is not able to apply security policy because this role is designed as a role which will reside with the first level front line servicedesk within the IT organisation. Every organisation may have multiple teams and every team would have their own resource groups on Azure subscription which they would use for any azure assets like VMs, app service instance , azure logic apps etc. Within a company not all the business units have a stringent security requirement and hence the decision to apply a security recommendation has been left for the asset owner. For example the Security Admin can inform the resource group owner about a possible security recommendation and if they cannot make that change they they can ask for an exception for which the IT should have due process.
You can take an example of work from home situation. Lets say a team had 10 VMs within resource group running a critical LOB app and there are NSG rules due to which these VMs  allow RDP access only through company's office locations. However due to the mandatory work from home situation like , it is needed to enable RDP from outside company network for the team to perform thier daily work. Now this will generate a security recommendation if security policy has RDP port open on NSG as a problem. In this case the security admin will inform the team owning the VMs about possible security issue and how to apply the fix or take an exception. If there is no response from them then they can escalate it to subscription owner. Its about usability vs security . No application team wants any disruption of their running application without being informed and security is a shared responsibility for everyone within an organisation and the cloud asset owner must also be equally responsible for security .
About your other question on if subscription owner can modify the security policy or not , I am engaging the author of the document for clarification. It may be a document error but I am not sure.
https://docs.microsoft.com/en-us/azure/security-center/faq-general#who-can-modify-a-security-policy
@memildin

@memildin
As per the Security Center FAQ Subscription Contributor can modify the Security policy . But as per the table provided in the Security Center Permissions article they cannot edit the policy.  Could you please help provide some clarification?
Thank you.

The Subscription Contributor role can't edit the assignment.
The change to the doc will go live within the next few days. Thanks!
#please-close

I also see, dismiss alerts and recommendations in the table. There is no dismiss recommendations option in ASC.Kindly provide screenshot or steps if there is an option


Local media playback

Is there a way for librespot-jave to playback local content the same way Spotify desktop does?
If yes, can you please provide a link or some instructions on how to configure it?
Many thanks

Right now there is no way to reproduce local tracks because I never thought that would be useful. Could you describe your usa case/scenario? Just to understand how it could work.

I've set up librespot-java to run as a service on a headless raspberry pi. The audio is then routed through darkice to a local icecast server that works as a mini radio station for other devices in the house.
I have an extensive collection of bootlegs, mashups and recordings of live DJ sets that I would like to be able to play back along with spotify tracks. I can do that with the regular spotify desktop client and I can even create playlists with mixed content.
The actual files can reside on a network share or locally on the pi.
Let me know if you need more info

I never thought of using a network share, but it could work this way. The problem before was that the client only communicates (I think) the name of the file which would make pretty unpractical synchronizing tracks between two devices without additional software.
I don't think there's any way to create a "custom" local track, so the user has to add the mounted network share to the local files on the desktop client and then setup librespot to search the local tracks on said network share.
Not too bad.

Yes, I suppose in my case the network share should be served by the pi itself but in theory any network share will work?
I'm not a JAVA dev but I do node/js/perl etc. I can help you test/debug the enhancement. My only problem is I haven't managed to compile librespot-java from source on the pi and I couldn't find any instructions on how to cross-compile on my Ubuntu desktop.
FYI I've created a simple nodejs script that runs as a service and hooks on the librespot-java api. Its role is to update the icecast metadata whenever it receives the metadataAvailable event since darkice doesn't seem to support this natively.

My only problem is I haven't managed to compile librespot-java from source on the pi and I couldn't find any instructions on how to cross-compile on my Ubuntu desktop.

With Java there is no need to cross-compile. Just run mvn clean package to create the JAR executables, then you can copy them over to your Pi.

Oh that's nice, cheers

I just wanted to add something I only just recently discovered: the ability for mobile spotify clients to "download" playlists with local files created on a desktop client. Maybe of use to you
https://support.spotify.com/us/using_spotify/features/listen-to-local-files/

This does seem very useful, similar to how the android works. I load files on my desktop, create a playlist, then click download on a the playlist on my phone, now I can listen to those tracks on my phone through Spotify. Would be useful to have some sort of mechanism to tell this app to do this with some playlists.

I have not forgotten about this! I am in the process of implementing local files playback.

I have not forgotten about this! I am in the process of implementing local files playback.

How will we get to decide which playlists or songs to download to the device?

How will we get to decide which playlists or songs to download to the device?

For the moment you'll have to point librespot-java to where you have your local files and it'll take them from there. Following the shared drive idea.

Turns out this is harder than what I thought, the Spotify client doesn't communicate to librespot-java where the file really is, but just some metadata (name, artist, album, duration).

First of all thanks for keep looking at this, great news!
I don't have much insight to offer as to how the spotify tranfer protocol really works but what I have noticed is that spotify will auto-detect if local files in a playlist are present on your system based on some kind of hash. What I mean by that is:

On a PC with spotify client installed, point the client to a folder with local media
Add some of these files in a playlist
Share this playlist with any other user (including yourself on a different PC). They wont be able to download or play your files local files... but
Share the files with the user. They need to download them to a folder and configure spotify client to play local media from that folder
Now spotify can play these files from the playlist. No extra config required. As long as the files are identical, it will play them

Hope that helps

Mhh, I wonder if the client indexes the folder and matches the files based on the metadata (that's not optimal because there's nothing preventing two tracks from having the exact same metadata). But I cannot see any identifier being transmitted with the tracks. It makes sense for it not to have the full path to file because of security reasons, but at least the filename. Or maybe I am missing some feature flag in the client configuration.

I can definitely do some tests and see if the match is based on metadata and/or filename. Will keep you posted


Standalone installation in CT (LXC) not working (?)

Would it be possible to create a working script for root users?
(I have no idea about that...)
In a CT there is (usually) only the root user...
The script warns at the beginning... but largely runs through. But when you then run start.sh, the .venv folder is missing...
I know Proxmox better than Docker and can look into any CT with Webmin, so it would be really great if that were possible.
Greetings

Wäre es möglich ein funktionierendes Script für Root Nutzer zu erstellen?
(Ich hab von sowas keine Ahnung...)
In einer CT gibt es (meist) nur den Root Nutzer...
Das Script warnt am Anfang... läuft aber weitestgehend durch. Wenn man dann aber start.sh ausführt, fehlt der .venv Ordner...
Ich kenne Proxmox besser als Docker und kann mit Webmin in jede CT schauen, daher wäre es echt super, wenn das ginge.
Grüße

Can't you install the docker container since you're using LXC?

Well, that's what I don't want!

First of all: I am not an IT person.
I once read that Docker containers and LXC's have something in common in their base.
I create CT's using the Proxmox interface. I had already tested the effect of choosing such a container as an image for the LXC... Doesn't work! (Well,... That would be too easy...)
I also don't want to run a full Docker in an LXC, because if it works, it ignores the CT restrictions regarding e.g. RAM and uses the full RAM...
No matter whether Pi-Hole, Wire-Guard, Nextcloud or Homer, everything runs on its own LXC, installed normally by hand like on a Linux PC.
So it will work somehow, just unfortunately not with the current script.

I'm not very familiar with proxmox, but couldn't you for instance spin up an Ubuntu 22.04 container in LXC and then install Spoolman as a non-root user in the standalone way, inside this ubuntu container?

I would have to look at that again.  Because of the Nextcloud database user, for example, I think that this should be possible.  But since I always use the root user that is created when setting up an LXC, I have to look into it more.

Could you try the following commands in succession and see if it works?

python3 -m pip install --user --upgrade pip
pip3 install --user setuptools wheel pdm

I feel like I know too little to move on from here, and will call quits on this case for now. Someone else with more experience in this environment needs to assist here

I installed the standalone version successfully in an LXC using a non-root user. Running something like spoolman as root is probably not a good idea anyways. Assuming a Ubuntu LXC and being logged in as root just create a new user with adduser spoolman and give it sudo privileges with  usermod -aG sudo spoolman. Then change into the new user with su spoolman and follow the installation instructions.

I can't say at the moment whether my test LXC was Ubuntu or Debian (proxmox LXC), I had to "install" the sudo function myself... lol.  I had no success with a non-root user.  Can you tell us more about your approach?

Alright, I've done some testing. It seems it is in fact not working in a freshly installed debian 12 LXC. The install script fails without error in the same place you described at Updating pip....
I succeeded though in a fresh Ubuntu 22.04 LTS LXC. Here are my steps for installation after the initial LXC setup:

As root update the system with apt update && apt upgrade -y
install curl and unzip with apt install curl unzip
add the new non-root user with adduser spoolman
add the new user to sudoers group with usermod -aG sudo spoolman
switch to this user with su spoolman
switch to the users home directory with cd
download the latest version of Spoolman with wget https://codeload.github.com/Donkie/Spoolman/zip/refs/tags/v0.13.1 -O Spoolman.zip
unzip it with unzip Spoolman.zip
enter the directory with cd Spoolman-0.13.1
install it with the provided script bash ./scripts/install-debian.sh

unfortunately the installation of the systemd service failed with the error "failed to connect to bus: $dbus_session_bus_address and $xdg_runtime_dir not defined", which I have not diagnosed. But to run Spoolman independent from the unprivileged users login you need to set up a systemwide service anyways, by exiting the su session with exit and creating a new file at:
/etc/systemd/system/spoolman.service
...containing:
`[Unit]
Description=Spoolman
[Service]
Type=simple
ExecStart=/home/spoolman/Spoolman-0.13.1/scripts/start.sh
WorkingDirectory=/home/spoolman/Spoolman-0.13.1
Restart=always
User=spoolman
[Install]
WantedBy=default.target
Then runningsystemctl start spoolman && systemctl enable spoolman` to launch and enable autostart of spoolman. After this I was able to access the webinterface.

I found a temporary solution to install Spoolman with the script in a Proxmox lxc container (Ubuntu 23.10) via root user.
First I edited the install-debian.sh via nano and removed all "|| exit 1." Than I installed to following packages:
apt install python3-pdm
apt install curl
Hope this helps until there is a (maybe) besser solution for the installation. @Donkie Maybe the packages python3-pdm should be checked and installed within the script?

@stony2k yeah I noticed this as well in Debian Bookworm, you can't install user level pip packages, instead you need to use apt-get. I have fixed this in the latest commits, and will release an update later in the week.

Closing this now since it should be working with update 0.14.
Please reopen if that's not the case

Just to share:
I found this today: https://tteck.github.io/Proxmox/#spoolman-lxc


Noel said no talking so just went ahead and commited this... it's % complete for a customer

Pull latest and resubmit


Dragging/sorting item in the nested cdkDropList always goes to the outermost cdkDropList.

What are you trying to do?
Dragging or sorting inside/outside the nested droplist.
Allow items in the nested droplist sorting inside/outside itself, even drag into the nested droplist of nested droplist and vice versa.
P/S: All droplists are linked to each other.
The current behaviour is that when to start dragging a nested list item, it will instantly get and move to the outmost container/droplist instead of within the nested droplist. It takes the outermost container because of the cursor is also located in it and according to _getSiblingContainerFromPosition function, it will take the first sibling container (which is outermost container) and ignore the inner containers.
Also, the function only considers getting the siblings and ignores the current container itself causing that we cannot do any sorting in the nested container and always move to the first outermost container.
What troubleshooting steps have you tried?
I tried to modify the  _getSiblingContainerFromPosition which is not recommended solution.
I do not know is there any way to achieve it but it works perfectly after I modify the function.
_updateActiveDropContainer should call _getContainerFromPosition which includes current container itself and also sibling containers, and resort it ascending order by the number of the droplist contains (find function will get the innermost container first instead of the outermost container).
Please advise. Thank you so much :)
Reproduction
We can only help if we can reproduce the problem ourselves.
https://stackblitz.com/edit/components-issue-dmuqfv?embed=1&file=app/zoo/zoo.component.ts
Steps to reproduce:

Items can be drag into another droplist.
Only items under the outer container can do the sorting.
When doing sorting for nested droplist items, it will move to the outer container.

P/S: Please ignore other buggy things since this sample code is to demonstrate for the mentioned issue only.
Environment

Angular: 8
CDK/Material: Drag and Drop
Browser(s): Google Chrome
Operating System (e.g. Windows, macOS, Ubuntu): Windows Server 2016

Sorry. This should be posted at angular/material.


[BUG] - Github Actions CI for Windows is broken

Internal/External
Internal   if an IOHK staff member.
Area
CI
Summary
The Github Actions CI for Windows has stopped working
Steps to reproduce
Create a PR and observe the Windows CI is broken.
The error in the "Build" step is as follows:
Failed to build HsOpenSSL-<IP_ADDRESS>. The failure occurred during the configure
step.
Build log (
C:\cabal\logs\ghc-8.10.7\HsOpenSSL-<IP_ADDRESS>-20704ddca06ada5f5f5da43cd972c8ee33724e64.log
):
[1 of 1] Compiling Main             ( D:\a\cardano-node\cardano-node\dist-newstyle\tmp\src-2804\HsOpenSSL-<IP_ADDRESS>\dist\setup\setup.hs, D:\a\cardano-node\cardano-node\dist-newstyle\tmp\src-2804\HsOpenSSL-<IP_ADDRESS>\dist\setup\Main.o )
Linking D:\a\cardano-node\cardano-node\dist-newstyle\tmp\src-2804\HsOpenSSL-<IP_ADDRESS>\dist\setup\setup.exe ...
cabal-<IP_ADDRESS>.exe: Failed to build HsOpenSSL-<IP_ADDRESS> (which is required by
test:chairman-tests from cardano-node-chairman-1.36.0, test:cardano-node-test
Configuring HsOpenSSL-<IP_ADDRESS>...
from cardano-node-1.36.0 and others). See the build log above for details.
setup.exe: Missing dependencies on foreign libraries:

* Missing (or bad) header file: openssl/asn1.h
* Missing (or bad) C libraries: ssl, crypto
This problem can usually be solved by installing the system packages that
provide these libraries (you may need the "-dev" versions). If the libraries
are already installed but in a non-standard location then you can use the
flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.If
the library files do exist, it may contain errors that are caught by the C
compiler at the preprocessing stage. In this case you can re-run configure
with the verbosity flag -v3 to see the error messages.
If the header file does exist, it may contain errors that are caught by the C
compiler at the preprocessing stage. In this case you can re-run configure
with the verbosity flag -v3 to see the error messages.

Expected behavior
It should pass
System info (please complete the following information):

OS Name: Windows
OS Version N/A
Node version N/A
CLI version  N/A

The error can also manifest in this manner:
Failed to build secp256k1-haskell-0.6.1. The failure occurred during the
configure step.
Build log (
C:\cabal\logs\ghc-8.10.7\secp256k1-has_-0.6.1-685d43eb3dd44322adb734f9f7d60d64cfdc366d.log
):
Configuring library for secp256k1-haskell-0.6.1..
cabal-<IP_ADDRESS>.exe: Missing dependency on a foreign library:
* Missing (or bad) C library: secp256k1
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
cabal-<IP_ADDRESS>.exe: Failed to build secp256k1-haskell-0.6.1 (which is required
by cardano-ledger-babbage-test-<IP_ADDRESS> and cardano-crypto-tests-2.0.0). See
already installed but in a non-standard location then you can use the flags
the build log above for details.
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.If the

library file does exist, it may contain errors that are caught by the C
compiler at the preprocessing stage. In this case you can re-run configure
with the verbosity flag -v3 to see the error messages.

See https://github.com/input-output-hk/ouroboros-network/actions/runs/3387418765/jobs/5628140073

Checking how secp256k is installed in the "Install secp256k1" step for Windows:
libtool: install: /usr/bin/install -c .libs/libsecp256k1.dll.a /mingw64/lib/libsecp256k1.dll.a
libtool: install: base_file=`basename libsecp256k1.la`
libtool: install:  dlpath=`/bin/sh 2>&1 -c '. .libs/'libsecp256k1.la'i; echo libsecp256k1-0.dll'`
libtool: install:  dldir=/mingw64/lib/`dirname ../bin/libsecp256k1-0.dll`
libtool: install:  test -d /mingw64/lib/../bin || mkdir -p /mingw64/lib/../bin
libtool: install:  /usr/bin/install -c .libs/libsecp256k1-0.dll /mingw64/lib/../bin/libsecp256k1-0.dll
libtool: install:  chmod a+x /mingw64/lib/../bin/libsecp256k1-0.dll
libtool: install:  if test -n '' && test -n 'strip --strip-unneeded'; then eval 'strip --strip-unneeded /mingw64/lib/../bin/libsecp256k1-0.dll' || exit 0; fi
libtool: install: /usr/bin/install -c .libs/libsecp256k1.lai /mingw64/lib/libsecp256k1.la
libtool: install: /usr/bin/install -c .libs/libsecp256k1.a /mingw64/lib/libsecp256k1.a
libtool: install: chmod 644 /mingw64/lib/libsecp256k1.a
libtool: install: /mingw64/bin/ranlib /mingw64/lib/libsecp256k1.a
 /usr/bin/mkdir -p '/mingw64/include'
 /usr/bin/install -c -m 644 include/secp256k1.h include/secp256k1_preallocated.h include/secp256k1_extrakeys.h include/secp256k1_schnorrsig.h '/mingw64/include'
 /usr/bin/mkdir -p '/mingw64/lib/pkgconfig'
 /usr/bin/install -c -m 644 libsecp256k1.pc '/mingw64/lib/pkgconfig'
make[2]: Leaving directory '/d/a/ouroboros-network/ouroboros-network/secp256k1'
make[1]: Leaving directory '/d/a/ouroboros-network/ouroboros-network/secp256k1'

The install directories are:
/mingw64/include
/mingw64/lib/pkgconfig
/mingw64/include

These are POSIX paths but don't really indicate where the files are on the Windows filesystem.
After some searching I found that they live here:
D:/a/_temp/msys64/mingw64/lib/pkgconfig/expat.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/formw.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/gmp.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/gmpxx.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/gnurx.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/iconv.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/isl.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/libcrypto.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/libffi.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/liblzma.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/libpkgconf.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/libsecp256k1.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/libssl.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/libtasn1.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/libxxhash.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/libzstd.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/menuw.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/mpfr.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/ncurses++w.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/ncursesw.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/oniguruma.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/openssl.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/p11-kit-1.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/panelw.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/python-3.10-embed.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/python-3.10.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/python3-embed.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/python3.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/readline.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/regex.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/sqlite3.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/termcap.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/tre.pc
D:/a/_temp/msys64/mingw64/lib/pkgconfig/zlib.pc

From this I deduce that /mingw64 corresponds to D:/a/_temp/msys64/mingw64 on the Windows filesystem.

Then I noticed this like in the "WIN: Setup Haskell" step:
# Modified cabal config extra-lib-dirs
extra-lib-dirs: C:\ghcup\ghc\8.10.7\mingw\x86_64-w64-mingw32\lib, C:\msys64\mingw64\lib

See https://github.com/newhoggy/secp256k1-haskell/actions/runs/3385765285/jobs/5624303772
This shows that there another location where system libraries are installed on the C drive:
C:\msys64\mingw64\include
C:\msys64\mingw64\lib
C:\msys64\mingw64\lib\pkgconfig

I tried solving the problem by telling cabal where the D: installation location like this:
package secp256k1-haskell
  extra-include-dirs: D:/a/_temp/msys64/mingw64/include
  extra-lib-dirs: D:/a/_temp/msys64/mingw64/lib

Using this method, the secp256k1-haskell library builds fine:
https://github.com/newhoggy/secp256k1-haskell/actions/runs/3385490495/jobs/5623693479

I tried an alternate way to fix the problem:
    - name: Setup additional gcc paths
      run: |
        echo "C_INCLUDE_PATH=D:/a/_temp/msys64/mingw64/include;$C_INCLUDE_PATH" >> $GITHUB_ENV
        echo "LIBRARY_PATH=D:/a/_temp/msys64/mingw64/lib;$LIBRARY_PATH" >> $GITHUB_ENV

This failed in this manner:
db stack: ["C:\\cabal\\store\\ghc-8.10.7\\package.db","C:\\Users\\runneradmin\\AppData\\Roaming\\ghc\\x86_64-mingw32-8.10.7\\package.conf.d","C:\\ghcup\\ghc\\8.10.7\\lib\\package.conf.d"]
modifying: C:\cabal\store\ghc-8.10.7\package.db
flag db stack: ["C:\\cabal\\store\\ghc-8.10.7\\package.db"]
writing cache C:\cabal\store\ghc-8.10.7\package.db\package.cache
Installed store entry
ghc-8.10.7\unliftio-core-<IP_ADDRESS>-812e2f03ca36773ac83ffa358a6780387cd3061d
Completed    unliftio-core-<IP_ADDRESS> (lib)
packages definitely up to date:
packages previously probably up to date: secp256k1-haskell-0.6.1-inplace, secp256k1-haskell-0.6.1-inplace-spec
packages now probably up to date:
packages newly up to date:
packages out to date: secp256k1-haskell-0.6.1-inplace, secp256k1-haskell-0.6.1-inplace-spec
packages invalid due to dep change: QuickCheck-2.14.2-c4024bcba1960207213b5c6afe2164dd5c6ab148, abstract-deque-0.3-f31b7d4360341d561cd810a04a3efa6e112223c2, base16-<IP_ADDRESS>-bd4761c7858798c071a6ee8cdfaf220fa639512c, entropy-<IP_ADDRESS>-624b7762bff648dccb044307f50c0f986fa25a1a, hashable-<IP_ADDRESS>-f678339d380c1ae95524eb8bee8b65e2b5462218, hspec-2.10.6-69ae98da7194d21120dbd639caf320585d173bdc, hspec-core-2.10.6-b9010f80a1388ddd4675a3b967e3de6e949ba94e, math-functions-<IP_ADDRESS>-440f1e6012ad5bf637f9a3e8e842212c96e7d64b, monad-par-0.3.5-fdca88dec172d36828cd8a2b1d6fae2773473350, monad-par-ext_-0.3.3-451c268446cf3110b95cee847d6d6424246609f2, mwc-random-<IP_ADDRESS>-bbda3a23212bc55d8d22f5351c47333065d776b5, quickcheck-io-0.2.0-ef8b4739e20ac41c72e22247906b685ffcff910b, random-<IP_ADDRESS>-153631b804c32218f972326bc1df71a326b08f87, secp256k1-haskell-0.6.1-inplace, secp256k1-haskell-0.6.1-inplace-spec, text-short-0.1.5-6f496764959f28a04e11eed9ea133fa5c34d17df, tf-random-0.5-1148d11836c8407c5e84c80f264e065787e7da7e, vector-<IP_ADDRESS>-99ac30ff503d66695483f91e08a27a8057cc5bac

packages invalid due to build failure: entropy-<IP_ADDRESS>-624b7762bff648dccb044307f50c0f986fa25a1a
cabal-<IP_ADDRESS>.exe: Failed to build
entropy-<IP_ADDRESS>-624b7762bff648dccb044307f50c0f986fa25a1a. The failure
occurred during the configure step. The exception was:
D:\a\secp256k1-haskell\secp256k1-haskell\dist-newstyle\tmp\src-6100\entropy-<IP_ADDRESS>\dist\setup\setup.exe:
createProcess: invalid argument (Exec format error)
Failed to build secp256k1-haskell-0.6.1 because it depends on
secp256k1-haskell-0.6.1 which itself failed to build.


UX: Improve calcPrice

Suggest: Show only first line & add link to discount (Learn More)

Hmmm, let's go with:
Based on your specifications and TFChain TFT balance, your deployment cost is 9.04 USD/Month.
Learn how to unlock discounts

Verified on https://getmastodon.threefold.io
The section for the deployment price and discounts was improved with the same format mentioned above. and the Learn how to unlock discounts. link redirects to https://library.threefold.me/info/threefold#/cloud/threefold__pricing?id=discount-levels


Conflict Fix for environment-win.yml

Using the old environment file attempts to get ' h5py=2.3.1=np18py27_0 ', this depends on numpy 1.8, however numpy 1.7 is installed using this environment file. This stalls conda.
I was able to generate a working klustaviewa on Windows after making this change.

Please do note, that on my machine I find the Similarity Matrix View to be different from what I was used to on 0.3.0 .
As I have only used these two versions I am not sure if this 'fix' has broken some other dependency.
0.3.0

0.4.7


Multi-Line input

You can write a message like "first line||second line" and the message will be sent and received like the following:

first line
second line

To send an empty line write: "first line|| ||third line" and the message will be the following:

first line
third line

Please add "send file" feature


Editing a SASS partial in v0.20 does not trigger the output CSS file to be regenerated when "always enable controller" is false

Bear with me here... This takes a bit of setup to explain. We were using v0.13 and recently upgraded to v0.20. As we began to develop locally, we noticed our CSS updates did not seem to be picked up.
Our team has our local development environments asset_compress.local.ini configured this way:
[General]
; Keep cacheConfig at false for production where assets are generated during
; the build/deployment process. If set to true in PROD, the wrong full path
; are being cached causing errors.
cacheConfig = false
; You should probably set this to true locally so you don't have to regenerate
; asset everytime
alwaysEnableController = false

We use this configuration to have the files generated on every request. We use SASS and make use of partials. Here is a sample from asset_compress.ini:
[css_main.css]
files[] = main.css.scss

And a brief snippet from that SASS file:
@import "partials/notes";
@import "partials/tasks";

@import "partials/nprogress";

.import-link {
    font-size: 14px;
    padding-left: 15px;
}
...

If I edit partials/notes, the change does not seem to be applied. I dug into the code and found the reason.
AssetCompressor::beforeDispatch() eventually calls AssetCache::isFresh() passing in main.css as the "target". isFresh() takes main.css and says "Hey, the file list for this target only includes main.css.scss". Where that wasn't touched, it is marked as fresh, and AssetCompressor::beforeDispatch() decides to use a file previously cached on disk.
Comparing this flow to what was in v0.13 shows this is a different strategy than before. v0.13 seemed to be comparing data within the event passed into beforeDispatch() and using that to determine if the file should be rebuilt rather than going to the actual file list configured for the target asset.
I've been staring at this to see if could pull together a PR to go with this, but the change seems so fundamental a shift. Basically, isFresh() would somehow need to identify the file in the target's list of files is a SASS file, parse it for imports, and then check the freshness of the imports. But how far down the rabbit hole? Do the imports have imports we need to check?
Our team can work around this by either clearing the cache on disk or touching the SASS file, but I'm willing and hoping to brainstorm a possible solution to this. I also realize this version may no longer be supported. I'll look into the latest code to see if there is something I could back port but am hoping the author(s) might be able to shed some light on the change.

I don't think there will be much chance in getting fixes made to 0.13, as it is 4+ years old. To be honest my memory of why that behavior changed has been lost over the years.
The recursive import logic you're describing has been implemented in the 3.x release series. I've never made an effort to back-port it as I no longer maintain any CakePHP 2 applications. That code can be found here and here.
If you'd like to backport the dependency resolution it will be a pretty big change and you'd want to build off of the 2.x branch and not off of 0.20 as that tag is almost 4 years old as well.

@markstory
Thank you for pointing me to the code in the 3.X release. I've cobbled together a PR for the 2.X branch based on it. Bunch of code duplication going on in there, but I kept it simple for now to get things running.


Rasterband documentation refinements.

[x] I agree to follow the project's code of conduct.
[x] I added an entry to CHANGES.md if knowledge of this change could be valuable to users.

Minor refinements to rasterband docs.

@michaelkirk Thanks for the review!


android bubble event on wrong element

First I tried something simple but that works as expected http://output.jsbin.com/nepute
So i can only show you a complex example with lots of things going on because I have no idea what is causing the problem.
Note this is only happening on my nexus 7 that is uptodate with the latest android version.
Step 1)
Open http://gcl-12.appspot.com/ in chrome android
Step 2)
Click the last radio button

Step 3)
Pic something in the list but the tricky part is you have to aim with something from the previous page

Step 4)
You wil notice that it switch pages but also triggers the click event on the changed page element where your finger was located.

Which is especially enoying if your finger was pointing to a url.
I hope you can reproduce because it is driving me nuts :)
Note you wil have to try a few times depending on how you tap
PS The ripple effect is also very buggy on my android and the animation get stuck often.

This looks like the iron-list is synchronously being shown and hidden.
When the list is hidden, the synthesized mouse events created by the touch are focusing the native elements.
Can you try closing the dialog containing the iron-list asynchronously?

I am using on-selected-item-changed="itemChanged" ? Is there a other way?
            <iron-list id="list" class="flex" items="{{queryChanged(query)}}" on-selected-item-changed="itemChanged" selection-enabled>
                <template>

                        {{item.CL_NOMCLUB}}
                        {{item.CL_CODCLUB}}
                        {{item.CL_CODPAYS}}

                </template>
            </iron-list>

itemChanged: function() {
                if (this.$.list.selectedItem === null) return;
                this.acp = this.$.list.selectedItem.CL_CODCLUB
                this.club = this.$.list.selectedItem.CL_NOMCLUB
                this.page = 0;
            },

Aaaaa you mean like this right?
this.async(function() {this.page = 0;}, null, 1000);
trying it hold on

Yeeeeeej it works :D alelooia

Note that I need to set the timeout high enough like 500 or something, where the user can still manage to select a other thing in the list quicly

ps do you also know why my ripple animation sucks on android chrome?

Wait a minuten I need to do this sync trick for the date picker too. PS you can't expect for developers to apply this sync thing to any ok or cancel button on every overlay right ?


Fix init.d goagent service process handling.

Fixed goagent init.d script service process handling.
The init.d script (go-agent-service) tries to handle the agent process using pgrep looking for token "go-agent{{ AGENT_NUMBER }}-running". But the process does not have this token in it "full command line", it was there in previous versions of this role, but was removed as the goagent jar does not supported unknow parameters. I fixed it adding the token as a "-D" parameter supported to any jar.

Due this bug the service was not able to start. init.d service was exiting with ""Error starting Go Agent{{ item }}."


mobile css

start adding media queries for various devices - global styles?

nav and content need to be adjusted for mobile


url parse failed of https://weibo.com/1836384951/K1upcCwot?type=comment

annie -d https://weibo.com/1836384951/K1upcCwot?type=comment
annie: version 0.10.3, A fast, simple and clean video downloader.
URL:         https://m.weibo.cn/1836384951/K1upcCwot?type=comment
Method:      GET
Headers:     http.Header{
"User-Agent":      {"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"},
"Accept":          {"text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"},
"Accept-Charset":  {"UTF-8,*;q=0.5"},
"Referer":         {"https://m.weibo.cn/1836384951/K1upcCwot?type=comment"},
"Accept-Encoding": {"gzip,deflate,sdch"},
"Accept-Language": {"en-US,en;q=0.8"},
}
Status Code: 200
Downloading https://weibo.com/1836384951/K1upcCwot?type=comment error:
url parse failed

At the same time, I can use annie to download from https://weibo.com/1642632622/K1sJttTYz?type=comment

annie -d https://weibo.com/1836384951/K1upcCwot?type=comment

This URL does not exist and I can't reproduce it.

At the same time, I can use annie to download from weibo.com/1642632622/K1sJttTYz?type=comment

This works for. can you try again with following command:
lux "https://weibo.com/1836384951/K1upcCwot%5C?type%5C=comment"

The original URL does not exist now.


Pothos Python Error

Hello,
i currently have problems using Pothos. My problem is that I get the following error messages:
I am aware that this error is known. But I already installed Python 3.6 and Numpy and added Python3.6 to the path. Unfortunately this didn't work.
I would like to use blocks programmed with Python. Unfortunately the "Quadrature Demod" block I have from GNU Radio Companion shows me an error message. This is about "Callable Argument Error: Pothos failed to convert arg0 Object Convert Error".
I'd be very happy for help.
Kind Regards,

i currently have problems using Pothos. My problem is that I get the following error messages:
I am aware that this error is known. But I already installed Python 3.6 and Numpy and added Python3.6 to the path. Unfortunately this didn't work. I would like to use blocks programmed with Python.

What error is a known error, how is python or numpy involved? Are you making custom blocks in python with https://github.com/pothosware/PothosPython/wiki

Unfortunately the "Quadrature Demod" block I have from GNU Radio Companion shows me an error message. This is about "Callable Argument Error: Pothos failed to convert arg0 Object Convert Error".

I looked at the block. So python isnt a dependency here for runtime for what its worth. The .grc file for quad demod comes with an example formula that has been copied over "samp_rate/(2*math.pi*fsk_deviation_hz/8.0)", but there is no definition for sample rate for deviation, so the error is expected. My guess is that you just have to fill in the gain.

Ah ok, thank you.
No i actually dont want to make custom blocks, i just want to use all blocks available.
I thougth the error with the "Quadrature Demod" probably comes from the Python error.
I will check if setting gain for this Block helps.
Known Error: https://discourse.myriadrf.org/t/popthossdr-error-indicating-python-error/1636/12
There are lots of duscussions about this Error. Thats why i said its a known error...
I forgot to post the exact Error-Line in my first post. After the ":" i wanted to put the Error Line in, but i forgot. I will edit my post on Monday...
Thank you for your help

Pothos.PluginLoader.load: Plugin Module Error: Pothos::PluginModule(C:\Program Files\PothosSDR\lib\Pothos\modules0.5\proxy\environment\PythonSupport.dll): failed safe load

This error? Do you know what options you checked when you ran the installer?

 I did a full installation and checked all available boxes for not missing a plugin oder anything. I also always checked boxes regarding "add to path"...
I also installed python 3.6 and then used pip to install numpy...

I also tried reinstallint pothos several time. I did a full installation and checked all available boxes for not missing a plugin oder anything. I also always checked boxes regarding "add to path"...

Make sense then, these are advanced options that are by default unchecked and only available in custom install mode.
cpack_add_component(python2_exclusive
    DISPLAY_NAME "Pothos Python2 blocks development plugin"
    DESCRIPTION "Python2 blocks plugin for Pothos.\nInstall only Python2 or Python3 support, but not both."
    GROUP advanced
    DEPENDS runtime)

cpack_add_component(python3_exclusive
    DISPLAY_NAME "Pothos Python3 blocks development plugin"
    DESCRIPTION "Python3 blocks plugin for Pothos.\nInstall only Python2 or Python3 support, but not both."
    GROUP advanced
    DEPENDS runtime)

I also installed python 3.6 and then used pip to install numpy...

The latest installer is using python3.7.
But in any case, if you are not developing python blocks then just use "Full installation" option and do not check extra boxes.

ANyway, I hope that explains it. There is an issue tracker for the windows installer if something else comes up: https://github.com/pothosware/PothosSDR/


resnet top-5 classes showing in Opera, not Firefox

First, very cool - great work!  :-D
For your reference, keras-js runs fast in Opera; appears to run (slower) in Firefox, but does not display the top-5 classes (50-layer ResNet tried; supplied wolf image).
Firefox 49.0.1 - lots of plugins [re: this issue, disabled AdBlockPlus; uBlock Origin; Ghostery]
Opera 40.0 - minimal plugins
Arch Linux x86_64; Intel Core i7-4790 CPU; ...
Private message me -- if desired -- for my Firefox addons, configuration [about:support]; I don't want to share them, publicly.

Edit - updated info:
The website
https://transcranial.github.io/keras-js/

will not run (load) in Firefox started in Safe Mode (add-ons disabled; ...).  [I wanted to see if disabling add-ons helped viz-a-viz the ResNet implementation in Firefox.]
Wolf image: https://upload.wikimedia.org/wikipedia/commons/0/00/Yellowstone-wolf-17120.jpg
Inception-v3 [ImageNet]:

Firefox:
dogsled 53%
apiary 8%
seashore 3
jigsaw puzzle 3%
dowitcher 2%

Opera:
cairn 74%
silky terrier 6%
Yorkshire terrier 5%
Australian terrier 5%
Norwich terrier 3%

50-Layer ResNet:

Firefox:
0%
0%
0%
0%
0%

Opera:
timber wolf 92%
coyote 3%
dogsled 1%
white wolf 1%
red wolf 1%

@victoriastuart interesting, so the resnet is problematic in firefox but inception-v3 is fine? Thanks for the report, will take a look. There are some issues with firefox I have to look into in any case.

Yes, exactly.  Perhaps this is related: keras-js will load/process this wolf image
http://media.salon.com/2015/07/wolf.jpg
in those two nn (Inception | resnet} in Opera, but not Firefox ("Error loading URL").  So, e.g., what we (humans) see and what Opera vs. Firefox returns to keras-js may be different: underlying image format/metadata?  That might also explain the dramatic differences in classifications in the classifications of my first wolf image in those two nets, in Firefox?  Just guessing here, however.


white area over the svg

First, I love this! It's the only thing that works on my code ahah! there's only one problem, I've a white area over my svg and I don't  know how to fix it!
I tried to change the code, I found that this part is the problem, in particular "fit" and "center":
// Expose to window namespace for testing purposes
window.panZoom = svgPanZoom('#mobile-svg', {
zoomEnabled: true
, controlIconsEnabled: false //abilita e disabilita le icone dello zoom
, fit: 1
, center: 1
, customEventsHandler: eventsHandler
});
how should I modify it?

If it is a bug then please provide a reproducible example.
For generic questions please use StackOverflow.


Hard to distinguish MSErrorMessageErrorCode error responses during push

I'm trying to handle a case in my MSSyncContextDelegate where an insert operation is trying to insert an item to the MSTable that already exists on the server. I believe the inconsistency arose from the app being killed after the insert had been performed previously but before it updated the operations table. In any case, the error code I get is MSErrorMessageErrorCode. The issue is that there doesn't seem to be a reliable way to distinguish this error code from others that might also send an MSErrorMessageErrorCode. It seems the only unique element to the error is the NSLocalizedDescription, and comparing that string feels like asking for trouble in the future as the string is localized and could easily change. I see the HTTP error code is 409, but that seems ambiguous. Is there another way to distinguish the error? If not, it would be great if there were error codes that could be checked for each of the possible errors relayed using the MSErrorMessageErrorCode object.

Perhaps it would be sufficient to assume that httpErrorCode == 409 && operation.type == insert means an item with that id already exists on the server?

Upon further inspection it looks like the 409 and insert operation type is sufficient to identify the error. I also found that a server side script bug was actually to blame for the inconsistency. Sorry for the noise.


Feature/better startup messages

Improved the cli message to make the wandb link more visible (common reported issue and I've seen it a lot onboarding people).
Improved the jupyter notebook messages to be much more clear about what's going on.
Before:

After:

Before:

After:

cc @lavanyashukla

This looks perfect! Exactly what we needed! Thank you Lukas! :)
Sent from my iPhone

On Oct 13, 2019, at 10:58 PM, Lukas Biewald<EMAIL_ADDRESS>wrote:

Improved the cli message to make the wandb link more visible (common reported issue and I've seen it a lot onboarding people).
Improved the jupyter notebook messages to be much more clear about what's going on.
Before:
After:
Before:
After:
cc @lavanyashukla
You can view, comment on, or merge this pull request online at:
https://github.com/wandb/client/pull/609
Commit Summary
Added per batch logging option to keras callback
removed stray prints
really removed stray prints
Merge branch 'master' into feature/keras-batch-logging
Better explanation of monitor
Better messages on startup - hopefully clearer to a new user what's happening
fix python 2.7 unicode issue
make jupyter notebook page nicer
fixed documentation links
File Changes
M tests/test_keras.py (8)
M wandb/init.py (13)
M wandb/history.py (2)
M wandb/keras/init.py (20)
M wandb/run_manager.py (15)
M wandb/wandb_run.py (28)
Patch Links:
https://github.com/wandb/client/pull/609.patch
https://github.com/wandb/client/pull/609.diff
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

So good


Implement fori_loop in terms of scan rather than while_loop?

Any reason not to do this? It would make fori_loop differentiable, which seems nice.
The implement seems pretty straightforward, e.g.,
def fori_loop(lower, upper, body_fun, init_val):
  f = lambda x, i: (body_fun(i, x), ())
  result, _ = lax.scan(f, init_val, np.arange(lower, upper))
  return result

The main reason not to do this in general is that fori_loop supports a statically-unknown iteration count, though we could turn fori_loop into a scan when the iteration count is statically known (i.e. when int(upper - lower), or np.arange(lower, upper) as you wrote, doesn't raise an abstraction error).

I think we should do this!

Yes, of course -- we need statically known iteration counts.
Is there a standard way to get a statically known variable in JAX, or should I just use isinstance(... int)?

Closing, as this has been in JAX for a while now: https://github.com/google/jax/blob/b50d77cc983e616beac6025f56a370eedfa3369e/jax/_src/lax/control_flow/loops.py#L1573-L1585


3.1.0 causes relative css paths to be broken for production builds

This is a weird one but I narrowed it down to the version bump from 3.0.0 to 3.1.0. I suspect the underlying clean-css bump causes the issue.
I have a project that uses ember-cli-sass, ember-cli-bootstrap-sassy, bootstrap-sass to use SCSS and get glyphicons into my project. When I build the project using ember build --environment=production, the resulting minified css file has incorrect paths to the glyphicons font. ember-cli-bootstrap-sassy places them in dist/fonts/bootstrap and uses the paths '../fonts/bootstrap' but it seems the ../ is being stripped after the version bump.
Used versions:
Ember-CLI: 2.11
Ember-CLI-Sass: 6.1.1
Ember-CLI-bootstrap-sassy: 0.5.5
To reproduce:

Clone and install https://github.com/akshaisarma/relative-css-path-issue
ember build --environment=production
Check dist/assets/test-app-*.css for the url for the @font-face{font-family:'Glyphicons Halflings'. It should be url(fonts/bootstrap/glyphicons...), which is incorrect.
npm install -save-dev<EMAIL_ADDRESS>ember build --environment=production
Now dist/assets/test-app-*.css should have url(../fonts/bootstrap/glyphicons...) for the font-face, which is what is expected.

This is the variable that bootstrap-sass expands but the prefix is stripped out by the build process.
Let me know if you need anything else!

I have the same issue also.  One other result of the clean-css bump is that missing source maps are now errors instead of warnings, that is fine and probably a better default,  but it was definitely a breaking change for my build :)

Since the release of clean-css v3, relativeTo option has been renamed to rebaseTo.
In https://github.com/ember-cli/ember-cli-preprocessor-registry/pull/20, @rwjblue updated clean-css from v2 to v3 without major version  bump.
lib/broccoli/ember-app.js#L68 in ember-cli no longer works.

The best solution is:

Revert https://github.com/ember-cli/ember-cli-preprocessor-registry/commit/70b8df09ca3e363cac24600a9880217eba60940a and publish ember-cli-preprocess-registry v3.1.1.
Restore https://github.com/ember-cli/ember-cli-preprocessor-registry/commit/70b8df09ca3e363cac24600a9880217eba60940a and publish ember-cli-preprocess-registry v4.0.0.

@rwjblue Read http://semver.org/ and learn semantic versioning. Most of npm modules, including broccoli-clean-css, follows the SemVer.

Perhaps I should learn about this "SemVer" thing.

I'll be reverting and releasing a 4.x in the next hour or so.

v3.1.1 fixes it for me.


Updated baselines due to changes in DRILL-4782 / DRILL-7139

Need to be merged after the following Drill PR:
https://github.com/apache/drill/pull/1784

There are two kinds of changes:

to_time function was fixed for cases when using with timestamp. Expected results for some tests were incorrect.
Seconds are now rounding to complete days when adding intervals.

Thanks. Please update when it's ready to be merged.

Merging this, as the Drill PR is already merged.


Bandit from 1.3 to 1.5 ENOTCONN errors

Hello,
I recently upgraded some production servers from bandit 1.3 to 1.5.4 and I'm seeing this error pop up in my APM logs:
[error] ** (RuntimeError) Unable to obtain transport_info: :enotconn
    (bandit 1.5.4) lib/bandit/transport_info.ex:26: Bandit.TransportInfo.init/1
    (bandit 1.5.4) lib/bandit/pipeline.ex:67: Bandit.Pipeline.build_conn!/5
    (bandit 1.5.4) lib/bandit/pipeline.ex:31: Bandit.Pipeline.run/4
    (bandit 1.5.4) lib/bandit/http1/handler.ex:12: Bandit.HTTP1.Handler.handle_data/3
    (bandit 1.5.4) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3
    (bandit 1.5.4) lib/thousand_island/handler.ex:379: Bandit.DelegatingHandler.handle_info/2
    (stdlib 5.2.3) gen_server.erl:1095: :gen_server.try_handle_info/3
    (stdlib 5.2.3) gen_server.erl:1183: :gen_server.handle_msg/6
    (stdlib 5.2.3) proc_lib.erl:241: :proc_lib.init_p_do_apply/3

I have walked the source code and noticed that you are now raising these errors in transport_info.ex. To be honest I've never happened across ENOTCONN before and I'm not really sure what's causing it. Any help pointing me in the right direction would be greatly appreciated.
Elixir Version Info:
Erlang/OTP 26 [erts-14.2.5] [source] [64-bit] [smp:10:10] [ds:10:10:10] [async-threads:1] [jit]

Elixir 1.16.2 (compiled with Erlang/OTP 26)

Thank you

This happens when the client closes the connection early, before issuing a request and before the server even has time to obtain info about the connection (in this case, the server is attempting to obtain info about the remote client's host and port, but the connection has already been closed). It's a benign condition and just 'one of those things' that's part and parcel to running an internet connected service.
I've got a bit of work in the next few days to make these raise as any other prorocol-facing error does (ie: in one line :short form by default).

@mtrudel thank you for the quick response. Can you clarify this:

I've got a bit of work in the next few days to make these raise as any other prorocol-facing error does (ie: in one line :short form by default).

The problem that we're seeing with it logging to our APM solution (Sentry) is that it happens so often that it's eating up our plan's error allotment. The Sentry library wraps the Plug request and reports all raised errors so we would prefer it if Bandit didn't call raise/2 at all in these scenarios that aren't really a problem.
In the meantime, I've downgraded our library back to ~> 1.3.0
Thank you

It'll continue to raise; being noisy on errors is one of Bandit's core values. The fix here is to teach Sentry about bandit errors, similar to how it knows about cowboy errors and chooses not to report them. There's a discussion of this in the #bandit Slack channel at the moment, and the requisite changes will also be coming out in the next few days.
tl;dr you should be fine to update to the next release (along with a sentry library change / config change) and not bankrupt yourself on allotments.

Thank you so much! I've caught up on the Slack channel. I'll look out for the next release

1.5.5 just released with these changes, also filed https://github.com/getsentry/sentry-elixir/pull/739 upstream to get sentry to add :bandit to the list of ignored domains (in the interim they provide a config point for this if you so desire).


[docs] Improve the onboarding

I'm no designer, but this feels like it should perhaps have consistent vertical alignment btween one column and two column sections:

@mbrookes Already improved:

Still looks the same to me:

(Your screenshot only shows the two-column section)

Any better idea?

Perhaps put the installation and usage into Cards, so their sections have defined bounds, giving them equal visual weight.
Then remove all the excess text from the Sponsors section, put the gold sponsors side-by-side (centered) without reference to Patreon or OpenCollective or dollar amounts, then add a row below smaller logos of silver sponsors (I think it's a mistake not to mention Facebook on the home page).
Links to sponsorship platforms can go below that.
CT's logo could link to the free Material theme (for now), and in the interest of fairness, the CEA one should link probably to their site rather than OC.

Perhaps put the installation and usage into Cards, so their sections have defined bounds, giving them equal visual weight.

It should be good like this. The imbalance will be address with the themes. I don't think that adding an elevation with a Paper will improve the situation. I look fine on Bootstrap side.

Then remove all the excess text from the Sponsors section

I have already tried to remove anything non-important.

put the gold sponsors side-by-side (centered) without reference to Patreon or OpenCollective

It's encouraging people to contribute first to Patreon then to OpenCollective.

then add a row below smaller logos of silver sponsors (I think it's a mistake not to mention Facebook on the home page)

It's giving them and other potential contributors to give more. I agree that having Facebook as a sponsor is a good thing. You can find them in https://material-ui-next.com/discover-more/backers/.

CT's logo could link to the free Material theme (for now), and in the interest of fairness, the CEA one should link probably to their site rather than OC.

The OpenCollective sponsors are handled by their CDN right now. The nice thing about it is that we have nothing to handle. New contributors will be added automatically, as well as being sorted by the total number of money they donated DESC.

The imbalance will be address with the themes.

Somewhat

I don't think that adding an elevation with a Paper will improve the situation. It look fine on Bootstrap side.

It isn't about elevation, it's about giving the containers a visible size so they are balanced. It would work as well without the shadow. I just noticed Bootstrap have done the same.

I have already tried to remove anything non-important.

I think you're missing that the purpose of this section os to promote the sponsors. The sponsorship opportunity is implicit. Links to Patreon and OC is enough.

It's encouraging people to contribute first to Patreon then to OpenCollective.

Yes, I guessed the motivation. It's taken care of.

It's giving them and other potential contributors to give more.

So is having a second tier labelled silver sponsors, with smaller logos, but I missed that FB are only Bronze, thought they were silver, so it isn't necessary.

The CEA one should link probably to their site rather than OC.

I missed that this redirects to the sponsor, rather then to their OC profile page, so yes, it's fine.

It works as well without the shadow.

I agree. I think that it's much better without the shadow. What about reducing the contrast between the white and the grey? So we can soften the container borders.

I think you're missing that the purpose of this section os to promote the sponsors. The sponsorship opportunity is implicit. Links to Patreon and OC is enough.

Yeah, why not. I was following webpack here but I have no objection to go into vue side.

Yes, I guessed the motivation. It's taken care of.

It's more implicit in your proposal. I do prefer the vue approach:

What about reducing the contrast between the white and the grey?

I thought the same - it was just a mockup.

I do prefer the vue approach

Perhaps when there are enough sponsors to justify the distinction?

@mbrookes I'm moving forward. I'm going to complete #10616. I have added a white border to make the separation cleaner. I'm not opposed to the other changes you are suggesting, but I don't see them clearly improving the situation. I will spend my energy on different topics.


fix: only look at target when target has dependsonchange: true

Fix #3159

Test
To test this pull request, you can run the following commands:
cd <to_package_directory>
go test

Additional Information
Tradeoff

Potential improvement

@olblak It's already the case, in https://github.com/updatecli/updatecli/pull/2800 I introduce this behaviour:
name: Invert dep
pipelineid: e2e/chained

sources:
  1:
    name: Source 1
    kind: shell
    spec:
      command: "true"
    dependson:
      - "condition#1"
conditions:
  1:
    disablesourceinput: true
    name: Condition 1
    kind: shell
    spec:
      command: "true"
    dependson:
      - "target#1"
targets:
  1:
    disablesourceinput: true
    disableconditions: true
    name: Target 1
    kind: shell
    spec:
      command: "true"

custom_mark10
digraph G {
    "source#1" [label="Source 1 (shell)", shape=ellipse, style=filled, color=lightblue];
    "condition#1" [label="Condition 1 (shell)", shape=diamond, style=filled, color=orange];
    "condition#1" -> "source#1";
    "target#1" [label="Target 1 (shell)", shape=box, style=filled, color=lightyellow];
    "target#1" -> "condition#1";
    "target#1" -> "source#1";
}
custom_mark10


Welcome discord.js V12

This fixes #7, #4 and #5
Better Logging, mostly on Utils;
New commands: serverinfo and systeminfo;
Fixed Documentation for VSCode interfaces;
Fixed daily.js wrong timer;
Fixed many wrong languages strings;
Fixed bug that would make the bot be alive if some mage decided to, that's too scary for us..

Forgot to note that this also fixes #3


Standardise client property names to camelCase

closes #6018

added keyForAttribute method in application serializer
override keyForAttribute in settings serializer to not apply camelCase/underscore conversion
rename under_scored properties to camelCased

:+1: awesome! I've been meaning to get around to this for ages, thanks for jumping in and getting it done :smile:

No worries :smile:
One thing though: I didn't modify the settings model, as it's kind of special - some properties are camelCased and others are under_scored. I decided to leave it as is for now, as I didn't want to introduce any funny logic just yet.


Remove Octokit dependencies and refactor the GitHub Pat validator

Changes

Updated SEC101/006.GitHubLegacyPat validator to use HTTP REST API request.
Remove binary dependency 'Octokit.dll'.

    protected override IEnumerable<ValidationResult> IsValidStaticHelper(IDictionary<string, FlexMatch> groups)

Just note that this SEC101_006 rule has different implementations for Static Validator in other plugins: Security.Internal and Security.PushProtection.

Refers to: Src/Plugins/Security/SecurePlaintextSecretsValidators/SEC101_006.GitHubLegacyPatValidator.cs:15 in d52894a. [](commit_id = d52894a185ecc89fd4ea347400ea02ce1e57ec6b, deletion_comment = False)

    protected override IEnumerable<ValidationResult> IsValidStaticHelper(IDictionary<string, FlexMatch> groups)

yes PushProtection has the checksum verification I think it comes from internal source (GHAS) so I didn't add it to the public validator. @HulonJenkins what do you think?

In reply to:<PHONE_NUMBER>

Refers to: Src/Plugins/Security/SecurePlaintextSecretsValidators/SEC101_006.GitHubLegacyPatValidator.cs:15 in d52894a. [](commit_id = d52894a185ecc89fd4ea347400ea02ce1e57ec6b, deletion_comment = False)


In split computation, do no assume master is localhost

This is required if we want Rubix to run on a separate cluster than the execution clustre

Same for Tez ? Split computation is in an AM on a slave ?
On Fri, Jun 30, 2017 at 10:49 AM Shubham Tagra<EMAIL_ADDRESS>wrote:

This is required if we want Rubix to run on a separate cluster than the
execution clustre
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/qubole/rubix/issues/32#issuecomment-312177463, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABj_muaT1dijRcwOoNw8oi-vGBEHGSUeks5sJIVPgaJpZM4Kh8Mz
.

Didnt know about that. Yes, in that case we will have to do this.

@abhishekdas99 This is critical for support with Tez

We might be safe, Hadoop2 ClusterManager class is using "yarn.resourcemanager.webapp.address" config to figure out master address. As long as that is populated correctly, things should work fine for Tez.
For Presto too, "master.hostname" is used to find master name. So what was expected out of this issue has made its way into code as part of other changes and this is not just a testing exercise that things work fine.


Use switch instead of multiple ifs

Makes the logic a little bit clearer.

+1

@ghedo we need a CLA....

CLA is now registered.

commit 4f8a5f4 on master.  should we backport @dot-asm to make future cherry-picks easier?

should we backport @dot-asm to make future cherry-picks easier?

I'm confused. Labels were 1.1.0 and master and this normally means that it will be cherry-picked to 1.1.0. Or does it mean that cherry-pick is impossible already?

Just wanted to be explicit.  I often forget to look at the labels, even when I assigned them :)  Thanks, will cherry-pick.

commit 64d1cc0 in 1.1.0


Calls to GetSceneContext() are invalid due to missing #ifdef

Locally my IDE reports this line as invalid:
scene::Scene scene(renderer.GetSceneContext());

That's because the API is conditionally available, behind IMPELLER_ENABLE_3D:
#if IMPELLER_ENABLE_3D
  std::shared_ptr<scene::SceneContext> GetSceneContext() const;
#endif  // IMPELLER_ENABLE_3D

... I'm not sure how this works today as a result or why it works on CI.

This TU is not built when the 3d flag is disabled, but while looking around I did find a lingering unguarded import for the header in the unittests. Adding a static assert to make avoiding mistakes easier: https://github.com/flutter/engine/pull/45848

Gonna close this out -- I think clangd is guessing a build line for this file when it's missing from the build (which is impossible to guess correctly in this case, but is still useful behavior for code navigation and refactoring).


add hardhat tasks for adding/removing liquidity

#96
USAGE
PRIVATE_KEY=${KEY} yarn hardhat removeLiquidity --network kovan --turbo-id 0
PRIVATE_KEY=${KEY} yarn hardhat addLiquidity --network kovan --turbo-id 0 --amount 10

Oh actually, it would be good to add this to the docs.

Oh actually, it would be good to add this to the docs.

whoops


Issue with backdrop using alerts, popups.

Hello Team,
I am working in ionic 2.
In my project i am facing problem with backdrop if any alert , popups are opened.
In my requirement if i touch on button like in alerts OK button then i need to do the other functionality there. so if i touch on backdrop it  will get close and my flow will be in complete.
I am using ionic 2 beta 11 in my project.
help me with a suggestion that how to handle this case. or how to not allow the backdrop to get close if i touch on screen.

docs: http://ionicframework.com/docs/v2/api/components/alert/AlertController/
enableBackdropDismiss	boolean	Whether the alert should be dismissed by tapping the backdrop.

Thanks for the issue! Please visit our forum or slack channel for questions about the framework. :smile:
As @daveshirman stated, you can set enableBackDropDismiss to false to prevent dismissing the overlay from the backdrop.

@brandyscarney how to i achieve this with an ionic alert with "checkboxes" or "radios's". With a normal alert i have been able to achieve.


Can't use Assistant Voice Type because it needs an update

Assistant Voice Typing says that it needs an update and to connect to Wi-Fi to automatically download it. I've had my phone on Wi-Fi, powered on, for about 2 days since flashing this module, and I still can't turn on Assistant Voice Typing.
I'm using a Pixel 5 running ProtonAOSP 12.3.0 (Based on AOSP 12L).

try manually download language pack of Google text to speech, and Google app

How do I do that?

Go to Google app > settings > voice > offline speech > Download lang pack.
also which lang you are trying for assistant voice typing? ENG or JP or DE?

Go to Google app > settings > voice > offline speech > Download lang pack. also which lang you are trying for assistant voice typing? ENG or JP or DE?

Just tried that, didn't work. ENG is what I use. I even downloaded every single English pack

your issue is fixed?

It seems so, for now at least. I wish I could use a newer version of the
Google app - The version I have to use (<IP_ADDRESS>) doesn't actually
support assistant on my Galaxy watch 4.
On Mon, May 30, 2022, 1:20 AM Shivan Singh @.***> wrote:

your issue is fixed?
—
Reply to this email directly, view it on GitHub
https://github.com/Kingsman44/Pixelify/issues/71#issuecomment-1140709768,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADZKISPWDUQEQE3GKF4JLWLVMRFX7ANCNFSM5Q7CPKIA
.
You are receiving this because you authored the thread.Message ID:
@.***>

In Pixelify 2.2 I'm facing the same issue. Connected to a wifi but still doesn't work. I also tried clearing data and cache Google app and Gboard.
ROM: SparkOS 13.5 (A13)


srml/authority-discovery: Introduce srml module to sign and verify

In order to have authorities (validators) discover each other, they need
to publish their public addresses (ip addresses) on the Kademlia
Dht indexed by their public key. This payload needs to be signed by a
key identifying them as a valid authority.
Code inside /core does not know the current set of authorities nor
can it assume what kind of cryptography primitives are currently in use.
Instead it can retrieve its public key and the current set of
authorities from the runtime and have it sign and verify Dht payloads.
This commit enables code in /core to do so by introducing a srml
module and runtime api to:

Retrieve own public key.

Retrieve public keys of current authority set.

Sign a Dht payload.

Verify a Dht payload.

This commit makes the logic from the previous commit
(core/consensus/common/primitives.ConsensusApi)
444bf719ebdaa733415af288332556542e7b3ac6 obsolete and thus removes it.
Status
Open questions:

Should this logic live in its own srml module?

Should this logic piggyback on the im-online session crypto?

This pull request is part of https://github.com/paritytech/substrate/issues/1693. The full implementation of the feature can be found here: https://github.com/mxinden/substrate/tree/authority-discovery

@rphmeier does this look similar to the way you imagined the API? @bkchr would you prefer this to just live in each node implementation separately?

We should be careful about DHT level attacks on validators, like nodes censoring validators by either choosing their DHT position to flooding DHT buckets.  @FatemeShirazi

im-online configures the module with some initial keys on startup: https://github.com/paritytech/substrate/blob/master/node/cli/src/chain_spec.rs#L171-L173. Does it make sense to pre-configure the same ones for this module? Otherwise there are no initial keys for the first session.
Besides that the code lgtm.

We have a documentation rule in the codebase that all public items must be documented.

im-online configures the module with some initial keys on startup: https://github.com/paritytech/substrate/blob/master/node/cli/src/chain_spec.rs#L171-L173. Does it make sense to pre-configure the same ones for this module? Otherwise there are no initial keys for the first session.

Thanks for the hint @cmichi, can you review https://github.com/paritytech/substrate/pull/3385/commits/05a69efce963fc878117e55c878736d96f510add (part of this pull request now).

https://github.com/paritytech/substrate/pull/3385/commits/9bb3f8f0a90e915d86a7810b1770d6c95b22826f adds basic unit tests to the module.

Ping @cmichi @rphmeier. I addressed all the comments. Can you give this another look?

678ff150b248691ddc83af9c309159c5d5f95026 adjusts this pull request to the changes in https://github.com/paritytech/substrate/pull/3413. @andresilva given that you authored https://github.com/paritytech/substrate/pull/3413 can you give this change set a look?

@bkchr @DemiMarie-parity thank you for the feedback. https://github.com/paritytech/substrate/pull/3385/commits/d0979e954b97cb942a4ca7d34c401f3afc9edf52 addresses them. Could you take another look?

Needs resolving and then it is good to be merged.

Thanks for the help everyone.

@mxinden You’re welcome!

Too late to review this, but LGTM.


#40288 find replace in resolved config variable

fixes #40288

@isidorn you got sometime to review the changes ?

This PR has conflicts with the main branch due to changes done by @weinand
@weinand can aslo decide if we would like to take in this PR, if yes conflicts first need to be fixed. Anyways nothing for april

@isidorn Resolved the conflicts

@isidorn let's revisit this in May.

This will not happen in July, pushing out to August.

Cleaning up milestone

any chance of this happening?

This implementation will only replace the first instance of a string.
Bash string replacement also offers a "double slash" syntax (parameter//pattern/string) for replace all functionality.
For instance, this can come in handy when re-writing path names to python module names (a/b/c -> a.b.c)
WDYT, should this be part of this PR or part of a new issue?

Sorry that this slipped through the cracks. I think the PR is stale now but it's an interesting feature. I'll hand it to @alexr00 to decide whether it's worth revisiting

@pradeepmurugesan thank you for the PR. Given that https://github.com/microsoft/vscode/issues/40288 was closed as out of scope, we won't be merging this PR right now.


add new kusionstack blog and pdf

mv pdf to https://github.com/KusionStack/community

mv pdf to https://github.com/KusionStack/community

https://github.com/KusionStack/community/pull/37

image file size is too large, pls reduce the size (<100KB)


feat(AV-1614): change drupal php-fpm proxy to http reverse proxy

drupal is now installed as an apache server instead of php-fpm server
this pull request switch the current php-fpm proxy location to http reverse proxy

Path http://localhost/ns does not work yet, must be fixed.

Drupal is now resposible for /resources - thus frontend updates come through the opendata-drupal project.


how to  add custom text on the bottom

You'd typically do this yourself.

As @tilkinsc mentioned, raus is out of the QR specs. Just draw the text with the usual Graphics class.  For example you could use those code: https://stackoverflow.com/a/32429991
Just pass the QRCode bitmap as myBitmap in the example and adjust the parameters.

thanks