Jenkins SERVICE_STARTUP_FAILED

launched jenkins selenoid and selenoid-ii through docker compose
version: "2"

networks:
  fot:
    driver: bridge

services:
  jenkins:
    image: "jenkins/jenkins:lts"
    ports:
      - "<IP_ADDRESS>:8880:8080"
      - "<IP_ADDRESS>:50000:50000"
    environment:
      JENKINS_OPTS: "--sessionTimeout=300"
    restart: "always"
    container_name: "jenkins"
    volumes:
      - "/opt/jenkins:/var/jenkins_home"
      - "/var/run/docker.sock:/var/run/docker.sock"
    networks:
      - fot

  selenoid:
    image: "aerokube/selenoid"
    networks:
      - fot
    container_name: "selenoid"
    ports:
      - "4444:4444"
    volumes:
      - "$PWD/config/:/etc/selenoid/" # assumed current dir contains browsers.json
      - "/var/run/docker.sock:/var/run/docker.sock"
  selenoid-ui:
    image: "aerokube/selenoid-ui"
    networks:
      - fot
    links:
      - selenoid
    container_name: "selenoid-ui"
    ports:
      - "8080:8080"
    command: ["--selenoid-uri", "http://selenoid:4444"]

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' jenkins
<IP_ADDRESS>
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenoid
<IP_ADDRESS>
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenoid-ui
<IP_ADDRESS>

docker exec -it jenkins ping selenoid
PING selenoid (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from selenoid.jenkins_fot (<IP_ADDRESS>): icmp_seq=1 ttl=64 time=0.032 ms
64 bytes from selenoid.jenkins_fot (<IP_ADDRESS>): icmp_seq=2 ttl=64 time=0.021 ms
64 bytes from selenoid.jenkins_fot (<IP_ADDRESS>): icmp_seq=3 ttl=64 time=0.033 ms
^C
--- selenoid ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.021/0.028/0.033/0.008 ms

but when I build I get an error
in the logs docker logs -f selenoid
2019/02/27 11:51:17 [-] [NEW_REQUEST] [unknown] [<IP_ADDRESS>]
2019/02/27 11:51:17 [-] [NEW_REQUEST_ACCEPTED] [unknown] [<IP_ADDRESS>]
2019/02/27 11:51:17 [0] [LOCATING_SERVICE] [firefox] [latest]
2019/02/27 11:51:17 [0] [USING_DOCKER] [firefox] [latest]
2019/02/27 11:51:17 [0] [CREATING_CONTAINER] [selenoid/firefox]
2019/02/27 11:51:18 [0] [STARTING_CONTAINER] [selenoid/firefox] [13065afea80aee6b8eeb011ed15428e3552b0c3bd44bbaef2fee24ee54e202b8]
2019/02/27 11:51:19 [0] [CONTAINER_STARTED] [selenoid/firefox] [13065afea80aee6b8eeb011ed15428e3552b0c3bd44bbaef2fee24ee54e202b8] [0.96s]
2019/02/27 11:51:49 [0] [REMOVING_CONTAINER] [13065afea80aee6b8eeb011ed15428e3552b0c3bd44bbaef2fee24ee54e202b8]
2019/02/27 11:51:49 [0] [CONTAINER_REMOVED] [13065afea80aee6b8eeb011ed15428e3552b0c3bd44bbaef2fee24ee54e202b8]
2019/02/27 11:51:49 [0] [SERVICE_STARTUP_FAILED] [wait: http://<IP_ADDRESS>:4444/wd/hub does not respond in 30s]

in the log Jenkins
[ERROR] Tests run: 11, Failures: 1, Errors: 0, Skipped: 10, Time elapsed: 32.6 s <<< FAILURE! - in TestSuite
[ERROR] initDirever(ru.pwd.tests.FindErrorsTest)  Time elapsed: 32.463 s  <<< FAILURE!
org.openqa.selenium.WebDriverException:
wait: http://<IP_ADDRESS>:4444/wd/hub does not respond in 30s (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 32.04 seconds
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:19:58.91Z'
System info: host: 'ab884b8c6085', ip: '<IP_ADDRESS>', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-693.11.1.el7.x86_64', java.version: '1.8.0_181'
Driver info: driver.version: RemoteWebDriver

tell me how to run containers through Jenkins ?

@luisgarcia1010 your have to add -container-network flag to Selenoid as shown here: https://aerokube.com/selenoid/latest/#_selenoid_with_docker_compose Otherwise browser containers are started in default network whereas Selenoid runs in network created by Docker Compose.

@vania-pooh thanks for the answer
I brought my docker-compose.yml to this kind
version: '3'
networks:
  selenoid:
    external:
      name: selenoid # This assumes network is already created
services:
  selenoid:
    networks:
      selenoid: null
    image: aerokube/selenoid:latest-release
    container_name: "selenoid"
    volumes:
      - "$PWD/config/:/etc/selenoid"
      - "/var/run/docker.sock:/var/run/docker.sock"
    command: ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video", "-log-output-dir", "/opt/selenoid/logs", "-container-network", "selenoid"]
    ports:
      - "4444:4444"

  selenoid-ui:
    image: "aerokube/selenoid-ui"
    networks:
      - selenoid
    links:
      - selenoid
    container_name: "selenoid-ui"
    ports:
      - "8080:8080"
    command: ["--selenoid-uri", "http://selenoid:4444"]
  jenkins:
    image: "jenkins/jenkins:lts"
    ports:
      - "<IP_ADDRESS>:8880:8080"
      - "<IP_ADDRESS>:50000:50000"
    environment:
      JENKINS_OPTS: "--sessionTimeout=300"
    restart: "always"
    container_name: "jenkins"
    volumes:
      - "/opt/jenkins:/var/jenkins_home"
      - "/var/run/docker.sock:/var/run/docker.sock"
    networks:
      - selenoid

but now another error in the selenoid log
2019/02/27 14:50:08 [-] [NEW_REQUEST] [unknown] [<IP_ADDRESS>]
2019/02/27 14:50:08 [-] [NEW_REQUEST_ACCEPTED] [unknown] [<IP_ADDRESS>]
2019/02/27 14:50:08 [0] [LOCATING_SERVICE] [firefox] [latest]
2019/02/27 14:50:08 [0] [USING_DOCKER] [firefox] [latest]
2019/02/27 14:50:08 [0] [CREATING_CONTAINER] [selenoid/firefox]
2019/02/27 14:50:08 [0] [STARTING_CONTAINER] [selenoid/firefox] [5ba22c87853dc38b772e4ab89c50cdc7dcaa02a1f2d231366059d8be76978bb9]
2019/02/27 14:50:09 [0] [CONTAINER_STARTED] [selenoid/firefox] [5ba22c87853dc38b772e4ab89c50cdc7dcaa02a1f2d231366059d8be76978bb9] [0.94s]
2019/02/27 14:50:09 [0] [SERVICE_STARTED] [selenoid/firefox] [5ba22c87853dc38b772e4ab89c50cdc7dcaa02a1f2d231366059d8be76978bb9] [0.00s]
2019/02/27 14:50:09 [0] [PROXY_TO] [5ba22c87853dc38b772e4ab89c50cdc7dcaa02a1f2d231366059d8be76978bb9] [http://<IP_ADDRESS>:4444/wd/hub]
2019/02/27 14:50:09 [0] [SESSION_ATTEMPTED] [http://<IP_ADDRESS>:4444/wd/hub] [1]
2019/02/27 14:50:09 [0] [SESSION_FAILED] [http://<IP_ADDRESS>:4444/wd/hub] [400 Bad Request]
2019/02/27 14:50:09 [0] [REMOVING_CONTAINER] [5ba22c87853dc38b772e4ab89c50cdc7dcaa02a1f2d231366059d8be76978bb9]
2019/02/27 14:50:11 [0] [CONTAINER_REMOVED] [5ba22c87853dc38b772e4ab89c50cdc7dcaa02a1f2d231366059d8be76978bb9]

in log Jenkins
[ERROR] Tests run: 11, Failures: 1, Errors: 0, Skipped: 10, Time elapsed: 3.102 s <<< FAILURE! - in TestSuite
[ERROR] initDirever(ru.pwd.tests.FindErrorsTest)  Time elapsed: 2.996 s  <<< FAILURE!
org.openqa.selenium.WebDriverException:
Requested environment is not available (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 2.58 seconds
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:19:58.91Z'
System info: host: 'a992135dfa85', ip: '<IP_ADDRESS>', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-693.11.1.el7.x86_64', java.version: '1.8.0_181'
Driver info: driver.version: RemoteWebDriver

[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR]   FindErrorsTest>TestBase.initDirever:53 » WebDriver Requested environment is no...
[INFO]
[ERROR] Tests run: 11, Failures: 1, Errors: 0, Skipped: 10
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.158 s
[INFO] Finished at: 2019-02-27T14:50:11Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project obitests: There are test failures.
[ERROR]
[ERROR] Please refer to /var/jenkins_home/workspace/ObiTests/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
Build step 'Invoke top-level Maven targets' marked build as failure
TestNG Reports Processing: START
Looking for TestNG results report in workspace using pattern: **/testng-results.xml
Saving reports...
Processing '/var/jenkins_home/jobs/ObiTests/builds/41/testng/testng-results.xml'
TestNG Reports Processing: FINISH
Finished: FAILURE

what am I doing wrong?

@luisgarcia1010 this error Requested environment is not available means you have no such browser version (e.g. firefox latest) in your browsers.json.

@vania-pooh my file browsers.json
{
        "firefox": {
                "default": "latest",
                "versions": {
                        "latest": {
                                "image": "selenoid/firefox",
                                "port": "4444",
                                "path": "/wd/hub",
                                "tmpfs": {"/tmp":"size=512m"}
                        }
                }
        },
        "chrome": {
                "default": "latest",
                "versions": {
                        "latest": {
                                "image": "selenoid/chrome",
                                "port": "4444",
                                "tmpfs": {"/tmp":"size=512m"}
                        }
                }
        }
}

@luisgarcia1010 image references should exactly match what you have in images list. I would recommend to use concrete versions instead. E.g. use 65.0 and selenoid/firefox:65.0 as image.

@vania-pooh thanks for the answer, I have already corrected the browser version and the sessions began to be created, but vnc does not work
{
    "firefox": {
        "default": "57.0",
        "versions": {
            "57.0": {
                "image": "selenoid/vnc:firefox_57.0",
                "port": "4444",
                "path": "/wd/hub"
            }
        }
    }
}

in logs selenoid-ui
2019/02/27 22:28:34 [WS_PROXY] [/ws/logs/e30fc7e0-dacf-4d28-a912-9144f1c0467c] [ws://selenoid:4444/logs/e30fc7e0-dacf-4d28-a912-9144f1c0467c]
2019/02/27 22:28:34 websocketproxy: couldn't upgrade websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header
2019/02/27 22:28:34 [WS_PROXY] [/logs/e30fc7e0-dacf-4d28-a912-9144f1c0467c] [CLOSED]
2019/02/27 22:28:35 [WS_PROXY] [/ws/vnc/e30fc7e0-dacf-4d28-a912-9144f1c0467c] [ws://selenoid:4444/vnc/e30fc7e0-dacf-4d28-a912-9144f1c0467c]
2019/02/27 22:28:35 websocketproxy: couldn't upgrade websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header
2019/02/27 22:28:35 [WS_PROXY] [/vnc/e30fc7e0-dacf-4d28-a912-9144f1c0467c] [CLOSED]

when connecting, it writes a connection and then immediately disconnects, tell me how can I enable vnc through the docker-compose?

@luisgarcia1010 did you enable VNC with enableVNC = true capability?

@vania-pooh
DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setBrowserName("firefox");
        capabilities.setVersion("57.0");
        capabilities.setCapability("enableVNC", true);
        capabilities.setCapability("enableVideo", false);

I understand that I need to run selenoid from vnc if I run ./cm selenoid start --vnc, but how do I run it through docker-compose

in logs selenoid-ui
2019/02/28 10:40:43 [WS_PROXY] [/ws/logs/197ef404-4b77-4c8c-9921-ad7163e54d9e] [ws://selenoid:4444/logs/197ef404-4b77-4c8c-9921-ad7163e54d9e]
2019/02/28 10:40:43 websocketproxy: couldn't upgrade websocket: the client is not using the websocket protocol: 'upgrade' token not found in 'Connection' header
2019/02/28 10:40:43 [WS_PROXY] [/logs/197ef404-4b77-4c8c-9921-ad7163e54d9e] [CLOSED]

@luisgarcia1010 is Selenoid UI running behind Nginx or similar reverse proxy?

@vania-pooh yes nginx
location / {
                proxy_pass       http://<IP_ADDRESS>:8080;

                proxy_set_header X-Real-IP         $remote_addr;
                proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $host;

                proxy_read_timeout      300;
                proxy_connect_timeout   300;
                proxy_redirect          off;
        }

@luisgarcia1010 Selenoid UI is using SSE (server-sent events), so you have to correctly proxy it in Nginx (not sure about exact config). Respective API is /events.

@vania-pooh for nginx the config turned out to be
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
        ....
        location / {
                proxy_pass       http://<IP_ADDRESS>:8080;

                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
                proxy_set_header Host $host;
                proxy_buffering off;
        }
}

vnc is running :-)
thank you for help


Main container starts scrolling when table responsive

Whenever I exceed a certain number of columns, the mainscreen starts horizontal scrolling too! It isn't an issue with around 4-5 columns but when I am around 15-20 columns, the entire mainscreen container starts horizontal scrolling. Is there any way around this?

I am facing the same issue where the number of columns are large, and when I am editing data of a cell, the table scrolls to the initial position i.e first column.


tItems: Message sent but not implemented

PFSelectorWindow >> initializeWidgets
	"Private - See superimplementor's details "

	super initializeWidgets.
	self instantiateModels: #(
		itemsSelector 		SpcActionList
		itemsEditor 			SpcLabeledTextArea).

	self itemsSelector
		addActionBlock: [ self addItemRequest ];
		listCollectionClass: CTOrderedSet;
		label: self translator tItems

tItems does not exist anymore
Maybe it was renamed?

Note that these message sends to the translator are implemented in #addTranslationsForEN, #addTranslationsForES, etc.
So I'll ban the rule in the Manifest


filename passed to --external-art-filename is ignored and artist - album is used instead

I just ran get_cover_art --no-embed --art-dest-inline --art-size 9999 --external-art-filename xfolder.jpg --verbose expecting to see xfolder.jpg in all folders successfully processed.  The album covers were retrieved but rather than being named xfolder.jpg they all took the form of {artist} - {album}.jpg

--external-art-mode and --external-art-filename were implemented by another person and I still don't understand it very well. @SumnerH would you mind having a look?

Sure. I'm looking at this now, and I'm not sure if it should be considered a bug or not—I'm open to discussion about it.
Short answer: I believe that audiomuze wants the --art-dest-filename flag and not --external-art-filename, and that using that will fix their issue.
Longer answer:  --external-art-mode is meant to allow the use of images that you already have from another source, either in preference to fetching art or as a fallback if get_cover_art can't find something. It doesn't affect the name of fetched images at all.
Suppose that you have a bunch of albums in different directories, many of which have a cover.jpg but some don't.
You can use --external-art-filename cover.jpg --external-art-mode before to embed the existing cover.jpg images into each song (if they exist), and only fetch art when there is no local image file.  The --external-art-filename only affects the name of the file looked at for non-fetched images.
But when you're fetching an image, then the --art-dest-filename flag is what determines the name it's saved under.

So, yeah, @audiomuze please try --art-dest-filename instead and let us know whether that solves your issue.

@SumnerH, seems that in my haste I'd overlooked --art-dest-filename - all sorted.  Thanks!

Thanks all!  Closing this issue.


webpack resolve.root setup with 'cant find module' issue only on server side

This is a react project with webpack for bundling jsx file, and the folder tree is list as follows:
.
|-- app
|   |-- client.jsx
│   |-- components
|     | -- ArticleCommentListItem.jsx
|     | -- ArticleCommentListItemFooter.jsx
|-- server
|   | -- index.js
|-- webpack
|   |-- webpack.config.js

At first, File ArticleCommentListItem.jsx will invoke module ArticleCommentListItemFooter.jsx like below
import ArticleCommentListItemFooter from './ArticleCommentListItemFooter';

After reading the the answer from Alex Klibisz on Resolving require paths with webpack. I want to have a try to call module as format :
import ArticleCommentListItemFooter from 'components/ArticleCommentListItemFooter';

Then I setup in the webpack.config.js file
var webpack_config = {
  entry:{
    app: path.join(__dirname, '..', 'app', 'client')
  },
  output: {
    path: assetsPath,
    filename: '[name].js',
    publicPath: '/assets/'
  },
  resolve: {
    extensions: ['', '.js', '.jsx', '.scss', '.less'],
    root: path.resolve(__dirname, '..', 'app'),
    modulesDirectories: [
      'node_modules'
    ]
  }
}

Everything runs well when bundle client.jsx to app.js, but when I start server with command node server/index.js. It will exit with error
error: Cannot find module 'components/ArticleCommentListItemFooter'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:289:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/Users/ryu/Documents/git/react/react-blog/app/components/ArticleCommentListItem.jsx:21:37)
    at Module._compile (module.js:425:26)
    at loader (/Users/ryu/Documents/git/react/react-blog/node_modules/babel-register/lib/node.js:128:5)
    at Object.require.extensions.(anonymous function) [as .jsx] (/Users/ryu/Documents/git/react/react-blog/node_modules/babel-register/lib/node.js:138:7)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)

I have also tried to use resolve.alias for webpack.config setup, it still exit with the same error.
resolve: {
  extensions: ['', '.js', '.jsx', '.scss', '.less'],
  alias: {
    components: path.join(__dirname, '..', 'app', 'components')
  },
  modulesDirectories: [
    'node_modules', 'app'
  ]
}

It seems it could not work only on server side. I think it should be the server not aware of webpack config. You can refer to the project on link https://github.com/ryuever/redux-blog

Same issue in my machine.
npm webpack version is 1.12.14.
This issue makes so-called resolve.alias and resolve.root totally useless!!!

i have the some problem     the code not work
    resolve: {
      root: [ path.resolve('./src/app/common') ],
      extensions: ['', '.js']
    }

ERROR in ./src/app/app.js
Module not found: Error: Cannot resolve module 'base.js'

my webpack version is
"webpack": "^1.12.13",
"webpack-dev-server": "^1.14.1"
and i use win10 .

resolve.alias also not work

same issue here!

+1 for same issue

If you're going to be using paths that requiring resolving to a root (as per webpack config), then you can't expect node to know how to resolve this on require.
If you want to do this then you would need to webpack your server side to a bundle as well, and start that.

+1 😭

@tlivings: couldn't you set NODE_PATH for the server side code?

I somehow managed to solve this problem with this plugin.

should work with webpack@latest (probably you need target=node) . Feel free to report issue with reproducible repo, if not.


refactor(cloudtrail): Get S3 keys concurrently

What type of PR is this?
/kind cleanup
Any specific area of the project related to this PR?
/area plugins
What this PR does / why we need it:
To speed up the process of getting all the keys, divide the inputParams array into chunks and get the keys for each item in the chunk concurrently.
Special notes for your reviewer:
This should be my last commit for the time being. This means that version 0.12 can be released (after testing by third parties).

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: uhei
Once this PR has been reviewed and has the lgtm label, please assign mstemm for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

cc @LucaGuerra @Issif

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Issif, uhei
Once this PR has been reviewed and has the lgtm label, please assign mstemm for approval. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 5f7c416ca4b0ce1820b10a181c94ab5f748de484

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Issif, leogr, uhei
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Added checking 'scm.commit' before pushing scm payloads to field

This is for cases when jobs do not containt scm stuffs, I dont want to see a blank "Commit SHA1" & "Branch"

Good call, thanks @gnhuy91!


Structure Ruby SDK for i3s

Scenario/Intent
You need to structure Ruby SDK for implementation of resources and unit tests for i3s.
Environment Details

**OneView SDK Version: Future
**OneView Appliance Version: 300
**OneView Client API Version: 300
**Ruby Version: 2.2.3+
**Platform: w/e

Expected Result
Ruby SDK is structured for implementation of i3s.
Actual Result
Ruby SDK is not structured for implementation of i3s.

@aalexmonteiro , what do you suggest for a restructure?

@jsmartt  I've already implemented something simple, similar to what exists for other resources. But good suggestions are welcome. I created the OneViewSDK :: API300 :: ImageStreamer module, classes and unit tests, without implementation. If you want to check, you can see the branch feature/i3s_structure. Soon I will open the PR.


Fixes #241: Inconsistent hashing for nested api objects

Fixes #241
As proposed here: https://github.com/digitalocean/pynetbox/issues/241#issuecomment-643430226 I went with option 1.
Let me know if you see a different fix for this.

Hey @jsenecal, thanks for the PR. Going to merge this into a branch I've already got going with a slightly different approach to make the changes in PR #214 a little more elegant.

Hey, @jsenecal - Thanks a ton for this sweet PR! 😄
Would you please shoot me an email when you get a chance?
mcowley at digitalocean dot com 🎉


Getting raw coverage value

Thank you for a gread work! But I have a question.
Is there any way for posting raw coverage value to Slack?
This means, for example, not 12% but 12.45%.
Maybe I need an option to avoid below codes.
https://github.com/nakiostudio/xcov/blob/b4d00172e7277adae5f28f8fe36c19af33600499/lib/xcov/model/base.rb#L13-L17

Hi @ushisantoasobu 👋
There is no way of doing that right now, I will default to that 👍

Change included in 1.3.0 :)

@nakiostudio Thank you so much!!! 😄


TODO features

[x] More clear instructions to run the model
[x] Add completion feature (python)
[x] Add chat feature (python)
[x] Add samples folders with several examples
[x] Check the llama-cpp-python repo
[ ] Add batching infer feature (python)
[ ] Add quantization methods
[ ] Add server API support
[ ] Add more arguments to control the model (based on the libgemma interface)
[ ] Add the stream return for the completion function

@bachvudinh add features that you think we should do here

https://github.com/google/gemma.cpp/issues/52
I found the dicussion about the server implementation, would be awesome if we can make it in this repo also.

The server implementation from llama.cpp could be a rich resource for us to improve the examples:
https://github.com/ggerganov/llama.cpp/blob/master/examples/server/server.cpp

Thank you for the suggestion, @namtranase. I'll delve into their code to see if we can adapt their ideas for our project.

@bachvudinh @phamson02 any suggestions for new features/applications are welcome!

https://www.kaggle.com/competitions/data-assistants-with-gemma
Could be useful for gemma-cpp-python/examples!

add a feature like open ai api endpoint ...
I would like to have feature like this most probably using fast api

Thank you @omkar806 for comment this feature, we will check on it and maybe make a new release with it!


How to start with value from database (text)

If I have a text in my database (an HTML markup), how can I load it into this component?
I couldn't find documentation on how to convert it!

Thanks for using this component!
The MUIRichTextEditor component expects a stringified Draft.Model.Encoding.RawDraftContentState object, so you can do the following:
...
import { convertFromHTML, ContentState, convertToRaw } from 'draft-js'
import MUIRichTextEditor from '../../'

const sampleMarkup = 'Bold text, Italic text

Other text

Some link'

// 1. Convert the HTML
const contentHTML = convertFromHTML(sampleMarkup)

// 2. Create the ContentState object
const state = ContentState.createFromBlockArray(contentHTML.contentBlocks, contentHTML.entityMap)

// 3. Stringify `state` object from a Draft.Model.Encoding.RawDraftContentState object
const content = JSON.stringify(convertToRaw(state))

...

<MUIRichTextEditor
    value={content}
/>

I have updated the examples directory as well if you want to take a look. Hope this helps you out!

Oh, I see, It worked!
Thanks for the answer, and for updating the documentation :)

Sorry for bothering again @niuware !
Is there a way I can grab the final HTML content after the user has finished editing?
I see I can listen for each and every change (which gives me an object). I wanted to avoid having to parse it back to HTML on each keystroke just to be able to use it when the user clicks the "Finish" button. Any alternative?
Thanks once again :)

Hi @felipenmoura
You have several alternatives for the task you want to accomplish.

If you want to use an external button, please check the ref-save included example.

If you want to use the included onSave property, note that the handler will receive the stringified content state, so you will have to use convertFromRaw to first parse it into a ContentState object, and then treat it accordingly, in this case pass it to the plugin you want to use.

The last option is creating your own callback custom control so when the user clicks you can use the getCurrentContent method to get the ContentState and then use the plugin you want to use.

Hope one of this options helps you out!

Great, thanks, it helped a lot.

Ops, accidentally reopened the issue!


Translations not working at all

The 'Localization' key/section inside the localization json doesn't work. This worked with the old pi-samples libraries, but not with the new ones.
{
 ....
  "Localization": {
    "More info": "More info",
    "Message": "Message",
    "Click Me": "Click Me",
    "Button": "Button"
  }
}

@x7bit  I added a localization script - but the snippet you posted won't do anything, because nothing changed from source (left) to target (right).

Not sure what you mean... I just copied your strings into an es.json and set my machine's language to spanish - and it works just fine... (using the script provided - that doesn't even need the data-localize tag to work).
As far as the data-localize tag is concerned, I'll take another look tomorrow...

Sorry @tiptronic, my fault. In the inspector.js there is a comment that says:
/**
 * Provide window level functions to use in the external window
 * (this can be removed if the external window is not used)
 */

I thought that from there on down I could delete everything since my plugin has no external windows, and I had not noticed that the localization functions are at the bottom. I also thought that the form localization was something inherent to the library. Anyway, sorry for the misunderstanding.

@x7bit np - we're working on something much better... so just keep your [data-localize]  attributes intact and standby a little ;)

Thank you @tiptronic, I will stay tuned!


DRAFT: chore: upgrade node-sass and all js dependencies

Otherwise this would not build on a system without python2
but it breaks the upload ui O.o

@randombenj lets have a look at this next week

You mention the upload ui broken. This was actually broken by another commit. My PR #142 fixes that

Good call did not realize that - so i guess we need to fix this first
I'm not to sure about your fix you just made it run again right? this does not actually fix the problem?

TODO

[ ] There is a UX/UI problem still open
[ ] fixing the reverted commit

My proposed solution to have default on latest is this one: https://github.com/docat-org/docat/pull/142/commits/c8f94d7d23a9a1c7e9c5583ab7d750e83bce052a
Works but maybe it's not the most elegant

@galaplexus The problem is that we don't really assume any tag policy. By adding this redirect we start to assume a latest tag which might not be the case for certain docs.

I would suggest to redirect any calls on latest to the highest version according to the recent sorting: dc3d5ca
This is also a feature that would work for #40
I guess that would mean that we need to forbid the manual tagging of "latest". Backward compatibility?


⚠ Catalog API Endpoint has degraded performance

In 74795ca, Catalog API Endpoint (https://catalog.roblox.com/v1/bundles/details?bundleIds=192) experienced degraded performance:

HTTP code: 200
Response time: 3937 ms

Resolved: Catalog API Endpoint performance has improved in a557536.


Multiple GPUs one node inference

Hello,
I recently finetuned the Llama2 model with one node and multiple GPUS using the following command, aiming to adapt it to my own dataset:
torchrun --nnodes 1 --nproc_per_node 4 examples/finetuning.py --enable_fsdp --model_name /path_to_model_folder/7B --use_peft --peft_method lora --output_dir Path/to/save/PEFT/model

This process generated two files: adapter_config.json and adapter_model.safetensors. Could you please provide guidance on how to utilize these files for performing inference tasks?
Additionally, I've chosen to use LlamaforSequenceClassification for a Multiple Choice Question dataset, diverging from the LlamaforCasualLM used in your standard codebase. Will this modification be compatible with the finetuning and inference processes?
Thank you for your assistance!

@qianjyM you should be able to use this inference command to run inference on your. model, furthrer options for inference can be found here,
python examples/inference.py --model_name /path_to_model_folder/7B --peft_model output_dir

Hi! It seems that a solution has been provided to the issue and there has not been a follow-up conversation for a long time. I will close this issue for now and feel free to reopen it if you have any questions!


Get minified assets if debug is false.

Description
Almost same as #232 but load minified assets if debug is false.
Still gets 404 if you switch debug false to true after bin/cake bootstrap install.

It would be better to also modify TwbsAssetsTask::copyAssets() to copy minified as well as unminified files so that turning debug on/off does not create problems.

Looks good.


fix(sinsp): don't return invalid tinfos in clone events

This avoids a crash due to dereferencing a dangling pointer, in the rare case where parent thread_info is present but invalid
so the code deletes the object and tries to create a new one (get_thread_ref), but that function fails

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind design

/kind documentation

/kind failing-test

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area API-version

/area build

/area CI

/area driver-kmod

/area driver-bpf

/area driver-modern-bpf

/area libscap-engine-bpf

/area libscap-engine-gvisor

/area libscap-engine-kmod

/area libscap-engine-modern-bpf

/area libscap-engine-nodriver

/area libscap-engine-noop

/area libscap-engine-source-plugin

/area libscap-engine-savefile

/area libscap-engine-udig

/area libscap

/area libpman

/area libsinsp

/area tests

/area proposals

Does this PR require a change in the driver versions?

/version driver-API-version-major

/version driver-API-version-minor

/version driver-API-version-patch

/version driver-SCHEMA-version-major

/version driver-SCHEMA-version-minor

/version driver-SCHEMA-version-patch

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: gnosek
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [gnosek]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

cc @jcpittman144

Since this is a bugfix we can try to include it in the 0.10.0 release!
/milestone 0.10.0

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: FedeDP, gnosek
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [FedeDP,gnosek]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jcpittman144 were able to observe or reproduce with a sequence of events.
It would be excellent if, while you still remember the problematic case, we
could add a test in libsinsp/tests/events_...

It's been about a year, and I cannot remember the specific sequence of events.
It had to do with missing all CLONE and/or EXECVE exit events, due to the ARM
and/or zLinux kernel misbehavior.


Android : Load in stremio app not working

Hello,
I ve installed PMS on my Android TV with this guide : https://gist.github.com/sleeyax/e9635eb352a4fcdf94194f763d743689
Everything is working but when I try to load in app it does not work.
When I load in web, it works, I can see my apps, can install it but I have nothing on my app.
Can you help please ? :)
Thanks a lot !

Edit : I copy past http://<IP_ADDRESS>:7777/stremio-jackett-local/manifest.json on addon url in my stremio app android and it works. I can install Jackett.
BUT, Jackett seems to not work because i don't find any results from my trackers

This is more on an addon issue then a PMS issues. But Jackett works afaik, so it could even just be a Stremio Android issue.. (although i kind of doubt it's a Stremio issue)
Where are you running the Jackett app though? Did you set the URL to the Jackett app correctly in the Jackett addon's settings? And also the correct API KEY in the settings?

It's ok it works but it depends of links. Jackett and PMS are working both on my android TV
Even if there is a lot of seeders, some links doesn't work. Why?
Maybe a problem of cache ? I don't know. Thanks for your help

@chicungunya maybe check the comment from the jackett developer at this reddit post:
https://www.reddit.com/r/StremioAddons/comments/fvurek/jackett_addon_streams_not_loading/

Thank you ! I ll ask ! You can close the ticket !
About Android version do you know when a first version will be out ?

@chicungunya If you mean an android version for PMS.. Although I made some significant progress, I'm considering dropping it..
This is because:

it can't ever have the full abilities of the desktop app
there are many android vendors that kill background apps randomly: https://dontkillmyapp.com/

As PMS would be a background app, and it needs to be running in order to work, then it might not be worth the effort.
The guide of getting it working with Termux though would have the full abilities of PMS, so there's already a plus to using that method over an Android version.
I'm thinking more of maybe making a Raspberry Pi version, not sure yet..

I'm presuming this resolved and closing the issue


Add Slack invite link to simplify signup for new users

As discussed on Slack, we can use invitation link to simplify signup for new users.

I have not touched the same link in src/prirucka.pug as it doesn't look relevant for the signup use case.

@bobek thanks for the PR. Could you add the link to the English version as well? (en.pug)

@bobek thanks for the PR. Could you add the link to the English version as well? (en.pug)

Sure, no problem.


Error when opening xlsx file from OneDrive but not from other programs

Hello, I am trying to generate an xlsx file. When I generate it, I can open it with all software like LibreOffice Calc, but when I open it with OneDrive in Microsoft Office Excel, it gives me an error. I am using axlsx 2.0.1 and Ruby 2.7.1. Can someone help me?
The code I use (greatly simplified as a generic example) is this::
require 'axlsx'

Axlsx::Package.new do |p|
  p.use_shared_strings = true  # Asegúrate de que esta opción esté configurada
  p.use_autowidth = true  # Esta opción ajusta automáticamente el ancho de las columnas
  p.workbook.add_worksheet(name: 'Sheet1') do |sheet|
    sheet.add_row ['Name', 'Age', 'Gender']
    sheet.add_row ['name1', 'age1', 'gender1']
    sheet.add_row ['name2',' age2', 'gender2']
  end
  p.serialize('example.xlsx')
send_file 'example.xlsx'
end

@jordizg07  You'll want to use https://github.com/caxlsx/caxlsx instead, which is where all maintenance is happening.


Things look good for a 3.8 release

Some nice things have happened since version 3.7.1 was tagged. Maybe this is a good time for releasing 3.8?
I noted that there are some stale branches on the repository that can most likely be removed. In particular, I think caw, allow-extra-config, and i48 can safely be removed.

I've started the release notes in #607.

3.8 is out now - thanks for your contributions to it!


IR Assumption pass

Implements the assumption pass in the IR version of the compiler.

This needs more comments in the code to explain what's going on before we can merge it

Yep I was just working on that before I went to dinner 👍

Okay! Let me know when you want me to review it


Implementation of global trajectory metric

Dear authors, would you be willing to upload the implementation of RTE, ROE, and ERVE for testing the global trajectory?

I @zehongs , I am sorry for the delayed response. In the new version of the paper, we will update global metrics with more comprehensive and globally used ones including normalized root-translation error (RTE), foot sliding (FS), and jitter. Following this, we will update the lib/eval/evaluate_emdb.py with those new metrics.

Hi,
Tried the new update, i don't see any improvement in the foot sliding nor in the jitter, was it implemented ?
Thank you!


graal-sdk <IP_ADDRESS> has 6 vulnerabilities

The develop branch comes with graal-sdk <IP_ADDRESS>:
mvn dependency:tree -Dincludes=org.graalvm.sdk:graal-sdk

[INFO] com.intuit.karate:karate-core:jar:1.3.0-SNAPSHOT
[INFO] \- org.graalvm.js:js-scriptengine:jar:<IP_ADDRESS>:compile
[INFO]    \- org.graalvm.sdk:graal-sdk:jar:<IP_ADDRESS>:compile

Snyk reports 6 vulnerabilities for graal-sdk <IP_ADDRESS>:
https://security.snyk.io/package/maven/org.graalvm.sdk:graal-sdk/<IP_ADDRESS>

https://nvd.nist.gov/vuln/detail/CVE-2022-21434 Unsafe Reflection
https://nvd.nist.gov/vuln/detail/CVE-2022-21426 Denial of Service (DoS)
https://nvd.nist.gov/vuln/detail/CVE-2022-21443 Denial of Service (DoS)
https://nvd.nist.gov/vuln/detail/CVE-2022-21476 Information Exposure
https://nvd.nist.gov/vuln/detail/CVE-2022-21496 Improper Input Validation
https://nvd.nist.gov/vuln/detail/CVE-2022-21449 Access Restriction Bypass

Please upgrade to a fixed version of Graal.

duplicate of https://github.com/karatelabs/karate/issues/2009 - please comment there

@ptrthomas Hey, I don't think this was a duplicate.
The linked issue (that was fixed in 1.3.0 which was just released) is about migrating to 22.x branch. And this is, indeed, done. The thing is, that the version to which karate was migrated is still vulnerable, and those vulns are rather serious. Those listed by the original author are exactly in version <IP_ADDRESS> which is right now used in karate-junit5. So instead of closing it as duplicate, it should be fixed by upgrading to 22.1.0.

@lukasz-gosiewski if you read the complete thread, my understanding is that 22.1 requires us to move to Java 11. which is planned in this ticket - https://github.com/karatelabs/karate/issues/2083
you are welcome to contribute a PR to speed up the process

Sure thing, it's not like I wanted to put any pressure there. I just wanted to note that solving the linked issue will not solve this one, which is not obvious to anyone coming from outside.

@lukasz-gosiewski no worries, thanks for calling this out and I guess more people would be interested in this - so the details are clear now
since this sounds more serious than I thought, we will consider creating a java11 branch and releasing a 1.4.0.RC1 sooner - so that at least those with very strict security policies can move ahead

@ptrthomas Sounds perfect, as Snyk is reporting those vulns pretty aggressively. I've tired bumping graalvim manually but it won't work with karate-junit5 due to the compatibility issues (most probably the same that requires you to bump to java 11)

@lukasz-gosiewski one more thing, I was able to force-upgrade graal on one of my side-projects (and using junit5) so here's the pom for reference: https://github.com/ptrthomas/karate-oas-demo/blob/ac08c940888c9eca652eed3725320eff0352ad21/pom.xml#L20-L31

@ptrthomas I can't validate a thing built from source against our Snyk setup, but I have validated your way of enforcing graalvm dependencies and it works perfectly fine. Clears all the issues from Snyk and a dependency tree looks fine. Do you need me to validate anything more?

@lukasz-gosiewski great. and I was able to make a release to maven central. it has been a few minutes, so should be ready now.
decided to take this opportunity to test the whole release github action, docker and all. version is 1.4.0.RC1 - do let me know how it goes !

My system runs with Karate 1.3.0, Java 11 and Graal <IP_ADDRESS> (and Quarkus 2.11.3.Final)
Previously it didn't work if I upgraded Graal to 22.2.0 (which is what Quarkus needs in 2.12-2.14)
However, I just tested with Karate 1.4.0.RC1, Java 11 and Graal <IP_ADDRESS> (and Quarkus 2.14.0.Final) and it appears to work. I will continue to test with this combination. It is now Quarkus that is behind as I cannot upgrade to Graal 22.3.0 yet, but downgrading Graal doesn't appear to be an issue. This is a great step forwards and also reduces the number of vulnerabilities I have to analyze. The remaining ones brought in by Karate appear to be related to

org.yaml.snakeyaml-1.32
armeria-1.18.0
netty-tcnative-boringssl-static-2.0.54.Final-osx-x86_64.jar
However, I've superseded the first and don't use the vulnerable aspects of the others.

Thanks for releasing 1.4.0.RC1

@ptrthomas I just migrated to 1.4.0.RC1 and it works perfect. That was a really fast reaction, thank you!

thanks @edwardsph and @lukasz-gosiewski for the feedback !

an update for anyone landing here, we don't support the GraalVM which someone attempted here: https://github.com/karatelabs/karate/issues/2243
I guess the only option in this case is to use a separate maven project (or profile) to run your tests. unless anyone has better ideas cc @droger88

1.4.0 released


Consider running tRPC as it's own service.

Currently the tRPC api is deployed  with next using the app in apps/nextjs
For me, I found running tRPC in its own separated next app is much more intuitive.
Especially if you have multiple nextjs apps that use the same api, it can be hard to understand why it's implemented in one and not the others.
Both cal.com and Rallly uses this approach in their monorepo.
I'd be happy to create a PR if you agree this way is better.

That's added complexity for no reason. I get the argument when you have multiple apps but when you don't it doesn't make sense to me.

Both cal.com and Rallly uses this approach in their monorepo.

Well that's not true. Cal exposes their api from their web app.


Outstanding TODO comments in codebase

Description

In several instances of the codebase, many unimplemented functionalities are marked as TODO. This decreases the readability of the codebase.

Recommendation

We recommend implementing the required functionalities or resolving them for better code practices.

Made a ticket for the last outstanding TODO after we merge #88
https://github.com/onflow/hybrid-custody/issues/91


Optimization of WorkflowHistory: Enhanced Key Mappings and OS Adaptability

Dear Maintainer,
First and foremost, I'd like to express my gratitude for the diligent work you've put into this project. I observed that ComfyUI originally lacked the fundamental features of forward and backward operations. Considering these operations are often standard in many productivity tools, it was quite surprising. However, now, through your repository, we are able to bridge this gap and offer a more holistic experience for ComfyUI users.
Recently, I've taken a deep dive into the WorkflowHistory class and felt there's room for further refinements. Here's a summary of the changes I've implemented:
Normalized Key Mappings: Introduced a normalization function ensuring consistent handling of key combinations, thus enhancing the robustness of our key event handling.
Efficient System Type Check: Utilized a static property for a one-time system type evaluation, reducing overhead and promoting efficiency.
Refined Event Handling: Updated the keydown and keyup event listeners to handle repetitive key presses in a more nuanced and efficient manner.
Enhanced OS Adaptability: Adopted the normalization approach, laying a solid foundation for effortlessly adding more operating systems and their corresponding keyboard shortcuts in the future, offering a seamless experience for users.
The main objective behind this optimization is to make our extension more adaptable, especially when thinking about potentially supporting more operating systems in the future. I genuinely believe that these proposed changes will make our extension more adaptable and scalable.
I hope you'd consider integrating these suggestions into the main branch. I am confident that they will assist developers in contributing to and adapting this extension for a broader audience more directly.
Thank you again for your remarkable contribution, and I look forward to further collaboration.
Warm regards,

Hello @lcolok,
Your enhancement is very much appreciated.
Before merging, I just need a quick clarification:
“event.key” is replaced with “event.key.toLowerCase()”, with the exception of line 129. Is there some reason for this exception? I am under the supposition it was just an oversight, but if this is not the case please explain.
Best Regards

Hello,
Thank you for your feedback.
Regarding the event.key on line 129 that you pointed out, it indeed was an oversight on my part. It should be consistently converted to lowercase to maintain code uniformity. Additionally, to further ensure the robustness of the code, I have incorporated .toLowerCase() in the normalizeKeyCombination function, ensuring that the input keyCombination is always converted to lowercase. Such adjustments should greatly minimize unforeseen errors stemming from case discrepancies.
I have already made the above modifications. Thank you once again for your thorough review!
Best Regards,


README updates

Updating the README to explain what this repo is all about and why it's helpful.
TODO:

[x] Briefly highlight architecture
[x] installation & usage
[ ] review from @springmeyer & @GretaCB

Ready for a quick 👀 from @GretaCB and @springmeyer!


fix(console): add pretty format for 'last woken' time

Closes #524
How it looks after the change:

@yerke There is a failing clippy lint: https://github.com/tokio-rs/console/actions/runs/8036059766/job/21978892328?pr=529

@hds addressed.


grammy bot only works in aws-lambda node18.x

I ran the example in setups/aws-lambda folder, I found that grammy bot only works in aws-lambda nodejs18.x, it doesn't work in 20.x. Is it because grammy only supports node 18?

What do you mean by “not working?”


Store Helm indexes in JSON format

Closes #1172
Store helm indexes in JSON format for more efficient caching.
See linked issue above for more details.

Tested this change against two scenarios:

Having 50 HelmRepositories with one HelmChart each (based on the top 50 from ArtifactHub). Interval on all resources set to 5m.
Having 1 Helmrepository (the Bitnami full index at ~20MiB) with 50 charts. Interval on all resources set to 10m.

In both scenarios, memory improvements could be observed but the most significant ones were observed during scenario 2 (as can be expected based on the changes.
Scenario 1
Before

After

Scenario 2
Before

After

Improvement for scenario 2 is actually much better, as the memory consumption got suppressed by throttling of CPU. Actual consumption (while still running into CPU throttling) is more like this:

@somtochiama can you please squash your commits?


Mention Spring Security enabled by SCS Starters

Hi Ben, thanks for the PR.
Getting many questions about this? Does it mean people are trying to create their own config repos rather than using or forking the main one?


🚀 Feature: Use ESLint flat config

Bug Report Checklist

[X] I have tried restarting my IDE and the issue persists.
[X] I have pulled the latest main branch of the repository.
[X] I have searched for related issues and found none that matched my issue.

Overview
https://eslint.org/docs/latest/use/configure/configuration-files-new: ESLint's new "flat config" format is going to be the main -> only way to configure ESLint soon. So this template should use that!
Additional Info
Adding to the General Simplification milestone as it'd allow the repo to get rid of the .eslintignore file.
...and also marking this as blocked on typescript-eslint supporting ESLint flat config. Which we're still blocked on as of filing this issue. https://github.com/typescript-eslint/typescript-eslint/issues/7694

This is no longer blocked by typescript-eslint

Ha, you're right - thanks for the spot. Out of the plugins this depends on...

[x] @typescript-eslint
[ ] eslint-comments
[x] jsdoc
[ ] jsonc
[x] markdown
[x] n
[ ] package-json (oops, there's a PR already that I missed!)
[x] perfectionist
[x] regexp
[x] vitest
[ ] yml

...so it's still blocked - just on other plugins. I'll try to get to sending issues/PRs within the week or so for any that still need it.

Amazing, thanks for looking into each of the packages!

Thanks to a PR review from @voxpelli for the last one, eslint-comments, this is ready to do!

D'oh, I'd missed from the list that eslint-plugin-deprecation still needs it. Will draft a PR now but it will be blocked on that one.


Can this code act as Master side

As Title. the demo code is act as an slave, can this code read an A2L file, and read data from ecu?

i think you should use Canape to read data from the demo

Thank you, i want to record only a few messages through xcp, i have read some protocol, it's not very difficult to achive that right?  A CTO command is enough?

The code is designed for computer（linux and win platform）.if your code is running on the ecu, you should not use this code. You can download XCPbasic on the Vector web.i only use the Canape to read data and not try the CTO.
I only run the XCPLIte on the linux ,i want to use it to send message and calibrate on the ROS ,i  am trying it.

Thanks for your advice.


compose: Prepare compose box for adjustable info density.

This PR corrects for a number of issues that impact the compose box under user-selectable information density:

It sizes the collapsed compose buttons relatively for uniform sizing.
It converts to em units a critical height/min-height value in the recipient row.
It expresses compose-banner dimensions and layout relative to the base font-size in use.

Additionally, there is a small fix to prevent grid blowouts on the recipient box that was causing problems on screens narrower than ~400px.
Fixes all known info-density compose issues that aren't pill-related from #30359.

Screenshots and screen captures:

Small recipient box, before
Small recipient box, after

Banners, pills before
Banners, pills after (no change)
After, 16/140

Collapsed states, before
Collapsed states, after (subtle improvements in matching button heights)
After, 16/140

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Merged, thanks @karlstolley! I wish we didn't need to use so many weird em values here, but I see you have ideas for how to clean some of that up in a future pass, so I think not worth dwelling on until we've gotten through the main sweep.

Wholly agreed. I mean, most pixel-precise em values are weird, which is why I'm being meticulous about recording where they come from. But yes, future passes should enable some cleanup along these lines. Some of the pixel-perfect (and now em-perfect) stuff is actively fighting back against what grid and flexbox could do without having to get so specific about dimensions...but that's a bit of work to untangle properly and ensure no new regressions are introduced.


[1 of 2] Extract #getTaskEndpoints method to TaskUtil

This PR extracts the endpoint logic from MarathonTaskDetailsList#getTaskEndpoints into a method on TaskUtil so it can be used elsewhere.

Reviewer: @philipnrmn

Oh man, I have a competing PR here: https://github.com/dcos/dcos-ui/pull/683
What do you need this for?

@mlunoe We need to display the host in the TaskTable: https://cl.ly/0H2E1j1h3N3m/Screen Shot 2016-07-12 at 10.19.09 AM.png
I like that we are displaying the IP even if ports are undefined. Can you make this change to my method in TaskUtil?

@mlunoe And I discussed this offline; I'm going to make use of his methods once they are moved into TaskUtil. So this can't be merged until that happens :)

This is not necessary anymore :)


Support deleting a stall from a booth

It's rare, but someone got COVID and had to cancel.
AB#48

Closing and merging into https://github.com/keithamoss/demsausage/issues/1335


dep: solang-parser 0.2.2

Upgrade solang-parser to the latest release to enabled foundry upgrade

failing test unrelated, fixed in #2136


Filecoin.EthSubscribe

Blocked by https://github.com/ChainSafe/forest/issues/4740

Now blocked by https://github.com/ChainSafe/forest/issues/4851


install.sh uses CloudFront CDN for CLI installs

We (+@jpadams) have noticed slow-downs when installing via curl -L https://dl.dagger.io/dagger/install.sh | sh
This PR changes the base URL in install.sh from dagger-io.s3.amazonaws.com to dl.dagger.io
Since install.sh file was deleted part of https://github.com/dagger/dagger/commit/5a9c772020363668c18e73472534f01a5b03b8d5, this PR also adds it back. cc @aluzzardi
Next steps

[ ] One of the reviewers approves this PR
[ ] I update https://dl.dagger.io/dagger/install.sh

FTR https://github.com/dagger/dagger/pull/1819#issuecomment-1078511779

[ ] PR gets merged

I did setup dl.dagger.io a while back exactly for this. Not sure what happened and when it moved away.
LGTM

I don't see dl.dagger.io in install.sh from the first commit, which goes all the way back to May 2021: https://github.com/dagger/dagger/commits/46adf1fbd36cd8bd1052ed4e19f10f26df39540d/install.sh
This will definitely fix that! 💪

❯ curl -L https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin DAGGER_VERSION=0.8.0 sh

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  8674  100  8674    0     0   154k      0 --:--:-- --:--:-- --:--:--  172k
sh debug downloading files into /var/folders/z5/n5y08g4j073_ld2d9019j3_80000gn/T/tmp.8M98N6lbst
sh debug http_download https://dl.dagger.io/dagger/releases/0.8.0/dagger_v0.8.0_darwin_amd64.tar.gz
sh debug http_download https://dl.dagger.io/dagger/releases/0.8.0/checksums.txt
sh debug display shell completion instructions

dagger has built-in shell completion. This is how you can install it for:

  BASH:

    1. Ensure that you install bash-completion using your package manager.

    2. Add dagger completion to your personal bash completions dir

      mkdir -p /bash-completion/completions
      dagger completion bash > /bash-completion/completions/dagger

  ZSH:

    1. Generate a _dagger completion script and write it to a file within your $FPATH, e.g.:

      dagger completion zsh > /usr/local/share/zsh/site-functions/_dagger

    2. Ensure that the following is present in your ~/.zshrc:

      autoload -U compinit
      compinit -i

    zsh version 5.7 or later is recommended.

  FISH:

    1. Generate a dagger.fish completion script and write it to a file within fish completions, e.g.:

      dagger completion fish > ~/.config/fish/completions/dagger.fish

sh info installed /Users/gerhard/.local/bin/dagger


Support vector search?

Support vector search?
Ex: neo4j vector search https://neo4j.com/labs/genai-ecosystem/vector-search/

We are working on support vector usage in graph database. It is under construction with the support from the community.
#475 implements the float vector in the storage layer, which is just merged yesterday. @Jant1L is working on the index implemention for IVF_FLAT, HNSW, etc. Looking forward to your feedback if you are interested in the design detail.


Unable to prepare tempfiles: Assignment to constant variable.

My sync has been failing lately with the error: Unable to prepare tempfiles: Assignment to constant variable.
Everything else looks exactly the same - yaml files are the same, I tried updating to the latest version of this action but got the same error. Any chance of figuring out what is causing this error?

Thanks -- can you provide a stacktrace or a line number on which this occurs? I'm not finding a place where this Action attempts to reassign a const, but I may have missed something.

@peckjon this is what I see in the action log, with debug logging:
...
Writing docs/sql-reference/functions-reference/json-extract to /tmp/tmp-16882kKRqB4dQTo7/cards/docs_sql_reference_functions_reference_json_extract.yaml
Writing docs/sql-reference/functions-reference/extract to /tmp/tmp-16882kKRqB4dQTo7/cards/docs_sql_reference_functions_reference_extract.yaml
Error: Unable to prepare tempfiles: Assignment to constant variable.
--- PROCESSING BOARD DATA---
--- PROCESSING BOARDGROUP DATA ---
--- PROCESSING COLLECTION DATA---
Copying guru/collection.yaml to /tmp/tmp-16882kKRqB4dQTo7/collection.yaml
--- PROCESSING RESOURCES ---
...
Thank you for checking it out!


HAMT: Leaf like lightweight List implemented; Tuple2 objects removed

About 2 million objects removed

Current coverage is 90.94%

Merging #868 into master will decrease coverage by -0.01% as of 35cbcda

@@            master    #868   diff @@
======================================
  Files           80      80
  Stmts         8604    8644    +40
  Branches      1695    1705    +10
  Methods          0       0
======================================
+ Hit           7826    7861    +35
- Partial        208     211     +3
- Missed         570     572     +2

Review entire Coverage Diff as of 35cbcda

Powered by Codecov. Updated on successful CI builds.

Sounds great! I want to understand more about this optimization. Maybe I can apply similar things to other parts of Javaslang.
What was the test case / how do you test it? You mentioned @netzwerg's test. Which tool do you use to profile it?
How do you get the number of objects used? Is it the overall number of objects in memory or are we able to measure the objects in a dependency graph?

I use standard Oracle profiler Java VisualVM. Fortunately objects belonging to Vector are immediately visible in the list, because a lot of them.
Before my last two commits:

... and after

It's clear that before optimizations total size of all Vector's object is about 200MB (like @netzwerg says), and after is about 115 MB :smile:

Nice! Curious to see how memory consumption changes if we remove Lazy hashCode...

I'm afraid this change tragically decrease performance in some certain cases

Yes, it will. That's the trade between Memory and CPU.
Memory is more important when we take into account that huge Javaslang data structures are rarely used as Map keys. But Memory-Consumption is always present.

Theory and Practice...

Could you make a quick check how Lazy hashCode impacts our HAMT mem consumption? Should be a fast thing removing the Lazy instance var. Just to get a feeling...

And the LeafSingleton.hash field is removed, hash() { return Objects.hashCode(key); }


Stateless HTTP Indexing sources

Is your feature request related to a problem? Please describe.
We want to write data via the http endpoint and we have a very large amount of data and need to scale out indexing nodes.
The current Ingesting API is pretty good, but there are a few issues: this is a stateful endpoint, which requires queues to be maintained in local disk. when the http request returns a successful response, the data is not actually written to the index, but to the queue. If the node/disk hangs, the data is lost, but the client doesn't know that.
Describe the solution you'd like
Provide a stateless HTTP endpoint. which don't have local storage, once the handler received Indexing Request, handler just call the indexing flow and waiting for the result, then send the result to http client.
HTTP indexing source don't need to maintain the checkpoint, just indexing all the data in the request and then return the result.
Client--> Quickwit HTTP endpoint -> Handler--> indexing actor-> upload split-> send response to http client
Describe alternatives you've considered
Another option would be to replica the queues in current ingesting API, but this would be more complicated.

Thanks for the bug report, I created a similar issue here: https://github.com/quickwit-oss/quickwit/issues/1442
The approach to keep the connection alive may cause issues on some infrastructure, which is configured with a timeout. I think we could still provide it as a wrapper around the async api, with the caveat that it may timeout in some environments.

which is configured with a timeout

Agree with the configured timeout, If we configure the client side with larger timeout, by keeping the connection alive , this endpoint can be used quite simply.

The approach to keep the connection alive may cause issues on some infrastructure

Would you mind sharing the concerns?

@PSeitz   just curious, May I know why we choose to store the data in Rocksdb instead of creating an index and uploading it directly to S3?
I have read several related issues and can't find the objectives for storing the logs in local disk.

The data is temporarily persisted on local disk until the index is successfully uploaded to S3. When indexing errors happen, we can resume from the local data. Most databases use this technique to ensure the durability of data.

@guilload Thanks for your reply. I have worked storage engines and distributed storage system and I totally agree with the WAL technique for database.

When indexing errors happen, we can resume from the local data.

How often does this error occur? My understanding, if not often, it is fine to resend the HTTP request if an error occurs. And current implement can't provide durability of data because of the lack of replica. It would seem a simpler design if the indexer did not store this data and let the client wait for the results.

How often does this error occur?
Yes, rarely.

And current implement can't provide durability of data because of the lack of replica.
Yes. Our plan is to replicate the WAL eventually.

It would seem a simpler design if the indexer did not store this data and let the client wait for the results.
Not that simple unfortunately. You'd want to commit rather often to avoid having too much data at risk at any given time. However, committing often hurts the indexing throughput. In addition, in multitenant settings, we can't have too many indexing threads running at the same time.

I believe appending the data into a WAL is a solution with reasonable trade-offs. However, Quickwit needs to a few things better for this solution to work smoothly:

validate the data before WAL insert (verify that the index exists, records are valid JSON and match the index schema)
replicate the WAL

If you're talking about storing a log and then replicating the local state you're rapidly heading down the path of duplicating what Kafka already does. That replication is going to bring a ton of complexity and this doesn't strike me as something that Quickwit should really be doing.
I get that the current API seems simple as you can just dump data into it, but in reality it's not usable in the real world because writes are completely unacknowledged and there's no way to externally control flow into the API since it's completely unchecked and non-blocking. Put that in a high volume system and the indexing node will drown in data in no time and, as already mentioned, the loss of a node could lose huge amounts of data with no way to know what was and wasn't processed.
As far as an Async API goes, most of the issues above still apply plus you're going to have to introduce some kind of task concept and associated cluster wide state since status polling on the async task can hit any node in the cluster. I think Quickwit is going to require this in the future for other reasons but I don't think these REST API endpoints should be the catalyst.
As @sunisdown orginally suggested these REST APIs probably shouldn't be trying to queue the data, leave that to external systems. Just accept the request, block until the split is committed and then return an acknowledgement for the writes.
Yes that may end up with too many small splits but the concept for split merging already exists so I would think the answer to that lies in enhancements to that process. Also the API should allow larger single requests so that the end user can decide what amount of data they want to send to influence the split sizes.
Then the question just becomes whether the API treats the entire request atomically or if it accepts individual document failures and report errors independently. I'd think it would actually need an option for both.
Elasticsearch provides individual document failures and for truly high volume processes it's what you want as having an entire chunk of data rejected for one bad record is really problematic. That said though, Quickwit does have the advantage of being able to atomically write the entire split so it should be fairly easy to offer an option to do that too. That shouldn't be a requirement but in some scenarios it definitely could be useful.
The other issue is timeouts on blocking requests which will definitely happen but this is a controllable problem and something data teams are used to dealing with. You want your indexing to scale horizontally and control throughput based on the size of requests along with the concurrency of requests and not have any arbitrary bottlenecks in that process.

Yes that may end up with too many small splits but the concept for split merging already exists so I would think the answer to that lies in enhancements to that process.

cant agree more with this, the merging flow should merge the small splits in background, REST API only handle the ingest request and upload splits to S3(or some object storage system).

If you're talking about storing a log and then replicating the local state you're rapidly heading down the path of duplicating what Kafka already does.

the current Ingest API is not an Ingest API but a queue, ingest source consume the message from ingest API queue, Queue and Ingest API should be two different things. Quickwit can provide a queue and let users write data to the queue via http. But this should let the user know that it's a Queue API, the Ingest REST API should be lighter. After requesting the Ingest REST API, the user should know that the request failed or succeeded and that the data can be found from Quickwit, as @kstaken mentioned atomically.

The PushAPI has been introduced for users who want an alternative to cheaply index a small amount of application logs.
For large use case, Quickwit is meant to grab its data straight from Kafka/Kinesis/Pulsar etc.
I don't think a rest PushAPI that does not queue documents, produces a split right away and blocks until this is done is something someone with a lot of data would use. To maximize throughput this stateless endpoint would want to receive 1GB per pipeline every 30s. A rest push API does not seem suited. Producing smaller splits over smaller batch is possible but impacts write amplification and CPU usage.
We could have some kind of S3 source, where you upload ~1GB batches of logs on S3, and quickwit pulls the data from there, index it, and optionally remove the batch files.

I don't think a rest PushAPI that does not queue documents, produces a split right away and blocks until this is done is something someone with a lot of data would use.

There are a very large number of services that use HTTP APIs to provide services that write a lot of data, ElasticSearch/ Clickhouse/Snowflake are all there and HTTP can be used as a way to upload large amounts of data. It's just that the current quickwit PUSH API is not suitable for uploading large amounts of data.

Producing smaller splits over smaller batch is possible but impacts write amplification and CPU usage.

I believe users can find the right data size for each request. It's just that the data source is different, one is Kafka and one is HTTP, the batch size can be similar, and even to improve the small batch we can sacrifice latency by having the service maintain a write buffer and send it to the indexer in bulk to write to the same split, kind of like a queue, except that only when the split is written to S3 will a successful response be returned.

I'm sure you are familiar with all this, but there is no harm to be explicit/exhaustive.
Elastic PushAPI bulk api is not stateless per se. It has an internal queue. The difference with Quickwit is that it is properly replicated. You can optionally force a commit to do make something that from the outside behave like your stateless http indexing source, but

it still writes sequentially on the differnet replicas transaction log.
it is not the default
it will strongly impact your indexing throughput if your batch are small.
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-refresh.html

We could add support refresh=true or refresh=wait_for in quickwit, and increase the payload limit to 100MB.
I am not entirely sure this would be the best solution for your use case however.
Let's put name on the different possibilities.

Non-Replicated PushAPI (like Quickwit today): Bad Durability. If the disk is dead we can lose data.
Stateless PushAPI: Each push results in producing a split. This requires either large payloads OR an increased write amplification.
Non-replicated PushAPI + refresh=true. More or less the same trade-off as stateless PushAPI, but internally uses the plumbing of Non-replicated PushAPI, triggers a commit and wait for it.
Replicated PushAPI + refresh=true: That's interesting but it requires work, and this is considered low priority at the moment. One hidden benefit vs taping on kafka directly would be for efficiently handling many indexes.
Just use Kafka: By far the most efficient & production friendly solution.

Thanks for you replay @fulmicoton , let's ignore my own use case and focus on the endpoint. My use case is not mentioned in this issue. I didn't open this issue for my own use case, which of course might help, but more because I think Quickwit needed a similar endpoint for writing data atomically. That's why I'm opening an issue to discuss with you :)

Elastic PushAPI bulk api is not stateless per se. It has an internal queue. The difference with Quickwit is that it is properly replicated.

What attracted me to Quickwit was the stateless architecture, which allows for easy scale-up and scale-down. I know that Elastic is stateful, which also makes writing to it simple and straightforward, more like a storage system. Quickwit's write operations are more complex.
We know that a Stateless PushAPI is not a Silver Bullet, It has advantages, such as easy to use.
It also has disadvantages, such as performance issues when users are not familiar with quickwit. But we shouldn't let the potential problems stop us from offering similar options.
Does refresh=true mean to publish the split to S3?
In fact, in my opinion Non-replicated PushAPI + refesh=True is the same as Stateless PushAPI, the implementation behind it is different, but it is the same for the user, both are atomic commits.
If quickwit have refresh=ture, then we don't even need replica, replica is to prevent data from being lost. When the user sends a request for refesh=true, and if the request fails, the user can just send it again.
Replicated PushAPI is, as I understand it, a Queue, where the user submits, and quickwit ensures that the data is not lost, but there is no guarantee when the user will be able to query the data. It depends on when the indexer publishes split to S3. correct me if I'm wrong. @fulmicoton

refresh=true here  would mean:

trigger a commit
wait for all the pending docs to be published before returning.

Non-replicated PushAPI + refresh=true. More or less the same trade-off as stateless PushAPI, but internally uses the plumbing of Non-replicated PushAPI, triggers a commit and wait for it.

Noted with thanks.

I would elaborate on the "no-guarantee" part. The system can be configured to target a publish within a given interval (40s typically). This is not guaranteed however.

It seems that we need an atomic commit, either Stateless PushAPI or Non-Replicated Push API + refresh=true will work, at the moment I'm leaning towards Non-Replicated Push API + Refresh=true as this has a higher throughput than Stateless PushAPI.
There is also a need for a Replica PushAPI, which I would prefer to call Distributed Queue.

I don't think a rest PushAPI that does not queue documents, produces a split right away and blocks until this is done is something someone with a lot of data would use.

LOL, I'm jonesing for this ability. :-) Granted I only need it right now because the Kafka ingest is temporarily limited but to me it's an obvious thing that really should exist.
That said, I absolutely get what you're trying to accomplish with the current APIs and ease of use is clearly important but hopefully that can be achieved without gimping the system or encouraging bad practice from users and writing unchecked data in a non-blocking manner is absolutely a bad practice in my opinion. I have nightmares from having to explain the issues with that kind of thing to junior developers.
I have no major issue with the queueing it self, just with the lack of acknowledgement on writes and the inability to receive back pressure from the system to control an ingest pipeline.
So here's a suggestion for another model
Non-replicated PushAPI + queue=true/false + atomic=true/false.
By default queue=true, atomic=false making this a minimally blocking API that explicitly acknowledges all writes to the queue on a per document basis and enables per document failures without invalidating the entire request.
queue=true
it will block while validating and preparing the data before queueing it. The ackowledgement provided will be that it has been queued, not that it has been indexed. This will still allow independent and more optimized batching of data before the split is committed.
It's critical that the queue also have a size limit and this becomes a blocking call if the queue exceeds that limit. Once the queue has space then the request can proceed or it can timeout and be retried. The write to the queue will need to be atomic in regard to a single request so it will need space for the entire request, not just on a per record basis where it could be competing with other requests. This should provide adequate back pressure to control upstream pipelines.
In the short term the risks of data loss just need to be clearly documented along with the option to do queue=false and then long term that can be eased if queue replication is added.
queue=false
In this case the queue is not used, or a dedicated temporary queue is used, and the entire request is converted directly to a single split. This exists so you have an option to get a directly acknowledged write of a set of data. The call blocks until all processing of the split is complete and the split is committed.
This certainly has the risk of creating too many small splits if used carelessly but I'm assuming a future background process will exist in general to handle these scenarios.
atomic=false
Means each document is considered independently and can succeed or fail independently. The result from the request will need to include the acknowledgement about each document independently along with any failures.
atomic=true
Means that all the data in the request is valid and gets committed in a split or none of it does. This is false by default because the normal unit of atomicity here is a single record and it's a very special case to require the entire bulk request to succeed atomically.

An aside on Elasticsearch, indexing there is vastly more complicated and the internal architecture is so different from Quickwit that it's probably not worth wasting too much time on the details but a couple points may be worth mentioning.
First the queues in ES are in memory only and are not replicated like suggested above. They exist at the node level and are used to both hold incoming bulk requests and the results of the scatter process for the processing of those requests. This has a fundamentally different purpose than what the current Non-Replicated PushAPI is trying to do. That's probably more akin to the per shard transaction log that ES uses.
Second, the refresh setting isn't controlling the durability of the data, it's not a commit, it's simply controlling the visibility of the newly written data to search requests. It's really just a way to override the default index refresh interval in cases where you want to guarantee data is immediately available for reading.  If you don't provide the refresh parameter the writes will still be acknowledged once the value in wait_for_active_shards  is met but won't be made available for search until the next automatic refresh on the index. Again this doesn't really matter to Quickwit as it doesn't have this complexity and a split will simply become available to any query that starts after it has been marked Published.

An aside on Elasticsearch, indexing there is vastly more complicated and the internal architecture is so different from Quickwit that it's probably not worth wasting too much time on the details but a couple points may be worth mentioning.

Agreed! But I will still have to reply your message to make sure I don't look like a fool :)

That's probably more akin to the per-shard transaction log that ES uses.

I was talking about the per-shard transaction log. It is replicated on each replica.

Second, the refresh setting isn't controlling the durability of the data, it's not a commit, it's simply controlling the visibility of the newly written data to search requests.

It is not a commit in the normal database sense of the word, but it triggers a (soft)commit in Lucene/Tantivy.
Quickwit and Elastic want to make PushAPI calls durable while respecting the need for search building to be batchy.
Both do that by using a transaction log.
In elastic, that log is naturally replicated because elastic uses sharding/doc-replication scheme. It is difficult to imagine otherwise.
In quickwit, the data is written to disk but the log is not replicated yet.
"The data is written to disk" <- that statement itself would deserve its own discussion.
The plan to add replication there is closer to a kafka than elasticsearch.

In quickwit, the data is written to disk but the log is not replicated yet.
"The data is written to disk" <- that statement itself would deserve its own discussion.
The plan to add replication there is closer to a kafka than elasticsearch.

That would be great that if quickwit has a PUSH API closer to a kafka, which can help improve the write throughput.

It is not a commit in the normal database sense of the word, but it triggers a (soft)commit in Lucene/Tantivy.
Quickwit and Elastic want to make PushAPI calls durable while respecting the need for search building to be batchy.

That's the reason why I raise this API, I believe that Quickwit should provide an endpoint which is ACID supported.  At the moment I feel that the  replication push API only satisfies D.


Background color not exported in png

The method http://example.com/v1/networks/networkId/views/first.png does not seem to include the background color of the network. The following is an export using that function from a network with a red background:

This is how it looks like in Cytoscape:

If I export the network using Cytoscape directy (so not through REST), it renders correctly:

Fixed in 1.1.0.


Degrees array size not matching Coordinates

Hi @jni !
Thanks a lot for such a great and versatile library!
I am having some trouble understanding the fact that skan is returning an array size for skan_obj.degrees < skan_obj.coordinates
Having inspected the images, everything appears to be correct except that!
Here is the error I am getting after launching this code line:
for xyz in skan_skeleton.coordinates[skan_skeleton.degrees == 1]:          skeleton_bis[int(xyz[0])-2:int(xyz[0])+2, int(xyz[1])-2:int(xyz[1])+2, int(xyz[2])-2:int(xyz[2])+2] = 2
IndexError: boolean index did not match indexed array along dimension 0; dimension is 1986 but corresponding boolean dimension is 1985
Is there an explanation for this?
Many thanks again!

Thanks for the report @dzeego!
You're running into an issue that I am trying hard to fix in the next version: the coordinates contain a "dummy" value of 0, 0, 0 at the first (0th) position in the array. This is so that each skeleton pixel can directly index its corresponding coordinate (since background is 0, pixels start at 1).
To work around the issue, for now, do skan_skeleton.coordinates[1:][skan_skeleton.degrees == 1].
Does that help?


Tag component [NDS-35]

adds Tag component
adds Tag scss styling and tokens
adds color prop based on SystemColors and RoleColors

Closes #153.

Change aș per the design
By default button
Dismissable entire tag close
Added test cases

Change aș per the design

By default button
When dismissible and click anywhere in the tag getting close
When added link tag convert into span
Added test cases

@sh0ji Please review it


About bit

It is 16 bit color picker?

The readme isn't real clear, but a little investigation shows that getColor() returns an int that represents an ARGB color.  Since an int is typically 4 bytes, that's 32 bits.
	/**
	 * Get the currently selected color.
	 *
	 * @return The ARGB value of the currently selected color.
	 */
	public int getColor() {
		return mCenterNewColor;
	}


Feature Request: Use suggestions for batches of songs, albums, entire library

No issues to report, but it would just be more convenient if you could apply the google suggestions for track/album metadata to batches of albums, artists, or songs instead of going one by one.
OS:
Issue Descriptions:
Steps to Reproduce:

I don't believe this is possible, this is under a menu that we can't access, and if we could, accessing the songs, albums, and the entire library isn't something we can do via code. Sorry!


Adding basic launch script

Using classic (ugly?) patching to override config parameters from the launch script until we find a better way.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

For overriding parameters in a param file this worked for me:
  encoder_node = launch_ros.actions.Node(
    package="h264_video_encoder",
    node_executable="h264_video_encoder",
    node_name=launch.substitutions.LaunchConfiguration(NODE_NAME),
    parameters=[launch.substitutions.LaunchConfiguration(CONFIG),
    {"subscription_topic": "/other_topic"}]

Would this solve the problem here?

For overriding parameters in a param file this worked for me:
  encoder_node = launch_ros.actions.Node(
    package="h264_video_encoder",
    node_executable="h264_video_encoder",
    node_name=launch.substitutions.LaunchConfiguration(NODE_NAME),
    parameters=[launch.substitutions.LaunchConfiguration(CONFIG),
    {"subscription_topic": "/other_topic"}]

Would this solve the problem here?

Thanks, that solved the substitution problem, but only to a limited extent as the value I'm trying to override with is bigger than 128 bytes (trying to set the path of the kvs_log_configuration file).
The workaround I have now is to check whether the path is too long, if it's not - use it (override), and if it is too long - copy it to /tmp and use that. Let me know if you have any other ideas, that's a really awkward solution.

I wasn't aware of that limit, I guess this works for now


Added basic little spinner thing; refactored a bit

Added spinner thing to the submit button while waiting for results-- could be improved.
Refactored the client side code that handles the response from /sql to better handle empty responses.

I wasn't entirely sure what to do to make this commit merge-able.  I'll keep looking into it in the meantime.  This PR may close #21 if this is enough of a spinner.

Should have the merge conflicts resolved-- user error.

Awesome sauce!  Merging.


Empty data error cannot access reference

When retrieving data, the _load private method takes care of loading the data into memory. When the loaded data is empty it raises an error that the referenced layer does not contain data within the given extent. However, the _load method does not know what the original reference was.. :)

This is fixed now with the commits referenced above


Waterline encountered a fatal error when trying to perform the alter auto-migration strategy

It is very strange, I didn't change anything, except update the npm packages version, and then I try to enter console by sails console
Below things happens:
The adapter I use is "sails-mongo": "~0.10.0-rc2"
It seems that some action want to backup my database or duplicate the records.
Any clue for this?
See below info:
verbose: Starting ORM...
Waterline encountered a fatal error when trying to perform the `alter` auto-migration strategy.
In a couple of seconds, the data (cached in memory) will be logged to stdout.
(a failsafe put in place to preserve development data)

In the mean time, here's the error:

Error (E_UNKNOWN) :: Encountered an unexpected error:
MongoError: E11000 duplicate key error index: servant_development.user.$_id_  dup key: { : ObjectId('533b858431cebc67a0b49dd5') }
Details:
{ error: 'E_UNKNOWN',
  summary: 'Encountered an unexpected error',
  status: 500,
  raw: 'MongoError: E11000 duplicate key error index: servant_development.user.$_id_  dup key: { : ObjectId(\'533b858431cebc67a0b49dd5\') }' }

verbose: Grunt :: Running "clean:dev" (clean) task
verbose: Grunt :: Cleaning ".tmp/public"...
verbose: Grunt :: OK
verbose: Grunt :: Running "jst:dev" (jst) task
verbose: Grunt :: >> Destination not written because compiled files were empty.
verbose: Grunt :: Running "less:dev" (less) task
verbose: Grunt :: Running "copy:dev" (copy) task
verbose: Grunt :: Copied 5 files
verbose: Grunt :: Running "coffee:dev" (coffee) task
verbose: Grunt :: Running "sails-linker:devJs" (sails-linker) task
verbose: Grunt :: Running "sails-linker:devStyles" (sails-linker) task
verbose: Grunt :: Running "sails-linker:devTpl" (sails-linker) task
verbose: Grunt :: Running "watch" task
verbose: Grunt :: Waiting...
================================
Data backup:
================================

[ { username: 'shmily',
    email<EMAIL_ADDRESS>    name: 'Shmily',
    uuid: '3913500e-1332-480d-9713-4c52d4772622',
    status: 'active',
    createdAt: Wed Apr 02 2014 11:35:32 GMT+0800 (CST),
    updatedAt: Wed Apr 02 2014 11:35:32 GMT+0800 (CST),
    encrypted_password: '$2a$10$4yEDYyiWaRG6mkl1lDh9s.zH4umbbrr2BElwdt6GWzMjJ/nRjq62S',
    _id: { _bsontype: 'ObjectID', id: 'S;1Î¼g ´Õ' } },

Hey.
Sorry to bring up an old issue, but this is also happening to me...
I have migrate: 'safe' in my config/models.js set:
module.exports.models = {
  connection: 'postgresql',
  migrate: 'safe'

};

Is it because its models.js instead of model.js?
Im using sails.
Thanks.


Balance of Satoshis bonus guide problem

I'm stuck at the beginning of the BoS bonus guide.
as "admin" I can receive Alex Bosworth's keys to verify.
as "bos", it doesnt work.
No keyserver with user "bos" ?
simple problem?

weird, it fixed itself a few hours later with a second attempt.
?!


[Task]: Sort currency at settings menu

Reported by the community, discuss if needed when desktop doesnt implement this kind of sorting


Fix zhipu reponse 404

Issue

Closes #
Change

General checklist

[ ] There are no breaking changes
[ ] I have added unit and integration tests for my change
[ ] I have manually run all the unit and integration tests in the module I have added/changed, and they are all green
[ ] I have manually run all the unit and integration tests in the core and main modules, and they are all green

[ ] I have added/updated the documentation
[ ] I have added an example in the examples repo (only for "big" features)
[ ] I have added/updated Spring Boot starter(s) (if applicable)

Checklist for adding new maven module

[ ] I have added my new module in the root pom.xml and langchain4j-bom/pom.xml

Checklist for adding new embedding store integration

[ ] I have added a {NameOfIntegration}EmbeddingStoreIT that extends from either EmbeddingStoreIT or EmbeddingStoreWithFilteringIT
[ ] I have added a {NameOfIntegration}EmbeddingStoreRemovalIT that extends from EmbeddingStoreWithRemovalIT

Checklist for changing existing embedding store integration

[ ] I have manually verified that the {NameOfIntegration}EmbeddingStore works correctly with the data persisted using the latest released version of LangChain4j

@kunge2013 thank you! I am closing this PR as the proposed solution does not seem right. Feel free to reopen if you will have another one


Option key + F1/F2

Very nice app. Works very well. Thank you for that.
I noticed that option+F1/F2 would not open the display options in the system preferences like it normally would, but instead trigger brightness. Would it be possible to not catch that event and let it do the default behavior? Same for volume control (option+F10/F11/12)
Thank you!

There is an open Pull Request for this #168


Automatic updation of Copyright Year

Prerequisites:
Hey @shriya030
I would like to add automatic updation of footer copyright year.
At present code we need to change everytime.
Please assign it to me.
Thanks

[ ] I checked to make sure that this issue has not already been filed.

[ ] I'm reporting the issue to the correct repository (for multi-repository projects) (optional)

Expected Behavior:
Please describe the behavior you are expecting.
Current Behavior:
What is the current behavior?
Solution:
Please describe what will you do to solve this issue or your approach to solve this issue.
Screenshots (optional):

@Shaishav0507 Start working on this issue after #20 is resolved.

@Shaishav0507 Assigned!


Current version and documentation mismatch fix

Updated documented version to current 2.1.0 from 1.8.1 as the breaking changes to DataSourceFactory make the documentation incorrect

Thanks @acidbluebriggs !  Change looks good. OK signing the CLA?

Hmmm, it shows I signed it:
You have agreed to the CLA for target/lite-for-jdbc

Version: 2020-12-08

Is this a webhook "order of operations" issue?


NR-41180: Marketing changes

https://issues.newrelic.com/browse/NR-41180
This PR:

Disables the click from the New Relic logo in the header when utm_medium is set.
Hides the header navigation when utm_medium is set
Adds the entire urlParams object to instrumentation for install button.

@aswanson-nr I had some issues with prettier formatting the parens in ways that broke the logic but i think it should be ready to go


CLI: Add support for passing in raw data in pyimg4 img4 create

Add in arguments for passing raw data, fourcc, description, and compression.

Done in https://github.com/m1stadev/PyIMG4/commit/df5e98f9f90f5a59e502bb27a52a697cff96caec.


fix quicli warning

warning: use of deprecated item 'quicli::prelude::Error::causes': please use the 'iter_chain()' method instead
   --> src/main.rs:66:1
    |
66  | / main!(|_cli: Cli| {
67  | |     let args: Args = match Cli::from_args() {
68  | |         Cli::Generate(args) => args,
69  | |         Cli::Gen(args) => args,
...   |
114 | |     );
115 | | });
    | |___^
    |
    = note: #[warn(deprecated)] on by default
    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)

blocked by new quicli release containing https://github.com/killercup/quicli/pull/88

oh word. i just have a PR with a cargo update and now i get this deprecation warning. good to know!

I just checked the code and I don't see where we use causes in the main macro...
Is it related to the imported quicli crate version?

@k0pernicus you are probably looking at source of quicli master :) I'm sorry, I still have to release a new version. I wanted it to contain a few other things but then it slipped my mind… I'll re-add it to my todo list and will comment here when it's done. (Otherwise, ping me relentlessly!)

@killercup Thank you for the update :)

just pinged @killercup on this and it should be happening today. @k0pernicus are you interested in taking this issue? let me know!

@ashleygwilliams I am :)

@ashleygwilliams @k0pernicus here you go: https://crates.io/crates/quicli/0.3.1

Thanks @killercup.
I will update the library in less than 1 hour ;)

closed by #105


Removing broken hyperlink

removed hyperlink from "An example" in the statement An example of this approach is a small container running logrotate periodically. However, it's recommended to use stdout and stderr directly and leave rotation and retention policies to the kubelet.
This fix is for issue #13656

Closing this due to CLA issue


feat: Auto-select first payment option in checkout

Add functionality to select the first payment option whenever the payment component mounts and the end-user has not made a selection on their own. Ensuring that once an end-user has picked an option that is the option that is selected should the end-user exit the Payment page, and then return.
Screenshots

Resolves: https://github.com/OriginProtocol/dshop/issues/502

Yeah, looks good to me. Thanks for the PR @theprivileges :)