FluentSwitch inside FluentTab does not work anymore (since 4.3.0)

🐛 Bug Report
Since version 4.3.0 a switch inside a tab does not update the bind-value anymore.
💻 Repro or Code Sample
I have added a test based on the latest dev branch in this repository. Additionally, here the code that does not work anymore.
<FluentTabs>
    <FluentTab Label="Tab with Switch">
        Enabled: @Enabled
        <FluentSwitch @bind-Value="Enabled" />
    </FluentTab>

</FluentTabs>

@code {
    bool Enabled = false;
}

The bind-value updates once to true after clicking the switch. Afterwards, the bind-value does not change anymore.

Observed the same; the content of the tab will get rerender as expected once. However, the bound value are still being updated and switching to a different tab and back shows the expected content.
Assuming this is caused by the changes from: https://github.com/microsoft/fluentui-blazor/pull/1222

@martinbu, @AlexDickerson this was indeed caused by #1222. Reverting those changes for next release

Hi @vnbaaij, I noticed that v3.5.1 also have this problem. And I think not only Switch is affected, same goes to other control. Can you confirm? Thanks. :)

Hi @vnbaaij, I noticed that v3.5.1 also have this problem. And I think not only Switch is affected, same goes to other control. Can you confirm? Thanks. :)

Yes. Reverted it and will release v3.5.2 today


Errors when using with @libp2p/webrtc-star

I'm trying to use this library with @libp2p/webrtc-star. When running on electron-main, everything works until a webrtc connection comes in, at which point I get the following error:
Uncaught TypeError: this.peerConnection.addEventListener is not a function
      at new WebRTCHandshake (file:///Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/@libp2p+webrtc-peer@2.0.2/node_modules/@libp2p/webrtc-peer/dist/src/handshake.js:10:29)
      at new WebRTCReceiverHandshake (file:///Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/@libp2p+webrtc-peer@2.0.2/node_modules/@libp2p/webrtc-peer/dist/src/receiver.js:33:9)
      at new WebRTCReceiver (file:///Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/@libp2p+webrtc-peer@2.0.2/node_modules/@libp2p/webrtc-peer/dist/src/receiver.js:12:26)
      at SigServer._createChannel (file:///Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/@libp2p+webrtc-star@6.0.0/node_modules/@libp2p/webrtc-star/dist/src/listener.js:69:25)
      at SigServer.handleWsHandshake (file:///Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/@libp2p+webrtc-star@6.0.0/node_modules/@libp2p/webrtc-star/dist/src/listener.js:148:28)
      at Emitter.emit (/Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/@socket.io+component-emitter@3.1.0/node_modules/@socket.io/component-emitter/index.js:143:20)
      at Socket.emitEvent (file:///Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/socket.io-client@4.5.4/node_modules/socket.io-client/build/esm-debug/socket.js:379:20)
      at Socket.onevent (file:///Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/socket.io-client@4.5.4/node_modules/socket.io-client/build/esm-debug/socket.js:366:18)
      at Socket.onpacket (file:///Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/socket.io-client@4.5.4/node_modules/socket.io-client/build/esm-debug/socket.js:334:22)
      at Emitter.emit (/Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/@socket.io+component-emitter@3.1.0/node_modules/@socket.io/component-emitter/index.js:143:20)
      at file:///Users/julienmalard/atom/constl/ipa/node_modules/.pnpm/socket.io-client@4.5.4/node_modules/socket.io-client/build/esm-debug/manager.js:215:18
      at process.processTicksAndRejections (node:internal/process/task_queues:81:21)

On Node, things fail at the init() stage:
     TypeError: Cannot read properties of undefined (reading 'on')
      at ResourceManager.registerListener (node_modules/.pnpm/@ca9io+electron-webrtc-relay@0.2.0/node_modules/@ca9io/electron-webrtc-relay/lib/ResourceManager.js:70:28)
      at new ResourceManager (node_modules/.pnpm/@ca9io+electron-webrtc-relay@0.2.0/node_modules/@ca9io/electron-webrtc-relay/lib/ResourceManager.js:21:14)
      at Bridge.init (node_modules/.pnpm/@ca9io+electron-webrtc-relay@0.2.0/node_modules/@ca9io/electron-webrtc-relay/lib/ElectronBridge.js:33:32)
      at file:///Users/julienmalard/atom/constl/ipa/dist/src/sfip/config%C3%89lectronPrincipal.js:9:6
      at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
      at async Promise.all (index 0)
      at ESMLoader.import (node:internal/modules/esm/loader:281:24)
      at obtConfigPlateforme (file:///Users/julienmalard/atom/constl/ipa/src/sfip/index.ts:16:25)
      at initSFIP (file:///Users/julienmalard/atom/constl/ipa/src/sfip/index.ts:39:28)
      at Context.<anonymous> (file:///Users/julienmalard/atom/constl/ipa/test/sfip.spec.ts:9:12)

Do you have any idea what I am doing wrong? The original wrtc package works on Node but abruptly crashes on electron-main.
Thanks!

This package should be a drop in replacement to relay the wrtc interface from the electron frontend to the backend, replacing the outdated wrtc node version (which is also not available for m1 mac, or not working very well at least)
If you do not use electron, this wont work (node case, probably). It does not provide an electron version bundled with it (and set up as relay), you have to provide your own. It is meant for electron applications really. The original problem I had with the electron-webrtc package are the awefully outdated dependencies.
as for the first problem, I do not know the @libp2p/webrtc-star package. If it supports the standard wrtc interface things should work, this package is just the browser wrtc implementation basically.
Let me know in case you solved the problem or need further help 👍🏻

Thanks for the detailed response! Regarding node, I think you are right. For electron-main, @libp2p/webrtc-star does support the standard wrtc package.
Here's the code I used to initialise it:
import { webRTCStar } from "@libp2p/webrtc-star";
const wrtc = webRTC();
wrtc.init();

const webrtc = webRTCStar({
  wrtc
});

I added a debugging line to the handshake.js file in the traceback, and see that this.peerConnection is an RTCPeerConnection instance, but that RTCPeerConnection.addEventListener is not defined while RTCPeerConnection.addListener is. Could this be because RTCPeerConnection is an instance of EventEmitter (https://github.com/CA9io/electron-wrtc-relay/blob/main/src/wrtc/RTCPeerConnection.ts#L13), while the WebRTC spec has it as an instance of EventTarger (https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection)?
Thanks!


Add --tmpfs to allow dirs to be mounted in tmpfs

By using docker run --tmpfs /tmp docker will mount the dir /tmp in tmpfs for the container.

@LK4D4 I added an integration test for tmpfs mounts

@crosbymichael Thanks!

LGTM minus the docs comment above about the version :)

I'll reopen when this is ready, going to reconsider the volume proposal and copy functionality

@crosbymichael Any thoughts on the next steps here? Lots of proposals flying around:
https://github.com/docker/docker/issues/9803
https://github.com/docker/docker/issues/9250
https://github.com/docker/docker/pull/8484


Update the 'message-traceronly.png' for 'Message Tracing' doc

Purpose

The event stream of 'DAS_MESSAGE_TRACE:1.0.0' will not be deployed as per available 'message-traceronly.png'. It needs to enable the 'Enable Analytics Event Publishing' feature as well.

Approach

Updated the respective '.PNG' file of 'message-traceronly.png'.

Documentation

"Message Tracing"

Affected product(Document) version

APIM-3.1.0

 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.

@sanethmaduranga , please send this fix to the master branch.


promoted content showing up in both English and French on the French page

When content is translated in multiple languages, it shows up as duplicates on the French, Spanish and Portuguese versions of the website. Promoted content on the English page should only be promoted to the English page, not other languages.

This is actually what I wanted to post now as well ;-)
In the deprecated folder of the LLR form, there is a second language field, determining in which interface the resource shows up. The default is language neutral, meaning it shows up on all interfaces. If you promote the items to the front page, it shows up everywhere.
For French and Spanish, whenever those are promoted to the front page, I edit them so they don't show up on the English page. However, English ones are still showing up on French and Spanish.
We need to fix this. Is there a way that we can link the field together? If they resource language is set to English, the interface is automatically set to English as well?*

There should probably be a second rule there that says IF there is a corresponding interface language (not an issue right now, but if we're adding more LLR in other languages than only EN, FR, ES and PT (and I think we should), this will become an issue.

OK I spent quite some time last week looking at it and 'fix' the actual landbook promoted view (as I discovered they were a total mess) - it should behave more as expected now(?)
In the new/next version this have been re-done (actually still work in progress but ),  the view / selection and display of content will now be the same base for all promoted view (which was asked from the beginning on but never done - instead our last contractor decided to spread related code all over the place).


how to handle multiple FormBuilderDropdown onchange

There should be exactly one item with [DropdownButton]'s value: 28.
Either zero or 2 or more [DropdownMenuItem]s were detected with the same value
'package:flutter/src/material/dropdown.dart':
Failed assertion: line 827 pos 15: 'items == null || items.isEmpty || value == null ||
items.where((DropdownMenuItem item) {
return item.value == value;
}).length == 1'

Duplicate of #220. Kindly refer


Can you add xs/sm/md/lg/xl text-align?

Hi,
Can you add in v4 something like that text-right text-xs-center?

Already there. Peep the _utilities.scss file.


SPZ splat file loader

https://github.com/nianticlabs/spz
quaternion is buggy. SH in progress

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/15849/merge
Test environment:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/index.html
To test a playground add it to the URL, for example:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/15849/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/15849/merge
https://gui.babylonjs.com/?snapshot=refs/pull/15849/merge
https://nme.babylonjs.com/?snapshot=refs/pull/15849/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/15849/merge#BCU1XR#0

WebGL2 visualization test reporter:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl2playwright/index.html

Visualization tests for WebGPU (Experimental)
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgpuplaywright/index.html

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

WebGL2 visualization test reporter:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl2playwright/index.html

Visualization tests for WebGPU (Experimental)
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgpuplaywright/index.html

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

WebGL2 visualization test reporter:
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl2playwright/index.html

Visualization tests for WebGPU (Experimental)
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgpuplaywright/index.html

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for WebGL 1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/15849/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.


appium crashes when testing a Windows application on virtual machine

Description
I am trying to test with appium multiple Windows application installed on an Virtual Machine. I expect the window opening in foreground when I instantiate the WindowsDriver with IP Address of the virtual machine. When testing the application on my machine the UI Test is executed. On the virtual machine the window opens without focus and when I try to interact with it, appium crashes.
Environment

.NET 6 with C#
Appium server version 2.5.1
OS Windows 11
npm 10.5.0
Windows Application
Teamcity 2023.11.4

Code To Reproduce Issue [ Good To Have ]
AppiumOptions capabilities = new AppiumOptions();
capabilities.App = $"{applicationFolder}\My Application.exe";
capabilities.DeviceName = "WindowsPC";
capabilities.PlatformName = "Windows";
capabilities.AutomationName = "Windows";
capabilities.AddAdditionalAppiumOption("newCommandTimeout", 300);
capabilities.AddAdditionalAppiumOption("appWorkingDir", applicationFolder);
capabilities.AddAdditionalAppiumOption("waitForAppLaunch", 25);
if (driver == null)
{
StartDriver(driver, driverURI, "4723", capabilities);
Thread.Sleep(10000);

}
private static WindowsDriver StartDriver(WindowsDriver? driver, object? driverURI, string port, AppiumOptions capabilities)
{
string driverUriValue = driverURI?.ToString();
if (!string.IsNullOrEmpty(driverUriValue))
{
	Uri driverUri = new Uri($"http://{driverUriValue}:{port}/wd/hub");

	// Add logging to verify the URI
	Console.WriteLine($"Created URI: {driverUri}");

	// Continue with the driver initialization
	driver = new WindowsDriver(driverUri, capabilities);
	driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1.5);
}
else
{
	Console.WriteLine($"Error connecting to machine {driverURI}");
}
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1.5);
return driver;

}
Exception stack traces
OpenQA.Selenium.NoSuchElementException: An element could not be located on the page using the given search parameters.
at OpenQA.Selenium.WebDriver.UnpackAndThrowOnError(Response errorResponse, String commandToExecute)
at OpenQA.Selenium.WebDriver.Execute(String driverCommandToExecute, Dictionary2 parameters)    at OpenQA.Selenium.Appium.AppiumDriver.Execute(String driverCommandToExecute, Dictionary2 parameters)
at OpenQA.Selenium.WebDriver.FindElement(String mechanism, String value)
at OpenQA.Selenium.Appium.AppiumDriver.FindElement(String by, String value)
at OpenQA.Selenium.Appium.MobileBy.FindElement(ISearchContext context)
at OpenQA.Selenium.Appium.ByAccessibilityId.FindElement(ISearchContext context)
at OpenQA.Selenium.WebDriver.FindElement(By by)
at OpenQA.Selenium.Appium.AppiumDriver.FindElement(By by)
Link to Appium logs
log available on request

Where exactly you see appium crash?
It says :
OpenQA.Selenium.NoSuchElementException
Also, which appium dotnet client version you are using?

Edit
The additional appium options are only
capabilities.AddAdditionalAppiumOption("newCommandTimeout", 300);
capabilities.AddAdditionalAppiumOption("waitForAppLaunch", 25);
Appium crashes when invoking:
driver.FindElement(MobileBy.AccessibilityId("MyElement")).Click();
I am using Appium.WebDriver 5.0.0-beta02 and Selenium.WebDriver 4.5.1

I have modified my code as shown in the post, as shown below (I would like the app that opens being the active one)
if (driver == null)
{
StartDriver(driver, driverURI, "4723", capabilities);
driver.ActivateApp($"{applicationFolder}\\My Application.exe");

}
but I get an Exception:
System.NotImplementedException
Method has not yet been implemented
Source=WebDriver
StackTrace:
at OpenQA.Selenium.WebDriver.UnpackAndThrowOnError(Response errorResponse, String commandToExecute)
at OpenQA.Selenium.WebDriver.Execute(String driverCommandToExecute, Dictionary2 parameters)    at OpenQA.Selenium.Appium.AppiumDriver.Execute(String driverCommandToExecute, Dictionary2 parameters)
at OpenQA.Selenium.Appium.AppiumDriver.ActivateApp(String appId)
when the method, in the package version 5.0.0-beta02, is implemented:
public void ActivateApp(string appId) =>
Execute(AppiumDriverCommand.ActivateApp, AppiumCommandExecutionHelper.PrepareArgument("appId", appId));

@valinprogress Why do you need to Activate the App if you already include it in the appium Options?
capabilities.App = $"{applicationFolder}\My Application.exe";

Edit
I forgot to mention, and edited the first post to be more specific, that I have multiple drivers starting. The first one opens a window; the second, when instantiating the driver, opens the window that I want to interact with, but the second window stays inactive. The focus is on the first window and I cannot interact with "My Application", even with
driver.SwitchTo().Window(driver.WindowHandles[0]);
I have found a workaround with
ResizeWindow();
that makes the window opened by "My Application" visible. When invoking:
driver.FindElement(MobileBy.AccessibilityId("MyElement")).Click();
the application behaves correctly;

@valinprogress If you found a working workaround, can we close this issue? Taking into consideration WinAppDriver is no longer maintained by Microsoft.

@Dor-bl yes we can close it, thanks for your help


WandbLogger crashes when used with TPU VM

Bug description
On a TPU VM, using WandbLogger causes training to crash. I am using the nightly build which I know states "no guarantees", so apologies in advance if this is currently being worked on (I wasn't able to find any relevant issues or PRs). I am also unsure of why this error is occurring, and whether it is an issue with Lightning or WandB.
What version are you seeing the problem on?
master
How to reproduce the bug
import lightning.pytorch as pl
import lightning.pytorch.loggers
import torch
import torch.backends.cudnn
import torch.nn as nn
import torch.nn.functional as F
from torch.utils.data import DataLoader, TensorDataset

class LinearDataModule(pl.LightningDataModule):

    def __init__(self):
        super().__init__()
        w = torch.randn([128])
        eps = 0.01 * torch.randn([2400, 1])
        self.X = torch.randn([2400, 128])
        self.Y = torch.sum(w * self.X, dim=-1, keepdim=True) + eps

    def loader(self):
        return DataLoader(
            TensorDataset(self.X, self.Y),
            batch_size=100,
            num_workers=4,
            shuffle=True,
        )

    def train_dataloader(self):
        return self.loader()

    def val_dataloader(self):
        return self.loader()

class LinearRegression(pl.LightningModule):

    def __init__(self):
        super().__init__()
        self.proj = nn.Linear(128, 1)

    def step(self, batch, split):
        X, y = batch
        loss = F.mse_loss(self.proj(X), y)
        self.log(f"{split}/loss", loss, sync_dist=(split != "train"), prog_bar=True)
        return loss

    def training_step(self, batch, batch_idx):
        return self.step(batch, "train")

    def validation_step(self, batch, batch_idx):
        return self.step(batch, "val")

    def configure_optimizers(self):
        return torch.optim.SGD(self.parameters(), lr=0.1)

def train():
    pl.seed_everything(100, workers=True)

    data = LinearDataModule()
    model = LinearRegression()

    trainer = pl.Trainer(
        accelerator="tpu",
        devices=8,
        enable_checkpointing=False,
        precision="bf16-mixed",
        logger=pl.loggers.WandbLogger(project="tpu_debug"),
        max_epochs=100,
        enable_progress_bar=True,
    )

    trainer.fit(model=model, datamodule=data)

if __name__ == "__main__":
    train()

The above code was written to a file train.py and run with
PJRT_DEVICE=TPU python3 -m train

Error messages and logs
Global seed set to 100
GPU available: False, used: False
TPU available: True, using: 8 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs
wandb: Currently logged in as: .... Use `wandb login --relogin` to force relogin
wandb: Tracking run with wandb version 0.15.5
wandb: Run data is saved locally in ./wandb/run-20230710_212512-3vghnzj8
wandb: Run `wandb offline` to turn off syncing.
wandb: Syncing run fine-music-19
wandb: ⭐ View project at https://wandb.ai/...
wandb: 🚀 View run at https://wandb.ai/.../runs/3vghnzj8
Exception in thread SockSrvRdThr:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 112, in run
    shandler(sreq)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 152, in server_inform_attach
    dict(self._mux._streams[stream_id]._settings),
KeyError: '3vghnzj8'
Exception in thread SockSrvRdThr:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 112, in run
    shandler(sreq)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 152, in server_inform_attach
    dict(self._mux._streams[stream_id]._settings),
KeyError: '3vghnzj8'
Exception in thread SockSrvRdThr:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 112, in run
    shandler(sreq)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 152, in server_inform_attach
    dict(self._mux._streams[stream_id]._settings),
KeyError: '3vghnzj8'
Exception in thread SockSrvRdThr:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 112, in run
    shandler(sreq)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 152, in server_inform_attach
    dict(self._mux._streams[stream_id]._settings),
KeyError: '3vghnzj8'
Exception in thread SockSrvRdThr:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 112, in run
    shandler(sreq)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 152, in server_inform_attach
    dict(self._mux._streams[stream_id]._settings),
KeyError: '3vghnzj8'
Exception in thread SockSrvRdThr:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 112, in run
    shandler(sreq)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 152, in server_inform_attach
    dict(self._mux._streams[stream_id]._settings),
KeyError: '3vghnzj8'
Exception in thread SockSrvRdThr:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 112, in run
    shandler(sreq)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 152, in server_inform_attach
    dict(self._mux._streams[stream_id]._settings),
KeyError: '3vghnzj8'
Exception in thread SockSrvRdThr:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 112, in run
    shandler(sreq)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/service/server_sock.py", line 152, in server_inform_attach
    dict(self._mux._streams[stream_id]._settings),
KeyError: '3vghnzj8'
wandb: ERROR Unable to attach to run 3vghnzj8
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
  File "/usr/lib/python3.8/concurrent/futures/process.py", line 239, in _process_worker
    r = call_item.fn(*call_item.args, **call_item.kwargs)
  File "/usr/lib/python3.8/concurrent/futures/process.py", line 198, in _process_chunk
    return [fn(*args) for args in chunk]
  File "/usr/lib/python3.8/concurrent/futures/process.py", line 198, in <listcomp>
    return [fn(*args) for args in chunk]
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 92, in wrapper
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 245, in _run_thread_per_device
    replica_results = list(
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 619, in result_iterator
    yield fs.pop().result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 444, in result
    return self.__get_result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
    raise self._exception
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 238, in _thread_fn
    return fn()
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 341, in __call__
    self.fn(global_ordinal(), *self.args, **self.kwargs)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/strategies/launchers/xla.py", line 128, in _wrapping_function
    trainer, function, args, kwargs = copy.deepcopy((trainer, function, args, kwargs))
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 210, in _deepcopy_tuple
    y = [deepcopy(a, memo) for a in x]
  File "/usr/lib/python3.8/copy.py", line 210, in <listcomp>
    y = [deepcopy(a, memo) for a in x]
  File "/usr/lib/python3.8/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/lib/python3.8/copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 205, in _deepcopy_list
    append(deepcopy(a, memo))
  File "/usr/lib/python3.8/copy.py", line 161, in deepcopy
    rv = reductor(4)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/loggers/wandb.py", line 356, in __getstate__
    _ = self.experiment
  File "/.../.local/lib/python3.8/site-packages/lightning/fabric/loggers/logger.py", line 114, in experiment
    return fn(self)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/loggers/wandb.py", line 398, in experiment
    self._experiment = wandb._attach(attach_id)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/wandb_init.py", line 877, in _attach
    raise UsageError(f"Unable to attach to run {attach_id}")
wandb.errors.UsageError: Unable to attach to run 3vghnzj8
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/...", line 76, in <module>
    train()
  File "/...", line 72, in train
    trainer.fit(model=model, datamodule=data)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/trainer/trainer.py", line 536, in fit
    call._call_and_handle_interrupt(
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/trainer/call.py", line 41, in _call_and_handle_interrupt
    return trainer.strategy.launcher.launch(trainer_fn, *args, trainer=trainer, **kwargs)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/strategies/launchers/xla.py", line 88, in launch
    process_context = xmp.spawn(
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/distributed/xla_multiprocessing.py", line 386, in spawn
    return pjrt.spawn(fn, nprocs, start_method, args)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 365, in spawn
    _run_multiprocess(spawn_fn, start_method=start_method)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 92, in wrapper
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 322, in _run_multiprocess
    replica_results = list(
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 323, in <genexpr>
    itertools.chain.from_iterable(
  File "/usr/lib/python3.8/concurrent/futures/process.py", line 484, in _chain_from_iterable_of_lists
    for element in iterable:
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 619, in result_iterator
    yield fs.pop().result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 444, in result
    return self.__get_result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
    raise self._exception
wandb.errors.UsageError: Unable to attach to run 3vghnzj8
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
  File "/usr/lib/python3.8/concurrent/futures/process.py", line 239, in _process_worker
    r = call_item.fn(*call_item.args, **call_item.kwargs)
  File "/usr/lib/python3.8/concurrent/futures/process.py", line 198, in _process_chunk
    return [fn(*args) for args in chunk]
  File "/usr/lib/python3.8/concurrent/futures/process.py", line 198, in <listcomp>
    return [fn(*args) for args in chunk]
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 92, in wrapper
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 245, in _run_thread_per_device
    replica_results = list(
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 619, in result_iterator
    yield fs.pop().result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 444, in result
    return self.__get_result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
    raise self._exception
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 238, in _thread_fn
    return fn()
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 341, in __call__
    self.fn(global_ordinal(), *self.args, **self.kwargs)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/strategies/launchers/xla.py", line 128, in _wrapping_function
    trainer, function, args, kwargs = copy.deepcopy((trainer, function, args, kwargs))
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 210, in _deepcopy_tuple
    y = [deepcopy(a, memo) for a in x]
  File "/usr/lib/python3.8/copy.py", line 210, in <listcomp>
    y = [deepcopy(a, memo) for a in x]
  File "/usr/lib/python3.8/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/lib/python3.8/copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 205, in _deepcopy_list
    append(deepcopy(a, memo))
  File "/usr/lib/python3.8/copy.py", line 161, in deepcopy
    rv = reductor(4)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/loggers/wandb.py", line 356, in __getstate__
    _ = self.experiment
  File "/.../.local/lib/python3.8/site-packages/lightning/fabric/loggers/logger.py", line 114, in experiment
    return fn(self)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/loggers/wandb.py", line 398, in experiment
    self._experiment = wandb._attach(attach_id)
  File "/.../.local/lib/python3.8/site-packages/wandb/sdk/wandb_init.py", line 877, in _attach
    raise UsageError(f"Unable to attach to run {attach_id}")
wandb.errors.UsageError: Unable to attach to run 3vghnzj8
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/...", line 76, in <module>
    train()
  File "/...", line 72, in train
    trainer.fit(model=model, datamodule=data)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/trainer/trainer.py", line 536, in fit
    call._call_and_handle_interrupt(
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/trainer/call.py", line 41, in _call_and_handle_interrupt
    return trainer.strategy.launcher.launch(trainer_fn, *args, trainer=trainer, **kwargs)
  File "/.../.local/lib/python3.8/site-packages/lightning/pytorch/strategies/launchers/xla.py", line 88, in launch
    process_context = xmp.spawn(
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/distributed/xla_multiprocessing.py", line 386, in spawn
    return pjrt.spawn(fn, nprocs, start_method, args)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 365, in spawn
    _run_multiprocess(spawn_fn, start_method=start_method)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 92, in wrapper
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 322, in _run_multiprocess
    replica_results = list(
  File "/usr/local/lib/python3.8/dist-packages/torch_xla/experimental/pjrt.py", line 323, in <genexpr>
    itertools.chain.from_iterable(
  File "/usr/lib/python3.8/concurrent/futures/process.py", line 484, in _chain_from_iterable_of_lists
    for element in iterable:
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 619, in result_iterator
    yield fs.pop().result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 444, in result
    return self.__get_result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
    raise self._exception
wandb.errors.UsageError: Unable to attach to run 3vghnzj8

Environment

TPU type: v3-8
TPU software version: tpu-vm-pt-2.0
Packages: other than the packages that come shipped with the TPU VM, I installed Lightning and WandB.  I'm seeing this with multi-gpu as well and it's likely not TPU related.

@rejuvyesh Why do you think that it is very likely caused by #17818? Can you git-bisect or provide me with a code example for multi-gpu? I appreciate the help.

@alstonlo Thanks for the report. I don't see anything wrong with the code example. My uneducated guess is that maybe it has to do with launching with the PJRT runtime and the feature in wandb for attaching to a run in a subprocess not working well together.
Since you have access to the TPU machine, could I ask you, what happens if you delete these lines of code in Lightning:
https://github.com/Lightning-AI/lightning/blob/00496da92d9e7d17c81f51c9abfb54583ba2817f/src/lightning/pytorch/loggers/wandb.py#L354-L356
Will it work?

Removing the TPU label because of

I'm seeing this with multi-gpu as well and it's likely not TPU related.

@awaelchli Haven't done a git bisect yet, but downgrading to 2.0.4 fixed the issue for us. Will attempt one once we have more time and my hunch was that's only major change to happen to that codepath.

@alstonlo My bad! Let me fix that quickly

Opened https://github.com/Lightning-AI/lightning/pull/18085

Thanks!
@awaelchli I have installed lightning directly from #18085 and commented out the suggested lines. The training script runs but no WandB run is ever created and nothing is logged to WandB.

One way to reduce the surface of issues would be to do
import lightning as L
from lightning.pytorch.loggers.wandb import WandbLogger

def fn(fabric, logger):
	...

logger = WandbLogger()
fabric = L.Fabric(accelerator="tpu")
fabric.launch(fn, logger)

While trying to find a solution for this issue, I think I may have stumbled upon another potential bug (which I suspect may be causing this issue, but I am not sure). For context, I noticed that if I added the following to the LightningModule:
import torch_xla.core.xla_model as xm
from lightning.pytorch.utilities.rank_zero import rank_zero_only

class LinearRegression(pl.LightningModule):

    def setup(self, stage):
        print(f"{rank_zero_only.rank = }, {self.trainer.global_rank = }, {xm.get_ordinal() = }")

then there was a mismatch between the rank_zero_only.rank and self.trainer.global_rank (and xm.get_ordinal() agrees with the latter). I think this issue is caused by an interaction between rank_zero_only and xm.rendezvous() (which is called at various points of the Trainer setup). The following is a minimal example:
# debug.py
import torch_xla.core.xla_model as xm
import torch_xla.distributed.xla_multiprocessing as xmp
from lightning.pytorch.utilities.rank_zero import rank_zero_only

def f(index):
    rank_zero_only.rank = xm.get_ordinal()
    xm.rendezvous("barrier")
    print(f"{rank_zero_only.rank = }, {xm.get_ordinal() = }")

if __name__ == '__main__':
    xmp.spawn(f, args=tuple())

$ PJRT_DEVICE=TPU python3 -m debug
rank_zero_only.rank = 5, xm.get_ordinal() = 4
rank_zero_only.rank = 3, xm.get_ordinal() = 2
rank_zero_only.rank = 1, xm.get_ordinal() = 0
rank_zero_only.rank = 7, xm.get_ordinal() = 6
rank_zero_only.rank = 5, xm.get_ordinal() = 5
rank_zero_only.rank = 1, xm.get_ordinal() = 1
rank_zero_only.rank = 7, xm.get_ordinal() = 7
rank_zero_only.rank = 3, xm.get_ordinal() = 3

If I comment out the rendevous line, then I get
$ PJRT_DEVICE=TPU python3 -m debug
rank_zero_only.rank = 4, xm.get_ordinal() = 4
rank_zero_only.rank = 5, xm.get_ordinal() = 5
rank_zero_only.rank = 2, xm.get_ordinal() = 2
rank_zero_only.rank = 3, xm.get_ordinal() = 3
rank_zero_only.rank = 0, xm.get_ordinal() = 0
rank_zero_only.rank = 1, xm.get_ordinal() = 1
rank_zero_only.rank = 6, xm.get_ordinal() = 6
rank_zero_only.rank = 7, xm.get_ordinal() = 7

After debugging this for a bit, the issue is that you have to wandb.login before the fit (before the forks?).  eg:
@@ -59,12 +59,14 @@
     data = LinearDataModule()
     model = LinearRegression()

+    import wandb
+    wandb.login()
     trainer = pl.Trainer(
         accelerator="tpu",
         devices=8,

as an aside, I had a (user) issue with consolidating all under one run:
TLDR
Either set things up on Google's TPU VMs via:
python3 -m pip install --upgrade pip
python3 -m pip install https://github.com/Lightning-AI/lightning/archive/refs/heads/master.zip wandb -U

or the _WANDB_GREATER_EQUAL_0_12_10 check needs to be less strict
More details
The _WANDB_GREATER_EQUAL_0_12_10 check failure skips the pickling hack to unify the runs.
(Pdb) p _WANDB_GREATER_EQUAL_0_12_10
ContextualVersionConflict: (urllib3 1.25.8 (/usr/lib/python3/dist-packages), Requirement.parse('urllib3>=1.26.11; python_version >= "3.6"'), {'sentry-sdk'}). HINT: Try running `pip install -U 'wandb>=0.12.10'`

pip on a fresh Google's --version=tpu-vm-pt-2.0 TPU VM is 20.0.2, so it doesn't have requirements backtracking.
The VM also installed pip via apt, so doing python3 -m pip install --upgrade pip doesn't update pip on the default PATH.
This is my user error in not updating+using the right pip/fixing all the env warnings, but maybe the RequirementCache class might be a bit too strict, and it should just check if the version number is satisfied rather than if all the sub-requirements are also satisfied.

Hi @s22chan

After debugging this for a bit, the issue is that you have to wandb.login before the fit (before the forks?). eg:

I recommend that you do wandb login in the command line instead (one time only). Then you will be automatically logged in whenever you call wandb in Python.
Regarding the other issue:
We have this trick in the logger to init the experiment when processes get launched (see comment in the code):
https://github.com/Lightning-AI/lightning/blob/6511ac28759718a524dd00e627c186fb6baea763/src/lightning/pytorch/loggers/wandb.py#L349-L356
It would be very helpful if you could check whether this code path gets triggered or not in your case.
I didn't fully understand your comment about _WANDB_GREATER_EQUAL_0_12_10. Are you saying you have wandb>=0.12.10 installed, yet the check failed and defaulted to False? If so, we could consider setting this version as the minimum required version, so we don't have to check it in the first place.

@awaelchli sorry if the messages were a bit scattered yesterday.

I recommend that you do wandb login in the command line instead (one time only).

I've already done that. The wandb.login() before the fork/spawn is required to avoid a datarace between the two TPU threads launched on rank 0 for the logger init, which leads to the original crash.
@alstonlo is inferring that much of the rank_zero mechanisms in place for logging/profiling(/other?) doesn't work in a TPU scenario with the PRJT change because there are now two threads that have rank 0.

I didn't fully understand your comment about _WANDB_GREATER_EQUAL_0_12_10.

_WANDB_GREATER_EQUAL_0_12_10 was greater, but because of a conflict in urllib (which is a sub-dependency of wandb), the bool cast from RequirementCache fails. This is super not obvious as a user.

any updates on this issue?

related: https://github.com/Lightning-AI/pytorch-lightning/issues/19035 (which is a deadlock rather than a datarace crash)


Update Installation instructions for source

Fixes #1141

Job PR-1146/1 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1146/1/index.html


Sort lines

AppCode can sort lines alphabetically. Great for imports and vars. Have any plans to implement that?

Good idea, thank you 👍 .
Yes I think we can do this 🎉, I will add it to the queue 😉


update the README for packages

[ ] After the PR is merged, run make template in the dev branches in rancher/charts to update templates.

@jiaqiluo will review after Arvind's approval due to large comment.


Opt out of Janus monitoring?

It seems on the surface the related Janus tool scans GitHub repositories which contain a justfile and seems to copy the files to its own repo to test against. I might have this wrong, and hoping this repo was ok to open this issue on.
In any event is there a way to opt a project out of Janus scanning and leave it up to the repo owner to manage updates to the justfile by themselves and solve any breaking changes?
I guess because there doesn't seem to be a way to opt out and it's not configurably opt in it is a bit off putting for me. What might be a better solution is letting people request this by opening an issue on the Janus repo itself, that way they can also remove their consent at any time.

Please feel free to open issues against this repo, or against the Janus repo. There's a note in the readme that if you'd like your justfile not to appear in the repo, I'm happy to remove it.
I'm happy to blacklist your username, so Janus won't pick up your justfiles, if you'd like.

Not sure that is really sustainable. Think of those who may change their GitHub user ID or simply create a second. They may forget to let you know to opt out, which is why I suggested an opt in process instead. As an open source contributor myself I can say there are a number of people who don't read the entirety of a README, let alone that is a side repository, and won't even know about how to opt out. Basically it should be the user's choice to have their projects automatically checked versus the minor note at the bottom of the sizable README leading to a second repository.
GitLab recently pushed some telemetry on users and made it not optional and there was a large amount of backlash. I don't necessarily see Janus as telemetry for the moment, but some could or might, and will be put off. Just a thought.

Thanks for your perspective, I'll take it into consideration. For now, I'm inclined to leave it opt-out on an individual user basis. If you're interested in opting out yourself, please let me know.


Add test.jck

This pull request is to satisfy https://github.com/AdoptOpenJDK/openjdk-systemtest/issues/15
Of the 239 test suites the automation can execute, eight are still failing on an Ubuntu 16.04 test machine.  Three (at least) are because the test machine did not have the configuration required for those tests (a Kerberos server and Http server).
api/javax_security
api/java_net
api/org_ietf
More investigation is required to resolve the issues with the remaining tests:
api/signaturetest
api/java_awt
api/java_nio
api/javax_management
api/javax_xml
I would like to merge this pull request even though some of the the tests are still failing, since it means that the automation can start to be added to build - test pipelines as required.  Following the merge Issues can be used to track the resolution of the remaining failures.

I would also be tempted to squash all the commits before we merge. 24 separate commits in the change history to add the initial JCK support is probably excessive unless there's some value in having them invidiually.


Merling Depth Strider debuff

Using depth strider with a merling doesn't stack with the swimming speed it already has but instead acts with the speed of depth strider being basically useless as it's faster having no boots with it.

Wanted to give an add on, I noticed fins don't work properly with dolphin's grace. As when you don't have depth strider you swim faster only if yo have dolphin's grace, but the swimming speed doesn't increase with the fins ability alone without depth strider.

Depth Strider works now with Merling's swim speed (since version 0.7.0)


Update the magic-script-components-react-native to 1.0.5

Update the following templates with the latest magic-script-components-react-native ver. 1.0.5:

template_multiplatform_components/reactnative/package.json
template_overlay_typescript_components/reactnative/package.json

Codecov Report

Merging #175 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master      #175   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            8         8
  Lines          677       677
  Branches       130       130
=========================================
  Hits           677       677

Continue to review full report at Codecov.

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

@grozdanov we probably don't need to urgently release this as new projects will pick up latest due to the ^ in the dependencies


[Feature request] Install Swarm on already running machine

I'd like to have one machine with Consul master instance and Swarm manager (like in #2302) and set of nodes each of which will run Swarm agent + own Consul instance connected with master.
Currently it is not possible to make out of the box, since IP of machine with Swarm manager is unknown (at least when using Vitrualbox driver), so I can't provide Consul IP to it because it should be at the same place.
So one way is to allow creating machine first, then manually install Consul on it and then run Swarm installation with Machine. Alternative way for this particular problem is to allow Consul installation to be completely automated using Machine out of the box.
For second approach we need to create machine with Consul AND Swarm created at the same time, so that master machine will be created with one command and then for all nodes IP of master would be treated as both Consul master and Swarm manager.
How I see this in CLI interface:
~$ docker-machine create -d virtualbox --swarm --swarm-discovery-consul --swarm-master swarm-master
~$ docker-machine create -d virtualbox --swarm --swarm-discovery-consul swarm-agent-00
~$ docker-machine create -d virtualbox --swarm --swarm-discovery-consul swarm-agent-01

So basically, --swarm-discovery-consul will also run Consul container and insert proper consul://<consul_addr> argument for Swarm.
And if --swarm-master not specified - Consul master assumed to be where Swarm master is located.
P.S. This is not Consul-specific, similar keys might be added for etcd and any other by analogy.

I, as well, would like the ability to swarm-ify and existing machine.
Something even more useful, I think, for container "provisioning" during docker-machine create would be the ability to inject compositions to be initialized. One assumes that the swarm containers themselves would be the default composition during the setup of a swarm node.

Yeah, I am not 100% sure, but my thinking on this is that to cover this and other modify-after-creation cases we should start eventually start supporting a config file, which would allow you to converge state on these types of things by calling some sort of apply-type command.

+1
Also, I would like to work on this. @nathanleclaire Can give little more details about config file.

@kunalkushwaha Discussion at https://github.com/docker/machine/issues/773


mysql Table  is marked as crashed and should be repaired

使用docker compose运行服务，发生如下错误：
root@cccec02dbc28:/opt/zbox/logs# tail -f mysql_error.log
2019-07-04 10:45:44 0 [Note] /opt/zbox/run/mysql/mysqld: ready for connections.
Version: '10.3.13-MariaDB'  socket: '/opt/zbox/tmp/mysql/mysql.sock'  port: 3306  Source distribution
2019-07-04 10:45:50 8 [ERROR] mysqld: Table './zentao/zt_config' is marked as crashed and should be repaired
2019-07-04 10:45:50 8 [Warning] Checking table:   './zentao/zt_config'
2019-07-04 10:45:50 8 [ERROR] mysqld: Table './zentao/zt_company' is marked as crashed and should be repaired
2019-07-04 10:45:50 8 [Warning] Checking table:   './zentao/zt_company'
2019-07-04 10:45:50 9 [ERROR] mysqld: Table './zentao/zt_cron' is marked as crashed and should be repaired
2019-07-04 10:45:50 9 [Warning] Checking table:   './zentao/zt_cron'
2019-07-04 10:45:55 12 [ERROR] mysqld: Table './zentao/zt_user' is marked as crashed and should be repaired
2019-07-04 10:45:55 12 [Warning] Checking table:   './zentao/zt_user'

版本：11.4.1

@Samurais Thx report, but this is offical program initializa MySQL data bug, not this repo's issue. And these errors will not affect the operation of the program. So, I will close this Issue.


Cannot install Terraform Extension from Hashicorp

Issue Type: Bug
Tried to install Terraform extension from Hashicorp company via VS code extensions tab. But it's returned an error that Failed to intall hashicorp.terraform. Downloaded manually and tried to install in manually and it's also not helped
.

Please try with latest version of VS Code and provide us following logs if you are still seeing the issue:

Help -> Toggle Developer Tools -> Console
View -> Command Pallette... -> Toggle Shared Process -> Console
View -> Open View… -> Log (Shared)
View -> Open View… -> Log (Window)

Why are you running such an old version of VS Code?

Hi, it's due to company software portal included this version and no it's not allowed for us to update it manually. On latest version it's working as well. Thanks.


Segmentation fault (core dumped); collect_data.sh; 1080ti

I want to perform data collection on "i7-10700+1080ti_11G+D4_32G"
But no matter what I try, I will encounter "Segmentation fault" after just collecting a few frames.
According to observation, the memory and Vram are sufficient, and the same fault occurs on all my 1080ti and 2080ti. What is the problem? Even if I use gdb, I cannot find the problem.
I guess which part of the code pre-plans the Vram space position that is too large? As a result, GPUs below 3090 cannot be used.
Thank!

@eson88866
Thnaks for your interesets. It is a know issue of CARLA, as discussed in the issue section. You may want to check their solutions.
The GPU memory should not be a big problem. During data collection, it only requires ~4GB GPU memory.
Ubuntu 18.04 and Python3.7 is a safe choice. Do not use root user to run CARLA.

@eson88866 Thnaks for your interesets. It is a know issue of CARLA, as discussed in the issue section. You may want to check their solutions.
The GPU memory should not be a big problem. During data collection, it only requires ~4GB GPU memory.
Ubuntu 18.04 and Python3.7 is a safe choice. Do not use root user to run CARLA.

Sorry to distrub you.I would like to know are interaction multi-agent prediction competition available now?Recently,i have submitted my result on the https://challenge.interaction-dataset.com/upload/ but might got no reply and no results shown on the leaderboard.I would like to know where to check my submission log pages?Thanks!

@eson88866 Thnaks for your interesets. It is a know issue of CARLA, as discussed in the issue section. You may want to check their solutions.
The GPU memory should not be a big problem. During data collection, it only requires ~4GB GPU memory.
Ubuntu 18.04 and Python3.7 is a safe choice. Do not use root user to run CARLA.

Sorry to distrub you.I would like to know are interaction multi-agent prediction competition available now?Recently,i have submitted my result on the https://challenge.interaction-dataset.com/upload/ but might got no reply and no results shown on the leaderboard.I would like to know where to check my submission log pages?Thanks!

Sorry I don't know about this competition

@ChengkaiYang
Hi, I do not work with the INTERACTION dataset team and am not updated about the challenge since 2021. Please contact the organizers of the chanllge.

@eson88866
Hi, https://github.com/OpenDriveLab/ThinkTwice/issues/3#issuecomment-1885230465 might solve your issue!


Should I define a variant or there's some better way?

I have two components:
.button {
  &--primary {
    color: red;
  }
  &--default {
    color: black;
  }
}

.header {
  background: black;
}

Now, my HTML is:
<header class=header>
  <button class="button button--default">
</header>

Inside my header, the default button will not be visible, because the background has the same color of the text.
I'd like to do something like this:
.header {
  background: black;
  &__button {
    color: white;
  }
}

<header class=header>
  <button class="header__button button button--default">
</header>

But it doesn't look so BEMish...
I think the other solution would be to define a variant of .button for just this specific case, but I wanted to check if there is some easier way for this specific case?
Thanks.

My usual go-to here is a button--inverse. So it'd look something like this with the current setup you  have:
.button {
  &--primary {
    color: red;
  }
  &--default {
    color: black;
  }
  &--inverse {
    color: white;
  }
}

.header {
  background: black;
}

If it has special meaning only in a header then a new component could make sense. Based on what I see I'd favor making a button--inverse.

Ok thanks!


Refactor class hash

Refactor Class Hash to be used as a struct
Description
Significant changes on class hash variable

ExecutionEntryPoint -> from [u8; 32] to ClassHash
CallInfo -> from [u8; 32] to ClassHash
Contract storage state read/write ops -> ClassHash to Address
State cache: Class hash maps now use ClassHash struct
We now can debug ClassHash to get its hex representation

Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report

Merging #1095 (c70033b) into main (996a412) will decrease coverage by 0.04%.
The diff coverage is 93.37%.

@@            Coverage Diff             @@
##             main    #1095      +/-   ##
==========================================
- Coverage   89.66%   89.63%   -0.04%
==========================================
  Files          49       49
  Lines       13335    13382      +47
==========================================
+ Hits        11957    11995      +38
- Misses       1378     1387       +9

Files
Coverage Δ

src/execution/execution_entry_point.rs
88.21% <100.00%> (ø)

src/execution/mod.rs
85.93% <100.00%> (ø)

src/lib.rs
98.90% <100.00%> (-0.01%)
:arrow_down:

src/state/contract_storage_state.rs
96.15% <100.00%> (+0.69%)
:arrow_up:

src/state/in_memory_state_reader.rs
91.78% <100.00%> (+0.05%)
:arrow_up:

src/state/mod.rs
94.66% <100.00%> (ø)

src/state/state_cache.rs
96.33% <100.00%> (+0.01%)
:arrow_up:

src/syscalls/business_logic_syscall_handler.rs
76.91% <100.00%> (+0.09%)
:arrow_up:

...calls/deprecated_business_logic_syscall_handler.rs
91.25% <100.00%> (-0.04%)
:arrow_down:

src/syscalls/deprecated_syscall_handler.rs
98.38% <100.00%> (ø)

... and 8 more


Pool is flexibly sized

Summarise the changes this Pull Request makes.
SimpleObjectPool does not have a fixed size any more. It grows as needed using the constructor function. As used for Sockets in PooledUdpTransport, it starts small (1 socket per logical CPU core, i.e. 8 on my machine)
This means that you cannot use Pop in the Dispose as it will just create new items. So a Count property is needed to tell this when to stop.
There should not be a try...finally arounds socket use, as a socket that throws exception should not be put back in the pool.
FYI, the Parallel.For test uses a pool size of 8 (on my machine, assume that it's using 1 thread per core).
If I was breaking backwards compatibility I would also do:

change Func<SimpleObjectPool<T>, T> to just Func<T> - the first param is not used at all.

change the constructor of SimpleObjectPool to have the size as an optional param at the end. It is acceptable to start with a size of zero. i.e. public SimpleObjectPool(Func<T> constructor, int initialSize = 0)
Why is it a generic SimpleObjectPool<T> in the StatsD library, when we only ever put Socket objects in it?

The Benchmarks:
netcoreapp2.0

Method
Mean
Error
StdDev
Scaled
Gen 0
Allocated

SendStatUdp
304.52 us
5.0794 us
4.7512 us
1.00
-
1184 B

SendStatPooledUdp
24.07 us
0.1363 us
0.1275 us
0.08
0.2136
720 B

netcoreapp2.1

Method
Mean
Error
StdDev
Scaled
Gen 0
Allocated

SendStatUdp
297.08 us
1.0552 us
0.8239 us
1.00
-
1184 B

SendStatPooledUdp
24.01 us
0.2712 us
0.2117 us
0.08
0.2136
720 B

The benchmarks look like compared to master it's now twice as slow? Scaled was 0.04 for pooling in #81. I realise that it's still super-fast, but that makes it look like the pooling changes actually slow it down.

Results from 589c3b94667d42d21869b6e0d13ea3aa3ba41039:

BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
Intel Core i7-6500U CPU 2.50GHz (Skylake), 1 CPU, 4 logical and 2 physical cores
.NET Core SDK=2.1.302
  [Host]     : .NET Core 2.1.2 (CoreCLR 4.6.26628.05, CoreFX 4.6.26629.01), 64bit RyuJIT
  DefaultJob : .NET Core 2.1.2 (CoreCLR 4.6.26628.05, CoreFX 4.6.26629.01), 64bit RyuJIT

Method
Mean
Error
StdDev
Scaled
Gen 0
Allocated

SendStatUdp
1,129.36 us
22.0130 us
24.4674 us
1.00
-
1184 B

SendStatPooledUdp
47.47 us
0.6838 us
0.6396 us
0.04
0.3052
720 B

Results from PR 81:

BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
Intel Core i7-6500U CPU 2.50GHz (Skylake), 1 CPU, 4 logical and 2 physical cores
.NET Core SDK=2.1.302
  [Host]     : .NET Core 2.1.2 (CoreCLR 4.6.26628.05, CoreFX 4.6.26629.01), 64bit RyuJIT
  DefaultJob : .NET Core 2.1.2 (CoreCLR 4.6.26628.05, CoreFX 4.6.26629.01), 64bit RyuJIT

Method
Mean
Error
StdDev
Median
Scaled
Gen 0
Allocated

SendStatUdp
1,029.29 us
20.496 us
54.352 us
1,007.63 us
1.00
-
1184 B

SendStatPooledUdp
43.16 us
1.078 us
1.801 us
42.79 us
0.04
0.3052
720 B

Basically, not much in it, but a teeny bit slower.

Acceptable IMHO to have a pool that starts smaller, and grows to cope with demand.

Another thought - whilst the pool is now flexibly sized, it's growth is unbounded. Should we put a ceiling on it?

Is it possible to actually force the pool to be large with a test? The MultipleMetricsCanBeSentWithoutAnExceptionBeingThrownParallel test on my machine only makes the pool grow to 8 Sockets. I think that's because Parallel.For has detected 8 cores and so is using 8 threads. Can you actually get more threads than that concurrently using the 3 lines of code that rent sockets from the pool?

I can't think of a way to do it, other than somehow doing something that makes SendTo() hang and suspend the thread (so it's no longer in the pool), and then continuously start new requests so it grows and grows.
If we're 100% sure there's absolutely no way that could ever do that, then fine, but if it's cheap to put in a safety valve for belt-and-braces that might be worth doing in case there's a scenario we've not thought of and suddenly we starve the machine of sockets.

I think just put a final set of benchmark results here for the latest commit, then this is good to merge 🎉

Final benchmarks are close to the same:

BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
Intel Core i7-4712HQ CPU 2.30GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=2.1.302
  [Host]     : .NET Core 2.0.7 (CoreCLR 4.6.26328.01, CoreFX 4.6.26403.03), 64bit RyuJIT
  DefaultJob : .NET Core 2.0.7 (CoreCLR 4.6.26328.01, CoreFX 4.6.26403.03), 64bit RyuJIT

Method
Mean
Error
StdDev
Scaled
Gen 0
Allocated

SendStatUdp
312.26 us
5.8638 us
5.4850 us
1.00
-
1184 B

SendStatPooledUdp
25.14 us
0.2954 us
0.2763 us
0.08
0.2136
720 B


NC | Service + CLI | Internal Refactoring and renaming

Environment info

NooBaa Version: Master
Platform: NC

Actual behavior

Recently, in #7989, we did the external renaming of nsfs service and manage_nsfs CLI, we need to pursue this change and apply internal renaming as well.
manage_nsfs -> cli
nsfs.service -> noobaa.service
noobaa.service - execute the endpoint.js instead of nsfs.js
endpoint.js - adopt nsfs.js code - check per platform which sdk it should init, and other nsfs.js features.
nsfs.js - remove non SimpleFS stuff + rename.

Expected behavior

nsfs service and manage_nsfs CLI are renamed internally to noobaa service and noobaa-cli.

still relevant, commenting so stale bot won't close this issue


File ID Changes Across Hook Stages

Within the s3store.go file, there is this line:
info.ID = objectId + "+" + multipartId
which is somewhat conflicting with the promise of hookRes.ChangeFileInfo.ID .
In pre-create, the hook changes the File ID, but in post-create, after the s3 upload is completed, the ID is attached to the multipartID with a + sign.
Is there any promise implicit that the File ID will not change across the different stages or it is designed to not assume so?
Thank you.

That is correct. As mentioned in https://github.com/tus/tusd/blob/285b2f5a065e970f5e118f4160486757d7493db2/pkg/handler/datastore.go#L58-L62
the exact details on how the ID from the pre-create hook is respected depends on each store. In the case of the S3Store, it has to append the S3 multipart upload ID because we cannot influence its value. In your hooks, you just have to split the ID by + and take the first part to get your custom ID.

We have thought about this in the past and there are pros and cons to such an approach. The benefit would be that the multipart ID is hidden from the user and the developers. A downside would be that we first have to look up the info file before we can fetch the status of the multipart upload. This can be done in parallel right now.
However, there are some ideas floating around to refactor the info file into its own provider, so that the upload information could be stored on Redis instead of a file on S3. Such an approach would also allow the developer to fully customize the upload ID.

With tusd v3 (release date unknown yet), the multipart ID will no longer be part of the upload URL for S3: https://github.com/tus/tusd/pull/1167. Then the upload ID can be fully customized by the pre-create hook.


Support set_dont_use

Feature Description
Currently the only way to get yosys to not use a cell is to modify the .lib to have "dont_use : true".  It would be much cleaner if there was a set_dont_use command with equivalent functionality.
In OpenRoad-flow-scripts we could eliminate the need for https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/master/flow/util/markDontUse.py

You can't implement this functionality in Yosys. ABC is actually the piece of software that needs this feature.

It would theoretically be possible to support this in Yosys by filtering the liberty files before feeding them to ABC, but I don't know whether it's worth the complexity. Yosys would also need to know about dont_use itself for dfflibmap, it's not just ABC that's touching the liberty files.

The complexity is now pushed onto the clients of yosys as shown in the script I linked above.  I think it better to put it in one place.  If abc needs enhancing to make this easier then we should consider that as well.

I think ABC is more than willing to take the change someone just needs to write it.
@gatecat agreed on the dfflibmap issue. I think that should be fairly easy to add given some kind of naming filter.
In advanced ASIC nodes you often have 0.5X drive strength cells you aren't supposed to use in synthesis, because their small size makes your layout more dense than can actually be supported when the cells are resized later which is why this functionality would be great to have.

Yup I added that, and wrote PR in Yosys to expose it https://github.com/YosysHQ/yosys/pull/3892


Offer to maintain the project

Hi John,
If you still need a new maintainer for this project, I'm happy to take it on.
Kind Regards,
Kyle

Hey, apologies, I've been pretty inactive with my projects lately. If you or anyone else is still interested, I can turn over the project to whomever, including whatever it takes to get RubyGems publishing working.


pytest error

After a .venv installation a run of pytest results in
ImportError while loading conftest '/dls/science/users/twj43146/Programming/PandABlocks-ioc-fork/tests/conftest.py'.
tests/conftest.py:18: in <module>
    from aioca import purge_channel_caches
.venv/lib/python3.9/site-packages/aioca/__init__.py:1: in <module>
    from epicscorelibs.ca.cadef import DBE_ALARM, DBE_LOG, DBE_PROPERTY, DBE_VALUE
.venv/lib/python3.9/site-packages/epicscorelibs/ca/cadef.py:21: in <module>
    from epicscorelibs import path
.venv/lib/python3.9/site-packages/epicscorelibs/path/__init__.py:6: in <module>
    from setuptools_dso.runtime import dylink_prepare_dso, find_dso
.venv/lib/python3.9/site-packages/setuptools_dso/__init__.py:8: in <module>
    from setuptools import setup as _setup
.venv/lib/python3.9/site-packages/setuptools/__init__.py:7: in <module>
    import setuptools.distutils_patch  # noqa: F401
.venv/lib/python3.9/site-packages/setuptools/distutils_patch.py:59: in <module>
    warn_distutils_present()
.venv/lib/python3.9/site-packages/setuptools/distutils_patch.py:25: in warn_distutils_present
    warnings.warn(
E   UserWarning: Distutils was imported before Setuptools. This usage is discouraged and may exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least import Setuptools first.

on both the main and dev branches.
Setup script for reproducing:
module load python/3.9
python -m  venv --clear .venv && \
conda deactivate && \
.venv/bin/pip install --upgrade pip && \
.venv/bin/pip install -e .[dev]

I just tried this again and it's worked, no idea what was wrong with my system before this.


Use runner with yolo example

Codecov Report

Merging #66 into master will decrease coverage by 1.99%.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master      #66   +/-   ##
=======================================
- Coverage   73.51%   71.51%   -2%
=======================================
  Files          17       18    +1
  Lines         789      811   +22
=======================================
  Hits          580      580
- Misses        209      231   +22

Impacted Files
Coverage Δ

src/runner_no_multi.py
0% <0%> (ø)

Continue to review full report at Codecov.

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


Siemens | NX

Please provide the following information.

Vendor Name : Siemens
Product Name : NX
Version(s) affected : All versions
Status:  Affected
Update Available: Yes
Notes : None
References : https://cert-portal.siemens.com/productcert/pdf/ssa-661247.pdf
Last Updated:  12/15/2021

Thank you for submitting the issue.  Updated.


docker-compose setup

Hi,
I created this pull request with a docker-compose setup which makes it easier to evaluate and play around with the software.

Thanks a lot!
I'm currently on holidays.
Some points:

Maybe password manager is not fully compatible with PHP 8.1. I need to test it
I think that php:8.0-fpm-buster is the more accurate image to use
Thanks to add all docker related files inside the docker folder :)
I like to use the full path in the files to copy inside the docker image. For example docker/default as docker/etc/nginx/sites-available/default

Thanks!

Hi,
enjoy your time off :)
I implemented your review comments. Take a look when you are back.
Best,
Henry

Can confirm this works on RHEL9

Hi @h3nr1-g and @deajan I have working on a docker version on feature/docker branch based on your work.
Can you check it?
Thanks!

@deajan, Ok! 😊

hey @eusonlito ,
I tested your latest changefeature/docker. I noticed/discovered following issues:

In case the DB container was started the first time, the password manager container needs to wait until the database container is ready for incoming connections. Otherwise the migration command will fail.
Due to the definition of the database volume as a local folder (which is owned by root), you can not rerun docker-compose build.
**Another critical point is the generation of the APP KEY during the build of the passwordmanager image. Everytime you run docker-compose build  you will generate a new APP KEY which destroys the data! **

Thanks for your tests :)
My considerations as docker beginner.

I have added the healthcheck option on docker-compose.yml to ensure the mariadb container is loaded before passwordmanager.
You can rerun sudo docker-compose -f docker/docker-compose.yml build  as root/sudo, no? I always work as root with docker.
Fixed.

The problem: the artisan executed init.sh can not access to .env variables. The bash script can, but executed artisan commands can not.
Thanks!

Hey,
I tested the lasted changes.

The mariadb dependency looks really cool. I did not know, that you can even specify the health state as a dependency. Unfortunately, my docker-compose installation (version 1.25.0) can not work with the compose file:
ERROR: The Compose file './docker-compose.yml' is invalid because: services.passwordmanager.depends_on contains an invalid type, it should be an array
Yes, you are right. The execution as root or with sudo is an option.
Confirmed :)

depends_on was removed in docker version 3 and re-introduced in version 3.9. I have updated the docker-compose.yml to use 3.9 version.
Ok :)
Ok :)
Fixed!
php artisan serve should work without problem. On top, you can add a nginx server to support https.

Thanks!


Swiper 5.0+ Dropped IE Support Question

Forum link doesnt work anymore...
In the release notes for v5.0 there is mention that IE support is dropped. What exactly does this entail? I downloaded v5.0.3 and tested it out in IE 11 (still need to support for some clients) and it still works. Can specifics on what exactly was dropped from IE support be clarified so I can know if i am going to run into some edge case issue with IE down the road by upgrading to v5 for projects.

Same question. 'IE support is dropped' means dist files builded without IE support or swiper 5 used a modern API which don't have a polyfill?

You can check that commit: https://github.com/nolimits4web/swiper/commit/6cba971b1004521859f8699d73f0a702f5134d46
But basically, yes, checks for support of CSS transitions, CSS 3D transforms, flexbox, and others, and their fallbacks in code were removed. But probably it still can work in IE 11, but if it is not, it is not the case for Swiper anymore


How do you personally use this?

Hey, I'm curious about all tokens, parsers and ASTs and found this package.
Just curious to ask, how do you use it in your life, your projects? What was the motivation to build this?
At first sight, looks like token parser in PHP_CodeSniffer.

I had to parse different texts for a project and extract information from them. I was just too lazy to do that by hand 😅

Miss click, sorry :)
Like PHP code? Could share more specific examples?

Outdated


Rails Application Template 03-expert.rb - ArgumentError: wrong number of arguments (given 1, expected 0)

I have successfully loaded templates 01-basic.rb and 02-pretty.rb, however the load of the 03-expert.rb template fails with an ArgumentError: wrong number of arguments (given 1, expected 0) message. The error occurs when the template's line 325 rake "environment elasticsearch:import:model CLASS='Article' BATCH=100 FORCE=y" is executed, resulting in the following output:

rake aborted!
ArgumentError: wrong number of arguments (given 1, expected 0)
/usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/relation/batches.rb:128:in 'find_in_batches'
/usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/querying.rb:22:in 'find_in_batches'
/usr/local/bundle/gems/elasticsearch-model-7.1.1/lib/elasticsearch/model/proxy.rb:121:in 'method_missing'
/usr/local/bundle/gems/elasticsearch-model-7.1.1/lib/elasticsearch/model/adapters/active_record.rb:105:in '__find_in_batches'
/usr/local/bundle/gems/elasticsearch-model-7.1.1/lib/elasticsearch/model/importing.rb:161:in 'import'
/usr/local/bundle/gems/elasticsearch-rails-7.1.1/lib/elasticsearch/rails/tasks/import.rb:80:in 'block (3 levels) in '<main>'
/usr/local/bin/bundle:23:in 'load'
/usr/local/bin/bundle:23:in '<main>'
Tasks: TOP => elasticsearch:import:model
(See full trace by running task with --trace)

ruby --version && rails --version

ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]
Rails <IP_ADDRESS>

I'm running the code in Docker version 20.10.5 container in Docker's Desktop for Mac, version 3.2.2.
I'm new to Ruby, Rails and Elasticsearch so I don't know what steps to take next to solve this problem. I did try using 'byebug' in searchable.rb, and have reproduced the var all output from the step before the error and at the error stage in case it is helpful in suggesting what I should attempt next.

(byebug) next
[75, 84] in /usr/local/bundle/gems/elasticsearch-rails-7.1.1/lib/elasticsearch/rails/tasks/import.rb
75:         begin
76:           klass.elasticsearch.client.transport.tracer.level = Logger::WARN
77:         rescue NoMethodError; end
78:       end
79:
=> 80:       total_errors = klass.elasticsearch.import force:      ENV.fetch('FORCE', false),
81:                                   batch_size: ENV.fetch('BATCH', 1000).to_i,
82:                                   index:      ENV.fetch('INDEX', nil),
83:                                   type:       ENV.fetch('TYPE',  nil),
84:                                   scope:      ENV.fetch('SCOPE', nil) do |response|
(byebug) var all
$! = nil
$" = ["enumerator.so", "thread.rb", "rational.so", "complex.so", "ruby2_keywords.rb", "/usr/local/lib/ruby/3.0.0/x86_64-linux/enc/encdb.so", "/usr/local/lib/...
$$ = 31866
$& = "    "
$' = "$ rake environment elasticsearch:import:all DIR=app/models\n"
$* = []
$+ = nil
$, = nil
$-0 = "\n"
$-F = nil
$-I = ["/usr/share/eab/searchapp/lib", "/usr/share/eab/searchapp/vendor", "/usr/share/eab/searchapp/app/channels", "/usr/share/eab/searchapp/app/controllers"...
$-W = 1
$-a = false
$-d = false
$-i = nil
$-l = false
$-p = false
$-v = false
$-w = false
$. = 19
$/ = "\n"
$0 = "/usr/local/bin/rake"
$: = ["/usr/share/eab/searchapp/lib", "/usr/share/eab/searchapp/vendor", "/usr/share/eab/searchapp/app/channels", "/usr/share/eab/searchapp/app/controllers",...
$; = nil
$< = ARGF
$> = #<IO:>
$? = #<Process::Status: pid 31867 exit 0>
$@ = nil
$ARGV = []
$CGI_ENV = {"REDIS_URL"=>"redis://<IP_ADDRESS>:6379", "HOSTNAME"=>"a6fd3b6f4a71", "RUBY_DOWNLOAD_SHA256"=>"d06bccd382d03724b69f674bc46cd6957ba08ed07522694ce44b...
$CHILD_STATUS = #<Process::Status: pid 31867 exit 0>
$CODERAY_DEBUG = false
$DEBUG = false
$DEFAULT_INPUT = ARGF
$DEFAULT_OUTPUT = #<IO:>
$ERROR_INFO = nil
$ERROR_POSITION = nil
$FIELD_SEPARATOR = nil
$FILENAME = "FORCE=y"
$FS = nil
$INPUT_LINE_NUMBER = 19
$INPUT_RECORD_SEPARATOR = "\n"
$LAST_MATCH_INFO = #<MatchData "    ">
$LAST_PAREN_MATCH = nil
$LAST_READ_LINE = nil
$LOADED_FEATURES = ["enumerator.so", "thread.rb", "rational.so", "complex.so", "ruby2_keywords.rb", "/usr/local/lib/ruby/3.0.0/x86_64-linux/enc/encdb.so", "/...
$LOAD_PATH = ["/usr/share/eab/searchapp/lib", "/usr/share/eab/searchapp/vendor", "/usr/share/eab/searchapp/app/channels", "/usr/share/eab/searchapp/app/contr...
$MATCH = "    "
$NR = 19
$OFS = nil
$ORS = nil
$OUTPUT_FIELD_SEPARATOR = nil
$OUTPUT_RECORD_SEPARATOR = nil
$PID = 31866
$POSTMATCH = "$ rake environment elasticsearch:import:all DIR=app/models\n"
$PREMATCH = "      Import all indices from app/models (or use DIR environment variable).\n\n    "
$PROCESS_ID = 31866
$PROGRAM_NAME = "/usr/local/bin/rake"
$RS = "\n"
$VERBOSE = false
$\ = nil
$_ = nil
$= "      Import all indices fromapp/models(or use DIR environment variable).\n\n    " $elasticsearch_url = "http://<IP_ADDRESS>:9200" $stderr = #<IO:<STDERR>> $stdin = #<IO:<STDIN>> $stdout = #<IO:<STDOUT>> $thor_runner = false $trace = false $~ = #<MatchData "    "> import_model_desc =   Import data from your model (pass name as CLASS environment variable). $ rake environment elasticsearch:import:model CLASS='MyModel' ... klass = Article pbar = nil total = 1 total_errors = nil (byebug) next [216, 225] in /usr/local/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/task.rb    216:           @already_invoked = true    217:     218:           invoke_prerequisites(task_args, new_chain)    219:           execute(task_args) if needed?    220:         rescue Exception => ex => 221:           add_chain_to(ex, new_chain)    222:           @invocation_exception = ex    223:           raise ex    224:         end    225:       end (byebug) var all $! = #<ArgumentError: wrong number of arguments (given 1, expected 0)> $" = ["enumerator.so", "thread.rb", "rational.so", "complex.so", "ruby2_keywords.rb", "/usr/local/lib/ruby/3.0.0/x86_64-linux/enc/encdb.so", "/usr/local/lib/... $$ = 31866 $& = nil $' = nil $* = [] $+ = nil $, = nil $-0 = "\n" $-F = nil $-I = ["/usr/share/eab/searchapp/lib", "/usr/share/eab/searchapp/vendor", "/usr/share/eab/searchapp/app/channels", "/usr/share/eab/searchapp/app/controllers"... $-W = 1 $-a = false $-d = false $-i = nil $-l = false $-p = false $-v = false $-w = false $. = 21 $/ = "\n" $0 = "/usr/local/bin/rake" $: = ["/usr/share/eab/searchapp/lib", "/usr/share/eab/searchapp/vendor", "/usr/share/eab/searchapp/app/channels", "/usr/share/eab/searchapp/app/controllers",... $; = nil $< = ARGF $> = #<IO:<STDOUT>> $? = #<Process::Status: pid 31867 exit 0> $@ = ["/usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/relation/batches.rb:128:infind_in_batches'", "/usr/local/bundle/gems/activerecord-6.1....
$ARGV = []
$CGI_ENV = {"REDIS_URL"=>"redis://<IP_ADDRESS>:6379", "HOSTNAME"=>"a6fd3b6f4a71", "RUBY_DOWNLOAD_SHA256"=>"d06bccd382d03724b69f674bc46cd6957ba08ed07522694ce44b...
$CHILD_STATUS = #<Process::Status: pid 31867 exit 0>
$CODERAY_DEBUG = false
$DEBUG = false
$DEFAULT_INPUT = ARGF
$DEFAULT_OUTPUT = #<IO:>
$ERROR_INFO = #<ArgumentError: wrong number of arguments (given 1, expected 0)>
$ERROR_POSITION = ["/usr/local/bundle/gems/activerecord-<IP_ADDRESS>/lib/active_record/relation/batches.rb:128:in find_in_batches'", "/usr/local/bundle/gems/acti... $FIELD_SEPARATOR = nil $FILENAME = "FORCE=y" $FS = nil $INPUT_LINE_NUMBER = 21 $INPUT_RECORD_SEPARATOR = "\n" $LAST_MATCH_INFO = nil $LAST_PAREN_MATCH = nil $LAST_READ_LINE = nil $LOADED_FEATURES = ["enumerator.so", "thread.rb", "rational.so", "complex.so", "ruby2_keywords.rb", "/usr/local/lib/ruby/3.0.0/x86_64-linux/enc/encdb.so", "/... $LOAD_PATH = ["/usr/share/eab/searchapp/lib", "/usr/share/eab/searchapp/vendor", "/usr/share/eab/searchapp/app/channels", "/usr/share/eab/searchapp/app/contr... $MATCH = nil $NR = 21 $OFS = nil $ORS = nil $OUTPUT_FIELD_SEPARATOR = nil $OUTPUT_RECORD_SEPARATOR = nil $PID = 31866 $POSTMATCH = nil $PREMATCH = nil $PROCESS_ID = 31866 $PROGRAM_NAME = "/usr/local/bin/rake" $RS = "\n" $VERBOSE = false $\ = nil $_ = nil $ = nil
$elasticsearch_url = "http://<IP_ADDRESS>:9200"
$stderr = #<IO:>
$stdin = #<IO:>
$stdout = #<IO:>
$thor_runner = false
$trace = false
$~ = nil
@actions = [#<Proc:0x000055b7fa3d52b8 /usr/local/bundle/gems/elasticsearch-rails-7.1.1/lib/elasticsearch/rails/tasks/import.rb:60>]
@already_invoked = true
@application = #<Rake::Application:0x000055b7f8933d38 @tasks={"db:load_config"=><Rake::Task db:load_config => [environment]>, "db:environment:set"=><Rake::Ta...
@arg_names = nil
@comments = []
@invocation_exception = nil
@locations = []
@lock = #Monitor:0x000055b7fa3d5c18
@name = "elasticsearch:import:model"
@order_only_prerequisites = []
@prerequisites = []
@scope = LL("import", "elasticsearch")
ex = wrong number of arguments (given 1, expected 0)
invocation_chain = TOP
new_chain = TOP => elasticsearch:import:model
self = elasticsearch:import:model
task_args = #<Rake::TaskArguments >
(byebug)

I opened a PR with a fix for this. If you're impatient, you can update your Gemfile entry for elasticsearch-model to use the fix before they merge the fix and release a new version:
gem "elasticsearch-model", github: "indirect/elasticsearch-rails"


koord-descheduler: fix GetMaxUnavailable not properly handling percentage type param

Ⅰ. Describe what this PR does
bug fixed
in MigrationControllerArgs maxMigratingPerWorkload percentage parameter does not take effect
Ⅱ. Does this pull request fix one issue?
Ⅲ. Describe how to verify it
run TestGetMaxUnavailable
Ⅳ. Special notes for reviews
V. Checklist

Thanks @wenchezhao!
/lgtm
/approve


Enable concurrent actions

Problem
Users have to wait for a transaction to process before continuing on to perform different LP actions:
https://user-images.githubusercontent.com/39136683/191379855-b9affdab-7c60-4ccb-8788-f337745814f8.mov
Proposal
Is it possible to enable concurrent actions so that users can submit multiple transactions? It'd be nice to have multiple "add liquidity" or swap actions run in parallel so users don't have to wait for each transaction to complete.

I don't think keplr allows multiple txs to be sent at once

@delivan If possible, what would implementation look like to make this happen? It might vastly improve high frequency traders' quality of life -> more volume


SecretsManager plaintext support

I am required to mount some secrets in environment variables, but the ARNs are of plaintext secrets in AWS SecretsManager.
The documentation examples mention only key/value secrets, so I guess plaintext secrets are not supported.
Can anyone confirm that is the case, and whether there is any plan to support plaintext secrets in addition to JSON key/value secrets?
They are a valid option in AWS, therefore it's not unlikely for a developer to be required to fetch them.

We're using plaintext secrets, it's supported. Although maybe not officially...

Would someone be able to provide an example of how this is done? As @freakk82 suggests, all of the documentation (that I've seen) is aimed squarely at K/V pairs.

We just came across this yesterday and also found a working solution for it. I'll create a PR and update the README with some instructions.


Release app on firebase app distribution to get user feedback [develop CI]

Is your feature request related to a problem? Please describe.
It is not a problem but a usability enhancement to the project
Describe the solution you'd like
I was wondering that if a person is kind of non-developer or haven't been to GitHub then we can provide them the apk via firebase app distribution and they can test the app and developers can get the comments from the users via a good way.
Writing a GitHub actions which will directly push the app to firebase app distribution and beta testers  will get email from app distribution about our new pre release version automatically.
Describe alternatives you've considered
Alternatives are already there to release the app via an apk which is available in GitHub artefact.
Additional context
You can read about firebase app distribution here https://firebase.google.com/products/app-distribution
Are you working on this? (Yes/No)
I can work on this issue if other mentors of this projects agrees with this.

We currently don't have a set of testers in mobile-app and since its not released on App Stores, I don't think pre-release would be beneficial.
Tagging mentors - @Nitish145 @tachyons

We will soon be releasing on playstore. And if some non-developer wanted to test the app, we would require his/her email, that's kind of a hassle imo. So, playstore/appstore would anyday be a good option.

We will soon be releasing on playstore. And if some non-developer wanted to test the app, we would require his/her email, that's kind of a hassle imo. So, playstore/appstore would anyday be a good option.

just a suggestion : I thought to keep a form in the main website to collect the emails and directly add them as testers in app distribution via api call

We can afford to pay for a google play account, that is not an issue. Only iOS is an issue as app store is very expensive

We can afford to pay for a google play account, that is not an issue. Only iOS is an issue as app store is very expensive

for that we can also use this : https://firebase.google.com/docs/app-distribution/ios/distribute-console

@ayan-biswas0412 I don't think you can distribute a ios build through any channel without a apple developer account which costs $90/year.

@ayan-biswas0412 I don't think you can distribute a ios build through any channel without a apple developer account which costs $90/year.

I have seen this video and thought the similar thing : https://youtu.be/VbKiIJuGygg (please ignore the language in the video, not available in English 😅)

I just read the docs from firebase and in Step 3 they have mentioned that you need an Apple Developer Account to add a test device.

I just read the docs from firebase and in Step 3 they have mentioned that you need an Apple Developer Account to add a test device.

sorry my bad I missed the info 😢


Can not run vplot on Mac

Hi, I'm trying to use vplot on Mac. An example compiles ok. But I've got the following on runtime:
/tmp/v_501/tr.2406973692426572755.tmp.c:11998:23: error: operand of type 'f64' (aka 'double') cannot be cast to a pointer type
                f64* x_ptr = ((f64*)((*(f64*)/*ee elem_typ */array_get(session.x, 0))));
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/v_501/tr.2406973692426572755.tmp.c:11999:23: error: operand of type 'f64' (aka 'double') cannot be cast to a pointer type
                f64* y_ptr = ((f64*)((*(f64*)/*ee elem_typ */array_get(session.y, 0))));
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/v_501/tr.2406973692426572755.tmp.c:13735:4: warning: expression result unused [-Wunused-value]
  (*(bool*)_t7.data);
   ^~~~~~~~~~~~~~~~
/tmp/v_501/tr.2406973692426572755.tmp.c:13761:4: warning: expression result unused [-Wunused-value]
  (*(bool*)_t13.data);
...
==================
(Use `v -cg` to print the entire error message)

builder error:
==================
C error. This should never happen.

This is a compiler bug, please report it using `v bug file.v`.

https://github.com/vlang/v/issues/new/choose

You can also use #help on Discord: https://discord.gg/vlang

Could you please check now? I don't have a Mac to test the library, but has been confirmed that it working on Mac now. After some fixes, it is working on Windows as well.


Snippet was buil with package in mind but not in practice ?

When i'm study the Concrete\Core\Editor\Snippet i see the getByHandle function :
	public static function getByHandle($scsHandle) {
		$db = Loader::db();
		$r = $db->GetRow('select scsHandle, scsIsActive, pkgID, scsName from SystemContentEditorSnippets where scsHandle = ?', array($scsHandle));
		if (is_array($r) && $r['scsHandle']) {
			$pkgHandle = false;
			if ($r['pkgID']) {
				$pkgHandle = PackageList::getHandle($r['pkgID']);
			}
			$txt = Loader::helper('text');
			$class = '\\Concrete\\Core\\Editor\\' . $txt->camelcase($r['scsHandle']) . 'Snippet';
			$sc = Core::make($class);
			$sc->setPropertiesFromArray($r);
			return $sc;
		}
	}

Where
$class = '\\Concrete\\Core\\Editor\\' . $txt->camelcase($r['scsHandle']) . 'Snippet';

don't care about Package ? It is not possible to play with Snippet from a package ?

You're right - the class isn't being properly built.


Include performance benchmarking as part of integration testing.

@philvarner has released https://github.com/stac-utils/stac-api-benchmark to allow benchmarking query consistency and performance across STAC API implementations.  New PRs should probably run these benchmarks as part of the integration testing pipeline and compare results against previous branches to identify consistency or performance regresssions.

I'll add a quiet mode today that only outputs a final JSON results file.
Also, the "random queries" test requires (I think requires?) three queryables that take a value 0-100, and I need to make this a bit more flexible.

Does this look reasonable for out output format? (the numbers are seconds of runtime, they're really low b/c I only ran a few for each benchmark)
{"step": 0.4397075420129113, "tnc": 0.4970361669547856, "countries_apr_2019": 0.3382589580141939, "countries_cloud_cover_asc": 0.39972841599956155, "random_queries": 47.06457624997711, "repeated": 17.237872541998513, "sort_cloud_cover_desc": [{"sort": "sentinel-2-l2a_properties.eo:cloud_cover_desc", "duration": 0.38575045799370855}], "sort_cloud_cover_asc": [{"sort": "sentinel-2-l2a_properties.eo:cloud_cover_asc", "duration": 0.3100657499744557}], "sort_datetime_desc": [{"sort": "sentinel-2-l2a_properties.datetime_desc", "duration": 0.054874249966815114}], "sort_datetime_asc": [{"sort": "sentinel-2-l2a_properties.datetime_asc", "duration": 0.34525220800423995}], "sort_created_desc": [{"sort": "sentinel-2-l2a_properties.created_desc", "duration": 0.15877308399649337}], "sort_created_asc": [{"sort": "sentinel-2-l2a_properties.created_asc", "duration": 0.05182845803210512}]}

👍  @philvarner

merge to main. Best way to run it is probably to set --verbosity ERROR so any of that usual output from that doesn't interfere with the results.

+1 on performance testing!

https://github.com/stac-utils/stac-api-benchmark to allow benchmarking query consistency and performance across STAC API implementations

To me it seems that this is a benchmark that should be run in each stac-fastapi backend, which as far as I understand might not always be up to date with pgstac.
I'll try to start something using maybe pytest-benchmark to tests the SQL methods.

I've started a really quick demo over https://github.com/vincentsarago/pgstac-benchmark
I wonder now what are the feature we want to benchmark?