Error loading node "runtime-blob-types"

I updated nodejs to version 18.18.2 and the packages to the latest version. When I run n8n at first it starts normally, but after I run the npm link n8n-nodes-oraclesql command, it starts giving these errors, I don't understand why the @aws-sdk folder gives an error in the node_modules folder .n8n\ custom but there is no error in the n8n folder, if I delete the node_modules folder which is inside the custom folder the n8n starts normally.

C:\Users\gefeson.oliveira\.n8n\custom>n8n start
Initializing n8n process
📌 InstantClient initialized successfully. ✅
Error loading node "runtime-blob-types" from<EMAIL_ADDRESS>- Unexpected token 'export'
C:\Users\gefeson.oliveira\.n8n\custom\node_modules\@aws-sdk\types\dist-es\blob\runtime-blob-types.node.js:1
export {};
^^^^^^

SyntaxError: Unexpected token 'export'
    at internalCompileFunction (node:internal/vm:73:18)
    at wrapSafe (node:internal/modules/cjs/loader:1178:20)
    at Module._compile (node:internal/modules/cjs/loader:1220:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Function.Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:119:18)
    at evalmachine.<anonymous>:1:6
    at Script.runInContext (node:vm:135:12)
Error: Exiting due to an error.
SyntaxError: Unexpected token 'export'

I returned all package and nodejs versions to their previous versions but the error still persists.
Here are the versions of my package.json
"devDependencies": {
		"@types/express": "^4.17.20",
		"@types/jest": "^29.5.6",
		"@types/node": "^20.8.7",
		"@types/oracledb": "^6.0.2",
		"@types/request-promise-native": "~1.0.20",
		"@typescript-eslint/parser": "~6.8",
		"chokidar": "^3.5.3",
		"eslint-plugin-n8n-nodes-base": "^1.16.0",
		"gulp": "^4.0.2",
		"jest": "^29.7.0",
		"n8n-core": "^1.5.0",
		"n8n-workflow": "^1.6.0",
		"nodelinter": "^0.1.19",
		"nodemon": "^3.0.1",
		"prettier": "^3.0.3",
		"ts-jest": "^29.1.1",
		"tslint": "^6.1.3",
		"typescript": "~5.2.2"
	},
	"dependencies": {
		"oracledb": "^6.2.0"
	}

Hey @technervs,
Can you try running this repo to see if you get the same issue without your changes to see if you have the same issue. This will tell us if the issue is with this repo or with your custom node.

I downloaded this repo and did the same test, I got the same errors

Hey @technervs,
I have just given it a go and I am nto able to reproduce this, Can you clear your .n8n/custom folder and try again to see if that helps or run something like npm explain @aws-sdk / npm why @aws-sdk to see if that shows anything.

When running the npm explain @aws-sdknpm why @aws-sdk commands, it generated an error log:
0 verbose cli C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js
1 info using<EMAIL_ADDRESS>2 info using<EMAIL_ADDRESS>3 timing npm:load:whichnode Completed in 3ms
4 timing config:load:defaults Completed in 5ms
5 timing config:load:file:C:\Program Files\nodejs\node_modules\npm\npmrc Completed in 2ms
6 timing config:load:builtin Completed in 2ms
7 timing config:load:cli Completed in 2ms
8 timing config:load:env Completed in 0ms
9 timing config:load:file:c:\www\n8n-nodes-oraclesql.npmrc Completed in 0ms
10 timing config:load:project Completed in 1ms
11 timing config:load:file:C:\Users\gefeson.oliveira.npmrc Completed in 1ms
12 timing config:load:user Completed in 1ms
13 timing config:load:file:C:\Users\gefeson.oliveira\AppData\Roaming\npm\etc\npmrc Completed in 0ms
14 timing config:load:global Completed in 0ms
15 timing config:load:setEnvs Completed in 1ms
16 timing config:load Completed in 12ms
17 timing npm:load:configload Completed in 12ms
18 timing config:load:flatten Completed in 3ms
19 timing npm:load:mkdirpcache Completed in 1ms
20 timing npm:load:mkdirplogs Completed in 0ms
21 verbose title npm explain @aws-sdk
22 verbose argv "explain" "@aws-sdk"
23 timing npm:load:setTitle Completed in 1ms
24 timing npm:load:display Completed in 0ms
25 verbose logfile logs-max:10 dir:C:\Users\gefeson.oliveira\AppData\Local\npm-cache_logs\2023-10-23T13_26_08_777Z-
26 verbose logfile C:\Users\gefeson.oliveira\AppData\Local\npm-cache_logs\2023-10-23T13_26_08_777Z-debug-0.log
27 timing npm:load:logFile Completed in 8ms
28 timing npm:load:timers Completed in 0ms
29 timing npm:load:configScope Completed in 0ms
30 timing npm:load Completed in 53ms
31 timing arborist:ctor Completed in 1ms
32 silly logfile start cleaning logs, removing 2 files
33 verbose shrinkwrap failed to load node_modules/.package-lock.json out of date, updated: node_modules
34 silly logfile done cleaning log files
35 timing command:explain Completed in 932ms
36 verbose stack Error: No dependencies found matching @aws-sdk
36 verbose stack     at Explain.exec (C:\Program Files\nodejs\node_modules\npm\lib\commands\explain.js:57:13)
36 verbose stack     at async module.exports (C:\Program Files\nodejs\node_modules\npm\lib\cli-entry.js:61:5)
37 verbose cwd c:\www\n8n-nodes-oraclesql
38 verbose Windows_NT 10.0.22621
39 verbose node v18.18.2
40 verbose npm  v9.8.1
41 error No dependencies found matching @aws-sdk
42 verbose exit 1
43 timing npm Completed in 1103ms
44 verbose code 1
45 error A complete log of this run can be found in: C:\Users\gefeson.oliveira\AppData\Local\npm-cache_logs\2023-10-23T13_26_08_777Z-debug-0.log
Eu já havia feito o teste de limpar a pasta n8n/custom, mas não resolveu

I am not sure why that is still showing n8n-nodes-oraclesql in the output, Did you run the command from inside ~/.n8n/custom or in the nodes folder?

I managed to solve it in the following way, I went back to the old versions of the packages and I had to change the name of the node folder so that npm recognized it

@technervs did you rename the node_modules in .n8n/custom or which folder?

I'm with the same problem here...
Followed this tutorial https://docs.n8n.io/integrations/creating-nodes/build/declarative-style-node/

Hey @kimtiago,
When are you seeing the error? Are you also creating a node on Windows?

I'm seeing this error when start my n8n installed global by npm install n8n -g
I'm using Windows.

Você renomeou a pasta In ou qual?node_modules``.n8n/custom

I renamed the project folder and when I use npm link it consequently changes the name of the folder in the .n8n/custom directory

@kimtiago interesting at the moment from what I can tell this issue only appears for windows users.
I will do some digging to see if this has been raised on the aws-sdk project.

Hi @Joffcom , I've decided to stop trying to develop n8n on Windows. However, I'm now facing a different issue.
On my VPS, where my applications are running with Docker/Portainer/Traefik, I've set up a separate n8n instance for development purposes. I've also installed Node.js and npm directly on the server's root to work on this starter-node project.
This particular n8n instance has its .n8n volume mapped out, but the 'link' command seems ineffective because the instance isn't able to recognize the project's actual path. Do you have any advice or suggestions on how to effectively work in this setup?

I'm having this issue running Linux

FYI, this is happening in WSL too


feat: add typing support

This will allow mypy to scan the package to look for typing related info. Also, mypy will stop complaining this does not offer stubs.

Hi @RoeiOhayon, would it be possible to have a look at this?


[Image] iPhone 4s Simulator unable to render  with .jpeg extension

<Image source={{uri: 'http://www.rick.com/wp-content/uploads/2013/02/third-eye-blind.jpeg'}} />

Image is loaded fine on every simulator except iPhone 4s.

Try to add specific width and height in style.

The image has a width and height. Like I said, the image loads on non-iPhone 4s devices. Also, using a non-.jpeg image source on the 4s displays an image - leading me to believe it is specific to the 4S and JPEG images.

I can't see style on your example.
Anyway I tried display your link inside my 4S simulator with specific width and height and it worked.

<View>
    <Image style={{width: 100, height: 100}} source={{uri: 'http://www.rick.com/wp-content/uploads/2013/02/third-eye-blind.jpeg'}} />
</View>

This is annoying. Yes, you're right - in a fresh react-native init project that works. However I am having all sorts of issues with <Image> with my particular project setup, which unfortunately I can't easily share. See #1516

@brentvatne this was fixed with 10 fixing defaultSource..


chore(main): release 1.2.0

:robot: I have created a release beep boop
1.2.0 (2024-11-07)
Features

added ammount and name as available variable names (e37f486)
added open folder button (f26667c)
saving phase is skipped if the cards cvs is edited directly to avoid overwrite warnings when editing through excel (2aab783)

Bug Fixes

fiexd an error on console caused by missing canvas ctx (dc67dc0)
fixed an issue where some variables were not being saved (14b60a4)
fixed some issues with text rendering (31363b9)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.2.0
:sunflower:


RFC: use curl dollar (${}) for var substituion

With curl dollar var substition some ambitious cases become slightly easier to see without knowning about the var content, e.g.:
$foo.bar

could mean "replace $foo" and add ".bar" if $foo is a string or "use member bar of map $foo". With
${foo}.bar
${foo.bar}

this would become easier to see without having context what type the var is.

Yea, this makes things much clearer. Can you fix up the conflicts?


Uncaught TypeError: this.childProcess.send is not a function

I think this occurred when I checked for plugin updates.
Atom Version: 1.8.0
System: Mac OS X 10.11.5
Thrown From: fuzzy-finder package, v1.0.5
Stack Trace
Uncaught TypeError: this.childProcess.send is not a function
At /opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/task.js:117

TypeError: this.childProcess.send is not a function
    at Task.module.exports.Task.send (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/task.js:117:27)
    at Task.module.exports.Task.start (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/task.js:108:12)
    at Function.module.exports.Task.once (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/src/task.js:21:18)
    at Object.module.exports.startTask (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/fuzzy-finder/lib/path-loader.js:22:19)
    at Object.module.exports.startLoadPathsTask (/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/fuzzy-finder/lib/main.js:105:39)
    at /opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app.asar/node_modules/fuzzy-finder/lib/main.js:25:24
    at doNTCallback0 (node.js:443:9)
    at process._tickCallback (node.js:372:13)

Commands

Config
{
  "core": {
    "audioBeep": false,
    "disabledPackages": [
      "atom-sharp",
      "autosave"
    ],
    "themes": [
      "one-dark-ui",
      "base16-tomorrow-dark-theme"
    ]
  }
}

Installed Packages
# User
No installed packages

# Dev
No dev packages

Same problem. Atom 1.13.1


feat(bindings/C): opendal_operator_ptr construction using kvs

Introduce initializing opendal_operator by key-value pairs
Some explainations
For map construction, I came up with essentially three ideas.

Use a opendal_map struct, which is essentially a pointer to Rust Hashmap. I did not use this because this introduce complexity just like we construct a opendal_operator_ptr, users have to free the heap memory used only once.

opendal_map m = opendal_map_new(kvs: opendal_kvs);
opendal_operator_ptr ptr = opendal_operator_from_map(scheme, m);

/* I don't want this since this is not necessary, we are not using this anymore */
opendal_map_free(m);

opendal_operator_ptr_free(ptr);

Use a series of keys and values in the opendal_operator_ptr_from_kvs(),  this api would be like

fn opendal_operator_ptr_from_kvs(scheme: *const c_char, keys: *const c_char, values: *const c_char) -> ....

The pro of this is that we do not need to introduce any new foreign data structures into Rust (like we actually do in this PR for opendal_kv).
The con of this is that users have we make sure that the ordering and number of the provided keys and values are correct, making this API really bad.

The approach used in this PR. We introduce a new data structure called opendal_kv, which is essentially a simple key-value pair. This helps us to easier align the keys and values provided by user, and provide a more friendly interfaces.

opendal_kv kvs[3];
kvs[0] = opendal_kv {.key = "k1", .value = "v1"};
kvs[1] = opendal_kv {.key = "k2", .value = "v2"};
kvs[2] = opendal_kv {.key = "k3", .value = "v3"};

opendal_operator_ptr ptr = opendal_operator_ptr_from_kvs("memory", kvs, 3);
...

We do not need to explicitly manage heap allocation of hashmap, manage the correctness of the ordering of key-values, and we can make use of this kv data structure in the future.

Related #2321

opendal_kv is not a good name to me as it confused with existing features inside opendal, so does opendal_map.
How about API like the following:
struct opendal_operator_builder *options = opendal_operator_builder_new();
opendal_operator_builder_set(options, "a", "x");
opendal_operator_builder_set(options, "b", "y");
opendal_operator_builder_set(options, "c", "z");
opendal_operator_ptr ptr = opendal_operator_new(options);

Can we implement the move semantic in Rust for freeing opendal_operator_builder in opendal_operator_new?

opendal_kv is not a good name to me as it confused with existing features inside opendal, so does opendal_map.
How about API like the following:
struct opendal_operator_builder *options = opendal_operator_builder_new();
opendal_operator_builder_set(options, "a", "x");
opendal_operator_builder_set(options, "b", "y");
opendal_operator_builder_set(options, "c", "z");
opendal_operator_ptr ptr = opendal_operator_new(options);

Can we implement the move semantic in Rust for freeing opendal_operator_builder in opendal_operator_new?

IMO the builder is different from this map approach, I think opendal_operator_options may be a good name.
For the move semantic, it is not a common approach in C, usually if user manually allocates a heap memory, the user has to free it himself. (If we free the heap memory in our function, a programmer who often programs in C would probably double free the memory).

I think opendal_operator_options may be a good name.

LGTM!

For the move semantic, it is not a common approach in C, usually if user manually allocates a heap memory, the user has to free it himself.

Ok, let's add opendal_operator_options_free.


fix ubuntu focal build

2020/10/30 18:06:35 Debootstrap | I: Base system installed successfully.
2020/10/30 18:06:35 ==== Install packages ====
2020/10/30 18:06:38 apt | Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
2020/10/30 18:06:42 apt | Get:2 http://archive.ubuntu.com/ubuntu bionic/main Translation-en [516 kB]
2020/10/30 18:06:44 apt | Fetched 516 kB in 7s (77.2 kB/s)
2020/10/30 18:06:44 apt | Reading package lists...
2020/10/30 18:06:45 apt | Reading package lists...
2020/10/30 18:06:45 apt | Building dependency tree...
2020/10/30 18:06:45 apt | E: Unable to locate package linux-image-5.4.0-26-generic
2020/10/30 18:06:45 apt | E: Couldn't find any package by glob 'linux-image-5.4.0-26-generic'
2020/10/30 18:06:45 apt | E: Couldn't find any package by regex 'linux-image-5.4.0-26-generic'
2020/10/30 18:06:45 Action `Install packages` failed at stage Run, error: exit status 100

check operating-system/ubuntu/Ubuntu20.yaml

I may missed changing the suite from "bionic" to "focal" in the ubuntu20.yaml file

fixed


Update openconnect-gui to 1.5.3

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Not sure if this pull request should be merged – according the the developer's Releases page, the latest version 1.5.3 has no .dmg file to download, but it does have a Homebrew bottle, which contains the application file.
Since this is a GUI application, should it stay in Homebrew-Cask, despite the developer trying to create a Homebrew formula out of it?
Also note that the developer has said that this package is experimental, and is for testing out the Homebrew installation.

This isn't meant for us to install, it's for use with upstreams own tap. https://github.com/horar/homebrew-openconnect-gui/blob/develop/Formula/openconnect-gui.rb
We might need to remove this at some point if they don't publish an new download we can use.


[Issue] Error when devshell module installed in $profile (Powershell)

azd v.1.3

Find shortcut file to "Developer Powershell for VS 2022". Mine was here: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2022\Visual Studio Tools

Right click on the shortcut and find the instance id in the "Target" field. Mine was:
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noe -c "&{Import-Module """C:\Program Files\Microsoft
Visual Studio\2022\Preview\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell c110b361}"

Add the following to $profile
Run notepad $profile
Add:
Import-Module "C:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"

Enter-VsDevShell c110b361

Where c110b361 is the instance id you found in the last step:

Start a new Powershell instance.

Run azd up on any project with a hooks in azure.yaml, like https://github.com/Azure-Samples/demystifying-rag-dotnet

You'll see this output:
Error: no project exists; to create a new project, run `azd init`
WARNING: 'postprovision' hook failed with exit code: '1', Path: 'C:\Users\\AppData\Local\Temp\azd-postprovision-2183812410.ps1'. : exit code: 1
Execution will continue since ContinueOnError has been set to true.

Something with Developer Powershell is interfering with azd.

I wonder if we are passing --NoProfile to pwsh when we are running the script or if we should be.  Loading the user's profile when running hooks is maybe something we don't want to do implicitly (for example, when running in CI there will be no profile to load so if your script relies on it implicitly it will fail).
If you run with --debug you should be able to extract the entire command line we are using to run pwsh, wondering if running the script outside of azd also fails and if so, if passing --NoProfile fixes it.

Fixed via PR https://github.com/Azure/azure-dev/pull/3469


Updating node-sass to version 4.10.0

What are you trying to accomplish with this PR?
Just trying to fix the error message in the console. I think it's a custom error message because it still pops up, but node-sass has been updated to version 4.10.0 inside the slate-tools package. Is this the only place where that dependency is found?
Please provide a link to the associated GitHub issue.
https://github.com/Shopify/slate/issues/778
Checklist
For contributors:

[ ] I have updated the docs to reflect these changes, if applicable.

For maintainers:

[ ] I have :tophat:'d these changes.

Gave this a run and it seems to have removed the warning for me. Bonus that [4.11.0 was also released as stable], so let's go with that?
Once its updated, I'll merge and 🚢 this.

@internationalhouseofdonald could you get this updated to 4.11.0 and we'll merge?

I apologize for naming the branch<EMAIL_ADDRESS>that was probably a mistake on my part. In this commit, I've updated node-sass to v4.11.0. The reason Slate needs this is because it allows module bundlers (ie. Webpack) to compile Sass, and 4.7 was outdated, causing builds to break.


Unnecessary deployment in a case when nothing changes

werf should compare the desired state of deployment with the current one to prevent excess actions such as hooks launching and manifests applying in general.
This logic should be used during deploy procedure and also implemented separately in werf diff command.

Implemented in werf v2. If cluster resources are as expected and manifests in Helm chart not changed then there will be no release. If cluster resources are as expected but only manifests changed, then the new release Secret will be created and the deployment will stop.
Also there is a werf plan command which follows the same logic, showing whether a new release will be created at all or not.


Zoom in/out shortcuts not working

Godot version
v4.0.alpha5.official [d7d528c15]
System information
macOS 12.3 MacBook Pro w/M1 Pro, 32GB
Issue description
Zoom in/out (⌘ command + '=', ⌘ command + '-') shortcuts don't work, while ⌘Command + '1' (100%) works as expected.
Steps to reproduce
Attempt to zoom in/out using the shortcut keys.
Minimal reproduction project
No response

@bryanrieger Do the same shortcuts work in 3.4.4?

@bryanrieger Do the same shortcuts work in 3.4.4?

Yup.

It may be solved by https://github.com/godotengine/godot/pull/59468
You can try downloading the build artifact and see if it works.
https://github.com/godotengine/godot/actions/runs/2034530249


Only detecting 1 or 0 printers

QUICK STARTING QUESTION: Does this package work with the TM-T20II?
I found some businesses kind enough to let me test printing on their systems. I created a new React Native app solely for testing the package, and copied App.tsx directly from the example.
At the first location, EscPosPrinter.discover() only returned one printer at random. I could discover additional printers by reloading the app.
At the second location, EscPosPrinter.discover() did not discover any printers. I printed the Network Settings ticket from one of the printers and tried to connect directly through the IP address there, but received ERR_CONNECT.
Both locations were using the same POS system, and the POS system readily displayed all printers on the network. Terminal command arp -a verified that I could detect devices at both locations as well.
Unfortunately, my programming skills are too weak to contribute directly to this code, but I wanted to report this issue as it may help identify some bug within the code.
My App.js was copied directly from the example, but modified from tsx to js:
/* eslint-disable quotes */
/* eslint-disable prettier/prettier */
import React, { useState, useEffect, useCallback } from 'react';
import Encoder from 'esc-pos-encoder';

import { StyleSheet, View, Button } from 'react-native';
import EscPosPrinter, {
  getPrinterSeriesByName,
  IPrinter,
} from 'react-native-esc-pos-printer';
import { base64Image } from './base64Image';

export default function App() {
  const [init, setInit] = useState(false);
  const [printer, setPrinter] = useState(null);

  useEffect(() => {
    EscPosPrinter.addPrinterStatusListener(status => {
      console.log('current printer status:', status);
    });
  }, []);

  useEffect(() => {
    console.log(printer);
  }, [printer]);

  return (
    <View style={styles.container}>
      <Button
        title="Discover"
        onPress={() => {
          console.log('discovering');
          EscPosPrinter.discover()
            .then(printers => {
              console.log('done!', printers);
              if (printers[0]) {
                setPrinter(printers[0]);
              }
            })
            .catch(console.log);
        }}
      />

      <Button
        title="Get lines per row"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          if (printer) {
            if (!init) {
              await EscPosPrinter.init({
                target: printer.target,
                seriesName: getPrinterSeriesByName(printer.name),
                language: 'EPOS2_LANG_EN',
              });
              setInit(true);
            }

            const status = await EscPosPrinter.getPrinterCharsPerLine(
              getPrinterSeriesByName(printer.name),
            );

            console.log('print', status);
          }
        }}
      />

      <Button
        title="Start monitor printer status"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          if (printer) {
            if (!init) {
              await EscPosPrinter.init({
                target: printer.target,
                seriesName: getPrinterSeriesByName(printer.name),
                language: 'EPOS2_LANG_EN',
              });
              setInit(true);
            }

            const status = await EscPosPrinter.startMonitorPrinter();

            console.log('Printer status:', status);
          }
        }}
      />

      <Button
        title="Stop monitor printer status"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          if (printer) {
            if (!init) {
              await EscPosPrinter.init({
                target: printer.target,
                seriesName: getPrinterSeriesByName(printer.name),
                language: 'EPOS2_LANG_EN',
              });
              setInit(true);
            }

            const status = await EscPosPrinter.stopMonitorPrinter();

            console.log('Printer status:', status);
          }
        }}
      />

      <Button
        title="Print from data"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          const encoder = new Encoder();

          encoder
            .initialize()
            .line('The quick brown fox jumps over the lazy dog')
            .newline()
            .newline()
            .newline();

          try {
            if (printer) {
              if (!init) {
                await EscPosPrinter.init({
                  target: printer.target,
                  seriesName: getPrinterSeriesByName(printer.name),
                  language: 'EPOS2_LANG_EN',
                });
                setInit(true);
              }

              const printing = new EscPosPrinter.printing();

              const status = await printing.data(encoder.encode()).cut().send();

              console.log('print', status);
            }
          } catch (error) {
            console.log('error', error);
          }
        }}
      />
      <Button
        title="Test print chaining"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          try {
            if (printer) {
              if (!init) {
                await EscPosPrinter.init({
                  target: printer.target,
                  seriesName: getPrinterSeriesByName(printer.name),
                  language: 'EPOS2_LANG_EN',
                });
                setInit(true);
              }

              const printing = new EscPosPrinter.printing();
              const status = await printing
                .initialize()
                .align('center')
                .size(3, 3)
                .line('DUDE!')
                .smooth(true)
                .line('DUDE!')
                .smooth(false)
                .size(1, 1)
                .text('is that a ')
                .bold()
                .underline()
                .text('printer?')
                .bold()
                .underline()
                .newline(2)
                .align('center')
                .image(require('./store.png'), {
                  width: 75,
                  halftone: 'EPOS2_HALFTONE_THRESHOLD',
                })
                .image({ uri: base64Image }, { width: 75 })
                .image(
                  {
                    uri: 'https://raw.githubusercontent.com/tr3v3r/react-native-esc-pos-printer/main/ios/store.png',
                  },
                  { width: 75 },
                )
                .barcode({
                  value: 'Test123',
                  type: 'EPOS2_BARCODE_CODE93',
                  width: 2,
                  height: 50,
                  hri: 'EPOS2_HRI_BELOW',
                })
                .qrcode({
                  value: 'Test123',
                  level: 'EPOS2_LEVEL_M',
                  width: 5,
                })
                .cut()
                .send();

              console.log('printing', status);
            }
          } catch (error) {
            console.log('error', error);
          }
        }}
      />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
  box: {
    width: 60,
    height: 60,
    marginVertical: 20,
  },
});

@rissois Hi! Could you please try to update to version 1.5.0 and try to increase discovery timeout to 10 sec i.e. ?
 EscPosPrinter.discover({ scanningTimeoutIOS: 10000, scanningTimeoutAndroid: 10000 })
            .then(printers => {
              console.log('done!', printers);
              })

@tr3v3r Thanks for the response, and sorry for the delay.
I upgrade to Version 1.5.0 and increased the scanningTimeoutIOS to 10 seconds. Both issues persisted:
One restaurant fails to return any printer.
The other restaurant returns only one printer at a time.
Printing out a network status sheet and hardcoding the name, mac address, ip address, and target (presumed target = 'TCP:'+ip also failed for the restaurant that does not discover. However, their current POS system is easily detecting the printers via WiFi and printing.
Please advise if there are any further tests I can perform to help troubleshoot this. Thanks.

i have same problem

@rissois Hi!
I can confirm that TM-T20II is supported as well as multiple printers discovery ( since we have such functionality in our app ). Can you confirm that during the search the printers are not reserved by someone else? ( I mean not printing/connected at the moment of searching from another device ).
Have you tried on Android?
Could you please share the exact code you're using?

Hi
I am sorry for not clarify. I use Epson tm m30. The problem is some time it can detect found the printer, and sometime it cannot detect the printer. It very difficult to detect.
I detect 10 times, it will be found the printer in 2 time only
Thank you
From: Aliaksei Astafyeu @.>
Sent: Monday, December 6, 2021 2:51 PM
To: tr3v3r/react-native-esc-pos-printer @.>
Cc: chukiatt @.>; Comment @.>
Subject: Re: [tr3v3r/react-native-esc-pos-printer] Only detecting 1 or 0 printers (Issue #40)
@rissoishttps://github.com/rissois Hi!
I can confirm that TM-T20II is supported as well as multiple printers discovery ( since we have such functionality in our app ). Can you confirm that during the search the printers are not reserved by someone else? ( I mean not printing/connected at the moment of searching from another device ).
Have you tried on Android?
Could you please share the exact code you're using?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/tr3v3r/react-native-esc-pos-printer/issues/40#issuecomment-986519353, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEEYLICEJIILWOKPGVP4SGLUPRTNXANCNFSM5IM4L4LA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@tr3v3r
Thanks again for getting back to me. Unfortunately I do not have an Android device to test with, if I speak to my friend later this week perhaps they can lend me one.
Yes, each restaurant has 4-6 printers, and while I am testing none of the printers are actively in use.
Please find below the code exactly as it is in my app, with restaurant information deidentified as #
import React, { useState, useEffect, useCallback } from 'react';
import Encoder from 'esc-pos-encoder';

import { StyleSheet, View, Button } from 'react-native';
import EscPosPrinter, {
  getPrinterSeriesByName,
  IPrinter,
} from 'react-native-esc-pos-printer';
import { base64Image } from './base64Image';

// Discovered these printers one-by-one
const restaurant1 = [
 {
    bt: "",
    ip: "###.###.###.###",
    mac: "##:##:##:##:##",
    name: "TM-T20",
    target: "TCP:###.###.###.###",
    usb: "",
    station: "Bar",
  },
  {
    bt: "",
    ip: "###.###.###.###",
    mac: "##:##:##:##:##",
    name: "TM-T20",
    target: "TCP:###.###.###.###",
    usb: "",
    station: "Kitchen",
  },
  {
    bt: "",
    ip: "###.###.###.###",
    mac: "##:##:##:##:##",
    name: "TM-T20",
    target: "TCP:###.###.###.###",
    usb: "",
    station: "Server station",
  },
];

// Unable to find any printers
const restaurant2 = [];

export default function App() {
  const [init, setInit] = useState(false);
  const [printer, setPrinter] = useState(null);
  useEffect(() => {
    EscPosPrinter.addPrinterStatusListener(status => {
      console.log('current printer status:', status);
    });
  }, []);
  useEffect(() => {
    console.log(printer);
  }, [printer]);

  const printSpecific = useCallback(async p => {
    const encoder = new Encoder();

    encoder
      .initialize()
      .line('The quick brown fox jumps over the lazy dog')
      .newline()
      .newline()
      .newline();

    try {
      console.log('pre-init');
      await EscPosPrinter.init({
        target: p.target,
        seriesName: getPrinterSeriesByName(p.name),
        language: 'EPOS2_LANG_EN',
      });
      console.log('post-init');
      setInit(true);
      console.log('pre-print');
      const printing = new EscPosPrinter.printing();
      console.log('post-print');
      const status = await printing.data(encoder.encode()).cut().send();

      console.log('print', status);
    }
    catch (error) {
      console.log('error', error);
    }
  }, []);

  return (
    <View style={styles.container}>
      {
        restaurant1.map(p => {
          return <Button
            key={p.station}
            title={`Print ${p.station}`}
            color={'blue'}
            onPress={() => {
              printSpecific(p)
            }}
          />;
        })
      }
      <Button
        title="Discover"
        onPress={() => {
          console.log('discovering');
          // EscPosPrinter.discover()
          EscPosPrinter.discover({ scanningTimeoutIOS: 60000, scanningTimeoutAndroid: 10000 })
            .then(printers => {
              console.log('done!', printers);
              if (printers[0]) {
                setPrinter(printers[0]);
              }
            })
            .catch(console.log);
        }}
      />

      <Button
        title="Get lines per row"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          if (printer) {
            if (!init) {
              await EscPosPrinter.init({
                target: printer.target,
                seriesName: getPrinterSeriesByName(printer.name),
                language: 'EPOS2_LANG_EN',
              });
              setInit(true);
            }

            const status = await EscPosPrinter.getPrinterCharsPerLine(
              getPrinterSeriesByName(printer.name),
            );

            console.log('print', status);
          }
        }}
      />

      <Button
        title="Start monitor printer status"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          if (printer) {
            if (!init) {
              await EscPosPrinter.init({
                target: printer.target,
                seriesName: getPrinterSeriesByName(printer.name),
                language: 'EPOS2_LANG_EN',
              });
              setInit(true);
            }

            const status = await EscPosPrinter.startMonitorPrinter();

            console.log('Printer status:', status);
          }
        }}
      />

      <Button
        title="Stop monitor printer status"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          if (printer) {
            if (!init) {
              await EscPosPrinter.init({
                target: printer.target,
                seriesName: getPrinterSeriesByName(printer.name),
                language: 'EPOS2_LANG_EN',
              });
              setInit(true);
            }

            const status = await EscPosPrinter.stopMonitorPrinter();

            console.log('Printer status:', status);
          }
        }}
      />

      <Button
        title="Print from data"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          const encoder = new Encoder();

          encoder
            .initialize()
            .line('The quick brown fox jumps over the lazy dog')
            .newline()
            .newline()
            .newline();

          try {
            if (printer) {
              if (!init) {
                await EscPosPrinter.init({
                  target: printer.target,
                  seriesName: getPrinterSeriesByName(printer.name),
                  language: 'EPOS2_LANG_EN',
                });
                setInit(true);
              }

              const printing = new EscPosPrinter.printing();

              const status = await printing.data(encoder.encode()).cut().send();

              console.log('print', status);
            }
          } catch (error) {
            console.log('error', error);
          }
        }}
      />
      <Button
        title="Test print chaining"
        disabled={!printer}
        color={!printer ? 'gray' : 'blue'}
        onPress={async () => {
          try {
            if (printer) {
              if (!init) {
                await EscPosPrinter.init({
                  target: printer.target,
                  seriesName: getPrinterSeriesByName(printer.name),
                  language: 'EPOS2_LANG_EN',
                });
                setInit(true);
              }

              const printing = new EscPosPrinter.printing();
              const status = await printing
                .initialize()
                .align('center')
                .size(3, 3)
                .line('DUDE!')
                .smooth(true)
                .line('DUDE!')
                .smooth(false)
                .size(1, 1)
                .text('is that a ')
                .bold()
                .underline()
                .text('printer?')
                .bold()
                .underline()
                .newline(2)
                .align('center')
                .image(require('./store.png'), {
                  width: 75,
                  halftone: 'EPOS2_HALFTONE_THRESHOLD',
                })
                .image({ uri: base64Image }, { width: 75 })
                .image(
                  {
                    uri: 'https://raw.githubusercontent.com/tr3v3r/react-native-esc-pos-printer/main/ios/store.png',
                  },
                  { width: 75 },
                )
                .barcode({
                  value: 'Test123',
                  type: 'EPOS2_BARCODE_CODE93',
                  width: 2,
                  height: 50,
                  hri: 'EPOS2_HRI_BELOW',
                })
                .qrcode({
                  value: 'Test123',
                  level: 'EPOS2_LEVEL_M',
                  width: 5,
                })
                .cut()
                .send();

              console.log('printing', status);
            }
          } catch (error) {
            console.log('error', error);
          }
        }}
      />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
  box: {
    width: 60,
    height: 60,
    marginVertical: 20,
  },
});

Thank you very much
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows
From: @.>
Sent: 6 ธันวาคม 2564 22:44
To: @.>
Cc: @.>; @.>
Subject: Re: [tr3v3r/react-native-esc-pos-printer] Only detecting 1 or 0 printers (Issue #40)
@tr3v3rhttps://github.com/tr3v3r
Thanks again for getting back to me. Unfortunately I do not have an Android device to test with, if I speak to my friend later this week perhaps they can lend me one.
Yes, each restaurant has 4-6 printers, and while I am testing none of the printers are actively in use.
Please find below the code exactly as it is in my app, with restaurant information deidentified as #
import React, { useState, useEffect, useCallback } from 'react';
import Encoder from 'esc-pos-encoder';
import { StyleSheet, View, Button } from 'react-native';
import EscPosPrinter, {
getPrinterSeriesByName,
IPrinter,
} from 'react-native-esc-pos-printer';
import { base64Image } from './base64Image';
// Discovered these printers one-by-one
const restaurant1 = [
{
bt: "",

ip: "###.###.###.###",

mac: "##:##:##:##:##",

name: "TM-T20",

target: "TCP:###.###.###.###",

usb: "",

station: "Bar",

},
{
bt: "",

ip: "###.###.###.###",

mac: "##:##:##:##:##",

name: "TM-T20",

target: "TCP:###.###.###.###",

usb: "",

station: "Kitchen",

},
{
bt: "",

ip: "###.###.###.###",

mac: "##:##:##:##:##",

name: "TM-T20",

target: "TCP:###.###.###.###",

usb: "",

station: "Server station",

},
];
// Unable to find any printers
const restaurant2 = [];
export default function App() {
const [init, setInit] = useState(false);
const [printer, setPrinter] = useState(null);
useEffect(() => {
EscPosPrinter.addPrinterStatusListener(status => {

  console.log('current printer status:', status);

});

}, []);
useEffect(() => {
console.log(printer);

}, [printer]);
const printSpecific = useCallback(async p => {
const encoder = new Encoder();

encoder

  .initialize()

  .line('The quick brown fox jumps over the lazy dog')

  .newline()

  .newline()

  .newline();

try {

  console.log('pre-init');

  await EscPosPrinter.init({

    target: p.target,

    seriesName: getPrinterSeriesByName(p.name),

    language: 'EPOS2_LANG_EN',

  });

  console.log('post-init');

  setInit(true);

  console.log('pre-print');

  const printing = new EscPosPrinter.printing();

  console.log('post-print');

  const status = await printing.data(encoder.encode()).cut().send();

  console.log('print', status);

}

catch (error) {

  console.log('error', error);

}

}, []);
return (
<View style={styles.container}>

  {

    restaurant1.map(p => {

      return <Button

        key={p.station}

        title={`Print ${p.station}`}

        color={'blue'}

        onPress={() => {

          printSpecific(p)

        }}

      />;

    })

  }

  <Button

    title="Discover"

    onPress={() => {

      console.log('discovering');

      // EscPosPrinter.discover()

      EscPosPrinter.discover({ scanningTimeoutIOS: 60000, scanningTimeoutAndroid: 10000 })

        .then(printers => {

          console.log('done!', printers);

          if (printers[0]) {

            setPrinter(printers[0]);

          }

        })

        .catch(console.log);

    }}

  />

  <Button

    title="Get lines per row"

    disabled={!printer}

    color={!printer ? 'gray' : 'blue'}

    onPress={async () => {

      if (printer) {

        if (!init) {

          await EscPosPrinter.init({

            target: printer.target,

            seriesName: getPrinterSeriesByName(printer.name),

            language: 'EPOS2_LANG_EN',

          });

          setInit(true);

        }

        const status = await EscPosPrinter.getPrinterCharsPerLine(

          getPrinterSeriesByName(printer.name),

        );

        console.log('print', status);

      }

    }}

  />

  <Button

    title="Start monitor printer status"

    disabled={!printer}

    color={!printer ? 'gray' : 'blue'}

    onPress={async () => {

      if (printer) {

        if (!init) {

          await EscPosPrinter.init({

            target: printer.target,

            seriesName: getPrinterSeriesByName(printer.name),

            language: 'EPOS2_LANG_EN',

          });

          setInit(true);

        }

        const status = await EscPosPrinter.startMonitorPrinter();

        console.log('Printer status:', status);

      }

    }}

  />

  <Button

    title="Stop monitor printer status"

    disabled={!printer}

    color={!printer ? 'gray' : 'blue'}

    onPress={async () => {

      if (printer) {

        if (!init) {

          await EscPosPrinter.init({

            target: printer.target,

            seriesName: getPrinterSeriesByName(printer.name),

            language: 'EPOS2_LANG_EN',

          });

          setInit(true);

        }

        const status = await EscPosPrinter.stopMonitorPrinter();

        console.log('Printer status:', status);

      }

    }}

  />

  <Button

    title="Print from data"

    disabled={!printer}

    color={!printer ? 'gray' : 'blue'}

    onPress={async () => {

      const encoder = new Encoder();

      encoder

        .initialize()

        .line('The quick brown fox jumps over the lazy dog')

        .newline()

        .newline()

        .newline();

      try {

        if (printer) {

          if (!init) {

            await EscPosPrinter.init({

              target: printer.target,

              seriesName: getPrinterSeriesByName(printer.name),

              language: 'EPOS2_LANG_EN',

            });

            setInit(true);

          }

          const printing = new EscPosPrinter.printing();

          const status = await printing.data(encoder.encode()).cut().send();

          console.log('print', status);

        }

      } catch (error) {

        console.log('error', error);

      }

    }}

  />

  <Button

    title="Test print chaining"

    disabled={!printer}

    color={!printer ? 'gray' : 'blue'}

    onPress={async () => {

      try {

        if (printer) {

          if (!init) {

            await EscPosPrinter.init({

              target: printer.target,

              seriesName: getPrinterSeriesByName(printer.name),

              language: 'EPOS2_LANG_EN',

            });

            setInit(true);

          }

          const printing = new EscPosPrinter.printing();

          const status = await printing

            .initialize()

            .align('center')

            .size(3, 3)

            .line('DUDE!')

            .smooth(true)

            .line('DUDE!')

            .smooth(false)

            .size(1, 1)

            .text('is that a ')

            .bold()

            .underline()

            .text('printer?')

            .bold()

            .underline()

            .newline(2)

            .align('center')

            .image(require('./store.png'), {

              width: 75,

              halftone: 'EPOS2_HALFTONE_THRESHOLD',

            })

            .image({ uri: base64Image }, { width: 75 })

            .image(

              {

                uri: 'https://raw.githubusercontent.com/tr3v3r/react-native-esc-pos-printer/main/ios/store.png',

              },

              { width: 75 },

            )

            .barcode({

              value: 'Test123',

              type: 'EPOS2_BARCODE_CODE93',

              width: 2,

              height: 50,

              hri: 'EPOS2_HRI_BELOW',

            })

            .qrcode({

              value: 'Test123',

              level: 'EPOS2_LEVEL_M',

              width: 5,

            })

            .cut()

            .send();

          console.log('printing', status);

        }

      } catch (error) {

        console.log('error', error);

      }

    }}

  />

</View>

);
}
const styles = StyleSheet.create({
container: {
flex: 1,

alignItems: 'center',

justifyContent: 'center',

},
box: {
width: 60,

height: 60,

marginVertical: 20,

},
});
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/tr3v3r/react-native-esc-pos-printer/issues/40#issuecomment-986898190, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEEYLIGZQN6OF2A7QVTGG5LUPTK7JANCNFSM5IM4L4LA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@rissois are you trying to connect via Wi-Fi or LAN? Can you confirm that ip
Address of the printer is in a range of router ip?

@tr3v3r
I am attempting to use my laptop to communicate with them via Wi-Fi, but the printers themselves are connected to the router via LAN (ethernet).
For the second question, are you referring to physical proximity or the subnet? I have printed the status sheet for each printer, and the TCP/IP status lists the same network address for both (they share the same first 9 digits).
Hopefully that is helpful, please let me know if I misinterpreted any your questions. I appreciate the response.

@tr3v3r
Another observation I forgot to mention: the Discovery returns the single printer before the full 10 seconds completes, so this may be a premature response.

@rissois Actually 10 sec it's just a timeout to stop discovery if nothing is found. Since I have only one printer currently it would be nice if you could figure out the problem.
Here is how the discovery of the printer works:
JS side:

...
discoveryEventEmmiter.addListener(
          'onDiscoveryDone',
          (printers: IPrinter[]) => {
            res(printers);
            removeListener();
          }
        );

...

iOS native side

- (void) onDiscovery:(Epos2DeviceInfo *)deviceInfo
{
    [_printerList addObject:deviceInfo];

    NSMutableArray *stringArray = [[NSMutableArray alloc] init];

    // you can log what actually is returned by SDK

    for (int i = 0; i < [_printerList count]; i++)
    {
        Epos2DeviceInfo *info = _printerList[i];
        NSString *name = [info getDeviceName];
        NSString *ip = [info getIpAddress];
        NSString *mac = [info getMacAddress];
        NSString *target = [info getTarget];
        NSString *bt = [info getBdAddress];
        NSString *usb = [self getUSBAddress: target];

        [stringArray addObject:@{
            @"name": name,
            @"ip": ip,
            @"mac": mac,
            @"target": target,
            @"bt": bt,
            @"usb": usb
        }];
    }

    [self sendEventWithName:@"onDiscoveryDone" body:stringArray];

    NSLog(@"Discovery done!");
}

@tr3v3r  I am still having the issue mentioned on https://github.com/tr3v3r/react-native-esc-pos-printer/pull/37, which I am now thinking wasn't a real solution but just a coincidence that it found the printer (but still probably not a bad thing to allow passing the timeout from JS side).
So I have TM-m30 Bluetooth, which works perfectly on ios, immediately discovered every time, but on Android, it is still not consistent, it doesn't return the printer sometimes. I have tried adding some logs in onDiscovery which is called when the printer is being discovered and added to the list, but sometimes that method is not called meaning the printer wasn't discovered, and even with 10 seconds of timeout it also fails sometimes. So there is something fundamentally not working as expected.

@tr3v3r I am still having the issue mentioned on #37, which I am now thinking that passing longer timeout isn't a real solution but just a coincidence that it found the printer (but still probably not a bad thing to allow passing the timeout from JS side).
So I have TM-m30 Bluetooth, which works perfectly on ios, immediately discovered every time, but on Android, it is still not consistent, it doesn't return the printer sometimes. I have tried adding some logs in onDiscovery which is called when the printer is being discovered and added to the list, but sometimes that method is not called meaning the printer wasn't discovered, and even with 10 seconds of timeout it also fails sometimes. So there is something fundamentally not working as expected.

After more debugging, I noticed that the printer discovery may take considerably longer, so I just did 50 seconds as a timeout and sometimes the onDiscovery  is being called after 11-15 seconds, which is way higher than the default 5 seconds and could potentially be the reason of missing printers, I am not entirely sure what is the logic of the discovery but 15 seconds seems to be quite long especially for checking the Bluetooth printers.

@fragilehm Hi! I suppose the reason could not be with discovery but with establishing the connection between device and printer.
Have you tried to connect using BT/IP address without searching (discover) in advance?
Also, have you tried to test on different devices with different OS versions? The problem may lie with Android/Arc. version.
Then we need to research this problem in the context of native Android apps since this library is just a simple wrapper above native SDK, moreover, we can try to test it using the latest SDK  ( possibly the problem has been already fixed by Epson).
Current SDK ver. used in this lib is 2.17.1
P.S. Unfortunately I have only one LAN printer all hopes for contributors )

Yes, I have tried updating to the latest SDK just replacing the necessary files in node_modules directly and rebuilding the app, but nothing changed. Maybe I was updating the wrong way.
So I have updated replaced:

android/libs/ePOS2.jar
android/src/main/jniLibs all files in this directory

This should work right or any other files I have missed maybe?

@fragilehm should work. Ok what about other points I’ve mentioned?

Had the same issue so decided to debug it to best of my knowledge.
Setup:

iPad mini using wifi
TM-20II using wired network
TM-m30 over BT - iPad and printer are already paired

I added a breakpoint in xCode to EscPosPrinterDiscovery.m to see whats happening in onDiscovery.
When calling EscPosPrinter.discover once the onDiscovery method gets invoked twice for me.
First time there is only one device in the list (absolutely lottery what it finds first).
After I continue the execution RN already get's the response with discovered printers (only 1) and then onDiscovery breakpoint is hit the second time but now there are two devices in the list but altho "onDiscoveryDone" event is dispatched there is noone listening for the response anymore as discover in index.tsx on line 66 has already resolved the promise. Also in debug console I can see the following warning about it:
LogBox.js:173 Sending `onDiscoveryDone` with no listeners registered.
I'll try to dig into it a bit more tomorrow and I can also test out other scenarios if you want.

Wow! Thanks a lot
I realized one thing after your investigation.
Possibly discover process is not “one time action” and we should discovery and listen for all  updates during the search.
so instead
startDiscovery().then( // one time result )
We  need
onDiscover(printers => // update every time native side updates)

startDiscovery() // now it’ll search forever until we stop it manually
Right now I can’t prove it because huge workload (

@tr3v3r that is indeed the case, so what happens is the discovery gets resolved as soon as the first printer is found as the onDiscoveryDone event is fired when the first printer gets discovered on the native side. And in fact, the timeout doesn't do anything in this case if the first found printer was discovered before the timeout. So I can make a PR that actually fires onDiscoveryDone event only on timeout, which will return all discovered printers within that time frame (have already tested on ios and it works as expected) But I can imagine this behavior will affect the existing package integrators as the first discovery (promise resolve when onDiscoveryDone is called) would be before the timeout (might even be just one second) and now, the promise will be resolved only after the delay (default 5 seconds). But the current implementation is for sure not the right one. So, how do you think we should solve this backward compatibility issue? Maybe we can leave the existing discovery function that resolves on the first found printer and create a new one that will behave as expected (returning all discovered printers after the timeout, and we might also include another callback param that will be called after each printer discovery) or we can also make a BREAKING CHANGE update with the new way of handling the discovery?

As a workaround please try using this.

Fixed in v.3.0.0
https://github.com/tr3v3r/react-native-esc-pos-printer/releases/tag/vv3.0.0


Readme Improvement for Mosaic-Effect

** New Feature Updated Points 💯 **

[ ]   Add Information Related Projects and Behind History

[ ]  Add high-resolution Image

[ ]  Add Installation Process

[ ]  Also mention which library is used

[ ] attached a real example so anyone can understand it properly

[ ]  also attached resource

Describe the solution you'd like
Mosaic-Effect Code
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Approach to be followed (optional)
A clear and concise description of the approach to be followed.
Additional context
Current State :

assigning


Fixing channel build failure

Wait, what's the need for Channel in generated code? The generated code only uses ChannelInterface right?

Basically, I don't like the idea of moving every single thing into impl/codegen and really can't see the reason for it in this case.

I double checked the generated file and it has no reference to grpc::Channel. So this change does not make sense. I will identify why this change fixes the build failure offline. Closing this PR.


instrument events for pair not found

Overview
its rare we have events in the app that show directly a feature or functionality that we are missing from a user input. We should capture this data in mix panel to determine if we can do something about missing pairs or routes that people attempt to swap frequently.
References and additional details
NA
Acceptance Criteria

when a user sees no route in app.shapeshift.com event is recorded (with that pair) in mixpanel

Need By Date
No response
Screenshots/Mockups
No response
Estimated effort
No response

concerns around false positives polluting data.
@woodenfurniture suggests adding error reason to event so that we can then filter within mixpanel.


Release 0.0.5

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.04%) to 86.327%

Totals

Change from base Build<PHONE_NUMBER>:
-0.04%

Covered Lines:
253

Relevant Lines:
282

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.04%) to 86.327%

Totals

Change from base Build<PHONE_NUMBER>:
-0.04%

Covered Lines:
253

Relevant Lines:
282

💛  - Coveralls


Crash on app foreground/backgrounding in SFQueue

We've been seeing Fabric/Crashlytics reports of a crash in line 137 of SFQueue.m:
Crashed: com.apple.root.background-qos
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000c8f42beb8

We're using version 0.9.0 of the Sift SDK, but it's not a new issue. Looking at the logs, it seems to only happen when our app is being moved to the foreground or background during use, and not at app launch. It's pretty infrequent, but it's our third most common crash, so it would be great to have it fixed. Let me know what other information would be helpful, and thanks!

@garylee1 can you investigate?

Sure

@lehrblogger Do you have a more detailed stack trace we can use to debug?

@garylee1 Sure – here are two from Crashlytics, one from a few months ago, and one from today:

com.seatgeek.seatgeek_issue_7251_crash_dcc18212d6714317b768982341be0b75.txt
com.seatgeek.seatgeek_issue_7251_crash_89bc82c4e37a47ec97f67c8303b3a967.txt

(I didn't open an issue sooner because we were using an old version of the SDK for a while, and I wanted to see if it was something you had already fixed.)

We are seeing the same thing since we added the SDK. Been driving me crazy for past 3 days, appears to be related the NSURLSession and a leaked observer in notification center. It only happens after the OS pushes the app to a background state. Crashlytics log:
#0. Crashed: com.apple.main-thread
0  libdispatch.dylib              0x18340abb0 _dispatch_queue_resume + 624
1  CoreFoundation                 0x18451022c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
2  CoreFoundation                 0x18451022c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
3  CoreFoundation                 0x18450f930 _CFXRegistrationPost + 400
4  CoreFoundation                 0x18450f6ac ___CFXNotificationPost_block_invoke + 60
5  CoreFoundation                 0x18457eb9c -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1504
6  CoreFoundation                 0x184451bf4 _CFXNotificationPost + 376
7  Foundation                     0x184f5b62c -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
8  UIKit                          0x18a6324d0 -[UIApplication _sendWillEnterForegroundCallbacks] + 232
9  UIKit                          0x18a66daac -[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:] + 2140
10 UIKit                          0x18a66cfdc -[UIApplication _handleApplicationLifecycleEventWithScene:transitionContext:completion:] + 452
11 UIKit                          0x18a6585e0 __70-[UIApplication scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke + 152
12 UIKit                          0x18a658264 -[UIApplication scene:didUpdateWithDiff:transitionContext:completion:] + 888
13 UIKit                          0x18a989ba4 -[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:] + 464
14 FrontBoardServices             0x1860efb8c __80-[FBSSceneImpl updater:didUpdateSettings:withDiff:transitionContext:completion:]_block_invoke.376 + 208
15 FrontBoardServices             0x18611d8bc __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 36
16 FrontBoardServices             0x18611d728 -[FBSSerialQueue _performNext] + 176
17 FrontBoardServices             0x18611dad0 -[FBSSerialQueue _performNextFromRunLoopSource] + 56
18 CoreFoundation                 0x184524278 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
19 CoreFoundation                 0x184523b50 __CFRunLoopDoSources0 + 412
20 CoreFoundation                 0x1845217c0 __CFRunLoopRun + 804
21 CoreFoundation                 0x184450048 CFRunLoopRunSpecific + 444
22 GraphicsServices               0x185ed6198 GSEventRunModal + 180
23 UIKit                          0x18a43c2fc -[UIApplication _run] + 684
24 UIKit                          0x18a437034 UIApplicationMain + 208

@lehrblogger @AndrewBarba Just want to confirm, is this causing your app to crash? or is this just an error that is being logged that is silent to the end user?

This crashing the app. We both sent crash logs: #0. Crashed: com.apple.main-thread

Gotcha. Are you able to reproduce on a test device? And if so, how?

I've never been able to reproduce on a device connected to a debugger, but it happened to all 15 or so people I've been sending TestFlight builds too. Its quite easy to reproduce: Install app with sift sdk, open the app, click home button, wait a couple hours, reopen app, it will crash.

That's very helpful, investigating now. Thank you!

@lehrblogger It looks like your crash is happening in a background thread but @AndrewBarba reports a crash in the main thread. Is yours also crashing the app?

@AndrewBarba are your users running iOS 8 by chance? If it's actually a leaked observer I believe iOS 9 and onward use (zeroing) weak references for observers, which should preclude that issue. I've so far not been able to reproduce it on emulator or real device, but I'm continuing to investigate.

Latest version of iOS 10

Thanks – also what clues do you have that it's related to NSURLSession?

Sorry for my delay responding. Fabric reports it as occurring on iOS 8, 9, and 10 and on both iPhone and iPad, in roughly the same distributions as our usage across those versions/devices.
I am not sure that I've seen the crash personally. The Fabric logs do suggest that it's only crashing a background thread. That said, I have noticed that sometimes the first time I tap our app icon to launch the app, nothing happens, and I have to tap it again for our app to launch successfully. I'll keep an eye on that to see if it's related to the amount of time since I last launched the app. It's possible though there's more than one issue here, either with the same cause or different causes.

I hope everyone had a good Holiday season! Any updates on this? We're still seeing a slow but steady stream of crashes.

Hello! We hope you had a good holiday season as well!
(also, sorry I didn't respond for a couple weeks)
But Gary just pushed a change that we hope addresses both of the issues you guys are seeing. The change is now available in the 0.9.2 release. We would really appreciate if you could try out this fix and let us know if you're still seeing issues.

@megamannn Great, thank you! We'll update and let you know if it's fixed in our next release 🤞

We released the app with the updated SDK a week or so ago, and have not seen this crash in the new version, so that change seems to have fixed the issue! Thanks everyone 🎉

That is great to hear! I'm going to optimistically close this issue then, but @AndrewBarba please let us know if you continue to see any issues.


chore(updatecli) fix python manifest to also track version for JDK21

Closes #113 (a new PR should be automatically created with a new branch name as the manifest content changed)

Self merging as the updatecli diff looks good (no need to build all these windows containers)


add Austin to maintainers

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Adding @austin3dickey as a recipe maintainer. Bumped the build number to 1. Other changes are from conda-smithy rerender.
output of conda info
     active environment : smithy
    active env location : /home/jlamb/miniconda3/envs/smithy
            shell level : 1
       user config file : /home/jlamb/.condarc
 populated config files :
          conda version : 4.8.3
    conda-build version : not installed
         python version : 3.7.6.final.0
       virtual packages : __glibc=2.27
       base environment : /home/jlamb/miniconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/jlamb/miniconda3/pkgs
                          /home/jlamb/.conda/pkgs
       envs directories : /home/jlamb/miniconda3/envs
                          /home/jlamb/.conda/envs
               platform : linux-64
             user-agent : conda/4.8.3 requests/2.23.0 CPython/3.7.6 Linux/5.3.0-7625-generic ubuntu/18.04.4 glibc/2.27
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Consumer replica conn

Codecov Report

Merging #42 (af8674d) into main (a8eab98) will decrease coverage by 1.30%.
The diff coverage is 73.07%.

@@            Coverage Diff             @@
##             main      #42      +/-   ##
==========================================
- Coverage   80.60%   79.30%   -1.31%
==========================================
  Files          15       15
  Lines        1351     1382      +31
==========================================
+ Hits         1089     1096       +7
- Misses        191      214      +23
- Partials       71       72       +1

Impacted Files
Coverage Δ

pkg/stream/producer.go
86.36% <ø> (ø)

pkg/stream/server_frame.go
73.54% <16.66%> (-1.69%)
:arrow_down:

pkg/stream/enviroment.go
73.33% <79.41%> (-1.67%)
:arrow_down:

pkg/stream/client.go
79.61% <83.33%> (-2.88%)
:arrow_down:

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 a8eab98...af8674d. Read the comment docs.


Optional array of Addresses as a parameter does not work

Problem
Calling resolveArguments with an optional array of Addresses as a parameter results in the following error:
thrown: "[Address]? is not supported"

Likely applies to all arrays, not exclusively Address
Steps to Reproduce
Create a script/transaction that uses an optional array of addresses as a parameter
Acceptance Criteria
Flow-cadut must resolve these arguments properly
Context
Linked issue https://github.com/onflow/flow-js-testing/issues/163

This issue should be solved in the latest alpha release


Sign message happens several times when firing on connecting wallet

Describe the bug
I tried to automatically signing message with useAccount hook:
  const { connector: activeConnector }  = useAccount({
    onConnect: () => {
      signMessage()
    }
  })

But it fired 4 times at once (attached image is for Metamask, but it happens for others as well):

Link to Minimal Reproducible Example
No response
Steps To Reproduce
No response
Wagmi Version
1.4.13
Viem Version
1.21.4
TypeScript Version
No response
Check existing issues

[X] I checked there isn't already an issue for the bug I encountered.

Anything else?
No response

Try Wagmi v2

Tried. But not work as well

  useAccountEffect({
    onConnect(data) {
      console.log('Connected!', data)
        signMessage({
          message: DEFAULT_PUBLIC_KEY_MESSAGE
        })
    },
  })


Failed to build on Windows

When building the latest version (v1.8.1) on Windows, the following error occurred:
# github.com/karrick/godirwalk
..\Go\pkg\mod\github.com\karrick\godirwalk@v1.8.1\follow_windows.go:10:6: evalSymlinksHelper redeclared in this block
        previous declaration at ..\Go\pkg\mod\github.com\karrick\godirwalk@v1.8.1\follow_unix.go:4:51

IMHO _unix in filename is not supported, as per golang/go#20322. Should build tags be added for Unix platforms?

I am so sorry for that. I will get these fixed as soon as I can get to my Windows laptop.


Empty source_line on JsError, after upgrading deno_core

I am using deno_core to create a Js runtime (following the great https://deno.com/blog/roll-your-own-javascript-runtime blog post)
Whenever I get an error evaluating some js source, I throw the JsError and report the bad line and code, which I take from the error source_line property.
After upgrading deno_core from 0.294 to the latest (0.319), I've noticed the source_line is always None.
Example:
Evaluating this broken code: console.log("test"
would lead to this error:
JsError { name: Some("SyntaxError"), message: Some("missing ) after argument list"), stack: None, cause: None, exception_message: "Uncaught SyntaxError: missing ) after argument list", frames: [JsStackFrame { type_name: None, function_name: None, method_name: None, file_name: Some("test1"), line_number: Some(1), column_number: Some(13), ... }], source_line: Some("console.log(\"test\""), source_line_frame_index: Some(0), aggregated: None }

and after the upgrade, it leads to this error:
JsError { name: Some("SyntaxError"), message: Some("missing ) after argument list"), stack: None, cause: None, exception_message: "Uncaught SyntaxError: missing ) after argument list", frames: [JsStackFrame { type_name: None, function_name: None, method_name: None, file_name: Some("test1"), line_number: Some(1), column_number: Some(13), ... }], source_line: None, source_line_frame_index: Some(0), aggregated: None }

(notice the None source_line)
Some findings:
I tried bisecting to find where this problem first occurred, and it seems somewhere between 0.294 and 0.298 (not sure the exact version, since some of them didn't work at all for me)
I compared the versions: https://github.com/denoland/deno_core/compare/0.294.0...0.298.0
and I found this change in Error trace, which seems related: https://github.com/denoland/deno_core/pull/827
specifically, the change in error.rs:
https://github.com/denoland/deno_core/pull/827/files#diff-c8dcedfc29d534d8c70ded455f342bedc1611fb609bc5e62a379004fb496cc65
Perhaps removing the "fallback" behavior in the else is the cause for the missing source_line @bartlomieju?
(the `source_line = msg.get_source_line(scope) part)

IIRC the idea was that SourceMapGetter was supposed to always return the source line. Do you use one in your code?

I don't think I use one.
I just evaluate the code in something similar to:
let mut rt = JsRuntimeForSnapshot::new(RuntimeOptions { ..Default::default() });
let code = ModuleCodeString::from(script.code);
rt.execute_script(file_name, code)?;

where code, in the example is console.log("test"

Any suggestions @bartlomieju? Is this expected when a source map getter is not used? Because now I don't have a way to know what the defective code is (just line number)


init discovery manager props under locking

Fixes #5929  along with suggestions from comment

@simonpasquier @brian-brazil  pls review


Fix regression caused by new keys above latest release stream

Description
Fix regression caused by adding new keys above the latest release stream in versions.yml.
The issue is that determining the latest release requires that the release stream key (e.g. v2.5) be at the very top of the file. By moving the new keys to the bottom of the file, this issue is resolved and the new functionality is unaffected.
I'll look into making versions.yml less brittle and also adding validation for the redirect-to-latest functionality for a future PR.
Testing

verified redirects only happen for versions older than 2.5.
ran htmlproofer w/o issues
built calico/node and verified version

See issue https://github.com/projectcalico/calico/issues/1087
None required

LGTM as a bug fix.
Longer term, I think we should re-consider the choice to make versions.yml the source-of-truth for all-things release related.  Feels like we might be mixing things that shouldn't be mixed up.


add a "disk" cert provider

To be used with setups where letsencrypt is handled by another
component, such as jetstack/cert-manager in a kubernetes cluster.

Coverage remained the same at 0.0% when pulling cc8abbae5d9650b7929e6b6aaf22c6fcb8651246 on mvdan:cert-provider-disk into 5b7141e746eb96195c3a6bcee2ab290e8793b7fd on knq:master.


BUG: ndimage: Work around gh-17270

To avoid a bug in the C code, don't pass arrays with size 0 to
the fourier_filter function in the extension module code for
the Fourier ellipsoid filter.
Also remove an incorrect line from the Fourier filter docstrings.

@andyfaff, this allows Cirrus to run the ndimage tests.

This seems fine to me.


Update Dockerfile to ready image for public distribution

Related to #110, but general image clean up.

Use node:alpine image; the previous image node:latest is quite large (973 M) and provides no benefit above node:alpine (143 MB) for repo purposes.
Transition to Open Container Image Annotation spec for image labels.
Copy package-lock.json into environment.
Remove npm ls from build as it clutters output and doesn't provide direct benefit.

Caveats

Image debugging is easier with:

docker run --rm -it --entrypoint /bin/sh <image>

Additional labels (version, created) should be added at build time.

This PR is safe to merge without #112.


Optional mapLocale function added to parse() method.

New Features

parse() can now decode locales using either "_" or "-" as the delimiter.
pick() maps older Chinese locales to new Chinese locales assuming the default script for each country..
parse() - supports optional custom locale mapping function.
Unit tested.

References:

https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/dd997383(v=vs.100)
https://gist.github.com/amake/0ac7724681ac1c178c6f95a5b09f03ce#new-locales-vs-old-locales-chinese

Hi, looks like this functionality is missing for Apple's locale implmentions too.
Any chances to merge this PR?

zh-CN and TW mapping to zh-Hant and Hans is become an important issue in parsing languages. If this package is abandoned I'd love to use your fork instead.


Samsung.user manual.series3 <IP_ADDRESS> e005833c 4f86 4c60 a446 8e69d07a75ae

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/113298&drop=dogfoodAlpha

This package's install doesn't seem to result in a usable application. Inst.exe isn't in the extracted folder, and it's not clear how to launch the user manual application.

This package's install doesn't seem to result in a usable application. Inst.exe isn't in the extracted folder, and it's not clear how to launch the user manual application. Is this expected?

I'm not sure.

Automatic Validation ended with:


Error message: Mismatch in source keys and translation. Keys: 40 Translated Strings: 46

When translating a Dutch language file to Germany, I got the following error (using gpt-4):
An error occurred while processing the file: resources/lang/de/cp.php
Error message: Mismatch in source keys and translation. Keys: 40 Translated Strings: 46

Not sure what to do with this. Seems like something is not working correctly in the project.
My language file has multidimensional arrays. I think this is possibly causing the error.

Hi Jochem, I haven't touched this for while. For some reason your getting 46 translations from 40 lines.  Maybe experiment with the file and see if it works in a flat structure?

Same error.  Flat file makes no difference.  Don't think it's parsing translation strings correctly.

Also, save yourself some headaches and just keep any quotes out of the translation strings.  Even with 's the " and ' make translation results disappear...

Keeps dropping translations and returning corrupted results.  Not a reliable package.


init deploy page

Changes

Related Issues

https://github.com/codescalers/cloud4students/issues/639

Checklist

[ ] Tests included
[x] Build pass
[ ] Documentation
[x] Code format and docstring

good for me


Add nightly (3.6) and accept if it fails

Coverage remained the same at 99.04% when pulling a8bee9db5ee438308567ac7028fdbd201a966e44 on Fale:patch-1 into d47fd0471b53f14f34fb86d716bf31ec28ea5621 on ansible:master.

👍  Looks like the nightly actually passed where 3.5 failed, but that's probably meaningful information about 3.6 changes. This will help alert us of incompatibilities before users encounter them.


Please make a new release using pyo3 0.20.3

Description
The current PyO3 version of 0.20.0 is broken on PowerPC (https://github.com/PyO3/pyo3/commit/9d1b11f70459367593e4cb92919f5f98c156dda9). This is preventing PowerPC users from installing watchfiles cleanly.
Could you update PyO3 and make a new release, please?
Example Code
No response
Watchfiles Output
No response
Operating System & Architecture
Linux-6.1.60-gentoo-dist-hardened-ppc-POWER9_-architected-,_altivec_supported-with-glibc2.38
#1 SMP Fri Dec  1 22:10:49 UTC 2023
Environment
No response
Python & Watchfiles Version
n/a (not installable)
Rust & Cargo Version
cargo 1.74.1 (ecb9851af 2023-10-18); rustc 1.74.1 (a28077b28 2023-12-04)

@mgorny Isn't this fixed by https://github.com/samuelcolvin/watchfiles/releases/tag/v0.21.0 ?

Nope. Cargo.lock says 0.20.0.

@samuelcolvin Any chance to get a new release with update dependencies. PyO3 is already on v0.21.x

PR welcome, otherwise I'll try soon.

I was going to update them, then realize PyO3 v0.21.x changed the API and I dont know Rust 😂
I cam submit one for dependabot config

All updates are complete, watchfiles now uses latest pyo3, and i've updated actions version.
@gaby and @mgorny please try the latest version from main and confirm you're happy, then I'll do a release.

Yeah, I can confirm main now builds on PowerPC and has no PPC-specific test regressions. However, it is still affected by #254. But I'm happy to just skip that test, if need be.

v0.22.0 is released.

@samuelcolvin Thank you!


Horse interaction bug

I am currently running

SpongeVanilla version: 1.12.2-7.1.7

Java version: 1.8.0_181

Operating System: Windows 10 Pro x64

Plugins/Mods: None

Issue Description
I has bug with interaction horse. On right click player rotate and has some chance to teleport around horse interacted. Video with bug: https://youtu.be/bjoCOl0uyO4

Is this still an issue? I can't seem to reproduce it.

A bit bothers the players. You need to get into the correct position with the horse to check it.

A bit bothers the players. You need to get into the correct position with the horse to check it.

I couldn't reproduce it based on the video, do you have any more details?


Master module update

move masterVolume and getMasterVolume from helper.js to master.js
add setMasterVolume(target,time,timeFromNow)
add inline documentation to Master module

ok I understand, but how do I get back and withold the documentation change ?
it makes definitely more sense to have only one function.

Well there are ways to modify your commit history, like git rebase.
https://help.github.com/articles/about-git-rebase/
But it may be easier to re-clone the repo from processing/p5.js-sound to a new folder on your desktop, and create a new branch called mastervolume. if you wanna go this route...
Change the references to your remotes like this:
git remote rm origin
git remote add origin <link to  your repo>
Then create a new branch and switch to that branch:
git checkout -b mastervolume
From there, just add the stuff you want to add, push to your fork of that branch, and submit a new pull request


Unnecessary escape character

Fix https://github.com/tailwindcss/tailwindcss/issues/1814

Thanks 👍


Improve CSS for dashboard and Activity Logging

Implement the dashboard layout in HTML and CSS, including sections for overview cards, recent activities, and health tips.

can i help you with the frontend


Asteroid spawner system

Spawns asteroids on a configurable timer, which spawns them on a random point from the right side of the play area ( camera rect bounds )
These asteroids are affected by the moons gravity, when they impact, they leave fragmented objects which are also physics-enabled bodies, some of which will settle on the surface ( for later harvesting )
The maximum concurrent asteroids, and other variables are exported to fine-tune to preference, including a total fragment limit to avoid slowdown - it will start pruning the first spawned ones.
When these objects hit the drive plume they are ejected away at force.
The art is placeholder for the moment - from here https://opengameart.org/content/asteroids
webm of an asteroid spawning every 5 seconds or so https://webm.red/view/Y9bO.webm
and just for fun , a webm of trying to lag the game by throwing hundreds of asteroids at the moon
https://webm.red/view/NICZ.webm

Fixed the resource ID mismatches , and added the drive plume physics to a clean rebase .


SmartThings showing konnected PIR as incorrect type "placeholder"

The sensors that show under the SmartThings devices have the wrong type set - they are being set to "placeholder".
Assuming these should be being set to "Motion Detector"

This is not a bug. That's just how SmartThings new "cloud-to-cloud" device in the new platform show up in the old IDE. This does not indicate a problem.


feat: Update_product.json-1415

Related Issue
Closes #issue_number

Description
Add broken-link-checker
It helps check your site for broken inbound and outbound links in seconds.
Screenshots

Checklist

[X ] My code adheres to the established style guidelines of the project.
[X ] I have included comments in areas that may be difficult to understand.
[X ] My changes have not introduced any new warnings.
[X ] I have conducted a self-review of my code.

@lakshmishreea122003 attach the issue number the PR is supposed to close

I updated the PR name

@lakshmishreea122003 attach the issue number

I did attach the issue number


Containers should clear floats.

Changes

Containers should clear floats, so that if another element isn't properly clearfixed things don't collapse.

For review: @DoSomething/front-end

Collapsing inception! :+1:


Update upload-symbols to 3.16 to support Xcode 15

This should resolve some of the issues mentioned in https://github.com/firebase/firebase-ios-sdk/issues/11400
Change 1: Support Non-embedded / No Info.plist
It's becoming more common that developers don't have an Info.plist file embedded in their .app.
To support this, upload-symbols has been updated to not read the Info.plist. Now it will get the bundle ID and platform from the build environment variables.
Change 2: Xcode 15
Xcode 15 sets the User Script Sandboxing build setting to YES by default. This settings enforces that all files read and written to in the app's build directory need to be specified in the Build Phase's Input / Output Files.
Changes to support this:

Before, upload-symbols would put temporary files in the build folder. These files have been moved to NSTemporaryDirectory.
Added an .xcfilelist that developers can specify in their Input File Lists instead of specifying each Input Files directly https://github.com/firebase/firebase-ios-sdk/pull/11428

Either of these configurations should work with Xcode 15 (using Swift Package Manager):
Option 1: Using Input Files
Specify the following in your Input Files
$(BUILT_PRODUCTS_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(BUILT_PRODUCTS_DIR)/$(EXECUTABLE_PATH)
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

Option 2: Using Input File Lists
Specify ${BUILD_DIR}/../../SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/CrashlyticsInputFiles.xcfilelist as your Input File Lists

@samedson Could you help to check for this issue? Could this change make any fix for it? https://github.com/firebase/firebase-ios-sdk/issues/11471


Fix memory leak in editable_gesture_test.dart

Part of https://github.com/flutter/flutter/issues/141198
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] I followed the breaking change policy and added Data Driven Fixes where supported.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

cc @polina-c

Looks good.
Did you enable leak tracker, repro the failure and made sure your fix resolves it?

Did you enable leak tracker, repro the failure and made sure your fix resolves it?

@polina-c I changed
-  if (_isLeakTrackingEnabled()) {
+ if (true) {

into packages/flutter/test/flutter_test_config.dart and the test was failing when I removed the experimentalLeakTesting: LeakTesting.settings.withIgnoredAll(),. After my changes it passes.
Is that the correct way to do it?

Is that the correct way to do it?

Yes, thank you!!!


MongoDB, MongoDbTarget::export(), using batchInsert

Why we don't use batchInsert in this function yii\mongodb\log\MongoDbTarget::export()?
http://php.net/manual/ru/mongocollection.batchinsert.php
We can avoiding the costs of network.

Same question can be asked for regular yii\log\DbTarget:
https://github.com/yiisoft/yii2/blob/master/framework/log/DbTarget.php#L67
It also may benefit of usage batchInsert(), which is available for relational databases.
MongoDbTaget follows the same convension. Perhaps it is a mistake, which should be fixed - in this case it should be fixed for DbTarget as well, perhaps there was some reson for such behavior - in this case we need to find out which it was before make a decision.

MongoDB issue opened at:
https://github.com/yiisoft/yii2-mongodb/issues/102
As for regular DbTarget: at present state usage of batchInsert for it will be unsafe: see #11242,  #6526 , #9276


Code coverage 100%

Pull Request
Description
test for last line not covered
How Has This Been Tested?
unittests

[ ] No
[x] Yes

Checklist:

[x] My code follows OCF's coding style guidelines
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have checked my code and corrected any misspellings

Codecov Report

Merging #42 (5126560) into main (f4ee735) will increase coverage by 0.70%.
The diff coverage is 100.00%.

:exclamation: Current head 5126560 differs from pull request most recent head 95a2e52. Consider uploading reports for the commit 95a2e52 to get more accurate results

@@             Coverage Diff             @@
##             main       #42      +/-   ##
===========================================
+ Coverage   99.29%   100.00%   +0.70%
===========================================
  Files           3         4       +1
  Lines         142       150       +8
===========================================
+ Hits          141       150       +9
+ Misses          1         0       -1

Impacted Files
Coverage Δ

src/main.py
100.00% <100.00%> (+1.05%)
:arrow_up:

src/tests/test_main.py
100.00% <100.00%> (ø)

src/tests/test_utils.py
100.00% <100.00%> (ø)

src/utils.py
100.00% <100.00%> (ø)

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 f4ee735...95a2e52. Read the comment docs.

Haha wow I just raised an issue for this (#44) - glad you beat me to it! Thanks!


Added switch command to the treeView

+1

@jasonhwest

Any updates on this? @jasonhwest ?

+1

Thanks, I'll delete the atom.io package I created :)


Fetching cloud-config and initial-cluster from S3 fails in newer regions e.g. Frankfurt

I tried using this project in the Frankfurt datacenter but it fails while fetching the cloud-config and initial-cluster because this datacenter uses the newer AWS4 authorization:
cat ${workDir}/cloud-config.yaml
<?xml version="1.0" encoding="UTF-8"?>
<Error>InvalidRequest<Message>The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.</Message><RequestId>26B794E2DF6DBB38</RequestId><HostId>1MUzjCurL7ZI8zEi5D/fNUUrSdRo7WMJnrH/I+ujSuPogkuHIOJztpzXWQQ9diOlwE5xQYb1Rrw=</HostId></Error>

@w0mbat if you open up ~/.aws/config file and added something like this in [default] section:
[default]
s3 =
    signature_version = s3v4

And also make sure in envs.sh, the default region is set to your region:
export AWS_PROFILE=my-aws-profile
export CLUSTER_NAME=my-cluster
export AWS_REGION=eu-central-1

Let me know if this helps.

@xu

@xuwang I dont think this will help - I am talking about this script: https://github.com/xuwang/aws-terraform/blob/master/resources/cloud-config/s3-cloudconfig-bootstrap.sh
It fires 2 curl commands that use the older v2 authorization

@w0mbat ha I missed that. The script needs to be updated to support sig-v4. I will work on it and get it test. Thanks!

@w0mbat Committed https://github.com/xuwang/aws-terraform/commit/5fa207000625751920415bceef98bc9d3dd4a45a with new s3-cloudconfig-bootstrap.sh to support sig-v4. We have tested it with this configuration in envs.sh:
...
export AWS_REGION=eu-central-1
export COREOS_UPDATE_CHANNEL=beta
...

It seems working for bootstrapping the cluster. The cloud config file downloaded are in /root/cloudinit directory, as well as logs.
Note that we have to use CoreOS beta image. The latest (just released today) with docker 1.12.6 seems having container networking issue that we are trying to reproduce and report the problem.

fixed by https://github.com/xuwang/aws-terraform/commit/5fa207000625751920415bceef98bc9d3dd4a45a


prost_path some bug

missing replace the prost_path?

::prost::alloc::boxed::Box<{}>
::prost::alloc::collections::BTreeMap
::prost::alloc::vec::Vec
::prost::bytes::Bytes
repeated bytes test2 = 2;
pub test2: ::my_crate::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>,
::prost::alloc::vec::Vec miss

::my_crate::prost::Message throw error  with other crate.  similar using https://serde.rs/container-attrs.html#crate ?

bug demo :
prost_path_test.zip

generate proto rust file at domain/proto.rs
cargo r --example proto
run test
cargo r my_test

Could you explain more what the bug is?

Yeah, I think the prost_path might be a bit bugged for derive. Its using absolute paths here https://github.com/tokio-rs/prost/blob/master/prost-derive/src/lib.rs#L440 which I think is incorrect, though I am not sure how to feed the correct info into the macro system.


Can I use this in production yet?

First: Awesome work. Certificate issue in enterprise is the main cause of at least 10% of my grey hair.
Second: I watched your talk from 2022 and read the documentation and release log and still not fully confident. Is this ready for production now? Can I already import this magic and have it fix my problem?

@mohammed-workfellow We are not aware of any reason that it is not ready for production. But, the software is offered without any guarantee, and there is no way we can be aware of the specific certificate validation requirements of every environment where it might be deployed. It is your responsibility to try it and make sure it does what is needed and expected for your specific use case.
If you find a specific problem, please open a new issue.


Query Parameters example in document

I'm submitting a ...  (check one with "x")
[X] bug report
[ ] feature request
[ ] support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question

Current behavior
In document ROUTING & NAVIGATION
if you run the example and click on Crisis Center > Dragon Burning Cities > hit "Save"
It doesn't highlight anything
Expected/desired behavior
it should come back to Crisis Center and highlight "Dragon Burning Cities"
Here is my version of example
I changed this line in app/crisis-center/crisis-detail.component.ts
 this.router.navigate(['/crisis-center', {id: crisisId, foo: 'foo'}]);
to
 this.router.navigate(['/crisis-center'], {queryParams:{id: crisisId, foo: 'foo'}});
and in app/crisis-center/crisis-list.component.ts change
this.route.params.subscribe to this.router.routerState.queryParams in
Do I understand this correctly ? Since this section is talking about query parameters, I wonder we should use it instead of route parameter ?

Angular version: 2.0.0-rc.3

Browser: Chrome 50

Language: TypeScript 1.8

Let's ping @brandonroberts

The section is talking about query parameters and route parameter. In the transition from the crisis center to the crisis list, we are demonstrating query parameters on a per-route basis which are matrix parameters. There is a bug in that the router where it doesn't pass the parameters to the empty path route CrisisList which is why its not selected when navigating back.

so you mean query parameters on a per-route basis doesn't use queryParams syntax ?
not like this this.router.navigate(['/crisis-center'], {queryParams:{id: crisisId, foo: 'foo'}}); ?

@maxisam no. Query parameters are available to all routes. Route parameters are specific to each route. You can have both with no collisions.
Query parameters
this.router.navigate(['/crisis-center'], { queryParams: {id: crisisId, foo: 'foo' } });
Route Parameters
this.router.navigate(['/crisis-center', { id: crisisId, foo: 'foo' }]);
Both
this.router.navigate(['/crisis-center', { id: crisisId, foo: 'foo' }, { queryParams: { id: crisisId, foo: 'foo' }]);

@brandonroberts I understand we can use both at the same time.
I just don't understand what do you mean by "query parameters on a per-route basis"
Do you mean the example code should be
this.router.navigate(['/crisis-center'], {queryParams:{id: crisisId, foo: 'foo'}});
from the original example, I thought it is using route parameter, not query parameter.
or you were trying to show route parameter on a per-route basis ?

We will get these distinctions into docs. We're just behind.
See also this stackoverflow: http://stackoverflow.com/questions/38242584/clear-all-queryparams-with-new-router-v3-angular2/38415980
@maxisam No we should not write this.router.navigate(['/crisis-center'], {queryParams:{id: crisisId, foo: 'foo'}});. Brandon was just contrasting examples.
FWIW, the bug that prevented highlighting appears to be fixed in the latest builds. No need to change the sample's navigate call.


ci: add all onroad hud elements to ui report

Can we add a background? Maybe from the demo route?

How about we leave the PR as is it is and add fcame/ecam later? my internet is so slow that it takes >10 secs just to download the qlog file. Just thinking about downloading fcame/ecam is almost overwhelming.