VsCode will not close while trying to re-establish remote connection

Does this issue occur when all extensions are disabled?: No, but can't get a remote without the extension :)

Version: 1.62.2 (system setup)
Commit: 3a6960b964327f0e3882ce18fcebd07ed191b316
Date: 2021-11-11T20:56:38.428Z
Electron: 13.5.2
Chrome: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.19044

Steps to Reproduce:

Connect to a codespace
Wait for it to suspend and vscode enters a trying to reconnect state (which won't succeed as the remote is gone)
Attempt to close vscode via the X button
No response from the X button, a lot of modals popping up

Possibly related to https://github.com/microsoft/vscode/issues/136358

Please try updating (.3 released today) and see if it works now

Still mostly repros in 1.62.3, it does actually close when it gets to the error toast, but still goes through a lot of modals in the meantim

e:

@Tyriar is this related to #136358 or is codespaces blocking exit?

its stays in the reconnecting loop!
Is there a possibility that we can downgrade to 1.62.2 ?
Thanks!

@chrmarti @aeschli any ideas? The fix for the candidate was pretty straightforward; just swallow any errors that come about from the terminal shutting down. So I doubt this is related to the terminal.

I looked at the window logs when this happens, and it looks like it might still be a terminal veto issue? I'm on 1.62.3.
[2021-11-19 10:49:54.466] [renderer1] [error] {"isTrusted":true}
[2021-11-19 10:49:54.466] [renderer1] [info] [remote-connection][Management   ][a1114…][reconnect] starting reconnecting loop. You can get more information with the trace log level.
[2021-11-19 10:49:54.466] [renderer1] [info] [remote-connection][Management   ][a1114…][reconnect] resolving connection...
[2021-11-19 10:49:54.477] [renderer1] [info] [remote-connection][ExtensionHost][cd6ec…][reconnect] received socket close event (wasClean: false, code: 1006, reason: ).
[2021-11-19 10:49:54.478] [renderer1] [error] {"isTrusted":true}
[2021-11-19 10:49:54.478] [renderer1] [info] [remote-connection][ExtensionHost][cd6ec…][reconnect] starting reconnecting loop. You can get more information with the trace log level.
[2021-11-19 10:49:54.478] [renderer1] [info] [remote-connection][ExtensionHost][cd6ec…][reconnect] resolving connection...
[2021-11-19 10:58:51.557] [renderer1] [warning] [lifecycle] onBeforeShutdown is taking a long time, pending operations: veto.terminal
[2021-11-19 10:58:54.865] [renderer1] [warning] [lifecycle] onBeforeShutdown is taking a long time, pending operations: veto.terminal
[2021-11-19 10:58:59.350] [renderer1] [warning] [lifecycle] onBeforeShutdown is taking a long time, pending operations: veto.terminal
[2021-11-19 10:59:03.798] [renderer1] [warning] [lifecycle] onBeforeShutdown is taking a long time, pending operations: veto.terminal

From what I can tell, it looks like the terminal veto check is hanging rather than throwing, so the try/catch solution might not be fully helping if it's not getting that far.

Looking into it now. The warning seems to show after 5 seconds:
https://github.com/Microsoft/vscode/blob/0413d4a596931d8b3634e76382109adc94e8a81a/src/vs/workbench/services/lifecycle/electron-sandbox/lifecycleService.ts#L101-L103

I think the root cause is the message to the persist the terminals to the remote side is going out but never getting a reply since the Codespace is suspended.

Mostly seems to reproduce with a test resolver window and killing the server.

Apparently https://github.com/microsoft/vscode/commit/5af09003bc2339612703e7f5bb1a97d97136ac07 never made it to the main branch which fixes my test resolver repro, but the issue says that it repro's in both 1.62.2 and 1.62.3 so it must be a different problem. Will keep looking.

@Tyriar All RPC calls done to the remote side will simply be queued up when the window is disconnected. These RPC calls will not throw an error as long as there is not a permanent connection error. That is how our reconnection is implemented, it happens transparently to the RPC proxy users.
The state of the connection can be spied on using:
const connection = this.remoteAgentService.getConnection();
if (connection) {
	this._register(connection.onDidStateChange((e) => { console.log(e); }));
}

My personal suggestion would be to never include awaited RPC calls in the veto or shutdown path, because veto and shutdown should not take arbitrary time. It is possible that an RPC call takes up to 3 hrs until reconnection gives up.

@alexdima thanks for the info, do you know if there an easy way to reproduce this case out of sources?

My personal suggestion would be to never include awaited RPC calls in the veto or shutdown path, because veto and shutdown should not take arbitrary time.

This is how the process revive stuff works in the terminal, it's disabled in web because of this limitation. I don't think persisting the terminal contents constantly is really an option due to the amount of changes that happen in the terminal. We could also do it similar to hot exit where it gets debounced, but that's a lot of disk IO for every command run in the terminal when it works pretty well now.

do you know if there an easy way to reproduce this case out of sources?

I'm sorry, I don't quite know how to reproduce this specific case. From the OP:

Connect to a codespace
Wait for it to suspend and vscode enters a trying to reconnect state (which won't succeed as the remote is gone)

What I would expect here is that the Codespaces resolver would observe that the codespace is suspended and would either wake it up or throw a permanent reconnection error which would end our reconnection loop.

To simulate this from source, I think source changes would need to be done to the test resolver.  Maybe this child process can be killed after a setTimeout of 5s and maybe the doResolve method can then proceed to always return the previous value it returned. But I am not 100% sure if this behavior would match the Codespaces resolver. The best would be to repro this with the Codespaces resolver and take a look at the window logs to see what it returns from its resolve call.

I pushed a fix to allow waiting a maximum of 2 seconds for the persistence, this should only ever be hit on very high latency connections or when the remote is reconnecting like in this issue.

I'm not sure if I hit the exact cases described here, but I was able to get out of the codespace by using the x while a dialog was showing.


test: ignore more tests

resourceType and CDP related

Was based on the test expectation comment which turned out to be outdated (removed)


host website on github pages

hey phpnode / codemix - thanks for fork and rollback : )
could we host the website on github pages?
https://pegjs.org/online looks like a static html-javascript page, so gh-pages should work
.. either by creating a branch gh-pages, or a separate repository, like pegjs-pages
hope the license says yeah

sounds good to me, @mdamien has a fork of the editor with nice inline errors, https://github.com/pegjs/pegjs/issues/658 we should try and incorporate that if possible. I haven't checked the licensing situation for the site yet tho.

just found the build scripts in https://github.com/pegjs/pegjs/tree/master/website
so they have the same license = MIT

Status: I've checked all the files into /docs, turned on Pages hosting for that, and am in the process of getting DNS fixed up for peggyjs.org, which will take a day or two for all of the DNS propagation.

Note that there's still work to do to disentangle the webpack bits; the code that some parts of the site are using is still peg.js branded.

Fixed, see https://peggyjs.org/ which serves up https://github.com/peggyjs/peggy/tree/main/docs

whoops, I had it on www.peggyjs.org, but I'm fixing that up.  Leaving this open until everything settles back down.

Looks like that's holding now.  www.peggyjs.org 301's to peggyjs.org.  Details for anyone who finds this later:
From dreamhost:
www CNAME peggyjs.github.io
@ ALIAS peggyjs.github.io
@ NS ns1.dreamhost.com.
@ NS ns2.dreamhost.com.
@ NS ns3.dreamhost.com.

GitHub pages set to serve '/docs' from the main branch, and then https://github.com/peggyjs/peggy/blob/main/docs/CNAME contains:
peggyjs.org

Note that GitHub Pages will allow /docs/foo.html to be requested as https://peggyjs.org/foo, with no .html extension, which is good, because there are likely still some links in the page without an extension.


control the webview window

hello, i checked out this library and it's very good, the best webview implementation for nim.
but is there a way to control the webview window, like a way to set the position and access win32/gtk api of this window?
in c++ you could access the hwnd of the window (like here: https://github.com/webview/webview/issues/642#issuecomment-1116763000). i couldn't find any way to do this from nim unfortunately.
thanks!

Accessing the window handle may be done with either getWindow() or getNativeHandle().


can not link boost-log

gcc 7.5
ubuntu18.04
/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_log.a(exceptions.o)：在函数‘boost::exception_detail::error_info_container_impl::diagnostic_information(char const*) const’中：
/root/vcpkg/vcpkg/installed/x64-linux/include/boost/exception/info.hpp:102：对‘std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()’未定义的引用
/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_log.a(exceptions.o)：在函数‘std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::exception_detail::object_hex_dump<boost::error_info<boost::errinfo_at_line_, int> >(boost::error_info<boost::errinfo_at_line_, int> const&, unsigned long)’中：
/root/vcpkg/vcpkg/installed/x64-linux/include/boost/exception/detail/object_hex_dump.hpp:39：对‘std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()’未定义的引用
/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_log.a(exceptions.o)：在函数‘std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::exception_detail::object_hex_dump<boost::error_info<boost::log::v2s_mt_posix::type_info_info_tag, boost::typeindex::stl_type_index> >(boost::error_info<boost::log::v2s_mt_posix::type_info_info_tag, boost::typeindex::stl_type_index> const&, unsigned long)’中：
/root/vcpkg/vcpkg/installed/x64-linux/include/boost/exception/detail/object_hex_dump.hpp:39：对‘std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()’未定义的引用
/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_log.a(exceptions.o)：在函数‘std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::exception_detail::object_hex_dump<boost::error_info<boost::log::v2s_mt_posix::attribute_name_info_tag, boost::log::v2s_mt_posix::attribute_name> >(boost::error_info<boost::log::v2s_mt_posix::attribute_name_info_tag, boost::log::v2s_mt_posix::attribute_name> const&, unsigned long)’中：
/root/vcpkg/vcpkg/installed/x64-linux/include/boost/exception/detail/object_hex_dump.hpp:39：对‘std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream()’未定义的引用
/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_log.a(exceptions.o)：在函数‘std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::exception_detail::object_hex_dump<int>(int const&, unsigned long)’中：

@57Hao, could you provide us more information? like the repro steps.

There is two gcc in my PC, one is gcc-7.5,which is from apt store.the other is gcc-10.1,I compiled it myself，using make install.
This is CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
set(ProjectName "logTest")
message(STATUS "current projectName is ${ProjectName}")
project(${ProjectName})

find_package(Boost REQUIRED log)
aux_source_directory(. SRC_LIST)
add_executable(${ProjectName} ${SRC_LIST})
target_include_directories(${ProjectName} PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(${ProjectName} PRIVATE ${Boost_LIBRARIES})
message(STATUS ${Boost_INCLUDE_DIRS})
message(STATUS ${Boost_LIBRARIES})

using cmake .. -DCMAKE_TOOLCHAIN_FILE=/root/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake, output is
-- current projectName is logTest
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc - works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ - works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found Boost: /root/vcpkg/vcpkg/installed/x64-linux/include (found version "1.73.0") found components: log date_time log_setup filesystem thread regex chrono atomic
-- /root/vcpkg/vcpkg/installed/x64-linux/include
-- /root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_log.a/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_date_time.a/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_log_setup.a/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_filesystem.a/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_thread.a-lpthread/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_regex.a/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_chrono.a/root/vcpkg/vcpkg/installed/x64-linux/debug/lib/libboost_atomic.a
-- Configuring done
-- Generating done
-- Build files have been written to: /root/project/logTest/b

then using make , and gcc throw error

@57Hao, could you provide us the src file? I created a simple test.cpp which only include the 'boost/log/core.hpp', I can't repro this issue, from the log, it could find the log component successfully, so it should missing something here when using it.
A simple repro code which contains CMakeLists.txt and test.cpp file would help us repro this issue quickly.

@57Hao, does this still be a problem for you?

no ，thanks


ast/functions: Add built-in function tidb_decode_sql_digests

What problem does this PR solve?
This PR adds a new built-in function tidb_decode_sql_digests  which is used in Lock View to convert SQL digest arrays into normalized SQL statement arrays.
What is changed and how it works?
Added new built-in function tidb_decode_sql_digests  .
Check List
Tests

Unit test

Code changes

Has exported function/method change

Side effects

Related changes

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

/merge


ci: fix changelog generation

I removed this last time, but seems it is needed after all to correctly generate the changelog. See the changelog in #940 for what's the issue

Codecov Report

Merging #941 (d37c6d6) into main (82863f3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #941   +/-   ##
=======================================
  Coverage   87.75%   87.75%
=======================================
  Files         475      475
  Lines       11358    11358
  Branches     1879     1879
=======================================
  Hits         9967     9967
  Misses       1324     1324
  Partials       67       67

Continue to review full report at Codecov.

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


Request: mobile-friendliness

Nowadays, many people access websites from their phones. Other GitHub Pages themes support mobile-friendliness, but Time Machine doesn't. This could be done by just showing the full width of the page when on mobile and extending the bottom of the page to the bottom of the phone screen.

Does anyone want to try making the theme mobile friendly? I hope it eventually gets added.

It's unfortunate that the devs don't seem to care about the mobile experience. I had just assumed that any modern static site template would be responsive, but I guess that's not the case.


Add Schema for Wallet Registry

Creates a new _wallets\ folder for a 'wallet registry'. Keplr is the first example used. There is some JSON schema validation, however scripting is likely required to be able to fully automate data validation.
If used, will work to gather more information about the various wallets. More complete information about Keplr, as well as Leaf, Cosmostation Wallet, Metamask, and more.

let's look at using nodejs for the scripts?

I'd like to suggest that the 'suggestible' property (open to renaming, e.g., to 'permissionless') could be just a temporary field, as this information is technically derivable from data elsewhere in the Chain Registry, and thus doesn't need manual specification.

Here I propose an alternate form that is a bit simpler.
{
  "$schema": "../wallet.schema.json",
  "wallet_name": "keplr_extension",
  "pretty_name": "Keplr Extension",
  "website": "https://www.keplr.app/",
  "platforms": [
    "desktop_browser_chrome"
  ],
  "has_suggest_feature": true,
  "supported_chains": [
      "cosmoshub",
      "osmosis"
  ]
}

What was native for in the supported_chains objects? I could maybe see the need for objects, but an array of chain_names in supported_chains is pretty much all the info I believe we need to know.
suggestible would be very redundant, and could be a maintenance issue. If a wallet has_suggest_feature:true, then it would allow us to suggest any chain, so we shouldn't have to arbitrarily list every suggestible chain. This list (similar to asset lists) should be the natively supported chains.

Here I propose an alternate form that is a bit simpler.
{
  "$schema": "../wallet.schema.json",
  "wallet_name": "keplr_extension",
  "pretty_name": "Keplr Extension",
  "website": "https://www.keplr.app/",
  "platforms": [
    "desktop_browser_chrome"
  ],
  "has_suggest_feature": true,
  "supported_chains": [
      "cosmoshub",
      "osmosis"
  ]
}

What was native for in the supported_chains objects? I could maybe see the need for objects, but an array of chain_names in supported_chains is pretty much all the info I believe we need to know.
suggestible would be very redundant, and could be a maintenance issue. If a wallet has_suggest_feature:true, then it would allow us to suggest any chain, so we shouldn't have to arbitrarily list every suggestible chain. This list (similar to asset lists) should be the natively supported chains.

I'd be on board for this way. But should we include a way to convey the requirements for suggesting a chain? Could be new set of schema files?
E.G., keplr_extension_suggest.schema.json
"properties": {
  "chain_id": {
    "type": "string"
  },
  "slip44": {
    "type": "number"
  }
  "apis": {
    "type": "object",
    "properties": {
      "rpc": {
        "type": "array",
        "minContains": 1
      },
     "rest": {
        "type": "array",
        "minContains": 1
      },
      "required": [
        "rpc",
        "rest"
      ]
    }
  },
  ...
},
"required": [
  "chain_id",
  "slip44",
  "apis",
  ...
]

I think I would say yes, would be super nice to have. Issue is, this feature could block in the sense that, it's a bit more complex.
For example, in chain-registry->keplr types we need BOTH Chain and AssetList[] to construct the data necessary. Is there a way describe that requirement across chain and assetlist?

Although we can require data from both files, you're right in that a truly thorough validation can not be done by looking at the files separately. We'd need something like a combined file to be able to do it with JOSN schema validation alone.

@pyramation Please see how the code has been modified much closer to your suggestion. Specification of suggest requirements and validation of such has just been left out of scope for now.

Can we move this to a new repo?  Want to keep chain registry about chain and ibc metadata

@sunnya97 and I were chatting we also think we should potentially include install links.
Additionally, if it's supported on firefox vs. chrome, ios, android.
E.g. for keplr:
Chrome: https://chrome.google.com/webstore/detail/keplr/dmkamcknogkgcdfhhbddcghachkejeap?hl=en
Firefox: https://addons.mozilla.org/en-US/firefox/addon/keplr/
Android: https://play.google.com/store/apps/details?id=com.chainapsis.keplr
IOS: https://apps.apple.com/us/app/keplr-wallet/id1567851089

Can we move this to a new repo? Want to keep chain registry about chain and ibc metadata

Does this imply that we should also eventually remove all data about third-party services (anything not considered neutral metadata) to a separate repo? E.g., a repo for block explorers, and a repo for informational APIs (like CoinGecko, CMC, Imperator, etc.), and a repo for blockchain endpoints, etc.?
Whatever we did with wallets, I was hoping to do something similar with Explorers next, and keep going from there.
Also, sure, I see the reason for a new repo and could be fun to build with @pyramation.

Cosmos Wallet Registry just published: https://github.com/cosmos/wallet-registry


Week 4 Day 5 update: web components

I like this! Great work. I left a few minor comments. Just one thing, I think we miss a bit of a stronger point about why web components make sense for PWAs. The article says that the maintainability aspect isn't only true for PWAs, but for all apps. And the article doesn't provide other arguments. We might want to elaborate on the advantages of using standard tech, and having a faster load time (smaller framework, or no framework at all). What do you think?

I added a bit more in the Web Standards section about what Web Components bring to the table. I also included the link that Rob provided to give more depth on why web components.


question on async sampler

Using coco2 branch, I expand to another dataset, Visual QA. w.r.t multithreading, I didn't gain speed up with this status.

iowait: 9%
read/s: 20 mb/s
batch size: 100
image feature (binary): 400kb
nThread: 2 or 4

I don't know why read/s is too slow; it's similar to synced one (for sure, I called async() to dp.RandomSampler and it works fine).
When I check the queue size in real time, it keeps 4 for self._send_batches and 1 for self._recv_batches (nThread=4).

@jnhwkim Not sure what it going wrong. I have always found the multithreading difficult to optimize. The Queue size is hardcoded in the threads package (always equal to num threads). I do remember that I myself did see a small speedup when using datasource:multithread() + sampler:async(). But it is always disappointing.


V7.0

Before your create your PR:
Please add tests for any new or changed functionality!

Edit Tests/WebViewJavascriptBridgeTests/BridgeTests.m
Create a new test which demostrates your changes.
Run make test and make sure your test is passing
That's it!

Thanks for improving WebViewJavascriptBridge!
Cheers,
@marcuswestin
I have test and work well.O(∩_∩)O

1.Redesign core bridge codes.
2.Delete some files.
3.Arrangement Example.html


Write deleted planned maintenances to file

This is something that was not implemented in Zino 1 but was supposed to be, so this can be added post zino 2.0

Duplicate of #202.


User not able to see anything (Error), when Bot Service returns status code 403

Bot Info

SDK Platform: Bot REST Connector
SDK Version: N.A.
Active Channels: MS Teams
Deployment Environment: Own deployment environment

Issue Description
Hi Folks,
I was trying out authentication for Microsoft Bot messages and noticed that user doesn't receives any notification / message / error when the request is rejected with HTTP  403 (forbidden).
User should be able to see something / error for that.
This issue is particular to MS-Teams channel. Works fine on emulator and webchat (tried these 3 so far).
Code Example
Reproduction Steps

Create a bot with Microsoft and use the app id / password to configure you simple bot service.
User sends "Hi" message from the bot. Bot Connector makes a post request to the bot service endpoint.
Try explicitly sending HTTP 403 message as status for the request.
User doesn't see anything / Error on the chat UI.

Expected Behavior
User should be able to see some error message indicating the message wasn't sent/delivered
Actual Results
User is not able to see anything. It appears to user as if the message has been sent.

This is a really good suggestion. The challenge is that the topology of message delivery is quite different across emulator, web chat, and Teams. When the user sends a message to the bot, our bot message service accepts it and responds with 200 OK. The message then fans out to the actual recipients later, so the 403 that you return is not fanned out to the recipients. We would have to change that logic to honor it, in effect generating a system-generated message in response to any bot message.
We've added a feature to the backlog to track this, but in all honesty you are the first to report this and until we hear about this from more developers, we likely won't get to this in a while. It requires a change on all our front end clients as well as the service side, because in effect this requires us to say "OK, user message received" but then change it later to "oops, this didn't go through, would you like to retry?" like web chat and the emulator do.


OCPBUGS-18247: manifests: don't include recording rules when Console capability is not enabled

In order to avoid additional load on Prometheus the recording rules for kube-apiserver dashboard are not included when Console capability is not enablked . These are not used anywhere else, so it should not affect any other components.

/hold
testing if its indeed disabled on single node

/jira refresh

/hold cancel
Verified via cluster bot that the cluster without Console capability doesn't have recording rules

/retest

/unhold

/lgtm
/approve

/jira refresh

/cherrypick release-4.14


Download instructions are not clear

Wiki page says, download icons. Doesn't mention how or from where. The only thing can be downloaded is the codebase zip from github.

Every version of Icons has an accompanying GitHub Release:
https://github.com/SAP/macOS-icon-generator/releases/
Attached to each Release, there’s an Icons.zip file containing a copy of that version’s Icons app. The latest Release is available via this link:
https://github.com/SAP/macOS-icon-generator/releases/latest


Drive SDK

Thanks @aavshr, I will check those.

thanks @aavshr, changed to math/rand and the tests run successfully.


No way of forcing a new version?

There's no way in the documentation of forcing a new module version in ADO - If I update my extension from 1.0.3 to 1.0.4, ADO still runs 1.0.3??

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

ID: 44581f4a-93df-7507-3844-eadedf9a6cc4
Version Independent ID: 33c7bcf0-1512-975f-5ef8-9f2a192a84ad
Content: Add a build or release task in an extension - Azure DevOps
Content Source: docs/extend/develop/add-build-task.md
Product: devops
Technology: devops-ecosystem
GitHub Login: @chcomley
Microsoft Alias: chcomley

Looks like I need to update the task.json as well as the vss-extension.json file! I was reading the wrong version in ADO 🤦


SSH Portal support in drush alias

https://github.com/uselagoon/lagoon-charts/pull/382 adds remote cluster-local SSH endpoints.
It would be cool if these could be somehow integrated into the drush aliases generated by Lagoon. Ideally there would be some fallback available to the existing SSH service.

This will also close #2177


Add region specific cortical cell types

Jorstad, Nikolas L., Jennie Close, Nelson Johansen, Anna Marie Yanny, Eliza R. Barkan, Kyle J. Travaglini, Darren Bertagnolli, et al. 2023. “Transcriptomic Cytoarchitecture Reveals Principles of Human Neocortex Organization.” Science 382 (6667): eadf6812. https://doi.org/10.1126/science.adf6812.
This paper identifies a number of cell types that are only found in specific cortical regions - visual cortex in particular:

In order to add these to CL we would need distinguishing properties.   Laminar location and grouping by well known marker (SST) may work in some cases, but in both of these cases, it is important to pay attention to the details. e.g. L4 is a transcriptomic grouping that does not correspond strictly to location in L4 - but ~to L4.  SST as a transcriptomic grouping may not correspond to SST expression in all subtypes.
NS-Forest markers would be ideal solution to finding distinguishing properties @scheuerm - did you & Renne already do work on these?
I think that these are also candidates for adding data-linked definitions to terms in CL (currently only in PCL).
Potential issue - naming via simple numbering has high potential to clash between papers.   NS -Forest => potential solution for that too.

@dosumis We've not analyzed these data yet, but we'll look into it.

I am building a work in progress list with definition for these cortical cells, with notes for discussion and tickets. This might change as the discussion follows. The astrocytes already have a Pull Request (#2328).
Initially I started to mine the v1 specialised cells based on the relative number of nuclei dissected from areas that contribute to each cell type (Figure 5E).
However, it is important to notice that the MERFISH data and the definition of cells as "v1 specialised" refer to another set of cells and it is not necessarly based on how enlarged is the population in that are (see image below). The specialisation of cells is based on transcriptomic distinctiveness of cell types in each area compared to the same type of cell in another area. For Instance, in V1, cell types that had a different transcriptomic profile compared to the same cell types in other brain regions were considered V1 specific. These scores are present on the supplementary table S11 and they are visualised in Figure 6A.

To determine the V1 specialised cell types I suggest:

Follow the scores from table S11
Consider the MERFISH results of figure 6 to categorise V1 specialised cell types
Specify v1 specialised cell types based on their soma location in v1 and based on which layer their soma is located
Mention in the comment of the description that their specialisation was attributed to their transcriptomic distinctiveness score >0.6.
Potentially add NF forest markers scores as they would provide the minimum number of markers to define the cell types.

Side note, L5 ET projecting
L5 ET project present distinct markers for brain area, some of them are showed in Figure 7D and supplementary table S13.
I suggest to include an ACC L5 ET specific type, A1 specific type, DFC specific type based on their clear markers profile.
Finally, it might be necessary to revise the grouping terms for cortical neurons some examples in this list. Happy to discuss about it.

for instance It might be necessary to modify the grouping on CL for cell types downstream of intratelencephalic-projecting glutamatergic cortical neuron and add subgrouping like i.e. IT projecting primary motor cortex neuron, IT middle temporal gyrus etc, IT visual cortex.

From discussion in DOS group:  Consensus is to add types that group all region specific clusters under a specific subclass. e.g. for L4 IT.
The challenge is that we have 2 ways to do this.

We could use cross area clustering + origin of dissection. e.g. v1 is in blue below:

=> reference = combination of  L2,3,4 and 6
OR

We could use region specificity of within area clusters (fig 6 in paper).  This => L1-7 for within area

With this we can also add location from MerFISH.
In both cases we could calculate NS forest markers.
IN either case, in order to add a link to data, we really need a corresponding annotation on the CxG dataset.

For terms already in CL for cross area subclasses, we should add links to Jorstad as reference data,  consider adding NS-FOREST markers.  In all cases we should also review definition, e.g. definitions based on laminar location or markers are not always reliable for transcriptomically defined types.

Find attached here some discussions/note and questions to ask to the author of the paper in this document.
Please comment if you want to add anything relevant to discuss with the author.
Here there is the tracker for potential cell terms to add based on the paper, there are two tabs, one refers to new terms to add based on the Cross-area taxonomy (Fig. 5E) and one refers to new terms to add based on V1 specialisation, area specific taxonomy and MERFISH data (Fig. 6).


Fix Event Tree Editor

Methodology and Examples

See the general ET methodology.
For an example, see Figure 6 (Page 39) from MARVEL PRA. Two other examples have been attached to this issue below.

Implementation

See React Flow and our other editors.
See how other tools implement IE analysis:

CAFTA (Page 11), RiskSpectrum, SAPHIRE (Page 35)
Reliability Workbench, Intro to Reliability Workbench, ALD, Edraw, ITEM.

Current Issues:

Right now, functional events can only be added. Add the option to delete a certain functional event.
With the deletion of a functional event, the subsequences related to the functional event should also be deleted and the                rest of the event tree should automatically adjust itself (meaning, the existing event sequences should automatically adjust).
Each functional event can have ≥ 2 branches.
In the current implementation, when branches of certain event sequences are deleted, the event sequence lines remain                 dashed instead of becoming solid lines. When branches are deleted, a solid line should appear in place of those deleted                 branches.
Additionally, when a nested branch is deleted, the rest of the branch does not align properly. In any case, when a branch is deleted, the remaining branches should align correctly.
In the current implementation, when all the branches under a functional event are deleted, the event tree crashes.
When all the branches under a certain functional event are deleted, an option should pop up to delete the functional event as well.
Add the feature to change the name and probability of a subsequence.
There need to be three columns at the end of the event tree as representatives of the end state:

[Mandatory] Sequence ID: A combination of the initials of the initiating event and the serial number of the sequence. For example, if loss of offsite power (LOOP) initiates the accident sequences, then the ID of the first event sequence of the event tree will be LOOP-1. Each event sequence should have unique ID,
[Optional] Frequency of the sequence: Should follow the scientific notation format
[Optional] Release categories: Do not have to be unique. Different event sequences might belong to the same release category. User should be able to create a new release category or choose an existing release category from the dropdown. Each event tree should have a model card in its name that will contain all the release categories of that event tree. The  release category list can be changed by selecting a certain model card in the settings option in the left navigation bar.

Examples

Relevant Files/Folders in the code include

Frontend

packages/frontend/web-editor/src/app/components/treeEdges/eventTreeEditorEdges
packages/frontend/web-editor/src/app/components/treeNodes/eventTreeEditorNode

Backend

packages/web-backend/src/nestedModels/NestedModelsHelpers/event-trees.service.ts
Tree State is defined here - packages/web-backend/src/schemas/graphs/event-tree-graph.schema.ts
packages/shared-types/src/lib/types/reactflowGraph/Graph.ts


Remove ubuntu1604 from presubmit.yml

Ubuntu 16.04 is end-of-life, we're going to remove it from Bazel CI.
If you like you can add testing on ubuntu2004 platform which we also support.

Can you add ubuntu2004 as well?

Done!

Thank you for the review!


chore(deps): update dependency bazel to v7.4.1

Description
This PR contains the following updates:

Package
Update
Change

bazel
minor
7.0.2 -> 7.4.1

Testing

[x] I have run it locally and tested the changes extensively.
[x] All CI jobs are green or I have provided justification why they aren't.
[x] I have extended testing suite if new functionality was introduced in this PR.

/intelci: run


add pattern - role:transport,type:balance,get:stats

the balance-client should collect performance stats on the health of targets, this can then be used to implement circuit breakers etc

Is this implemented anywhere else that I can use as a reference?

@cjihrig regarding health, I don't think so. Mainly because we need to define what is health for a target.
I would say that the only metric that is available is "number of messages sent but not replied to" a given target. Not sure how to get it in a non obtrusive way (and  without a perf hit).

As a quick win, you can repurpose the rolling-stats module as used in Seneca main and use it in the same way to count and time messages responses:
https://github.com/rjrodger/rolling-stats
https://github.com/senecajs/seneca/blob/master/seneca.js#L1068
/cc @geek
What you will need to figure out is how to handle:

primary pin may be a glob, so you need to capture on args.meta$.pattern to get the concrete pattern
different target lifetimes - a target at a particular location (ip and port) is actually a series of temporal incarnations (restarts, updated deployments, change of underlying AWS instance, etc, etc), so identity cannot just be expressed by location

/cc @mcdonnelldean it should be possible to capture and chart this data into the dashboard - consider how you would want to do that
@cjihrig the purpose of the get:stats pattern is to provide information to balancing strategies - e.g reduce load on slow service etc

@cjihrig it would help you a lot to run through the nodezoo workshop: https://github.com/rjrodger/nodezoo
in particular, you can add balancing scenarios:

have multiple search services and use the balance-client over them, actor model
have multiple npm and git services, publish model (who cares if they perform the same work twice! redundancy ftw :) )

@cjihrig We should probably talk in the new year on this too. I have some examples of charting similar info I want to show you for context.

@rjrodger I might close and reframe this. There is a lot of could ideas in this. I have someone in mind but I think there are a lot of details we could pull out of this. I would be super interested to know the round robin stats for a particular service for instance.
For now I've added enhancement but this is something I definitely want to explore as I don't think we take nearly as much advantage of these sorts of patterns as we can and should.

Hi @mcdonnelldean. I am working in something related to stats and circuit breaking and I am actually modifying now seneca-balance-client (I have done it but I am trying to debug a tricky error) to introduce circuit breaking capabilities as well as stats collection. I think it might be worth having a talk to brainstorm ideas.

For sure, I am out all this week but let's catch up when I get back.

Perfecto. I'll put something down in the diary.

Do, send me on a calendar invite. @mcollina yourself or Dave may want to sit in on this each to see what sort of stats are being emitted?

Yup. Id like to sit in there. I have a branch already with something going
on. Ill send the invite.
On 26 Apr 2016 12:12 p.m., "Dean McDonnell"<EMAIL_ADDRESS>wrote:

Do, send me on a calendar invite. @mcollina https://github.com/mcollina
yourself or Dave may want to sit in on this each to see what sort of stats
are being emitted?
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/rjrodger/seneca-balance-client/issues/7#issuecomment-214705438


Use tikv-jemallocator instead of jemallocator

jemallocator has been abandoned for nearly two years, and rustc
itself moved to use tikv-jemallocator instead:
https://github.com/rust-lang/rust/commit/3965773ae7743e051070b4eed3c6e02e9df3b25c
Let's switch to a better maintained version.

@MarinPostma Looks good to me, but shouldn't be merged on stable but rather on the next rc, am I right?

Release is on Monday, I'd prefer that we wait for next release if it's ok with you?

bors merge

bors cancel

bors merge

bors cancel

@MarinPostma it can now be merged

@felixonmars, is it possible to rebase and fix the merge conflict please? :)

@felixonmars, is it possible to rebase and fix the merge conflict please? :)

Sure, rebased :)


[Machined Learning]Getting started with Ray Tracing Algorithm in Machine Learning

Topic Suggestion
Getting started with Ray Tracing Algorithm in Machine Learning
Proposal Submission
Proposed title of article
Getting started with Ray Tracing Algorithm in Machine Learning
Proposed article introduction
The most successful image synthesis technique is the Ray Tracing Algorithm. This technique is capable of producing the highest level of realism virtually, which is greater than that of other scanline rendering methods. However, this comes at a higher computational cost. In today's digital world, computer graphics has become the most basic requirement.
When we need to create a virtual image that looks very real and is indistinguishable from a normal photograph, we use computer graphics. There are numerous approaches that can be taken to accomplish this. One such rendering technique is ray tracing. This is used to generate an image by tracing the path of light as pixels in an image plane and simulating its effects when it comes into contact with virtual objects.
Key takeaways
Types of Ray Tracing Algorithm
How Ray Tracing Algorithm works?
Hybrid Ray Tracing Algorithm
A Brief History of Ray Tracing Algorithm
Article quality
How is your article unique? Tell us what makes your approach different from similar articles that have published on the same topic?
Is yours more in-depth? Does it cover additional topics? Do you provide handy tips or anecdotal advice?
References
N/A
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Please fill in the article quality section.


expected one consensus engine but found 2

Deploying Root Contracts
While Deploying root contracts , after genesis data is created  started the geth  node using command ./polygon-edge rootchain server  once this container is running , deployed the staking manager using the test flag
./polygon-edge polybft stake-manager-deploy
--proxy-contracts-admin 0x156012dEbc7834742A27C2b67E9bDBBEC8d1c6A9
--genesis ./genesis_data
--jsonrpc http://<IP_ADDRESS>:8545
--test
Succeds
I grabbed the staking manager address and token address from genesis data
then deploy the root contract
./polygon-edge rootchain deploy
--stake-manager <address_of_stake_manager_contract>
--stake-token 0xaddressOfStakeToken
--proxy-contracts-admin 0xaddressOfProxyContractsAdmin
--genesis ./genesis.json
--json-rpc http://<IP_ADDRESS>:8545
--test
Then it throws error
expected one consensus engine but found 2
No Idea where i am wrong
The genesis data was created using the below , i dont care about any keys as i can create other accounts later
./evt genesis --block-gas-limit 10000000
--block-time 3s
--bootnode /ip4/<IP_ADDRESS>/tcp/30301/p2p/16Uiu2HAm7PDNYDAcAz3vVSiyFfgycBNENASydX79eGaak5p9hs9C
--chain-id 8848
--consensus ibft
--dir ./genesis_data
--epoch-reward<PHONE_NUMBER>000000000
--epoch-size 100
--ibft-validator-type ecdsa
--max-validator-count 100
--min-validator-count 1
--name "Everest Smart Chain"
--native-token-config "EverestSmartChait:EVT:18:true/false"
--pos
--premine 0x156012dEbc7834742A27C2b67E9bDBBEC8d1c6A9:1000000000000000000000000000000
--reward-wallet 0x156012dEbc7834742A27C2b67E9bDBBEC8d1c6A9:50000000000000000000000000000
--sprint-size 10
--validators "/ip4/<IP_ADDRESS>/tcp/30301/p2p/16Uiu2HAm7PDNYDAcAz3vVSiyFfgycBNENASydX79eGaak5p9hs9C:0x156012dEbc7834742A27C2b67E9bDBBEC8d1c6A9:0c8af17825ff86ba3d28dc89d492b4df45d34fc98d436d6d3aff7ebcd8b7f0271ba03a5b1090fb9042b360ef255200269fc199b20b277e17e629c22a00da033a050a4b6acc1ff09ccb1df538544962b932ae4aa83b0e5acf307b1e03b2f886de08f52baf5b5e21d689ecc06a2fff1208730560596d7691d84b0ea3f42109149e"
--ibft-validator 0x156012dEbc7834742A27C2b67E9bDBBEC8d1c6A9

Well, you are trying to use the old --consensus ibft, but you are doing deployment steps for --consensus polybft, that is why in the genesis file you have configurations for both consensus, hence the error.
Deploying stake manager, and root contracts is the deployment step for polybft and creates configuration in genesis.json specific to it.
You need to change the consensus to polybft or if you specifically want ibft then, do not do the before mentioned steps for deploying stake manager and other root contracts in deploy command.

Thanks


Implement dark mode for import wallet and backup wallet flow

let's include the dark mode header balance.  it is not showing on dark mode on iOS


Brackets live preview not working

When I open the live preview it will often give me an error saying"Unable to load live preview page" my chrome browser and brackets are both most current versions, I'm not using a local server, and there are no html errors/live preview isn't red. And when it does open it doesn't change as I type only if i ex out of it save my file and then it might update changes but still not live.

@JartOfDeath Can you tell Brackets version and how many files you have in your project?

@prafulVaishnav version 1.4 and theres only one file in the project

Could you go to debug>show developer tools> console and comment the error here?

@abose Max connection attempts reached (anonymous function)
Failed to load resource: net::ERR_CONNECTION_REFUSED

How many files are in your project?
Could you copy the full call stack here?

There's only one file in my project and it doesn't work with the getting started page that brackets opens up to either

would it be possible to share the call stack, or any specific on which port is issuing a  net::ERR_CONNECTION_REFUSED
Which os are you on?
Do you have google chrome installed?

If you are using Windows, try run brackets as administrator. It worked for me

For everyone, this problem can be resolved by following steps:-

On menu bar, go to  File --> Open Folder (folder which have your html file for live preview)

Select Folder

Select your html file from left side bar for live preview

Click on bolt icon on right (preview button)

All it melts down to the fact, that you need that folder(which have your file) selected to view your output in live preview.
Let me know, if it helps someone. :)


[Feature] Endpoint to calculate accrued interest for a security that pays periodic interest

Are you adding a new feature?

[x] YES
[ ] NO

Are you enhancing the old feature?

[ ] YES
[x] NO

Is your feature request related to a problem?

[ ] YES
[x] NO

Describe your feature/enhancement.

A function to calculate the accrued interest for a security that pays periodic interest.
Can you add the feature by yourself?

[x] YES
[ ] NO

Additional Information

I would like to work on this issue under gssoc'23

Sure go ahead @THEGAMECHANGER416! ;)


Added Uncensored Model

Added White Rabbit Neo for Handling uncensored programming/hacking responses
👨🏽💻🦍

Summary by DevApe
Description
This Pull Request introduces the "White Rabbit Neo" model for handling uncensored programming and hacking responses. It includes updates to the GitHub Actions workflows, the addition of a new Python script for the uncensored model, and modifications to the main bot script to integrate this new model.
Files Changed

File
Changes

.github/workflows/discord.yml
Updated checkout action to v3, added debug steps for headers, and integrated new environment variables.

.github/workflows/main.yml
Added a new workflow file for running the Discord bot with enhanced debugging and setup steps.

llm/whiterabbit.py
Introduced a new Python script for the White Rabbit Neo model, handling HTTP requests and retries.

main.py
Integrated the uncensored response model, added new chat summarization tasks, and updated error handling.

requirements.txt
Added the 'httpx' library to the list of requirements.

Great thanks for your contribution. I will merge the pull request later.
On Mon, 7 Oct 2024, 23:17 dev-ape-ai[bot], @.***> wrote:

👋 @anony45-everywhere https://github.com/anony45-everywhere, thank you
for your contribution! 🚀
In this review, I've examined the changes introduced in PR #4
https://github.com/Likhithsai2580/peru-leni-jeevi/pull/4, which
includes updates to workflow configurations, the addition of a new module
for handling uncensored responses, and various updates to the main
application logic. There are several critical issues and improvements to
discuss.
👷🏽 Code Quality Review
Quality Issue Type File Issue Description
Best Practices .github/workflows/discord.yml
https://github.com/Likhithsai2580/peru-leni-jeevi/blob/main/.github/workflows/discord.yml Use
of 'echo' for debugging sensitive information like 'HEADERS' can lead to
security risks if logs are not properly secured.
Code Clarity main.py
https://github.com/Likhithsai2580/peru-leni-jeevi/blob/main/main.py Complex
and nested async functions can make the code hard to read and maintain.
Consider simplifying or refactoring.
Code Duplication main.py
https://github.com/Likhithsai2580/peru-leni-jeevi/blob/main/main.py There
is repeated logic for handling different types of responses based on the
'llm' variable. Consider creating a more generic function to handle
response generation. 👮🏻♀ Code Security Review
Security Vulnerability File Issue Description
Information Disclosure .github/workflows/main.yml
https://github.com/Likhithsai2580/peru-leni-jeevi/blob/main/.github/workflows/main.yml Debugging
statements that print lengths of sensitive tokens can inadvertently expose
information about the environment or application configuration.
Improper Error Handling llm/whiterabbit.py
https://github.com/Likhithsai2580/peru-leni-jeevi/blob/main/llm/whiterabbit.py Errors
from the HTTP requests are caught but not adequately handled, potentially
leading to unhandled exceptions in production.
Security Misconfiguration llm/whiterabbit.py
https://github.com/Likhithsai2580/peru-leni-jeevi/blob/main/llm/whiterabbit.py Using
a hardcoded API endpoint ('https://www.whiterabbitneo.com/api/chat') can
lead to security risks if the endpoint is not properly secured or if it
changes.
Overall, while the new features introduced in this PR are promising, it is
crucial to address these security and quality issues to ensure the
robustness and security of the application.
—
Reply to this email directly, view it on GitHub
https://github.com/Likhithsai2580/peru-leni-jeevi/pull/4#issuecomment-2397534276,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AO6OTRGKO3WBY7PRV2HSZITZ2LCL5AVCNFSM6AAAAABPQOR65GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJXGUZTIMRXGY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Relicense under dual MIT or Apache-2.0 license

I propose bevy_pixels is relicensed under dual MIT or Apache-2.0 license to match the bevy project. See here for their reasoning. In my opinion it makes sense to use the same license as bevy itself.
@parasyte, as the only other contributor I need you to comment with the following if you are happy for me to make this change:
I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.

I license past and future contributions under the dual MIT/Apache-2.0 license, allowing licensees to choose either at their option.
Thanks for this!


"Access is denied." when running as LocalSystem

Your Windows build number:  (Type ver at a Windows Command Prompt)
Microsoft Windows [Version 10.0.18363.535]

What you're doing and what's happening:  (Copy&paste the full set of specific command-line steps necessary to reproduce the behavior, and their output. Include screen shots if that helps demonstrate the problem.)
I was trying to use WinSW to make a Windows service for a Bash script and got "Access is Denied." Then I tried to make a Windows service calling bash.exe -c script.sh in Visual Studio and the script did not run. Then I opened a shell as LocalSystem and yet again got the error "Access is Denied." To open a shell as LocalSystem, do the following:

Download Sysinternals PsExec64.exe
.\PsExec64.exe -i -s cmd.exe
bash.exe
wsl.exe

Access is denied. 🎊

What's wrong / what should be happening instead:
I assume it's supposed to prompt you to setup WSL as LocalSystem. I know my personal user's rootfs is in my %appdata%, so I assume LocalSystem would have to go through the setup. Perhaps LocalSystem needs a distro from the Microsoft Store. Maybe WSL is not meant to be used like this. To be fair, I am not sure what the intended behavior is.

Strace of the failing command, if applicable:  (If some_command is failing, then run strace -o some_command.strace -f some_command some_args, and link the contents of some_command.strace in a gist here).

For WSL launch issues, please collect detailed logs.

logs.zip

Hi,
i'm having the same issue, running as local system account results in access denied.

I never found any solution.

Same exact issue, which prevents me from using bash in Azure DevOps pipelines. How can there be no response to this whatsoever in all this time??

I found a workaround, by the way, for anyone interested. After much tinkering, I managed to take ownership of C:\Windows\System32\bash.exe and that allowed me to rename it (I didn't want to delete). After that, I created a symbolic link:
mklink bash.exe "c:\Program Files\Git\bin\bash.exe"

It's a poor man's bash, but at least it works, I tested it with psexec and through the Azure pipeline.

@valp124 I'm running into the same exact problem, particularly since I need the Azure DevOps self-hosted agent to run as LOCAL SYSTEM.
However I still get "Access denied" running as LOCAL SYSTEM (via psexec -s -i cmd.exe) even after moving bash.exe and creating the symlink. Is there some additional step to be done?

@luckerby, when you test via psexec, are you running the command as admin? Be sure to run whatever shell you're using "As Administrator." Other than that, I wouldn't know what to say, it still works for me. (You'd think that a Windows update would break it at some point.)

You can see below that the linked bash works, but the original bash and wsl don't.

However:

@valp124 Thank you for your quick reply! I've somehow missed the obvious, whereby the symlink has to point to an actual bash client (e.g. Git's built-in one). For some weird reason, I moved the original bash.exe and created a symlink to this one (I know, doesn't make any sense, particularly since your explicit mklink command made it clear what the end goal was; I also have a hunch that SYSTEM32's bash.exe is just a stub and expects to find a real bash client in the Linux distro installed).
So just to confirm, @valp124's solution still works perfectly with Azure DevOps, particularly when you need to run the self-hosted agent as LOCAL SYSTEM.
I did found another workaround for running the Azure DevOps self-hosted agent under a different account than the default NETWORK SERVICE, and tested this successfully on WSL1. Simply create another local user on the Azure DevOps self-hosted agent, add it to the local Administrators group, install a Linux distro by running the distribution launcher app (full procedure is here) and then configure the agent service to run as that particular user.
Unfortunately this doesn't work for the initial issue of this thread: trying to install a Linux distro while running as LOCAL SYSTEM (e.g. in the interactive window opened by psexec -s -i cmd) by using the distribution launcher app (full procedure is here) will fail with: WslRegisterDistribution failed with error: 0x80070005. Error: 0x80070005 Access is denied. Which brought me back to the same thought @TapeWerm had in the initial post, that maybe WSL is not meant to be used this way.

Right, @luckerby, I figured changing the user under which az agent runs would work, but in my case, messing with the Admin group is not an option, any changes are overwritten by the corporate policy after a short while.
@therealkenc, it would seem to me that this needs to be addressed.

It's not ok to close an unresolved issue.

I can confirm that this is still an issue, just ran into this yesterday. It makes it difficult to use when utilized by Azure DevOps or GitHub Self-Hosted runners which run with LocalSystem permissions by default and are not meant to have more permissions in the system.

Was this issue addressed elsewhere? I see it's closed but I don't see any response.

I am opening a new issue on the same subject.


docs: 重新梳理了 GUI 官网的 examples 示例规范

[x] 移除 icon 组件
[x] 大致设计文档：https://www.yuque.com/antv/g2-docs/rc65th

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

15 of 15 (100.0%)  changed or added relevant lines in 1 file are covered.
5 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.6%) to 67.956%

Files with Coverage Reduction
New Missed Lines
%

src/ui/marker/index.ts
5
83.33%

Totals

Change from base Build<PHONE_NUMBER>:
-0.6%

Covered Lines:
1186

Relevant Lines:
1630

💛  - Coveralls


ISPN-15204 Remove/Disable Scattered Tests

https://issues.redhat.com/browse/ISPN-15204

I originally tried to disable the various test classes and set the group to unstable. But due to https://github.com/testng-team/testng/issues/151 this does not work for tests that inherit from a base class where the method is annotated with @Test. So I instead just deleted all the various scattered tests.

Thanks @wburns


Added Panache-Flyway example

Added new module to cover Hibernate ORM and Flyway modules.

I ran this new module in native mode and works fine.


patch acyclic to work with current utest

as a workaround until https://github.com/lihaoyi/acyclic/pull/13
is merged; see also https://github.com/scala/scala-dev/issues/108

test run: https://scala-ci.typesafe.com/job/scala-2.11.x-jdk8-integrate-community-build/180/consoleFull

test run passed, but maybe not needed anymore since Haoyi merged my PR. new test run to verify: https://scala-ci.typesafe.com/job/scala-2.11.x-jdk8-integrate-community-build/180/consoleFull

Result: SUCCESS


ACSet macros

Should we extend the DSL Owen came up with to allow specification of ACSetTransformations?

I don't know, maybe. What did you have in mind?
If g and h are graphs, you can already do
CSetTransformation((V=[...], E=[...]), g, h)

or
CSetTransformation(g, h, V=[...], E=[...])

and the vectors will be coerced to FinFunctions.

I guess a CSet morphism is determined by a FinFunction for each object in C, so then that constructor is simple enough.
I was thinking about specifying g, h and the Homomorphism all at once. Like if g is a sub graph of h as encoded by an injective hom, there is a ton of redundancy In specifying them separately.

I see, yes, it would definitely be useful to have a function that constructs a sub-C-set and the inclusion morphism all at once.

Closing in lieu of #349.


handle a graceful shutdown on request

About this change - What it does
Handles graceful shutdowns by making sure all compressed files get uploaded ~(considers also partial files)~
Edit: renaming partial files is dangerous, after testing I didn't got the expected results (duplicated segments on different timelines)
Why this way
Shutting down pghoard can be dangerous, leading to missed segments if not all information was uploaded. To avoid this, its better to make sure all tasks/events were completed.

:/ Build failing, seems rohmu got updated again (using Protocol, not supported on 3.7)

:/ Build failing, seems rohmu got updated again (using Protocol, not supported on 3.7)

To be noted that Python 3.7 reached EOL a week ago.
That raises the question on whether we want to support a Python version on pghoard that is no longer officially supported and will no longer receive security patches.
I'd be in favour of removing 3.7 from the CI here.


Output bit depth inconsistent across output formats

Description
Saving an image with ImageFactory.Save seems to be inconsistent with the bit depth of the saved image. In testing, I loaded an image from file with a bit depth of 24, made no changes to it, and saved it to a number of formats using the code below. The bit depth of the outputted file was not the same across the formats tested.
In addition to this, using the file path overload of ImageFactory.Load always properly detects the bit depth of the source file (via ImageFactory.CurrentBitDepth), but using the Image overload of ImageFactory.Load always results in a CurrentBitDepth of 32, regardless of the source image bit depth. The pixel format reported by ImageFactory.Image.PixelFormat always seemed to be Format32bppPArgb regardless of the input format.
I think it's pretty important to be able to save in the right bit depth, as 32-bit images are just unnecessary in most cases. Let me know if I'm not understanding how to use ImageProcessor properly, or if this is the intended effect.
Steps to Reproduce
var formats = new ISupportedImageFormat[] { new GifFormat(), new JpegFormat(), new PngFormat(), new BitmapFormat(), new TiffFormat() };
var exts = new string[] { ".gif", ".jpg", ".png", ".bmp", ".tiff" };

using (var imageFactory = new ImageFactory())
{
    var sourceImage = Image.FromFile(@"C:\some\24bit\file\here.jpg");
    imageFactory.Load(@"C:\some\24bit\file\here.jpg");

    Console.WriteLine("Source pixel format is " + sourceImage.PixelFormat);
    Console.WriteLine("ImageFactory.Image.PixelFormat: " + imageFactory.Image.PixelFormat);
    Console.WriteLine("ImageFactory.CurrentBitDepth: " + imageFactory.CurrentBitDepth);

    for (int i = 0; i < formats.Length; i++)
    {
        var path = Environment.CurrentDirectory + "\\test" + exts[i];

        imageFactory.Format(formats[i]);
        imageFactory.Save(path);

        Console.WriteLine("\nSaved image in format: " + imageFactory.CurrentImageFormat);

        Image savedImage = Image.FromFile(path);
        Console.WriteLine("Saved pixel format is " + savedImage.PixelFormat);
        Console.WriteLine("Matches input? " + (sourceImage.PixelFormat == savedImage.PixelFormat).ToString());
    }
}

Results in the following output:
Source pixel format is Format24bppRgb
ImageFactory.Image.PixelFormat: Format32bppPArgb
ImageFactory.CurrentBitDepth: 24

Saved image in format: ImageProcessor.Imaging.Formats.GifFormat
Saved pixel format is Format8bppIndexed
Matches input? False

Saved image in format: ImageProcessor.Imaging.Formats.JpegFormat
Saved pixel format is Format24bppRgb
Matches input? True

Saved image in format: ImageProcessor.Imaging.Formats.PngFormat
Saved pixel format is Format32bppArgb
Matches input? False

Saved image in format: ImageProcessor.Imaging.Formats.BitmapFormat
Saved pixel format is Format8bppIndexed
Matches input? False

Saved image in format: ImageProcessor.Imaging.Formats.TiffFormat
Saved pixel format is Format24bppRgb
Matches input? True

Also note that specifying the CurrentBitDepth with imageFactory.BitDepth(24) before saving only changes the output bit depth when using TiffFormat.
System Configuration

ImageProcessor version: <IP_ADDRESS>
ImageProcessor.Web version (if applicable)
Other ImageProcessor packages and versions:
Environment (Operating system, version and so on): Windows 10 Pro (1809, 17763.253)
.NET Framework version: 4.7.2
Additional information:

You're right, I should do a better job of supporting bit depth preservation. I can only do this within the limitations of the formats though. (For example Gif doesn't support 24bit images).
The running Format32bppPArgb is used to normalize code and performance across the API.
With the changes I've just pushed the next release will preserve the information in your use case.
However, this requires you to use the Reset() method between saves as System.Drawing alters the image on save.
e.g
this line:
imageFactory.Format(formats[i]);

becomes
imageFactory.Reset().Format(formats[i]);

With these changes the following output is achieved.
Source pixel format is Format24bppRgb
ImageFactory.Image.PixelFormat: Format32bppPArgb
ImageFactory.CurrentBitDepth: 24

Saved image in format: ImageProcessor.Imaging.Formats.GifFormat
Saved pixel format is Format8bppIndexed
Matches input? False

Saved image in format: ImageProcessor.Imaging.Formats.JpegFormat
Saved pixel format is Format24bppRgb
Matches input? True

Saved image in format: ImageProcessor.Imaging.Formats.PngFormat
Saved pixel format is Format24bppRgb
Matches input? True

Saved image in format: ImageProcessor.Imaging.Formats.BitmapFormat
Saved pixel format is Format24bppRgb
Matches input? True

Saved image in format: ImageProcessor.Imaging.Formats.TiffFormat
Saved pixel format is Format24bppRgb
Matches input? True

This codebase is getting a bit creaky now to be honest and combined with the limitations of System.Drawing doesn't offer you the absolute control that you might desire. I've been putting together another library ImageSharp which offers total control of the image output and might be better suited to your needs.

Thanks for the response, I'll check ImageSharp out.


Debug logs from console

jsreport includes debug extension which can collect logs associated with particular rendering request and response them back to the caller. This is for example used in combination with phantom-pdf recipe which forwards all the phantomjs messages and also user's console.log calls into this log which is usually displayed in the jsreport studio.
It would be nice to have the similar functionality in this recipe. Would it be possible?
blog post introducing debug extension
http://jsreport.net/blog/debug-extension
writing to request logs
https://github.com/jsreport/jsreport-phantom-pdf/blob/master/lib/phantom.js#L159
overriding console
https://github.com/pofider/phantom-html-to-pdf/blob/master/lib/scripts/logScriptPart.js

yes, i think it is possible, i will give it a look on the weekend 😄

done in v2.3.0

Thank you.
I've tried it. The console.log is nicely propagated. However the phantom-pdf recipe still gives us more details. Not sure if this is possible with electron, but it would be great to see this info:

info if I link a css or image and electron fails to load it because of invalid url
info if my js script throws for some reason

This is demonstrated on this example:
https://playground.jsreport.net/studio/workspace/ZJZMyHgm2e/140

In every case please put to the log at the beginning what strategy and what electron version is used. This helps a lot when troubleshooting so we don't have to explicitly ask users.

sure, i will take a look on how to add that information

ok, i've done a little of research and found that electron added new APIs that really facilitates the capture of this information and other things in the implementation. (i'm not sure but maybe with the changes i've made the package could run on iisnode, and maybe this time electron will not take 100% of CPU on windows when using ipc/server strategies 🤔)
these changes are in v2.4.1 🎉  😄

Debug works great in playground now. Thanks!
I didn't check it with iisnode yet, I'm busy with other things, lets see in time...


Oops! Something went wrong

Hi there, the errors returned here appear to be related to a failure to connect to the google maps API, not a failure within the application itself. Please try deleting the key you generated, and follow through the steps listed in the api key generation walkthrough one more time in a new project. Ensure you paste the entire key, and the correct settings have been used.

If the API code is the possible culprit, I noticed when I used the COPY button on the API window it added a space and the front and back of the code.  Make sure you delete those and just type the characters with no spaces.

Hoeguard that worked! Thanks to both of you for the support


Incorporating One-pass synthesis technique.

Description
In this PR, the One-pass synthesis technique is integrated to our dd synthesis functionality.  Please refer to https://www.cda.cit.tum.de/files/eda/2017_tcad_one_pass_synthesis_reversible_circuits.pdf for the algorithm. Thanks to the previously introduced synthesis techniques, it was fairly comfortable to incorporate.
Checklist:

[x] The pull request only contains commits that are related to it.
[x] I have added appropriate tests and documentation.
[x] I have made sure that all CI jobs on GitHub pass.
[x] The pull request introduces no new warnings and follows the project's style guidelines.

I completely agree that this is getting strenuous (for me as well). I created this PR just to integrate the one-pass technique. However, I worked on all the things apart from the functionality. I agree with all the suggestions that you gave me and I also agree that maybe I should have thought of these things myself. It's just that I wouldn't have thought of these improvements since it has nothing to do with the functionality that I'm trying to introduce.


⚠ ClamAV has degraded performance

In f2ed3f7, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 69 ms

Resolved: ClamAV performance has improved in 67b9d38.


Migrate module to voxpupuli

Hey @abrader as it seems from https://github.com/abrader/abrader-gms/pull/44 you are not actively supporting this module anymore, but we need some important fixes in it.
Therefore I propose to migrate this module to voxpupuli, if you would like to have help with the process let me know.

I appreciate your need for better support.  Let me get this next release out that supports v4 and v3 for GitHub and we can chat further.

I have tried to contact @abrader via multiple mechanisms and he has not responded.  Is there a way voxpupuli can do a 'hostile takeover' of this project?

@bschonec I dont use puppet since a couple of years anymore, so I dont know how the process by voxpupuli evolved over the time. But if I were you and you have the time and need for that I would contact the voxpupuli mailing list if they could help you with forking this module.


Split app into modules

Right now everything is in app, which is cluttered and not performant

Moved DB and logging to a separate modules, but struggled with Ktor networking. Ended up stopping there


MainScreen paused and Score persists on Play Again

When entering the MainScreen from the Pause Menu Main Screen Button, the MainScreen is paused. I fixed this by adding the same script present in the Retry Button (get_tree().paused = false)
When you click Play Again on the EndScreen, the Score of the ended game persists on the new game. I fixed this by adding the script "PlayerData.score = 0"

Is this an error you had following the tutorial? I just tested both points and:

The game isn't paused when going back to the main menu from the pause screen.
The score is correctly reset to 0 when pressing play again on the end screen.

Closing this issue for now. If you have other steps I can take to reproduce the issue, please leave a comment and I'll reopen it. The bugs you report should be on the game from this repository, and based on testing the master branch.


Issue53 #Passenger Account Creation View For The GUI

Your pull requests are including other classes from previous pull requests. Make sure you're only adding, committing, and then pushing the class specific to the issue this pull request is related to.


cl12: Add test for -cl-fp32-correctly-rounded-divide-sqrt to spir subtest

Fix issue #112

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: yxsamliu:x: bsochackYou have signed the CLA already but the status is still pending? Let us recheck it.

@gwawiork This just needs CLA signing from your colleagues now.

@yxsamliu Could you sing CLA agreement? This PR includes commit that you are created some time ago in Khronos internal repository.


Training time

Hey there,
thank you very much for this. Pretty cool.
I am thinking about using it, but the current training time is too slow. I would investigate a bit, how this can be sped up.
What are your ideas on how the training time could be reduced?

I tried to keep the whole thing simple, in terms of implementation, as much as I could and I didn't run more experiments

You could run some ablation studies to see whether the densification makes a huge difference or whether starting with certain amount of points picked empirically for that resolution would do the job faster or the reverse starting with few points and gradually increasing whether that would make things faster
The other thing other people did for the 3D Gaussian Splatting was to start with a lower resolution image before increasing to the a higher resolution in later epochs, reducing the initial the time needed for the first few epochs
Currently the initialisation is relatively wrong in my code as I don't do correct inverse sigmoid for all them and I also sample randomly which is not the best solution, even in the paper for 3D Gaussian Splatting they avoided random sampling due to increase training time

I analyzed the training time and found that most of it was consumed by backpropagation. In addition, it seems that the same number of points will occupy significantly higher memory consumption compared to 3D GS. I wonder is there any way to speed up this kind of time, would it be helpful to use cuda for the rasterization and backpropagation process like in 3D GS?

I investigated a bit more, and seems like some of the issues are how pytorch handles things, mainly the decision of whether the operation is done on the cpu or gpu is not purely based on the device parameter in the code, an example of one of the bottlenecks is the einsum operation both in the forward and backward path

and if I manually do the same operation and force it on the GPU, it will speed up the process significantly for this operation

yeah, valid points, I run more tests on it, majority of the bottleneck is either torch deciding to do an operation on cpu even though everything is on cuda or call cuda synchronisation which is causing a lock and slowdown, I think I need to do a pure cuda version as you suggested as a separate project to control the process manually rather than relying on pytorch too much. there is also a pi value that I fetch from numpy from the cpu and copy it to cuda in that code, that is not helping

I investigated a bit more, and seems like some of the issues are how pytorch handles things, mainly the decision of whether the operation is done on the cpu or gpu is not purely based on the device parameter in the code, an example of one of the bottlenecks is the einsum operation both in the forward and backward path  and if I manually do the same operation and force it on the GPU, it will speed up the process significantly for this operation

Hi,
This is an interesting finding, but I'm unable to reproduce it on my end. For me, using einsum is more efficient in both space and time compared to breaking it down.
Here are the screenshots:
Breaking einsum:

Using einsum:

Do you have any idea why this discrepancy might occur? It's generally expected that the official implementation of einsum is more efficient, which aligns with my experiments, but not with yours.

it's really difficult to pinpoint why! but if I had to guess it could either be related to pytorch version and they've recently optimised it and I was using an older version or could be the related to the amount of memory or ram that your machine utilises and its relevant speed is more efficient than mine, hence the slowdown on mine and not yours


Tomcat welcome page is not coming up after using tomcat container

root@instance-1:~/Projects# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
08c8566704c8        tomcat              "catalina.sh run"   33 minutes ago      Up 33 minutes       <IP_ADDRESS>:15001->8080/tcp   mytomcat2
10b65dceb21f        tomcat              "catalina.sh run"   42 minutes ago      Up 42 minutes       <IP_ADDRESS>:9100->8080/tcp    mytomcat
root@instance-1:~/Projects# netstat -anp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      30541/docker-proxy
root@instance-1:~/Projects# netstat -anp | grep 9100 15001
grep: 15001: No such file or directory
root@instance-1:~/Projects# netstat -anp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      30541/docker-proxy
root@instance-1:~/Projects# netstat -anp | grep 15001
tcp6       0      0 :::15001                :::*                    LISTEN      30845/docker-proxy

when i try to open tomcat on by browser below error is thrown
HTTP Status 404 – Not Found
Type Status Report
Message Not found
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/8.5.50

The default webapps aren't enabled by default anymore, but they are in webapps.dist if you want to re-enable them
https://github.com/docker-library/docs/tree/master/tomcat#how-to-use-this-image
See also https://github.com/docker-library/tomcat/issues/184

Thank you so much..!! the rename did the tric.


Issue from website page Get Started: Configure Editor

From URL: https://flutter.io/get-started/editor.md
There is no option to include the flag --enable-software-rendering . which is required  if there is a gpu fault. now I cant use vscode for this.

thanks the issue is solved now.. that syedliya3 guy was me!

Yep, this is the correct way to pass custom args to flutter using VS Code. Thanks @xqwzts!


Centralised isPlaying() logic

I wasn't sure if this was what you intended, or if there was something much more elegant.
I did notice that if I add voice stacks in Bitwig and press many keys (so get the polyphony above the limit) there are orphaned voices after release - nothing playing, but there are still modulation dots 'dancing'.

yeah if we go above 64 things go to crap pretty quickly. no-one to terminate that voice
i suppose we should add a fix that if you try to create a voice and don't get one you queue up a note end parameter.
but this is exactly what I meant yeah!


Type mismatch when upgrading to RN 0.68.1 in a Kotlin based project

Description
Hi all! 🙌
I'm trying to upgrade my react-native project from version 0.67.4 to version 0.68.1 (Without adapting to the new architecture)
When using this tool I've seen that all the config files are described in Java, but my project is based in Kotlin.
I've converted those files to Kotlin with AndroidStudio as described here, but I've ended up with this types mismatch when running react-native run-android:
.../newarchitecture/MainApplicationReactNativeHost.kt: (72, 36): Type mismatch: inferred type is FabricJSIModuleProvider but JSIModuleProvider<JSIModule>? was expected

Temporal solution ✅
By adding the following casting in the MainApplicationReactNativeHost.kt I'm able to build my app again and it seems to work pretty smooth, but I'm worried if this might carry problems in the future.
override fun getJSIModulePackage(): JSIModulePackage? {
        return JSIModulePackage { reactApplicationContext, jsContext ->
            val specs: MutableList<JSIModuleSpec<*>> = ArrayList()
            // Here we provide a new JSIModuleSpec that will be responsible of providing the
            // custom Fabric Components.
            specs.add(
                    object : JSIModuleSpec<JSIModule> {
                        override fun getJSIModuleType(): JSIModuleType {
                            return JSIModuleType.UIManager
                        }

                        override fun getJSIModuleProvider(): JSIModuleProvider<JSIModule>? {
                            val componentFactory = ComponentFactory()
                            CoreComponentsRegistry.register(componentFactory)
                            // Here we register a Components Registry.
                            // The one that is generated with the template contains no components
                            // and just provides you the one from React Native core.
                            MainComponentsRegistry.register(componentFactory)
                            val reactInstanceManager = reactInstanceManager
                            val viewManagerRegistry = ViewManagerRegistry(
                                    reactInstanceManager.getOrCreateViewManagers(reactApplicationContext))
                            return FabricJSIModuleProvider(
                                    reactApplicationContext,
                                    componentFactory,
                                    EmptyReactNativeConfig(),
                                    viewManagerRegistry) as JSIModuleProvider<JSIModule>? // ❗❗ This type has been casted intentionally. Otherwise there is a mismatch between `FabricJSIModuleProvider` and `JSIModuleProvider<JSIModule>?` types.
                        }
                    })
            specs
        }
    }

Version
0.68.1
Output of npx react-native info
info Fetching system and libraries information...
System:
    OS: macOS 11.5.2
    CPU: (8) arm64 Apple M1
    Memory: 139.27 MB / 8.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 14.18.2 - ~/.nvm/versions/node/v14.18.2/bin/node
    Yarn: 1.22.17 - ~/.nvm/versions/node/v14.18.2/bin/yarn
    npm: 6.14.15 - ~/.nvm/versions/node/v14.18.2/bin/npm
    Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: 1.11.3 - /opt/homebrew/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 21.0.1, iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0
    Android SDK:
      API Levels: 28, 30, 31
      Build Tools: 30.0.2, 30.0.3, 31.0.0
      System Images: android-Tiramisu | Google Play ARM 64 v8a
      Android NDK: Not Found
  IDEs:
    Android Studio: Not Found
    Xcode: 13.1/13A1030d - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.15 - /opt/homebrew/opt/openjdk@11/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: ^17.0.2 => 17.0.2
    react-native: 0.68.1 => 0.68.1
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps to reproduce

Upgrade react-native to 0.68.1
Use the following code as the MainApplicationReactNativeHost.kt

package your.package.newarchitecture

import android.app.Application
import com.facebook.react.*
import com.facebook.react.bridge.*
import com.facebook.react.fabric.ComponentFactory
import com.facebook.react.fabric.CoreComponentsRegistry
import com.facebook.react.fabric.FabricJSIModuleProvider
import com.facebook.react.uimanager.ViewManagerRegistry
import com.facebook.react.fabric.EmptyReactNativeConfig
import your.package.newarchitecture.components.MainComponentsRegistry
import your.package.BuildConfig
import your.package.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate.Builder
import java.util.ArrayList

/**
 * A [ReactNativeHost] that helps you load everything needed for the New Architecture, both
 * TurboModule delegates and the Fabric Renderer.
 *
 *
 * Please note that this class is used ONLY if you opt-in for the New Architecture (see the
 * `newArchEnabled` property). Is ignored otherwise.
 */
class MainApplicationReactNativeHost(application: Application?) : ReactNativeHost(application) {
    override fun getUseDeveloperSupport(): Boolean {
        return BuildConfig.DEBUG
    }

    override fun getPackages(): List<ReactPackage> {
        // Packages that cannot be autolinked yet can be added manually here, for example:
        //     packages.add(new MyReactNativePackage());
        // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:
        //     packages.add(new TurboReactPackage() { ... });
        // If you have custom Fabric Components, their ViewManagers should also be loaded here
        // inside a ReactPackage.
        return PackageList(this).packages
    }

    override fun getJSMainModuleName(): String {
        return "index"
    }

    override fun getReactPackageTurboModuleManagerDelegateBuilder(): ReactPackageTurboModuleManagerDelegate.Builder {
        // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary
        // for the new architecture and to use TurboModules correctly.
        return Builder()
    }

    override fun getJSIModulePackage(): JSIModulePackage? {
        return JSIModulePackage { reactApplicationContext, jsContext ->
            val specs: MutableList<JSIModuleSpec<*>> = ArrayList()
            // Here we provide a new JSIModuleSpec that will be responsible of providing the
            // custom Fabric Components.
            specs.add(
                    object : JSIModuleSpec<JSIModule> {
                        override fun getJSIModuleType(): JSIModuleType {
                            return JSIModuleType.UIManager
                        }

                        override fun getJSIModuleProvider(): JSIModuleProvider<JSIModule>? {
                            val componentFactory = ComponentFactory()
                            CoreComponentsRegistry.register(componentFactory)
                            // Here we register a Components Registry.
                            // The one that is generated with the template contains no components
                            // and just provides you the one from React Native core.
                            MainComponentsRegistry.register(componentFactory)
                            val reactInstanceManager = reactInstanceManager
                            val viewManagerRegistry = ViewManagerRegistry(
                                    reactInstanceManager.getOrCreateViewManagers(reactApplicationContext))
                            return FabricJSIModuleProvider(
                                    reactApplicationContext,
                                    componentFactory,
                                    EmptyReactNativeConfig(),
                                    viewManagerRegistry)
                        }
                    })
            specs
        }
    }
}

Run react-native run-android

Snack, code example, screenshot, or link to a repository
Image of the error:

me too, up!

Try changing
val specs: MutableList<JSIModuleSpec<*>> = ArrayList()
to
`val specs: MutableList<JSIModuleSpec> = ArrayList()
and
object : JSIModuleSpec<JSIModule> {
to
object : JSIModuleSpec<UIManager> {
and
override fun getJSIModuleProvider(): JSIModuleProvider<JSIModule>? {
to
override fun getJSIModuleProvider(): JSIModuleProvider<UIManager>? {

The @jkrecek's solution almost works for me. The only thing I had to add was changing:
specs
to
specs as List<JSIModuleSpec<JSIModule>>?

(Without adapting to the new architecture)

Just a heads up that if you don't use the New Arch, you don't need the MainApplicationReactNativeHost file at all.


Updated AppGW FAQ to reflect SAN cert supportability

Per: https://feedback.azure.com/forums/217313-networking/suggestions/32921764-support-for-multi-san-certificate-in-azure-app-gat

@ryanborMSFT : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


If the height is not set, the background color of the screen cannot be set

💬 Question
I usually want a full-screen theme color, usually using Layout to set the height. But I use FlatList, so the height cannot be set. At the same time I want to set the theme color for the full screen. any idea?
UI Kitten and Eva version
"@eva-design/eva": "^2.0.0",
"@ui-kitten/components": "^5.0.0",

Resolved, I close this question


Enable an easy way to unbond, if you are not *exposed*

For numerous reasons, we might have nominators who don't end up in the exposure, because of resource limits of the offchain solution submitted to the chain. So the setting is:

They still do get their opinion imposed on the election result.
They cannot be slashed.
Nor can they be rewarded, both because they are not in anyone's Exposure.

We can, in practice, let someone who's unbonding off the hook (and let them not wait the whole BondingDuration) if we know that they are not in the Exposure of any validator, both in the current era and all the previous BondingDuration eras.
With the current storage layout, doing this is quite expensive. I think that transaction would cost a lot -- potentially not even fitting into a single block, so you probably have a better time waiting for the BondingDuration.
That being said, I want to open this meta-issue to bring up that this is a matter that could be improved here. Usually, I would say that this is a matter of UX, and good UX is not the main priority of the protocol. Nonetheless, it would be good to discuss if any other options exist to achieve this, without sacrificing security.
Inspired by comment from @horaciob https://github.com/paritytech/polkadot/issues/2418#issuecomment-804918648

We could touch all nominators after every election to record "when last exposed", not sure what happens currently there.
In principle, we could provide some tool off-chain that crawls the old exposure sets of their current nominations, which plays okay with BEEFY, except all those past block references gets heavy.

We could touch all nominators after every election to record "when last exposed", not sure what happens currently there.

That's one way. But of course we don't do this right now, and doing so won't be trivial. We would need to touch tens of thousands of accounts, as opposed to the current validator-major exposures that are stored, which is only a few hundred keys.

Alternatively, we could also store a separate storage item that stored the exposed nominators per era. But this is even more expensive than the previous solution.
All in all, both of these need us to do a lot  more work upon finishing an election on the staking side. We can only allow such a thing to happen as a kind of background task (#8197) or if we finish the election multi-block.

@thiolliere one way or another, reducing history depth will help with this. Any reason to keep this at the current, seemingly overkill 84?

I'm not convinced we really need this honestly.. it's definitely nicer ux.. but does it buy us any concrete benefit?

For anyone who bonded by mistake, or bonded but is not capable of participating in nomination, this would be useful. It is not important, as you said. Just nice ux.

I see.. yes, we could do bonded and never nominated rather cleanly.  We could likely handle bonded but chilled cleanly too.  Also bonded but all nominations dropped out or kicked me.  It's maybe simpler to cover all special cases like these directly?  It's bonded but my nominations never win that sucks, although maybe not wholly impossible even there.

@thiolliere one way or another, reducing history depth will help with this. Any reason to keep this at the current, seemingly overkill 84?

But history depth is not related to bounding duration, as far as I can see. history depth is for giving time to call the reward.
And slashing is using information in pallet-session-historical so not related to history depth, no ?

@thiolliere one way or another, reducing history depth will help with this. Any reason to keep this at the current, seemingly overkill 84?

But history depth is not related to bounding duration, as far as I can see. history depth is for giving time to call the reward.
And slashing is using information in pallet-session-historical so not related to history depth, no ?

I just looked at the fact that to prove that you are not exposed you have to prove that you are not in ErasStakers, and this double map is pruned after HistoryDepth.
Although, I think it is enough to prove that you are not in the BondingDuration last eras of ErasStakers, not the whole thing, so yeah it is unrelated.
NOTE: should we not have an integrity test to assert HistoryDepth > BondingDuration?

NOTE: should we not have an integrity test to assert HistoryDepth > BondingDuration?

I actually think it is correct to have BondingDuration higher than HistoryDepth. BondingDuration store only the hash of the exposure on chain while HistoryDepth store the full history depth, so it is usually sensible to have HistoryDepth < BondingDuration

With @rossbulat we came up with a different approach to solving this:
By default, in the current polkadot config, the cost of checking if someone is exposed or not is 28 * 300 = 8400 storage reads. In kusama, it is 28000. The reason is that we have to check every validator, every era. Ross's suggestion was that if we knew historical nomination info, we can only check a smaller subset of validators.
We create a new map, called HistoricalNominations = Map<T::AccountId, BoundedVec<(T::AccountId, EraIndex)>>. The key is the nominator, the value is a vector, representing the union of all of the validators that this nominator has nominated, combined with the era at which this nomination happened.

upon nominate call:
We read this union/vector, and prune the old eras that are old enough. This is one storage read, and a small in-memory pruning.
We compute the new union, and store it*.
the entire existing unstake function remains the same. Instead, upon a new call unstake_fast, we check the exposure of all the validators that exist in the origin's union storage.

Needless to say, for this to work, this union vector will be bounded, e.g. 128. This implies that:

Within any window of 28 days, the union of all the validators that a nominator nominates need to be bounded.
The worse case tx-fee and weight of the unstake_fast will be this bound, multiplied by 28.

The only missing piece here is that I really want to make this opt-in. This functionality is only useful for those who are ACTUALLY not exposed. Within an ideal staking system, we won't have that many of these people around, so constraining everyone for the sake of this small minority is wrong.

To throw another idea out there, we could eliminate the EraIndex in the map if we have a "try before you buy" model, where there is a set limit of 28 eras to quick-unbond in the event the nominator is not exposed.
Users can opt-in when they call nominate.  HistoricalNominations would then be:
HistoricalNominations = Map<T::AccountId, (when: BlockNumber, BoundedVec<T::AccountId>)>>

where when is the block they opted-in (batch this call with nominate.
This is more of a convenience function for new users who may not be aware of how nominations work and therefore choose totally inactive nominations.

Added on master, thanks!

I’ve thought quite deeply about how a quick unstake system can be introduced in staking. Here are my findings.
A nominator should be able to immediately unstake if their nominations have not been exposed in the last BondingDuration eras. But it is extremely costly to check this. Instead of iterating the entirety of ErasStakers, we could just keep track of a nominator's nominees, and check whether that subset have been exposed in the last BondingDuration eras.
Such a feature will not be useful for everyone, so this should ideally be an opt-in feature.
We want to do this in a way that is easy to clean up stale era data. The most efficient way to do this is by calling a single remove_prefix with the expired era in question.
To achieve this, we introduce 2 new storage items:

New Storage items
A StorageDoubleMap to hold a nominator’s validators per era:
HistoricalNominations:  (Era, Nominator) => [...Validators]  // BoundedVec<64>

We also introduce a StorageMap to keep track of when fast unstake starts, and which eras a nominator sets their nominees to provide a means to refer to the previous storage map:
HistoricalNominatorEras: Nominator => (start_era, [...Eras]) // BoundedVec<28>

We now have a means of tracking which eras nominees are set, and which nominees were set per era, in a way we can easily remove outdated records.

Managing stale storage
We can use clear_era_information to remove HistoricalNominations items that have surpassed BondingDuration eras:
// this ensures there will always be a maximum of 64 * 28 validator exposures to check.
HistoricalNominations::remove_prefix(old_era)

New calls
register_fast_unstake()

For new nominators, this should be called before bonding and nominating, as this guarantees there are no outstanding exposures, and fast unstake can take place from the current era.
For existing nominators, they will need to wait at least BondingDuration eras before exposures can be determined, which will be reflected in start_era.
Initiates HistoricalNominatorEras with an empty array for the era indexes.

unregister_fast_unstake()

Removes HistoricalNominatorEras and any HistoricalNominations.

fast_unstake()

Aggregates all unique validators of HistoricalNominations and checks whether they have been exposed. If none have been exposed, the fast unstake succeeds, otherwise it fails.

Updates to existing calls
nominate(): Updates HistoricalNominations and HistoricalNominatorEras. Prunes HistoricalNominatorEras of stale eras.
withdraw(): Removes HistoricalNominationsand HistoricalNominatorEras as user is no longer staking.

Shortfalls:

No existing historical nominee records: Upon opting in to fast unstake, an existing nominator will still need to wait at least BondingDuration eras before we know whether their nominees have been exposed.
Lack of incentive to unregister: A deposit or some sort of incentive to opt-in / keep fast stake active (> deposit = > duration) could be introduced and stored in HistoricalNominatorEras.

Benefits

Unstake if not exposed: Ability to call fast_unstake() if no exposures.

Other Possible Benefits:

Immediate unstake before nominator's first era: By just having HistoricalNominatorEras, we can derive when a nominator first started nominating and allow them to unstake before they take part in their first election cycle.
Inactive nomination pools can offer fast unstake: Pool owners could register to fast unstake and allow any pool member to withdraw their funds if the pool has no exposures.