Enable Terminal to persist / restore instance settings

Let the user set a global setting to have the terminal re-open with whatever profiles were last open.
Thoughts:

what happens when a user has two windows open, closes one with 3 tabs, then opens a new window? Should it open the 3 tabs? Or should it start a fresh, single tabbed window?
how do we persist the last session?
Do we only persist the last tabs open when the last terminal window is closed?
Do we add a "quit terminal" option that closes all open windows, and persists all their open profiles?

Will this also restore split pane configurations?
Will this restore the current directory (CWD/PWD) of each tab (as opposed to just the configured starting directory)?

IMO:

what happens when a user has two windows open, closes one with 3 tabs, then opens a new window? Should it open the 3 tabs? Or should it start a fresh, single tabbed window?

Open a fresh window. If you later add support for window history, they could use a "Recently closed windows" menu to restore the window with the same set of tabs.

how do we persist the last session?
Do we only persist the last tabs open when the last terminal window is closed?

That would be the simplest solution probably, but it might not be ideal if the application is improperly shut down. An alternative would be to continuously track open windows, tabs, panes, and working directories as changes are made, and persist those changes immediately (or on a timer).

Do we add a "quit terminal" option that closes all open windows, and persists all their open profiles?

Firefox and Chrome have an "Exit" option, which closes all windows. When you start the application again, the windows are restored.
In general, I think that it would be great if Windows Terminal mimicked the behaviour of browsers.

I know this is just about tabs and pane arrangements, but why not restore the buffer with all the previous output strings in place?

I was thinking, if the state is stored in a human-readable format, it could also be hand-edited by users, and generated/modified by an external script or programme.
A made-up example:
{
    "version": "0.2.0",
    "state": {
        "windows": [
            {
                "maximized": false,
                "positionX": 500,
                "positionY": 200,
                "width": 1000,
                "height": 2000,
                "tabs": [
                    {
                        "title": "Project X",
                        "panes": [
                            {
                                "profile": "EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00",
                                "directory": "C:/...",
                                // position/dimensions
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

(As usual, I wish that people would move away from JSON and instead use something more suited to configuration files, like YAML.)

@mdtauk,

I know this is just about tabs and pane arrangements, but why not restore the buffer with all the previous output strings in place?

To limit the scope of the feature and get it released sooner. The format that I show above could easily be extended at a later stage.

The thing that makes me hate YAML is that the spec doesn’t support tabs.

what happens when a user has two windows open, closes one with 3 tabs, then opens a new window? Should it open the 3 tabs? Or should it start a fresh, single tabbed window?
Use the browser behavior. It works and it is familiar. Also, would be nice to detach/reatach tabs (as Chrome).

how do we persist the last session?
It would be nice to persist everything (including history) of each tab. It would be amazing to have up arrow history persisted as well. You can use all my %USERPROFILE% space for that =)

Do we only persist the last tabs open when the last terminal window is closed?
As in a browser, when a tab is closed, its state remains (so I can reopen closed tabs with Ctrl+Shift+T). This would be awesome. Perhaps some settings to limit the number of persisted sessions?

Do we add a "quit terminal" option that closes all open windows, and persists all their open profiles?
As in a browser, [X] closes all tabs (I can reopen them with Ctrl+Shift+T - it will restore entire windows if needed).

Updated title to better describe the ask, which also came-up in this Twitter thread: https://twitter.com/stanzillaz/status/1176675911275556866

Renaming it again because it really seems to pertain to saving info about specific instances of specific profiles. We can quibble about session/profile/instance later. :smile:

Still feeling this pain every time I re-open. I don't even mind it not remembering size, since I set that in my config. I just really hate it not remembering position, because on my system, every time it opens, the top-left corner is about 30px to the right/down from the last time it opened, so it shifts little by little until something resets it back to the top-left and the cycle repeats. That is endlessly annoying.
Would love even a minimal interim on window size being remembered quicker, even if this larger feature is still being worked out. Please!? :)

@getify You know you can use the initialPosition to set a launch position for the Terminal window, right?

@zadjii-msft No, I was not aware of that. Maybe it was added after the last time I had looked at the docs.
Just tried it, and with some fiddling it seems fine for now as an interim. I use a left-side taskbar, so it was a little annoying that the "X" position isn't "available desktop coordinates" but "absolute screen position". I figured out with some trial and error that 93 was the right magic number for my current setup.

I found some workaround for this, which works for me and maybe will be helpful for others.
I created cmd file with the following command:
wt.exe -p PowerShell -d "D:\Projects" ; split-pane -p PowerShell -d "D:\Projects\foo" ; split-pane -H -p PowerShell -d "D:\Projects\bar" ; -p cmd -d "D:\Projects" ; -p Ubuntu ; focus-tab -t 0
which opens the tabs and panes I need to have opened.
also in settings.json I added the position and size:
  "initialPosition": "-1760, 20",
  "initialRows": 46,
  "initialCols": 170,

with x: -1760 I open terminal on my left monitor :)

When restoring 'last position', please remember to handle which monitor (assuming more than one) the position refers to.

Do not only remember the last monitor that was used, but also remember the last position used on other monitors
When I have the Terminal open on my big monitor and disconnect my notebook, it will appear on my notebook screen, of course. Now, it would be great if Terminal remembered the last position used when it was open on my notebook screen. Then, when I would re-connect my big monitor, the Terminal should appear on my big monitor, remembering the last position on that screen.

Also remember position if opened on another virtual desktop.

Do not only remember the last monitor that was used, but also remember the last position used on other monitors.
When I have the Terminal open on my big monitor and disconnect my notebook, it will appear on my notebook screen, of course. Now, it would be great if Terminal remembered the last position used when it was open on my big monitor's and my notebook's screens. Then, when I would re-connect my big monitor, the Terminal should appear on my big monitor, at the last position on that screen.
That is, the application should store the last monitor used and a table mapping each monitor to the position and dimensions the Terminal occupied on that monitor.

^ This would be great. But would rather have basic functionality than wait extra time for macOS tricks.
@glen-84 Pretty much nailed behavior with his comment about "do as browsers do". It keeps things fairly simple, and those are patterns that, while fairly powerful, anyone who uses a computer is familiar with.

As described in #8989, if the state can be persisted to file as suggested in https://github.com/microsoft/terminal/issues/766#issuecomment-494689538 then a desirable feature would be to be able to invoke a new terminal instance and supply that particular configuration as the startup state (via argument).  That would help alleviate some of the ambiguity around what to do in the case of multiple open instances.

Let the user set a global setting to have the terminal re-open with whatever profiles were last open.
Thoughts:

what happens when a user has two windows open, closes one with 3 tabs, then opens a new window? Should it open the 3 tabs? Or should it start a fresh, single tabbed window?
how do we persist the last session?
Do we only persist the last tabs open when the last terminal window is closed?
Do we add a "quit terminal" option that closes all open windows, and persists all their open profiles?

 What would be really awesome would be to save command history in each tab so you can just up arrow to bring back recent commands. That will make this indispensable.
Thank you.

What would be really awesome would be to save command history in each tab so you can just up arrow to bring back recent commands.

FYI this has been discussed to death elsewhere in this repo - it's not the terminal's responsibility to remember what the last commands entered were. Most modern shells (e.g. pwsh, bash, zsh) will already do this. cmd can't do this, because cmd has never done that, and cmd is in maintenance-only mode.
The rest though - I'm on board with all that ☺

hey @zadjii-msft (sorry if you're not back from your vacay) this issue doesn't sound like remembering the size and position of a Terminal window to many users, including myself. The discussion below it and the closed issues do make it look like it, but not everyone will have the time and patience to do that. Mind updating the issue to say something about it independent of there being an option to restore the last session? :)

Okay, sure. I'll update the OP. To clarify:

#766 (This issue) is tracking restoring the relative window state across terminal launches. This includes (but is not limited to) window positions, the open tab/pane structure, and what profiles were in those tab/panes. It is not tracking restoring buffer state.
#961 is specifically related to trying to restore the buffer content of these tabs/panes. This is substantially harder than just restoring the window state, because the buffer has quite a bit more state in it. It is not tracking connection state (commandline history, environment variables, open processes)
#960 is about just "restoring previously opened tabs/panes". This is like when you close a tab in a browser, then hit Ctrl+shift+t to just pop it back into existence. This does not include across reboots - it mainly deals with tab/panes closed in the current instance.
There's not an issue tracking restoring connection/shell/process state, because that's generally impossible. (case in point: https://github.com/microsoft/terminal/issues/961#issuecomment-495506932, et. al in that thread.)

@zadjii-msft thanks for clarifying. In your first item, you refer to restoring the window state across terminal launches. Should we have another issue for restoring the window state while it is running, but after an external monitor is disconnected and re-connected? (https://github.com/microsoft/terminal/issues/766#issuecomment-653671768)

That's totally something that should have it's own issue. FYI I don't think any other app does this currently - I'm constantly repositioning windows when I dock/undock my laptop.

Terminal STILL doesn't persist its window size and position!

Did you enable the setting?

It won't work for elevated windows at the moment.

And strangely it doesn't seem to use WinUI 2.7 with the new styles.

That's by design, see #11231

Something that's present in the release build is a strange window that is opened briefly before Terminal opens.

File a new issue for that, let's not take this thread off topic.

I apologize if the naming is confusing. The issue, I think, is that a "session" is not well defined yet anywhere, and the wording was based on other applications (such as Edge) to be forward looking for when things like #961 are also implemented.
The exact behavior of this feature when the setting is enabled is, from the docs (https://docs.microsoft.com/en-us/windows/terminal/customize-settings/startup#behavior-when-starting-a-new-terminal-session-preview)
Note: [when enabled] Currently, Windows Terminal will save the following information:
- Each window's position, size, and name
- The tab layout of each window, including the layout and profile of each pane, but not any contents of those panes

That being said, people FUCKING HATE defaults being changed on them, so no promises.

[Insert XKCD]
but i honestly expected that behaviour to not be behind both a preview release and an opt-in.
the very question of whether it becomes default or not makes me sad. it just makes sense to match standard window conventions :/
like i've been waiting for like two years here :'( but hopefully it'll be there in 1.12!!! ^.^

Since you're already using 1.12 preview you can use this today. Open your settings (press ctr+,) and then make sure the settings is enabled. Once it is enabled windows will be saved when you use the quit action, or by pressing the X icon on the window.

This works for me when launching Terminal regularly. However, when I launch it as an administrator, neither does it open the last session I had as a regular user, nor does it open the last administrator session or even restore the window's position and size.

"state": {
        "windows": [
            {
                "maximized": false,
                "positionX": 500,
                "positionY": 200,
                "width": 1000,
                "height": 2000,
                "tabs": [
                    {
                        "title": "Project X",
                        "panes": [
                            {
                                "profile": "EF3E32A7-5FF6-42B4-B6E2-96CD7D033F00",
                                "directory": "C:/...",
                                // position/dimensions
                            }
                        ]
                    }
                ]
            }
        ]
    }

Even this one not working for me, I tried and reopen terminal but is not working.

@rehanhashmi did you write that json by hand? That doesn't look like the actual schema we ended up going with for the state file.
Make sure to enable "firstWindowPreference": "persistedWindowLayout" in the settings, and the Terminal will auto-generate state that looks more like:

in state.json.

Tabs names ... are lost

That's a known bug, #11878

directories are lost

You'll need to make sure to configure your shell to emit the CWD to the Terminal for us to be able to restore those

@zadjii-msft Here is my settings.json file from windows shell, My requirement is like each time mostly I need to move to some directory and run few commands. Each time I open terminal I make few tabs and move each tab in different directory to run those commands, I want it like when I open windows shell, It automatically open 4 tabs in different file location, Please guide me what Should I do, I tried to use "state" but I guess I applied wrongly or did something wrong. it is not working,
{
"$schema": "https://aka.ms/terminal-profiles-schema",
"actions": [
{
"command": "unbound",
"keys": "ctrl+shift+t"
},
{
"command": "unbound",
"keys": "ctrl+shift+w"
},
{
"command": "unbound",
"keys": "alt+f4"
},
{
"command": {
"action": "copy",
"singleLine": false
},
"keys": "ctrl+c"
},
{
"command": {
"action": "newTab"
},
"keys": "ctrl+t"
},
{
"command": "paste",
"keys": "ctrl+v"
},
{
"command": "closeWindow"
},
{
"command": "find",
"keys": "ctrl+shift+f"
},
{
"command": {
"action": "splitPane",
"split": "auto",
"splitMode": "duplicate"
},
"keys": "alt+shift+d"
},
{
"command": "closePane",
"keys": "ctrl+w"
}
],
"copyFormatting": "none",
"copyOnSelect": false,
"defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"launchMode": "default",
"profiles": {
"defaults": {
"backgroundImage": null,
"backgroundImageStretchMode": "uniform",
"colorScheme": "Solarized Dark",
"cursorShape": "vintage",
"font": {
"face": "Cascadia Code",
"size": 10,
"weight": "bold"
},
"icon": "C:\Users\Azam\Pictures\Camera Roll\extra\0fMGlH3.jpg",
"padding": "9",
"tabTitle": "Welcome Rehan"
},
"list": [
{
"commandline": "powershell.exe",
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"hidden": false,
"name": "Windows PowerShell",
"colorScheme": "Campbell",
"cursorColor": "#C19C00",
"cursorShape": "filledBox",
"fontSize": 9,
"padding": "5, 5, 5, 5"
},
{
"commandline": "cmd.exe",
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"hidden": false,
"name": "Command Prompt"
},
{
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
"hidden": false,
"name": "Azure Cloud Shell",
"source": "Windows.Terminal.Azure"
},
{
"guid": "{2ece5bfe-50ed-5f3a-ab87-5cd4baafed2b}",
"hidden": false,
"name": "Git Bash",
"source": "Git"
}
]
},
"schemes": [
{
"background": "#0C0C0C",
"black": "#000000",
"blue": "#0037DA",
"brightBlack": "#767676",
"brightBlue": "#3B78FF",
"brightCyan": "#61D6D6",
"brightGreen": "#16C60C",
"brightPurple": "#B4009E",
"brightRed": "#E74856",
"brightWhite": "#F2F2F2",
"brightYellow": "#F9F1A5",
"cursorColor": "#FFFFFF",
"cyan": "#3A96DD",
"foreground": "#CCCCCC",
"green": "#13A10E",
"name": "Campbell",
"purple": "#881798",
"red": "#C50F1F",
"selectionBackground": "#FFFFFF",
"white": "#CCCCCC",
"yellow": "#C19C00"
}
],
"theme": "system",
"state": {
"windows": [
{
"maximized": false,
"positionX": 500,
"positionY": 200,
"width": 1000,
"height": 2000,
"tabs": [
{
"title": "Project X",
"panes": [
{
"profile": "61c54bbd-c2c6-5271-96e7-009a87ff44bf",
"directory": "C:/Data/Tools/"
}
]
}
]
}
]
}
}

state is not a member in settings.json. When I'm talking about state.json, I'm talking about a totally different file that the Terminal uses to persist instance data. Setting the global setting "firstWindowPreference": "persistedWindowLayout" in 1.12 will cause the Terminal to automatically populate your current window state into that file, and re-use it on startup.
Otherwise, what I used to do before that feature landed, was add an action like the following: (copypasta from a while back)
{ "command": { "action": "wt", "commandline": "new-tab --title OpenConsole cmd.exe /k #work 15 ; split-pane -s .30 --title OpenConsole cmd.exe /k #work 15 ; split-pane  -s .25 -H cmd.exe /k media ; new-tab --title \"Symbols Script\" powershell dev\\symbols.ps1 ; new-tab -p \"Ubuntu 18.04\" ; new-tab -p \"microsoft/Terminal\" ; sp -V -p \"microsoft/Terminal\" ; sp -H -p \"microsoft/Terminal\" ; focus-tab -t 0" }, "name": "Good Morning" },

(you could probably make it shorter by replacing new-tab/split-pane with nt/sp, respectively). (EDIT: You could also probably make this clearer now with the multipleActions action)
I add that to the keybindings/actions. This creates a new command in the Command Palette named "Good Morning". That opens up a few tabs & panes, running various build environments. I like having it in a command rather than startupActions, because I only really want this in one terminal window, not every single one I launch. It's personal taste.
You could repeat this for multiple different "session"s if you wanted. That way you could have layouts pre-defined for various different dev environments.

I'm using Terminal 1.14.2281.0 and would really like the window position to stay persistent but it doesn't.
I have a Open windows from a previous session selected'. With that mode, closing my last window with ALT+F4, X, or CTRL-SHIFT-Wand then restarting Terminal works as expected and on restart position is restored. However, if you typeexit` (Command Prompt) to close last shell, position does not get restored.

I only want the window position to be persistent just like every other app. I don't want to restore my previous session at all.

Necro'ing an old thread is not typically the best place for bug reports 😉 However, we definitely do intentionally treat exit different than closing the window. If the connection itself initiated the close, then we treat that as a signal that the connection is all done, and doesn't need to come back. Closing from the UI side though does persist the terminal state. We discussed this more in one of #9800, #10972 or #11083, but I can't find the specific comment chain at the moment.

@Poopooracoocoo your issue is already tracked in #12633, no need to pollute discussion here.

Well, without preserving the last opened path in each tab it seems pretty useless.
I'm on v1.15.2874
After a few years, this is still no working

I apologize if the naming is confusing. The issue, I think, is that a "session" is not well defined yet anywhere, and the wording was based on other applications (such as Edge) to be forward looking for when things like #961 are also implemented.
The exact behavior of this feature when the setting is enabled is, from the docs (https://docs.microsoft.com/en-us/windows/terminal/customize-settings/startup#behavior-when-starting-a-new-terminal-session-preview)
Note: [when enabled] Currently, Windows Terminal will save the following information:
- Each window's position, size, and name
- The tab layout of each window, including the layout and profile of each pane, but not any contents of those panes

@Rosefield
Sorry for disturbing you in such a manner, but it's been a year and it seems like you have some idea of what's going on with the roadmap. Could you please shed some light on the implementing saving session feature plans?
By saving session I mean the Terminal's ability when launched to reopen tabs with their names, positions and (missed now) the opened paths. Currently I have lets say three projects. I open three PowerShell tabs for these projects and navigate to corresponding path for each of them. But when I reopen Terminal, each tab's path is reset to a user's home directory, which seems like not expecting behavior.

Well, without preserving the last opened path in each tab it seems pretty useless. I'm on v1.15.2874 After a few years, this is still no working

You know, that's actually in the docs: Tutorial: Opening a tab or pane in the same directory in Windows Terminal. You need to set up your shell for it to cooperate with the Terminal - that doesn't work magically on Windows, unfortunately.

@Kolobamanacas This feature was implemented like, a year ago. Did you enable the following setting:

Or do you want a more generic "I want to save this set of tabs as a session, but not necessarily reopen the Terminal with that session every time"? In which case, you might be interested in #11526

Okay, this isn't great, but I'm gonna put a link to the docs in the settings UI, right by that setting. That'll at least possibly clue someone in that there's more config needed.

Well, yes :)
Restore session means restore session. Does not work as the name says. Or we all has just got used to all the stuff been saved when restarting apps ;-)

Terminal STILL doesn't persist its window size and position!

Did you enable the setting?  It won't work for elevated windows at the moment.

That's not what I want. That's session restore, right? It looks like what should just be the normal behaviour was tied to that feature.

Thanks

Well, without preserving the last opened path in each tab it seems pretty useless. I'm on v1.15.2874 After a few years, this is still no working

You know, that's actually in the docs: Tutorial: Opening a tab or pane in the same directory in Windows Terminal. You need to set up your shell for it to cooperate with the Terminal - that doesn't work magically on Windows, unfortunately.
@Kolobamanacas This feature was implemented like, a year ago. Did you enable the following setting:
Or do you want a more generic "I want to save this set of tabs as a session, but not necessarily reopen the Terminal with that session every time"? In which case, you might be interested in #11526

I tried setting it like that, but it only restores the previous number of sessions (number of tabs). But the command content of each tab is completely gone.

@ngocbae98 This is the wrong issue. What you want is #961.
Content restoration is available in v1.21.1272.0 and later which is currently in Windows Terminal Preview. You can find the preview version in the app store or in our release page: https://github.com/microsoft/terminal/releases


Rye installation via install script on Linux fails. Script shows error because uv cannot be downloaded

Steps to Reproduce
Trying to install rye on Linux with the suggest method:
curl -sSf https://rye.astral.sh/get | RYE_INSTALL_OPTION="--yes" bash
Expected Result
Rye should be installed fully and without errors. It should work after installation.
Actual Result
I'm getting this error during install:
Bootstrapping rye internals
error: download of https://github.com/astral-sh/uv/releases/download/0.2.22/uv-x86_64-unknown-linux-gnu.tar.gz failed

Caused by:
    [6] Couldn't resolve host name (Could not resolve host: github.com)

The rye command itself is available after install but it's not usable. When running e.g. rye add requests, I'm getting the same problem:
$ rye add requests
Bootstrapping rye internals
error: error bootstrapping venv

Caused by:
    0: download of https://github.com/astral-sh/uv/releases/download/0.2.22/uv-x86_64-unknown-linux-gnu.tar.gz failed
    1: [6] Couldn't resolve host name (Could not resolve host: objects.githubusercontent.com)

My guess is, this is because https://github.com/astral-sh/uv/releases/download/0.2.22/uv-x86_64-unknown-linux-gnu.tar.gz is receiving a 302 response with the actual file location. For example, curl doesn't seem to handle that correctly. If I do curl -O https://github.com/astral-sh/uv/releases/download/0.2.22/uv-x86_64-unknown-linux-gnu.tar.gz the created file is empty. However, if we instruct curl to follow the redirect, it works: curl -L -O https://github.com/astral-sh/uv/releases/download/0.2.22/uv-x86_64-unknown-linux-gnu.tar.gz. I suspect the same behavior during installation. I'll try to take a look at the code to confirm, after posting this.
/e: This doesn't seem to be the case. As far as I can tell, the used curl library should be following the redirect as specified here.
Version Info
This is with the current installer script, trying to install rye 3.6.0 (but same with all other version to be installed).
I'm on Ubuntu running in WSL2 under Windows 10:
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal

My curl is:
$ curl --version
curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Release-Date: 2020-01-08
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets

Stacktrace
No response

This may be a duplicate of #1212, are you behind any sort of corporate firewall?

Yes, I think this is a duplicate as it sounds like the same issue. It happens in a corporate firewall environment and there is obviously some mitm going on. But the error message is strange and also the fact that downloading the file via curl is no problem. I'm closing this and trying to contribute to the solution in the other issue.


Add cookie_suffix and additional_routes fields to Waiting Room object

This PR adds the 2 new fields that has been added to the Waiting Room object, namely, additional_routes and cookie_suffix to support the functionality of multihost and multipath feature.
https://developers.cloudflare.com/api/operations/waiting-room-create-waiting-room#request-body
Description
The documentation has been updated however the client needs a sync and therefore the terraform changes.
Has your change been tested?
Yes, Waiting Room relevant tests have been updated to handle the addition of these 2 new fields.
Screenshots (if appropriate):
Types of changes
What sort of change does your code introduce/modify?

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] This change is using publicly documented in cloudflare/api-schemas
and relies on stable APIs.

Codecov Report

Merging #1311 (9b624a0) into master (5584c5b) will decrease coverage by 0.13%.
The diff coverage is 31.11%.

:exclamation: Current head 9b624a0 differs from pull request most recent head 74e0b34. Consider uploading reports for the commit 74e0b34 to get more accurate results

@@            Coverage Diff             @@
##           master    #1311      +/-   ##
==========================================
- Coverage   49.07%   48.95%   -0.13%
==========================================
  Files         134      135       +1
  Lines       13090    13180      +90
==========================================
+ Hits         6424     6452      +28
- Misses       5162     5212      +50
- Partials     1504     1516      +12

Impacted Files
Coverage Δ

access_application.go
76.52% <ø> (ø)

load_balancing.go
59.40% <ø> (ø)

stream.go
64.91% <ø> (ø)

waiting_room.go
45.72% <ø> (ø)

custom_nameservers.go
31.11% <31.11%> (ø)

thank you @yj7o5 👏 this is awesome 🙇


feat: add a canGoBack method to navigation object

Add a new method to detect if it's possible go back in navigation history.
It's useful to determine when to display a back button when using a custom header.
Seems to work. Figuring out how to add tests :)

yesss i like this

LGTM. Also wanted this some time ago :)
Maybe check my pending test PR before doing the tests or it'll likely conflict

Upon further thinking, a function isn't a good API for this. It should just be a boolean because want to trigger a re-render if it changes.


Complete basic example request

Hi, first of all thanks for the plugin. It seems just what I need.
I implemented the steps for didFinishLaunchingWithOptions but this is not being called when application first starts. The xcode native handler does.
It should be called right? Could you create a basic example?
Thanks in advance

I have some updates:
I included <param name="onload" value="true" /> on the plugin and the method gets called.
Now the question is:
is this the correct way to spy on launchOptions
`- (void) didFinishLaunchingWithOptions:(NSNotification *)notification {
NSDictionary* launchOptions = [notification userInfo];

if (launchOptions != NULL && [launchOptions objectForKey:UIApplicationLaunchOptionsLocationKey]) {
   NSLog(@"- didFinishLaunchingWithOptions:  %@", launchOptions);
}

}`
Thanks


Parentheses in ifeq not parsed correctly without a space

This:
ifeq (undefined,$(origin VARIBLE))
endif

ignores one of the brackets, even though it's (the only!) correct Makefile syntax.
If I add a space after ,, it seems to work, but it's not a correct code, because space will be concatenated with the $(origin) value.

Fixed


[WIP] Start working on node v10 support

build-linux-docker

All tests are passing except this one. Not had a chance to dig in, but I presume it is unrelated and rather something brittle about the circleci setup...

closing as I won't have time to finish this


Choppy image on Ubuntu 18.04 & 19.04 with Ryzen 2500U processor

I'm not sure if this is an EVDI or a DisplayLinkManager issue, but since playing around with kernel versions helped I'm guessing it's EVDI – I'm sorry if it isn't.
I got a new laptop with a Ryzen 2500U processor (Vega 8 graphics) a few months ago and have been struggling to get DisplayLink to work properly on Ubuntu; whatever I try, the image is always choppy.
I've tried clean installs of Ubuntu 18.04 (with official 4.15 and mainline 4.18 kernels) and 19.04 (with mainline 4.18, 4.19, 4.20, 5.0, and 5.1 kernels) with the latest version (1.6.1) of EVDI and the one that comes with the latest version of the driver (1.6.0) to no avail. I've also tried putting various configurations in /etc/X11/xorg.conf.d/20-displaylink.conf (I unfortunately did not write them down while going through them) but the ones I used didn't help either. On version 4 kernels, the image is mostly choppy when large changes to the image are being made (e.g. when moving a window, the movement is choppy and the image tears multiple times) with small stutters happening once in a while on both the main screen and the DisplayLink display, while on version 5 kernels the image stuttered even with just the cursor moving, as if it were running at a very low framerate. Also, if only the external monitor is used to display an image (i.e. laptop screen is disabled), stuttering and input lag skyrocket. CPU usage doesn't look abnormal with the external screen plugged in and everything works fine when it's not. Everything works normally on Windows.
Below is a still image of the problem and here's a video of what it looks like (this is on Kubuntu 19.04 running kernel version 4.18.20 and DisplayLink 5.1.26 with EVDI 1.6.0, but the exact same symptoms are exhibited by Ubuntu 18.04).

I'm not sure where to find logs so I used the DLSupportTool and it gave me this: DLSupportTool_Output_2019-06-25T20_04_17.429732.zip
Any ideas?

@Crashdummyy over on AdnanHodzic/displaylink-debian#265 found out that running with Wayland rather than Xorg makes the problem essentially disappear completely. I can confirm that this works on my end too with a clean full install of Ubuntu 19.04.

Hi @nicoco007
Does this laptop have two GPUs? (if so) I know it is not actual solution but you could try to disable
one in BIOS and check again. For now this is the only thing that comes to my mind for a 'quick' fix.

Hi @nicoco007
Does this laptop have two GPUs? (if so) I know it is not actual a solution but you could try to disable
one in BIOS and check again. For now this is the only thing that comes to my mind for a 'quick' fix (if everything else is not working).

He uses an Vega 8 if I am not mistaken.
So there is no dedicated GPU present.
Disabling one GPU in the Bios doesn't fix these Problems for my other laptop ( using the graphics Unit of the i7-4710HQ )

I can confirm that my laptop does not have a dedicated GPU and only uses the integrated Vega 8 graphics.

Hi, I'm reporting the same problem with the same CPU/GPU. I use OpenSUSE Tumbleweed though (kernel 5.1.16)

Can confirm the same problem with an AMD Ryzen 7 PRO 3700U in my new ThinkPad 495s running Kubuntu 19.04

Prior to kernel 5.0.0-23-generic, I was getting 1fps from glxgears with my 2500U HP 17z-ca000 cto laptop and Dell D3100 dock. After updating my kernel today, I am getting about 45-58fps with the DisplayLinkManager process running at 200% cpu (and about 100% without glxgears running)
evdi version: 1.6.1 20180913
DisplayLink driver version: 5.2 (7/8/19)
OS: kubuntu 19.04
Never made a note of the previous kernel version I was using when getting 1fps
I've also tried the pro driver in the past following this youtube guide. The performance seemed ok, but the screen tearing (is that what that diagonal line is called?) drove me crazy.
Happy to help investigate and report back if someone can point me in the right direction.

@jacobchurch Yeah, that's roughly what I'm getting too. I just tried again with kernel 5.2.11 (latest as of writing this) and driver version 5.2 with the same results as earlier. Any updates/ideas on this @displaylink-dkurek ?

im experiencing this issue on an hp envy x360 15z

I am also experiencing this issue on Linux Mint 19.1 with an AMD A6-5200 APU with Radeon™ HD Graphics. My screen tares.

Hi, I have the same problem on xorg:

OS: Arch Linux x86_64
Host: Lenovo ideapad 720S-13ARR
Kernel: 5.3.10-arch1-1
CPU: AMD Ryzen 7 2700U
GPU: AMD Radeon RX Vega 10

more details about my installation: https://github.com/DisplayLink/evdi/issues/171
I've tried to install gdm on wayland, and can confirm that displaylink is working fine on it.
Unfortunately I can't use gdm for my purpose, I need working X instead.

I just installed the amdgpu-pro driver on my laptop as @kvaps did and can confirm that also fixes the issue on my end. I however am running an Ubuntu-based distro so I ended up using this version of the amdgpu-pro driver from AMD's website, the script attached to this message (comment 29 by Andrew Shark), and the displaylink-debian script (after running, I also had to delete the /usr/share/X11/xorg.conf.d/20-displaylink.conf file to get the screens to be detected properly). This got everything working on Kubuntu 19.04 with X11 and kernel version 5.0.0-36-generic (the one that comes with it by default as of writing this). I'm not sure what FPS it's running at, but at least it's usable now.

Closing as the original issue was handled.

Hello, how was this problem solved now? Is installing the proprietary driver really the only solution?

Not solved, handled.
If EVDI + amdgpu-pro work OK then it might we worth checking what is
happening in the open source equivalent of the AMD proprietary driver.

I can append that after installing amd-ucode it is started working even better. Now even 4K video from youtube is showing without glitches 🎉

Any updates on this? I am also using the Ryzen 7 with Radeon RX Vega 10, and the workaround to install the proprietary drivers does not work since the AUR package is currently out of date. Any help would be much appreciated, since I experience the exact same problem described above.

@haeggee I have an AMD Ryzen 7 PRO 3700U w/ Radeon Vega Mobile Gfx and I cannot report any success either. I tried freshly installing Ubuntu 18.04.4 on my Thinkpad T495s, installed the official displaylink-driver, choppy image, tried installing amdgpu-pro, still choppy image. I don't think that the solution is to install the amdgpu-pro driver. Funny thing is, people in this issue report that it should be much better with wayland, while the displaylink website states that only x-org is supported...

I got it to work with the amdgpu driver.
It works almost flawlessly ( sometimes a little tearing ).

Insttaled amdgpupro 19.30
Installed the DisplaylinkDrivers from here

However this script failed on compiling EVDI on my machine with some Error for missing headers ( which I had installed ).
I had previsouly installed the official displaylink driver ( with stuttering issues and low resolution ).
displaylink is now using the bundled evdi ( v 1.6.1 )

@Crashdummyy What Linux-Distro and version are you using?

@Crashdummyy What Linux-Distro and version are you using?

Distributor ID:	Ubuntu
Release:	19.10
Description:	Ubuntu 19.10
Codename:	eoan
Kernel Version: 5.3.0-42-generic
Processor Type: x86_64

@Crashdummyy So how did you install the amdgpu-pro driver on 19.10, when the driver is only available for 18.04?

@ChESch
Has been a while but I remember it being kinda hacky to install.
There is a script over here maybe that will make the process easier for you.

@Crashdummyy Okay thank you, I will take a look at it

@Crashdummyy I tried the script, still same result, laggy as shit... I think at this point I will just forget about working displaylink...

@ChESch Sorry I can't help you any further.
I reinstalled Ubuntu 19.10 yesterday with amdgpu for 19.30 ( still got the files ).
I am using these Dockings:
With PowerDelivery
Without
I use two external Displays: 2560x1440@144Hz
Both completely Tearfree with the official Displaylink driver.
( Kernel now on 5.3.0-45-generic )

@Crashdummyy Well I am using exactly the same Dock and also the latest Kernel from 19.10.
Could you please post your exact steps to install the amdgpu-pro drivers as well as the output from inxi -G Thanks!

@ChESch
You could check their gitlab
or even youtube
My installation steps at that time were:

Download official driver
removed ubuntu version hardcoding
install displaylink and dependencies ( like dkms )
run script
remove amdgpu-pro from sources to prevent it from reinstall every time ( don't know why it does that on every upgrade... didn't care )

Graphics:  Device-1: AMD Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] driver: amdgpu v: kernel
           Display: x11 server: X.Org 1.20.5 driver: amdgpu resolution: 2560x1440~144Hz, 2560x1440~144Hz
           OpenGL: renderer: AMD Radeon Graphics v: 4.6.13572 Core Profile Context

@Crashdummyy So how did you remove the Version hardcoding?

@Crashdummyy Sorry, just realised you used the 19.30 driver... the 19.50 seems to have another version hardcoding which is not handled at the script shown at their gitlab, I already tried to modify that, but I didn't have any success

Could be that 19.50 is failing.
I installed 19.30 as there didn't exist a 19.50 ( or maybe I just didn't found it last year )
You can find out how to delete the checks on the youtube/gitlab site.
There were some references inside the amdgpu-core pacakge
I also did
# not sure if 'no-dkms' but --help will help ;)
$ amdgpu-pro-install --no-dkms

I tried it again, same result. When amdgpu-pro installs, after reboot I just get an black screen and have to do an CTRL+ALT+F2 and apt purge amdgpu-pro-* in order to get KDE up again.

This issue is effecting me as well using Ubuntu 18.04.4, kernel 5.3, and a Radeon RX 570 GPU (no integrated GPU). Previously had it working perfectly with the amdgpu-pro driver, but when I turned on the computer this morning I was met with hanging blank purple screens on both monitors which might be an indicator of a library update somewhere. Not sure though. Does anyone have any luck with this with a RX 500-series GPU? Really regretting not documenting my steps in getting it to work right now...

When amdgpu-pro installs, after reboot I just get an black screen and have to do an CTRL+ALT+F2 and apt purge amdgpu-pro-* in order to get KDE up again.

@ChESch this is known problem of proprietary amdgpu driver:
https://wiki.archlinux.org/title/AMDGPU_PRO#Workaround_for_using_proprietary_OpenGL
There is only option to use <20.00 version of driver 🙁

Ah, I just found that patch by @pioto1225 and option vmap_texture=1 is actually works fine on my Lenovo ideapad 720S-13ARR.
I prepared AUR package with the change for myself.


Use serialization for snapshots

This gets rid of the LANG issue and makes it so that we don't have to deal with encoding problems.
To get the nicer snapshot diffs, run:
git config diff.snapshot.textconv bin/deserialize
git config diff.snapshot.binary true

Yeah I was thinking it might be good to have a bin/setup script for installing dependencies and other stuff. We could add this stuff to that.

This means it's no longer possible to review the snapshots diff on GitHub.
What's this LANG issue? Wouldn't it be enough to dump the snapshots as UTF-8 or binary to solve the issue?


Create tiles with PHP or Imagic

can i create tiles with raw PHP or Imagic ?
what is the algorithm of creating tiles ? like google explained how an image should be sliced for their custom street view (here) , so is there any explanation to slice image for pannellum ?
the python script cannot be executed in the server because all servers does not have python installed. and i want this image slicing to be a automatic process. please help.
Thanks

It's not my fault that you can't run Python on your server. The source code of libpannellum.js and generate.py is the documentation. You're more than welcome to port the Python script to another language, but you're on your own.

i know its a long time, but eventually wanted to tell for a long time that, afterall its your library you can do whatever you want to, but sir the answer you gave to my question was rude and egoistic. i didnt said it was your fault. just asked for help, if you cant help, you didnt have to be rude or show your ego. whatever, thanks for the lesson.

Also note that a nona equivalent in PHP is also needed.


hydratedOptions now clones qna options via serialization/deserializations

Fixes #1718

QnAMaker.HydrateOptions originally tried to make a copy of the options passed into QnAMaker's constructor
But because passed by reference, assigning local variable hydrateOptions = _options would actually have hydrateOptions pointing to _options's reference types members' location
creating "deep clone" of values passed into QnAMaker's constructor (_options) via serialization/deserialization

No issues found in Microsoft.Bot.Builder.dll
No issues found in Microsoft.Bot.Builder.AI.Luis.dll
No issues found in Microsoft.Bot.Builder.AI.QnA.dll
No issues found in Microsoft.Bot.Builder.ApplicationInsights.dll
No issues found in Microsoft.Bot.Builder.Azure.dll
No issues found in Microsoft.Bot.Builder.Dialogs.dll
No issues found in Microsoft.Bot.Builder.TemplateManager.dll
No issues found in Microsoft.Bot.Configuration.dll
No issues found in Microsoft.Bot.Connector.dll
No issues found in Microsoft.Bot.Schema.dll

@cleemullins @johnataylor added test that passes now, but fails before the changes!

Pull Request Test Coverage Report for Build 59189

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 66.008%

Totals

Change from base Build 58446:
0.0%

Covered Lines:
4008

Relevant Lines:
6072

💛  - Coveralls

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll


Replace acorn/acorn-walk with esbuild (#404)

Tested with this example and it generates the same routing table as before:
// functions/api/[[path]].js
export { onRequest };
async function onRequest(context) {
  return new Response("Hello, world!");
}
export const onRequestPost = () => {};
export async function hello() {return "hello";}

There is a failing unit test, which seems relevant:
generateConfigFromFileTree
      ✕ should generate a route entry for each file in the tree (53 ms)

Tests should be fixed now. Wasn't handling paths correctly when calling esbuild.

I'd like to review this before it gets merged. Will take a look this weekend.

Got the commits cleaned up and I think I did the changeset correctly this time.

Great! Thanks @jahands.


fatal error: unexpected signal during runtime execution

Hi,
My go binary listens on a named pipe. All works fine, but if os.Exit() is called during execution, then I get this panic during shutdown:
fatal error: unexpected signal during runtime execution
[signal 0xc0000005 code=0x0 addr=0xffffffffffffffff pc=0x40f115]

goroutine 18 [running]:
runtime.throw(0xa53f6f, 0x2a)
	C:/Go/src/runtime/panic.go:596 +0x9c fp=0xc042151e08 sp=0xc042151de8
runtime.sigpanic()
	C:/Go/src/runtime/signal_windows.go:155 +0x18b fp=0xc042151e38 sp=0xc042151e08
runtime.lock(0x5105fcc3b06b83db)
	C:/Go/src/runtime/lock_sema.go:43 +0x65 fp=0xc042151e70 sp=0xc042151e38
runtime.chansend(0x970300, 0x5105fcc3b06b8383, 0xc042151fb0, 0xc042151f01, 0x5d013a, 0xc042151f9c)
	C:/Go/src/runtime/chan.go:176 +0xba fp=0xc042151f20 sp=0xc042151e70
runtime.chansend1(0x970300, 0x5105fcc3b06b8383, 0xc042151fb0)
	C:/Go/src/runtime/chan.go:113 +0x4d fp=0xc042151f60 sp=0xc042151f20
vendor/github.com/Microsoft/go-winio.ioCompletionProcessor(0x1f8)
	src/vendor/github.com/Microsoft/go-winio/file.go:133 +0xea fp=0xc042151fd8 sp=0xc042151f60
runtime.goexit()
	C:/Go/src/runtime/asm_amd64.s:2197 +0x1 fp=0xc042151fe0 sp=0xc042151fd8
created by vendor/github.com/Microsoft/go-winio.initIo
	src/vendor/github.com/Microsoft/go-winio/file.go:57 +0x87

goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc0434f803c)
	C:/Go/src/runtime/sema.go:47 +0x3b
sync.(*WaitGroup).Wait(0xc0434f8030)
	C:/Go/src/sync/waitgroup.go:131 +0x81
my_application_code_redacted()
	src/redacted/redacted:0 +0x00

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
	C:/Go/src/runtime/asm_amd64.s:2197 +0x1

goroutine 5 [syscall]:
os/signal.signal_recv(0x0)
	C:/Go/src/runtime/sigqueue.go:116 +0x10b
os/signal.loop()
	C:/Go/src/os/signal/signal_unix.go:22 +0x29
created by os/signal.init.1
	C:/Go/src/os/signal/signal_unix.go:28 +0x48

goroutine 6 [chan receive]:
my_application_code_redacted()
	src/redacted/redacted:0 +0x00

goroutine 7 [chan receive]:
my_application_code_redacted()
	src/redacted/redacted:0 +0x00

goroutine 8 [select]:
vendor/github.com/Microsoft/go-winio.(*win32PipeListener).listenerRoutine(0xc042110230)
	src/vendor/github.com/Microsoft/go-winio/pipe.go:269 +0x4e9
created by vendor/github.com/Microsoft/go-winio.ListenPipe
	src/vendor/github.com/Microsoft/go-winio/pipe.go:352 +0x2ec

goroutine 9 [chan receive]:
vendor/github.com/Microsoft/go-winio.(*win32PipeListener).Accept(0xc042110230, 0x0, 0x0, 0x0, 0x0)
	src/vendor/github.com/Microsoft/go-winio/pipe.go:373 +0x120
my_application_code_redacted()
	src/redacted/redacted:0 +0x00

goroutine 19 [chan receive]:
vendor/github.com/Microsoft/go-winio.(*win32File).asyncIo(0xc0421580f0, 0xc042174030, 0x0, 0xc000000000, 0x0, 0x0, 0xcfc500, 0xc042176000, 0x0, 0x0, ...)
	src/vendor/github.com/Microsoft/go-winio/file.go:167 +0x24d
vendor/github.com/Microsoft/go-winio.connectPipe(0xc0421580f0, 0x0, 0x0)
	src/vendor/github.com/Microsoft/go-winio/pipe.go:362 +0xc1
vendor/github.com/Microsoft/go-winio.(*win32PipeListener).listenerRoutine.func1(0xc04215a060, 0xc04215e000)
	src/vendor/github.com/Microsoft/go-winio/pipe.go:267 +0x35
created by vendor/github.com/Microsoft/go-winio.(*win32PipeListener).listenerRoutine
	src/vendor/github.com/Microsoft/go-winio/pipe.go:268 +0x286

goroutine 994 [chan receive]:
my_application_code_redacted()
	src/redacted/redacted:0 +0x00

goroutine 970 [select]:
my_application_code_redacted()
	src/redacted/redacted:0 +0x00

Other google results for this error were submitted directly to golang/go, so i don't know if this is a runtime issue or something with this library.
Maybe it's trying to read from a kernel object once the process has already begun to shut down?
I am trying to make a small, reproducing case, but i don't have one yet.
go version go1.8 windows/amd64

Hi,
I have a minimal test case that reproduces this issue in maybe 1 of 10 executions.
The program creates a named pipe to listen on; does some background work; and then connects to the named pipe.
It also involves one other third-party CGO library that seems to exacerbate the issue, but, this third-party library does not appear anywhere in the stack traces.
Source for reproducer:

https://github.com/mappu/winio-zstd-panic/blob/master/src/winio-zstd-panic/main.go

Go-get installer:

go get github.com/mappu/winio-zstd-panic/src/winio-zstd-panic

Example full stack trace:

https://gist.github.com/mappu/d1972e6e59596e98c7d3b677b18e5237

After some research in ticket https://github.com/golang/go/issues/19468#issuecomment-286297678 , i think this library has not been updated for the stricter runtime.SetFinalizer in Go 1.8. This is causing the library to use uninitialised memory.


Make PR command

This command would just open the make PR window in the browser, sort of like if you clicked on the PR link when you first push a change to a new branch.
In order for this to be complete, the following tasks must be finished:

[ ] #30
[ ] #31
[ ] #32
[ ] #33

Per conversation with @Leo6Leo:
git make-pr -r <remote_name: defaults to upstream>
            -u <remote_url: if provided, overrides -r>
            -s <: whether or not to stash any uncommited changes>
            -c <commit_message: commit uncomitted but staged changes with commit_message>

If -s and -c are provided, it will:

commit any staged changes
stash any remaining changes

If after following this resolution process there are any remaining unstashed/uncommitted changes the command will fail. @Leo6Leo do you think we should also add a -f flag which will force the command to make the PR even if there are remaining unstashed/uncommited changes?

If -s and -c are provided, it will:

commit any staged changes
stash any remaining changes

If after following this resolution process there are any remaining unstashed/uncommitted changes the command will fail. @Leo6Leo do you think we should also add a -f flag which will force the command to make the PR even if there are remaining unstashed/uncommited changes?

I think it's generally advised to ensure that there are no uncommitted/unstashed changes before making a PR. This is to make sure that the changes being proposed are clear, complete, and can be easily reviewed and tested by others.
But things happens sometimes, adding a -f flag (force flag) could potentially be useful, but it should be used with caution. We might need to highlight the potential risks involved in using this flag (like causing confusion for reviewers or even introducing bugs if the changes are not fully ready), and it should generally be discouraged unless there's a clear need for it. @Cali0707


Header hiding the phone status bar like Time , wifi icons

After using react - navigation I realize that phone status bar like Time , wifi icons are hiding.
How can I fix it  i.e  It should be showing all the icons ?

Your Environment

software
version

react-navigation
"^1.0.0-beta.11",

react-native
https://github.com/expo/react-native/archive/sdk-21.0.2.tar.gz

node
8.6.0

npm or yarn
1.1.0

Please post some code so that we can understand what the problem is. Also, I suggest you to post the issue on StackOverflow and link it back here as this doesn't look like a bug of the library.

You've got the status bar style set to white - I think you probably wanted the dark variant. You can set the style using this: https://facebook.github.io/react-native/docs/statusbar.html#barstyle

This is not an issue, so I'll close it. Moreover @jdmunro 's comment provides the solution, which is related to react native ;)

@jdmunro
where do i provide the folloing code in my code
barStyle?: enum('default', 'light-content', 'dark-content') #
my code :
[
static navigationOptions = ({ navigation }) => {
  const {state, setParams} = navigation;
  return {
    tabBarLabel: 'Students',
    // headerTitleStyle: { color: '#018080', fontFamily: 'rounded' },
    headerTitleStyle: { color: '#018080', fontFamily: 'rounded', fontSize: 28 },
    tabBarIcon:  ({ tintColor }) => {
            return <Icon name="contacts" size={25} color={tintColor} />;
    },
    headerBackTitleStyle: {
          // color: '#018080',
          fontFamily: 'rounded'
      },
    headerTitle: 'Today',
    headerRight: (
      <Button
        title='Add'
        // headerTitleStyle: { color: '#018080', fontFamily: rounded' },
        onPress={() => navigation.navigate('newStudent')
         }
      />
    ),
  };
};

](url)


Add application ID in the JSON logs

One thing we can change to improve it is to use [getCopyOfContextMap](https://www.slf4j.org/api/org/slf4j/MDC.html#getCopyOfContextMap--) and setContextMap to pass a context map instance of an application id and a job id...

@sebr72 did you see the tow violation I added?


[e2e]: go workflow_dispatch main config-noldflags slsa3

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/8445229554
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.workflow_dispatch.main.config-noldflags.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.workflow_dispatch.main.config-noldflags.slsa3.yml
Trigger: workflow_dispatch
Branch: main
Date: Wed Mar 27 01:29:24 UTC 2024

Repo: https://github.com/slsa-framework/example-package/tree/main
Run: https://github.com/slsa-framework/example-package/actions/runs/8461024662
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.go.workflow_dispatch.main.config-noldflags.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.go.workflow_dispatch.main.config-noldflags.slsa3.yml
Trigger: workflow_dispatch
Branch: main
Date: Thu Mar 28 01:28:41 UTC 2024
Tests are passing now. Closing this issue.


Consider two more see also links

EventSubscriberInstance Property
EventSubscriber attribute

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

ID: 847f9637-606b-5022-0891-81481a7eb283
Version Independent ID: 35643c3c-bb2d-e1ef-6ebd-556158d9d8e7
Content: Subscribing to Events - Business Central
Content Source: dev-itpro/developer/devenv-subscribing-to-events.md
Service: dynamics365-business-central
GitHub Login: @SusanneWindfeldPedersen
Microsoft Alias: solsen

Thanks for your feedback, these will be fixed with the next doc refresh.


Sound Manager

This implements a SoundManager using Kyle3Wynn's SFX and Music.  SFX trigger when the ball hits a wall or paddle(no bumper yet) - the pitch is slightly randomized.  SFX also trigger on the main menu when the mouse hovers over a button, and when a menu element is selected.
On my machine, the music stutters, but hopefully that's just a quirk of my OSX environment.

I think those repeat commits are a product of my rebase


Fireplace

About the PR
Adds a controlled-fire system. Fireplaces can be fueled, will burn until the fuel runs out, and will gradually extinguish when the fuel runs out. Used for campfires and torches.

finally, we one step closer to witch hunting


Feature Request - Add option to delete IIS artifacts on undeploy

Sample scenario - the other day I decided to remove a web service .svc.  I removed it on dev, migrated to QA.  Since files get copied on top of old IIS, the old .svc file is still there.
Also, in testing deploy/undeploy, I often have to test on my own box before going to the QA environment.  So I'm constantly deploying/undeploying trying to get things right.  It's one extra step to have to delete the IIS applications and files each time.

This may or may not include the need to delete the app-pool(s) that were created by BTDF.
This work item was migrated from CodePlex
CodePlex work item ID: '5871'
Assigned to: 'tfabraham'
Vote count: '1'

[tfabraham@2/2/2010]
On a server deploy, the vdirs are removed during undeploy.  AppDomains are never removed.

[UnknownUser@6/28/2010]

[UnknownUser@6/28/2010]
Added new property UndeployIISArtifacts.  By default it is false for dev deploys and true for server deploys.

[UnknownUser@6/28/2010]
Resolved with changeset 48059.

[UnknownUser@2/21/2013]

[UnknownUser@5/16/2013]


Potential issue in release code

Everything seems like it got released to central but I have never seen this error before so I thought I would report it. The warning just continues for a long time. After 25 min I canceled the workflow.
2022-01-04 17:53:02.970Z  info [SonatypeClient] The promote stage is in progress. Waiting for 15.00 sec.  - (SonatypeClient.scala:170)
2022-01-04 17:53:21.212Z  info [SonatypeClient] repositoryReleased: id:org***-1062, target:releases  - (SonatypeClient.scala:378)
2022-01-04 17:53:21.213Z  info [SonatypeClient] Activity name:drop, started:2022-01-04T17:53:16.070Z  - (SonatypeClient.scala:389)
2022-01-04 17:53:21.213Z  info [SonatypeClient] The promote stage is in progress. Waiting for 15.00 sec.  - (SonatypeClient.scala:170)
2022-01-04 17:53:36.407Z  warn [SonatypeClient] [7/243] Execution failed: [404: Not Found] Request failed: {"errors":[{"id":"*","msg":"No activity for repository: org***-1062"}]}. Retrying in 15.00 sec.  - (SonatypeClient.scala:172)
2022-01-04 17:53:51.529Z  warn [SonatypeClient] [8/243] Execution failed: [404: Not Found] Request failed: {"errors":[{"id":"*","msg":"No activity for repository: org***-1062"}]}. Retrying in 15.00 sec.  - (SonatypeClient.scala:172)

The exact same thing happened today for me as well. The release worked however.

sbt-ci-release uses sbt-sonatype, and there's an issue reported https://github.com/xerial/sbt-sonatype/issues/276 so I suggest we move the discussion there instead.


HttpClient always add 'content-length:0' to GET request

Dart 2.9.2(stable)
Windows 10 x64

When I create an HTTP GET request as below, HttpClient always adds content-length:0.
I check my request by Fiddler.
The server I want to request returns Status Code:400 Bad Request if request's header contains content-length.
How can I remove this header ?
    final client = HttpClient();
    final request = await client.openUrl(
        'GET', Uri.parse('https://www.example.com/api'));

    //No options makes a request as
    //user-agent: Dart/2.9 (dart:io)
    //accept-encoding: gzip
    //content-length: 0  <-- THIS IS THE PROBLEM !!
    //host: www.example.com

    //This makes a request as
    //user-agent: Dart/2.9 (dart:io)
    //accept-encoding: gzip
    //content-length: 0  <-- THIS IS THE PROBLEM !!
    //host: www.example.com
    request.headers.contentLength=-1;

    //This makes a request as
    //user-agent: Dart/2.9 (dart:io)
    //accept-encoding: gzip
    //content-length: 0  <-- THIS IS THE PROBLEM !!
    //host: www.example.com
    request.headers.contentLength = -1;
    request.headers.add('content-length', -1);

    //What options can I add to remove content-length from header ?

    final response = await request.close();

Is there any workaround for this?
I can't continue to develop my app by this problem.

After some additional try, I've found strange behavior.
When I use HttpHeaders's set method and "watch" the request variable in debug mode as below, content-length header is removed.
Without "watch", the header still remains.
I cannot understand what happened... Any ideas?
    final client = HttpClient();
    final request = await client.openUrl(
        'GET', Uri.parse('https://www.example.com/api'));

    request.headers.set('content-length', '-1');

    final response = await request.close();  //break here and watch request in debug mode, request's header doesn't contain content-length.

    print(response.statusCode); //print 200 if I watch. print 400 if I don't watch...

I just got caught out by this. I wanted to use WebSocket class with Cloud Run. And because it starts with a GET request to upgrade the connection to a web-socket it fails because the server closes the connection because of the content-length header being specified.
I recreated the WebSocket.connect method, adding request.headers.removeAll(HttpHeaders.contentLengthHeader); before the await request.close(). and it connected and worked fine.
I tracked the issue down to this line here:
https://github.com/dart-lang/sdk/blob/d63d5d93a59b370bf5f5c277109110cb67a96b75/sdk/lib/_http/http_impl.dart#L1156
@mit-mit The HTTP/1.1 RFC-7231 on Page 25, states the following:

A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some existing implementations to reject the request.

I think this should be resolved as lots more people are going to start working with Dart on the server-side and expect HTTP to function as per-the standard.
@mit-mit I could post a fix to WebSocket but it would seem more appropriate to fix the underlying HTTP implementation. What are your thoughts?

I just got caught out by this. I wanted to use WebSocket class with Cloud Run. And because it starts with a GET request to upgrade the connection to a web-socket it fails because the server closes the connection because of the content-length header being specified.
I recreated the WebSocket.connect method, adding request.headers.removeAll(HttpHeaders.contentLengthHeader); before the await request.close(). and it connected and worked fine.
I tracked the issue down to this line here:
https://github.com/dart-lang/sdk/blob/d63d5d93a59b370bf5f5c277109110cb67a96b75/sdk/lib/_http/http_impl.dart#L1156
@mit-mit The HTTP/1.1 RFC-7231 on Page 25, states the following:

A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some existing implementations to reject the request.

I think this should be resolved as lots more people are going to start working with Dart on the server-side and expect HTTP to function as per-the standard.
@mit-mit I could post a fix to WebSocket but it would seem more appropriate to fix the underlying HTTP implementation. What are your thoughts?

CC @natebosch – one more thing!
FYI @jonasfj

CC @natebosch – one more thing!
FYI @jonasfj

I am running into this exact issue. lol, Im thinking of creating my own websocket library that does not sest content-length. I am also in contact with the GCP cloud run team on this.

/cc @a-siva

@slightfoot are you still seeing that removing content-length fixes WebSocket communication with Cloud Run service?
There is https://github.com/dart-lang/sdk/issues/45139 about the same problem too.

@slightfoot are you still seeing that removing content-length fixes WebSocket communication with Cloud Run service?

Yes. Removing the header resolves it with regards to cloud run.

Thanks for quick reply @slightfoot .
I was curious to see whether it fixes the problem of communicating with sample service as described https://github.com/dart-lang/sdk/issues/45139#issuecomment-794173112 but it doesn't seem to make a difference for me neither at latest dart sdk nor at d63d5d9 you mentioned in your comment above. Sample quarkus java webservice running on Cloud Run seems to just close connection on first data sent by the dart webservice client.

ah, I might have hit a different issue with ws:// versus wss://:
dart run wsclient.dart --url ws://websocket-echo-server-quarkus-xxxxxxxxxx-xx.x.run.app/websocket doesn't work even after content-length header was removed(fails with same symptoms as when content-length was present), but dart run wsclient.dart --url wss://websocket-echo-server-quarkus-xxxxxxxxxx-xx.x.run.app/websocket does indeed work without content-length header.

@aam, thank you very much for looking into this.
@brianschardt @slightfoot, thank you for pointing to the content-length header.
I suggest a modification to websocket_impl.dart if changing http_impl.dart is too wide-ranging. The proposed change can be seen here:
https://github.com/dart-lang/sdk/issues/45139#issuecomment-828344653
With this change, HTTPS/WSS works for me:
dart run wsclient.dart --url wss://websocket-echo-server-quarkus-xxxxxxxxxx-xx.x.run.app/websocket
dart run wsclient.dart --url wss://websocket-echo-server-python-xxxxxxxxxx-xx.x.run.app/

But HTTP/WS does not work even with the content-length header removed:
dart run wsclient.dart --url ws://websocket-echo-server-quarkus-xxxxxxxxxx-xx.x.run.app/websocket
dart run wsclient.dart --url ws://websocket-echo-server-python-xxxxxxxxxx-xx.x.run.app/

There is an interesting log output from the Python echo server:
asyncio.exceptions.IncompleteReadError: 0 bytes read on a total of 2 expected bytes

You can easily start my little Python WebSocket echo server on Google Cloud Run here to try that:
https://github.com/buehren/websocket-echo-server-python#server-cloudrun
As the problem starts in websockets/framing.py, maybe there is something wrong with the frame header?
This seems to be a separate problem. Could it have something to do with the redirect from HTTP to HTTPS?
You can see the exact line here:
https://github.com/aaugustin/websockets/blob/8.1/src/websockets/framing.py#L105
This is the complete log output:
2021-04-28 12:36:09.115 CEST GET 302 0 B 0 ms Dart/2.12 (dart:io) http://websocket-echo-server-python-xxxxxxxxxx-xx.x.run.app/
2021-04-28 12:36:11.600 CEST GET 101 483 B 2.2 s Dart/2.12 (dart:io) https://websocket-echo-server-python-xxxxxxxxxx-xx.x.run.app/
2021-04-28 12:36:11.601 CEST Error in connection handler
2021-04-28 12:36:11.601 CEST Traceback (most recent call last): File "/usr/local/lib/python3.8/site-packages/websockets/protocol.py", line 827, in transfer_data message = await self.read_message() File "/usr/local/lib/python3.8/site-packages/websockets/protocol.py", line 895, in read_message frame = await self.read_data_frame(max_size=self.max_size) File "/usr/local/lib/python3.8/site-packages/websockets/protocol.py", line 971, in read_data_frame frame = await self.read_frame(max_size) File "/usr/local/lib/python3.8/site-packages/websockets/protocol.py", line 1047, in read_frame frame = await Frame.read( File "/usr/local/lib/python3.8/site-packages/websockets/framing.py", line 105, in read data = await reader(2) File "/usr/local/lib/python3.8/asyncio/streams.py", line 721, in readexactly raise exceptions.IncompleteReadError(incomplete, n) asyncio.exceptions.IncompleteReadError: 0 bytes read on a total of 2 expected bytes
2021-04-28 12:36:11.601 CEST
2021-04-28 12:36:11.601 CEST The above exception was the direct cause of the following exception:
2021-04-28 12:36:11.601 CEST
2021-04-28 12:36:11.601 CEST Traceback (most recent call last): File "/usr/local/lib/python3.8/site-packages/websockets/server.py", line 191, in handler await self.ws_handler(self, path) File "wsecho.py", line 8, in echo async for message in websocket: File "/usr/local/lib/python3.8/site-packages/websockets/protocol.py", line 439, in __aiter__ yield await self.recv() File "/usr/local/lib/python3.8/site-packages/websockets/protocol.py", line 509, in recv await self.ensure_open() File "/usr/local/lib/python3.8/site-packages/websockets/protocol.py", line 803, in ensure_open raise self.connection_closed_exc() websockets.exceptions.ConnectionClosedError: code = 1006 (connection closed abnormally [internal]), no reason

It was produced for this run:
> dart run wsclient.dart --url ws://websocket-echo-server-python-xxxxxxxxxx-xx.x.run.app/
2021-04-28 10:36:08.927888 Starting connection attempt to ws://websocket-echo-server-python-xxxxxxxxxx-xx.x.run.app/ ...
2021-04-28 10:36:09.483541 WebSocket readyState: 1
2021-04-28 10:36:11.517937 Sending 'hello'
2021-04-28 10:36:11.679346 CONNECTION DONE!
readyState=3
closeCode=1005
closeReason=

2021-04-28 10:36:13.486038 Sending 'how are you?'
2021-04-28 10:36:15.485670 Sending 'still there?'

Maybe a tcpdump would help to investigate the problem (created from another run):
> sudo tcpdump -vv -i any port 80

tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
10:59:55.292569 IP (tos 0x0, ttl 64, id 48126, offset 0, flags [DF], proto TCP (6), length 60)
    <IP_ADDRESS>.57920 > <IP_ADDRESS>.http: Flags [S], cksum 0x0962 (incorrect -> 0xd9ac), seq<PHONE_NUMBER>, win 64240, options [mss 1460,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
10:59:55.325695 IP (tos 0x0, ttl 64, id 54339, offset 0, flags [none], proto TCP (6), length 44)
    <IP_ADDRESS>.http > <IP_ADDRESS>.57920: Flags [S.], cksum 0x411e (correct), seq<PHONE_NUMBER>, ack<PHONE_NUMBER>, win 65535, options [mss 1460], length 0
10:59:55.325729 IP (tos 0x0, ttl 64, id 48127, offset 0, flags [DF], proto TCP (6), length 40)
    <IP_ADDRESS>.57920 > <IP_ADDRESS>.http: Flags [.], cksum 0x094e (incorrect -> 0x5dea), seq 1, ack 1, win 64240, length 0
10:59:55.363573 IP (tos 0x0, ttl 64, id 48128, offset 0, flags [DF], proto TCP (6), length 382)
    <IP_ADDRESS>.57920 > <IP_ADDRESS>.http: Flags [P.], cksum 0x0aa4 (incorrect -> 0x6a45), seq 1:343, ack 1, win 64240, length 342: HTTP, length: 342
        GET / HTTP/1.1
        user-agent: Dart/2.12 (dart:io)
        connection: Upgrade
        cache-control: no-cache
        accept-encoding: gzip
        sec-websocket-version: 13
        host: websocket-echo-server-python-xxxxxxxxxx-xx.x.run.app
        sec-websocket-extensions: permessage-deflate; client_max_window_bits
        sec-websocket-key: 67fEJW101wAwI7lzopzgLQ==
        upgrade: websocket

10:59:55.363712 IP (tos 0x0, ttl 64, id 54340, offset 0, flags [none], proto TCP (6), length 40)
    <IP_ADDRESS>.http > <IP_ADDRESS>.57920: Flags [.], cksum 0x5785 (correct), seq 1, ack 343, win 65535, length 0
10:59:55.639752 IP (tos 0x0, ttl 64, id 54341, offset 0, flags [none], proto TCP (6), length 368)
    <IP_ADDRESS>.http > <IP_ADDRESS>.57920: Flags [P.], cksum 0xec55 (correct), seq 1:329, ack 343, win 65535, length 328: HTTP, length: 328
        HTTP/1.1 302 Found
        location: https://websocket-echo-server-python-xxxxxxxxxx-xx.x.run.app/
        x-cloud-trace-context: 474229585e7cad4832ea12b1422165bb
        date: Wed, 28 Apr 2021 10:59:55 GMT
        server: Google Frontend
        x-envoy-upstream-service-time: 134
        Content-Length: 0
        Content-Type: text/html; charset=UTF-8
        Connection: close

10:59:55.639780 IP (tos 0x0, ttl 64, id 48129, offset 0, flags [DF], proto TCP (6), length 40)
    <IP_ADDRESS>.57920 > <IP_ADDRESS>.http: Flags [.], cksum 0x094e (incorrect -> 0x5c94), seq 343, ack 329, win 63912, length 0

Looks like this might now be fixed.
https://github.com/dart-lang/sdk/commit/6c254fab89adbeebfb616cdec497260db4cb7cf7
I don't currently have the opportunity to retest to confirm this fix works for WebSocket.connect.

I just tested this with a connection from WebSocketChannel.connect to a Pipedream request viewer, and the content-length header had been correctly removed from the initial GET request.

@brianquinlan – can we close this?


Build issue on Mac M1

Hi, I get the following import error:
>>> import dmlab2d
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/grigoriiguz/opt/anaconda3/envs/rlenv/lib/python3.9/site-packages/dmlab2d/__init__.py", line 21, in <module>
    import dmlab2d.dmlab2d_pybind as dmlab2d_pybind
ImportError: dlopen(/Users/grigoriiguz/opt/anaconda3/envs/rlenv/lib/python3.9/site-packages/dmlab2d/dmlab2d_pybind.so, 0x0002): tried: '/Users/grigoriiguz/opt/anaconda3/envs/rlenv/lib/python3.9/site-packages/dmlab2d/dmlab2d_pybind.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/dmlab2d_pybind.so' (no such file), '/usr/lib/dmlab2d_pybind.so' (no such file)

after building dmlab2d as specified here. It looks like the reason is that it generates  a x_86_64 binary in bazel_bin/dmlab2d. Do you know how to generate arm64 binary instead?

I'm afraid I don't have an M1 development environment and can't test that. I don't know why building from source on an M1 would result in an x86_64 binary, though; that seems implausible. Did you actually build the wheel file from source on the M1, or did you download a prebuilt version from our release on GitHub?

Here is what I am doing:
(rlenv) grigoriiguz@vpn3 lab2d % LUA_VERSION=lua5_1
(rlenv) grigoriiguz@vpn3 lab2d %   C=clang CXX=clang++ bazel build \
      --compilation_mode=opt \
      --dynamic_mode=off \
      --config="${LUA_VERSION}" \
      --verbose_failures \
      --experimental_ui_max_stdouterr_bytes=-1 \
      --sandbox_debug \
      //dmlab2d:dmlab2d_wheel

INFO: Analyzed target //dmlab2d:dmlab2d_wheel (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //dmlab2d:dmlab2d_wheel up-to-date:
  bazel-bin/dmlab2d/dmlab2d-1.0-cp39-cp39-macosx_12_0_x86_64.whl
  bazel-bin/dmlab2d/dmlab2d-1.0-cp39-cp39-macosx_12_0_x86_64.whlname
INFO: Elapsed time: 0.156s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
 That's very odd -- maybe that's a bug in the packaging module? Could you directly run the packaging query for the SOABI tag, like in https://github.com/deepmind/lab2d/blob/89f3dd2c498410b5201d271ca50860f311025ca6/python_system.bzl#L38-L40, and see what that returns?
Can you also confirm that the DSO is actually using the AARCH64 architecture?
If this is just a labelling bug, try renaming the wheel file (or use the "any" tag, e.g. via https://github.com/deepmind/lab2d/blob/89f3dd2c498410b5201d271ca50860f311025ca6/dmlab2d/BUILD#L115-L130).

Here is the output from packaging:
PY_TAGS = struct(interpreter = "cp39", abi = "cp39", platform = "macosx_12_0_x86_64")

and running arch outputs arm64.
After building the local wheel, I get this error now:
>>> import dmlab2d
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/grigoriiguz/projects/speech_acts/meltingpot/lab2d/dmlab2d/__init__.py", line 21, in <module>
    import dmlab2d.dmlab2d_pybind as dmlab2d_pybind
ModuleNotFoundError: No module named 'dmlab2d.dmlab2d_pybind'
>>>

Interesting. That looks like a bug in packaging for sure. Would you perhaps mind reporting that?
I don't know what the correct SOABI tag should be. If you can find out, try renaming the wheel file accordingly.
As for why the any wheel doesn't work (and I assume you pip-installed it after building it?), I'm afraid that's not enough information to tell. I'd try to debug why the module doesn't load: on Linux, I'd perhaps start with strace and LD_DEBUG to find out if a) the DSO is actually found in the right place, and if yes, b) what goes wrong during loading. I don't know the corresponding MacOS/BSD tools, though.

Hmm I ran this and it looks like the issue is with my installation of Python itself?
>>> import sysconfig
>>> sysconfig.get_platform()
'macosx-10.9-x86_64'

as for the wheel itself, I also tried pip installing the standard dmlab2d-1.0-cp39-cp39-macosx_12_0_x86_64.whl one I am getting, and now I have the same no module named 'dmlab2d.dmlab2d_pybind' error. Thanks for help, I'll try to find the analogous tracing tools for MacOS.

Nevermind, please ignore the above. The no module named 'dmlab2d.dmlab2d_pybind' error was because I was inside the lab2d repo, in all cases. But I still have the ImportError, even if I pip install the local wheel.

Ok, I finally figured out the issue. I had x86_64 version of Anaconda, and in case someone is having the same issue, the arm64 version can be found here. After installing this, bazel was still generating x86_64 wheel and I was getting that this version is not compatible with the current platform. However, installing the local wheel worked perfectly and I can import dmlab2d just fine now.
@tkoeppe feel free to close this issue if you don't have any questions.

Great! Could you check the SOABI tag reported by packaging again for the corrected Python setup?

I get this now:
PY_TAGS = struct(interpreter = "cp39", abi = "cp39", platform = "macosx_12_0_arm64")

Looks like this was ultimately sorted out.


Change UI

It's amazing project it definitely boom
I have tested everything is working good and fast.
I have Small Suggestion Change Display UI , For better interface.
Thanks Team to building this project on Klaytan ecosystem

@chetan8768 Thank you for your testing and we hope to continue delivering high quality features and improvements!


Backup blocking creation

Does this backup block the creation of a server with the same name in the original subscription?

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

ID: 748bb09a-b4be-34aa-bcde-91bce6244f5a
Version Independent ID: 0f88c945-ddf5-2eb1-357f-8b751ea2eccf
Content: Restore a dropped Azure Database for  PostgreSQL - Flexible Server
Content Source: articles/postgresql/flexible-server/how-to-restore-dropped-server.md
Service: postgresql
Sub-service: flexible-server
GitHub Login: @kabharati
Microsoft Alias: kabharati

@asaltv
Thanks for your feedback! We will investigate and update as appropriate.

Yes you need to use a different name

I would expect it behaves like a soft delete for the same subscription and removes the backup one, or that it is included in the documentation

@asaltv I understand your concern. However, when you delete a server in Azure Database for PostgreSQL, the server name becomes unavailable for reuse for a period of time
I apologize if the documentation did not meet your expectations. If you have any further questions or concerns, please let me know

Are you not updating the documentation? Do you want more people to get confused?


Ability to hard hide extra columns in tables used for report actions

Guidelines
Please note that GitHub issues are only meant for bug reports/feature requests.
Feature request template
Is your feature request related to a problem? Please describe.
Yes I want to use report actions as a type of selector to populate parameters.  I want to - in edit mode - to hide all other columns other than the "click" column.
Describe the solution you'd like
In edit mode, select a table column for hiding.
Have it stay hidden on refresh when not in edit mode.
Describe alternatives you've considered
I tried setting the column widths in the table to proportional [0] and also 0 px.
Columns are still visible.
Additional context
here is a screenshot showing all the extra columns.
I'm using the table as a report action selection mech - because I can populate a bunch of params at once.
These params are mapped to  markdown text for display in the markdown component.
Thank you!
-Michael
current

desired

You can do this by prefixing alias of the columns to be hidden with double underscore

Dear @graphadvantage, thank you for pushing this issue. To hide a column, you can add the prefix __ (double underscore) to the names of the columns you want to hide. I will then close this issue because not needed


Allow creating duplicate BaseModel with context prefilled

Initial Checks

[X] I have searched Google & GitHub for similar requests and couldn't find anything
[X] I have read and followed the docs and still think this feature is missing

Description
Prefilling context in Pydantic would be very useful in some circumstances. If an approach like this is interesting to you, I'll be willing to submit a PR :)
Example implementation
# This is on the BaseModel class. A procedural approach could also be considered
@classmethod
def with_context(cls, context: Any | None):
    class BaseModelWithContext(cls):
        def __init__(self, /, **data: Any):
            self.__pydantic_validator__.validate_python(
                data,
                self_instance=self,
                context=context,
            )

        model_dump = functools.partialmethod(cls.model_dump, context=context)  # type: ignore
        model_dump_json = functools.partialmethod(cls.model_dump_json, context=context)  # type: ignore

    BaseModelWithContext.model_validate = functools.partial(
        BaseModelWithContext.model_validate, context=context
    )
    BaseModelWithContext.model_validate_json = functools.partial(
        BaseModelWithContext.model_validate_json, context=context
    )
    BaseModelWithContext.model_validate_strings = functools.partial(
        BaseModelWithContext.model_validate_strings, context=context
    )

    return BaseModelWithContext

Reason 1
Currently, BaseModel.__init__ cannot take context. (https://github.com/pydantic/pydantic/issues/5623) Having the option to prefill the context would mitigate this in some situations, especially if the same context is used multiple times with the same model.
Reason 2 (more important)
This would allow using a model requiring context, in areas where context is not supported. For example FastAPI:
class WeatherData(BaseModel):
    temperature: float
    time: Annotated[
        datetime,
        AfterValidator(lambda t, info: t.astimezone(info.context['zoneinfo'])),
    ]

WeatherDataWithContext = WeatherData.with_context(
    {'zoneinfo': config.zoneinfo}
)

@app.post('weather-data')
def post_weather_data(data: WeatherDataWithContext):
    save_data(data)
    return {'message': 'success'}

Affected Components

[ ] Compatibility between releases
[X] Data validation/parsing
[X] Data serialization - .model_dump() and .model_dump_json()
[ ] JSON Schema
[ ] Dataclasses
[ ] Model Config
[ ] Field Types - adding or changing a particular data type
[ ] Function validation decorator
[ ] Generic Models
[ ] Other Model behaviour - model_construct(), pickling, private attributes, ORM mode
[ ] Plugins and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

A few potential workarounds/approaches:

Use a closure.
Use class var as config.

Closure Approach:
from typing import Annotated, ClassVar, Self
from annotated_types import Gt

from pydantic import BaseModel, model_validator, AfterValidator

def to_m(min_age: int) -> type[BaseModel]:
    class User(BaseModel):
        age: Annotated[int, Gt(min_age)]

    return User

UserGt10 = to_m(10)
UserGt0 = to_m(0)

Use class var as config

class UserWithAge(BaseModel):
    MIN_AGE: ClassVar[int] = 0

    age: int

    @model_validator(mode="after")
    def validate_age(self) -> Self:
        if self.MIN_AGE < self.age:
            return self
        raise ValueError(f"Age ({self.age}) must be >{self.MIN_AGE}")

class UserWithGt10(UserWithAge):
    MIN_AGE: ClassVar[int] = 10

class UserWithGt100(UserWithAge):
    MIN_AGE: ClassVar[int] = 100


How does Xrepo force using xrepo managed packages?

Looking at the output of xrepo -vD -f "gflags=true,unwind=true,shared=true,mt=true" glog:
checking for xmake::libunwind ... libunwind v1.5
checking for xmake::gflags ... no
checking for pacman ... no
checking for emerge ... no
checking for brew ... no
checking for pkg-config ... /usr/bin/pkg-config
checking for gflags ... no
checking for xmake::glog ... no
note: install or modify (m) these packages (pass -y to skip confirm)?
in builtin-repo:
......
cmake -DBUILD_TESTING=OFF -DGFLAGS_REGISTER_BUILD_DIR=OFF \
    -DGFLAGS_REGISTER_INSTALL_PREFIX=OFF -DCMAKE_BUILD_TYPE=Release
    -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DBUILD_gflags_LIB=ON \
    -DBUILD_gflags_nothreads_LIB=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
    -DCMAKE_INSTALL_PREFIX=/home/cyf/.xmake/packages/g/gflags/v2.2.2/f8a8ee721d4f43e1bace22f4400cc9bf \
    -DCMAKE_INSTALL_LIBDIR=/home/cyf/.xmake/packages/g/gflags/v2.2.2/f8a8ee721d4f43e1bace22f4400cc9bf/lib \
    -G "Unix Makefiles" -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
    /home/cyf/.xmake/cache/packages/2202/g/gflags/v2.2.2/source/gflags-2.2.2
......
-- Looking for gflags namespace
-- Looking for gflags namespace - gflags
......
-- Found Unwind: /home/cyf/.xmake/packages/l/libunwind/v1.5/f1dc8f75081f4455a49e73f90bdc171a/include (found version "1.5.0")

Several questions here:

Is there any command line option to avoid the use of system installed libraries for dependencies?

I accomplish this by adding system = false in glog xmake.lua:if config == "gflags" then
    package:add("deps", "gflags", {system = false})

A command line option would allow us to control this in xrepo-cmake

When building glog, how does Xrepo make glog find the gflags and libunwind managed by Xrepo?

I didn't see any thing related in the cmake configure command
I've little experience with Lua, tried adding print and print(debug.traceback()) in source code but failed to locate the key point

Sorry, closing this issue because I guess this is more appropriate to post under xmake project.


GH-187 Marketo Form Profile Service

Description
Added a new feature to the Marketo component
Related Issue
https://github.com/adobe/adobe-dx/issues/187
Motivation and Context
Improve user experience by reducing the number of fields to fill
How Has This Been Tested?
Unit tests + manual tests.
Screenshots (if appropriate):

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x ] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x ] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x ] All new and existing tests passed.

Documentation:
Marketo.md

@auniverseaway closing this as the internal project is put on hold.


Feature: Show a list of realtime app editors

Description
Added a component to editor header to show a list of users collaborating on an application.
Fixes #5600
Depends on https://github.com/appsmithorg/appsmith/issues/3548
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Manually

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Test coverage results :test_tube:
:green_circle: Total coverage has increased
// Code coverage diff between base branch:release and head branch: feature/fe-5600-show-cocurrent-app-editors

Status
File
% Stmts
% Branch
% Funcs
% Lines

:green_circle:
total
51.76 (0.06)
33.62 (-0.02)
29.6 (0.05)
52.41 (0.05)

:sparkles: :new:
app/client/src/actions/appCollabActions.ts
75
100
0
75

:sparkles: :new:
app/client/src/constants/AppCollabConstants.ts
100
100
100
100

:green_circle:
app/client/src/pages/Editor/EditorHeader.tsx
89.92 (0.09)
56.86 (0)
75 (0)
89.38 (0.09)

:sparkles: :new:
app/client/src/pages/Editor/RealtimeAppEditors.tsx
86.96
33.33
57.14
86.96

:sparkles: :new:
app/client/src/reducers/uiReducers/appCollabReducer.ts
83.33
100
0
83.33

:green_circle:
app/client/src/sagas/WebsocketSagas/WebsocketSagas.ts
23.33 (4.58)
11.76 (1.23)
26.67 (13.34)
27.45 (5.23)

:green_circle:
app/client/src/sagas/WebsocketSagas/handleSocketEvent.ts
20.41 (2.23)
0 (0)
0 (0)
21.74 (2.23)

:sparkles: :new:
app/client/src/selectors/appCollabSelectors.tsx
87.5
0
66.67
100

:red_circle:
app/client/src/utils/autocomplete/TernServer.ts
50.47 (-0.24)
37.72 (-0.88)
36.21 (0)
55.08 (-0.27)

/ok-to-test sha=f763566


Unify kubectl usage output across help output

What would you like to be added:
Some subcommands such as kubectl describe accept formatted arguments that aren't explicitly marked as valid inside the --help output. For instance, kubectl describe --help reports that only the following syntax is accepted:
kubectl expose (-f FILENAME | TYPE NAME)
When it should be:
kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME)
Why is this needed:
To have consistency over the manpages.

@explogx we would accept a PR if you'd like to audit the help outputs for this.
/triage accepted
/priority backlog

@eddiezane sure I'll do this when I have time

/assign @explogx


Compile with librsvg

It would be great if you could add librsvg to the host and run requirements.
This is needed for Graphviz to be able to, for example, make graphs where SVG images are used as node images while rendering to PDF.

A PR would be welcome 😀

Getting this pull request accepted would be really be great, as I am depending on librsvg for graphviz too.
I made the same pull request in August (#48), but have not heard of any update.

Great, thanks!
(PR #48 and #54 are then obsolete)


Missing top-level "info:" crashes

If the specification has no "info" the diff crashes.

Could you give me the stacktrace of the crash ?
As written in the OpenAPI specification, info is required. So, i think it's the parser who refuse to parse the specification.

Yes, exactly. Sorry.


Help with error could not find host-local-ptp plugin

Trying to run rkt with: --port=web:6000 --private-net I see this error:
Failed to setup network: error adding network "default": could not find "host-local-ptp" plugin

I don't see any particular requirement besides iptables.
aledbf:tools$ ./rkt version
rkt version 0.7.0
appc version 0.6.1

Running
Linux rocket-science 3.13.0-52-generic #85-Ubuntu SMP Wed Apr 29 16:44:17 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Any idea?
Thanks

@krnowak thanks

Reopen again as @philips run into the same issue when running rkt v0.7.0 and v0.8.0 on coreos.
As well as @lleszczu reported the same problem when running rkt with kvm stage1.

@yifan-gu I just checked it on latest CoreOS ( alpha 774.0.0 ) with rkt 0.8.0 and it works just fine ( tested with both systemd and lkvm backends ). I tested it on busybox and redis and I was able to connect to redis from host.
@philips, @yifan-gu  can you please give us some logs ?

@yifan-gu are you sure this reproduced on 0.8.0?

@jonboulle I didn't, I was reporting on behalf of @philips as his logs from the rkt pod showed this error message.
core-01 core # systemctl status k8s_d4e5cff7-452d-11e5-a960-000c295740c3_392ed33f-9d0c-4f22-975f-76bcd25ea7e4.service
● k8s_d4e5cff7-452d-11e5-a960-000c295740c3_392ed33f-9d0c-4f22-975f-76bcd25ea7e4.service
  Loaded: loaded (/run/systemd/system/k8s_d4e5cff7-452d-11e5-a960-000c295740c3_392ed33f-9d0c-4f22-975f-76bcd25ea7e4.service; static; vendor preset: disabled)
  Active: active (exited) (Result: exit-code) since Mon 2015-08-17 23:36:00 UTC; 10s ago
 Process: 28633 ExecStart=/usr/bin/rkt run-prepared --mds-register=false --private-net 392ed33f-9d0c-4f22-975f-76bcd25ea7e4 (code=exited, status=6)
Main PID: 28633 (code=exited, status=6)
  Memory: 0B
     CPU: 0
  CGroup: /system.slice/k8s_d4e5cff7-452d-11e5-a960-000c295740c3_392ed33f-9d0c-4f22-975f-76bcd25ea7e4.service

Aug 17 23:36:00 core-01 systemd[1]: Started k8s_d4e5cff7-452d-11e5-a960-000c295740c3_392ed33f-9d0c-4f22-975f-76bcd25ea7e4.service.
Aug 17 23:36:00 core-01 systemd[1]: Starting k8s_d4e5cff7-452d-11e5-a960-000c295740c3_392ed33f-9d0c-4f22-975f-76bcd25ea7e4.service...
Aug 17 23:36:00 core-01 rkt[28633]: 2015/08/17 23:36:00 Setting up stage1
Aug 17 23:36:00 core-01 rkt[28633]: 2015/08/17 23:36:00 Writing image manifest
Aug 17 23:36:00 core-01 rkt[28633]: 2015/08/17 23:36:00 Wrote filesystem to /var/lib/rkt/pods/run/392ed33f-9d0c-4f22-975f-76bcd25ea7e4
Aug 17 23:36:00 core-01 rkt[28633]: 2015/08/17 23:36:00 Writing image manifest
Aug 17 23:36:00 core-01 rkt[28633]: 2015/08/17 23:36:00 Pivoting to filesystem /var/lib/rkt/pods/run/392ed33f-9d0c-4f22-975f-76bcd25ea7e4
Aug 17 23:36:00 core-01 rkt[28633]: 2015/08/17 23:36:00 Execing /init
Aug 17 23:36:00 core-01 rkt[28633]: Failed to setup network: error adding network "default": could not find "host-local-ptp" plugin
Aug 17 23:36:00 core-01 systemd[1]: k8s_d4e5cff7-452d-11e5-a960-000c295740c3_392ed33f-9d0c-4f22-975f-76bcd25ea7e4.service: Main process exited, code=exited, status=6/NOTCONFIGURED
Hint: Some lines were ellipsized, use -l to show in full.

Got same error on alpha 774.0.0, then downloaded v0.8.0 rkt and then it works.

@yifan-gu since that output shows /usr/bin/rkt and v0.8.0 isn't in the image yet it seems most likely that was still v0.7.0. I'm going to close this out unless we see more positive proof that this is still an issue.


Find/develop solution to retrieve all replies to a list of tweets

e.g. based on this:
https://gist.github.com/edsu/54e6f7d63df3866a87a15aed17b51eaf
or simply via scraping.
Got asked for a solution to this quite a few times this year.

Do I understand correctly, they want to get reply's from a fixed set of comment ID's or do they want to specify a user? I dont really understand where they want to start. In Theory a scraper would probably be almost as time intense as doing this over the API. I really would rather go the "scrape way" (maybe because i'm getting more familiar with standard scraping).
I could probably code a scraper where you could specify a list of usersnames/userlinks, that the scraper then will visit and scrape their comments+replies. Than it would export those to whatever file format that is wanted. Should be pretty solid with selenium. But it would definitely take more time than a instagram scraper (The sourcecode of a twitter site is a bit more complex, and finding the right spots seems to be time consuming)

To a specific user would be easy. The other thing is more challenging. We don't have to prioritise this now. It is just something I wanted to note for later.
I'd be more comfortable with the API approach, which is actually pretty easy. But we can also decide later to do both. In any case, this does not have to happen before our "Twitter Semester".

So probably the best way is a hashtag search > fetch those comments > fetch their replies > option to ecxtract into one or multiple files! Atm i dont see the time for doing it, as we got alot to do with the wiki and more coming in 2020. But if i catch some spare time i will be very pleased to get into the issue and the twitter sphere :)

This should solve the problem: https://twittercommunity.com/t/new-conversation-id-field-and-operator-makes-it-possible-to-easily-retrieve-complete-conversation-threads/139613


Bug 2091951: core: increase liveness probe timeout to 2s

we have noticed multiple failures because of the probe
failing, most of the time it's due to fewer resources.
But increasing timeout fixes that, so increasing the
probe timeout to 2s from default 1s so that it will
give more time to probe before failing.
Signed-off-by: subhamkrai<EMAIL_ADDRESS>(cherry picked from commit 62f0fb2b1d6d130d3019472036c4e164ce50a0a2)

Description of your changes:
Which issue is resolved by this Pull Request:
Resolves #
Checklist:

[ ] Commit Message Formatting: Commit titles and messages follow guidelines in the developer guide.
[ ] Skip Tests for Docs: Add the flag for skipping the build if this is only a documentation change. See here for the flag.
[ ] Skip Unrelated Tests: Add a flag to run tests for a specific storage provider. See test options.
[ ] Reviewed the developer guide on Submitting a Pull Request
[ ] Documentation has been updated, if necessary.
[ ] Unit tests have been added, if necessary.
[ ] Integration tests have been added, if necessary.
[ ] Pending release notes updated with breaking and/or notable changes, if necessary.
[ ] Upgrade from previous release is tested and upgrade user guide is updated, if necessary.
[ ] Code generation (make codegen) has been run to update object specifications, if necessary.

@travisn ^^


fix: allow two majors of therefore

Current dependencies on/for this PR:

main

PR #57   👈

This comment was auto-generated by Graphite.