Rife v4.26

Hi @hzwer
Rife v4.26 was crashing when we tried to use it on SVP. A user on the forum found it was crashing when the width or height of the resized video is not divisible by 64 whereas before it was checking for divide by 32. This can't be the result of changing the flow because we did not have this issue with v4.25.

I would like to check for divide by 64
Which code should I modify？

It's not a problem with the official RIFE repository. I chose 32 to be the minimum requirement for the RIFE wrapper in vs-mlrt, and then the SVP developer adapted this requirement. The v4.26 model now requires mod64 input, and I have updated the code to explicit notify the change, and therefore it is the SVP developer that should update the code.
(this will only affect the "v1" variants, the "v2" variants handle this kinds of resolution requirement automatically

It's not a problem with the official RIFE repository. I chose 32 to be the minimum requirement for the RIFE wrapper in vs-mlrt, and then the SVP developer adapted this requirement. The v4.26 model now requires mod64 input, and I have updated the code to explicit notify the change, and therefore it is the SVP developer that should update the code.
(this will only affect the "v1" variants, the "v2" variants handle this kinds of resolution requirement automatically

Thanks for the clarification. We have a workaround until the dev officially updates SVP to reflect the change.. 👍

In order to temporarily fix the following error:
"Failed to evaluate the script:
Python exception: vsmlrt.RIFEMerge: tile size must be divisible by 64"
on the "v1" variants until the SVP developer updates their code, you can open
C:\Program Files (x86)\SVP 4\script\generate.js
and replace this:
    var pw = Math.floor((media.dst_w-1)/32+1)*32 - media.dst_w;
    var ph = Math.floor((media.dst_h-1)/32+1)*32 - media.dst_h;

with this:
    var pw = Math.floor((media.dst_w-1)/64+1)*64 - media.dst_w;
    var ph = Math.floor((media.dst_h-1)/64+1)*64 - media.dst_h;


[B2C] Workaround for "realm" and "username" missing in IdToken

• Preferred_username is mandatory filed. Use placeholder if it is missing in the id_token.
• Tid id required according to the spec. The fix is in the serve's test slice. Add the workaround with place holder string. Will remove it after the test slice becoming production.
• Fix the lib versioning for MSAL and ADAL.

Passed the E2E testing for interactive B2C test. But silent auth failed. Investigating it now.

Reviewing this PR now...

@iambmelt What's iOS's value? Could you share what you find? Thanks.

Replace the username placeholders with the same string (based on the Schema spec)

Need more discussion on the tid fix:
According to the spec, for Account, AccessToken, IdToken, the realm filed is required. The value of it would be full tenant or organizational identifier that account belongs to. It could also be an empty string for non-AAD scenarios. This introduced issue for the current realm validation.
@iambmelt and I are trying to find a solution...
@addev-ashish @shoatman Any thoughts?

PS don't forget to update the MSAL/ADAL submodule pointers
We can do this task in the morning (10/4) since it's getting late in the eve -- we just can't ship without ADAL/MSAL aligned on the common SHA
/cc @kreedula

Need more discussion on the tid fix:
According to the spec, for Account, AccessToken, IdToken, the realm filed is required. The value of it would be full tenant or organizational identifier that account belongs to. It could also be an empty string for non-AAD scenarios. This introduced issue for the current realm validation.
@iambmelt and I are trying to find a solution...
@addev-ashish @shoatman Any thoughts?

@addev-ashish @shoatman -- Chatted on Teams; going to comment-out the realm validation for now and deliver a better fix in 0.2.1+ or a later release. For now, we're going to write "" to match the iOS implementation

@heidijinxujia Can you make sure that #260 is not a regression from this change?


Future vignette topics

[ ] - catchability (q)  - Rick (see issue # 535)
[ ] - Lambdas
[ ] - Depletion survey (option 34)
[ ] - Phases

Glad to see this list getting started.  I think we should put some quality time into creating a list of vignettes.  Seems logical to coordinate them with list of webinars.  The vignettes will be more work than the webinars.


Connect to kafka instead of zookeeper

afaik the latest version of kafka requires a connection to kafka, not zookeeper. Is this supported by this library?

We use this module with kafka <IP_ADDRESS> without any issues.

how to directly connect to Kafka instead of zookeeper?

@uschen checkout issue #666


Create "process" state tree branch.

We need a "process" state tree branch that different processes can use to give feedback about their state, like the account profile forms.
We need a interface file with the state definition
We need a index.ts file that registers the reducers.

PR: #1389


[core] Lightweight the build

Reduce the size of the documentation bundle.
Reduce the size fo the ES5 commonjs.
Publish two UMD versions of material-ui (dev/prod).
Publish an ES modules (using #5545).
Upgrade all the dependencies

A feedback from me about tree-shaking functionality ..
I think tree-shaking cannot working for modules installed in node_module ,
So what you propose cannot help too much the user, because web pack tree-shaking cannot operate on already  babelified module  (it 's due to babel i think)
Tree-shaking will work only one time for the static library 'material-ui' created
if the user install material-ui with npm install
then he will get the full library with all component included in his bundle size.
'AppBar'
'Avatar'
'Badge'
'Chip'
'Checkbox'
..etc
I mean if in the user source code there is no Chip component
webpack won't strip it because the library is babelified and webpack  tree-shaking seems not work on babelified module.
The only solution (by exemple that i use for me) to see your bundle result decrease  if i use the source code of material-ui, and let web-pack build everything .
so i created a alias for every important module.
alias: {
'react': 'preact-compat',
'react-dom': 'preact-compat',
'preact-compat': path.resolve(__dirname, './preact-compat'),
'preact': path.resolve(__dirname, './preact'),
"react-transition-group": path.resolve(__dirname, './temp/react-transition-group-master/src'),
"react-event-listener": path.resolve(__dirname, './temp/react-event-listener-master/src'),
'mobx-react-form': path.resolve(__dirname, './temp/mobx-react-form/lib'),
'material-ui': path.resolve(__dirname, './temp/material-ui-next/src'),
'recompose': path.resolve(__dirname, './temp/recompose/src'),
'react-jss': path.resolve(__dirname, './temp/react-jss/src')
}
Wait answer from this
thanks


Error building go app : undefined: SQLiteConn

....\github.com\mattn\go-sqlite3\tracecallback_noimpl.go:7: undefined: SQLiteConn
OS: Windows 10 Pro 64
c++ compiler framework: MinGW64

can't reproduce this. what is different from general situation?

I have used the test code under "Quickstart" from https://github.com/go-gorp/gorp
I have go version go1.7.1 windows/amd64
I used  "github.com/mattn/go-sqlite3" and it build and installed fine
Any other info you need Matt?

please try with go build -x on $GOPATH/github.com/mattn/go-sqlite3

https://gist.github.com/Murf/ac2d4a17e524c71a01096160408bd7d9

What about go env ?

D:\Working\go\src\github.com\mattn\go-sqlite3>go env
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=D:\Working\go
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\brettm\AppData\Local\Temp\go-build709739654=/tmp/go-build -gno-record-gcc-switches
set CXX=g++
set CGO_ENABLED=1

I used "github.com/mattn/go-sqlite3" and it build and installed fine

But not? Is this an issue related on tests?

D:\Working\go\src\github.com>
D:\Working\go\src\github.com>rmdir /s mattn
mattn, Are you sure (Y/N)? y
D:\Working\go\src\github.com>go get github.com/mattn/go-sqlite3
D:\Working\go\src\github.com>
That is what I meant Matt, I did not get any errors when I installed it

Okay, then what is remaining issue?

Matt, I think if is a cross compiler issue
this works:
go build -v test.go
this does not:
D:\Working\go\src\local\syslog-connector-go>set GOARCH=amd64
D:\Working\go\src\local\syslog-connector-go>set GOOS=linux
D:\Working\go\src\local\syslog-connector-go>go build -v test.go
...
log
database/sql
github.com/mattn/go-sqlite3
gopkg.in/gorp.v1
(#) github.com/mattn/go-sqlite3
....\github.com\mattn\go-sqlite3\tracecallback_noimpl.go:7: undefined: SQLiteConn

Further..
I used set CGO_ENABLED=1
and now have this problem (which seems to have progressed at least)
D:\Working\go\src\local\syslog-connector-go>go build -v test.go
runtime/internal/sys
runtime/internal/atomic
runtime
errors
math
internal/race
sync/atomic
unicode/utf8
sort
sync
unicode
runtime/cgo
io
syscall
bytes
strings
time
strconv
runtime/cgo
C:\Go\src\runtime\cgo\gcc_linux_amd64.c: In function '_cgo_sys_thread_start':
C:\Go\src\runtime\cgo\gcc_linux_amd64.c:61:2: error: unknown type name 'sigset_t'
sigset_t ign, oset;
^~~~~~~~
C:\Go\src\runtime\cgo\gcc_linux_amd64.c:66:2: error: implicit declaration of function 'sigfillset' [-Werror=implicit-function-declaration]
sigfillset(&ign);
^~~~~~~~~~
C:\Go\src\runtime\cgo\gcc_linux_amd64.c:61:16: error: unused variable 'oset' [-Werror=unused-variable]
sigset_t ign, oset;
^~~~
cc1.exe: all warnings being treated as errors
regexp/syntax
reflect
os
regexp
fmt
database/sql/driver
net/url
log
database/sql
gopkg.in/gorp.v1

I think it is because cgo not supported for cross compilation in Go, I will move my dev environment to a linux container.
Thanks Matt, please close

On Linux I am unable to compile without cgo. Is there any solution to this?
$ CGO_ENABLED=0 go build --ldflags '-extldflags "-static"' -ldflags '-s' -a -installsuffix cgo
github.com/mattn/go-sqlite3
../../../../github.com/mattn/go-sqlite3/tracecallback_noimpl.go:7: undefined: SQLiteConn

go-sqlite3 require ENABLE_CGO=1

to be more clear CGO_ENABLED=1 is needed.

i'm using ubuntu 18.04
command :
CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -o app.exe app.go

error :
gcc: error: unrecognized command line option ‘-mthreads’; did you mean ‘-pthread’?

@codenoid You need to set CC to a valid Windows cross compiler. By default you are using the one for your host (Linux).

@rittneje yea, just successfully compile my application in target host (windows)


Question: Adding Cordova Plugins

Hey SP, sorry to be asking so many questions (but maybe it'll help when it comes time to expand the docs). How would you go about adding extra cordova plugins to the application since the Framework doesn't seem to provide direct access to Cordova. Thanks!

@Grogglex - You have to add them in the package.json file (>1.3 in the app/config.json file) in the property array useCordovaPlugins  :-)

Thanks @scriptPilot, that works. I had an unrelated question. I was wondering if you were looking for a hand doing any of the maintenance of this project? I am really quite impressed so far and would love to do anything I could to help out. (This would be my first time contributing to an open source project).

@Grogglex - Thank you for your offer! I will see how to involve you in the future the best way. For now, you really help me with testing :-)

@scriptPilot Quick question, after you add the plugins what command do you run to have them added to the project? For instance, I added the device plugin in the array but I'm not sure what command I need to run in order to have them added to the browser project.

@Grogglex -  I just released version 1.3. You would help me a lot if you test the new release with following the readme file and documentation step by step and let me know any typo or issue :-)

@scriptPilot Sure. I'll test out all the scripts ASAP (anything else to test?)
I asked a question earlier and deleted it; I was wondering, is it possible to use the cordova plugins in the browser version of the application? For instance -> https://github.com/apache/cordova-plugin-device indicates that the device plugin is available for browser so that you can reference 'browser' globally?

@Grogglex - Currently, cordova plugins are only added on Xcode and Android Studio builds.

@Grogglex - Script AND DOCUMENTATION would be great :-)


Support Wayland protocol to allow GUI apps to work.

Given the Linux world is moving to Wayland as the step on from X11 it would be
good to see Wayland supported in WSL.
Off the top of my head think there is enough protocol/API to completely isolate
a windows Wayland server as part of the normal windows desktop from the
wayland clients running in WSL.
All the important GUI tool kits have Wayland support today and its will become mainstream
on Linux distros on the next year.
At this point in time doing work for X11 may be wasted effort.

Maybe I'm wrong because I'm not a Linux developer, but I think that the future for Canonical is Mir and not Wayland.

@iz0eyj right!

The main problem with Mir and Wayland is that both require DRM/GLX.  Right now, WSL does not expose graphics hardware, and rendering/compositing is done over remote X, which partially uses AIGLX and partially uses software rendering due to missing plugins in vcXsrv.
In order for DRM/GLX to work, Microsoft would need to have an API for driver makers to expose their devices inside of WSL, which is not yet planned.  Wayland and Mir do not support remote indirect opengl rendering, and they won't for the foreseeable future, although perhaps it might be possible in the future (I have a thread on this called something like "WSL should add a DRM api for Windows driver makers" or something like that)

@fpqc would be possible to build a layer OVER WSL that intercepts the graphic calls and transmit it to the Win side?

@iz0eyj Not with Wayland or Mir.  Both of them, I believe, do not have server-side rendering functionality.  All rendering is done at the client side via libdrm or perhaps with a fallback to software rendering.
The compatibility layer would have to be part of WSL, although conceptually it actually doesn't seem that difficult to imagine MS being able to emulate the direct rendering manager itself (it would be part of the WSL layer sitting between libdrm and libgl on the Linux usermode side and whatever kernel-mode interface Windows uses to provide hardware-accelerated rendering in the kernelmode.
The main problem with DRM is that emulating it would be much harder than emulating the Linux Standard Base API, since DRM is much newer and much less well documented.

@iz0eyj Oh yeah Mir... (I wonder how long Canonical will keep that project going, they do like going out on there own).
@fpqc Server side rendering is almost dead these days. Even with X11 modern tool kits do lots of rendering client side and just give X11 the pixmap to draw. Also note that X11 has security issues which Wayland has fixed.
@fpqc From what I have seen the Linux DRM has lots of documentation, which can always be improved if that is necessary.
I'm sure if Microsoft in interesting it adding DRM they can talk to the developers from Intel, AMD etc that wrote the specs and implementation.
I have not looked but I expect that Mir sits on top of DRM as well.

All the graphics cards these day have Windows and Linux driver. The graphic card vendors could easily expose there Linux API for WSL if Microsoft specs the interface.

@barry-scott  Not exactly how it would work.  They would have to be Windows drivers that attached to some kind of DRM translation interface (or Windows could manage access).  Using the Linux driver directly (at least the kernel-mode part) is totally out of the question.

@fpqc I must not have been clear.
Assuming that MS wish to do this they provide a Windows Kernal API that allows the DRM interface into the graphics driver.
The vendors have DRM code. Its not beyond the wit of man to put that code into the same Windows driver with the Windows Kernel interface code.
The Linux Kernal DRM API can then be exposed to a WSL user process.
That is how it could work.

Now as Mir is out of the picture, implementing Wayland support is the only hurdle in supporting GUI apps in wsl.

Are you sure DRM is required at all? The way I understood it DRM would only be a requirement for running weston or gnome-shell on the Linux side. But that is not what you're want to do.
Wayland doesn't specify how the compositor does the job. C.f. the weston branch using raspberry pi's dedicated hardware or Sailfish's compositor, which uses proprietary android drivers.
Theoretically, one could implement a Direct X12 based compositor.
If the client is using hardware accelerated drawing, that's of course a different story. OpenGL calls would need to be for to the host operating system. Maybe VMWare's gallium driver could be adapted. But for the time being software rendering would do.

Theoretically one could implement a DX12 based compositor but it would be a lot of work

I'm not saying one should use DX12. I just wanted to point out, that the Linux guest doesn't have to know  details about the compositor just to get the basics working. It would definitely make sense to have some means of doing hardware accelerated rendering on the client side and only implement a basic compositor on Windows side supporting client compositors like gnome-shell or kwin. AFAIR this is what login managers like gdm do. But for the rootless case, I assume a full featured compositor on the windows side would be required.
I'm not sure if libweston is tied to drm. If not, that would make implementing a Windows native compositor a lot easier, I guess.

With Windows supporting AF_UNIX: https://blogs.msdn.microsoft.com/commandline/2017/12/19/af_unix-comes-to-windows/
If they add SCM_RIGHTS and WSL <-> Windows support, you can implement a wayland server in windows that handles WSL clients (and technically windows clients as well, but that's a bit weird, I guess mingw and cygwin).
Getting GPU support is the rest of it. (Which is already a pain point on Linux, but at least it works for Intel and open source AMD drivers).

@xinyazhang and @HornetBlack
You could write all the code to forward from linux work over a AF_UNIX socket to a win32 process. But that is man years of work for someone. Oh and the whole point of Wayland/DRM is that sending commands over a socket, as X11 does, is far to slow for modern rich and responsive GUIs.
On the other hand the DRM interface is a stable ABI and a far smaller body of code to implement for the WSL folks. Once done all the rest of the code already exists and is debugged. Mesa, GTK, KDE libs etc.

@barry-scott
Wayland over WSL actually shares a lot with other projects, e.g. running wayland GUI remotely. For performance perspective, check virtualGL videos for a reference, or try vmware player, which basically are using the same arch and the first one is working over the network.
Other the other hand, I think you really underestimate the workload of developing a DRM driver stack.
The most important thing is you can hardly reuse any existing driver code other than the state tracker in mesa3d.
Reusing any part of this stack (say, radeonsi in mesa and/or AMDGPU in drm) would make the WSL application talk with the GPU hardware directly. Now we have two drivers fighting for the same GPU on the machine, congrats if it didn't crash.
The only way left is the VMWare's approach: having a virtual DRM in the guest OS, and do the rendering at the host OS, and this is also not cheap: vmwgfx by itself consists of 32,053 LOC as of 4.14.16* , nor to say the LOC required for a corresponding mesa driver. More ever, the whole driver stack cannot be shared and it would become a project on its own.

For comparison, VirtualGL consists of 111,716 LOC including both server and client

@xinyazhang

The only way feasible is the VMWare's approach

There are a couple of feasible approaches. Talking about them for 38 messages advances neither, of course.
The first step would be to do a framebuffer driver per #230 and go from there. Which has been doable since November 2016 with lxdrv but no one has stepped up to do that (let alone navel gazing about DRM). Of course you'll also need a raw keyboard and mouse character device too.
Someone probably would have stepped up, except for the utility proposition. No one has actually stated a use case for any of this. And no, running VS Code on WSL is not a use case. It runs fine. Running VS Code without VcXsrv isn't a use case either. Because no one is going to spend thousands of man-hours replicating GLX by another name so you don't have to install VcXsrv -- at least while there are 826 -label:console issues open in Github. Something like Blender might be a use case, were it not for the fact that running Blender on WSL would make no kind of sense; because Blender for Windows.
@barry-scott

MS would be crazy to attempt to support X11 at this point in time.

There have been probably a dozen posts from MSFT over the last two years agreeing with that statement.

@therealkenc, could an application set up shared memory via LxDrv? (In as much as a Windows and WSL process can share a memory-mapped temp file)

could an application set up shared memory via LxDrv?

Allegedly yes. I think you might run into challenges for lack of synchronisation primitives, but those could be overcome. Either way #230 is proof by existence it is possible. It would be possible even if you didn't have mmap and just streamed the frames. You can watch youtube videos in Firefox/Chrome on WSL just fine. The lxdrv interface is not documented, but then if anyone had the intention of implementing /dev/fb0 they would have posted code as far as they could get and asked.
I should in fairness also mention LoWe, since the guy made the effort. Let's call it a novel approach. Not as novel as XSixel, mind you.

Thanks for the ask. We currently don't support GUI apps in WSL. If you would like us to support this, however, please upvote a feedback request on our UserVoice page. Voting on that page helps us prioritize asks.

Yes, the first link is the proper one. Thanks for catching that

why not ... just "open source" the project.
then others can do the job ???

There's technically no need anymore as WSL2 resolves this issue. Under WSL2, it's no longer a syscall issue, just an X server issue.

@WSLUser this issue has nothing to do with X Server.

You mean other than the fact an X server is required to run GUI apps right?  I already stated this issue is resolved with WSL2. Plus this issue is closed already.

Interesting project (i think), which is trying to develop a framebuffer for wsl :
https://github.com/kpocza/LoWe/blob/master/docs/buildrun.md

Microsoft can (if he wants), port or adapt hyper-v accelerated-framebuffer driver.
https://www.phoronix.com/scan.php?page=news_item&px=MTMwMzg

Hi all,
Some background first: I'm the author of Greenfield and thus can claim to have a least a little bit of Wayland knowledge. I do unfortunately have little to no experience with WSL (yet).
Let's correct some things first:
The only hard requirement currently in the Wayland protocol is file descriptor passing between processes.
The extra hard requirement if you decide to use the libwayland C library, which is an implementation of the core protocol, is the use of unix sockets for both server & client (they have to communicate somehow right?)
I'm not familiar with WSL, but if WSL applications can:

use unix sockets
draw to the screen somehow
or
can send file descriptors to native windows applications

you actually have all the required pieces already in place to make 95% of all Wayland apps work using simple shared memory buffers (which is supported by nearly all Wayland clients).
However since this thread is still open, I assume the big hurdle is in getting a WSL to render to screen right?
The alternative is a Wayland compositor written as a native windows app and have WSL unix socket interop talk to the WSL GUI applications. If that is possible, then there is literally nothing stopping you from having Linux GUI apps running in WSL right now, except...
...that you need to write a whole Wayland compositor from scratch, or port Weston (the reference Wayland compositor) to Windows and implement a custom Windows backend (display output+user input). Not a trivial task (believe me...).
Another alternative, one I'm investigating myself (and also the reason I found this thread), is to have Greenfield be the compositor and have all server/client communication happen over a localhost tcp socket. The advantage being that the code is already there, I just have to find out if there exists a working setup.

The only hard requirement currently in the Wayland protocol is file descriptor passing between processes.
I'm not familiar with WSL, but if WSL applications can:

use unix sockets

We got unix sockets, but not fd passing or credential passing between Windows and WSL.

draw to the screen somehow

Yep that.

However since this thread is still open, I assume the big hurdle is in getting a WSL to render to screen right?

That's one. Inputs (libinput) is the other.

Another alternative, one I'm investigating myself (and also the reason I found this thread), is to have Greenfield be the compositor and have all server/client communication happen over a localhost tcp socket.

No reason Greenfield won't run. WSL is a headless Linux server.

Greenland is listening on the $WAYLAND_DISPLAY. Unfortunately something something window_create_internal: Assertion ``custom || display->xdg_shell || display->ivi_application' failed.\n","v":1} out of weston-terminal. Longer complaints out of gedit etc. Had hoped for a prettier screencap but that's my time-sink allotment for the day.
Whatever's happening there, it is going to be environmental difficulties, not Greenland or WSL. Or just errors between the chair and keyboard on my part. If you pursue it further, start with Insiders and WSL2. There isn't any particular reason it won't run on WSL1, but on the chance one of the native modules node is using hits some unimplemented surface or edge-case differences in WSL1's reimagination of the Linux kernel, you'll have a happier experience starting with WSL2 (and working back to WSL1 later). Above is on WSL2 with Ubuntu Disco and Greenfield master.

@therealkenc the issue seems to be gstreamer failing to initialize. I think the path of least effort to get something working is to use docker on wsl2 along with this local docker-compose configuration. This local demo environment currently only allows you to launch a single app due the way it's set up. However with some minor modifications it should be able to launch any app you want.

the issue seems to be gstreamer failing to initialize.

That's possible if gstreamer is trying to grab any physical device; we have we none. Also dbus --system and systemd-udevd aren't alive in a typical WSL userspace. With an strace(1) log leading up to the gstreamer fail I could probably tell you for sure. I don't really "do" node except on television or I'd probably dig further myself. AFAIK though, those aren't hard-blockers to get gstreamer proper running.

I think the path of least effort to get something working is to use docker on wsl2 along with this local docker-compose configuration

Docker is a path of great resistance until localhost networking is sorted. I got a bad gateway error when I tried the docker path right out of the gate. Was the first thing I did yesterday before resorting to doing a build, as that was the Quick Demo instructions at the top of your github, naturally. There are open issues tracking localhost transparency. Localhost isn't really (Windows) localhost on WSL2.
Long-short, if you can get it up on a headless (no graphic devices) VM on a different IP segment (its own localhost) it'll probably run on WSL

@therealkenc localhost is not a hard requirement, that is, the docker containers running in WSL should simply be able to communicate with each other. The only hard requirement is being to make a websocket connection from your browser to the application-endpoint process running inside WSL.
I have a feeling getting this to work should be really trivial as you say, as I actually do run Greenfield on headless cloud VMs, both GPU HW accel instances as well as pure SW instances.
I'll see if I can get WSL up on a virtualbox VM or an old machine and create a working docker-compose.

I have a feeling getting this to work should be really trivial as you say, as I actually do run Greenfield on headless cloud VMs

It probably is. Weston with its RDP backend works on WSL2 without modification FWIW. I've just been quiet about it. Your "Let's correct some things first" is all correct.
If you already have Greenfield running on a no-GPU cloud scenario, then there is a much better than even chance it is going to be something of the very obvious with hindsight variety.
Your project is awesome BTW 💯 (I had taken a look at it some time back in a non-WSL context). I mean if the Stadia people can stream 4k games from a server far away, surely it's a reasonable enough approach.... ;). Doing a win32 Wayland server is "doable", but at the end of the day you'll always be fighting against the fact Wayland isn't a wire protocol and WSL is fundamentally remote. That can probably be overcome with waypipe or something like it, but doing a win32 port of all the Linux/*NIX assumptions in the underlying Wayland/freedesktop ecosystem (which are many and varied) would not be pretty. Doable, just not pretty.

install docker for windows with WSL2 backend
follow instructions
Profit!

ps. I also installed the ubuntu distro before going with docker, not sure if that is needed. I guess not, so I've left it out from above steps.

Hi folks, I'm happy to announce that we are putting supporting GUI apps in WSL on our roadmap. I'll add an edit to this post with more details today!

That is wonderful news.

Will the Wayland => RDP stack support GPU acceleration too, when everything is in place (Mesa, dxgkrnl, ...), so wayland-egl applications would work ?
Or will it be limited to wayland-shm ?

Hi folks, we would love to hear your input on this request!
Please fill out this survey and let us know what Linux GUI apps you'd want to use. It will help shape the priorities for the team as we build this feature!
https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbRzbKcfZyZQ9Drbxd4NOp_ZBUOFZVQ1A2UUlWRzBNMUtPOFFVVkRQWTNRQS4u
Thank you

As the maintainer of the Weston package in Gentoo Linux, I am already familiar with it. I've now been using it for a few weeks under Ubuntu on WSL but connecting from a remote Linux desktop with FreeRDP. This suits my monitor setup and Barrier allows me to easily share my keyboard and mouse between the two systems. The performance is surprisingly good considering that there's still no GPU acceleration. The only annoyance is the lack of clipboard support.
I'm very interested to see what Microsoft are working on in this area. Weston is an open source project so is there a fork somewhere that we can try out? Probably not but thought it was worth asking!

I tried to set up Weston RDP but in the end VcXsrv is still much more user-friendly until MS publishes their solution.

The only annoyance is the lack of clipboard support.

I wrote a Python script to solve that problem: https://gist.github.com/CTimmerman/370271d0519f3c8db749

I tried to set up Weston RDP but in the end VcXsrv is still much more user-friendly until MS publishes their solution.

Could you explain how, please?
Thank you so much.

From the history it looks like I had to manually set XDG_RUNTIME_DIR, then generate keys with openssl and then tried weston --backend=rdp-backend.so --rdp-tls-key=tls.ley --rdp-tls-cert=tls.crt --address=<IP_ADDRESS> --port=3390 which failed iirc cause I tried xrdp next which worked after changing the config sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini iirc but I couldn't log in via RD.
With greenfield it's completely unclear to me how you actually get your own application to show up and LoWe requires building stuff on the Linux and Windows side.
For X you just need echo "export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0" >> ~/.bashrc and no login is required. Maybe that host ip is also needed for Weston to work.

You need to bind to <IP_ADDRESS> rather than <IP_ADDRESS>. My Weston options are otherwise the same. I did this to expose Weston to the remote machine.
netsh interface portproxy add v4tov4 listenport=8389 listenaddress=<IP_ADDRESS> connectport=3390 connectaddress=<IP_ADDRESS>

Annoyingly Microsoft's own RDP client won't connect to Weston but I can't figure out why.

@chewi @Trass3r  Can you present your setup with details? Thank you.

Annoyingly Microsoft's own RDP client won't connect to Weston but I can't figure out why.

Are you getting the "you already have a session in progress" error?
Apparently that happens always whenever connecting to localhost on the default port.
If you change to a non-standard port (different than 3390) or use a different loopback IP, it might work.

3389 is the standard port, not 3390, so I don't see the "you already have a session in progress" error. The other error you included is the one I was referring to.

I've since switched to Xpra, which performs very well when connecting remotely and has far more features. Apart from a working clipboard, I particularly like the way it handles the opening of URLs, prompting whether you'd like to open them in the local or remote browser, and also the XDG menu integration, providing an application menu through the native tray icon. Sadly the client isn't working very well for me on Windows but I'm speaking to upstream about that.

How did you set it up?

Any news about the official support for Wayland?

@rcsilva83 I recommend this video:
WSL Graphics Architecture (Jesse Natalie & Steve Pronovost)
X11 and Wayland applications in WSL (Steve Pronovost)
It's coming "soon". I think in a month Insiders should get the first bits.

Thanks for posting those. I watched them both in full, as well as the Mesa one afterwards, and they were really fascinating. I think Microsoft's approach here is fantastic and I was pleasantly surprised to see them equally supporting my less common use case of running these GUI applications remotely.

When it comes to Windows Insider will there be any potential conflicts with VcXsrv?

@dxgldotorg You will be able to disable it with an option in your /etc/wsl.conf file.

No conflicts would mean I wouldn't have to stop my X server in order to use the new feature, right?

@dxgldotorg They only said about disabling the new feature. See https://www.youtube.com/watch?v=b2mnbyRgXkY&feature=youtu.be&t=9754

@rcsilva83 I recommend this video:
WSL Graphics Architecture (Jesse Natalie & Steve Pronovost)
X11 and Wayland applications in WSL (Steve Pronovost)
It's coming "soon". I think in a month Insiders should get the first bits.

Any update on it?

@rcsilva83 I recommend this video:
WSL Graphics Architecture (Jesse Natalie & Steve Pronovost)
X11 and Wayland applications in WSL (Steve Pronovost)
It's coming "soon". I think in a month Insiders should get the first bits.

Any update on it?

We are still working on this feature! We don't yet have an ETA but will post here once we do.

We are still working on this feature! We don't yet have an ETA but will post here once we do.

Does this feature exist as a preview anywhere?  I would love to give this a spin.

Does this feature exist as a preview anywhere?  I would love to give this a spin.

Will it be possible to run a Wayland WM like Sway this way? Similarly to how nowadays you can use an X client in Windows and run a window manager in WSL.

Will it be possible to run a Wayland WM like Sway this way? Similarly to how nowadays you can use an X client in Windows and run a window manager in WSL.

A nested compositor would work, but that isn't going to be what you want as it would be in its own window. You'd likely have to modify Sway to function.

Will it be possible to run a Wayland WM like Sway this way? Similarly to how nowadays you can use an X client in Windows and run a window manager in WSL.

A nested compositor would work, but that isn't going to be what you want as it would be in its own window. You'd likely have to modify Sway to function.

Thanks. That actually is what I want and do right now. I mostly spend time in my WSL, so I just run the full (tiling) WM in one fullscreen window on my main display.

For my development needs I'd like to have full support:

Wayland
Vulkan
PipeWire

I hope to get a great and stable multimedia platform  and to be able to target it from Visual Studio 2019 (Code), so I can seamlessly switch between Windows/Linux and other targets.

For my development needs I'd like to have full support

What does prevent you to use an actual installation of a GNU/Linux distribution or any other unix-like OSes?

@Biswa96 Technically nothing. It's a matter of convenience. No need to reboot between sessions. I could currently build but not test simultaneously.

Will it be possible to run a Wayland WM like Sway this way? Similarly to how nowadays you can use an X client in Windows and run a window manager in WSL.

A nested compositor would work, but that isn't going to be what you want as it would be in its own window. You'd likely have to modify Sway to function.

@valorl I would love having it as well. Either in its own windows or being able to stream apps independently of the desktop os window. Up to give a hand in this adaptation. I will definitely appreciate my arch + sway setup at the end!

We released the first preview of this work today!
Please see the blog post here for all the details: https://devblogs.microsoft.com/commandline/the-initial-preview-of-gui-app-support-is-now-available-for-the-windows-subsystem-for-linux-2/

Extremely cool! I wish for Vulkan and PipeWire support as these APIs will be the future and I intend to support them exclusively. This will allow to use Windows as a primary development environment without the need to reboot between sessions.

Build, test and use Linux applications that use audio or the microphone with built in audio support

I like that :)

Bonus: Leverage WSL’s GPU access to run Linux applications with 3D acceleration

Why is that considered a bonus? 3D isn't a bonus since 20 years?

In that blog post, the diagram of the architecture does not explain the role of WSLGd binary. More info will be helpful.

@Biswa96 you're probably looking for the lower-level sister blog post: https://devblogs.microsoft.com/commandline/wslg-architecture/ :smile:

@craigloewen-msft Thanks so much! I was really impressed with your presentations at XDC last year. This has been so well architected so congratulations on getting it out the door.
For the time being though, unlike most users, I'm actually more interested in RAIL than VAIL. Are there any instructions on connecting remotely? I imagine you can just fire up Weston and connect, much like I was doing before, only it should work much better now? I've found Microsoft's Weston fork so I could build this or maybe I could run your existing image with Docker somehow?

@Zingam I put 'Bonus' since it's a pretty exciting feature and as of right now requires preview versions of software but will soon be fully available on every distro, I get your point though!
@chewi that's an interesting point. We haven't explicitly built WSLg to do this, but it is open sourced as you suggested so you could take a look and see if you could get it working.

Hey guys, wonderful news. At the moment I saw this update, I've put my hands on it.
Using an Arch distro here, installed the beta Nvidia Cuda drivers, installed gedit on my distro (which installed automatically Mesa-21.0 release and I can run gui apps which looks like to take into account gpu acceleration.
My problem is it looks like to take the wrong GPU as I have a Optimus system (so an intel card + a Nvidia discrete GPU) + in addition an external more powerful NVidia GPU through Thunderbolt3). I would like to select this last (tb3) GPU.
Any way to do that?
ps: I've made some tests using Gimp and a linux game made with Unity3D Engine (ie. https://www.quantex-online-entertainment.net/ ), and it should be on the wrong GPU... as display is jerky.
Thanks in advance for further info.

Well I got RAIL to work. I built replacement Weston and FreeRDP .deb packages for Ubuntu 20.04. I was able to connect using mstsc on Windows (locally with a non-Insider build) and FreeRDP on Linux. With mstsc, I was even able to use "seamless" mode with individual applications. I couldn't get this to work with FreeRDP, even though I'd also patched the client. The server complains with:
HiDef-RAIL is required for RAIL.

That aside, I don't think the performance is any better than it was when I ran the vanilla stack last year. It's not even that good locally. Xpra's performance is much better. I know this is why you've created VAIL but I had hoped it would still be a bit better than it was. On the plus side, the clipboard works now!

NVidia GPU through Thunderbolt3). I would like to select this last (tb3) GPU.

External GPU was raised at #5604. It would probably suffice as a landing zone for the GUI use case as well.

Ok, cool to see there's an issue about it. What about switching to the discrete gpu in the meantime (which is internal to the laptop)? What's the way to do it?I will be a lot better than the intel GPU. I'm up to read some docs.
glxinfo do not give more then that currently:
[nox@NoX NoX]$ glxinfo|egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 11.1.0, 256 bits)

Thanks anyway

Ah I guess this mail explains the error I saw about "HiDef".

FreeRDP does support the capabilities and messages but the rendering code of xfreerdp does not.

Maybe I misunderstood, but from the blog post and following into the Mesa 21 release notes, shoudn't the OpenGL renderer string be "d3d12", not "llvmpipe", if it's using the new Wayland setup?
Is it possible that the 3D acceleration is not working at all for you, rather than using the wrong GPU?

Ok, so a mesa21 build that includes d3d12 is required. You are probably right, I could not have GPU acceleration at all.
Thanks @TBBle for direction to take and research.

For a d3d12 enabled mesa on Ubuntu I recommend the kisak PPA.
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt-get update

I can vouch for @kisak-valve as I've frequently worked with him on Steam-related issues.

Ok, cool to see there's an issue about it. What about switching to the discrete gpu in the meantime (which is internal to the laptop)? What's the way to do it?I will be a lot better than the intel GPU. I'm up to read some docs.
glxinfo do not give more then that currently:
[nox@NoX NoX]$ glxinfo|egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 11.1.0, 256 bits)

Thanks anyway

Just for the record (I know this was already clarified). llvmpipe is a software rasterizer - https://docs.mesa3d.org/drivers/llvmpipe.html.

Closing this issue.  For all wslg issues, please file issues in https://github.com/microsoft/wslg/issues.


[(LIVE.NFL)] Chiefs vs Broncos LIVE Streams On TV Channel 10 November 2024

The Kansas City Chiefs have released their list of inactive players for Sunday’s Week 10 game against the Denver Broncos. The Kansas City Chiefs are at home once again this weekend, and an AFC West rivalry game is on the horizon for the reigning Super Bowl champions.
The Broncos are coming off a brutal 41-10 loss to the Ravens last week as they look to bounce back on the road for the second straight week. Denver has a 5-2 record in their last seven games as they look to get things back on track with Bo Nix under center, if they can get back to the basics, they have a chance to knock off the undefeated Chiefs.
As expected, wide receiver JuJu Smith-Schuster (hamstring) will not play on Sunday. Neither will offensive linemen Ethan Hanson and C.J. Hanson, running back Clyde Edwards-Helaire, defensive end Cameron Thomas and defensive tackle Marlon Tuipulotu. But defensive tackle Tershawn Wharton (knee) will be available to play.
Smith-Schuster was declared out in Friday’s final injury report after being held out of practice all week. Wharton was held out on Wednesday and Thursday before being upgraded to a limited participant in Friday’s practice. He was listed as questionable for the game. The rest of the inactive players should be considered healthy scratches.
Defensive end Mike Danna and cornerback Nazeeh Johnson are both active for the game. Danna has missed the last three games with a pectoral injury, while Johnson missed the Week 9 matchup while in the league’s concussion protocol.
Before Tuesday’s trade deadline, the Chiefs released veteran linebacker Cole Christensen. This allowed the team to sign him to its practice squad without having to pass him through waivers, which is required for all veterans released after the trading deadline.
Christiansen has been elevated to the roster for Sunday’s game, along with wide receiver Justyn Ross. As elevated players, they will automatically be returned to the team’s practice squad after the game. Both are active for the contest.
Coming to Kansas City are the Denver Broncos, who boast a 5-4 record but are coming off perhaps their worst performance of the season. Both teams undoubtedly know how important this outing is, although neither side is 100% healthy at this stage of the year. Injuries and attrition must be accounted for, as is the case every week.
The biggest absence for the Chiefs this weekend is Smith-Schuster, who was ruled out in advance of Sunday's contest. The veteran pass catcher continues to rehab a nagging hamstring injury and with him still not having returned to practice, sitting out of Week 10 was a predictable outcome. Defensive tackle Tershawn Wharton, who suffered a knee contusion on Monday night, was ruled questionable on Friday but will play against the Broncos.
Through the decades, specifically since 1963, the Chiefs have led the historic rivalry between the two teams with 76 wins and 56 losses.
For the first 10 years, the Chiefs almost always beat the Broncos. But it wasn’t until 1973 that there was some back and forth, especially from 1976 to the mid-90s when the Broncos dominated alongside John Elway.
Elsewhere, Kansas City had every else on the injury report participate fully in the final practice of the week. That includes defensive end Mike Danna, who is set to make his return to the lineup for the first time since Week 5. He's nursed a multitude of ailments this season so if he's presumably back to full strength, it should be a big-time boost for the Chiefs.
Elsewhere, there aren't any major surprises on Kansas City's inactives list. Players like Hanson, Driskell and Tuipulotu appear on it every week, and Edwards-Helaire has done the same since being activated to the roster from the non-football illness list. With Joshua Uche in the fold at defensive end and Danna back, Thomas is the odd man out on Sunday.
Heim came five hours from Hoxie, Kansas for the Chiefs-Broncos divisional rivalry game.


The transformation of the background-color in the background

Hello. I have the following SASS code:
a
{
	background-color: rgba(0, 0, 0, 0.5);
	background-image: url("https://example.org/pic.png");
	background-repeat: no-repeat;
	background-position: center center;

	&:hover
	{
		background-color: $var;
	}
}

After use clean-css I get
a{background:url("https://example.org/pic.png") no-repeat center center rgba(0,0,0,.5)}
a:hover{background:#2ecc71}

As you can imagine the picture thus erased. I can do something with this?

Could you tell me why picture is erased? Do you mean rgba gets merged into background and it's broken in IE<9?

I want to at hover-effect change only the color of the background, so use design background-color. As a consequence of optimization "-color" cut off, and instead of a picture of color + I get a background consisting of color.
Maybe it's just a bad practice and I should write?
a
{
    background-color: rgba(0, 0, 0, 0.5);
    background-image: url("https://example.org/pic.png");
    background-repeat: no-repeat;
    background-position: center center;

    &:hover
    {
        background: $var url("https://example.org/pic.png") no-repeat center center;
    }
}

Nah, I don't see the reason it doesn't work.
This is the output I'm getting:
a{background-color:rgba(0,0,0,.5);background-image:url(https://example.org/pic.png);background-repeat:no-repeat;background-position:center center}
a:hover{background-color:#2ecc71}

Any ideas why yours is different? Which version of clean-css do you use?

Please reopen if needed.


Doujinku: update domain, add override URL setting

Closes #4679
Checklist:

[x] Updated extVersionCode value in build.gradle for individual extensions
[x] Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
[x] Referenced all related issues in the PR body (e.g. "Closes #xyz")
[x] Added the isNsfw = true flag in build.gradle when appropriate
[x] Have not changed source names
[x] Have explicitly kept the id if a source's name or language were changed
[x] Have tested the modifications by compiling and running the extension through Android Studio
[x] Have removed web_hi_res_512.png when adding a new extension

Since the says to bookmark doujinku.link I'd say yes, it's required.


Wii U Wii Virtual Console Games Will Not Appear on Digital Games List.

Hello. I downloaded this tool earlier today to dump my digital copy of Kirby's Return to Dreamland so I could play romhacks on an emulator, but when I entered the Dump Digital Games Menu, it, along with Rhythm Heaven Fever, my only other Wii Virtual Console game didn't appear. I am on version 5.5.4 of the Wii U Menu, with CBHC, and on version 2.1.3 of Dumpling. I have tried rebooting the console and deleting other applications to see if it caused them to appear to no avail. Thank you for taking the time to read this issue.

A very late response, but I was eventually planning to introduce Wii dumping support in a later update. Besides getting it to dump it in it's original state (afaik it requires some extra steps), I'd really like it if I could have it also extract the .iso (optionally) so that you could just use it with Dolphin directly. Hence why it's missing at the moment, if anyone is reading this.

I’d love if this could get implemented too. The only other way is to dump a full NAND and extract from there, or use DumpsterU (which is a Windows program to extract them from a hard drive).

How did you extract it from the full NAND dump? I used Nand Dumper and dumped all 5 options onto my SD card.

Slightly irrelevant (and sorry that I haven't gotten to find a method to break the security that's around the Wii files), you can also dump your online files and download them through Cemu's Download Manager. It's described in this guide: https://cemu.cfw.guide/dumping-games.html?tab=digital-titles, and after it has installed you should be able to right-click the game in Cemu's game list and open the game directory to be able to see those files. It uses the same eshop functionality that also allows you to make eshop purchases on.

With the latest release it's finally possible to dump Wii games (albeit in it's raw format aka .nfs files so you'll have to use nfs2iso2nfs to use them with Dolphin and such)! Glad to finally support it though. If you ever get to use it, feel free to let me know if there's any further problems.

Unfortunately the release had some serious bugs with disc dumping so I've redacted it until I am back from my holidays. Should be out in a week or two though.

Hey thanks for following up and taking the time to address the issue! No worries, enjoy your holidays!

Just released 2.4.0b which fixed the issues with the redacted release. Lemme know if you stumble upon any issues if you do happen to try it out.

Working great on my end now! Your work is super appreciated, and I really can't overstate that. Especially with the shop going down within a year. It's people like you that help make game preservation a reality.


Zeitwerk::NameError (RicardosCoffeeMaker)

This may be one of the most bizarre bugs I've ever encountered ...
When trying to run a Rails-app in production, I get the following error:

expected file /Users/andreas/.asdf/installs/ruby/3.3.0/lib/ruby/gems/3.3.0/gems/langchainrb-0.10.1/lib/langchain/tool/ricardos_coffee_maker/ricardos_coffee_maker.rb to define constant Langchain::Tool::RicardosCoffeeMaker::RicardosCoffeeMaker, but didn't

Can be quickly reproduced by running rails zeitwerk:check.
Rails: <IP_ADDRESS>
Ruby: 3.3.0
Langchainrb: 0.10.1
I can't find anything in this repo about RicardosCoffeeMaker, but when downloading the gem from rubygems.org, unpacking with gem unpack, there is indeed an empty ruby-file (ricardos_coffee_maker.rb) and JSON-file (ricardos_coffee_maker.json). This is not the case for version 0.10.0.
☕🤔

@andreaslillebo I'll yank out 0.10.1 and re-publish right now.


Show facilities on select facility page

On the facility page
User should be able to view all facilities
User should be able to select facilities

Old UI, not needed anymore


problem to install

I'm trying to create a personal blog with hugo but I can not, I tried to follow the footsteps of http://gohugo.io/tutorials/github-pages-blog/, but I'm enfretando a problem, my page sk9g3.github.com only 404 displays the message, someone could tell me where I am going wrong, noting that I am not able to do the steps "git submodule add<EMAIL_ADDRESS> /  .github.io.git public Almost done: add the deploy.sh script to help you (and make it executable: chmod + x deploy.sh), "and I'm using Windows 8 operating system

Questions are best handled at http://discuss.gohugo.io/


Cases files are super rigorous to work with

It's so hard to read the unit tests. I'm opening one and need to tangle my way down on so many files without proper IDE support.
val path = Case.UnnecessaryAbstractClassPositive.path()
val findings = subject.lint(path)

I can click on UnnecessaryAbstractClassPositive which is fine. Then I'm seeing okay I need to go there /cases/UnnecessaryAbstractClassPositive.kt. This I can't click with the IDE and need to manually go down.
To make things worse there are two UnnecessaryAbstractClassPositive.kt classes.
./detekt-rules/src/test/resources/cases/UnnecessaryAbstractClassPositive.kt
./detekt-rules/build/resources/test/cases/UnnecessaryAbstractClassPositive.kt

Luckily they are the same though. By the time I'm at the case file I've already lost what I wanted to look up.
Even worse is the fact that a single unit test often checks everything. Some are split up between Positive and Negative although it does not make much of a difference.
Some of the Postive files then help themselves with comments like // violation: no abstract members. I don't know whether I can rely on them or not since sometimes they are present sometimes not and I would not expect them to be updated when tweaking a rule. Those things slip understandably in PR reviews.
What I propose instead is to have everything in one file and only one violation being tested at a time. With Android Lint this looks like this:
lint()
    .files(xml("res/layout/ids.xml", """
      <TextView
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:paddingTop="16dp"
          android:paddingBottom="16dp"
          android:paddingStart="16dp"
          android:paddingEnd="16dp"/>""").indented())
    .issues(ISSUE_SUPERFLUOUS_PADDING_DECLARATION)
    .run()
    .expect("""
      |res/layout/ids.xml:1: Warning: Should be using padding instead. [SuperfluousPaddingDeclaration]
      |<TextView
      |^
      |0 errors, 1 warnings""".trimMargin())

or
lint()
    .files(xml("res/layout/ids.xml", """
      <TextView
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:paddingTop="8dp"
          android:paddingBottom="16dp"
          android:paddingStart="16dp"
          android:paddingEnd="16dp"/>""").indented())
    .issues(ISSUE_SUPERFLUOUS_PADDING_DECLARATION)
    .run()
    .expectClean()

It's a bit more verbose and we probably don't need a full testing support like there is in Lint. However, it's very clear why and where things are failing and you have everything inside your Junit4 @Test method or in your it when using Spek.
Bonus points are:

That we can probably find a way to test out where exactly it's being reported (either by using ^ or ~~~~~~ for longer flags.
We can also assert our error messages. We had a lot of typos there in the past.
Tests get decoupled and we can give them better descriptions
It's easier for everyone to read the tests and adjust it for future changes
Proper IDE support

Also for MaxLineLength there are two files. One being the case and the other being the actual rule where it's implemented. This is confusing too.

There has been a discussion in another issue about this. I agree that the next steps should be to test exactly 1 violation in 1 test case. Moving the test cases into a separate .kt file was IMHO the right decision, because there were syntactical and semantic issues with test code. (e.g. code was invalid Kotlin code and thus not compiling at all). Splitting the test code in positive and negative cases was necessary to prevent flagging valid code while still reporting the right number of violations. After testing just 1 thing this does no longer apply.
I don't like to have all test code contained in Kotlin strings. Kotlin's String capabilities are good, but do not prevent the developer from writing invalid source code, which I think is the biggest disadvantage with this approach.
As I see it there is room for improvement regarding test descriptions. Your approach would improve that for sure.

Can't we use the @LANGUAGE("kotlin") annotation construct? That should highlight Kotlin code.

Of course. However, this only provides syntax highlighting in IntelliJ only. The code should be compiled by the Kotlin compiler and verified. In Java this is possible with the Java Compiler API


Incorrect time series cases for Alameda County from July 7 to August 2+

timeseries-byLocation.json is reporting incorrect cumulative case totals for Alameda County, California. The case total dropped from 6,887 on July 6 to just 6 on July 7, slowly rebounding to 11 by August 2. That’s far less than the number of deaths. In reality, Alameda County is reporting 11,524 cases total, including 402 in Berkeley, as of August 2.
{
      "2020-07-06": {
        "cases": 6887,
        "deaths": 140,
        "growthFactor": 1
      },
      "2020-07-07": {
        "cases": 6,
        "deaths": 140,
        "growthFactor": 0
      },
      "2020-07-08": {
        "cases": 7,
        "deaths": 142,
        "growthFactor": 1.17
      },
      "2020-07-09": {
        "cases": 7,
        "deaths": 146,
        "growthFactor": 1
      },
      "2020-07-10": {
        "cases": 7,
        "deaths": 147,
        "growthFactor": 1
      },
      "2020-07-11": {
        "cases": 7,
        "deaths": 148,
        "growthFactor": 1
      },
      "2020-07-12": {
        "cases": 7,
        "deaths": 148,
        "growthFactor": 1
      },
      "2020-07-13": {
        "cases": 7,
        "deaths": 148,
        "growthFactor": 1
      },
      "2020-07-14": {
        "cases": 8,
        "deaths": 152,
        "growthFactor": 1.14
      },
      "2020-07-15": {
        "cases": 8,
        "deaths": 154,
        "growthFactor": 1
      },
      "2020-07-16": {
        "cases": 8,
        "deaths": 154,
        "growthFactor": 1
      },
      "2020-07-17": {
        "cases": 8,
        "deaths": 161,
        "growthFactor": 1
      },
      "2020-07-18": {
        "cases": 9,
        "deaths": 162,
        "growthFactor": 1.13
      },
      "2020-07-19": {
        "cases": 9,
        "deaths": 162,
        "growthFactor": 1
      },
      "2020-07-20": {
        "cases": 9,
        "deaths": 162,
        "growthFactor": 1
      },
      "2020-07-21": {
        "cases": 9,
        "deaths": 167,
        "growthFactor": 1
      },
      "2020-07-22": {
        "cases": 9,
        "deaths": 171,
        "growthFactor": 1
      },
      "2020-07-23": {
        "cases": 9,
        "deaths": 173,
        "growthFactor": 1
      },
      "2020-07-24": {
        "cases": 10,
        "deaths": 178,
        "growthFactor": 1.11
      },
      "2020-07-25": {
        "cases": 10,
        "deaths": 178,
        "growthFactor": 1
      },
      "2020-07-26": {
        "cases": 10,
        "deaths": 178,
        "growthFactor": 1
      },
      "2020-07-27": {
        "cases": 10,
        "deaths": 178,
        "growthFactor": 1
      },
      "2020-07-28": {
        "cases": 10,
        "deaths": 181,
        "growthFactor": 1
      },
      "2020-07-29": {
        "cases": 10,
        "deaths": 181,
        "growthFactor": 1
      },
      "2020-07-30": {
        "cases": 11,
        "deaths": 182,
        "growthFactor": 1.1
      },
      "2020-07-31": {
        "cases": 11,
        "deaths": 182,
        "growthFactor": 1
      },
      "2020-08-01": {
        "cases": 11,
        "deaths": 189,
        "growthFactor": 1
      },
      "2020-08-02": {
        "cases": 11,
        "deaths": 189,
        "growthFactor": 1
      }
}

#371 should fix this issue going forward, but I didn’t address the bad data that’s already in the cache.


Add ctzn-code custom element

Proper code block for bios and extended text

<ctzn-code> custom element
No syntax highlighting
2-char wide line numbers gutter
Currently using only inline CSS. Link imports are really slow.

Great PR! Going to make some tweaks and deploy.


Replace CHIP Security Monitor Memory Manager within CHIPSecuityManage…

This is part of SecurityManager cleanup which replace CHIP Security Monitor Memory Manager within CHIPSecuityManager with the on-system security memory manager.
Those touched logic will get further cleaned up as we migrate SecurityMamanger to  SCTT defined security protocol. And this change is just to get current Security Manager linked.
fixes #2098

The comment says 'fixes 2098' however that is 'Remove echo profile'. Should it be another issue instead?

The comment says 'fixes 2098' however that is 'Remove echo profile'. Should it be another issue instead?

Thanks, it should be part of 2096.


WIP - Nvidia update and Flatcar linux migration

Now that CoreOS is EOL, it might make sense to just support Flatcar linux, since it's a maintained fork of CoreOS, with an in-place migration path.
This is a work-in-progress PR. I'm still testing all the changes required to get modulus working on flatcar, but I thought I'd open this PR to gauge your interest.

Amazing :)) yes, I saw two days ago that CI began failing permanently :( so let's migrate to flatcar. I'm happy to merge as soon as we can get everything green

Hey @squat
I looked at the failures in semaphoreci, and i noticed that theres references to core-os.net above in the setup commands.
My PR has no references that URL any longer, is there a separate set of setup commands that you need to update on the semaphore side?

Hey @AnalogJ I just fixed the CI config that referenced that URL and updated it to release.$MODULUS_GROUP.flatcar-linux.net.
Now the CI is failing here:
gpg: no valid OpenPGP data found.
gpg: the signature could not be verified.
Please remember that the signature file (.sig or .asc)
should be the first file given on the command line.

bzip2: Compressed file ends unexpectedly;
	perhaps it is corrupted?  *Possible* reason follows.
bzip2: Inappropriate ioctl for device
	Input file = (stdin), output file = (stdout)

It is possible that the compressed file(s) have become corrupted.
You can use the -tvv option to test integrity of such files.

You can use the `bzip2recover' program to attempt to recover
data from undamaged sections of corrupted files.

I think I saw that exact error myself when I was migrating to Flatcar.
https://github.com/squat/modulus/pull/14/files#diff-06efba23b1f3a9b846a25c6b49f30348R121
basically you want to add -L so that curl follows redirects.

Hm, add it where? It's the CI for this PR that's failing; do we still need to iron out some issues with this commit?

oh, I see what you mean. its failing during the docker run now.
Looks like it might be an issue with my PR. let me figure it out.

Hey @squat, I finally figured out the issue.
I decided not to change the MODULUS_* prefixed environmental variables, because i was worried about breaking other people's environments.
In your CI, you have renamed the MODULUS_COREOS_RELEASE_VERSION environmental variable to MODULUS_FLATCAR_RELEASE_VERSION which is why the curl command is failing.
If you change the env variable back, the CI should pass.

Looks like this is getting closer, CI is failing in resizing the developer container due to:
resize2fs 1.44.5 (15-Dec-2018)
Resizing the filesystem on flatcar_developer_container.bin to 1048576 (4k) blocks.
resize2fs: Can't read a block bitmap while trying to resize flatcar_developer_container.bin
Please run 'e2fsck -fy flatcar_developer_container.bin' to fix the filesystem
after the aborted resize operation.

Having this working is my last blocker before migrating to Flatcar so was thinking of taking a look soon -- I'm a bit unsure of where to start, where are the CI scripts that are causing the error? I can't seem to find them in the repo.
Also, what was the reason for reverting using Flatcar linux to confirm changes in CI..

Have had a go at picking this up: https://github.com/squat/modulus/pull/17
Waiting on the Semaphore rate limiting to expire atm...


feat: Add tw style

Add Thoughtworks style, based on GitHub style, change the code highlight color

nice!!!


Improve contributing docs/devcontainer

This PR:

Moves the contributing docs from the readme to the mkdocs built docs
Adds docs on bootstrapping an environment using tox
Adds docs on building frontend assets and docs
Improves the devcontainer configuration and adds references to it in the docs

Rebased on main, so now the changes are much smaller. LGTM so merging


ci: codespell

Following up @cirulls 's initial implementation, this pull requests adds codespell to Azure Pipelines (Windows), AppVeyor and Travis CI.

8ce0500bdfa836a427689f6b461595c9d3323c84 merges @cirulls 's branch into the current master
a68a1a5625ce597e4c82ac4e4c93e23f6385a333 and bebf40f00c9ceef1cff1075eccb8b530fae45956 add codespell to Travis CI
eb2d9d38deb2d41880d3ad93af3ef691b5002535 adds codespell to Azure Pipelines (Windows) and AppVeyor

The test is added before the other tests so as not to spell-check residual files if any.
The newly added test detects 3 misspellings on each CI (Azure, AppVeyor, Travis), which demonstrates the test failure.
./test/README:4: autmatically  ==> automatically
./test/schut-to-xspec-012.sch:5: superflous  ==> superfluous
./src/compiler/generate-query-tests.xsl:32: defaut  ==> default

de2252dafd9b306b9ff37f782c02cea1f5c5978c fixes the said 3 misspellings

This pull request found another misspelling (fixed in a8e2cd9ec76916cbcb716350faadd9575c7460e5), which proves its usefulness. I'm merging this, @cirulls


added empty BiotypeQC.nf script to modules

I will add my module to this yet still empty script

@ausserh , I implemented a demo process that consumes the samplesheet and gene expression matrix.
You can add the BioQC process to the main workflow in the same way and it should get tested automatically using these test data.
https://github.com/icbi-lab/nf-deseq2/blob/19ccb77a88c184aba2b322b39cad0474ab7465b3/main.nf#L7-L15


Add support for spark-cassandra-stress

This PR will add support for running spark-cassandra-stress if dse is selected in the product dropdown.

For spark-cassandra-stress, the user needs to specify one particular node. On this node we will then download / build / execute spark-cassandra-stress.

@EnigmaCurry / @aboudreault can you guys review please?  Also is benchmark.py the right place where the spark download / build / execute code should be living?

It would be helpful to add a hook for selecting which branch of spark-cassandra-stress to build/run. This would make it easier to update and add patches to the tool during testing. Default could be master.

I would also turn on spark-specific metric collection which will grab all the codehale metrics exposed by Spark. Setting this up can be done by copying dse/resources/spark/conf/metrics.properties.template to dse/resources/spark/conf/metrics.properties and enabling the appropriate sink. In the past I've used the CsvSinks, but we may be able to leverage the GraphiteSink, some exploration may be needed to get that working. In the case of spark streaming, it would be nice to be able to grab snapshots of the metrics reported in the Spark Streaming UI tab, but we may be able to rebuild these views from the raw data collected through the sinks.
Link to spark monitoring: http://spark.apache.org/docs/latest/monitoring.html

I would also recommend enabling event logging incase an error occurs we can access the Spark UI info of previously failed jobs. To do this we add the following to spark-defaults.conf
spark.eventLog.enabled  true
spark.eventLog.dir /path/to/existingEventLogDir

@rocco408 thanks for the feedback. Probably worth implementing all those suggestions in separate PRs

LGTM, only a minor comment and need a rebase.

@aboudreault rebased and resolved the merge conflict.
@rocco408 I will keep your suggestions on my plate and will come back to you once I find some time to implement them


Allow for import of Puprle Sorcerer character sheet with no weapons

This PR allows for 0-level, plain-text character sheets generated by Purple Sorcerer with no weapons to be imported.

Thank you! I am incorporating this into https://github.com/foundryvtt-dcc/dcc/pull/387 as part of some other updates!


Can't fade in Route(s) with react-inline-transition-group ( React-Router )

I’m using react-inline-transition-group for, among other things, react-router transitions.  I’m using these settings & styles:
      <Transition
              childrenBaseStyle={this.styles['before']}
              childrenEnterStyle={this.styles['enter']}
              childrenAppearStyle={this.styles['appear']}
              childrenLeaveStyle={this.styles['leave']}
                                                                            >
             {React.cloneElement(this.props.children, {
                    key: this.props.location.pathname
              })}
     </Transition>

      this.styles['before']      = {opacity: '0'}
      this.styles['enter']        = {opacity: '1', transition: 'opacity 400ms'}
      this.styles['appear']     = {opacity: '1', transition: 'opacity 400ms'}
      this.styles['leave']        = {opacity: '0', transition: 'opacity 400ms'}

When transitioning routes, the new route appears (without fade in) while the old route fades out properly.
My question is: How can I fade in the new route rather than it appearing suddenly.   In other words, I want the new route to fade in while, simultaneously, the old route fades out.

Hi @artfree , thanks for reporting. This was actually a problem with react-inline-transition-group and I fixed it in version 0.2.0.

Sorry to post on such an old issue, but it would be really great to have a complete working example of how to use this plugin with react-router.
Can either of you provide this? @felipethome @artfree

Hi @richardgorman, can you open this as a separate issue? This way is easier for me to remember.

Hi richardgorman.  Sorry, but I don't have any examples.  felipethome is, I believe, the author, and would best be able to help you.  (I don't have any alternate solutions either.  I've moved away from React, entirely, in favor of Vue.js).
Good luck.

Thanks for the feedback. @felipethome I have opened a new issue, #7


 But keep, the game over, so it can be used in future. 👍

don't you think we should restructure the score system instead of removing it entirely?


Update error page components to make them reusable

Title: enhancement : Update error page components to make them reusable
Description: closes #1657
This PR updates the error component to be more uniform and reusable. Before error pages looked very different from one another depending on the type of error. This PR adds some styling and consistency to the displayed errors:
404 error:

500 error:

403 error:

I don't think it's a good idea to have curriculum, repo, learn, community buttons on error pages because it is redundant since the navbar has all those items already.

Why is there a new ErrorCard component created, instead of updating the Error component?


Commented out code?

Hi,
I've been testing this script and noticed that Line 78 (in the downgrade end-user script) appears to have been commented out.  Is this 'by design' (a safety feature maybe?).  As once I uncommented this line the script ran successfully on my test macOS device and downgraded the end-user to a standard one during an ADE (via Intune).
Many thanks for making the script available, it has helped resolve an issue for a customer of mine.

This is by design so avoid accidental damage to your environment.


INF-0002 Specify diagnostics for resource binding, specifically on resource types and binding prefixes.

This PR adds a specification for what diagnostics the compiler should emit for each possible case of the binding of a resource. The goal of the PR is to prevent any ambiguity about what errors will be emitted in any case where a resource is bound. This excludes templated types in resources, and is solely focused on the outer type and the binding prefix. That is, given
RWBuffer<T> : register(x3)
The spec specifies what diagnostic gets emitted here, but doesn't address the potential for the invalid type of T. The spec focuses on the binding prefix that's used, and the resource type "RWBuffer".

Note that INF-0002 is already taken :)

A note: it's pretty hard to see what got changed because the rename happened in the same commit as the other changes that were made.  Next time, I suggest you do the rename in a single commit and then the other edits in their own commits.

Impacted Project(s): (LLVM)

While the proposal is for LLVM, it seems like there will be some minimal behavioral differences between dxc and clang-dxc`. Could you clarify  what  if any differences are possible?
While most the changes for both will be in Sema, it wasn't clear if  dxc is also using register allocation validation for err_hlsl_conflicting_register_annotations.  Could yo clarify if the register allocation validation exist today in dxc and when the plan would be to add it to clang-dxc?


Setup Versioning Process

Summary
Define how we associated version of software to the data product and how software versions will work (ie. major and minor releases)
Parent Requirement

SOC-SDC-L4-62
Configuration Management
The SDC shall maintain a version controlled Code Management Repository of the data processing software.
Requirement
Necessary to perform science processsing and analysis.
SOC-L3-91
Inspection

Tasks

[ ] Define how we associated version of software to the data product
[ ] Define how we version software

I can take the lead on this one.


Add ' to trigger_characters, allowing more direct lifetime completions

Fixes having to type a character after ' to complete lifetimes and labels

Does this make typing char literals more annoying?

It shouldn't as we don't do any completions on them and we only show lifetime/label completion when they make sense. So lifetime completions are never relevant where a char literal can be typed, and for labels you could in theory want to break out with a char literal but even there it doesn't make anything more annoying as it doesn't change typing behaviour, it only shows possible labels.

Ah, okay. I thought it might make Code show an empty completion popup or something like that.

Nope, it doesn't.
bors r+

changelog skip


Camera settings

How do I set camera properties (position, view target etc) in a scene? Where is this documented?
Edit: The "Moire" example shows how to set the position of the camera, the "lookat" target coordinates and how to orbit the camera around the target.

These manipulation functions are currently implemented:
https://github.com/JuliaPlots/AbstractPlotting.jl/blob/master/src/camera/camera3d.jl#L151
https://github.com/JuliaPlots/AbstractPlotting.jl/blob/master/src/camera/camera3d.jl#L203
https://github.com/JuliaPlots/AbstractPlotting.jl/blob/master/src/camera/camera3d.jl#L126
Documentation PR more than welcome :)


Stop returns undefined when using useSpring with callback function

🐛 Bug Report
Undefined is being returned for stop - the third optional return, when a callback function is passed into useSpring
To Reproduce
I have the following:
 const [motion, setMotion, stopMotion] = useSpring(() => ({
   transform: 'scaleX(0)',
   config: { ...config.default, duration: 180000 }
 }));

with the jsx:
<Track>
  <animated.div style={motion} />
</Track>

Expected behavior
I expect that setMotion and stopMotion will be functions I can use to start and end my animations and indeed setMotion works as expected when called as:
setMotion({ transform: 'scaleX(1)' });

However stopMotion keeps returning undefined.
(A clear and concise description of what you expected to happen.)
Link to repro (highly encouraged)
Here's a reproduced demo
CodeSandbox demo
Environment

react-spring v8.0.4
react v16.8.0

I noticed from this other demo that in version 8.0.19 I don't get undefined but the stop still doesn't stop my animation

This is probably fixed in #632
You can check by following this guide, except do this when cloning react-spring:
git clone https://github.com/react-spring/react-spring -b v9

Fixed by #632 confirmed 🎉
Try out v9.0.0-beta like this: yarn add react-spring@next
Let us know if you hit any issues here: #642

Thanks! I'll go ahead and close this now


Need additional disk and a NFS server

To reproduce storage related issues
https://github.com/kubernetes/kubernetes/tree/master/test/images/volume/nfs
The disk can be created using the Cockpit Console

$ cat /etc/exports
/mnt *(rw,no_root_squash)


Investigating the half-loading issue

There is a bug currently where your GrassClipper may look something like this:

If you encountering this, I do not have a fix, so I need you to tell me in a response to this, as much about your PC as possible. Things like, but not limited to:

Windows version
CPU
GrassClipper version
If you have tried running in Chrome or Browser mode (check white screen fix section of README)
How long since you updated Windows
What current Windows build you're on
Attach your config.neustorage from the .storage folder

If you have the means to do so, try it in a virtual machine as well, and let me know if it changes the result.
What YOU can try:

Run as Admin
Run with Windows 8 compatibility mode

hi! grasscutter opened exactly like in the picture shown on the post, i'm using windows on bootcamp if this information helps

just wanted to say that I was having this problem and installing WebView2 fixed it

I opened it with using shortcut, if i just start without shortcut it opens for a few seconds and closes

I accidentally solved the problem by noticing that the folder path goes through onedrive. Then I just moved the folder to the C drive and it worked

The browser version worked, but I can't select the game folder. The normal exe just closes. I tried to compile a test build of this program and I got this error. (although I downloaded all the dependencies)

Device name	DESKTOP-E60LNO2
Processor	Intel(R) Core(TM) i9-10900KF CPU @ 3.70GHz   3.70 GHz
Installed RAM	16.0 GB (15.9 GB usable)
Device ID	AC9434EC-D4E4-4481-8DEB-F5657346F8F3
Product ID	00326-10000-00000-AA294
System type	64-bit operating system, x64-based processor
Pen and touch	No pen or touch input is available for this display
Edition	Windows 10 Home
Version	21H2
Installed on	27/09/2021
OS build	19044.1706
Experience	Windows Feature Experience Pack 120.2212.4170.0

this is how it looks like, booting it from browser. doesnt open when im booting it from the .exe original file

Hiya,
Windows 10,
AMD Ryzen 5 5600x,
v0.9.10.
Been a while, I can't remember when I last updated,
19044.1706
Running in administrator mode DID NOT work for me,
however running it in windows 8 compatibility mode DID.
config.zip

Using the lastest grassclipper version (v0.9.10)
Running in administrator gave me the white screen. Webview2 is installed. Windows 8 compatibility did not work.


feat: update Vercel imports

Description (required)
This PR updates all the @astrojs/vercel/serverless and @astrojs/vercel/static entrypoints to use the new upcoming one: @astrojs/vercel.
I also removed the ### Choosing a target paragraph because there's no need anymore

For Astro version: 5. See astro PR #424

No breaking changes are involved between astro and @astrojs/vercel, so there's no need to update that section of the website. The entrypoints @astrojs/vercel/serverless and @astrojs/vercel/static are deprecated but still valid.

Sure, but that section talks about Astro dependencies. The fact that we talk about @astrojs/mdx is because there was some code in core that was required by @astrojs/mdx. It's essentially an internal architecture mistake that we fixed in v5.
In this PR of mine, there's no correlation inside Astro core and the vercel adapter

ok, then maybe it should be one of the breaking change items in the below section?

But there aren't breaking changes 😅 @astrojs/vercel/serverless still works. The breaking changes of the vercel adapter (and the others) are others, mostly caused by Astro v5. This isn't one of them.

Yes, you're right! Not a breaking change since the deprecated code will still work. But it still means that there could be code that people have in their projects that is different from what's shown in docs with no mention of the way things used to be.
So I'll think about whether there's a good way to mention this in the upgrade guide, but that doesn't block this PR!


Create RecalculateDates worker

Context

Changes proposed in this pull request

Guidance to review

Link to Trello card

Things to check

[ ] This code doesn't rely on migrations in the same Pull Request
[ ] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[ ] API release notes have been updated if necessary
[ ] New environment variables have been added to the Azure config

Agree @stevehook

Tried it out on Heroku:

irb(main):001:0> BusinessTime::Config.holidays << Date.new(2020, 3, 23)
=> #<SortedSet: {...}>
irb(main):002:0> RecalculateDates.new.perform
=> nil
irb(main):003:0>

That is... completely wrong.

Should we add auditing to this?

Should we add auditing to this? e.g. add something to the audit log when we change something with this

Maybe set audit name to something situation-related, e.g. 'COVID-19 grace period'?

Pushed 2 more commits:

Audit log name fix
Make it a no-op if ran multiple times with the same dates

I am 90% sure the test in this branch produces side effects and and will lead to be rspec ./spec/mailers/candidate_mailer_spec.rb[1:4:1:1:4] becoming flakey but am merging anyway.


Add info about Tiploc into the documentation

See: https://github.com/ONSdigital/SDG_11.2.1/issues/354#issuecomment-1373761231

I have put Tiploc info into the google doc


Pre-Loader Added #289

Pre-loader added successfully and working perfectly fine Closes #289

@Shubham185y Add a Readme.md file. Also, link your issue with this PR like this: Closes #Issue Number.

where should i add the readme file because i have made the changes in the  main index.html and style.css and created index.js where one readme.md already exist

@Shubham185y Add some screen recording or screenshot of your project here in the chat.

https://user-images.githubusercontent.com/100077254/212980009-95d6dfff-ca73-45bc-b798-5edcf3c3294f.mp4

Not working properly

just synced it now working properly

Preloader is already there
Then why are you adding it again


[Crash Server] Trying to get permissions of closed player" (EXCEPTION) in "src/pocketmine/Player" at line 623

@HiddenMotives
@DarkWav
server crash when a banned ip player try to connect to the server with a new name account
62.XXX.107.16 is a banned ip in the config banned.yml  =)  62.XXX.107.16/32
62.XXX.107.16 is not a VPN IP
theo666 is the new name of the banned player
player try to connect 2 times at same time
https://poggit.pmmp.io/r/43245/VPNGuard_dev-16.phar
https://jenkins.pmmp.io/job/PocketMine-MP/1642/artifact/PocketMine-MP.phar
2018-12-02 [09:30:33] [Server thread/NOTICE]: Player data not found for "theo666", creating new profile
2018-12-02 [09:30:34] [Server thread/INFO]: theo666[/62.XXX.107.166:59391] logged in with entity id 47765 at (lobby, 0, 6, 0)
2018-12-02 [09:30:36] [Server thread/INFO]: [VPNGuard] Player theo666 has connected with the IP: 62.XXX.107.166
2018-12-02 [09:30:36] [Server thread/INFO]: [09:30:36] theo666 [-]
2018-12-02 [09:30:36] [Server thread/INFO]: theo666[/62.XXX.107.166:59391] logged out due to Votre sous-réseau IP est banni !
2018-12-02 [09:30:36] [Server thread/INFO]: [VPNGuard] theo666 has been disconnected for being in the subnet 62.XXX.107.166/32 which is banned.
2018-12-02 [09:30:36] [Server thread/INFO]: [09:30:36] theo666 [+]
2018-12-02 [09:30:36] [Server thread/CRITICAL]: InvalidStateException: "Trying to get permissions of closed player" (EXCEPTION) in "src/pocketmine/Player" at line 623
2018-12-02 [09:30:36] [Server thread/DEBUG]: #0 src/pocketmine/Player(1057): pocketmine\Player->hasPermission(string pocketmine.broadcast.admin)
2018-12-02 [09:30:36] [Server thread/DEBUG]: #1 src/pocketmine/Player(985): pocketmine\Player->doFirstSpawn()
2018-12-02 [09:30:36] [Server thread/DEBUG]: #2 src/pocketmine/level/Level(2464): pocketmine\Player->sendChunk(integer -2, integer 3, pocketmine\network\mcpe\protocol\BatchPacket object)
2018-12-02 [09:30:36] [Server thread/DEBUG]: #3 src/pocketmine/level/Level(2488): pocketmine\level\Level->sendChunkFromCache(integer -2, integer 3)
2018-12-02 [09:30:36] [Server thread/DEBUG]: #4 src/pocketmine/level/Level(792): pocketmine\level\Level->processChunkRequest()
2018-12-02 [09:30:36] [Server thread/DEBUG]: #5 src/pocketmine/Server(2370): pocketmine\level\Level->doTick(integer 248782)
2018-12-02 [09:30:36] [Server thread/DEBUG]: #6 src/pocketmine/Server(2519): pocketmine\Server->checkTickUpdates(integer 248782, double<PHONE_NUMBER>.5459)
2018-12-02 [09:30:36] [Server thread/DEBUG]: #7 src/pocketmine/Server(2265): pocketmine\Server->tick()
2018-12-02 [09:30:36] [Server thread/DEBUG]: #8 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
2018-12-02 [09:30:36] [Server thread/DEBUG]: #9 src/pocketmine/Server(1701): pocketmine\Server->start()
2018-12-02 [09:30:36] [Server thread/DEBUG]: #10 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/myserver/, string /home/myserver/plugins/)
2018-12-02 [09:30:36] [Server thread/DEBUG]: #11 /home/myserver/PocketMine-MP.phar(1): require(string phar:///home/myserver/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
2018-12-02 [09:30:36] [Server thread/EMERGENCY]: An unrecoverable error has occurred and the server has crashed. Creating a crash dump
2018-12-02 [09:30:36] [Server thread/EMERGENCY]: Please upload the "/home/myserver/crashdumps/Sun_Dec_2-09.30.36-CET_2018.log" file to the Crash Archive and submit the link to the Bug Reporting page. Give as much info as you can.

PocketMine-MP Crash Dump Sun Dec 2 09:30:36 CET 2018

Error: Trying to get permissions of closed player
File: src/pocketmine/Player
Line: 623
Type: InvalidStateException

Code:
[614] 	/**
[615] 	 * @param permission\Permission|string $name
[616] 	 *
[617] 	 * @return bool
[618] 	 *
[619] 	 * @throws \InvalidStateException if the player is closed
[620] 	 */
[621] 	public function hasPermission($name) : bool{
[622] 		if($this->closed){
[623] 			throw new \InvalidStateException("Trying to get permissions of closed player");
[624] 		}
[625] 		return $this->perm->hasPermission($name);
[626] 	}
[627]
[628] 	/**
[629] 	 * @param Plugin $plugin
[630] 	 * @param string $name
[631] 	 * @param bool   $value
[632] 	 *
[633] 	 * @return PermissionAttachment

Backtrace:
#0 src/pocketmine/Player(1057): pocketmine\Player->hasPermission(string pocketmine.broadcast.admin)
#1 src/pocketmine/Player(985): pocketmine\Player->doFirstSpawn()
#2 src/pocketmine/level/Level(2464): pocketmine\Player->sendChunk(integer -2, integer 3, pocketmine\network\mcpe\protocol\BatchPacket object)
#3 src/pocketmine/level/Level(2488): pocketmine\level\Level->sendChunkFromCache(integer -2, integer 3)
#4 src/pocketmine/level/Level(792): pocketmine\level\Level->processChunkRequest()
#5 src/pocketmine/Server(2370): pocketmine\level\Level->doTick(integer 248782)
#6 src/pocketmine/Server(2519): pocketmine\Server->checkTickUpdates(integer 248782, double<PHONE_NUMBER>.5459)
#7 src/pocketmine/Server(2265): pocketmine\Server->tick()
#8 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
#9 src/pocketmine/Server(1701): pocketmine\Server->start()
#10 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/gsp_1485/g3.hmserv.eu-19144/, string /home/gsp_1485/g3.hmserv.eu-19144/plugins/)
#11 /home/gsp_1485/g3.hmserv.eu-19144/PocketMine-MP.phar(1): require(string phar:///home/gsp_1485/g3.hmserv.eu-19144/PocketMine-MP.phar/src/pocketmine/PocketMine.php)

PocketMine-MP version: 3.3.2 [Protocol 291]
Git commit: 200de3fe8460d180a4fd9f5a0e0768bd3085fd50
uname -a: Linux g1 4.5.0-0.bpo.2-amd64 #1 SMP Debian 4.5.4-1~bpo8+1 (2016-05-13) x86_64
PHP Version: 7.2.9
Zend version: 3.2.0
OS : Linux, linux

another example.
same crash, same issue
2018-12-01 [13:11:21] [Server thread/INFO]: [VPNGuard] Player IComeBack1 has connected with the IP: 207.XXX.0.34
2018-12-01 [13:11:21] [Server thread/INFO]: [13:11:21] IComeBack1 [-]
2018-12-01 [13:11:21] [Server thread/INFO]: IComeBack1[/207.XXX.0.34:40081] logged out due to Votre sous-réseau IP est banni !
2018-12-01 [13:11:21] [Server thread/INFO]: [VPNGuard] IComeBack1 has been disconnected for being in the subnet 207.XXX.0.34/32 which is banned.
2018-12-01 [13:11:21] [Server thread/INFO]: [13:11:21] IComeBack1 [+]
2018-12-01 [13:11:21] [Server thread/CRITICAL]: InvalidStateException: "Trying to get permissions of closed player" (EXCEPTION) in "src/pocketmine/Player" at line 623
2018-12-01 [13:11:21] [Server thread/DEBUG]: #0 src/pocketmine/Player(1057): pocketmine\Player->hasPermission(string pocketmine.broadcast.admin)
2018-12-01 [13:11:21] [Server thread/DEBUG]: #1 src/pocketmine/Player(985): pocketmine\Player->doFirstSpawn()
2018-12-01 [13:11:21] [Server thread/DEBUG]: #2 src/pocketmine/level/Level(2464): pocketmine\Player->sendChunk(integer -2, integer 3, pocketmine\network\mcpe\protocol\BatchPacket object)
2018-12-01 [13:11:21] [Server thread/DEBUG]: #3 src/pocketmine/level/Level(2488): pocketmine\level\Level->sendChunkFromCache(integer -2, integer 3)
2018-12-01 [13:11:21] [Server thread/DEBUG]: #4 src/pocketmine/level/Level(792): pocketmine\level\Level->processChunkRequest()
2018-12-01 [13:11:21] [Server thread/DEBUG]: #5 src/pocketmine/Server(2370): pocketmine\level\Level->doTick(integer 600655)
2018-12-01 [13:11:21] [Server thread/DEBUG]: #6 src/pocketmine/Server(2519): pocketmine\Server->checkTickUpdates(integer 600655, double<PHONE_NUMBER>.5289)
2018-12-01 [13:11:21] [Server thread/DEBUG]: #7 src/pocketmine/Server(2265): pocketmine\Server->tick()
2018-12-01 [13:11:21] [Server thread/DEBUG]: #8 src/pocketmine/Server(2135): pocketmine\Server->tickProcessor()
2018-12-01 [13:11:21] [Server thread/DEBUG]: #9 src/pocketmine/Server(1701): pocketmine\Server->start()
2018-12-01 [13:11:21] [Server thread/DEBUG]: #10 src/pocketmine/PocketMine(249): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /home/myserver/, string /home/myserver/plugins/)
2018-12-01 [13:11:21] [Server thread/DEBUG]: #11 /home/myserver/PocketMine-MP.phar(1): require(string phar:///home/myserver/PocketMine-MP.phar/src/pocketmine/PocketMine.php)
2018-12-01 [13:11:21] [Server thread/EMERGENCY]: An unrecoverable error has occurred and the server has crashed. Creating a crash dump
2018-12-01 [13:11:21] [Server thread/EMERGENCY]: Please upload the "/home/myserver/crashdumps/Sat_Dec_1-13.11.21-CET_2018.log" file to the Crash Archive and submit the link to the Bug Reporting page. Give as much info as you can.

This seems to be a problem of pocketmine itself at first sight, however, I will take a look at this. Since pocketmine does not report anything usefull in the crash report, It will require a quite complicated workaround.....

I tried to address your issue in VPNGuard 1.0.7-patch1 which you can find in my repository.
If you need a version for API 4.0.0, please notify me down below.

@DarkWav
v1.0.7-patch1 works on test on my server since 1 day and no error
ok for me
thanks

OK, then I will update the version for API-4.0.0 aswell and requets the patch to be pushed upstream.

@DarkWav
thank you very much
TeraCube


Representing DPI-C imported functions

Following up on a slack conversation, we want to represent the following in our compiler backend:
import "DPI-C" function string futil_getenv (input string env_var);
string DATA;
initial begin
  DATA = futil_getenv("DATA");
  $display("DATA: %s", DATA);
  $readmemh({DATA, "/<mem_name>.out"}, <mem_name>.mem);
  ...
end
final begin
  $writememh({DATA, "/<mem_name>.out"}, <mem_name>.mem);
end

@vegaluisjose mentioned that he has an idea on how to represent the first import statement. For now, we're using the Stmt::RawStr representation.

Fixed here


Use NOMADS as a backup to FTPPRD + other minor maintainence

Sometimes FTPPRD goes down and not all the data is back-filled because it is available on NOMADS. This PR reduces the need to manually switch the base url to the NOMADS source from time to time.
I also added some convenience pnpm run commands and removed the no-longer-needed certificate chain for the GEOS source.

Sorry, found some errors with the last commit — should be ready for review now.


Add push post-publish

Codecov Report

Merging #87 (53b7b87) into main (8c89477) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #87   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           19        19
  Lines          170       170
  Branches        26        26
=========================================
  Hits           170       170

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 8c89477...53b7b87. Read the comment docs.


Mark all as read function

This PR implements the subscriptions to the button of the 'Mark All As Read' functionality.
FYI: @QilongTang @reddyashish @zeusongit @RobertGlobant20 @jesusalvino

Hi @avidit, the build is crashing because of the 'chrome' term that is used to call a Dynamo method. Is there a way to fix this?

Hi @avidit, the build is crashing because of the 'chrome' term that is used to call a Dynamo method. Is there a way to fix this?

Please add "webextensions": true under env in .eslintrc

Thank you @filipeotero Once the version here is bumped, will merge


Add authentication view and new state to application for authentication

Some of this will partially work because all 3 codebases are being updated simultaneously

Should be able to pull from master when adrians pr is complete to remove his commits from this pr

Closing to remove other commits