Spawn ENOENT

I'm having somre troubles to create PDF file.
let html = "<p> HELLO ! </p>";
let OPTIONS = {phantomPath: './node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs'};
pdf.create(html, OPTIONS).toFile('output.pdf', function (err, res) {
                if (err){
                    console.log( "MESSAGE => ", err.message);
                    console.log( "ERROR => ", err);
                }
                console.log(res);
            });

{ Error: spawn ./node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs ENOENT
at exports._errnoException (util.js:1022:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:359:16)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawn ./node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs',
path: './node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs',
spawnargs: [ '/usr/src/app/node_modules/html-pdf/lib/scripts/pdf_a4_portrait.js' ] }

Using command-line example worked well.

+1 I'm facing the same issue here

+1 Me too facing the same issue.
BTW, I am running my application in docker. Is there any special attention needed.

+1 Same issue. Also using docker. The same code works fine on Windows.

@vjsrinath @justinneff try my solution on this thread https://github.com/marcbachmann/node-html-pdf/issues/212#issuecomment-280120314

@vjsrinath @justinneff
I was facing the same issue in docker. Managed to solve it though. The cause was that i had a global version of phantomjs already installed on my machine. Docker doesnt have access to module installed globally.
Solution:

Remove globally installed phantomjs (npm uninstall -g phantomjs)
Make sure /usr/bin/phantomjs doesnt exist. If it does, delete it.
Install phantomjs locally in the directory which is mounted on docker

Hope that works for you.

I am getting the same error...
I have tried:

uninstalling phantomjs globally & installing locally
npm rebuild phantomjs-prebuilt
versions of phantomjs-prebuilt 2.1.13 & 2.1.14
installing tar & bzip2 globally

(Mac OS X, node 4.6.1, html-pdf 2.1.0, phantomjs-prebuilt 2.1.13)

Use the following
const phantomPath = require('witch')('phantomjs-prebuilt', 'phantomjs');

pdf.create(options.template, {
    phantomPath: `${phantomPath}`,
    ...
})

@sohel-ahmed-ansari the issue was happening when i was using the official node image based on alphine linux.
Later I created my own image based on ubuntu, it worked.
I didn't have to install phantomjs globally.
Take a look at my Dockerfile
Thanks

@vjsrinath Didn't get what you mean. I already had global phantomjs installed, which was causing this issue. Had to remove the global version and install locally to solve it

@sohel-ahmed-ansari I think we arrived at an issue from two different places.
I was facing this issue in my docker container that was created from node alphine linux image.
When i switched the base image to ubuntu it worked for me.

I have this problem when I use 8.7.0-alpin in my docker file. I got my problem solved just using 8.7.0-wheezy instead, no source code changes.

Got this in Docker on Windows with a lot of Node images:
Error: spawn EINVAL       at _errnoException (util.js:1021:11)       at ChildProcess.spawn (internal/child_process.js:325:11)       at Object.exports.spawn (child_process.js:494:9)       at PDF.PdfExec [as exec] (app/node_modules/html-pdf/lib/pdf.js:87:28)       at PDF.PdfToFile [as toFile] (app/node_modules/html-pdf/lib/pdf.js:83:8)       at Object.generateSD04 (app/src/helpers/pdfGenerator.js:66:29)       at Context.it (app/tests/helpers.pdfCreator.test.js:44:18)
It works on MacOS.
Any help?

8.7.0-wheezy is the solution!!!

ciao! @Fabryprog, tnx but i was facing the same problem as @pepethree i think, or, at least it wasn't working for me.
my solution is now to use node:8.11.1

Hi after searching everywhere I found this workaround that works on docker nodejs based on alpine:
Before npm install or yarn install to put this code:
RUN wget -qO- "https://github.com/dustinblackman/phantomized/releases/download/2.1.1a/dockerized-phantomjs.tar.gz" | tar xz -C /

@cristin Can you elaborate further what are you trying to do?
If you are using html-pdf lib you have to set the global phantomjs path on the option object as the example below:
const options = {
  format: 'Legal',
  orientation: 'portrait',
  phantomPath: '/usr/local/bin/phantomjs'
};

This will work 100 % -- follow this it worked for me ...
const options = {
format: 'Legal',
orientation: 'portrait',
phantomPath: '/usr/local/bin/phantomjs'
};
https://www.vultr.com/docs/how-to-install-phantomjs-on-ubuntu-16-04

@sudeepdk It does not with alpine..
> Step 2/17 : RUN apk --update --no-cache add   freetype   fontconfig   build-essential   chrpath   libssl-dev   libxft-dev   libfreetype6-dev   libfreetype6   libfontconfig1-dev   libfontconfig1   wget
>  ---> Running in 3018631de6a1
> fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
> fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
> ERROR: unsatisfiable constraints:
>   build-essential (missing):
>     required by: world[build-essential]
>   libfontconfig1 (missing):
>     required by: world[libfontconfig1]
>   libfontconfig1-dev (missing):
>     required by: world[libfontconfig1-dev]
>   libfreetype6 (missing):
>     required by: world[libfreetype6]
>   libfreetype6-dev (missing):
>     required by: world[libfreetype6-dev]
>   libssl-dev (missing):
>     required by: world[libssl-dev]
> Removing intermediate container 3018631de6a1

I experienced this situation with the wrong path of

after I correct it, the situation gone.
Macbook

I was having the exact issue in windows. I solved the problem by :

downloading, installing and extracting phantomjs for windows  phantomjs-2.1.1-windows.zip  from
https://phantomjs.org/download.html.
giving the path to the phantomjs.exe in my options variable:
var options = { format: 'A4', "phantomPath": "C:\\Users\\HP\\Downloads\\phantomjs-2.1.1-windows\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe" , type: 'pdf',timeout: 30000};

@Guys - Any help is appreciated. I am seeing this error which downloading PDF
{"err":{"errno":"ENOENT","code":"ENOENT","syscall":"spawn /usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs","path":"/usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs","spawnargs":["--ignore-ssl-errors=yes","/usr/src/app/node_modules/html-pdf/lib/scripts/pdf_a4_portrait.js"]}}

After trying @infinito84 solution and adding some extra dependencies I managed to make it work like this on this image node:8.11.3-alpine:
# Add support for https on wget
RUN apk update && apk add --no-cache wget && apk --no-cache add openssl wget && apk add ca-certificates && update-ca-certificates

# Add phantomjs
RUN wget -qO- "https://github.com/dustinblackman/phantomized/releases/download/2.1.1a/dockerized-phantomjs.tar.gz" | tar xz -C / \
    && npm config set user 0 \
    && npm install -g phantomjs-prebuilt

# Add fonts required by phantomjs to render html correctly
RUN apk add --update ttf-dejavu ttf-droid ttf-freefont ttf-liberation ttf-ubuntu-font-family && rm -rf /var/cache/apk/*

This one worked for me.

@jerryOkafor @elvizcacho I no longer get the phantomPath error but a new font error
Fontconfig warning: line 5: unknown element "its:rules" Fontconfig warning: line 6: unknown element "its:translateRule"
Any help appreciated

Facing the same issue.

@lipsakandhei I tried what you said but still I am getting this error.
Error: html-pdf: PDF generation timeout. Phantom.js script did not exit.
const options = {   format: 'A4',   phantomPath: ' C:\\Downloads\\ProjectName\\node_modules\\phantomjs-prebuilt\\lib\\phantom\\bin\\phantomjs.exe',   renderDelay: 'manual' }
Any help appreciated

I am facing same issue. Getting -{"errno":"ENOENT","code":"ENOENT","syscall":"spawn /app/node_modules/phantomjs-prebuilt/lib/phantom\bin\phantomjs.exe","path":"/app/node_modules/phantomjs-prebuilt/lib/phantom\bin\phantomjs.exe","spawnargs":["/app/node_modules/html-pdf/lib/scripts/pdf_a4_portrait.js"]
I tried providing phantom path in options too but didn't help in resolving this issue.
Any help is highly appreciated.

@guys - Any help is appreciated. I am seeing this error which downloading PDF
{"err":{"errno":"ENOENT","code":"ENOENT","syscall":"spawn /usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs","path":"/usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs","spawnargs":["--ignore-ssl-errors=yes","/usr/src/app/node_modules/html-pdf/lib/scripts/pdf_a4_portrait.js"]}}

Were you abe to resolve this issue?

+1 Me too facing the same issue.
BTW, I am running my application in docker. Is there any special attention needed.

I am facing same issue while running in docker, how did you fix issue in your case?

After trying @infinito84 solution and adding some extra dependencies I managed to make it work like this on this image node:8.11.3-alpine:
# Add support for https on wget
RUN apk update && apk add --no-cache wget && apk --no-cache add openssl wget && apk add ca-certificates && update-ca-certificates

# Add phantomjs
RUN wget -qO- "https://github.com/dustinblackman/phantomized/releases/download/2.1.1a/dockerized-phantomjs.tar.gz" | tar xz -C / \
    && npm config set user 0 \
    && npm install -g phantomjs-prebuilt

# Add fonts required by phantomjs to render html correctly
RUN apk add --update ttf-dejavu ttf-droid ttf-freefont ttf-liberation ttf-ubuntu-font-family && rm -rf /var/cache/apk/*

docker in node:alpin
I change

&& npm install -g phantomjs-prebuilt

to
    && npm uninstall -g phantomjs \
    && npm install phantomjs

that worked for me. thanks!

Hi after searching everywhere I found this workaround that works on docker nodejs based on alpine:
Before npm install or yarn install to put this code:
RUN wget -qO- "https://github.com/dustinblackman/phantomized/releases/download/2.1.1a/dockerized-phantomjs.tar.gz" | tar xz -C /

worked fantastic

npm uninstall -g phantomjs

didn't worked for me

this is how it worked for me. Docker file:
FROM node:14-alpine
Add a work directory
WORKDIR /app
Cache and Install dependencies
COPY package.json .
Add support for https on wget
RUN apk update && apk add --no-cache wget && apk --no-cache add openssl wget && apk add ca-certificates && update-ca-certificates
Add phantomjs
RUN wget -qO- "https://github.com/dustinblackman/phantomized/releases/download/2.1.1a/dockerized-phantomjs.tar.gz" | tar xz -C /
&& npm config set user 0
&& npm install -g phantomjs-prebuilt
Add fonts required by phantomjs to render html correctly
RUN apk add --update ttf-dejavu ttf-droid ttf-freefont ttf-liberation  && rm -rf /var/cache/apk/*
#RUN npm install
RUN npm install
Copy app files
COPY . ./
Expose port
EXPOSE $PORT
CMD [ "npm","start" ]

this is how it worked for me. Docker file:
FROM node:14-alpine
Add a work directory
WORKDIR /app
Cache and Install dependencies
COPY package.json .
Add support for https on wget
RUN apk update && apk add --no-cache wget && apk --no-cache add openssl wget && apk add ca-certificates && update-ca-certificates
Add phantomjs
RUN wget -qO- "https://github.com/dustinblackman/phantomized/releases/download/2.1.1a/dockerized-phantomjs.tar.gz" | tar xz -C / && npm config set user 0 && npm install -g phantomjs-prebuilt
Add fonts required by phantomjs to render html correctly
RUN apk add --update ttf-dejavu ttf-droid ttf-freefont ttf-liberation && rm -rf /var/cache/apk/* #RUN npm install RUN npm install
Copy app files
COPY . ./
Expose port
EXPOSE $PORT
CMD [ "npm","start" ]

Did you add any path in the "phantomPath"?

this is how it worked for me. Docker file:

@alihasnain1997 Did you add any path in the phantomPath?

this is how it worked for me. Docker file:

@alihasnain1997 Did you add any path in the phantomPath?

@du-camiloj nope didn't added any path

Use the following
const phantomPath = require('witch')('phantomjs-prebuilt', 'phantomjs');

pdf.create(options.template, {
    phantomPath: `${phantomPath}`,
    ...
})

Hello
Why this way? In my case the phantomjs-prebuilt was in the /path/to/project/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs and the file /path/to/project/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs returned:
phantomjs: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.26, BuildID[sha1]=d0f2a21ff9e0b82113a2095e7cbca7dceaba88fb, stripped

Is there anything wrong with my file?

I have this problem when I use 8.7.0-alpin in my docker file. I got my problem solved just using 8.7.0-wheezy instead, no source code changes.

wheezy has no 16.x images or even 12.x. Did you change the base image again to other linux distros?

phantomPath

Did you try this solution: https://github.com/marcbachmann/node-html-pdf/issues/233#issuecomment-289195523

Pain.
This Dockerfile fixed it for me. No need to pass phantomPath option.
FROM node:12

WORKDIR /var/www

RUN apt-get update && apt-get install -y autoconf autogen libgl1-mesa-glx

# Rest of your Dockerfile, Instructions like COPY . /

With other node versions i got different errors.
Good luck.

From the future
I face it again. I am confused now
This Dockerfile fixed my issue:
FROM node:16.14.0-alpine3.15

WORKDIR /app
COPY package*.json ./

# Add support for https on wget
RUN apk update && apk add --no-cache wget && apk --no-cache add openssl wget && apk add ca-certificates && update-ca-certificates

# Add phantomjs
RUN wget -qO- "https://github.com/dustinblackman/phantomized/releases/download/2.1.1a/dockerized-phantomjs.tar.gz" | tar xz -C / \
    && npm config set user 0 \
    && npm install -g phantomjs-prebuilt

# Add fonts required by phantomjs to render html correctly
RUN apk add --update ttf-dejavu ttf-droid ttf-freefont ttf-liberation && rm -rf /var/cache/apk/*

# see this: https://github.com/marcbachmann/node-html-pdf/issues/563#issuecomment-712852134
RUN echo "" > /tmp/openssl.cnf

RUN npm install
# Rest of your Dockerfile, Instructions like COPY . /

Side note:
If npm install -g phantomjs-prebuilt does not work, get rid of this line && npm config set user 0
README fore sure
And that's it, No need to pass phantomPath option to create. We finished. I hope this help you. If your problem does not vanished, do not blame yourself.  Nothing is wrong with you. Just try other solutions and give yourself 10 minute untrack. it will help you
Best wishes.

Give this man an Oscar

Use the following
const phantomPath = require('witch')('phantomjs-prebuilt', 'phantomjs');

pdf.create(options.template, {
    phantomPath: `${phantomPath}`,
    ...
})

I was struggling with this issue since 2 days, many solutions suggesting running phantomjs script inside docker container and uninstalling globally installed one didn't worked either , this one worked. Thanks

This worked for me. Thanks :)

From the future
I face it again. I am confused now
This Dockerfile fixed my issue:
FROM node:16.14.0-alpine3.15

WORKDIR /app
COPY package*.json ./

# Add support for https on wget
RUN apk update && apk add --no-cache wget && apk --no-cache add openssl wget && apk add ca-certificates && update-ca-certificates

# Add phantomjs
RUN wget -qO- "https://github.com/dustinblackman/phantomized/releases/download/2.1.1a/dockerized-phantomjs.tar.gz" | tar xz -C / \
    && npm config set user 0 \
    && npm install -g phantomjs-prebuilt

# Add fonts required by phantomjs to render html correctly
RUN apk add --update ttf-dejavu ttf-droid ttf-freefont ttf-liberation && rm -rf /var/cache/apk/*

# see this: https://github.com/marcbachmann/node-html-pdf/issues/563#issuecomment-712852134
RUN echo "" > /tmp/openssl.cnf

RUN npm install
# Rest of your Dockerfile, Instructions like COPY . /

Side note:
If npm install -g phantomjs-prebuilt does not work, get rid of this line && npm config set user 0
README fore sure
And that's it, No need to pass phantomPath option to create. We finished. I hope this help you. If your problem does not vanished, do not blame yourself.  Nothing is wrong with you. Just try other solutions and give yourself 10 minute untrack. it will help you
Best wishes.

Give this man an Oscar

From an alternative future (2023)
and using the container image: node:16.20-alpine
, I had to add:
ENV OPENSSL_CONF=/etc/ssl/
before npm install.
Thank you guys! this a lifesaver post.

Thanks @claudrocker, your solution is the only that work for me, for while at least.

@claudrocker
running this script causes npm install to fail any ideas why?

@claudrocker
running this script causes npm install to fail any ideas why? I even removed the script and now i cant even build anything and keep getting some error about puppeter

I don't know but here is my Dockerfile, I hope it helps:
`FROM node:16.20-alpine
WORKDIR /usr/src/app
COPY package*.json ./
Add support for https on wget
RUN apk update && apk add --no-cache wget && apk --no-cache add openssl wget && apk add ca-certificates && update-ca-certificates
Add phantomjs
RUN wget -qO- "https://github.com/dustinblackman/phantomized/releases/download/2.1.1a/dockerized-phantomjs.tar.gz" | tar xz -C /
&& npm config set user 0
&& npm install -g phantomjs-prebuilt
Add fonts required by phantomjs to render html correctly
RUN apk add --update ttf-dejavu ttf-droid ttf-freefont ttf-liberation && rm -rf /var/cache/apk/*
see this: https://github.com/marcbachmann/node-html-pdf/issues/563#issuecomment-712852134
RUN echo "" > /tmp/openssl.cnf
ENV OPENSSL_CONF=/etc/ssl/
RUN npm install
COPY . .
RUN npm run build
`

https://github.com/dustinblackman/phantomized/ Has been archived. ☹
What now?

Use this
https://github.com/fgrehm/docker-phantomjs2/releases/download/v2.0.0-20150722/dockerized-phantomjs.tar.gz

Here's my current dockerfile that works for me, hope this helps

FROM node:20.10.0-alpine
WORKDIR /app
COPY package*.json ./

# Add support for https on wget
RUN apk update && apk add --no-cache wget && apk --no-cache add openssl wget && apk add ca-certificates && update-ca-certificates

# Add phantomjs
RUN wget -qO- "https://github.com/fgrehm/docker-phantomjs2/releases/download/v2.0.0-20150722/dockerized-phantomjs.tar.gz" | tar xz -C / \
    && npm install -g phantomjs-prebuilt --force

# Add fonts required by phantomjs to render html correctly
RUN apk add --update ttf-dejavu ttf-droid ttf-freefont ttf-liberation && rm -rf /var/cache/apk/*

# see this: https://github.com/marcbachmann/node-html-pdf/issues/563#issuecomment-712852134
RUN echo "" > /tmp/openssl.cnf

# Rest of your docker command


.env file not found

Fatal error: Uncaught TatumException: You need to set your Network from your .env file! in C:\laragon\www\tatum\vendor\tatumio\tatum-php\src\Tatum.php:57 Stack trace: #0 C:\laragon\www\tatum\vendor\tatumio\tatum-php\src\Tatum.php(42): Tatum\Tatum->InitTatum() #1 C:\laragon\www\tatum\index.php(104): Tatum\Tatum->__construct() #2 [internal function]: {closure}()

@placecodex sorry for very late response, if anyone is facing this same issue please do not hesitate to speak so i will tell you the solution to this

create .env file on your Root folder
put
# Enter TATUM API KEY for Mainnet and Testnet then set your network type to mainnet or testnet
TATUM_API_KEY=
TATUM_TESTNET_API_KEY=
NETWORK=testnet
LOG_EXCEPTION=true

thats all you need to solve this issue, the lib was said to disable creating of .env by default, so you have to do this manually the code in found inside example.env

Fatal error: Uncaught TatumException: You need to set your Network from your .env file! in C:\laragon\www\tatum\vendor\tatumio\tatum-php\src\Tatum.php:57 Stack trace: #0 C:\laragon\www\tatum\vendor\tatumio\tatum-php\src\Tatum.php(42): Tatum\Tatum->InitTatum() #1 C:\laragon\www\tatum\index.php(104): Tatum\Tatum->__construct() #2 [internal function]: {closure}()

according to this error above .env needed to be created inside
C:\laragon\www\tatum

and value need to be inserted then fill all value correctly with your tatum api key and network everything will work correctly
# Enter TATUM API KEY for Mainnet and Testnet then set your network type to mainnet or testnet
TATUM_API_KEY=
TATUM_TESTNET_API_KEY=
NETWORK=testnet
LOG_EXCEPTION=true

but normally the script create .example.env which contains the .env example value, if you have hidden files to not display on your pc, make it display hidden files then you will see the .example.env then create the .env yourself by copying the .example.env file content to it.

PHP SDK version 0.1.0 was archived.


restriction of IAO metadata annotation property "elucidation"

From<EMAIL_ADDRESS>on August 17, 2012 10:08:59
Hi,
from my understanding of the elucidation for "elucidation" it seems to follow that elucidations only ought to be used for high level terms in an ontology.
However, we are struggling with the problem of providing additional information for end-users and we think elucidation could be used to hold that kind of information, that goes beyond the definition.
Would you (especially the editors of elucidation agree to that kind of usage?
If so, can we change the elucidation of elucidation accordingly?
Mathias
Original issue: http://code.google.com/p/information-artifact-ontology/issues/detail?id=135

This issue was moved to information-artifact-ontology/ontology-metadata#16


Rounded hours

Hours are shown rounded so if you have i.e -91 minutes UI shows -2:31 instead of -1:31

Find the problem, I will fix it in the evening


Events and Helpers

Adding some events after the level is loaded would be nice to use for loading screens etc.
I am more than happy to contribute to add them in. I have one thought though, I would think it would be best to add say a TiledMapLoaded event AFTER the custom object/tiles have also been processed but I'm not sure the best way to determine how all of that has been processed. Maybe there's something we could do with a Local Resource on a event reader to determine the custom properties have been processed?
Another thing that would be helpful is adding in a helper function to map the grid position of a bevy transform (i.e. mouse cursor position) to grid coordinates.

Hey!
Map loading events are now available since release of v0.4.0 so I'm closing this issue.
Feel free to open another one if there are more questions.


Work across multiple drives

$ uv add <any-package>
warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
If the cache and target directories are on different filesystems, hardlinking may not be supported.

If uv only has cache in C:\, then I am unable to use uv in D:\, at least with “degraded performance”. This case might be common for Windows machines. For example, https://github.com/astral-sh/uv/issues/6397#issuecomment-2303368424:

this is about the relationship between the cache directory and the drive you're installing on. I'm guessing your cache is not on file:///E:? You can use --cache-dir or UV_CACHE_DIR to set a different cache directory on file:///E:.

I understand that hard links are not permitted across drives. However, pnpm creates multiple stores (one per drive), solving the issue. Will it be possible for uv?

I suppose we could do something like that. It could end up being less efficient sometimes, though, since you duplicate and re-cache any data that's used across drives.

This arguably applies on linux too as you can have a mounted secondary drive under some arbitrary path as stated here https://github.com/pnpm/pnpm/issues/712#issuecomment-363295013, I do think using UV_CACHE_DIR is a reasonable solution in the mean time.

Also on MacOS as well. I use a separate, case sensitive filesystem for all code project that is different form the fs backing ~/.cache.
While this is not mentioned in the pnpm thread, I think users who hits this issue are storing all of their projects in a separate filesystem. Whether it is because of disk space, speed or want to use a different fs. The current behavior is actually less efficient for us because the setup basically disables hard-link dependency deduplication.


React capstone project

Hi 👋,
In this pull request, I built a mobile web app using React and Redux with the following requirements:

Choose an API to base the development of the web app. The API should allow you to get numeric values based on a parameter.
You should follow the design guidelines by Nelson Sakwa on Behance.
When the page loads, the web app shows the list of categories that could be filtered out by some parameter, for example by the category name.
On the details page, the web app retrieves data from the API to show detailed data in the category.
When the user clicks on the "Back" button (<), the user navigates to the home page.
Create unit tests for pure functions in your Redux code.
Create integration tests for your application using the React Testing Library.
The project is a single-page application (SPA) built with React and Redux.
The data retrieved from the API should be stored in the Redux store.
You should filter the data you retrieve from the API using a Filter stateless component.
Every page (the main page and the pages for each item) should have a unique route within the SPA.
The project should be deployed and accessible online (add a link to the online version of your app to your README file).

@Munsa1 thanks!


Support for transparent hardware configs

This adds support for hw---XYZ packages, that replace hw package with board-specific config. This is currently driven by ?hw=XYZ query argument, but will use config.bin file dropped on the editor later.
Additionally:

additionalFilePath can be recursive
support embedding source in non-flashed part of UF2

Let's wait to push our Adafruit today.


it can't be predict unknown person

excellent work & beautiful codes..
but why it can not be predict unknwon person?
add one person(name is A), and when other person(B) is on the cam,
this recognizer predict that is A! (truly, it's B)
what way to predict unknown person like B?
when i added multiple person(ex. 10 peoples) and the new person(11st person) is on the cam,
recognizer is show random names in the added person.
(they are not similar never)

I've managed to solve the issue!
Take a look at my recent repo

excellent work & beautiful codes..
but why it can not be predict unknwon person?
add one person(name is A), and when other person(B) is on the cam, this recognizer predict that is A! (truly, it's B)
what way to predict unknown person like B?
when i added multiple person(ex. 10 peoples) and the new person(11st person) is on the cam, recognizer is show random names in the added person. (they are not similar never)

I've managed to solve the issue!
Take a look at my recent repo

same issue

same issue. Have you fixed the problem?

I've managed to solve the issue!
Take a look at my recent repo


[privacy] Don't enable privacy when privacy is not supported.

Problem
The SDK is setting the privacy flag from Group and MCSP messages even though support for privacy isn't enabled yet.
Fix #22426
Change overview
Correctly set privacy flag to reflect whether privacy is actually enabled on a message.
Testing
CI
Interoperability
This change will break interoperability of group messages between 1.0 and SVE2 + prior.
SVE2 + prior are erroneously sending group messages with privacy flag set but not applying any privacy.  This behavior does not match the spec.

Accept for v1 master:  spec alignment, fix invalid flag. If invalid flags start being used, it would be very hard to maintain compatibility.


Potential dependency conflicts between pyspider and chardet

Hi, as shown in the following full dependency graph of  pyspider, pyspider requires chardet (the latest version)， while the installed version of requests(2.22.0) requires chardet>=3.0.2,<3.1.0.
According to Pip's “first found wins” installation strategy, chardet 3.0.4 is the actually installed version.
Although the first found package version chardet 3.0.4 just satisfies the later dependency constraint （chardet>=3.0.2,<3.1.0),  it will lead to a build failure once developers release a newer version of chardet in the near future, which is greater than 3.1.0.
Dependency tree--------
pyspider(version range:)
| +-Flask(version range:>=0.10)
| | +-Werkzeug(version range:>=0.15)
| | +-Jinja2(version range:>=2.10.1)
| | +-itsdangerous(version range:>=0.24)
| | +-click(version range:>=5.1)
| +-Jinja2(version range:>=2.7)
| +-chardet(version range:>=2.2)
| +-cssselect(version range:>=0.9)
| +-lxml(version range:)
| +-pycurl(version range:)
| +-requests(version range:>=2.2)
| | +-chardet(version range:>=3.0.2,<3.1.0)
| | +-idna(version range:>=2.5,<2.9)
| | +-urllib3(version range:>=1.21.1,<1.26)
| | +-certifi(version range:>=2017.4.17)
| +-Flask-Login(version range:>=0.2.11)
| | +-Flask(version range:)
| | | +-Werkzeug(version range:>=0.15)
| | | +-Jinja2(version range:>=2.10.1)
| | | +-itsdangerous(version range:>=0.24)
| | | +-click(version range:>=5.1)
| +-u-msgpack-python(version range:>=1.6)
| +-click(version range:>=3.3)
| +-six(version range:>=1.5.0)
| +-tblib(version range:>=1.3.0)
| +-wsgidav(version range:>=2.0.0)
| +-tornado(version range:>=3.2,<=4.5.3)
| +-pyquery(version range:)

Thanks for your attention.
Best,
Neolith

Solution

Fix your direct dependencies to be chardet>=3.0.2,<3.1.0 and requests==2.22.0, to remove this conflict.
I have checked this revision will not affect your downstream projects now.

Remove your direct dependency **_chardet_**, and use the library **_chardet_** transitively introduced by **_requests_**.

Personally, I prefer solution 2.
What's your opinion?
@binux May I pull a request to solve this issue?


only encrypt sensitive details

Might need to do something similar for params and bindings, but this PR is already big enough. Will tackle those in follow-ups.

I'd like to get #273 merged before this one.


Cannot read property 'getBoundingClientRect' of null

I got this error message every time when I click on the page:
Uncaught TypeError: Cannot read property 'getBoundingClientRect' of null
    at getComponentsSizes (index.es.js:348)
    at StateProvider.handleCalculateBounds (index.es.js:380)
    at StateProvider._this.handleStartPanning (index.es.js:941)
getComponentsSizes @ index.es.js:348
handleCalculateBounds @ index.es.js:380
StateProvider._this.handleStartPanning @ index.es.js:941
15:33:48.257

When I tried to debug I added:
console.log("setWrapperComponent", wrapperComponent); to StateContext.js
and my console show:
setWrapperComponent <div>…</div>

and few seconds later:
setWrapperComponent null

I think when TransformWrapper added with array map and we change the array that can cause an issue. I can't reproduce the issue outside of our codebase.

Could you check if it's still a problem with a new version?


Fix ConstantArray::get() to check for the right type

I will release a patch version on npm tonight.

The v0.4.1 has been released on npm. 🎉🎉🎉

Thank you!


Documentation Helidon SE: Update several guides for minor issues

Fix #2613
Fix #2612
Fix #2611
Fix #2610
Update documentation following Helidon improvement.

Thanks for these contributions! If possible I'd like to get this in for 2.2.0 -- so I've added the milestone.


Other image format?

Can I use your model to predict JPG format images?

No, the model only works on NIfTI files.

Thanks! :) I may find some NIfTI files to play it around. Good job!


Percentage Slider needs love.

The percentage slider needs some UX to explain what is going on. Confusing.
Suggest: Some explanation text? Show the values adjust?

should be minimally better now. lets open a new issue for future updates, proposing with a mockup


New errors logging after upgrading to 4.4.0

I recently updated Colour Swatches from 4.3.0 to 4.4.0 and am getting some odd error messages. When I navigate to an entry that uses a Color Swatch field in Craft, I'm presented with the following error message and am unable to edit the entry:

I'm also unable to add colors directly in the plugin settings. When going to save, I get the error message Couldn't save plugin settings. See screen recording below.
https://github.com/craftpulse/craft-colour-swatches/assets/66807975/99dc56e2-2bc2-45fd-9119-51a1c6bda448
The only other item that was changed was upgrading from Craft <IP_ADDRESS> to Craft 4.8.7. Let me know if any additional information is helpful. Thanks!

We also ran into the Undefined array key 0 error and for us, it was because we didn't have the default color first. I'm pretty sure array_filter preserves keys so our solution at the moment is to move the default color to be the first in the list.

Thank you for the information @d2g45 and @gateszies
We will resolve the issues as soon as possible and tag a release somewhere tomorrow!

hi @gateszies,
Did you set the color field with the CMS or the config colour-swatches.php? If it's through the colour-swatches.php, can you share it with me please?

@gateszies I've just released 4.5.2, can you update the composer package and see if it's fixed for you? if not, please reopen the issue

@cookie10codes I appreciate the quick reply! That fix cleared up the array error above 🎉
I'm still seeing Couldn't save plugin settings when adding values directly in the plugin settings, but the array error was my main issue.

I've added a new issues onto our stack @gateszies

@cookie10codes Noting that the Craft store still lists 4.4.0 as the latest version of the plugin, but packagist and composer update are able to get ^4.5.0

Also getting the error "Couldn't save plugin settings", which I discovered after adding about 20 colours, so that was fun! I'm on version 5.0.2 of the plugin, running on Craft 5.2.8.

I am now getting the Undefined Array Key 0 error when I try to save entries with the color swatch field in them. I'm running Craft 5.3.6 and Colour Swatches v5.0.2


[NSE-223] Add Parquet write support to Arrow data source

WIP

@github-actions ram-usage-test

@github-actions ram-usage-test

@github-actions ram-usage-test

Benchmarked locally:
Disk write speed (SSD) = 10GiB / 35.653s =<PHONE_NUMBER>63 MiB/s
10GiB Data, Write, 3 Columns, Parquet, Single Write Task:
vanilla read + vanilla write: 4.0 min
native read + vanilla write: 4.2 min
native read + native write: 2.2 min

@github-actions ram-usage-test


Bug: Copy application to Master

When data is copied to the master Member Directory and Dues Payment tables, it is added as last row. This is an issue when other data has been placed in rows after the last member record.
Change: Place new rows after the last header row in both tables.

This was added to the wrong repository.


using find_file from cmake to deduce ROCR environment

not sure, why cmake 2.8 is the minimum, but here is a minor edit to remove the requirement to define ROCR_INC_DIR and ROCR_LIB_DIR

think this has been resolved after partial cmake rework


load_model() raising ValueError

Via e-mail from Lukas Brandt Brune:
Now I've been encountered another problem which I hope you could help me with. The problem lies within loading a saved model on another execution. From what I've gathered, tf.train.Saver() needs to be run inside a session and it looks to me that it's not (?). Upon calling load_model from another script I get ValueError: No variables to save.
I've tried calling it as:
TensorRec.load_model(dir_path)
and
model = TensorRec()
model.load_model(dir_path)
Either way, it's the the row 'saver = tf.train.Saver()' which fails every time.
Would be really thankful if you could give me any pointer in how to proceed from here.

Btw, load_model is kinda the first that's happening in my script, maybe I'm mising to initialize something before?

Reproduced by adding reset_default_graph to the saver test
======================================================================
ERROR: test_save_and_load_model (test.test_tensorrec.TensorRecSavingTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/jkirk/dev/tensorrec/test/test_tensorrec.py", line 248, in test_save_and_load_model
    new_model = TensorRec.load_model(directory_path=self.test_dir)
  File "/Users/jkirk/dev/tensorrec/tensorrec/tensorrec.py", line 798, in load_model
    saver = tf.train.Saver()
  File "/Users/jkirk/dev/envs/tensorrec/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1239, in __init__
    self.build()
  File "/Users/jkirk/dev/envs/tensorrec/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1248, in build
    self._build(self._filename, build_save=True, build_restore=True)
  File "/Users/jkirk/dev/envs/tensorrec/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1272, in _build
    raise ValueError("No variables to save")
ValueError: No variables to save


Update SequentialTransformer

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (a8df542) to head (6df306f).
Report is 5 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #276   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           38        38
  Lines          975       982    +7
  Branches        38        40    +2
=========================================
+ Hits           975       982    +7

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


RA constantly out of sync with VSCode

Sorry for the lack of detail here, but I'm not sure what to add:
Since the most recent update, it seems that pretty much any change I make to a Rust project results in RA getting out of sync and I get left with a bunch of errors like mismatched brackets, missing semicolons, etc. that just won't go away unless I restart the editor.

Panic context:
> request: rust-analyzer/inlayHints InlayHintsParams {
    text_document: TextDocumentIdentifier {
        uri: "<filepath>",
    },
}

This is on windows.

This panic should have been fixed in https://github.com/rust-analyzer/rust-analyzer/pull/6161.

Yeah, switching to the nightly channel fixed the issue.


button-shim/library/buttonshim/init.py has function definitions inside "while True:" loop

When browsing through button-shim/library/buttonshim/__init__.py to learn new tricks, I noticed something that looks odd to me, but I might be wrong here: near the end there's a "while True:" and this loop contains function definitions. Shouldn't these definitions go before the while loop?

Good spot. Yes they should. In their current location the functions are being re-defined and re-bound as handlers on Button SHIM over and over. This doesn't matter so much, since this code will only execute if you: python -m buttonshim but it should be fixed anyway.


"startDaysAhead: -5" Negative value to show past events - Erratic results.

Prerequisites

[x] Put an X between the brackets on this line if you have done all of the following:

Checked the Quick Start documentation page and confirmed configuration is correct: https://marksie1988.github.io/atomic-calendar-revive/quickstart.html
Checked the FAQs on documentation page for common solutions: https://marksie1988.github.io/atomic-calendar-revive/faq.html
Checked that your issue isn't already filed: https://github.com/marksie1988/atomic-calendar-revive/issues?q=is%3Aissue

Describe the bug

Steps to Reproduce

startDaysAhead: -15

Save

Expected behavior
Should show previous events en an independent day for each one. (in my case my dad watches sports games after they happen due to time and work).
.
Actual behavior:
It groups all previous events in one day, In my case this day is today, but I don't know if that is because there is one event past today actually.
.
Screenshots

Card Configuration

name: Deportes
entities:
  - entity: calendar.fwp_real_madrid_fixtures
    eventCalName: Real Madrid - Fútbol
    icon: 'mdi:gas-station'
  - entity: >-
      calendar.https_f1calendar_com_download_f1_calendar_q_gp_ics_t_1609245101261
    eventCalName: Fórmula 1
  - entity: calendar.nfl
    eventCalName: NFL
    icon: 'mdi:gas-station'
  - entity: calendar.real_madrid
    eventCalName: Real Madrid - Baloncesto
maxDaysToShow: 14
maxEventCount: 30
showLocation: false
showMonth: false
showWeekDay: true
showLoader: true
showDate: true
startDaysAhead: -5
showDescription: false
showNoEventsForToday: false
sortByStartTime: true
disableEventLink: true
disableLocationLink: true
refreshInterval: 900
showRelativeTime: true
finishedEventOpacity: 0.9
finishedEventFilter: grayscale(30%)
showProgressBar: true
showeventicon: true
europeanDate: true
enableModeChange: true
untilText: hasta
fullDayEventText: null
noEventsForNextDaysText: null
noEventsForTodayText: null
dateFormat: LL
hoursFormat: 'hh:mm a'

Versions

HomeAssistant Version: 2020.12.1
Plugin Version: 2.5.6

Additional Information

This is not a current feature of the card, I could look and see how complex this would be to add

This is not a current feature of the card, I could look and see how complex this would be to add

Thanks!, I thought that the prompt startDaysAhead wasn't meant to be used with negative values, but I had to give it a try.
The request comes from my dad, who watches sports, and watches so many of them after the event has happens, some of them, days after.
Thanks for your work!

Working great!,
Thanks!!
If you want to polish it to the finest detail, I don't know why it only shows relative time in past events if they are only below 24 hours, past that it doesn't show relative timing.
But that's definitely not an issue for me.
THAKS!


FedCM becomes mandatory

Describe the bug
GSI_LOGGER]: Your client application uses one of the Google One Tap prompt UI status methods that may stop functioning when FedCM becomes mandatory. Refer to the migration guide to update your code accordingly and opt-in to FedCM to test your changes. Learn more: https://developers.google.com/identity/gsi/web/guides/fedcm-migration?s=dc#display_moment and https://developers.google.com/identity/gsi/web/guides/fedcm-migration?s=dc#skipped_moment
To Reproduce
Steps to reproduce the behaviour:

Go to https://vue3-google-signin.wavezync.com/guide/one-tap-login.html
Sign in with one tap

In console there is this error:
[GSI_LOGGER]: Your client application uses one of the Google One Tap prompt UI status methods that may stop functioning when FedCM becomes mandatory. Refer to the migration guide to update your code accordingly and opt-in to FedCM to test your changes. Learn more: https://developers.google.com/identity/gsi/web/guides/fedcm-migration?s=dc#display_moment and https://developers.google.com/identity/gsi/web/guides/fedcm-migration?s=dc#skipped_moment

Reproducible Example
If you can please provide a reproducible example with Stackbliz, CodeSandbox or any other suitable service
Expected behaviour
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Hey thanks for bringing attention to this

Any idea of the error? Can I bypass the error somehow?

im checking the docs and trying to fix this in a new release

it will be backward compatible for you

im checking the docs and trying to fix this in a new release

THANKS A LOT!!!

as i checked we arent even using there methods, but still gets the warning. i will dig into this

as i checked we arent even using there methods, but still gets the warning. i will dig into this

Do you know approximately what deadlines you have for uploading the new version with the patch applied?

I cant provide a deadline sadly

I cant provide a deadline sadly

We hope for news soon. If you need any other information, do not hesitate to ask.

i still could not figure out this, we are not using any methods described by FedCM :(

i still could not figure out this, we are not using any methods described by FedCM :(

Perhaps they enforce it automatically in supported browsers.

Has it been fixed?

Hi all, unfortunately the fix is unclear for me. this library does not use anything which is not working with FedCM as i looked into

Any advance??

In your web also fails the login! :(
do you need another reproduction?

hmm i can actually login with my browser(latest chrome)
have you enabled FedCM?

versión of google chrome Versión 126.0.6478.126 (Build oficial) (64 bits)

hi
i was trying to replicate the issue. the main problem is we arent using any method indicated by GSI Logger, was wondering whether this is due to an outdated onetap api call. but its also the standard

hi
i was trying to replicate the issue. the main problem is we arent using any method indicated by GSI Logger, was wondering whether this is due to an outdated onetap api call. but its also the standard

Do you need anymore?

Its bit confusing, if we at least use these deprecated methods its easier to remove them. but we dont use them at all. im not sure whether this is a false indicator

@JasonMSims even they are defined they aren't being used anywhere
its mostly for the typescript stuff
i removed them locally and tried also, but same results

Any advance???

In https://vue3-google-signin.wavezync.com/guide/one-tap-login.html i try to login with one tap and this is the error

The fetch of the id assertion endpoint resulted in a network error: ERR_FAILED one-tap-login.html:1 The provider's token fetch resulted in an error response code. client:71 [GSI_LOGGER]: FedCM get() rejects with IdentityCredentialError: Error retrieving a token.

hi, im planning to do a major upgrade with new vite and add FedCM support to project

added this to v3 milestone


Duplicates shown of games not installed

Hi!
After a recent update (few weeks ago), ludusavi shows my saves of "Kingdom Come: Deliverance" as a duplicate of both "Command & Conquer 3" and "Command & Conquer: Red Alert 3" (see attached screenshot), although they were never installed on my system.

Thanks for pointing this out! The paths in the manifest for Command & Conquer: Tiberium Wars were messed up (because of a previous version of the manifest updater script) and just needed to be re-parsed. I've updated the manifest (https://github.com/mtkennerly/ludusavi-manifest/commit/9518fa6fce31f0495378f051bceda9981ba44688), so this should be resolved the next time you launch Ludusavi.


New package: NNFEM v0.1.0

Registering package: NNFEM
Repository: https://github.com/kailaix/NNFEM.jl
Created by: @kailaix
Version: v0.1.0
Commit: 33deee97a5897a6f4df6581bd14e853805a2af7e
Reviewed by: @kailaix
Reference: https://github.com/kailaix/NNFEM.jl/commit/33deee97a5897a6f4df6581bd14e853805a2af7e#commitcomment-38191859

Hello, I'd like to keep the current package name. "FEM" stands for the finite element method, and it makes no sense to use "Fem". Thanks.


WIP: If javascript is unavailable display an HTML table with required data

This demonstrates the approach to be used to ensure the application is
accessable to screen reader users.
The view will parse the data passed to it in two ways it will generate
an HTML table which will be displayed by default and store the data as a
javascript variable.
If javascript is available the variable is parsed by the associated javascript
file the chart is generated and the table is removed.
Javascript Disabled:

Javascript Enabled:

When this is merged it will need a full database reset as this changes the migration scripts.


can not update access policy that already create via cloudflare_access_policy

Confirmation

[X] My issue isn't already found on the issue tracker.
[X] I have replicated my issue using the latest version of the provider and it is still present.

Terraform and Cloudflare provider version
Terraform v1.4.4
provider registry.terraform.io/cloudflare/cloudflare v4.2.0
Affected resource(s)
cloudflare_access_policy
Terraform configuration files
resource "cloudflare_access_policy" "app" {
  for_each       = var.create ? var.apps : {}
  application_id = cloudflare_access_application.app[each.key].id
  zone_id        = var.cloudflare_zone_id
  name           = join("-", [each.key, var.region_code, var.environment])
  precedence     = each.value.precedence
  decision       = "allow"
  include {
    group = each.value.access_groups
  }
}

Link to debug output

Panic output
Error: error creating Access Policy for ID "": access.api.error.invalid_request: policy precedences must be unique (12130)
│
│   with module.cloudflare_zero_trust.cloudflare_access_policy.app["argocd"],
│   on modules/cloudflare_zero_trust/main.tf line 38, in resource "cloudflare_access_policy" "app":
│   38: resource "cloudflare_access_policy" "app" {
Expected output
It should change the setting of the existing policy that was created via terraform. There is no error that occurs after Terraform is applied when I changed the precedence number. But it creates a new access policy instead of updating the existing one.
Actual output
It should change the setting of the existing policy that was created via terraform. There is no error that occurs after Terraform is applied when I changed the precedence number. But it creates a new access policy instead of updating the existing one.
Steps to reproduce

create access policy with this cloudflare_access_policy
then update include or exclude block without changing the precedence number
apply it again.

Additional factoids
No response
References
No response

resource "cloudflare_access_policy" "app" {
  application_id = cloudflare_access_application.app.id
  zone_id        = var.cloudflare_zone_id
  name           = "something"
  precedence     = 1
  decision       = "allow"
  # can not update include or exclude after created
  include {
    group = ["somegroup"]
  }
}


Scrapy source using scrapy

Hey,
This PR implements Scrapy source which set's up communication between threads via queue, see the image below

TODO

[x] Write readme and manual,
[x] README,
[x] Demo with real scraping,
[x] Another demo with more complex scraping,
[x] Demo interaction with generate pipeline resource like using add_limit(...)
[x] Tests

With the feedback from @rudolfix we decided to do the following changes

Hide the queue,
Remove source and resource in favor of dynamic creation,
Higher level run_scrapy_pipeline -> init => simply run pipeline and exit,
Higher level run_scrapy_pipeline to run parallel crawls,
Settings should be a param w/ default settings,
Remove pipeline item use signals,
Close the queue in the pipeline runner.

@rudolfix I will add more docstrings and details clarifications in readme and pipeline examples.

@rudolfix I decided to mark to skip the test since we have other more pressing issues and left the todo item to do 10% research on this.
Tried to reproduce this locally by

running tests for scraping along with other tests,
running scraping test suite,
running particular test if it hangs,
swapping out a queue with custom test queue which terminates after N retries

Created a bug ticket: https://github.com/dlt-hub/verified-sources/issues/394


Function to disable the NM service

Write a function that uses the systemd DBus API to disable the NM service.
It should return a result.
Questions:

Should the function return instantly or once the service has been successfully disabled, should this be optional?

https://github.com/resin-io/hq/pull/453


Makefile: always build linux binaries when building for an image

Description of the change: always build binaries destined for images with a linux target
Motivation for the change: no other OS targets can run in images
/cc @camilamacedo86 @joelanford
Checklist
If the pull request includes user-facing changes, extra documentation is required:

[ ] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[ ] Add or update relevant sections of the docs website in website/content/en/docs

No changelog needed since builds using the new Makefile have never been used for a release.
/kind bug


Debian package postinstall not sufficient in non-root docker environment

Installation of debian package installs sources in /opt/rfwaio for user and group 'root'. Additionally there are changes made in $HOME of the user that runs the installation ($SUDO_USER).
When the installation is done in a docker container, then there is no $SUDO_USER per default. When now later the container is used as non-root, all changes formerly done in $HOME of root are not accessible and so Robot-AIO is not fully usable.
The usecase of installing the package in a container should be considered, so multi-user usage should be possible

Hi @MarSianer1 ,
There is the executable script initRobotFrameworkAIO.sh (located under /usr/local/bin/) which helps to setup environment in case of multiple users.
Please execute it with your non-root user after AIO installation and let us know in case it does not work properly with your container environment.
Thank you,
Ngoan

Hi @ngoan1608,
running this script when the user starts the container was my first idea. But I see some problems with that

Script has no execution flag so it requires to be sourced.
Script expects a file in /tmp/ which is not existing anymore when the container gets started
Script doesn't check for file existence in many places. E.g. in container we do not install vscode, but function update_vscodium_package is called by the script
Script assumes to be OSD5 but this is not true, sGroup='domain users' is invalid/unknown in container (line 121ff)
Changing permissions of files in /opt/rfwaio requires root permissions which are typically not granted in a non-root container

Running the script after the installation of Robot-AIO package requires on one hand that the user has already been switched to the non-root one to have the $HOME in place, on the other hand root permissions are required to do this or that action. So right now there seem to be no way other than using sudo to exectue the script with success. And sudo in a non-root container is not acceptable. Maybe the script need to be split into two, one doing the action outside of $HOME that require root permission and another one doing the changes in $HOME with user permission. Beside this the problem with the group need to be resolved.

Hi @ngoan1608 , @huavanthong ,
please consider Marcs input.
Besides usability has highest priority. Nicest solution would be if all will be automatically executed without manual interaction.
Thank you,
Thomas

integrated in 0.12.1


Improve deployment experience and features

Two features are:

Store terraform state in GCS buckets
Support multiple deployments for different environments

Storing state in GCS buckets provides a canonical location for the current deployment state, which better supports multiple maintainers. Previously, the state was stored on the local developer machine. This made life tedious and error prone for multiple maintainers, or even a single maintainer with multiple machines.
Different environments allows us to avoid testing in prod, and to stage releases properly. ci and prod are created for real world usage, and the dev environment is an environment in which we can test out more risky changes that won't be exposed to the outside world.
Note that these changes require terragrunt in addition to terraform. This is a small open source tool that provides support for both of these features. It breaks the chicken-and-egg loop of creating GCS buckets using terraform, but needing a GCS bucket in which to store the state. It also easily supports different live environments invoking the same module with input parameters, allowing for clear code reuse while having separate files for each environment. This is the least risky approach I can see to supporting updates to one environment without modifying the others.

@AlCutter need Approval again plz!


add Tikv : distributed KV database powered by Rust

Tikv : distributed KV database powered by Rust

Thank you


Task to Bounties

https://github.com/thenewboston-developers/Website/issues/2045

Seems like linter is failing

working on it

Pls, describe completely the upcoming tasks, so that there is no misinterpretation.

is this done?

@YashovardhanSingh Yes, it got merged!

@thesanjeevsharma 853cf2c5353f1fe403672611725480dd55e6424660212924a8d60b38fdaff4a0


Adding the fuzzy dark matter model.

Added a FDM delay function to utils.
Created a FDM delay test function.

This failed the linter.  You can run black locally to see what the problem is

Code and test look good, thanks. I don't mind having this (which is rather self-contained) in enterprise core. Once the tests pass, this will be OK to merge.


Running this circuit causes runtime to stall

Describe the bug
Eventually the job will time out.
Steps to reproduce
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit_ibm_runtime import QiskitRuntimeService, Sampler

service = QiskitRuntimeService()
backend = service.backend("ibmq_qasm_simulator")
sampler = Sampler(session=backend)

register = QuantumRegister(2)
clbits = ClassicalRegister(2)

circuit = QuantumCircuit(list(register), list(clbits))
circuit.measure_all()

job = sampler.run(circuit)
result = job.result()

Expected behavior
Should not stall. Should probably just stop and return the same error that Qiskit Terra would: 'Some classical bits are not used for measurements. the number of classical bits (4), the used classical bits ({2, 3}).'
Suggested solutions
Additional Information

qiskit-ibm-runtime version: 0.8.0
Python version: 3.10.8
Operating system: Arch Linux

This returns an error immediately for me - does is still stall for you?
2022-11-17T00:01:37.573259945Z     _read_instruction(
2022-11-17T00:01:37.573278059Z   File "/opt/app-root/lib64/python3.8/site-packages/qiskit_ibm_runtime/qpy/binary_io/circuits.py", line 231, in _read_instruction
2022-11-17T00:01:37.573294029Z     cargs.append(clbit_indices[carg.size])
2022-11-17T00:01:37.573311009Z KeyError: 2

Interesting, it is no longer stalling. Thanks.


Update bundled Postgres to 16

Closes #6308
There is a few breakages with explain plans. @msullivan can you immediately spot what's going on before I dive too deep?

Looking quickly at test_edgeql_explain_ranges_strictly_below_02, it seems that one of the nodes changed from
{'important': True, 'title': 'scan_direction', 'type': 'text', 'value': 'NoMovement'}

to
{'title': 'scan_direction', 'value': 'Forward', 'type': 'text', 'important': True}

All of the rest seem to be similar.
Seems unlikely we care about the detail here. We can just replace NoMovement with str?


How to handle connection timeout?

WebSocket connection timed out!
Everything works fine for short runs but since my app is supposed to work forever I lose connection to WebSocket after 1 or 2 days with a connection timeout exception! I'd like to handle connection timeout somehow. The timeout probably happened due to connection issues, but I couldn't catch the exception on my end. Can you let me know how to avoid a timeout exception raise by increasing the timeout length or creating a new WS connection?
UPDATE:
I found create_connection method in the binance_socket_manager and added timeout to the arguments as:
self.ws = create_connection(self.stream_url, **self._proxy_params, timeout=10*60) # Max ping-pong wait = 10mins
I'm not sure if this is the right way to do this but I think it should work!

timeout is supported in latest release.
Thanks


string operator support

MXNet does not support string as one of the native tensor types. We have two problems below regarding text pre-processing:

For a few use cases like QA and BERT pre-training, the text pre-processing overhead is noticeable. Speed can be improved.
Deploying gluon-nlp code to jave/scala/c++ requires rewring text processing code in the corresponding language

To address problem 1, we can probably start to explore defining string operator interfaces by leverage the str support in numba, and nvstrings for GPU enabled accleration. The APIs can serve as the pre-cursor of the official string operator API in MXNet for better deployment support.
We can benchmark if these packages accelerate the use case of BERT to start with.

@hymzoque, this might be related to our project.


Refresh config mtime required to apply device repeat_delay/repeat_rate

Bug or Regression?
Regression
System Info and Version
 System/Version info
Hyprland, built from branch  at commit 9e781040d9067c2711ec2e9f5b47b76ef70762b3  (props: bump version to 0.41.1).
Date: Thu Jun 13 09:54:06 2024
Tag: v0.41.1, commits: 4818

flags: (if any)

System Information:
System name: Linux
Node name: mynode
Release: 6.9.4-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Wed, 12 Jun 2024 20:17:17 +0000

GPU information:
21:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Lexa XT [Radeon PRO WX 2100] [1002:6995] (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/virackson/.config/hypr/hyprland.conf: Read Succeeded
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
#
# Version 0.1.3

# See https://wiki.hyprland.org/Configuring/Monitors/
# name, resolution, offset, scale
monitor = , preferred, auto, 1.0

# See https://wiki.hyprland.org/Configuring/Keywords/

# Applications
exec-once = hypridle
exec-once = waybar
exec-once = dropbox
exec-once = hyprpaper
exec-once = protonmail-bridge -n
exec-once = ~/.config/hypr/wob-wrap.sh

# exec-once = wl-paste --type text --watch cliphist store #Stores only text data
# exec-once = wl-paste --type image --watch cliphist store #Stores only image data
# bind = CTRL, V, exec, cliphist list | fuzzel --dmenu | cliphist decode | wl-copy -p

# Some default env vars.
env = XCURSOR_SIZE,14

# See https://wiki.hyprland.org/Configuring/Variables/ for more
general {
    layout = dwindle
    gaps_in = 5
    gaps_out = 5
    border_size = 0
    # Not used with border_size = 0
    col.inactive_border = rgba(00000000)
    col.active_border = rgba(d4be98ee) rgba(d4be98ee) 45deg
}

cursor {
    inactive_timeout = 3
    # Doesn't work?
    # hide_on_key_press = true
}

# See https://wiki.hyprland.org/Configuring/Variables/
decoration {
    rounding = 7
    drop_shadow = yes
    shadow_range = 5
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)
    active_opacity = 1
    inactive_opacity = 0.85
    fullscreen_opacity = 1
    dim_special = 0.7
    blur {
        enabled = yes
        size = 8
    }
}

# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/
animations {
    enabled = yes
    bezier = myBezier, 0.05, 0.9, 0.1, 1.05
    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
    # Allows to restart a lockscreen app in case it crashes (red screen of death)
    allow_session_lock_restore = true
}

# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = yes # you probably want this
    # No gaps if single window
    # no_gaps_when_only = yes
}

# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
    new_is_master = true
}

# See https://wiki.hyprland.org/Configuring/Variables/ for more
gestures {
    workspace_swipe = yes
    workspace_swipe_fingers = 3
}

# General input
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
# sensitivity = [-1.0 : 1.0], 0 means no modification.
input {
    kb_layout = us
    follow_mouse = 1
    sensitivity = 0
    touchpad {
        natural_scroll = yes
    }
}

# Per-device configs
# Device list obtained via `hyperctl devices`
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs

# Lenovo Thinkpad X1 (trackpoint)
device {
    name = tpps/2-elan-trackpoint
    sensitivity = 0.5
}

# Lenovo Thinkpad X1 (touchpad)
device {
    name = syna8008:00-06cb:ce58-touchpad
    sensitivity = 1.0
    natural_scroll = yes
}

# Lenovo Thinkpad X1 (keyboard)
device {
    name = at-translated-set-2-keyboard
    repeat_rate=50
    repeat_delay=200
}

# Lenovo Trackpoint keyboard 2
device {
    name = lenovo-trackpoint-keyboard-ii
    repeat_rate=50
    repeat_delay=200
}

# Lenovo Trackpoint keyboard 2 (trackpoint)
device {
    name = lenovo-trackpoint-keyboard-ii-2
    sensitivity = 0.5
}

# Tablet pen
device {
    name = gaomon-gaomon-tablet-pen
    output = 0
    #sensitivity = 0.5
}

# Window rules
# See https://wiki.hyprland.org/Configuring/Window-Rules
# Some apps looks better when is floating
windowrulev2 = float, class:floating
windowrulev2 = float, class:(pavucontrol|blueman-manager|Element|.*telegram.*)
windowrulev2 = float, title:(About.*|Extension.*)
# Floating tweaks (should be after floating rules)
windowrulev2 = opacity 1, floating:1
windowrulev2 = dimaround, floating:1
windowrulev2 = bordersize 1, floating:1
windowrulev2 = bordercolor rgb(d4be98), floating:1
#windowrulev2 = center, floating:1
windowrulev2 = animation slidefade, floating:1
windowrulev2 = pin, floating:1
#windowrulev2 = stayfocused, floating:1
# Bind some popular applications to workspaces
windowrulev2 = workspace 1, class:Alacritty
windowrulev2 = workspace 2, class:firefox
windowrulev2 = workspace 3, class:thunderbird
windowrulev2 = workspace 10, class:Spotify
windowrulev2 = size 50% 70%, class:Element
windowrulev2 = center, class:Element

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER

# Key binds
# See https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, RETURN, exec, alacritty
bind = $mainMod, q, killactive,
bind = $mainMod SHIFT, X, exit,
bind = $mainMod SHIFT, RETURN, exec, alacritty -e ranger
bind = $mainMod, v, togglefloating,
bind = $mainMod, v, centerwindow
bind = $mainMod, p, pseudo,      # dwindle
bind = $mainMod, s, togglesplit, # dwindle
bind = $mainMod, f, fullscreen, 0
bind = $mainMod SHIFT, F, fullscreen, 1
bind = $mainMod, y, togglespecialworkspace
bind = $mainMod SHIFT, y, movetoworkspace, special
bind = $mainMod, t, togglegroup,
bind = $mainMod, TAB, changegroupactive,
bind = $mainMod, o, exec, fuzzel
bind = $mainMod, m, exec, rofimoji

# Move focus with mainMod + arrow keys
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d

bind = $mainMod SHIFT, h, movewindow, l
bind = $mainMod SHIFT, l, movewindow, r
bind = $mainMod SHIFT, k, movewindow, u
bind = $mainMod SHIFT, j, movewindow, d

bind = $mainMod, c, centerwindow

# Switch to 'float-actions' submap
bind = $mainMod, r, submap, float-actions

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10

# Scroll through existing workslaces
bind = $mainMod CTRL, l, workspace, e+1
bind = $mainMod CTRL, h, workspace, e-1

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# WOB Brightness Control
bind = , XF86MonBrightnessDown, exec, brightnessctl set 5%- | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOB_SOCK
bind = , XF86MonBrightnessUp, exec, brightnessctl set +5% | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOB_SOCK

# WOB Volume Control
binde = , XF86AudioRaiseVolume, exec, amixer sset Master 5%+ | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $WOB_SOCK; ogg123 /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga
binde = , XF86AudioLowerVolume, exec, amixer sset Master 5%- | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $WOB_SOCK; ogg123 /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga
bind = , XF86AudioMute, exec, amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > $WOB_SOCK; ogg123 /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga

# WOB Gamma Control
binde = SHIFT, XF86MonBrightnessDown, exec, gammactl -100 | sed -En 's/.*\(([0-9]+)%\).*/\1/p'  > $WOB_SOCK
binde = SHIFT, XF86MonBrightnessUp, exec, gammactl +100 | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOB_SOCK

# Screenshot (PrtSc key)
bind = $mainMod SHIFT, Print, exec, grim -g "$(slurp -o)" $(xdg-user-dir PICTURES)/screenshots/$(date +'%Y%m%d-%H%M%S-grim.png')
bind = $mainMod, Print, exec, grim -g "$(slurp)" $(xdg-user-dir PICTURES)/screenshots/$(date +'%Y%m%d-%H%M%S-grim.png')

# Hide waybar
bind = $mainMod, b, exec, killall -SIGUSR1 waybar

# Toggle transparency
bind = , XF86Favorites, exec, ~/.config/hypr/toggle-transparency.sh
bind = , XF86Launch1, exec, ~/.config/hypr/toggle-transparency.sh

# Bind workspaces to monitors
workspace = 1, monitor:DP-1
workspace = 2, monitor:DP-1
workspace = 3, monitor:DP-1
workspace = 4, monitor:DP-1
workspace = 5, monitor:DP-1
workspace = 6, monitor:DP-2
workspace = 7, monitor:DP-2
workspace = 8, monitor:DP-2
workspace = 9, monitor:DP-2
workspace = 10, monitor:DP-2

#
# Float-Actions submap ($mainMod + r)
#

# Will start a submap called 'float-actions'
submap = float-actions
# Center
bind = , c, centerwindow
bind = $mainMod, c, centerwindow
# Resize bindings
binde = SHIFT, l, resizeactive, 40 0
binde = SHIFT, h, resizeactive, -40 0
binde = SHIFT, k, resizeactive, 0 -40
binde = SHIFT, j, resizeactive, 0 40
# Resize and center
binde = , l, resizeactive, 40 0
bindr = , l, centerwindow
binde = , h, resizeactive, -40 0
bindr = , h, centerwindow
binde = , k, resizeactive, 0 -40
bindr = , k, centerwindow
binde = , j, resizeactive, 0 40
bindr = , j, centerwindow
# Movements
binde = ALT, l, moveactive, 50 0
binde = ALT, h, moveactive, -50 0
binde = ALT, k, moveactive, 0 -50
binde = ALT, j, moveactive, 0 50
# Use reset to go back to the global submap
bind = $mainMod, r, submap, reset
bind = , escape, submap, reset
# Reset the submap, meaning end the current one and return to the global one
submap = reset

======Config-End========

Description
When a new application is opened the repeat_delay and repeat_rate values doesn't have effect.
You need to update the modification time of `hyprland.conf`` to enact them.
How to reproduce

open a new terminal. The repeat_delay and repeat_rate is evidently not applied
issue the command $ touch ~/.config/hypr/hyprland.conf
now repeat_delay and repeat_rate are enacted to all currently opened windows

If I then open a new terminal the repeat_delay and repeat_rate is not applied to it (but is still applied to all the applications opened before the touch command).
To apply the configs the new window I need to re-issue the command $touch ~/.config/hypr/hyprland.conf
Crash reports, logs, images, videos
No response

if it's a regression please bisect

mhm, you probably have a per-device config

try now

Works for me


Using v2 and v3 contexts at the same time is valid

Using the dtdlparser 1.0.48-preview, I noticed you are able to combine the v2 and v3 contexts at the same time. One thought around this, is by allowing mixed contexts it feels like it undermines at least one v3 extension which is quantitativeTypes v1.
Taking the first example off the quantitative types reference, removing the extension from @context causes an error as expected

However you can fix it by adding the v2 context, skipping usage of quantitative types altogether.

The context rule in JSON-LD is that later contexts override earlier contexts.  So, your second example is actually DTDL v2.  It is not a combination of v3 and v2.  If you try to use a v3 feature (such as Array in Property) in your second example, it will fail with an error.

Understood, thanks for explaining this JSON-LD rule.
Separate from the original issue, I also want to confirm that in DTDL v2, you are able to use unknown context specifiers where-as in v3 only known context specifiers are allowed right?
Here is example with v2 that is valid

Which fails with v3

Closing, will follow up on the additional question later.


True: is the key value 1 or 0xFFFFFFFF?

There is confusion about value '1' versus non-zero. This article still mentions non-zero, while others are modified to explicitly state '1'.
I have had issues solved by changing 0xFFFFFFFF to 1 wikth the help of MS Premier support who stated clearly "it must be 1".
Please fix.

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

ID: dd180142-4c19-8abc-ecce-e4c7e5ac8951
Version Independent ID: fc5bba87-afad-1729-8f7e-333c73188b73
Content: Transport Layer Security (TLS) registry settings
Content Source: WindowsServerDocs/security/tls/tls-registry-settings.md
Product: windows-server
Technology: security
GitHub Login: @PatAltimore
Microsoft Alias: patricka

#assign:xelu86

Hey @andrePKI,
Thanks again for contacting Microsoft. We value your feedback.
A documentation change has been made surrounding the terminology used and will be live after the next business day. We will be closing this as resolved. Thank you and have a most pleasant day. #please-close


Use Swoole coro without changing event loop

Hi @walkor
I understand that to use Swoole's coro I have to set using Swoole's event loop.
I do not want that, just Workerman while still using Swoole's coro, while benefiting for Workerman's extra %15 of being leightweight and further enhancements.
How to do so?
Any alternative for having similar behavior without using Swoole may be?
All what's needed is running non-blocking PHP code, and getting back the results. That's it.

At present, swoole collaboration is the most feasible solution in PHP, and there is no good alternative.

Not even the newly born Fibers?

Fiber cannot be well used at present, because most libraries and PHP extensions do not support fiber.

You can use, i was write own async mysql client based on Fiber, but this is private repository.

@rentstack any hints on that? code samples?
@walkor is the strength and enhanced performance in workerman come from the internal eventloop used or the code is fast? Since workerman is at least %20 faster than Swoole!

@cayolblake You need to make another the event loop that runs all registered fibers.

It is recommended not to waste time on fiber. Using fiber means that you need to rewrite all clients (MySQL redis, etc.) in PHP. Obviously, the performance of the client implemented with PHP will be much lower than that of the PHP extension. Through the stress test, you will find that the extreme performance will be greatly reduced after using fiber than using extension.
If you like coroutines, swoole is the best solution at present.
In addition, coroutines programming is somewhat complicated, and it is easy to get bugs without experience. If you are interested in PHP coroutines, it is recommended to directly use the swoole coroutine framework, such as hyperf.

@walkor I have tested all mysql clients for workerman and this is faster then any other and also it works great with your Redis and Http clients. The only thing i didn't use libevent and don't know this work with him.

I don't understand, why do you recommend against the official PHP implementation of fiber?

Maybe my reply is ambiguous. From your previous issue, you have very high performance requirements. The reason why I do not recommend you to use fiber is that fiber may not meet your expected performance requirements, because using fiber means that you need to use PHP to implement many clients. For example, to implement a MySQL client, you need to use PHP to parse the MySQL protocol. The performance of the PHP parsing protocol is far inferior to that of the pdo_mysql using C. So the final result is that after using fiber, the ultimate performance may not meet your expectations. In addition. in addition you should also consider using fiber to implement some functions to replace such as file_get_ contents file_put_contents fread fwrite curl and other functions with blocking behavior. I'm not sure if you have time to do all of that.
Finally, if you using fiber, your programming habits need to be changed accordingly. For example, you should consider that the concurrent operation of fiber causes global variable pollution, and that you cannot use the same MySQL or redis connection resource between fibers at the same time. Therefore, you need to implement connection pooling.
Based on the above point of view, I do not recommend that you use fiber. Of course, if the above will not cause difficulties for you and accept some performance losses, fiber is a good solution.
As for why the performance of the workman stress test is higher than that of the swoole, I can't give a clear answer, because I don't know the internal implementation of the swoole, nor have I seen the codes of the swoole. I guess the reason is that the internal functions of swoole are too complex. For example, the creation and destruction of collaboration processes affect the performance of swoole. In addition, it seems that the HTTP protocol resolution of swoole is not fast enough.
Finally, I like the fiber feature of php8 very much, and I urgently hope that the fiber ecosystem of PHP can flourish quickly. Workman V5 also needs fiber ecology.

Thank you @walkor for the detailed reply.
I do understand your point and appreciate your detailed explanation.
I totally agree with you that having to implement for example the MySQL client protocol in pure PHP would introduce an overhead, take a lot of time, and be prone to never-ending issues. But, I have a weird feeling the overhead could be very small or even none, given you're using the new JIT optimizations.
Swoole is definitely the most mature and widely-used solution available, but, its performance gets lower and lower by every release I don't know why, and this defies the reason behind its existence.
For example, there's now https://github.com/swow/swow which I believe is developed by the same core developer of the original old-school Swoole.
Swow, for some weird reason also, gives even faster outcome than Swoole and workerman. Its HTTP server is faster than Swoole by ~3x, and faster than workerman by ~1.7x
Perhaps it needs to be checked by you and see if using its event loop can benefit workerman in anyway, performance/stability wise.


Add docs：Add guidance for Postgresql "FATAL no host for" configruation

Hi! I found that many using docker-compose to locally deploy Dify usually met the problem that PostgreSQL refused any connection. And the WebUI raises "Internal Server Error".
This PR adds basic descrption about the problem ,and the usual way to solve it.
Thanks!

@AllenWriter


False positives for active Links

The current implementation of pathnameIsActive gives false positives for what I'd expect to be a fairly common case: numbers in path parameters.
Just hit this in v1.0.0-beta2 in an app which is using the index of some items in an array as a parameter. Once you start hitting double-digit numbers, you get false positives from single-digit numbers.

In this example, the URL is /1/10 and links for both /1/1 and /1/10 are marked active.

Yes, the isActive implementation in beta2 is incomplete. It also gives false positives in the situation where one URL looks like the beginning of another. We definitely need to fix this before 1.0.

It seems like ensuring there are slashes on the end of the URLs being compared would eliminate at least one class of false positives (/1/10/ does not start with /1/1/).
Do you have a set of test data in mind which covers other scenarios the implementation of isActive needs to address?

+1
Should take route hierarchy into account, e.g.
<Router history={new BrowserHistory}>
  <Route component={App}>
    <Route path="/" component={HomePage}>
      <Route path="nested" component={NestedPage}>
        <Route path="nested" component={NestedPage} />
      </Route>
      <Route path="nest" component={NestPage} />
    </Route>
    <Route path="some" component={SomePage} />
    <Route path="other" component={OtherPage} />
  </Route>
</Router>

When should links actually be active? Looking at the routes from my previous comment, i'd propose this:
Any Opinions?

Link
URL /
URL /nested
URL /nested/nested
URL /nest
URL /some

/
✔
✔
✔
✔

/nested

✔
✔

/nested/nested

✔

/nest

✔

/some

✔

Theres a few more complicated options regarding edge cases like nested paths starting with slashes, the absoluteChildPathsoption and others yet unknown to me.

@gonsfx seems best to me

@gonsfx I'm not quite sure I like the fact that you nest /root below the / path, but then don't want that one to be marked as active. Feels a bit counter intuitive to me. Since there really is no difference between /nested and /root. Or am I missing something significant here?

@johanneslumpe I missed it! if you nest /root under /, then / is active on /root.

@Schniz Thats what it's like atm.
I'd rather discuss what we want the new, bugfixed version of active links to look like.
@johanneslumpe It's for use-cases where you'd want to nest Components, but not nest the URL path structure.

@gonsfx I might be wrong but that does seem like a very tiny edge-case to me. If you don't want to nest urls, then don't nest them. You could add them to a different wrapper route. I know this would lead to a duplication of the container route, but I feel that the desired might be confusing to users. I'm not super against it I just think that it should be evaluated whether this desired functionality is useful for most users or whether it makes things more complicated to understand for them.

@johanneslumpe I'm with you on this and as of now not a contributor to this repo. What i need to even think about starting to work on this issue is a clear, understandable ruleset of how nesting of routes does and doesn't work with all edge-cases either eliminated or defined.

@mjackson @ryanflorence Can you help clarifying?

When a route is active, it, and all of its parents, are also active, it has nothing to do with the URL. Routes can be nested, even if the urls are not.
<Route path="/">
  <Route path="users">
    <Route path=":user_id"/>
    <Route path="/profile/:user_id"/> {/* <-- not a nested url, but a nested route with an absolute path */}
  </Route>
</Route>

So when the users hits /profile/123 the parent routes with paths /users and / will be active, even though their URLs don't "match".
We haven't completely tackled handling these kinds of urls in the code on master yet, it might be possible already with route.getChildRoutes.
So, to reiterate, if a route's path is matched exactly, it is active and so are all of its parent routes.
On master, the only difference right now should be that we don't declaratively support "absolute paths"

Works fine in the render method of a Link - except when it encounters absolute URLs or path patterns:
if (router) {
  // ignore if rendered outside of the context of a router, simplifies unit testing
  _RoutingUtils.getState(router.routes, router.state.location, function (error, state) {
    let toPaths = (res, branch) => {
      if (branch.path) {
        res.push([
          (res[res.length - 1] || '').replace(/\/$/, ''),
          branch.path.replace(/^\//, '')
        ].join('/'));
      }
      return res;
    };

    if (state.branch.reduce(toPaths, []).indexOf(to) > -1) {
      if (props.activeClassName)
        props.className += (props.className !== '' ? ' ' : '') + props.activeClassName;
      if (props.activeStyle)
        props.style = _extends({}, props.style, props.activeStyle);
    }
  });
}

This should be fixed in master with a bunch of tests as well.
@gonsfx @insin If you'd like to add some more tests just to make sure we don't regress here, that would be great.

It doesn't work good enough as far as i'm concerned. It's not working with route params and not absolute URLs.

See #1561 and #1800

I started working on that, should send a PR soon, hope not overlapping on this with anyone

Given that I've often wanted to have route structures like this, where Home links only appear active when the user is at / and not /about:
<Route component={App}>
  <Route path="/about" component={About}/>
  <Route path="/" component={Home}/>
</Route>

I think a separate built-in concept of "deepest active route" (or whatever term the community decides is clearest) would be very useful.  Then we could keep activeClassName as people are discussing here, but I could write: <Link to="/" deepestActiveClassName="active">Home</Link>.

I think #1842, <IndexRoute/> and <IndexLink/> address almost everything here.
Only think missing is "I am active only when I'm the deepest active route", would love for somebody to create a <ExactLink/> or <Link to="/wherever" exact/> or something.

Are <IndexRoute/> and <IndexLink/> documented anywhere?

Nevermind, easy enough to find in the code

I take it back again...I'm not sure I grok from the terminology or the code what <IndexRoute/> and <IndexLink/> mean?

What's the reasoning behind having multiple Components for that? Wouldn't it be possible to do all of this with a simple Link component just by parsing the Route Tree?

<IndexRoute/> is exactly like <DefaultRoute/> from 0.13.
In 0.13 you could link to a route by name, in 1.0 we have no more route names, therefore ...
<Route path="/" component={App}>
  <IndexRoute component={Index}/>
  <Route path="about" component={About}/>
</Route>

How do you create a link to Index that isn't active all the time.
<Link to="/">Index?</Link> will be active always
In 0.13 we could name the route and link to it and then it would only be active if you were actually rendering the Index component.
So for 1.0, we need a way to create a link to / that is only active when the IndexRoute at that location is active.  We though of either <IndexLink to="/" /> or <Link to="/" index />.
Without route names, IndexLink or an option for Link there is no amount of sophistication to know when you want that link to be "active" or not.

Ah, cool, that makes perfect sense.

@ryanflorence Another argument to bring route names back ;)

@ryanflorence whats the difference between the route snippet you posted above and this one:
<Route component={App}>
  <Route path="/" component={Index}/>
  <Route path="about" component={About}/>
</Route>

If it is basically the same (except the isActive of Links pointing to the Index component) - wouldn't it be possible to get the desired behaviour by looking at the route tree and their paths alone?

IndexLink in RC4 actually does behave like the ExactLink described above - there wasn't an easy way to get it to work otherwise.


Added a in_array function

for strings and integer arrays, in_array_string and in_array_int
Due to the limitations of the Neltinx language I made 2 functions instead of 1. I commited it with array_length, but this was returning funky results in my test code and I used max_length_array there. (I suspect it's a new issue as I never had issues with it before).
I needed these functions in a bit of software I was writing, thought it be nice to add to the common libraries.

@moty66 added some pretty similar functionality a while back. If you haven't seen them, have a look at the array_<type>_index(..) set of methods.
P.S. if you're using your in_array_string(..) method elsewhere you may want to double check that second parameter. As you're search for a string, it should be a two dimensional character array to get the behaviour you likely are after.

Can't believe I completely read over that.
Could change the function to return 1 if something is in the array and 0 if
it isn't.
I read you're working for Aussie AMX now, how's that working out for you?
On 20 May 2015 at 15:14, Kim Burgess<EMAIL_ADDRESS>wrote:

Closed #7 https://github.com/KimBurgess/netlinx-common-libraries/pull/7.
—
Reply to this email directly or view it on GitHub
https://github.com/KimBurgess/netlinx-common-libraries/pull/7#event-309496665
.

No need to change that return, if you're just want to use it as an array contains item style test, non-zero values are 'truthy' in NetLinx so can be used as is.
P.S. I spent a couple of awesome years playing with shiny things at AMX AU but missed working on real world projects so recently joined the team at Ci.


Dymola check for fails on no license

Pull Request Description
What issue does this change request address? (Use "#" before the issue to link it, i.e., #42.)
Closes #1635
What are the significant changes in functionality due to this change request?
Adds a check to Dymola runs to check for the "success" file as a determination for success, if the return code is 0.

For Change Control Board: Change Request Review
The following review must be completed by an authorized member of the Change Control Board.

[x] 1. Review all computer code.
[x] 2. If any changes occur to the input syntax, there must be an accompanying change to the user manual and xsd schema. If the input syntax change deprecates existing input files, a conversion script needs to be added (see Conversion Scripts).
[x] 3. Make sure the Python code and commenting standards are respected (camelBack, etc.) - See on the wiki for details.
[x] 4. Automated Tests should pass, including run_tests, pylint, manual building and xsd tests. If there are changes to Simulation.py or JobHandler.py the qsub tests must pass.
[x] 5. If significant functionality is added, there must  be tests added to check this. Tests should cover all possible options.  Multiple short tests are preferred over one large test. If new development on the internal JobHandler parallel system is performed, a cluster test must be added setting, in  XML block, the node <internalParallel> to True.
[x] 6. If the change modifies or adds a requirement or a requirement based test case, the Change Control Board's Chair or designee also needs to approve the change.  The requirements and the requirements test shall be in sync.
[x] 7. The merge request must reference an issue.  If the issue is closed, the issue close checklist shall be done.
[x] 8. If an analytic test is changed/added is the the analytic documentation updated/added?
[x] 9. If any test used as a basis for documentation examples (currently found in raven/tests/framework/user_guide and raven/docs/workshop) have been changed, the associated documentation must be reviewed and assured the text matches the example.

Do not merge before we get confirmation this works as expected in the real code runs.

PR is good, tests are green, and checklist is satisfied.

@PaulTalbot-INL Could you send out an email to the user regarding the fix?


Status messages are being cut off by filter bar on index page

Describe the Bug
At the moment the status messages on the index page are partly covered by the filter bar. Since we need status messages on the index page, we need to come up with a solution where the status messages are in their entirety readable.
Steps to Reproduce

On index page click on an offer. In the detail overlay click on "Report"
On the report page fill out the form
You're being redirected to the index page with a status message on top of the page. However the status message is not entirely readable.

Expected Behavior

A readable status message
Actual Behavior

Part of the status message is overlapped by the filter bar on the index page
Additional Information

This issue appears only after #98 is merged.

Traceback

Suggestion:

Use toast message and show on first level (over navigation bar and overlay) (e.g. https://tailwindui.com/components/application-ui/feedback/alerts)
Show notification on the right corner (e.g. https://tailwindui.com/components/application-ui/overlays/notifications)


Roll Engine from 3d597393aa24 to fef62323d7c7 (5 revisions)

https://github.com/flutter/engine/compare/3d597393aa24...fef62323d7c7
2022-03-15<EMAIL_ADDRESS>Roll Skia from a48a3c9417c0 to ffb49630eb1a (3 revisions) (flutter/engine#32048)
2022-03-15<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from EOVjR8JSN... to jvlI1s78T... (flutter/engine#32047)
2022-03-15<EMAIL_ADDRESS>Switch the renderer to impeller based on the presence of a command line flag. (flutter/engine#31959)
2022-03-15<EMAIL_ADDRESS>Roll Skia from 9565f4bd902b to a48a3c9417c0 (3 revisions) (flutter/engine#32044)
2022-03-15<EMAIL_ADDRESS>[macOS] fix text selection when there's composing text  (flutter/engine#31936)
Also rolling transitive DEPS:
fuchsia/sdk/core/mac-amd64 from EOVjR8JSNohy to jvlI1s78Ta29
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.