Android error “Could not get BatchedBridge, make sure your bundle is packaged properly” on start of app

After creating a project and not changing a single file, I tried to test it on my 4.4.2. device. I got this red screen right on start of the app and after dismissing it, only white screen was shown instead of welcome message that was supposed to be there.

I also got this error on 5.1.1, but the project worked fine on 6.1.1.
Android emulator (for 4.4.2) was also able to display the messages without this redscreen
Edit: On Stack Overflow, user tbo has posted an answer with a workaround. It does work, however it's not ideal as it takes more time http://stackoverflow.com/questions/38870710/error-could-not-get-batchedbridge-make-sure-your-bundle-is-packaged-properly/38874952#38874952

I get this error when trying to run an iOS app using a local build (no dev server).

Sometimes I got this error when I start clean app (bundle was never downloaded) In most cases there is error in connection between phone and computer.
Checking:

if adb reverse proxy is set up
if packager fucked up
if server adress is good (dev settings)

does a thing
(solution in SO does work because you upload prebacked apk with bundle inside but idk if watch works for you)

I got same error both android device and emulator

perhaps it will help:
http://stackoverflow.com/questions/38870710/error-could-not-get-batchedbridge-make-sure-your-bundle-is-packaged-properly

@T0toro facing the same error, but the info at the link doesn't help me

react-native run-android
react-native start --reset-cache

Found the solution:
react-native start
then reload the app.

I got it to work by changing in the file .buckconfig the line:
target = Google Inc.:Google APIs:23
to
target = Google Inc.:Google APIs:24

@fisherman818 as i said..
@laszl0 should not be a issue. RN is not dependent on API 24

@stoffern yes, you are right. thanks

This solution on Stack Overflow worked for me: http://stackoverflow.com/a/38874952/1880100
I am only seeing this issue on my 6.0.0 emulator, but not my 4.4.4 emulator

If this is happening on physical device, do adb reverse tcp:8081 tcp:8081
Hope it helps!!

可以看下这个
http://www.geek5.cn/?p=232

Anyone found the solution? (tried all her... )
I have this problem only for android 5

I had the same problem with a clean installation, and I solved it with http://stackoverflow.com/questions/38870710/error-could-not-get-batchedbridge-make-sure-your-bundle-is-packaged-properly
I think this should be documented.

I had the same issue.
I first needed to run the server
react-native start
and then
react-native run-android

react-native start tells you what's wrong. In my case, there were other processes listening on port 8081. Solved it by getting them:
lsof -n -i4TCP:8081
and then killing them'all.

any feasible solution?
react-native start && react-native run-android is not working for me.

react-native start && react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --sourcemap-output android/app/src/main/assets/index.android.map --assets-dest android/app/src/main/res/

@changkun Try to change an emulator device

@Antibioticvz cool! It works for me, just simply change the emulator from nexus5 to nexus 6.

@changkun what the emulator do you use? I've got this problem for Genymotion -> nexus 5 (5.0.0 api21)

@Antibioticvz I was using Genymotion Nexus 5 (6.0.0, API 23), then I followed your suggestion change to Nexus 6 (6.0.0, API 23) everthing works fine.
However, not this error happens again... even to use the nexus 6 emulator...

This issue is frustrating me.. i tried in all the devices with Android 4.4, 5.0.1, 6.0.. and getting the same issue "could not get batchedbridge make sure your bundle is packaged correctly".. . please help me to fix..

For physical device in helps to me:
adb reverse tcp:8081 tcp:8081

This is happening on both of my emulator and mobile device, and none of the solutions working for me, sadly.

Same Here

So dig a little bit more and found that my <root>/android/app/build/intermediates/assets/debug folder was empty and buy running cd android && ./gradlew assembleDebug was not creating those files required, which are later used by javascript thread in our react native apps.
I ran manually the following command which the debug build command should have created ideally.
node node_modules/react-native/local-cli/cli.js bundle --platform android --dev true --reset-cache --entry-file index.android.js --bundle-output /<path to dir>/android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest /<path to dir>/android/app/build/intermediates/res/merged/debug

After running these commands I found two bundle files in my <root>/android/app/build/intermediates/assets/debug
And then a I ran again cd android && ./gradlew installDebug my app started working again.

@sumit6b Thanks, your solutions works for me.

This issue also happens if your device is not on the same network as your dev machine.

I created a demo program，and run it on samsung 5.0 successfully, but failed to run on 4.4.4，The error is  same with  up, I have try to all the methods provided by provider,but no effect!

Android 4.4  OK
when 5.0 or 6.0  this is the same question

However,I'm always wrong when running on android  4.4 ,but it's ok on api 21 +.

@sumit6b Thanks , Your solution worked for me but I can't use it in dev build , everytime I change something and I have to build apk.Any help on that?

I'm having the same error and solve it by running solution that i found here http://stackoverflow.com/a/38874952/2840870
First I clean gradle by running
(cd android/ && gradlew clean)
Then start to bundle android by running:
node node_modules/react-native/local-cli/cli.js bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --sourcemap-output android/app/src/main/assets/index.android.map --assets-dest android/app/src/main/res/

After that I run the script to make android build by running:
(cd android/ && gradlew assembleDebug)
And last I start to run my project by running react-native run-android
This error was solved now.
(Note: Since I'm using windows, I run this solution first on ming and the error is still exist and it does only create one bundle file under <root>/android/app/build/intermediates/assets/debug then I try to do this same solution in ming with Run as Administrator and it was able to create 2 bundle file under the same path)
(Note 2: I was able to fix this problem and display the main view of my project but still having issue on cmd which I think a separate error)
ERROR  UNKNOWN: unknown error, lstat 'c:\react-apps\qt-mobile-app\node_modules\.bin\JSONStream'
{"errno":-4094,"code":"UNKNOWN","syscall":"lstat","path":"c:\\react-apps\\qt-mobile-app\\node_modules\\.bin\\JSONStream"}
Error: UNKNOWN: unknown error, lstat 'c:\react-apps\qt-mobile-app\node_modules\.bin\JSONStream'
    at Error (native)

Check to make sure that your MainApplication.java file does NOT have the following import:
import com.facebook.react.BuildConfig;

This appears to be the release version of BuildConfig which will make return BuildConfig.DEBUG return false. If you leave this out, a generated version in your build folder will be used instead which, for debug builds, will return true.
Then, in DevSupportManagerFactory's create function, enableOnCreate will be true and will return a DevSupportManagerImpl class instead of a DisabledDevSupportManager class. This will cause your React Native app to access the package server instead of looking for an internal JS bundle.
public class DevSupportManagerFactory {
  ...
  public static DevSupportManager create(
    Context applicationContext,
    ReactInstanceDevCommandsHandler reactInstanceCommandsHandler,
    @Nullable String packagerPathForJSBundleName,
    boolean enableOnCreate,
    @Nullable RedBoxHandler redBoxHandler) {
    if (!enableOnCreate) {
      return new DisabledDevSupportManager();
    }
    try {
      // ProGuard is surprisingly smart in this case and will keep a class if it detects a call to
      // Class.forName() with a static string. So instead we generate a quasi-dynamic string to
      // confuse it.
      String className =
        new StringBuilder(DEVSUPPORT_IMPL_PACKAGE)
          .append(".")
          .append(DEVSUPPORT_IMPL_CLASS)
          .toString();
      Class<?> devSupportManagerClass =
        Class.forName(className);
      Constructor constructor =
        devSupportManagerClass.getConstructor(
          Context.class,
          ReactInstanceDevCommandsHandler.class,
          String.class,
          boolean.class,
          RedBoxHandler.class);
      return (DevSupportManager) constructor.newInstance(
        applicationContext,
        reactInstanceCommandsHandler,
        packagerPathForJSBundleName,
        true,
        redBoxHandler);
    } catch (Exception e) {
      throw new RuntimeException(
        "Requested enabled DevSupportManager, but DevSupportManagerImpl class was not found" +
          " or could not be created",
        e);
    }
  }
}

For me the problem was adb not being in my path. The Get Started page tells you to put ${ANDROID_HOME}/tools in your path, which i did but that folder does not contain the adb executable.

The comment from @jj199611 solved the "get BatchedBridge" problem. Added ${ANDROID_HOME}/platform-tools to my path and it's working fine now.

My case:

open Dev setting by type command + M
put <IP_ADDRESS>:8081 in Debug server host & port

issue gone. hope help.

@sumit6b Thanks

I have had the same problem when trying to make index.js as the entry point (index.ios.js and index.android.js was just "require('./index')").

After being stuck on this issue for a couple hours, @sumit6b's solution finally solved it for me. But I was getting another error when i attempted to "reload". This lead me to realize that my osx firewall was on. Turning it resolved all issues for me and now i can simply run:
react-native run-android

@sumit6b , thanks, really works

@sumit6b works for me too, thanks a lot!

For me, on windows, the only solution that worked, believe it or not was simply to restart the PC.
I tried @sumit6b solution, but was getting another error (unknown error without much description).
I suppose was something related to windows permissions on my scenario, but not sure.
Hope this helps somebody.

I got it working by connecting the phone through wifi rather than USB, Instructions for connecting through wi-fi are given in this link http://facebook.github.io/react-native/docs/running-on-device.html

If you were to use the Visual Studio Team Services for CI, use the Task 'React Native Bundle android' and fill in the details as mentioned in the npm task 'bundle-android' by tbo in Stackoverflow answer (http://stackoverflow.com/questions/38870710/error-could-not-get-batchedbridge-make-sure-your-bundle-is-packaged-properly).

Is a simple Configuration somebody already mentioned it here but you have to change the localhost to your server IP address if you are using a physical device in  Dev Settings
Regards.

In my case the problem occured because
include ':app'
in android/settings.gradle
went missing (seemingly while unlinking a native module).

Just getting started with React-Native, I got into troubles, couldn't make anything work.
Basically, using a virtual device I couldn't get it to connect. When starting the device from android avd interface, I got bind: Transport endpoint is not connected. I still haven't figured out that part.
I went using my own Android OnePlus One, yet, troubles again. But I got it working with the following steps:
Getting started
Physical device (easier)

Port proxy for physical device (-d will automatically target physical device)
adb -d reverse tcp:8081 tcp:8081

Start ADB server
adb start-server

Run react-native server for hot reloading
react-native start

Start Android app on the physical device
react-native run-android (~30sec)

Shake the device and enable Hot reloading and Live Reload (useful the first time)

I hope it will helps some of you folks! Meanwhile, if anyone has any idea about the Transport endpoint thing, please share ;)

I got the error when running react-native run-android for the first time on a device (Moto G4 Plus, Android 7.0), when following the official getting started docs. I ran the same command again and the error is gone! The only difference was that in the first run, gradle and dependencies got downloaded.
Could it be an issue with the part of the code of react-native run-android where it downloads gradle and dependencies?

For the Android Emulator:
While it appears pretty crazy it seems that if you have turned off cellular Data Status in the Android Emulator and restart the App the Conenction can not be established. After Enabling Data Connection again the Emulator is able to connect to the packager again. However this does not happen if you change the status while the App is open.
Maybe this helps someone.

@sumit6b Thanks! Been stucking on this for hours until I found your solution.

I faced the same error, which I resolved by connection my phone with the development server
adb reverse tcp:8081 tcp:8081
(this works on android 5.0 and above).
for more details you can refer the docs.
https://facebook.github.io/react-native/docs/running-on-device.html

Create the android/app/src/main/assets folder
run react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --sourcemap-output android/app/src/main/assets/index.android.map --assets-dest android/app/src/main/res/ on the project root

Test Success Device: HUAWEI MATE 7  Android 4.4.2

@Vadorequest solution just worked well. But I must install 'watchman' and change the target sdk to 24 (instead 23)

A fix is submitted in issue #12344. It should at least cover some cases (or workarounds) described here.

Just uninstall the app and run react-native run-android it worked for me

@Zygro can we close this?

How can we run app on android v4 devices :( i'm still getting this error

Solution:
under "react-native" directory:
after run command "./gradlew :Examples:UIExplorer:android:app:installDebug" successfully,
run commnad "./packager/packager.sh" successfuly.
then click "UIExplorer App“ in the emulator or the device

@sumit6b's solution worked for me, using Bluestacks

It works after I did adb reverse tcp:8081 tcp:8081.

Hello, I am trying to run my react native app but i am not able to resolve the issue "Android error “Could not get BatchedBridge, make sure your bundle is packaged properly” on start of app" , is there any fix for it , i cannot find any solution on web either.

Hi , I also get the below error Execution failed for task ':app:processDebugResources'.

java.io.IOException: Could not delete path

Does anyone has a solution on how can i run the app on emulator ???

@sumit6b your solution worked for me, thanks a lot. But how can i also have hot reload with this, as with your solution i will have to build my app every time when i make any changes.

@siddhant91 have you tried this?
https://facebook.github.io/react-native/docs/debugging.html

@ryanhomer thanks i also had included that Debug thing and I could not load the developer menu anymore, that's great ! 🙌

@ryanhomer saved my life. thanks

@markortiz  you save my day. Thanks!!

Try this option if you have this problem in android emulator,
open your emulator goto more options present outside the emulator, in that select 'cellular'.
In cellular, try changing Data status (to 'Denied' or 'Home' in my case it was in 'Roaming' which was causing the problem) and reload. You could also try changing Network type and check if its working.
Note: This is just one of the possible solution which worked for me, hence try other solutions if it doesn't work.
All the best..

@stoffern  Thank you, mate. You saved my day 👍🏻.
I am successfully solved this problem using:
react-native run-android
react-native start --reset-cache

why is this still open?
@hramos agree to close it? https://github.com/facebook/react-native/issues/9336#issuecomment-239626323 😉

this bug happen when I used RELEASE version build config.  switch to DEBUG version fix this issue .

npm cache clean
react-native start
react-native run-android  //for android

This works for me

npm cache clean --force
npm install
react-native start
react-native run-android

try this......
export PATH="$HOME/Library/Android/sdk//platform-tools":$PATH

This might be useful for someone who is in the same situation I'm in but if you get a "watch" error after attempting to run "react-native start" take a look at the solution by @grit96 https://github.com/fbsamples/f8app/issues/55


Configuration setting for whether to run own IPFS node or attach to existing node.

By default, attempt to attach to existing node. If an existing node is running, this is the expected behavior. And this way if the user wants to attack to an existing node, this prevents mizu from silently doing the wrong thing.

As of 35b40f0e97e1a7c6fb1e0422d22741854fe6eb6e, this can be configured with the --ipfs-internal flag.


cmd/go: reports errors for a correct preamble when it contains a builtin C type and a C.* name can't be resolved

What version of Go are you using (go version)?

go version go1.17.2 windows/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\qmuntaldiaz\AppData\Local\go-build
set GOENV=C:\Users\qmuntaldiaz\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\qmuntaldiaz\go\pkg\mod
set GONOPROXY=github.com/microsoft/*
set GONOSUMDB=github.com/microsoft/*
set GOOS=windows
set GOPATH=C:\Users\qmuntaldiaz\go
set GOPRIVATE=github.com/microsoft/*
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.2
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=C:\Users\qmuntaldiaz\code\gotest\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\QMUNTA~1\AppData\Local\Temp\go-build2404042358=/tmp/go-build -gno-record-gcc-switches

What did you do?
==foo.go==
package foo

// int StrLen(_GoString_ s) {
//	return _GoStringLen(s);
// }
import "C"
import "fmt"

func Test() {
	fmt.Println(C.StrLen1("goo"))
}

go tool cgo foo.go
What did you expect to see?
Only this error message:
foo.go:10:14: could not determine kind of name for C.StrLen1

What did you see instead?
I saw the previous error and a preamble error, when the preamble is perfectly fine.
foo.go:10:14: could not determine kind of name for C.StrLen1
cgo:
gcc errors for preamble:
foo.go:3:13: error: unknown type name '_GoString_'
    3 | // int StrLen(_GoString_ s) {
      |             ^~~~~~~~~~

_GoString_ is defined in the buildin prolog but we are not adding the prolog to the preamble when checking if the preamble has any error:
https://github.com/golang/go/blob/e7d5857a5a82551b8a70b6174ec73422442250ce/src/cmd/cgo/gcc.go#L492-L495

cc @ianlancetaylor


PHP 7 cleanups

zend_string_release in the ADD_DEBUG_INFO macro
And I don't see why we FREE_ARGS_HASH there, do you remember Sean?

This is obsoleted by @keyurdg's PR#5 now

Thanks for fixing this stuff!
Sorry don't remember, I didn't do a great job porting this one lots of runtime bugs unfortunately
thanks


LightIngest unable to authenticate Kusto using ManagedIdentity

Description:
Using LightIngest Linux binary making a call with 1 files using managed Identity as authentication for Kusto.
Unable to authenticate the kusto getting 400 bad request even though we provided valid clientID for managed identity
Reproduce:
Authenticating LightIngest using managed identity
LightIngest "https://ingest-xxxxx.eastus.kusto.windows.net;Fed=True" "-mi:{MANGED_IDENTITY}"  -db:trips -table:test -source:"{STORAGE_URL};{STORAGE_KEY}" -pattern:"*.json" -format:json  -ignoreFirst:false -cr:10.0 -dontWait:true
Error:
LightIngest failed to receive response from endpoint at 'https://ingest-xxxxxxx.eastus.kusto.windows.net'. Error: 'ManagedIdentityCredential authentication unavailable. The requested identity has not been assigned to this resource.
Status: 400 (Bad Request)

Content:
{"error":"invalid_request","error_description":"Identity not found"}

Headers:
Server: IMDS/150.870.65.1125
Date: Fri, 26 Jan 2024 16:04:15 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 68
'
Invalid service URI specified: 'https://ingest-xxxxx.eastus.kusto.windows.net'. Please make sure you are using the correct URI and that the service is accessible.

I tried to debug the code that is trying to form the ksuto connection string and the managed identity we send through parameters is assigned to EmbeddedManagedIdentity.
if (!string.IsNullOrWhiteSpace(m_args.ConnectWithManagedIdentity))
            {
                if (kcsb.FederatedSecurity || kcsb.DstsFederatedSecurity)
                {
                    kcsb.EmbeddedManagedIdentity = m_args.ConnectWithManagedIdentity;
                }
                else
                {
                    throw new UtilsArgumentException($"Command line arguments error. 'ManagedIdentity' can only be used with federated authentication.", null);
                }
            }

I looked into Kusto connection string builder code that uses embedded identity and it's in no longer in use.
    [Obsolete("Please use WithAadSystemManagedIdentity() or WithAadUserManagedIdentity(string managedIdentityClientId) instead", false)]
    public KustoConnectionStringBuilder WithAadManagedIdentity(string embeddedManagedIdentity)
    {
        return WithAadManagedIdentityImpl(embeddedManagedIdentity);
    }

I tired to make a change to the authentication logic by passing appID, secret and authority values. I was able to ingest successfully.
Is it possible to add one more parameter that can use appid/appsecret to authenticate with kusto.
if (!string.IsNullOrWhiteSpace(m_args.ConnectWithManagedIdentity))
            {
                if (kcsb.FederatedSecurity || kcsb.DstsFederatedSecurity)
                {
                   //kcsb.EmbeddedManagedIdentity = m_args.ConnectWithManagedIdentity;
                    kcsb.ApplicationClientId = m_args.ConnectWithManagedIdentity;
                    kcsb.ApplicationKey = "SECRET";
                    kcsb.Authority = "Authority";
                }
                else
                {
                    throw new UtilsArgumentException($"Command line arguments error. 'ManagedIdentity' can only be used with federated authentication.", null);
                }
            }

Hi @sumanthreddy29,
You can use App / Key or App Certificate authentication using the connection string.
See: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/api/connection-strings/kusto
As per the first issue, the errors suggests the managed identity you referred to is not assigned to your linux machine.
'ManagedIdentityCredential authentication unavailable. The requested identity has not been assigned to this resource.
Can you please double check that,

A managed identity is assigned to your machine
You have provided the correct managed identity client id
If the managed identity is a System Assigned MI you have used the keyword "system" instead of it's client id (it technically does not have one)


Double clicking the Markdown preview should scroll unnecessarily

Testing #19085
Notice the text editor scrolling around in the left. IMO the cursor should change, but if it's already in view, the editor shouldn't scroll.

I like having the markdown preview double click go to a know location in the editor. It also helps us handle cases with long paragraphs of text (where multile editor lines map to a single block paragraph)
With  #19324 I changed the behavior to instead have double click to the center of the editor. This improves the experience and seems like a good compromise for now


Add support for upcoming quality selection menu in Flowplayer 7

See flowplayer/flowplayer#1080
@blacktrash Do you think hlsjs engine can work with the spec or should we modify it somehow?

Can be catered for. But see some of the conceptual problems I've outline in the core feature request.

Is the evaluation of hlsQualities configuration against actual available qualities etc. done entirely in core?
That is: Is it enough if on ready the available data on all available levels is sent to core (as player.qualities or ...?)
availableLevels: {
  { value: -1 }, // label "Auto" or configured decision made in core
  { value: 0, width: 640, height: 360, bitrate: 450000 }
  /*
    width, height, bitrate depending on availability
    core decides
    1. is more than 1 level available
    2. does comparison of available levels and (default) label decision
       e.g. Math.round(bitrate/1000) + "k"
       based on sent level objects
  */
}

to avoid duplication of code?
If yes, should it be api.qualities on ready, and core does narrowing down, according to config (e.g. hlsQualities: "drive"), or should it be some "intermediate" api property?
Different scenario applies to api.quality: this must be determined by the plugin (if it differs from -1/Auto e.g. in playlists) because the plugin must set startLevel before ready. So on ready api has to just take over that level - and assign label according to sent available levels.
Or does the api expect a finalized Array of player.qualities derived and evaluated from hlsQualities conf: [{value: -1, label: "custom"}, {value: 0, label: "SD"}? - (implying potential code duplication - something similar must already be done for flash hls)
For the moment I am discarding the corner case scenario in a playlist there are clips with hlsQualities, and others with hlsQualities:null, but (VOD) qualities configured.


Add link to Prisma Migrate example for CI/CD

This following example posted on the blog is a good one for using Prisma Migrate in CI/CD
https://www.prisma.io/blog/backend-prisma-typescript-orm-with-postgresql-deployment-bbba1ps7kip5
Do you know where we can add it to Migrate docs?
I think later we would need a dedicated section and not only a link to the blog post. As it's quite an important part of using Migrate.
Example of user question
https://github.com/prisma/prisma/discussions/11131

TODO:

[ ] Update https://www.prisma.io/docs/guides/deployment/deploy-database-changes-with-prisma-migrate with the example from the tutorial from Daniel


Corrected sub-repository title in linux repository

Changed file title

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

Closes #21176

@leoking-crey, this PR does not address the issue at hand, the file name needs renamed instead. Please reopen a PR with these changes 👍 Thanks 😃


Render on Drag or Resize

Hello, this might not be the correct place to ask, but just in case. How would I go about rendering to the window even if I'm resizing/dragging the window around?
I've tried playing around with the Move event and the UseSingleThreadedWindow window option but can't manage.
Thanks!

Hi there, thanks for using Silk.NET!
Sadly this is caused by a fatal flaw baked into the message loop of the Desktop Window Manager that GLFW, our underlying window library, is subject to.
Basically Windows has a message loop that all events are put into, however when you drag or resize a window it actually halts that message loop until you've put it back down, so yeah this is a bug but it's a bug that's become part of the core design and isn't one we can't fix sadly, due to it beign an upstream issue.
If you'd like, you could have a play around with setting up a custom game loop (the source code for the one built in to the library is here) and mess around with how/when you call the DoEvents function, as that's the call that blocks.
Other than that there's not really much that can be done to alleviate this. Sorry!

I see, got it. Thanks for the reply, I'm not sure I'm up to the task but I might give it try. Thanks again!

About resizing:
One way that works: add two calls to drawFrame() in the resize callback. Two calls because the first after each resize will only recreate the swap chain, need a second call to get the actual render.

Closed in #1979 as best we can at this time - you can now render while the message loop is blocked so long as things are actually happening. So if you drag, each pixel change gives you an opportunity to redraw. But if you hold the window still, no drawing will occur. This is a limitation we are unprepared to overcome at this time.


Use semantic definition list markup instead of divs

This replaces the divs with more semantic dl, dt and dd tags as suggested for accordions.

Good Idea. The original BadgerAccordion also documented with this.


Make things private that should be so

Make some constants and enums private.
The ones I found to be used elsewhere, I kept public.
/assign @markusthoemmes @yanweiguo

/lgtm
/approve


Can not ssh using non root user to Linux VM in IBM cloud

/kind testing
Problem
Can not ssh to linux Virtual Server instance in IBM cloud so tests fail when trying to ssh. Can only ssh manually using root account.

If an ubuntu VM, you can use the ubuntu user name. Not sure for fedora which user to use

it works with ssh


Tree: Implement copy method.

[ ] Shallow copy to create a (single) new node with same pointers.
[ ] Deep copy that recursively copies subtree.

@gpestre anything specific for which we expect to need this?

I don't have anything in mind. I thought it might come in handy for a parallelized hyperparameter search, but we can close this for now and if we need it later it shouldn't be too hard to add.


Select only source code block content

I changed ober-select-block such that it:

only works inside source code block and
only selects the source code block content

Thanks a lot for the PR!
However, (org-in-block-p '("src")) seems to return t when the cursor is at the header.
And in fact, executing the block when the cursor is at the header is a preferable behavior (which you would probably agree).
Maybe please try running ober-eval-in-repl with the cursor at the header. That is the case I want to avoid here.
As for the selecting part, I think your code is a lot cleaner (on the other hand, I think it's more maintainable to keep the number of named variables minimal when the code is not too big, but thanks anyways). Let me take that part later.

Already saw that, however I think it's a minor problem. If you want to use eval--in-repl then you should already know what context you are executing and you should be very well aware that the header is nonsense.

Regarding variable count:
Sure, the smaller the better. However, in this case the unfold of information gets clearer: org-element-at-point to area to beg and end of block content.
Best would be to avoid variables at all and strive for a (either pure or just more) functional solution. Could try to go in that direction, if you wish.

Voila, a solution for the "in-block" "in header" discussion:
  (defun org-meta-return-around (org-fun &rest args)
    "Run `ober-eval-in-repl' if in source code block, `ober-eval-block-in-repl' if at header, and `org-meta-return' otherwise."
    (if (org-in-block-p '("src"))
        (let* ((point (point))
               (element (org-element-at-point))
               (area (org-src--contents-area element))
               (beg (copy-marker (nth 0 area))))
          (if (< point beg)
              (ober-eval-block-in-repl)
            (ober-eval-in-repl)))
      (apply org-fun args)))
  (advice-add 'org-meta-return :around #'org-meta-return-around)

As for the header part, I agree it's a minor problem, therefore I am not in a rush about this.
Yet I think it's still in the scope of this package (that means it should be addressed in the end).
Regarding the variables, I think that's fair enough.
Let me just merge the current one.
Would you mind making some minor changes to the PR? I have added some comments.
And when you have any questions/discussions, you are more than welcome.

Wow, you're quick. That can be a solution for some users, and let me copy that to the wiki, the usage examples section.

Got a stripped down version, if its ok I will pull request that:
(defun ober-select-block ()
  "Returns t if selected region. Otherwise, returns nil."
  (interactive)
  (when (org-in-block-p '("src" "example"))
    (let ((element (org-element-at-point)))
    (when (not (ober-src-block-empty-p element))
      (let ((area (org-src--contents-area element)))
        (set-mark (nth 0 area))
        (goto-char (nth 1 area))
        (setq deactivate-mark nil) ; Do not disable marking
        t)))))

Very nice, thank you so so much.


RFP - gkrellm

Checklist

[x] The package I am requesting does not already exist on https://chocolatey.org/packages;
[x] There is no open issue for this package;
[x] The issue title starts with 'RFP - ';
[x] The download URL is public and not locked behind a paywall / login;

Package Details
Software project URL :
http://gkrellm.srcbox.net/
Direct download URL for the software / installer :
https://www.srcbox.net/projects/gkrellm/
32bit: https://www.srcbox.net/projects/gkrellm/downloads/2.3.11/gkrellm-2.3.11-win32-setup.exe
64bit: https://www.srcbox.net/projects/gkrellm/downloads/2.3.11/gkrellm-2.3.11-win64-setup.exe
Software summary / short description:
What is GKrellM?
GKrellM is a single process stack of system monitors which supports applying themes to match its appearance to your window manager, Gtk, or any other theme.
Package Expectations
Just Install

I have added the 32bit and 64bit direct downloads =)


Elemental release in Rancher v2.8.3 Marketplace

[x] https://github.com/rancher/elemental/issues/1221
[x] Get the chart added in the 2.8.3 Chart Coordination Page
[x] QA testing

Done and approved in the confluence page.


SoulBound enchant + Grave Pet = Duped Items

This bug was reported to Inventory Pets, but not sure what to do from looking at your source code. The basic gist is that if you have the SoulBound Enchantment on an item, and you also use the Grave Pet, the item becomes duped.
On my side, I could try to identify which items have the enchant, but I don't know your enchantID (they look dynamic in the code). Or on your side, you could check to see if a Grave Pet with zero damage is in the hotbar, in which case the item shouldn't respawn.
Any advice is helpful.

I haven't looked at our code for a while, but I was under the impression, that it specifically moves the itemstack around, instead of copying. So it only ever exists in one of the lists. How are you handling the items?

I store the all the dropped items in NBT at death and cancel the drop event. They I load them back in on respawn. I can loop through them during respawn event (and skip any that have SoulBound), but not sure how to identify when it does. Haven't worked much with custom enchants. I am used to just pulling the ID number from vanilla.

Maybe you should disable the grave pets ability if you have ender io soulbound enchantment active.
Or vise versa.

ok, try to remove them from the list at the same time you take a copy, not just cancel the event. That should stop the duplication. I can have a look at our code later, doing this from memory now.

So, I had a look at our code.
    ListIterator<EntityItem> iter = evt.drops.listIterator();
    while (iter.hasNext()) {
      EntityItem ei = iter.next();
      ItemStack item = ei.getEntityItem();
      if(isSoulBound(item)) {
        addToPlayerInventory(evt.entityPlayer, item);
        iter.remove();
      }
    }

We remove the soulbound items from the drops list and put them into the inventory. So, if you want to preserve the inventory, I'd suggest you do the same. If you want to put the drops into a grave, I'd suggest you put them there and remove them from the list. That way there will only ever be one copy if each item.
There's no need to store the items and put them back later, btw. Unless you want to preserve inventory positions, but then you should check in the playerDropsEvent if the items are also in the drops list and remove them (and remove the items that are in your list but not the drops list from your list) for maximum compatibility.
Also, I just noticed it's a problem in our code, handle the case that the player main inventory is full.

PS: Ok, I acknowledge that soulbound should probably ignore the event if it was cancelled already. Fixed that in this PR.

Thanks :)


Parallel, allow configuration of "parallel_generators"

instead of hardcoding parallel_generators, allow the user to specify this, either in user exit(see ZIF_ABAPGIT_EXIT) or in global settings.
https://github.com/larshp/abapGit/blob/cb341e778fe3ced8c15ff2b8a317228556cc9d52/src/zcl_abapgit_serialize.clas.abap#L91

well, doesn't seem to be a problem right now, closing


yall should port it so it works with 1.19 fabric

I plan on porting it as I don't think it would be that hard.


DtypeWarning: Specify dtype option on import or set low_memory=False

We have been trying to retrieve streets from the data but keep getting the same error when making the attempt:
Error: sys:1: DtypeWarning: Columns (5,8,9,10,12,13,15,16,17) have mixed types. Specify dtype option on import or set low_memory=False.

The command we are using is:
python /app/best/filter/filter.py /app/best/data/data.csv /app/best/data/streets.csv --output_type street --postcode 1020

We have tried several zipcodes but with no success.
Sidenote, is it possible to omit the --postcode flag so that we extract all available streets? We actually need a list of streets instead of a list of addresses.
edit: We are using FROM python:3.7.4-alpine as base, the base of our Docker setup is pretty much the same as the one included in this repo.

@JosseVanDelm
I have found a solution for this issue. As the error says, you should specify the datatypes when using the read_csv method.
So line 65 of filter/filter.py should be file = pd.read_csv(args.input_file), dtype='unicode').
This seems to work. I could open a PR if you want, but I don't have write permissions on this repository to create a branch.
@DenisValcke
The --postcode filter is optional, when not specifying it the script returns all streets for all zipcodes.

Thank you for reporting this issue @DenisValcke
Sadly, I currently do not have the time to look into this issue.
Please try out the solution that @nielsbril provided and let us know if it resolves your issue.
Also thank you @nielsbril for pointing out your solution and the fact that you can not open a pull request.
I don't have rights to set the permissions either.
@jbelien or @barthanssens can we maybe set this repo up so people can contribute more easily?

AFAIK, anyone can create a PR !
But obviously not create a branch. @nielsbril you can fork this repository, create a branch on your fork and then from the new branch "push" a PR in this repository.

Alright, I'll fork the repo and open a PR 🙂


[HUDI-4703] use the historical schema to response time travel query

Change Logs
Describe context and summary for this change. Highlight if any code was copied.
Impact
Describe any public API or user-facing feature change or any performance impact.
Risk level: none | low | medium | high
Choose one. If medium or high, explain what verification was done to mitigate the risks.
Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

@hudi-bot run azure

@hudi-bot run azure

@xiarixiaoyao if you have a chance, please hope to review this.

LGTM， only a question， What will happen if the user specifies a complete compaction instant time  for mor table

LGTM， only a question， What will happen if the user specifies a complete compaction instant time for mor table

That works. Because the compaction commit also has the schema.

LGTM， only a question， What will happen if the user specifies a complete compaction instant time for mor table

That works. Because the compaction commit also has the schema.


App allows '÷×' symbols in legal name even though error states that 'Name can only include letters'

I have read the CLA Document and I hereby sign the CLA

Details

The application currently allows the use of the symbols ÷ and × in the legal name field, which is not intended. This behavior is caused by the ALPHABETIC_AND_LATIN_CHARS regular expression in the codebase. This regular expression includes the Latin character range À-ÿ, which unintentionally includes the × and ÷ symbols.
To address this issue, I suggest modifying the following constants:
ALPHABETIC_AND_LATIN_CHARS: /^[\p{Script=Latin} ]*$/u
NON_ALPHABETIC_AND_NON_LATIN_CHARS: /[^\p{Script=Latin}]/gu

The updated ALPHABETIC_AND_LATIN_CHARS regular expression matches any string that consists of one or more characters from the Latin script. The NON_ALPHABETIC_AND_NON_LATIN_CHARS regular expression matches any character that is not a Latin character.
Fixed Issues

$ https://github.com/Expensify/App/issues/24508
PROPOSAL: https://github.com/Expensify/App/issues/24508#issuecomment-1683356646
Tests

Go to Settings > Profile > Personal details > Legal name.
In either the First name or Last name field, input the characters ÷ or ×. If you are using a web browser, you can copy and paste the characters from another source. For mobile devices, switch the keyboard to the number keypad to access these symbols.
Once you have entered the characters, click on the Save button.
Verify that the app does not allow you to save the data, indicating that the use of ÷ and × symbols in the legal name field is not permitted.

[x] Verify that no errors appear in the JS console

Offline tests

Go to Settings > Profile > Personal details > Legal name.
In either the First name or Last name field, input the characters ÷ or ×. If you are using a web browser, you can copy and paste the characters from another source. For mobile devices, switch the keyboard to the number keypad to access these symbols.
Once you have entered the characters, click on the Save button.
Verify that the app does not allow you to save the data, indicating that the use of ÷ and × symbols in the legal name field is not permitted.

QA Steps

Go to Settings > Profile > Personal details > Legal name.
In either the First name or Last name field, input the characters ÷ or ×. If you are using a web browser, you can copy and paste the characters from another source. For mobile devices, switch the keyboard to the number keypad to access these symbols.
Once you have entered the characters, click on the Save button.
Verify that the app does not allow you to save the data, indicating that the use of '÷' and '×' symbols in the legal name field is not permitted.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Hi @robertKozik, Thank you for your time.
If we only want to validate standard Latin letters without considering any combining marks, \p{Script=Latin} would be sufficient. but if we want to validate Latin characters and their possible combinations with combining marks (diacritics), then \p{Script=Latin}\p{M} would be more suitable.
Considering the current code is using \p{Script=Latin} for only standard Latin letters, if we want to include the validation of Latin characters with combining marks, we should indeed add \p{M} to the pattern.

@Pluto0104 Do we allow them until now?

@Pluto0104 Do we allow them until now?

@robertKozik No, we only allow ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ. - À-ÿ. These characters are included in Script=Latin

@robertKozik so should we add them \p{M} to the pattern? If so, I can make the necessary changes and submit the pull request within 10 minutes.

Hi, @robertKozik could you please review my PR if you don't mind?

Sorry I went OOO for today, I'll come back to this PR tommorow. But basically I would stick to the behaviour we have until now

@robertKozik No, we only allowed ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ and ÷×. - À-ÿ until now. These characters are included in Script=Latin

So i believe tour current changes are sufficient right?

@robertKozik that's correct.

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/luacmartins in version: 1.3.57-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

I reported a similar bug a month ago. It was about using numbers in legal names. The error says 'only letters'. Is it okay if it includes numbers?

@madmax330 the issue from slack is 11 days old - this PR was deployed on staging 4 hours ago. Are you sure this one caused it?

I'm not sure tbh, last change before the pull you provided is actually from the PR which fixes the Spanish characters.
But I think we have never supported non-latin chars (only latin with diacritics - for example the Spanish ones are working fine) - the video from the slack issue uses the Chinese characters which are not supported in regex even before the PR.

Cool, thanks guys

🚀 Deployed to staging by https://github.com/luacmartins in version: 1.3.58-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.3.57-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


[New exercise] Markdown

Another refactoring exercise done. As always, let me know if there's something that needs additional work.

Bump here too?

@Cool-Katt can you fix the conflict?

got it boss @SleeplessByte o7


After import a TokenScript enabled token, it should auto show up in your wallet page

Currently, If I get a TokenScript enabled token from either

direct transfer from others through a wallet address
free import through MagicLink

It won't show up in wallet page.
P.S. Paid import through MagicLink (works fine)

@hboon possible to set a flag to check TokenScript token addresses to poll balances?

@hboon possible to set a flag to check TokenScript token addresses to poll balances?

[ ] direct transfer from others through a wallet address （option）
[ ] free import through MagicLink（must have）

I guess "free import through MagicLink（must have) " can be achieved through the same way we achieve "Paid import through MagicLink (works fine)".
for "direct transfer from others through a wallet address （option）" This will need to be considered together with the new token management UX @tomekalphawallet


Benchmark and fixes

Adds a new benchmark using pytest-benchmark.
Currently it tests creation from dict and from DictConfig. Notably creation from DictConfig is 5 times slower and needs some work.

The benchmark is executed in nox.
To run it manually:
$ pytest benchmark/benchmark.py

Fixed a bug with shallow copy of a container that that is an interpolation.
Added some more tests ensuring deepcopy semantics.

Optimizations:

Added flags cache. This improves initialization time from a large dict in the benchmark from 600ms to 450ms.
It also slows down the already slow the initialization from a large DictConfig from 1300ms to 1500ms, but this one needs more work anyway.

Removed deepcopy from the codepath initializing from DictConfig.
This improves the time to initialize from a large DictConfig from 1500ms to under 1ms (which seems too good to be true).

Comparing results before and after the optimizations seems too good to be true, especially for the large dict config.
$ pytest benchmark/benchmark.py --benchmark-autosave --benchmark-compare 0023 --benchmark-sort=name

Comparing results before and after the optimizations seems too good to be true, especially for the large dict config.
$ pytest benchmark/benchmark.py --benchmark-autosave --benchmark-compare 0023 --benchmark-sort=name

Usually when something is too good to be true, it's actually is.
By switching to shallow copy, the semantics of initialization from DictConfig became different than the semantics of initializing from dict.
It was so much faster because it didn't copy, this actually broke the source config simply because a node can't have two parents.
This simply happened one level deeper than the level tested in the previous tests.
Once I realized that it could be the case, I added another test that proved it (050bbaaa4d749b0646dda3c3be2b2d03460728a3).

The implementation of deepcopy for nodes is deepcopying the parent node, which means we are copying the entire config tree many more times than  we need to.
I implemented a more custom version of __deepcopy__ that  side stepped the issue by assigning None as the parent before copying, deepcopying and then restoring the parent.
The benchmark results makes more sense now.
Initializing from both dict and DictConfig takes about the same time (and both faster than before).

Usually when something is too good to be true, it's actually is.
By switching to shallow copy, the semantics of initialization from DictConfig became different than the semantics of initializing from dict.
It was so much faster because it didn't copy, this actually broke the source config simply because a node can't have two parents.
This simply happened one level deeper than the level tested in the previous tests.
Once I realized that it could be the case, I added another test that proved it (050bbaaa4d749b0646dda3c3be2b2d03460728a3).

The implementation of deepcopy for nodes is deepcopying the parent node, which means we are copying the entire config tree many more times than  we need to.
I implemented a more custom version of __deepcopy__ that  side stepped the issue by assigning None as the parent before copying, deepcopying and then restoring the parent.
The benchmark results makes more sense now.
Initializing from both dict and DictConfig takes about the same time (and both faster than before).

Reorganized commits and updated description.
This has became a pretty large diff. I am going to land it now, but please feel free to review and comment.

Reorganized commits and updated description.
This has became a pretty large diff. I am going to land it now, but please feel free to review and comment.


Repo releases?

I like what you did here, I understand this desire to add user-friendly tools to Linux systems.
What do you think about releasing this package in major systems repos, like Debian, Ubuntu, Fedora and Arch?
Or maybe as a flatpak, which is simpler to maintain.

Thank you ! Nice to here that someone can use this tool. - Yes, it's a good idea to release it to the systems repos, but I never did this before and don't know how. I also planned to rewrite everything in C with gtk4 plus some extra feautures, but this will take some time.
If you like / want and know how, you may release ServiceGUI to the systems repos (Flatpak) I would strongly support that
Have a nice day


Error parsing object expression

Parsing this simple expression
{a:1, b:2}

throws:
Unexpected token :

That's not JavaScript. Put it in expression position.

That's not JavaScript. Put it in expression position.

You're right, I wasn't aware that JavaScript has ambiguity between object literals and statements :-) I've just discovered that. Thanks.

You're right, I wasn't aware that JavaScript has ambiguity between object literals and statements :-) I've just discovered that. Thanks.


Update Typescript type in faq

If you have strict type checking and don't allow any, you should specify your SVG's as a VueConstructor of type Vue.

Thank you @sebastianks!


enhance xdg support on linux

Is your feature request related to a problem? Please describe.
Add XDG configs on linux hosts
Describe the solution you'd like
if the host is linux, add the following two lines to the host's config:
targets.genericLinux.enable = true;
xdg.enable = true;

testing this, it may have caused path issues with zfs. needs more testing.


Googlenet

Job d2l-zh/PR-605/1 is complete.
Check the results at http://preview.d2l.ai/d2l-zh/PR-605/

Job d2l-zh/PR-605/2 is complete.
Check the results at http://preview.d2l.ai/d2l-zh/PR-605/


fix: arrow back button

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


Add .gitlab-ci.yml for gitlab CI

Add .gitlab-ci.yml for gitlab CI

GitLab CI/CD is a part of GitLab
not just a scm repo
添加 .gitlab-ci.yml 是为开箱即用，为方便以下场景的自动构建使用

内部仓库使用gitlab的情况
本机环境不方便构建情况，提交到gitlab镜像后其自带CI自动构建可以在网站上获取构建结果

We don't host file which is not for open source. Sorry.

Every company has there pipeline system, we can't and should not hold them all. Right? Of you want this, just fork the repo and host there.


RDF topics are concatenated to one tag

Hey 👋!
First and foremost, thank you for NewsBlur 🌺 ! I've been a user for as long as I can remember, and my love for it hasn't declined since the first day, especially because of the intelligence trainer that prevents me from drowning in stories that I'm not particularly interested in. Thank you! ❤
I should have come here earlier so that I could have ended here, but of course, I'm currently having a challenge that I hope
I'm subscribed to the pinboard popular feed (http://feeds.pinboard.in/rss/popular/) which uses the taxonomy module for its topics, here's an excerpt:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
    <channel rdf:about="http://pinboard.in">
        <title>Pinboard (popular bookmarks)</title>
        <link>https://pinboard.in/popular/</link>
        <description>popular items from Pinboard</description>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://devfonts.gafi.dev/"/>
            </rdf:Seq>
        </items>
    </channel>

    <item rdf:about="https://devfonts.gafi.dev/">
        <title>Dev Fonts</title>
        <dc:date>2020-11-21T05:47:01+00:00</dc:date>
        <link>https://devfonts.gafi.dev/</link>
        <dc:creator>xurxosanz</dc:creator><description><![CDATA[
Interactive list of the best fonts for developers with options to preview fonts and themes
]]></description>
        <dc:subject>coding fonts development</dc:subject>
        <dc:identifier>https://pinboard.in/u:xurxosanz/b:15fcf799b91e/</dc:identifier>
        <taxo:topics>
            <rdf:Bag>
                <rdf:li rdf:resource="https://pinboard.in/u:xurxosanz/t:coding"/>
                <rdf:li rdf:resource="https://pinboard.in/u:xurxosanz/t:fonts"/>
                <rdf:li rdf:resource="https://pinboard.in/u:xurxosanz/t:development"/>
            </rdf:Bag>
        </taxo:topics>
    </item>
</rdf:RDF>

In NewsBlur, these topics are recognized but combined into one single tag coding fonts development instead of coding, fonts, and development, so that individual tags/topics cannot be trained.

Is this something that could be handled from within NewsBlur, or is it something within the feed that isn't right and could be addressed by pinboard or otherwise?
:octocat:

It looks like this is a Pinboard specific bug. I tried to get it to work, even hard-coding pinboard specific changes, but it needs to be fixed on the Pinboard side.
Here's the RSS:
<item rdf:about="https://www.nytimes.com/2020/11/24/technology/facebook-election-misinformation.html">
<title>
Roiled by Election, Facebook Struggles to Balance Civility and Growth - The New York Times
</title>
<dc:date>2020-11-25T05:47:01+00:00</dc:date>
<link>
https://www.nytimes.com/2020/11/24/technology/facebook-election-misinformation.html
</link>
<dc:creator>yorickdupon</dc:creator>
<dc:subject>facebook fake_news internet social moderation us</dc:subject>
<dc:identifier>https://pinboard.in/u:yorickdupon/b:fc7bca41da95/</dc:identifier>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="https://pinboard.in/u:yorickdupon/t:facebook"/>
<rdf:li rdf:resource="https://pinboard.in/u:yorickdupon/t:fake_news"/>
<rdf:li rdf:resource="https://pinboard.in/u:yorickdupon/t:internet"/>
<rdf:li rdf:resource="https://pinboard.in/u:yorickdupon/t:social"/>
<rdf:li rdf:resource="https://pinboard.in/u:yorickdupon/t:moderation"/>
<rdf:li rdf:resource="https://pinboard.in/u:yorickdupon/t:us"/>
</rdf:Bag>
</taxo:topics>
</item>

Here's the corresponding feedparser output:
{'author': u'yorickdupon',
 'author_detail': {'name': u'yorickdupon'},
 'authors': [{'name': u'yorickdupon'}],
 'dc_identifier': u'https://pinboard.in/u:yorickdupon/b:fc7bca41da95/',
 'id': u'https://www.nytimes.com/2020/11/24/technology/facebook-election-misinformation.html',
 'link': u'https://www.nytimes.com/2020/11/24/technology/facebook-election-misinformation.html',
 'links': [{'href': u'https://www.nytimes.com/2020/11/24/technology/facebook-election-misinformation.html',
            'rel': u'alternate',
            'type': u'text/html'}],
 'rdf_bag': u'',
 'rdf_li': {'rdf:resource': u'https://pinboard.in/u:yorickdupon/t:us'},
 'tags': [{'label': None,
           'scheme': None,
           'term': u'facebook fake_news internet social moderation us'}],
 'taxo_topics': u'',
 'title': u'Roiled by Election, Facebook Struggles to Balance Civility and Growth - The New York Times',
 'title_detail': {'base': u'http://feeds.pinboard.in/rss/popular/',
                  'language': None,
                  'type': u'text/plain',
                  'value': u'Roiled by Election, Facebook Struggles to Balance Civility and Growth - The New York Times'},
 'updated': u'2020-11-25T05:47:01+00:00',
 'updated_parsed': time.struct_time(tm_year=2020, tm_mon=11, tm_mday=25, tm_hour=5, tm_min=47, tm_sec=1, tm_wday=2, tm_yday=330, tm_isdst=0)}

Reach out to Maciej and ask to separate tags into separate terms. I can't go cutting up terms by spaces because that's going to mess up other sites.

I understand! Thanks for the feedback!

In case someone stumbles upon this issue:
I finally got around and made my own quick and dirty tag splitter at https://github.com/jeromegamez/pinboard-for-newsblur and publish the rewritten feeds once an hour to GitHub pages and subscribe to that feed instead.
For example, https://feeds.pinboard.in/rss/popular/ becomes https://jeromegamez.github.io/pinboard-for-newsblur/popular.xml
🥳