The validatePlugins task stopped working in Gradle 8.1

Expected Behavior
I have a multi-project build that contains several Gradle plugins that have been building for multiple years (starting with Gradle 5.4).
The validatePlugins tasks have always been successful.
Current Behavior
The validatePlugins task of all the plugins that used to work until Gradle 8.0 suddenly broke with Gradle 8.1 and also 8.1.1.
The error is in the validatePlugins task. That's not a new check that fails, that's a technical failure due to a missing file:
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':validatePlugins'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:149)
	at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:147)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
	at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:116)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:138)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:123)
	at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:35)
	at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:51)
	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:54)
	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:43)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:40)
	at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$executeTasks$10(DefaultBuildLifecycleController.java:202)
	at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:266)
	at org.gradle.internal.model.StateTransitionController.lambda$tryTransition$8(StateTransitionController.java:177)
	at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
	at org.gradle.internal.model.StateTransitionController.tryTransition(StateTransitionController.java:177)
	at org.gradle.internal.build.DefaultBuildLifecycleController.executeTasks(DefaultBuildLifecycleController.java:202)
	at org.gradle.internal.build.DefaultBuildWorkGraphController$DefaultBuildWorkGraph.runWork(DefaultBuildWorkGraphController.java:209)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
	at org.gradle.composite.internal.DefaultBuildController.doRun(DefaultBuildController.java:172)
	at org.gradle.composite.internal.DefaultBuildController.access$000(DefaultBuildController.java:47)
	at org.gradle.composite.internal.DefaultBuildController$BuildOpRunnable.run(DefaultBuildController.java:191)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
Caused by: org.gradle.workers.WorkerExecutionException: There was a failure while executing work items
	at org.gradle.workers.internal.DefaultWorkerExecutor.workerExecutionException(DefaultWorkerExecutor.java:218)
	at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:200)
	at org.gradle.plugin.devel.tasks.ValidatePlugins.validateTaskClasses(ValidatePlugins.java:100)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
	at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:242)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193)
	at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
	at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:166)
	at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70)
	at org.gradle.internal.Either$Right.fold(Either.java:175)
	at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:76)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:37)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53)
	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
	at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75)
	at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32)
	at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:287)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)
	at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
	at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:116)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:138)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:123)
	at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:35)
	at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:51)
	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:54)
	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:43)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:40)
	at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$executeTasks$10(DefaultBuildLifecycleController.java:202)
	at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:266)
	at org.gradle.internal.model.StateTransitionController.lambda$tryTransition$8(StateTransitionController.java:177)
	at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
	at org.gradle.internal.model.StateTransitionController.tryTransition(StateTransitionController.java:177)
	at org.gradle.internal.build.DefaultBuildLifecycleController.executeTasks(DefaultBuildLifecycleController.java:202)
	at org.gradle.internal.build.DefaultBuildWorkGraphController$DefaultBuildWorkGraph.runWork(DefaultBuildWorkGraphController.java:209)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
	at org.gradle.composite.internal.DefaultBuildController.doRun(DefaultBuildController.java:172)
	at org.gradle.composite.internal.DefaultBuildController.access$000(DefaultBuildController.java:47)
	at org.gradle.composite.internal.DefaultBuildController$BuildOpRunnable.run(DefaultBuildController.java:191)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing org.gradle.plugin.devel.tasks.internal.ValidateAction
	at org.gradle.workers.internal.DefaultWorkerExecutor$WorkItemExecution.waitForCompletion(DefaultWorkerExecutor.java:283)
	at org.gradle.internal.work.DefaultAsyncWorkTracker.lambda$waitForItemsAndGatherFailures$2(DefaultAsyncWorkTracker.java:130)
	at org.gradle.internal.Factories$1.create(Factories.java:31)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:321)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks(DefaultWorkerLeaseService.java:304)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withoutLock(DefaultWorkerLeaseService.java:309)
	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:126)
	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:88)
	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForAll(DefaultAsyncWorkTracker.java:78)
	at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:66)
	at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:198)
	at org.gradle.plugin.devel.tasks.ValidatePlugins.validateTaskClasses(ValidatePlugins.java:100)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
	at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:242)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193)
	at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
	at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:166)
	at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70)
	at org.gradle.internal.Either$Right.fold(Either.java:175)
	at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:76)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:37)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53)
	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
	at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75)
	at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32)
	at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:287)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)
	at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
	at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:116)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:138)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:123)
	at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:35)
	at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:51)
	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:54)
	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:43)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
	at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:40)
	at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$executeTasks$10(DefaultBuildLifecycleController.java:202)
	at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:266)
	at org.gradle.internal.model.StateTransitionController.lambda$tryTransition$8(StateTransitionController.java:177)
	at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
	at org.gradle.internal.model.StateTransitionController.tryTransition(StateTransitionController.java:177)
	at org.gradle.internal.build.DefaultBuildLifecycleController.executeTasks(DefaultBuildLifecycleController.java:202)
	at org.gradle.internal.build.DefaultBuildWorkGraphController$DefaultBuildWorkGraph.runWork(DefaultBuildWorkGraphController.java:209)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
	at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
	at org.gradle.composite.internal.DefaultBuildController.doRun(DefaultBuildController.java:172)
	at org.gradle.composite.internal.DefaultBuildController.access$000(DefaultBuildController.java:47)
	at org.gradle.composite.internal.DefaultBuildController$BuildOpRunnable.run(DefaultBuildController.java:191)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
Caused by: java.io.UncheckedIOException: java.io.IOException: No such file or directory
	at org.gradle.plugin.devel.tasks.internal.ValidateAction.storeResults(ValidateAction.java:174)
	at org.gradle.plugin.devel.tasks.internal.ValidateAction.execute(ValidateAction.java:104)
	at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
	at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:54)
	at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48)
	at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
	at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:48)
	at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
	at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
	at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:96)
	at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:65)
	at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:138)
	at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
	at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:135)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
Caused by: java.io.IOException: No such file or directory
	at org.gradle.plugin.devel.tasks.internal.ValidateAction.storeResults(ValidateAction.java:171)
	... 23 more

The stack trace does not indicate which file it is but using the debugger I could see that it is build/reports/plugin-development/validation-report.txt. I could only debug the task until it starts the worker (starting the task from IntelliJ in debug mode). I don't know how to debug the worker itself.
The worker is started in org.gradle.plugin.devel.tasks.ValidatePlugins#validateTaskClasses at line 100.
Context (optional)
No response
Steps to Reproduce
I created a very small project that reproduces it. It is available here.
If I change the Gradle version inside the gradle/wrapper/gradle-wrapper.properties file, it works with Gradle 8.0 but fails with 8.1 and 8.1.1 (default).
I use the Kotlin DSL.
I'm quite surprised I can reproduce this issue using a so basic project. The project builds in GitHub actions (using also Ubuntu). I don't know why. It may be due to something specific on my computer? But what? I can provide some extra information regarding what happens, let me know what I should do and I'll do it.
Thanks in advance.
Gradle version
8.1.1
Build scan URL (optional)
No response
Your Environment (optional)

Gradle 8.1.1
Build time:   2023-04-21 12:31:26 UTC
Revision:     1cf537a851c635c364a4214885f8b9798051175b
Kotlin:       1.8.10
Groovy:       3.0.15
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          17.0.7 (Private Build 17.0.7+7-Ubuntu-0ubuntu122.04.2)
OS:           Linux 5.15.0-71-generic amd64

Thank you for your interest in Gradle!
This looks like a problem in your environment.
Can you make sure your build folder is writable?
Try to do anything else in your build script that writes to the build directory.
We suspect your OS's default permissions are set wrongly.
What we can do is improve the error reporting so the source of the issue is clearer from the exception message.

Thanks @jbartok for your quick answer. And thanks to all the Gradle contributors, it's a very good build tool!
I also believe that this might come from something specific in my environment. I kept investigating, I tried to run this on a server with a similar environment and it works. There is nothing as far as I know in my environment that could have such consequences on file permissions. And the rest of the build works as expected (the .class and .jar files for instances are correctly created and the build/reports/plugin-development/validation-report.txt file is correctly created using Gradle 8.0).
Then I tried to build the project in /tmp since I already had some issues related to the fact my home directory is encrypted, that can happen when the file names are very very long, which is not the case here. But in /tmp it works and in my home root it also works. This made me find where it comes from.
My root development folder is named Développement (development in french) and that's the é which seems to be the cause of the issue. If I move the project outside of this folder, it works, but it does not work if it is inside this folder. I suspect that there is an encoding issue when sending the output directory of the ValidateAction to the worker.
I refactored my example project to a multi-project build with a directory name that contains this character. And I can reproduce the issue also on GitHub Actions, that seems to confirm that this is the cause of the issue.
Assuming that the issue comes from an encoding issue while sending the command to the worker, why did it work using Gradle 8.0? I had a quick look at the code and it sounds like it changed a lot between 8.0 and 8.1 even if it sounds like the task was already using the ValidateAction worker in 8.0. Don't know enough the Gradle code base to be able to answer this question.
Hope this will help to fix the issue. Thanks for your interest regarding this issue!

Thank you, @bsautel, this indeed looks like a real issue and not just a bad environment as we first thought. Let's see what we can do about it and when.

Note that this issue is not reproducible on Mac (but I can reproduce it on Linux).
I tried to run the 8.1 build in docker and got multiple daemon crashes. The first execution of build always fails with a daemon crash, and the second one fails with IOException.
This issue can also be reproduced with Cyrillic letters (développement -> разработка). It might be a race/locking issue because when execution is artificially is slowed down with Thread.sleep I can get another exception:
Caused by: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: /reproducer/разработка/build/reports/plugin-development/validation-report.txt
        at org.gradle.plugin.devel.tasks.internal.ValidateAction.storeResults(ValidateAction.java:183)
        at org.gradle.plugin.devel.tasks.internal.ValidateAction.execute(ValidateAction.java:105)
        at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
        at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:54)
        at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48)
        at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
        at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:48)
        at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
        at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
        at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:96)
        at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:65)
        at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:138)
        at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
        at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:135)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
        at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
        at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
        at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)

Yep, it looks like a normal form problem. Here's what I do:
$ git clone https://github.com/bsautel/gradle-validate-plugins-bug
$ cd gradle-validate-plugins-bug
$ ./gradlew build       # <- this fails as reported
$ convmv --nfd -f utf-8 -t utf-8 -r . --notest
$ ./gradlew build       # <- this passes

https://qerub.se/filenames-and-unicode-normalization-forms
Now, why did this change compared to 8.0?

I did this in Docker as suggested by @ov7a inside:
$ docker run -it --entrypoint=/bin/bash eclipse-temurin:17 -i

convmv is installed via apt install convmv.

Interestingly, I can't reproduce the problem on macOS. I think that's because macOS correctly handles equality between normal forms, while Linux (extfs?) treats them as non-equal.
In any case, I found the reason for why this is broken in 8.1 and not in 8.0:
https://github.com/gradle/gradle/pull/23199/files#diff-ffa938a555a9e5a0f80bd55f4f737e153386f4538fb34b6db2b4bbd74c06e056L70-R83
In 8.1 we changed the isolation level of ValidateAction from "classloader" to "process", so in Gradle 8.0 the action runs in the same process, while in 8.1 we actually spawn a separate process to run it. So we are no longer passing an in-memory reference to a String, but we are serializing it to a new process. I'm guessing we somehow lose the normal form of the original string somewhere along that process.

OK, so I added some tests here: https://github.com/gradle/gradle/pull/25227
Here's my test:

daemon process runs the task, which creates the output directory called Dév
worker process runs the action that tries to create a file called output.txt in Dév

I run the test twice, once with Dév specified as NFC, and once as NFD.
On macOS both tests pass. On Linux both fail. (If I call the output directory Dev (no accents) both tests pass on Linux, too.)
On both macOS and on Linux both the daemon and the worker processes have the same default charset (UTF-8) and locales (en_US), so that's not a difference.
What I managed to find is that File.absolutePath retains the normal form just fine between daemon and worker. However, File.toPath() exhibits more complex behavior:

on macOS File.toPath() will always return NFC, regardless of what normal form I created the directory with; this is consistent on daemon and worker;

on Linux, in the daemon File.toPath() retains the same normal form I created the directory with; however, on the worker it fails with:
Malformed input or input contains unmappable characters: /home/tcagent1/agent/work/f63322e10dd6b396/subprojects/workers/build/tmp/test
files/WorkerExecu.Test/ucdwh/build/Dév

I'm assuming this failure is swallowed when calling File.createNewFile() and gets turned into the IOException: No such file or directory.

OK, so this is not really about Unicode normal forms, but it boils down to sun.jnu.encoding being different. This is the system property that governs how the JVM sees path names on the file system:
https://stackoverflow.com/questions/1066845/what-exactly-is-sun-jnu-encoding
On the daemon process it is UTF-8, but on Linux on the worker process I see ANSI_X3.4-1968 (which is another way of saying ASCII). Having this setting it's no surprise that UnixPath.encode() throws the exception it does (see https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/19fb8f93c59dfd791f62d41f332db9e306bc1422/src/java.base/unix/classes/sun/nio/fs/UnixPath.java#L116-L155).
Now, the question is: what is different in how we start the daemon process to how we start the worker process that results in sun.jnu.encoding being set differently?
I tried to influence it by passing UTF-8 to ForkOptions.defaultCharacterEncoding and/or setting the sun.jnu.encoding system property to UTF-8 in the worker configuration. Neither changed the resulting value for sun.jnu.encoding in the worker JVM. :/

It might be similar or related to

#24498

Looking at JDK code, it sets up the (native) locale with setlocale(LC_ALL, "") and uses its encoding to initialize sun.jnu.encoding. The locale to set comes from environment variables (set of LC_* and then LANG) which we don't set for the worker, apparently. When no environment variable is set, the initial "POSIX" locale remains unchanged, and it seems to use the ANSI_X3.4-1968.
Adding spec.forkOptions.environment("LANG", System.getenv("LANG")) fixes the tests.

Yay. Anything else we need to pass? There's also LC_ALL and friends, no?

Yay. Anything else we need to pass? There's also LC_ALL and friends, no?

For this particular case, yes - LC_* may affect certain aspects of the worker JVM. Passing LANGUAGE may be useful too, though I'm not sure if it affects anything besides localized messages coming from gettext.
There are plenty of environment variables used to customize execution - PATH, HOME, DISPLAY, LD_PRELOAD, we might consider supporting these too.
I wonder if we should actually inherit the whole environment? It might affect the reusability of the worker daemon though and it would be a breaking change. Users may prefer this to having a clean environment by default (and those who still want control, can configure the environment explicitly).

For exec-like things (Exec task, project.exec {} etc.) we did inherit the whole environment by default, and that turned out badly. Not sure where we are with that, but I think we definitely don't want to expose the whole environment to workers.
Maybe we shouldn't expose LANG etc. from the host environment by default either, but set them to some sane default values instead?


Needs more detail

Section: "Configure and compile your app"
Step 6 Configuring the yaml

Where do we get the value for
Do I leave "login-flow: sign-up-or-sign-in" as is or do I need to change it to some value that I should know?
is "logout-success-url: " required? The tutorial didn't instruct to create a logout url.
Where do I get the value for "user-name-attribute-name:  "? I don't remember seeing that in any part of the tutorial.

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

ID: f81d7cec-7853-fe76-8178-dc1fc6886f1b
Version Independent ID: 61b1f5e0-f5cb-83c2-04ef-e8202dea9b33
Content: Use the Spring Boot Starter for Azure Active Directory B2C
Content Source: articles/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory-b2c-oidc.md
Service: active-directory-b2c
GitHub Login: @KarlErickson
Microsoft Alias: edburns

Hi, @KarlErickson
Could you please assign this issue to me?

Closing since the issue is logged elsewhere.


Disallow duplicate items during instantiation.

resolves #576

Codecov Report
Base: 95.06% // Head: 95.06% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (4e0fffe) compared to base (b4a0b60).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #594   +/-   ##
=======================================
  Coverage   95.06%   95.06%
=======================================
  Files          42       42
  Lines        3808     3813    +5
=======================================
+ Hits         3620     3625    +5
  Misses        188      188

Impacted Files
Coverage Δ

contracts/dao-core/src/contract.rs
97.57% <100.00%> (+0.02%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Order of point is incorrect

Order of additional 13 points point is incorrect
from 69 to 81

Yes, you're right. This was something I built without too much thought in the order and it didn't bother me for my project. I was more interested to make sure the points were good and positioning was symmetrical.  I need to find some time to fix this but I don't have it planned at the moment


Hacktoberfest 2020 pull request

Can I make four PR in this repo and get accepted for hacktoberfest 2020.

Yes! If you do 4 separate PRs in this same repo, it will be accepted for hacktoberfest, as per the rules.


[cxx-interop] Use fully-qualified type names of C++ template parameters

When importing C++ class template instantiations, Swift generates a type name for each instantiation. The generated names must be unique, since they are used for mangling.
If multiple different C++ types declare nested types with the same name, which are then used as template arguments, Swift was generating the same name for those template instantiations (e.g. shared_ptr<Impl> for different Impl types).
This change makes sure we use fully-qualified type names of template parameters when generating Swift type names for class template instantiations (e.g. shared_ptr<MyNamespace.MyClass.Impl>).
This fixes an assertion failure coming out of IRGen:
Assertion failed: (Buffer.empty() && "didn't claim all values out of buffer"), function ~ConstantInitBuilderBase, file ConstantInitBuilder.h, line 75.

rdar://141962480

@swift-ci please test

@swift-ci please test


FontAwesome icons load incorrectly at start (too large)

https://github.com/FortAwesome/vue-fontawesome/issues/14

https://github.com/FortAwesome/react-fontawesome/issues/53
https://fontawesome.com/how-to-use/on-the-web/other-topics/server-side-rendering

https://github.com/FortAwesome/react-fontawesome/issues/134

https://stackoverflow.com/questions/49781726/react-font-awesome-renders-big-icon-until-scales-down

https://github.com/react-icons/react-icons


surgical linker: don't generate dynhost if it's unchanged

This is an attempt to fix #3883, though I'm not totally sure it does. At least for me, I don't see faster rebuilds of rust hosts, but also the rebuild time is already very close to zig.
So, I'm not sure it fixes that problem, but I think it's a useful feature anyway.

To fix https://github.com/roc-lang/roc/issues/3883, I think we need to avoid generating the dummy lib, not the dynhost. They dummy lib is a dependency in build.rs for rust hosts. So if it changes it causes the host to rebuild.

I updated the PR, but as I commented on the original issue, I'm not really sure this is a cargo issue. What sort of setup did you use to see how long cargo spends rebuilding the platform?
I believe something on the order of 100ms is normal, even if cargo does not actually do anything (using strace on such a cargo invocation is informative: it checks a lot of timestamps etc)

Ok. This turned out to be a two part issue. I have been testing with rbt on linux, and it spends about 2 seconds rebuilding the host every run. This is time actually spent in cargo and not in the surgical linker. This obviously was a caching issue.
I thought that a build script that just specified it depended on a dynamic library would only rerun if the dynamic library changes. That is no the case. A rust build script by default will rerun if any file in a package changes. Since the surgical linker dumps files into the platform directory, this meant that the build script would always rerun.
To fix this, we need your change here, but also, we need to scope rust rebuilds. So this change plus adding println!("cargo:rerun-if-changed=libapp.so") to build.rs fixes the issue for me.

right, build.rs does not have good caching by default


CSS class for item status

Hi,
I cannot find a CSS class in filepond, that helps to identify items by status in filepond. For example:
Item status classes (<li class="filepond--item-[status]">)

dropped: file dropped in filepond, but not processed
processed: file processed
loaded local: file loaded from server (stored)
loaded limbo: file loaded from server (limbo)
edited: file edited but not processed

This could be very helpful to style filepond.

Every item in the list has a data-filepond-item-state attribute which you can use to identify the item status with in CSS (use attribute selectors).

I know about this data attribute. But I cannot distinguish if the item status is only dropped but not uploaded, uploaded or always local and loaded from server.

const StateMap = {
    DID_START_ITEM_LOAD: 'busy',
    DID_UPDATE_ITEM_LOAD_PROGRESS: 'loading',
    DID_THROW_ITEM_INVALID: 'load-invalid',
    DID_THROW_ITEM_LOAD_ERROR: 'load-error',
    DID_LOAD_ITEM: 'idle',
    DID_THROW_ITEM_REMOVE_ERROR: 'remove-error',
    DID_START_ITEM_REMOVE: 'busy',
    DID_START_ITEM_PROCESSING: 'busy',
    DID_REQUEST_ITEM_PROCESSING: 'busy',
    DID_UPDATE_ITEM_PROCESS_PROGRESS: 'processing',
    DID_COMPLETE_ITEM_PROCESSING: 'processing-complete',
    DID_THROW_ITEM_PROCESSING_ERROR: 'processing-error',
    DID_THROW_ITEM_PROCESSING_REVERT_ERROR: 'processing-revert-error',
    DID_ABORT_ITEM_PROCESSING: 'cancelled',
    DID_REVERT_ITEM_PROCESSING: 'idle'
};

These are the states available.
Why do you want to style them differently?

I want to disable edit button, if the file is already uploaded to the server or loaded as local from the server because I'm not able to control edit button.
Example
After uploading the file to the server or the file is loaded as local from server, the editor button is visible. If I click on the edit button I can crop the image an click save. After image edit save, the upload button should appear, so that I can re-upload the new cropped version of the file, but the upload button don't appear (if file is loaded as local from server).


fix: Look for interaction mgr on renderer

Addresses https://github.com/jbhaywood/scaleGrid/issues/11, https://github.com/jbhaywood/scaleGrid/issues/7

Closing this out since the whole module has moved over to you.


Create actual diffs when comparing requests and responses

Currently the log output of manners is really hard to read.
Developing with it feels really, really bad, simply because it's really hard to tell what is going on. Creating and printing actual diffs with meaningful messages would go a long way in understanding this.

With pull request #24 being merged, we at least have some very basic validation reporting. We can show which of the request fields (method, path, query, ...) don't validate correctly and we can show the actual vs the expected data.
However,  we're missing detailed views for the query, headers and body fields.


improve spl-token accounts

~fetch for all programs by default~
~display program an account belongs to~
~display delegate/close authority~
~filter by delegate/close authority~
~output nothing but token account addresses~

first two are for better token22 ergonomics, latter three are for conveniently viewing and revoking unwanted permissions
closes #3602

verbose output is getting a bit excessive but at least its not false advertising
i was thinking the other day "hmm itd be cool if i updated the token revoken site to remove close authority too, ugh i dont want to have to edit webapp shit tho. ... hmm, what if i made it a cli app instead? ... wait what if i put it in the official solana cli app ive been working on already that literally is meant to do stuff like this"
check this shit out
./spl-token accounts -v
Program                                       Token                                         Account                                       Delegated     Close Authority                               Balance
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA   2vy9BjJiWpoGbT7KGx38ESVLCZRK7jQQ8txsRvFW3Xma  BDUu8po9hjby9sBBd5SWEivSGGmS4Tz1EnQyKRZmVp2c                                                              0
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA   2vy9BjJiWpoGbT7KGx38ESVLCZRK7jQQ8txsRvFW3Xma  6Dmy3Y5fuTbPRHKgxiGGcCsWmYyibnx4jfZfgxGm37Aa  100000000     6eJGpJFrYke5v2pi2u42CPUg9mvd46rVFL7BW2gtaWPY  0  (Aux-1*)
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA   Ffgf3CTakaTzUAKUSMxTmWDmErMcthwsk9o4DEtPhCtC  C3cwMBeMp2sgxzWBxeozznS3DewWu5NEVnk58yUom3jL                                                              0           !  Frozen
TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb   D7XK3136qJ6LcZwSqmWRxUo8Ni8MSWwT4m9sa3RiJdMk  64Bj6G7DnVMKKdagzxjvc4GBDo88B4ZV1L4K6BHUMmtt<PHONE_NUMBER>00                                                0

* Please run `spl-token gc` to clean up Aux accounts

./spl-token accounts --delegated --addresses | xargs -L1 ./spl-token revoke
Revoking approval
  Account: 6Dmy3Y5fuTbPRHKgxiGGcCsWmYyibnx4jfZfgxGm37Aa
  Delegate: AKYMkxqc2MphB3fpQStPeDgn6KcRZRnC5xcGhYapueSq

Signature: 3GMBCupk97qxX1GxFtMSLocDbLZaoFydpjaXua8C1fVQ8nKgwzD9LApvpxCJycjSoV8opV4MMP4nQuyFHdUWir15

Revoking approval
  Account: 64Bj6G7DnVMKKdagzxjvc4GBDo88B4ZV1L4K6BHUMmtt
  Delegate: AKYMkxqc2MphB3fpQStPeDgn6KcRZRnC5xcGhYapueSq

Signature: 5E8rosZHrRQ8b9muYqDHUVqqpoGbMjDhauC1XRJ625REV8KUhgy7aiduVMzBcM1nGcu5em98txUmAPzBPhHnHNb9

./spl-token accounts -v
Program                                       Token                                         Account                                       Delegated  Close Authority                               Balance
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA   2vy9BjJiWpoGbT7KGx38ESVLCZRK7jQQ8txsRvFW3Xma  BDUu8po9hjby9sBBd5SWEivSGGmS4Tz1EnQyKRZmVp2c                                                           0
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA   2vy9BjJiWpoGbT7KGx38ESVLCZRK7jQQ8txsRvFW3Xma  6Dmy3Y5fuTbPRHKgxiGGcCsWmYyibnx4jfZfgxGm37Aa             6eJGpJFrYke5v2pi2u42CPUg9mvd46rVFL7BW2gtaWPY  0  (Aux-1*)
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA   Ffgf3CTakaTzUAKUSMxTmWDmErMcthwsk9o4DEtPhCtC  C3cwMBeMp2sgxzWBxeozznS3DewWu5NEVnk58yUom3jL                                                           0           !  Frozen
TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb   D7XK3136qJ6LcZwSqmWRxUo8Ni8MSWwT4m9sa3RiJdMk  64Bj6G7DnVMKKdagzxjvc4GBDo88B4ZV1L4K6BHUMmtt                                                           0

* Please run `spl-token gc` to clean up Aux accounts

while i was trying to get my columns looking pretty, i learned pubkeys can sometimes be 43 characters long instead of 44??? fucked up imo

while i was trying to get my columns looking pretty, i learned pubkeys can sometimes be 43 characters long instead of 44? seems rude

Actually, base58 encoding of 32 bytes can be as small as 32 characters. Eg Pubkey::default()...


Added Colab File - NLP to BioMed - Scispacy

Added the google colab file to carry and visualize the implementations on a single platform file.

Hi, thanks for the PR - sorry, I don't think we'll merge this. It's hard to keep jupyter notebooks in sync with the rest of the repository, and we already have examples in the readme. Thanks though!


Update gradle/maven examples to 1.22.0

Thanks for the fix, Dave. We missed out 1.22 window, but this PR will live on in spirit: #1071.


Update SPI.md

Documentation: add minimal Go version required for building from source.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Looks good to me - was it the root of the issue you were having?


Paginator appends not adding to meta of api resource collection json

Laravel Version: 5.6.11
PHP Version: 7.1
Database Driver & Version: 5.6

Description:
Paginator appends method does not add data in the "metas" of the json data generated by an API resource collection.
Steps To Reproduce:
$pagination = $query->paginate();
$pagination->append([
    'key' => 'value',
]);
return new JsonResource::collection($pagination);

Also would like these key/values to be in the generated "links", for instance
"links": {
    "first": "http://localhost:8000/api/resource?page=1&key=value",
    ...
}

I think you can try
$pagination = $query->paginate();
$pagination->appends([
    'key' => 'value',
]);
return new JsonResource::collection($pagination);

Paginator appends method does not add data in the "metas" of the json data generated by an API resource collection.

Why do you expect that?

@HongjiangHuang Good catch, but it was only a copy-paste typo, I'm correcting the sample

Hmm. I think you use appends, problem solved

@HongjiangHuang Problem is not solved. appends work when returning the paginator in a controller, but does not apply when wrapped by a resource.
By debugging the source in vendor folder, we can see that the data is there, but not used. Only specific keys are used:
https://github.com/laravel/framework/blob/bf975fa30108a873098f8bd8ee348f8f4a3130f6/src/Illuminate/Pagination/LengthAwarePaginator.php#L161
The appends method:
https://github.com/laravel/framework/blob/bf975fa30108a873098f8bd8ee348f8f4a3130f6/src/Illuminate/Pagination/AbstractPaginator.php#L198

oh well.. after test a few times, I see that the appends method does indeed inject in the links section of the json and not the meta. And that seems right to me.
And if I need stuff to appear in the meta I can just use a ResourceCollection.
Thanks for the input.

maybe you want this
` $total_fee = $builder->sum('user_fee');
    $orders = $builder->latest()->paginate(10);

    return OrderResource::collection($orders)->additional([
        'meta' => [
            'total_fee' => $total_fee,
        ]
    ]);

`
then, the meta total_fee in response's meta

On Dec 16, 2018, at 6:08 PM, youruan<EMAIL_ADDRESS>wrote:
maybe you want this
` $total_fee = $builder->sum('user_fee');
$orders = $builder->latest()->paginate(10);

return OrderResource::collection($orders)->additional([
    'meta' =>+1 [
        'total_fee' => $total_fee,3500
    ]
]);

`
then, the meta total_fee in response's meta
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

i think this kind of thing should be baked into the framework.. because most times if you have a filter clause (e.g. filter['name'] or w/e. the pagination links dont make sense if they dont have this additional params.. just a fyi.. having to do ^ is a bit annoying


help: Document bot owners can delete messages sent by their bots.

This is a follow-up PR to document the new feature added in #26008.
Screenshots and screen captures:

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Feature.
[x] Visual appearance of the changes.
[x] Links.

@alya This PR is ready for review.
@zulipbot add "help center review"

I haven't tested, but think it's not bots that you add, but bots that you own? It's possible to change the owner of a bot.

Looks good to me other than that.

It's possible to change the owner of a bot.

Oh that's cool, I didn't know. I tested and also updated "View your bots".

Looks good to me!

I made the following edits:
diff --git a/help/delete-a-message.md b/help/delete-a-message.md
index 06d0c46d69..6a56229b27 100644
--- a/help/delete-a-message.md
+++ b/help/delete-a-message.md
@@ -75,9 +75,9 @@ you also delete the message.

 !!! tip ""

-    If you are allowed to delete your messages in your Zulip organization, you
-    can also delete messages sent by
-    [bots that you own](/help/view-your-bots).
+    You can delete messages sent by [bots that you
+    own](/help/view-your-bots) under the same circumstances as
+    messages you had sent yourself.

 ## Restoring deleted messages

diff --git a/help/restrict-message-editing-and-deletion.md b/help/restrict-message-editing-and-deletion.md
index 75d30d7941..3edda9566e 100644
--- a/help/restrict-message-editing-and-deletion.md
+++ b/help/restrict-message-editing-and-deletion.md
@@ -13,7 +13,7 @@ Note that if a user can edit a message, they can also "delete" it by removing
 all the message content. This is different from proper message deletion in two
 ways: the original content will still show up in [message edit
 history](/help/view-a-messages-edit-history), and will be included in
-[exports](/help/export-your-organization). Deletion permanently (and
+[data exports](/help/export-your-organization). Deletion permanently (and
 irretrievably) removes the message from Zulip.

 ## Configure message editing permissions
@@ -52,6 +52,12 @@ irretrievably) removes the message from Zulip.

 {end_tabs}

+!!! tip ""
+
+    A user can delete messages sent by [bots that they
+    own](/help/view-your-bots) under the same circumstances as
+    messages the user had sent themself.
+
 ## Related articles

 * [Edit a message](/help/edit-a-message)

How about this?

You can delete messages sent by bots that you own just like messages you sent yourself.
A user can delete messages sent by bots that they own just like messages they sent.

Sure, changed and marked to merge once CI passes. Thanks @drrosa and @alya!


ci: temporarily disable coverage

I'm temporarily disabling coverage for now since it's blocking PRs. It'll be fixed/re-enabled in https://github.com/lyft/envoy-mobile/issues/863.
I spent a few minutes looking into fixing the breakage from https://github.com/envoyproxy/envoy/pull/10909, but it looks like the fix won't be trivial since we rely on EXTRA_QUERY_PATHS and ONLY_EXTRA_QUERY_PATHS (the latter of which was added upstream by @junr03 recently), and the file that used those was deleted in the above PR.
Signed-off-by: Michael Rebello<EMAIL_ADDRESS>

Updated the PR description to include more context + linked issue


Fix missing x user token header

Please provide a description of what your change does and why it is needed.
relates to SAP/cloud-sdk-backlog#456
relates to SAP/cloud-sdk-backlog#457
This issue was brought up by the issues #1810 and $1806. The problem where that the wrong tokens were selected in a provider/subscriber scenario. Now for all user depended flows the x-user-token is set and for the OAuth2ClientCred the x-tenant header as both described here.
@jjtang1985 can you add a sentence how to configure the ias credentials. I executed the local test and they all worked. With one exception, where I tried to reach out to the destination service colleagues.

PR for additional E2E tests is already prepared: https://github.tools.sap/cloudsdk/sdk-js/pull/100


plugin install is broken in master: rename fails "file exists"

I added bin: ca-cert.sh to existing ca-cert.yaml and ran:
kubectl krew install --source ~/.krew/index/plugins/ca-cert.yaml -v=10

I0925 10:43:18.446458   77773 git.go:62] Going to run git pull --ff-only -v
From https://github.com/GoogleContainerTools/krew-index
 = [up to date]      master     -> origin/master
Already up to date.
Updated index
Will install plugin: ca-cert
I0925 10:43:18.943571   77773 install.go:105] Installing plugin: ca-cert
I0925 10:43:18.943610   77773 install.go:69] Looking for installed versions
I0925 10:43:18.943639   77773 util.go:61] Searching for installed versions of ca-cert in "/Users/ahmetb/.krew/bin"
I0925 10:43:18.943675   77773 install.go:78] Finding download target for plugin ca-cert
I0925 10:43:18.943689   77773 util.go:43] Matching platform for labels(arch=amd64,os=darwin)
I0925 10:43:18.943792   77773 util.go:50] Found matching platform with index (0)
I0925 10:43:18.943817   77773 util.go:113] Matching plugin version is 8be8ed348d02285abc46bbf7a4cc83da0ee9d54dc2c5bf86a7b64947811b843c
I0925 10:43:18.943827   77773 install.go:46] Creating download dir "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew/ca-cert"
I0925 10:43:18.944054   77773 install.go:56] Getting sha256 (8be8ed348d02285abc46bbf7a4cc83da0ee9d54dc2c5bf86a7b64947811b843c) signed version
I0925 10:43:18.944087   77773 downloader.go:32] Fetching "https://github.com/ahmetb/kubectl-extras/archive/c403c5714a4442b8314e5a86b0ff63f7a815f83f.zip"
I0925 10:43:19.750567   77773 downloader.go:39] Reading download data into memory
I0925 10:43:19.818536   77773 downloader.go:44] Read 19613 bytes of download data into memory
I0925 10:43:19.818588   77773 downloader.go:52] Extracting download zip to "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew/ca-cert"
I0925 10:43:19.829590   77773 move.go:155] Creating plugin dir "/Users/ahmetb/.krew/store/ca-cert"
I0925 10:43:19.829832   77773 move.go:161] Creating temp plugin move operations dir "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew-temp-move184368352"
I0925 10:43:19.829850   77773 move.go:126] Finding move targets from "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew/ca-cert" to "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew-temp-move184368352" with file operation=index.FileOperation{From:"/*/ca-cert/*", To:"."}
I0925 10:43:19.829898   77773 move.go:44] Trying to move single file directly from="/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew/ca-cert" to="/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew-temp-move184368352" with file operation=index.FileOperation{From:"/*/ca-cert/*", To:"."}
I0925 10:43:19.830031   77773 move.go:52] Wasn't a single file, proceeding with Glob move
I0925 10:43:19.830323   77773 move.go:76] Move operations are complete
I0925 10:43:19.830338   77773 move.go:133] Move file from "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew/ca-cert/kubectl-extras-c403c5714a4442b8314e5a86b0ff63f7a815f83f/ca-cert/ca-cert.bash" to "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew-temp-move184368352/ca-cert.bash"
I0925 10:43:19.830543   77773 move.go:133] Move file from "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew/ca-cert/kubectl-extras-c403c5714a4442b8314e5a86b0ff63f7a815f83f/ca-cert/plugin.yaml" to "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew-temp-move184368352/plugin.yaml"
I0925 10:43:19.830729   77773 move.go:172] Move "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew-temp-move184368352" to "/Users/ahmetb/.krew/store/ca-cert/8be8ed348d02285abc46bbf7a4cc83da0ee9d54dc2c5bf86a7b64947811b843c"
W0925 10:43:19.836107   77773 install.go:112] failed to install plugin "ca-cert", err: failed to dowload and move during installation, err: could not rename file from "/var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew-temp-move184368352" to "/Users/ahmetb/.krew/store/ca-cert/8be8ed348d02285abc46bbf7a4cc83da0ee9d54dc2c5bf86a7b64947811b843c", err: rename /var/folders/76/5g_jbgjn6xg_jkwcm2n_m52r00dl55/T/krew-temp-move184368352 /Users/ahmetb/.krew/store/ca-cert/8be8ed348d02285abc46bbf7a4cc83da0ee9d54dc2c5bf86a7b64947811b843c: file exists
F0925 10:43:19.836154   77773 root.go:48] failed to install some plugins: [ca-cert]

I think this happened during a half-complete installation somehow. Here's my ~/.krew/store/ca-cert:
tree ~/.krew/store/ca-cert
/Users/ahmetb/.krew/store/ca-cert
└── 8be8ed348d02285abc46bbf7a4cc83da0ee9d54dc2c5bf86a7b64947811b843c
    ├── ca-cert.bash
    └── plugin.yaml

1 directory, 2 files


Deprecating {compose|pipe}{P|K}

Why is deprecated?

@antonazgarovich:
They're being replaced with pipeWith/composeWith, a more generic version that can handle these and other possible piping operations.  See #2515 and related discussions.


Update default execution environment image for ansible-navigator

It is temporarily using a copy of the awx-ee, ansible-navigator should have it's own curated image.

https://github.com/ansible/ansible-devtools-demo-ee

This is complete and set to the creator-ee


Link to https://bfinster-value-stream-map.netlify.app/ in the GH key info box (settings)?

Not sure what you mean.

Just here - link back to finished site -

Done


AccessViolationError exception when using SFML Sound/Music

I've noticed that overwhelming the SFML audio implementation will throw an AccessViolationError exception. I was able to reproduce this by playing a 1 second .flac file roughly 65 times per second, garnering anywhere between 4,000 to 10,000 successful plays before crashing.

Contrary to my initial thoughts on the cause of this exception, the issue of the AccessViolationError lies solely on a single if-statement. The check to see if the thread running the ADC (audio garbage collector) was not properly written, and allowed for new AGC threads to get created. The AccessViolationError was thrown when a method or property in a disposed audio object was attempted to be accessed.
This will be fixed in the upcoming commit.
// Old if-statement
if (this._collector?.ThreadState != ThreadState.Running)
vs
// Updated if-statement
if (this._collector == null || this._collector.ThreadState == ThreadState.Stopped)


Determine the optimal way to play a given chord sequence

The idea is that the user inputs a sequence of chord names and is presented a diagram showing the most convenient way to play these chords. I'm not sure how (and if at all) this can be computed reliably but it will probably involve some kind of distance measure between different chord shapes.
For this, the compact representation described in #16 would probably be helpful ad easier to read.
Something similar could also be useful for melodies.

In this project, the distance between different chord fingerings is calculated and compared using a modified Levenshtein distance:
https://github.com/pcorey/chord


Do getAllDocuments and/or deleteDocument throw exceptions when they fail?

This isn't mentioned in the documents, but it might be good to know so I can make sure to handle exceptions before they come up randomly :)

All async methods exposed in the API are fallible (although it is unlikely they ever will, unless it’s something like you need to specify a valid primary key).
I’ll leave this open until I can add a blurb to the documentation about it later 👌


Focus fix

Focus is lost if I leave the editing process and focus another window in the background. This seems to fix the issue.

Thanks! My original PR to emacs-anywhere is also updated.


Start path map storage migrator

This is a draft pr for the path mapped migrator. This migrator has two commands:

scan: will scan the storage folder for all file paths, and records them to files by batch to a work dir
migrate: will read all paths from files in work dir, and generate path mapped records into db storage

I've only tested "scan" command on a test storage with 10+ million paths with batch 50000 for a file, and it
will take about 30 mins to finish. I did not test the "migrate" command because I did not setup a local cassandra
instance successfully yet. I'll try to do that later.
Now all commands are working in single thread mode, maybe we can try to multi-thread them later if performance is unacceptable.

I noticed this is to master. That will bring all of path-mapped to master. I think you want to merge this to the branch master-integration-pathmap.

Well, this only adds some dependencies to master. Maybe merge to master is not bad. We can use the tool without changing the indy image.

I am going to test it on indy-infra. We have cassandra cluster there.


Default GPU VM size is not set

On the default UI template: tag/2024.06.06
Line: https://github.com/Azure/cyclecloud-slurm-workspace/blob/4e29c9fbca0dba12ed21169a3362eb1f3c54506e/uidefinitions/createUiDefinition.json#L1208
List is set to include only :
Standard_ND96asr_v4
This appears as empty depending on regions

Change:
Add others ; eg NC24?

Thanks @ossonts, it's probably because of a lack of quota in the region. Which region were you targeting ?

this is closed by #56


[Extensibility-Bug] Table "Warehouse Activity Line" - OnBeforeDeleteWhseActivLine2

Hi,
in Publisher "OnBeforeDeleteWhseActivLine2" in Table "Warehouse Activity Line" the parameter IsHandled is not declared as VAR therefore the value set by subscribers is ignored.
Current
[IntegrationEvent(false, false)]
local procedure OnBeforeDeleteWhseActivLine2(var WarehouseActivityLine2: Record "Warehouse Activity Line"; CalledFromHeader: Boolean; IsHandled: Boolean)
begin
end;

Fix:
[IntegrationEvent(false, false)]
local procedure OnBeforeDeleteWhseActivLine2(var WarehouseActivityLine2: Record "Warehouse Activity Line"; CalledFromHeader: Boolean; **var** IsHandled: Boolean)
begin
end;

Thanks,
Christian

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Styles extraction doesn't work in server components (Workaround Available~! See comments)

Maintainer Edits/Notes:
For those who want to use style9 in Next.js 13's appDir + Server Components, use style9-webpack/next-appdir instead of style9-webpack/next for now.
For those who want to know why style9 might not work with Next.js 13's appDir, check out https://github.com/SukkaW/style9-webpack#motivation and https://github.com/SukkaW/style9-webpack/issues/1#issuecomment-1406730266

The plugin seems to work great with client components in the app dir, but not in server components.
Here is a very basic reproduction:
https://codesandbox.io/p/sandbox/ew8bdq
Can you spot anything wrong with our setup?
From the testing we've done, it would seem like Style9 itself works fine. If a server component uses a class that is also used in a client component (e.g., both use color: green;), the server component has the correct class and is painted green. However, if the server component uses a style that isn't used in any client component, say color: gold;, it will have a class on it that does not exist in the extracted css file.

@Dwlad90
Would you like to try the following patch to see if it works? You only have to patch next.
https://github.com/vanilla-extract-css/vanilla-extract/issues/929
Contexts:

https://github.com/vanilla-extract-css/vanilla-extract/issues/929
https://github.com/vanilla-extract-css/vanilla-extract/issues/929#issuecomment-1338310803

@Dwlad90
After discussing with Next.js Team, we are able to pinpoint where Next.js drop all the loaders.
https://github.com/vercel/next.js/blob/3a9bfe60d228fc2fd8fe65b76d49a0d21df4ecc7/packages/next/src/build/webpack/plugins/flight-client-entry-plugin.ts#L425-L429
Here, only path and query are left, and all loaders are ignored.
However, it is not easy for Next.js to fix this. In the mean time, I am still figuring out how to workaround this.

@SukkaW
Thank you so much, the new version of plugin works perfectly with both components (Server and Client).
Here is a very basic reproduction with<EMAIL_ADDRESS>https://codesandbox.io/p/github/Dwlad90/elegant-cloud-zckzqc/main

Thank you so much, the new version of the plugin works perfectly with both components (Server and Client).

Thanks for your feedback!
In the meantime, I will keep the issue open. Once Next.js has fixed that part of its internal implementation, I will add a deprecation/removal warning in style9-webpack/next-appdir (to inform users to switch back to style9-webpack/next), and then I will close the issue.

Hey @SukkaW,
CSS extraction on server components stopped working in the NextJS version  @(13.5.4).
Could you please check what happened?
Here is a basic reproduction:
https://codesandbox.io/p/github/Dwlad90/elegant-cloud-zckzqc/draft/goofy-dawn

Could you please check what happened?

Update:
It works fine with the latest version of style9-webpack (0.5.2), thanks.

Actually, the issue should have happened since Next.js 13.4.19, when Next.js removes the experimental.appDir (appDir is now enabled by default).
Here is the related change that has landed in<EMAIL_ADDRESS>https://github.com/SukkaW/style9-webpack/commit/35f4e3115308dc2dd98ff3a07f8cd8ddbeb80b53

Could you please check what happened?

Update:
It works fine with the latest version of style9-webpack (0.5.2), thanks.

Actually, the issue should have happened since Next.js 13.4.19, when Next.js removes the experimental.appDir (appDir is now enabled by default).
Here is the related change that has landed in<EMAIL_ADDRESS>35f4e31

This actually happened after updating Next JS from "13.4.19" to "13.5.4". The previous version didn't have this problem.


Introduce a SQL statement parser in Python

#254 and #653 are both examples of problems that could be solved using a real SQL parser in Python.

pyparsing has an example based on SQLite SELECT statements: https://github.com/pyparsing/pyparsing/blob/8d9ab59a2b2767ad56c9b852c325075113718c0a/examples/select_parser.py
https://github.com/lark-parser/lark is a relatively new (less than two years old) parsing library that looks promising too.


vcpkg integrate install doesn't work

Describe the bug
The command "vcpkg integrate install" doesn't seem to do anything, even if it reports success.
Environment

OS: Windows 10 1709
Compiler: Microsoft Visual Studio Enterprise 2019 Version 16.7.3
Visual C++ 2019   00435-60000-00000-AA401
Using v140 toolset in 2019
Vcpkg package management program version 2020.06.15-nohash

To Reproduce
Steps to reproduce the behavior:

install vcpkg package
./vcpkg integrate install
Build the project that has dependency on installed vcpkg project. Include and Lib paths don't get resolved. Looking for related variables/macros of the form $vcpkg... none can be found in VS,  except for $VcpkgRoot.

Expected behavior
Projects don't fail looking for include and lib dependencies built with vcpkg
Failure logs
Standard "fatal error C1083: Cannot open include file:... "
and unresolved externals for linker
Additional context
I have both VS 2017 and VS 2019 installed. Using only VS 2019 IDE but VS 2015 (v140) toolset for all the projects.
I noticed that VS 2017 has all the $vcpkg... macros available while VS 2019 doesn't. Unable to figure out how to make "vcpkg integrate install" target a specific VS version I decided to uninstall VS 2017. After VS 2017 uninstall run "vcpkg integrate install" again, hoping that it will affect now the only installed version, VS 2019 one, but it didn't, even if it keeps saying :

Applied user-wide integration for this vcpkg root.
All MSBuild C++ projects can now #include any installed libraries.
Linking will be handled automatically.
Installing new libraries will make them instantly available.

Thanks for posting this issue. Did you run command ./vcpkg integrate project?

I tried it, following your suggestion and it worked for me.
Thanks!
Since I am working in a group of developers I am not sure what would be the best approach.
Some developers have no issues with ./vcpkg integrate install,  some, like me, do. We are sharing solution and project files in Git so we would all like to be on the same page.
Frankly, I don't find the option of a dummy nuget package, just to point to vcpkg installed package folder, very attractive.

./vcpkg integrate install  is often used in cmake projects, and ./vcpkg integrate project is often used in MSVC projects. You can run these two commands on vcpkg at the same time, there is no conflict between them.

Thanks for posting this issue. This issue has been fixed. So I am closing this issue for now.

idk Why But When i Run The Code It is Not Work
./vcpkg : The term './vcpkg' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1

./vcpkg integrate install

  + CategoryInfo          : ObjectNotFound: (./vcpkg:String) [], CommandNotFoundException
  + FullyQualifiedErrorId : CommandNotFoundException

@Herobrinemen you can try vcpkg integrate install (assuming vcpkg is installed, AND it is in your path)

@jleaders @Herobrinemen ./vcpkg is POSIX syntax for running a program in the current working directory. The error message you reported indicates a Windows Powershell environment. Windows uses backlslash: .\vcpkg
But let this old issue be silent now.


502s on the Sandmark nightly UI

The latest deploy from main seems to have worked fine. The Dockerfile works fine when run locally using the start_docker.sh script.

@punchagan The build was completed, but the deployment stalled on updating the docker service.  I have scaled the service to zero and then scaled it back to one instance, and now the deployment has succeeded.  http://sandmark.tarides.com/ now opens

Thanks @mtelvers ! :tada:


Add more commands?

Adding more commands

[x] make:transformer (merged #55)
[ ] make:presenter
[ ] make:validator goes on laravel-validator
[ ] make:entity - wrapper to all of the above?

the make:entity command would generate the Repository, the Transformer, the Presenter and the Validator for that entity.

I see the value in this as well, although the make:validator should go in the validator package. I could contribute too.

Yea sure, the command for validator should go into the validator package.

I think you should just place a PR. Although I don't know if @andersao prefers it on the master or develop branch.

+1.
@ionut-tanasa @Jeroen-G
From what I know. PR quick fixes and small additions to master, completely new functions to develop.
So master would be more suitable for this.

Hello guys @ionut-tanasa @Jeroen-G @hiddeco ,
I liked the suggestion and I think it will be great to add new commands . What about the branch , the @hiddeco  is right. Rather than new features being sent to branch Develop or create other specific branch .
The contribution of you will be very well accepted ;)

@ionut-tanasa, are you gonna make a PR? Otherwise I will make one this week.
On Monday 29 Jun 2015 at 16:42, Anderson Andrade<EMAIL_ADDRESS>wrote:
Hello guys @ionut-tanasa @Jeroen-G @hiddeco ,
I liked the suggestion and I think it will be great to add new commands . What about the branch , the @hiddeco  is right. Rather than new features being sent to branch Develop or create other specific branch .
The contribution of you will be very well accepted ;)
—
Reply to this email directly or view it on GitHub.

@hiddeco please do.
I just started the command for the transformer. Maybe you can do the other one/ones?

If you've created a PR-repo you can give others push access to it, so it can be one PR.

Check #55.
I gave you push access to the repo.
Now it's basic stuff. Maybe we could specify with which properties the return array from the transformer will be filled. Like the --fillable argument for the Model

That is actually a great idea, you just want to copy the column names from the database to the transformer than? Because most transformers contain different names than the database columns do (at least mine do).

@andersao I love that you are merging so quick my PRs
I'll make the basic presenter command and pr it. then you could improve it and more features to it

And I 'm loving the contribution of you.

Just a quick question. I'm trying to understand how to pass variables to the stubs.
In the presenter, obviously, I need to use the transformer class. How do I get the root namespace and pass it to the stub in order to write the exact namespace of the transformer?
I am assuming that the Presenter will use a Transformer with the same name.
So when I run make:presenter MODEL, I assume that you already have a MODELTRansformer created.
Maybe I can check that, if the transformer does not exist I can create it for the user.
So how do I pass the root namespace, i.e. App so on top of the class I can use App\Transformers\MODELTransformer ?

Laravel has a trait for this: Illuminate\Console\AppNamespaceDetectorTrait
Then you could use $this->getAppNamespace()

Maybe I didn't explain myself very well :smile:
I know how to get the app namespace from Laravel. My question was: How do I pass the namespace as $APPNAMESPACE$ to the stub file?

If you take a quick look at the ModelGenerator.php you can find the getReplacement() function. This loads the replacements for the stub file.
Quick untested example
    /**
     * Get array replacements.
     *
     * @return array
     */
    public function getReplacements()
    {
        return array_merge(parent::getReplacements(), [
            'appnamespace' => $this->getAppNamespace()
        ]);
    }

thank you @hiddeco
@andersao PR done #57

Done. Closing


removed distance metrics other than SE2

Write a detailed description about the code you want to merge.

Checklist:

[ ] Tests
[ ] Documentation/Header comments
[ ] Linting

Remove appropriate files from CMakeLists.txt


feat(features): add reports features

:tada: This PR is included in version 1.14.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: