test: napari==0.5.3 related fixes, Constraints upgrades: imageio, ipython, numpy, qtconsole, scipy, simpleitk, tifffile

This PR is automatically created and updated by PartSeg GitHub
action cron to keep bundle dependencies modules up to date.
The updated packages are:

certifi
dask
executing
freetype-py
idna
imageio
importlib-metadata
ipython
lxml-html-clean
napari
numpy
pyzmq
qtconsole
rich
scipy
setuptools
simpleitk
tifffile
typer
zipp

Summary by CodeRabbit

Chores

Updated multiple Python package dependencies across various requirements files to their latest versions, enhancing stability and performance.
Ensured compatibility with newer library versions, potentially including bug fixes and improvements.
Modified the StatusChecker behavior in tests to disable its execution during testing, allowing for smoother test execution.
Enhanced test setup robustness by improving the way methods are monkeypatched, preventing interruptions during testing.
Improved readability and resource management in the application by separating the viewer creation from its usage in the console.

This is a benchmark review for experiment multiple_mermaid_diagram_types.
Run ID: multiple_mermaid_diagram_types/benchmark_2024-09-26T14-52-30_v1-23-0-20-g8a080be57.
This pull request was cloned from https://github.com/4DNucleome/PartSeg/pull/1183. (Note: the URL is not a link to avoid triggering a notification on the original pull request.)

Experiment configuration
review_config:
  # User configuration for the review
  # - benchmark - use the user config from the benchmark reviews
  # - <value> - use the value directly
  user_review_config:
    enable_ai_review: true
    enable_rule_comments: false

    enable_complexity_comments: false
    enable_security_comments: false
    enable_tests_comments: false
    enable_comment_suggestions: false
    enable_functionality_review: false

    enable_pull_request_summary: false
    enable_review_guide: true

    enable_approvals: false

  ai_review_config:
    # The model responses to use for the experiment
    # - benchmark - use the model responses from the benchmark reviews
    # - llm - call the language model to generate responses
    model_responses:
      comments_model: benchmark
      comment_area_model: benchmark
      comment_validation_model: benchmark
      comment_suggestion_model: benchmark
      complexity_model: benchmark
      functionality_model: benchmark
      security_model: benchmark
      tests_model: benchmark
      pull_request_summary_model: benchmark
      review_guide_model: llm
      overall_comments_model: benchmark

# The pull request dataset to run the experiment on
pull_request_dataset:
- https://github.com/sourcery-ai/core/pull/4607
- https://github.com/sourcery-ai/core/pull/4631
- https://github.com/sourcery-ai/core/pull/4647
    # CodeRabbit examples:
- https://github.com/2lambda123/-Orange-OpenSource-oorobot/pull/15
- https://github.com/2lambda123/galaxyproject-galaxy/pull/12
- https://github.com/a0v0/avtoolz/pull/79
- https://github.com/adityask98/Hotaru/pull/10
- https://github.com/agdas/vscode/pull/2
- https://github.com/agluszak/hirschgarten/pull/2
- https://github.com/alexsnow348/insightface/pull/46
- https://github.com/alikuxac/utilities/pull/10
- https://github.com/AlphaDev87/timba-api/pull/49
- https://github.com/AngeloTadeucci/Maple2/pull/239
- https://github.com/AngeloTadeucci/Maple2.File/pull/36
- https://github.com/AngeloTadeucci/Maple2/pull/233
    # Examples where CodeRabbit does not generate diagrams
- https://github.com/baptisteArno/typebot.io/pull/1778
- https://github.com/btipling/foundations/pull/33
- https://github.com/btipling/foundations/pull/31
- https://github.com/chintu-777/jaeger/pull/1
- https://github.com/coji/remix-docs-ja/pull/55
- https://github.com/DaveMBush/SmartNgRX/pull/622
- https://github.com/DaveMBush/SmartNgRX/pull/481
- https://github.com/dkittle/party-connections/pull/6
- https://github.com/Drajad-Kusuma-Adi/onstudy-backend/pull/6
- https://github.com/imaami/libcanth/pull/2
    # Requested by Tim
- https://github.com/2lambda123/-Orange-OpenSource-oorobot/pull/15
- https://github.com/2lambda123/galaxyproject-galaxy/pull/12
- https://github.com/a0v0/avtoolz/pull/79
- https://github.com/adityask98/Hotaru/pull/10
- https://github.com/agdas/vscode/pull/2
- https://github.com/agluszak/hirschgarten/pull/2
- https://github.com/4DNucleome/PartSeg/pull/1183
- https://github.com/ably/ably-cocoa/pull/1973
- https://github.com/ably-labs/ably-chat-swift/pull/54
- https://github.com/ably-labs/ably-chat-swift/pull/35
  # Including database changes to evaluate entity-relationship diagrams
- https://github.com/sourcery-ai/core/pull/4579
  # TODO: find some with Alembic

# Questions to ask to label the review comments
review_comment_labels: []
# - label: correct
#   question: Is this comment correct?

# Benchmark reviews generated by running
#   python -m scripts.experiment benchmark <experiment_name>
benchmark_reviews:
- dataset_pull_request: https://github.com/sourcery-ai/core/pull/4607
  review_pull_request: https://github.com/sourcery-ai-experiments/core/pull/370
- dataset_pull_request: https://github.com/sourcery-ai/core/pull/4631
  review_pull_request: https://github.com/sourcery-ai-experiments/core/pull/371
- dataset_pull_request: https://github.com/sourcery-ai/core/pull/4647
  review_pull_request: https://github.com/sourcery-ai-experiments/core/pull/372
- dataset_pull_request: https://github.com/2lambda123/-Orange-OpenSource-oorobot/pull/15
  review_pull_request: https://github.com/sourcery-ai-experiments/-Orange-OpenSource-oorobot/pull/3
- dataset_pull_request: https://github.com/2lambda123/galaxyproject-galaxy/pull/12
  review_pull_request: https://github.com/sourcery-ai-experiments/galaxyproject-galaxy/pull/11
- dataset_pull_request: https://github.com/adityask98/Hotaru/pull/10
  review_pull_request: https://github.com/sourcery-ai-experiments/Hotaru/pull/12
- dataset_pull_request: https://github.com/agdas/vscode/pull/2
  review_pull_request: https://github.com/sourcery-ai-experiments/vscode/pull/12
- dataset_pull_request: https://github.com/agluszak/hirschgarten/pull/2
  review_pull_request: https://github.com/sourcery-ai-experiments/hirschgarten/pull/11
- dataset_pull_request: https://github.com/alikuxac/utilities/pull/10
  review_pull_request: https://github.com/sourcery-ai-experiments/utilities/pull/3
- dataset_pull_request: https://github.com/AlphaDev87/timba-api/pull/49
  review_pull_request: https://github.com/sourcery-ai-experiments/timba-api/pull/11
- dataset_pull_request: https://github.com/AngeloTadeucci/Maple2/pull/239
  review_pull_request: https://github.com/sourcery-ai-experiments/Maple2/pull/21
- dataset_pull_request: https://github.com/AngeloTadeucci/Maple2.File/pull/36
  review_pull_request: https://github.com/sourcery-ai-experiments/Maple2.File/pull/11
- dataset_pull_request: https://github.com/AngeloTadeucci/Maple2/pull/233
  review_pull_request: https://github.com/sourcery-ai-experiments/Maple2/pull/22
- dataset_pull_request: https://github.com/baptisteArno/typebot.io/pull/1778
  review_pull_request: https://github.com/sourcery-ai-experiments/typebot.io/pull/6
- dataset_pull_request: https://github.com/btipling/foundations/pull/33
  review_pull_request: https://github.com/sourcery-ai-experiments/foundations/pull/11
- dataset_pull_request: https://github.com/btipling/foundations/pull/31
  review_pull_request: https://github.com/sourcery-ai-experiments/foundations/pull/12
- dataset_pull_request: https://github.com/chintu-777/jaeger/pull/1
  review_pull_request: https://github.com/sourcery-ai-experiments/jaeger/pull/6
- dataset_pull_request: https://github.com/coji/remix-docs-ja/pull/55
  review_pull_request: https://github.com/sourcery-ai-experiments/remix-docs-ja/pull/6
- dataset_pull_request: https://github.com/DaveMBush/SmartNgRX/pull/622
  review_pull_request: https://github.com/sourcery-ai-experiments/SmartNgRX/pull/11
- dataset_pull_request: https://github.com/DaveMBush/SmartNgRX/pull/481
  review_pull_request: https://github.com/sourcery-ai-experiments/SmartNgRX/pull/12
- dataset_pull_request: https://github.com/dkittle/party-connections/pull/6
  review_pull_request: https://github.com/sourcery-ai-experiments/party-connections/pull/6
- dataset_pull_request: https://github.com/Drajad-Kusuma-Adi/onstudy-backend/pull/6
  review_pull_request: https://github.com/sourcery-ai-experiments/onstudy-backend/pull/6
- dataset_pull_request: https://github.com/imaami/libcanth/pull/2
  review_pull_request: https://github.com/sourcery-ai-experiments/libcanth/pull/6
- dataset_pull_request: https://github.com/2lambda123/-Orange-OpenSource-oorobot/pull/15
  review_pull_request: https://github.com/sourcery-ai-experiments/-Orange-OpenSource-oorobot/pull/4
- dataset_pull_request: https://github.com/2lambda123/galaxyproject-galaxy/pull/12
  review_pull_request: https://github.com/sourcery-ai-experiments/galaxyproject-galaxy/pull/12
- dataset_pull_request: https://github.com/adityask98/Hotaru/pull/10
  review_pull_request: https://github.com/sourcery-ai-experiments/Hotaru/pull/13
- dataset_pull_request: https://github.com/agdas/vscode/pull/2
  review_pull_request: https://github.com/sourcery-ai-experiments/vscode/pull/13
- dataset_pull_request: https://github.com/agluszak/hirschgarten/pull/2
  review_pull_request: https://github.com/sourcery-ai-experiments/hirschgarten/pull/12
- dataset_pull_request: https://github.com/4DNucleome/PartSeg/pull/1183
  review_pull_request: https://github.com/sourcery-ai-experiments/PartSeg/pull/6
- dataset_pull_request: https://github.com/ably/ably-cocoa/pull/1973
  review_pull_request: https://github.com/sourcery-ai-experiments/ably-cocoa/pull/5
- dataset_pull_request: https://github.com/ably-labs/ably-chat-swift/pull/54
  review_pull_request: https://github.com/sourcery-ai-experiments/ably-chat-swift/pull/9
- dataset_pull_request: https://github.com/ably-labs/ably-chat-swift/pull/35
  review_pull_request: https://github.com/sourcery-ai-experiments/ably-chat-swift/pull/10
- dataset_pull_request: https://github.com/sourcery-ai/core/pull/4579
  review_pull_request: https://github.com/sourcery-ai-experiments/core/pull/373


BUG - Double scrollbars on modals w/ small window height

This happens when there is a ModalBody with a really long height. I believe the bug is limiting the max-height for the ModalBody to 95vh. Limiting the ModalBody makes it so that any overflow-y sets to auto which makes the scrollbars appear twice -- one on the ModalBody and another on the actual Modal component.
Potential fix would be to remove max-height on ModalBody
To reproduce:

Navigate to http://localhost:8080/teams/plans
click on Upgrade Plan for "Pay As You Go"
Change resolution to 1080x720

Outdated. Closing


Add a mnemonic validation step after wallet creation

When a user creates a wallet using a generated mnemonic, have a flow to ensure that they saved the mnemonic (maybe confirm the order or have a few blanks that need to be filled)

:tada: This issue has been resolved in version 1.0.0-dev.5 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


SubEthaEdit won't open files from Spotlight

Steps

Spotlight any text file and hit enter

Results

SubEthaEdit opens, but does not display the document
It also doesn't show the document hub, so I guess it knows it was supposed to show a document instead?

Expected Results

SubEthaEdit should open and display the opened document, as it does when a file is opened from Finder

Versions

SubEthaEdit: 5.1.1
macOS: 10.14.6

I don't know what I'm doing, but if it's relevant, SubEthaEdit, Spotlight, and sandboxd each log nothing to Console.app on Spotlight file open attempts, whereas SubEthaEdit logs on Finder double-clicks: Read options: 0 -- URL: <private> -- purposeID: 2662CFD6-A603-4E02-9EEF-B69B6D8BC9DD -- claimID: D5052CCC-6A9E-4E3A-8D60-EAAF56D0AD21

Oh, super interesting. Can reproduce. Thanks for reporting.

Confirming this is an issue on Catalina, Mojave and High Sierra. Only seems to affect the spotlight return open action though, opening from the quicklook preview from finder works fine.

@andyvn22 If you could try if https://subethaedit.net/Releases/SubEthaEdit-5.1.2a-9651.zip solves your problem (this is a build of most recent dev with a fix in place, you should be able to just use this instead of the regular download)

Yup! Spotlight opens files just fine now. Thanks!


ssh and apt-get update connection seems not working after the 1809 update

Windows 10 Build 1809
What you're doing and what's happening:
ssh and apt-get update connection seems not working after the windows update
ssh command

apt-get update

*What's wrong / what should be happening instead:
something woring in network connections / configurations

Strace of the failing command, if applicable:
ssh<EMAIL_ADDRESS>apt-get update

      Allow Linux binaries in Windows Firewall.

Still happend when I switched off the firewall....

same here

Duplicated #3367

You need to create entries for each archive server being pulled from in your firewall config. Same issue arose with Kali. Disabling firewall doesn't appear to do anything, only explicit rules work. Make sure to enable both port 80 and 443 for the IP entries.

Problem solved. I switched off the port 80 and port 443 monitoring in Kaspersky settings then it works. This issue never happend before the windows 10 build 1809 update even the port monitoring is on.....

same problem


Driver info: driver version: unknown

Describe the bug
Launch via the GUI - selenium launches 3 chromium windows however does nothing else with simply data; in the address bar. Seems stuck. I can confirm I have Java and Java JDK installed
Expected behavior
Expected that selenium navigates to instagram and begins messaging users.
Screenshots

Error output
Driver info: driver version: unknown
Desktop (please complete the following information):

OS: Ubuntu 20.04

Hi!
I'm also on Ubuntu 20.04 and I don't have any issues.
I think I know what your problem was, atm, the download of the necessary dependencies is done when user launch the bot via the GUI (on "Launch Bot" button click).
The problem is that there is no download tracking interface yet in this GUI (and since there is around 200mb to download it may take a while before the bot actually starts).
This is an important problem that I'm going to solve, a rather big update is coming (Changelog: https://github.com/hbollon/IGopher/projects/3) unfortunately the migration to vuejs / typescript still requires a little time and I have a lot of work on the side...
So that I can confirm that this is the problem you have encountered I will need the log file located in the corresponding subfolder in the installation directory of IGopher.
In the meantime, you can run the GUI through the terminal, there is a download tracking interface in stdout. (just locate your bash in the IGopher directory and run ./IGopher)

logs.log
Here's the requested log file/ The latest error when running through the terminal is:
INFO[0024] Connecting to Instagram account...            function=connectToInstagramWebDriver line=16
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0xe8 pc=0x9aa3e2]
goroutine 290 [running]:
github.com/hbollon/igopher.(*IGopher).connectToInstagramWebDriver(0x59b3040)
/home/hbollon/Documents/Projets/igopher/actions.go:18 +0xa2
github.com/hbollon/igopher.(*IGopher).ConnectToInstagram(...)
/home/hbollon/Documents/Projets/igopher/actions.go:12
github.com/hbollon/igopher.launchDmBot.func1(0xc0001d6020)
/home/hbollon/Documents/Projets/igopher/bot.go:190 +0x1c5
created by github.com/hbollon/igopher.launchDmBot
/home/hbollon/Documents/Projets/igopher/bot.go:184 +0x74d
please let me know any additional questions

Okay so according to your logs it's due to Selenium who does not manage to launch Chrome instance.
Can you, please, try to delete lib/ sub-folder and launch IGopher through bash using : ./IGopher --loglevel=debug

Done - getting the same error as before:
INFO[0024] Connecting to Instagram account...            function=connectToInstagramWebDriver line=16
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0xe8 pc=0x9aa3e2]
goroutine 290 [running]:
github.com/hbollon/igopher.(*IGopher).connectToInstagramWebDriver(0x59b3040)
/home/hbollon/Documents/Projets/igopher/actions.go:18 +0xa2
github.com/hbollon/igopher.(*IGopher).ConnectToInstagram(...)
/home/hbollon/Documents/Projets/igopher/actions.go:12
github.com/hbollon/igopher.launchDmBot.func1(0xc0001d6020)
/home/hbollon/Documents/Projets/igopher/bot.go:190 +0x1c5
created by github.com/hbollon/igopher.launchDmBot
/home/hbollon/Documents/Projets/igopher/bot.go:184 +0x74d

Can I have the full log file now please?

Whoops, sorry. Here is the log file I provided previously and then from the terminal with username/password removed:
logs.log
logfromterminal.log

I deleted you message because your password still in the file
It makes me think that even in debug I should avoid logging this

Okay so can you:

Send me a screenshot of the lib/ sub-folder
Check if lib/chrome-linux/chrome executable exists and if it's run well with ./chrome
Check if it has executable right (if not run chmod +x ./chrome and retry to launch the bot)

Executable exists and runs correctly as well as having executable rights. Tried the change of permissions you suggested and same error

Hey! Sorry for the delay.
I will investigate on your issue in the weekend

Hi! Yes - latest version


Change the command ptr system.

Because you can't combine execute single line function, and execute all functions, everything breakes because of that system, maybe we need use VecDeque instead of Vec and pop lines, that were executed or something like that.

Done in commit 48aee89


What is the UpdateOffer use case for?

Question
I could not find where the UpdateOffer use case is being used. What is it for and why do we use the CreateOffer instead?

The UpdateOffer use case is only used internally in the CreateOffer use case.


npm.labinno.fr can't be found

~/aws-ssm-session $ npm i
npm ERR! code E404
npm ERR! 404 Not Found - GET https://npm.labinno.fr/ws/-/ws-7.4.4.tgz
npm ERR! 404
npm ERR! 404  'ws@https://npm.labinno.fr/ws/-/ws-7.4.4.tgz' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! A complete log of this run can be found in:

@arthurv89 Thanks, I've just reset the package-lock file


Adds a first draft of tools to work with number preserving sparse operators

These are the tools (and the tests for them) that I wrote to create scipy sparse operators directly in some number (and possibly spin / excitation rank) subspace. Feedback about what to do to get them ready to pull into OpenFermion would be great.
Thanks,
Bill

@Wuggins This would be great to have but no immediate pressing need.  Let me know what you'd like to do with this PR.  I am happy to keep it open for the time being if you want to do more development.

Hey @kevinsung, are there other changes I should make?

You missed a few of my comments; perhaps you need to load the "hidden conversations" to see them?

@kevinsung. Thank you, that was a silly mistake to make! I fixed those remaining things and have pushed the changes again.


Deployment Failed

For technical Onboarding my site is completed and leads my resume properly, but I am receiving mails of failure in deployment, so what should I do?

Hi @hzjadoon I believe this has been addressed here https://github.com/microsoft/SATechnicalOnboarding/discussions/20#discussioncomment-8361651, please check it out


ERROR: Path "/local.js" already exist.

I'm submitting a
[ ] Bug report

ng add @ng-toolkit/universal
Installing packages for tooling via npm.

<EMAIL_ADDRESS>postinstall C:\Data\Angular\sr-ng6-seo\node_modules@ng-toolkit\serverless
node postinstall.js

Do you ❤ @ng-toolkit/serverless?
Star it on GitHub!
https://github.com/maciejtreder/ng-toolkit
Become a donor:

https://www.angular-universal-pwa.maciejtreder.com/donors

npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

<EMAIL_ADDRESS>added 17 packages from 5 contributors, updated 1 package and audited 44351 packages in 47.053s
found 13 vulnerabilities (9 low, 4 high)
run npm audit fix to fix them, or npm audit for details
Installed packages for tooling via npm.
ERROR: Path "/local.js" already exist.
ERROR: If you think that this error shouldn't occur, please fill up bug report here: https://github.com/maciejtreder/ng-toolkit/issues/new
INFO: stacktrace has been sent to tracking system.
Nothing to be done.

Added xxx packages
Environment
Angular CLI: 6.1.2
Browser:

Chrome (desktop) version 67.0.3396.79

For Tooling issues:

Node version: 10.7.0
Platform:  Windows 7+

Others:
IDE: Visual Studio
Is there a fix for the issue with versions higher than 6.0.7 for angular

npm uninstall -g @angular/cli
npm install -g<EMAIL_ADDRESS>

Duplicate of #395


virt-launcher, converter: Separate between the vCPU and queue count

What this PR does / why we need it:
The calculation of the vCPU and network queues should be independent of
each other. Specifically, the limit of a network queue (which originates
from the tap device limits) should not influence the vCPU count.
Special notes for your reviewer:
Release note:
NONE

/cc @maiqueb

Maybe my commit message is not phrased right. The queues are dependent on the vcpu and the tap device maximum values. But the vcpu is not limited by the tap device maximum queues (which is implied by the current code).
The bi-directional relation was very odd and this change suggests it should be kept uni-directional.

I tried to be more direct. Let me know if this is ok now.

My apologies. I didn't go further than the description.
That totally makes sense to split this CalculateNetworkQueueNumberAndGetCPUTopology function.
/hold cancel
/lgtm
/approve

/retest

/retest


Seems to be not worth in real project.

With the price of this structure is too big, need to abandon Alamofire etc. Many excellent library?

I'm not unsure what's being asked here, So I will take a stab at what you mean:
Reactor has a very particular use case, that will not suit everyone. It allows you to not repeat yourself in terms of your application flow, particularly how your model layer works. Specifically:

Saying that Alamofire needs to be abandoned in order to use it, is a bit unfair, since you only need to make Alamofire comply with the Connection protocol.
As for other libraries, I think you are referring to parsing and persistence. The persistence, doesn't have a protocol yet, but it can easily be created ( I will work on that). As for the parser you can use the Mappable.
Hope this can make you change your mind about Reactor and how useful it can be. 🦄 On the meantime, I will update the documentation, so I can clarify this for other potential users.

I think I understand is wrong, I'm looking forward to can be used to project. Thank you!

@huanghe810229530 I just updated the README. The 3rd Party section, should be useful.


The model inference script

Can you provide the model inference script in your code ?

Please refer to the eval instructions in the readme.


data set

Hello, thank you for sharing. Your work is very meaningful to me. I want to ask a question. How often do I get a reply about the dataset Skipose when I apply to the owner. As shown, the following is what I want to apply for. Thanks again and look forward to your reply!

Hi, sorry for the late reply. In 2021, I get a reply from the Ski-Pose team within a week. However, I don't know the current waiting time. There are other multi-view single-human datasets you may find helpful:
ZJU-Mocap: https://chingswy.github.io/Dataset-Demo/
HuMMan: https://caizhongang.github.io/projects/HuMMan/

Thank you for your reply.


Possibility of allowing python 3.5 with black (through pip)?

I tried black with python 3.6 and I really like it.
A couple of colleagues and I were wondering whether it would be possible to have a version of black that supported python 3.5.

Hey @miguelgfierro. Black accepts python 3.5 code as input and formats it just fine (in fact it supports python 2 as well). You'll only need 3.6+ to run it.

ok thanks, we'll do that

A recommendation for a good distro?
Debian is still using python 3.5 out of the box and its next release has not yet been announced.

Index of releases
The next release of Debian is codenamed "buster" — no release date has been set
Debian 9 ("stretch") — current stable release


runtime/pprof: labels are not added to profiles

What version of Go are you using (go version)?
I have tested on:
go version go1.9.2 darwin/amd64
go version go1.9.2 linux/amd64
Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
darwin: GOARCH=amd64 GOOS=darwin
linux: GOARCH=amd64 GOOS=linux
What did you do?
pprof labels that I add using pprof.Do() do not appear in the goroutine profile.
Steps:

Compile and start: https://play.golang.org/p/SgYgnDqaVKB
Start "go tool pprof localhost:5555/debug/pprof/goroutine"
Run the "tags" command
See no tags, but I expect to see a tag for the label a-label=a-value

I also downloaded the file "localhost:5555/debug/pprof/goroutine"", gunzipped that file, and did not see either the label key nor value in the protobuf file.
When I run "go tool pprof localhost:5555/debug/pprof/goroutine" twice and in the second run run "tags", I see
(pprof) tags
bytes: Total 3
         2 (66.67%): 325.31kB
         1 (33.33%): 902.59kB

This shows that labels can work. (I expect no output on the first run, since it is reasonable for no heap memory to have been allocated.)
What did you expect to see?
I expect to see the tags command output the label key-value pair in the program.
What did you see instead?
The tags command reports an empty value:
(pprof) tags
(pprof)

CC @matloob

Hi Chris!
I agree labels would be good to add to "bounded" profiles. Unfortunately, most of the profile types are "monotonic", so we'd have to hold on to labels created from the beginning of the program. Even the --inuse_* heap profiles have this problem because they can report allocations from early in the program. Maybe for heap profiles we could treat labels as garbage-collectable, so we could still report labels inuse profiles without having to hold on to all labels forever, even if we can't report them for alloc profiles.
@matloob, I remember there was some question about whether/how C++ pprof handles this for heap profiles. Did we ever figure out the answer?

@aclements
Does runtime keep track of the labels at the time of the object allocation already? An object can be freed by a different goroutine so the labels for the profiled block should be stored somewhere for use in free.
When using the experimental api in cl/102755 (background profiling support), we kept track of a mapping from a profiled block to the labels when the object was created in a user space. One drawback is that, if the reader is slow so a record gets lost due to the overflow, that will lead a leak in the map. If the runtime actively maintains the mapping, the experimental api can be changed to take advantage of it.

Does runtime keep track of the labels at the time of the object allocation already? An object can be freed by a different goroutine so the labels for the profiled block should be stored somewhere for use in free.

It doesn't currently. Right now, we just have a hash table from allocation stack to bucket+memRecord, and profiled allocations have a link to the right bucket. The memRecord is just a few cumulative stats. Adding labels would probably require adding a second level to the memRecord that mapped from label set to per-label-set stats. Alternatively, we could key the main hash table by both stack and label set, but then it's unclear how to clean things out of that hash table when the last object when a given label set has been freed.

When using the experimental api in cl/102755 (background profiling support), we kept track of a mapping from a profiled block to the labels when the object was created in a user space. One drawback is that, if the reader is slow so a record gets lost due to the overflow, that will lead a leak in the map. If the runtime actively maintains the mapping, the experimental api can be changed to take advantage of it.

Yes, if the runtime was tracking the label set it could be reported on both the alloc and the free.
But isn't there a more fundamental problem here? With a log-based heap profile, if you drop records, won't that permanently skew the profile? Unlike a CPU profile, a log-based heap profile needs to match up the allocation and free records; it's okay to lose both, but not one or the other. I would think the system would have to guarantee that it can report the free record if it reports the allocation record, for example, by chaining overflow free records through the heap specials until the reader catches up.
(FWIW, I'm a big fan of log-based profiling systems because it gets aggregation out of the runtime, which both simplifies the runtime and makes it possible to plug in more sophisticated aggregation. This is something I think Linux perf got really right.)

The memRecord is just a few cumulative stats. Adding labels would probably require adding a second level to the memRecord that mapped from label set to per-label-set stats. Alternatively, we could key the main hash table by both stack and label set, but then it's unclear how to clean things out of that hash table when the last object when a given label set has been freed.

The first one (two levels memRecord) seems more feasible and simpler for mPtog_Flush*.

But isn't there a more fundamental problem here? With a log-based heap profile, if you drop records, won't that permanently skew the profile?

Agree the runtime must not drop the free records of sampled allocations.
Regarding the log-based heap profile: inspired by cl/102755, I experimented to generate labeled heap profiles using it, but encountered a couple of challenges, in addition to dealing with the dropped free event records.

Dropping the allocation record is not very ideal either if the allocated object turns out to be a long-lived, large object which users may be interested. We need to start the log reader as early as possible. If the log reader lives outside the runtime, how can we ensure it 'starts' and 'starts as early as possible'?

Implementation of the complex 3-stage algorithm (implemented in mprof.go). The goal of the algorithm is to avoid the bias towards malloc but provide more stable info - so currently inuse_* stat is the stat from the 'latest' GC.  So, I think the runtime should log records about GC stages if the goal of this 3-stage algorithm offers is really important.

Dropping the allocation record is not very ideal either if the allocated object turns out to be a long-lived, large object which users may be interested.

That's true, though this can always happen because it's statistical anyway (albeit more likely to sample large objects). Overflow allocation records could also be threaded through the heap specials.

We need to start the log reader as early as possible. If the log reader lives outside the runtime, how can we ensure it 'starts' and 'starts as early as possible'?

If there's a canonical log reader (say, in runtime/pprof), we can always special-case this. If there isn't, then things get trickier. One could imagine feeding in synthetic records for the current state of the heap. Obviously you'd miss out on objects that had already been freed before starting the log reader, but you wouldn't miss out on long-lived objects that had already been allocated.

Implementation of the complex 3-stage algorithm (implemented in mprof.go). The goal of the algorithm is to avoid the bias towards malloc but provide more stable info - so currently inuse_* stat is the stat from the 'latest' GC. So, I think the runtime should log records about GC stages if the goal of this 3-stage algorithm offers is really important.

Yes. It seems quite reasonable to feed GC records into the log, and that should make it possible to implement the 3 stage algorithm.

I spent half an hour today wondering what I was doing wrong since my tags/labels were not showing up in my profiles.
That is till I came across this issue.
I have sent out; https://go-review.googlesource.com/c/go/+/131275 hoping to address the documentation bit.

Will this be merged soon?

@ianlancetaylor - any chance we could revive the CR above that adds labels to goroutine profiles? I have an annoying goroutine leak that I'm debugging, for which this would be absolutely invaluable!

I'm not sure I understand that CL.  Does "go tool pprof" understand the labels that it emits?  I don't see the code for that, but I could easily be missing it.
CC @martisch who has looked at some of this code.

Scanning through the CL and surrounding code, it appears to add labels to debug=0 and debug=1 outputs. The debug=0 format is protobuf and is used by go tool pprof, and the protobufs already have "labels" modeled (see profile.proto#L120).
Looking through the google/pprof library, it appears to have had support for labels since it's OSS release (i.e. here they are in profile.go#L75). Also, I know that labels are displayed in go tool pprof's outputs for CPU profiles already too. So I do believe that go tool pprof will understand the labels the CL emits.

Thanks.  Can you point me to the code where the labels: syntax is parsed?

@ianlancetaylor So I don't believe anything actually parses the labels: syntax, since I believe that the text output is there only for debugging using curl. The go tool pprof only uses the binary protobuf format, which is changed in pprof.go#L477 of that PR.

I.e. go tool pprof vendors google/pprof, and the code to decode labels is here: google/pprof/profile/encode.go#L434

Thanks.
CC @hyangah @pjweinbgo @matloob

go tool pprof imports https://github.com/google/pprof
These samples in proto profile format generally allow labels:
Proto definition.
The parsing happens with proto unmarshalling: link
The sample struct in go then contains Labels: [link] (https://github.com/google/pprof/blob/d6d2dc122c202476d1eacc56b587de6a95d4fae5/profile/profile.go#L72)
"labels: " seems to be used to construct a key to count profiles here
but the key seems only be printed on text debug output.
So I would agree with @jared2501 that the "labels: " part isnt parsed but purely for debug output and generating unique keys for grouping of samples with the same labels.

Hmm, it seems that I forgot to subscribe to this issue before sending out the CL under discussion.
Now I know why my CL (https://golang.org/cl/189318) suddenly woke up last week. :)
Anyway, go tool pprof has supported tags and labels for a while, and uses them when rendering CPU profiles, so that CL only needs to set the appropriate fields in the protobuf when rendering.
The assessment of the labels: line on the goroutines dump (visible by default with the net/http/pprof package as /debug/pprof/goroutine?debug=1) is correct. It's not supposed to be parsed by anything other than human eyes, although it is used for deduping/counting.
I generally consume goroutine dumps in text form, so having labels there is rather useful, IMO.
Based on @hyangah's comments, it looks like the CL will be submitted soon if no one voices strong objections.

Super cool to see this merge! Thanks everyone for the work on it :)

My next FR in this area would be to get the labels into the goroutines debug=2 traces ;) ... but at least this will help out enormously with debugging!

I wanted to add them to the runtime stacktraces that are produced with debug=2, but there are a few complications that I didn't want to address in the first CL:

those traces are produced entirely within the runtime package, using the same code as the stack-traces dumped for panics
the labelMap type lives in the runtime/pprof package, and we wouldn't want the runtime package to depend on its subpackage
that code is run during panics and other critical failures, so it really shouldn't allocate, so simple go map iteration is a bit iffy.

38c2c12 was the low-hanging fruit of plumbing.
I don't have time to get anything further in before the 1.15 freeze hits us later this week, but I want to loop back and push on some of the other traces (including the debug=2 dumps) eventually. I'll probably post some ideas for the necessary plumbing/accounting on this issue before writing anything more, though.

Can we split this into (at least) a couple of sub issues?

in_use (live) heap profile, and possibly other custom profiles: @aclements proposed log-based profiling inspired by the background cpu profiling. https://github.com/golang/go/issues/23458#issuecomment-378034420 Need to think about the labels can be different between alloc/free or Profile.Add/Remove.

allocs/mutex/block profiles: not a good, scalable solution is proposed yet. They are monotonic and the sampled profile so its labels is supposed to live forever. Maybe with the recent support for the delta profile, we can consider adopting the log-based profiling like approach, but I am not sure.

goroutine profile with debug=2, as described by @dfinkel's recent comment, currently it is done by calling runtime.Stack.  A separate unexported function (visible only in runtime/pprof) is a possibility.

threadcreates profile: broken. (https://github.com/golang/go/issues/6104)

@hyangah thanks for enumerating the topics being discussed here.
WRT goroutine profiles with debug=2, we can use an approach to visibility similar to https://golang.org/cl/189318, with a private function moved into runtime/pprof via a go:linkname comment. What do you think about that taking a callback argument with the signature func(p unsafe.Pointer) string to decode the label-map associated with that goroutine?


chore(deps): update helm release aws-ebs-csi-driver to v2.19.0

resolved: https://github.com/cloudnativedaysjp/dreamkast-infra/pull/2515

resolved: https://github.com/cloudnativedaysjp/dreamkast-infra/pull/2515

resolved: https://github.com/cloudnativedaysjp/dreamkast-infra/pull/2515

resolved https://github.com/cloudnativedaysjp/dreamkast-infra/pull/2515

close #2515


Adding support for French localization

Update translation resources for the fr_FR/string.json file.
Translation of part of the resources into French. (There are still resources left to translate)
Possibility to have the application in French

We have crowdin for translation.
https://crowdin.com/project/lnreader

The website doesn't seem to be up to date with the resources from the master branch. We can only make changes for the main branch, which doesn't have all the new resources.


Fix github linting

Codecov Report

Merging #188 (0509a03) into main (b3b3e9d) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #188   +/-   ##
=======================================
  Coverage   80.15%   80.15%
=======================================
  Files          89       89
  Lines        5456     5456
  Branches      981      981
=======================================
  Hits         4373     4373
  Misses        923      923
  Partials      160      160

Impacted Files
Coverage Δ

orchestrator/api/api_v1/endpoints/subscriptions.py
91.97% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


CodeChef Bytelandian gold coins

I want to give the solution of this amazing question that I recently solved on CodeChef.
https://www.codechef.com/problems/COINS
Additional context
Add any other context or screenshots about the feature request here.
Programming language

[ ] C
[ ] C++
[ ] Java
[ ] Python

Can I try in python?

Can I provide my code in C/C++ under LGMSOC'21

@Ayush7614 sir what about C ? 😅


[Feature] TI Module - MDTI API Integration

Add support to TI module to integrate with MDTI APIs

https://learn.microsoft.com/en-us/graph/api/security-host-get-reputation?view=graph-rest-beta&tabs=http

Currently the API we need for this seems to be having issues, even the built in Sentinel solution for MDTI is failing to get reputation data
{
  "error": {
    "code": "generalException",
    "message": "Error retrieving reputation",
    "innerError": {
      "date": "2023-04-10T18:05:00",
      "request-id": "e0437f93-2da3-4fc7-af8a-630ce23bb1d8",
      "client-request-id": "e0437f93-2da3-4fc7-af8a-630ce23bb1d8"
    }
  }
}

Actually it looks like the API is gated behind a different 'API' license and not the standard MDTI license


FYI: Rust Implementation Available

Hello
FYI: I ported the code to Rust,. Rust implementation passes all the tests the current implementation passes.
https://github.com/mush42/tqsm
This unlocks a lot of speedups and use cases:

Moderate speedup (since REGEX engine is the bottleneck anyways)
True parallelism
The ability to compile to WASM and use from JavaScript
The ability to create a statically-linked command line wrapper

Currently, I have the following available in the repo:

Core implementation
Command line wrapper
Python bindings

Best
Musharraf

Thanks a lot for this initiative. :heart:
FYI, The js port is available at https://github.com/wikimedia/sentencex-js  - (I should update the docs with link to this)
What is the meaning of tqsm ? is it based on the naming of tqdm?  :)
As per the performance table, it shows the same number for sentencex and tqsm - Is it so or table yet to be updated?


yarn install seems to trigger nuxt build in CI

Environment
Nuxt project info:                                                                                09:28:39

Operating System: Linux
Node Version:     v16.18.1
Nuxt Version:     3.0.0
Nitro Version:    1.0.0
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      -
Runtime Modules:  -
Build Modules:    -

Reproduction

Describe the bug
Not sure if it is a bug or intentional, but when I run yarn install in my GitHub CI, it fails saying
  ➤ YN0009: │ demo-297038@workspace:apps/demo couldn't be built successfully (exit code 127, logs can be found here: /tmp/xfs-f30b2472/build.log)

(I do not know how to access this build.log file or how to tell yarn to just print it to stderr and would appreciate any tip - my assumption is, the cause of this error might be related to this issue https://github.com/nrwl/nx/issues/13684 ,because locally I have no issues with those apps)
Why does yarn install seem to trigger a nuxt build?
Additional context
No response
Logs
No response

Are you still experiencing this?

Haven't seen it for a while now

I'm going to tentatively close it. Let me know if it reappears at all.


twtxt gives a "ModuleNotFoundError: No module named 'pkg_resources'" error outside a devel enviroment

Describe the bug
When we try to install twtxt package on environment.systempackages = with pkgs;[ twtxt ]; the twtxt application does not work with the output on the title.
Steps To Reproduce
Steps to reproduce the behavior:

Type this flake.nix based on twtxt nixpkgs reference

{
  description = "A twtxt build schema";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, nixpkgs, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system:
    let

      pkgs = import nixpkgs {
        inherit system;
      };

      my_twtxt = pkgs.python3Packages.buildPythonApplication rec {
        pname = "twtxt";
        version = "1.3.1";

        src = pkgs.fetchFromGitHub {
          owner = "buckket";
          repo = pname;
          rev = "refs/tags/v${version}";
          sha256 = "sha256-CbFh1o2Ijinfb8X+h1GP3Tp+8D0D3/Czt/Uatd1B4cw=";
        };

        # Relax some dependencies
        postPatch = ''
          substituteInPlace setup.py \
            --replace 'aiohttp>=2.2.5,<3' 'aiohttp' \
            --replace 'click>=6.7,<7' 'click' \
            --replace 'humanize>=0.5.1,<1' 'humanize'
        '';

        propagatedBuildInputs = with pkgs.python3Packages;[ aiohttp python-dateutil humanize click ];

        nativeCheckInputs = with pkgs.python3Packages; [ pytestCheckHook tox ];

        disabledTests = [
          # Disable test using relative date and time
          "test_tweet_relative_datetime"
        ];

        meta = with pkgs.lib; {
          description = "Decentralised, minimalist microblogging service for hackers";
          homepage = "https://github.com/buckket/twtxt";
          license = licenses.mit;
          maintainers = with maintainers; [ siraben ];
          mainProgram = "twtxt";
        };
      };

      packageName = "twtxt";

    in {
      packages.${packageName} = my_twtxt;
      defaultPackage = self.packages.${system}.${packageName};
    }
  );
}

Run nix run .# -- --version to run the equivalent to twtxt --version

Expected behavior
The result from command above should be
[user@system:~]$ nix run .# -- --version
twtxt, version 1.3.1

Screenshots
But the output will be something like
Traceback (most recent call last):
  File "/nix/store/dq9bgw3rgs5ck6whqkh64qa97yzj7cd2-twtxt-1.3.1/bin/.twtxt-wrapped", line 6, in <module>
    from twtxt.cli import main
  File "/nix/store/dq9bgw3rgs5ck6whqkh64qa97yzj7cd2-twtxt-1.3.1/lib/python3.11/site-packages/twtxt/cli.py", line 22, in <module>
    from twtxt.helper import run_pre_tweet_hook, run_post_tweet_hook
  File "/nix/store/dq9bgw3rgs5ck6whqkh64qa97yzj7cd2-twtxt-1.3.1/lib/python3.11/site-packages/twtxt/helper.py", line 17, in <module>
    import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'

Additional context
The steuptools needs to be referenced on propagatedBuildInputs, maybe another python applications have the same bug.
Notify maintainers
@siraben
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 4.19.311, NixOS, 24.05 (Uakari), 24.05.20240403.fd281bd`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - nixpkgs: `/nix/store/n2g5cqwv8qf5p6vjxny6pg3blbdij12k-source`

Add a :+1: reaction to issues you find important.

Could you please take a look at #301767? Feedback would be much appreciated as I'm not a twtxt user.


Assertions on render() wrapped components don't work for elements that aren't an array

For example:
const wrapper = render(firstsecond)
const secondLink = wrapper.find('a')[1]
expect(secondLink).to.have.attr('href', 'bar')

fails (because it expects secondLink to respond to first(), but it isn't an array of results)
This makes it impossible to assert on specific items in an array of results.

[1] doesn't give you a wrapped element. I think you want .at(1).

Strangely, .at is undefined  on wrapper and the result of find('a') 🤔. Is that normal?
Versions:

<EMAIL_ADDRESS><EMAIL_ADDRESS>

ah, sorry, you're using render. You want .eq(1) then, just like in jquery. Array bracket syntax gets you a raw, unwrapped thing.

Ok, thanks @ljharb! It is a bummer that this doesn't work with other chai tools like chai-things because of not being a real array, but I'm not sure that would be an easy thing to do.

<EMAIL_ADDRESS>is published. Could we have that as an acceptable peer?


Flatpak Support?

Hiya, I noticed the AUR install currently has a broken dependency with Rust/Cargo and wont install, so I made a temporary work-a-round that installs the .rpm package. (Not future proofed, only functional for the current release).
# Maintainer: Craig McLure<EMAIL_ADDRESS>pkgname=goxlr-utility
pkgver=1.1.1
pkgrel=1
pkgdesc="A utility for monitoring and controlling a TC-Helicon GoXLR or GoXLR Mini."
arch=('x86_64')
url="https://github.com/GoXLR-on-Linux/goxlr-utility"
license=('MIT' 'custom')
depends=('libusb' 'bzip2' 'libpulse' 'speech-dispatcher')
source=("$pkgname-$pkgver.rpm::https://github.com/GoXLR-on-Linux/goxlr-utility/releases/download/v1.1.1/goxlr-utility-1.1.1-1.x86_64.rpm")
noextract=("$pkgname-$pkgver.rpm")
sha512sums=('SKIP')

build() {
    cd "${srcdir}"
    rpmextract.sh "${srcdir}/goxlr-utility-${pkgver}.rpm"
}

package() {
    mkdir -p "${pkgdir}/usr"
    cd "${srcdir}/usr"
    cp -r * "${pkgdir}/usr/"
}

In saying that, would you guys be interested in porting the GoXLR Utility to Flatpak?

Flatpaks are basically self-contained little virtual environments, that would make things more consistent, safer and convenient to install.

Currently, Stream Controller, another third-party app that replaces proprietary software for the Stream Deck  has a flatpak and it works the same as a Native install, if not faster. I could absolutely look into this and try building it myself if it would help.

I have a new release scheduled in the next day or two which will solve the build issue (it seems like run 1.80 broke compatibility with a dependency of a dependency), so figured it would be easier to wait until that release rather than spend time working around it.
As far as flatpaks are concerned, I have investigated this, but because the utility requires a file in /etc/udev/rules.d/ to be present to allow access to the GoXLR in user space, it would still require manual intervention from the user to make it functional.

Correct, the same manually intervention is required for StreamController. I'm not sure how they do it, but after installing, a dialog box from both Gnome Software and KDE Discover pops up showing a command.
Looking at a forum post, it would be a single command that could be ran.
Example: flatpak override --filesystem=/etc/udev:ro com.visualsutdio.code.oss

After a little more research it looks like you can get really specific with flatpak's override command. It looks like you can add a flag for "additional configuration" with flatpaks that would prompt the user for the command, or maybe a post install script. Looking through all the possible overrides, I think it would be something like:
flatpak override --device=all --filesystem=home --share=network com.goxlr.utility

--device=all: Give the Utility access to all USB devices

--filesystem=home: Grant access to the user's home directory

You could specify common directories for the utility instead of entire system access

--filesystem=xdg-music:rw
--filesystem=xdg-documents:rw

--share=network: (optional) for the network share of the dashboard.

There's also:

--persist=config for config files to persist
--socket=pulseaudio for people that rely on it


[Profetto UI] Heap profiler with continuous dumps for a multi-threaded c++ app  doesnt show diamonds icon

Hi.
I'm enjoying using this tool to debug memory leaks.
Issue
I am currently running into an issue with the Profetto UI not showing any diamond icons for a multi-threaded c++ app, even after adding "adding -c 5000 to the invocation of tools/heap_profile" as referenced in https://perfetto.dev/docs/data-sources/native-heap-profiler#continuous-dumps
Everything works great when i'm not using std::thread or pthread_t.
This is what I see on the Profetto UI when using threads and enabling continuous dumps:

It seems like I'm getting an accurate single snap shot with no diamond icon.
Here is the trace as a zip:
heapprofd-trace.zip
Reproducing the issue
source code
Here is the source code (which intentionally leaks memory):
#include <iostream>
#include <chrono>
#include <pthread.h>
#include <unistd.h>

using namespace std;

class MyClass1 {
public:
    MyClass1() {
    }

    void allocate() {
        cout << "Allocating 1kb of data in MyClass1" << endl;
        data = new char[8096];
    }

private:
    char* data;
};

class MyClass2 {
public:
    MyClass2() {
    }

    void allocate() {
        cout << "Allocating 1kb of data in MyClass2" << endl;
        data = new char[8096];
    }

private:
    char* data;
};

void* thread1_function(void* arg) {
    MyClass1* obj1 = static_cast<MyClass1*>(arg);

    for (int i = 0; i < 10; i++) {
        sleep(1);
        obj1->allocate();
    }

    pthread_exit(nullptr);
}

void* thread2_function(void* arg) {
    MyClass2* obj2 = static_cast<MyClass2*>(arg);

    for (int i = 0; i < 10; i++) {
        sleep(2);
        obj2->allocate();
    }

    pthread_exit(nullptr);
}

int main() {
    pthread_t thread1;
    pthread_t thread2;
    MyClass1* obj1 = new MyClass1();
    MyClass2* obj2 = new MyClass2();

    pthread_create(&thread1, nullptr, thread1_function, obj1);
    pthread_create(&thread2, nullptr, thread2_function, obj2);

    pthread_join(thread1, nullptr);
    pthread_join(thread2, nullptr);

    return 0;
}

Following the instructions in: https://perfetto.dev/docs/data-sources/native-heap-profiler#-non-android-linux-support
Here is my setup to produce the heapprofd-trace:
environment
tkuo@tkuo-HP-Z840-Workstation:~/Documents/test$ uname -ar
Linux tkuo-HP-Z840-Workstation 5.15.0-48-generic #54-Ubuntu SMP Fri Aug 26 13:26:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
tkuo@tkuo-HP-Z840-Workstation:~/Documents/test$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy

Starting traced
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ out/linux/traced
[125.236]          service.cc:240 Started traced, listening on /tmp/perfetto-producer /tmp/perfetto-consumer

Starting profetto
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ PERFETTO_SYMBOLIZER_MODE=index tools/heap_profile -n test -c 500 --print-config  | out/linux_clang_release/perfetto   -c - --txt   -o ~/heapprofd-trace

Building application
tkuo@tkuo-HP-Z840-Workstation:~/Documents/test$ g++ -g posixThread.cpp -o test

Running application
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ LD_PRELOAD=out/linux_clang_release/libheapprofd_glibc_preload.so ../test/test

Any ideas if this a bug or by design?

Ah no actually I can repro myself.
@stevegolton can you take a look? This might be some silly UI bug when computing the trace bounds or similar.
If the snapshot loads in the bottom panel, the diamond (the profile) must be there (in the tables).

thanks for the quick response.
glad you were able to repro.
looking forward to the fix!

Hey @tkuowork, thanks for raising the issue and for providing so much detail!
I noticed that the timestamps in your attached trace are quite large ~185 days, and all heap profiles have the same timestamp, resulting in an effective trace "duration" of 1ns.
The UI has a limitation where once timestamps start to lost precision after ~100 days, which causes issues when the trace is so short as the start and end times cannot be resolved, which breaks timeline rendering.
We are actually currently working on a solution to this problem, but it's complex and might take some time. As a temporary fix, you could try restarting your machine you recorded the traces on and re-recording them.

@stevegolton thanks!
the ~185 day timestamp makes sense because thats how long my machine has been up.
I restarted my machine and now i do see a diamond!

here is the heap-trace for that view zipped:
thread-heapprofd-trace.zip
however, I am curious as to why I only see one diamond. I would have expected to see multiple diamonds since I am using continuous dumps.
here is the source code for the heap trace above and where I see one diamond:
#include <iostream>
#include <chrono>
#include <thread>

using namespace std;

class MyClass1 {
public:
    MyClass1() {
    }

    void allocate() {
    ¦   cout << "Allocating data in MyClass1" << endl;
    ¦   data = new char[8096];
    }

private:
    char* data;
};

int main() {
    MyClass1* obj1 = new MyClass1();

    thread* t1 = new thread([&obj1](){
    ¦   for (int i = 0; i < 10; i++) {
    ¦   ¦   this_thread::sleep_for(chrono::seconds(1));
    ¦   ¦   obj1->allocate();
    ¦   }
    });

    t1->join();

    return 0;
}

here are the commands I ran:
// start perfetto
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ out/linux/traced
[154.346]          service.cc:240 Started traced, listening on /tmp/perfetto-producer /tmp/perfetto-consumer

//  start heap trace with continuous dumps
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ PERFETTO_SYMBOLIZER_MODE=index tools/heap_profile -n test -c 5 --print-config  | out/linux_clang_release/perfetto   -c - --txt   -o ~/heapprofd-trace
[609.717]    perfetto_cmd.cc:1026 Connected to the Perfetto traced service, starting tracing

// build code
tkuo@tkuo-HP-Z840-Workstation:~/Documents/test$ g++ -g nonthreadLeaky.cpp -o test

// run code
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ LD_PRELOAD=out/linux_clang_release/libheapprofd_glibc_preload.so ../test/test

when I run the same code OUTSIDE a pthread or cpp::thread I get this really nice graph with a timeline, which is what i am hoping to see when my application is multi-threaded

here is the corresponding trace zipped :
heapprofd-trace
here is the source code
#include <iostream>
#include <chrono>
#include <thread>

using namespace std;

class MyClass1 {
public:
    MyClass1() {
    }

    void allocate() {
    ¦   cout << "Allocating data in MyClass1" << endl;
    ¦   data = new char[8096];
    }

private:
    char* data;
};

int main() {
    MyClass1* obj1 = new MyClass1();

    for (int i = 0; i < 10; i++) {
    ¦   this_thread::sleep_for(chrono::seconds(1));
    ¦   obj1->allocate();
    }

    return 0;
}

I am using the same heap_profile configuration in both cases
//  start heap trace with continuous dumps
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ PERFETTO_SYMBOLIZER_MODE=index tools/heap_profile -n test -c 5 --print-config  | out/linux_clang_release/perfetto   -c - --txt   -o ~/heapprofd-trace
[609.717]    perfetto_cmd.cc:1026 Connected to the Perfetto traced service, starting tracing

Is it possible to get the continuous dumps / timeline of diamonds for a multi-thread application?

sure!
im still getting the same result after following those steps.
trace:
heapprofd-trace.zip
i've built all the targets:
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ tools/setup_all_configs.py

Building linux_gcc_debug_arm64[is_clang=false,is_debug=true,target_cpu="arm64",target_os="linux"]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_gcc_debug_arm64 '--args=is_clang=false is_debug=true target_cpu="arm64" target_os="linux"' --check
Done. Made 1193 targets from 198 files in 137ms

Building linux_gcc_release_arm64[is_clang=false,is_debug=false,target_cpu="arm64",target_os="linux"]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_gcc_release_arm64 '--args=is_clang=false is_debug=false target_cpu="arm64" target_os="linux"' --check
Done. Made 1189 targets from 198 files in 128ms

Building linux_gcc_debug     [is_clang=false,is_debug=true]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_gcc_debug '--args=is_clang=false is_debug=true' --check
Done. Made 931 targets from 198 files in 112ms

Building linux_gcc_release   [is_clang=false,is_debug=false]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_gcc_release '--args=is_clang=false is_debug=false' --check
Done. Made 930 targets from 198 files in 121ms

Building linux_clang_debug   [is_clang=true,is_debug=true]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_clang_debug '--args=is_clang=true is_debug=true' --check
Done. Made 978 targets from 201 files in 123ms

Building linux_clang_release [is_clang=true,is_debug=false]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_clang_release '--args=is_clang=true is_debug=false' --check
Done. Made 977 targets from 201 files in 125ms

Building linux_asan          [is_clang=true,is_debug=false,is_asan=true]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_asan '--args=is_clang=true is_debug=false is_asan=true' --check
Done. Made 977 targets from 201 files in 114ms

Building linux_lsan          [is_clang=true,is_debug=false,is_lsan=true]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_lsan '--args=is_clang=true is_debug=false is_lsan=true' --check
Done. Made 977 targets from 201 files in 111ms

Building linux_msan          [is_clang=true,is_debug=false,is_msan=true]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_msan '--args=is_clang=true is_debug=false is_msan=true' --check
Done. Made 977 targets from 201 files in 118ms

Building linux_tsan          [is_clang=true,is_debug=false,is_tsan=true]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_tsan '--args=is_clang=true is_debug=false is_tsan=true' --check
Done. Made 977 targets from 201 files in 118ms

Building linux_ubsan         [is_clang=true,is_debug=false,is_ubsan=true]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_ubsan '--args=is_clang=true is_debug=false is_ubsan=true' --check
Done. Made 977 targets from 201 files in 112ms

Building linux_fuzzer        [is_clang=true,is_debug=false,is_fuzzer=true,is_asan=true]
/home/tkuo/Documents/perfetto/tools/gn gen /home/tkuo/Documents/perfetto/out/linux_fuzzer '--args=is_clang=true is_debug=false is_fuzzer=true is_asan=true' --check
Done. Made 980 targets from 202 files in 113ms

then I built the debug version so i have additional loging
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ tools/ninja -C out/linux_clang_debug
ninja: Entering directory `out/linux_clang_debug'
[2822/2822] stamp obj/default.stamp

I build the new thread version with the write and also with optimization off, with debug symbols
tkuo@tkuo-HP-Z840-Workstation:~/Documents/test$ g++ -Og threadLeaky.cpp -o test
threadLeaky.cpp: In member function ‘void MyClass1::allocate()’:
threadLeaky.cpp:16:14: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   16 |         write(42, data, 8096);
      |         ~~~~~^~~~~~~~~~~~~~~~

src:
#include <iostream>
#include <chrono>
#include <thread>
#include <unistd.h>

using namespace std;

class MyClass1 {
public:
    MyClass1() {
    }

    void allocate() {
        cout << "Allocating data in MyClass1" << endl;
        data = new char[8096];
        write(42, data, 8096);
    }

private:
    char* data;
};

int main() {
    MyClass1* obj1 = new MyClass1();

    thread* t1 = new thread([&obj1](){
        for (int i = 0; i < 10; i++) {
            this_thread::sleep_for(chrono::seconds(1));
            obj1->allocate();
        }
    });

    t1->join();

    return 0;
}

then I ran traced and perfetto
// traced
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ out/linux_clang_debug/traced
[941.544]          service.cc:240 Started traced, listening on /tmp/perfetto-producer /tmp/perfetto-consumer

[944.863] ing_service_impl.cc:457 Consumer 0x559aefd45d90 connected from UID 1000
[944.863] ing_service_impl.cc:557 Enabling tracing for consumer 0x559aefd44670, UUID: c7848737-3411-f1b4-d040-b0462ac483b0
[944.864] ing_service_impl.cc:988 Configured tracing session 1, #sources:2, duration:0 ms, #buffers:1, total buffer size:63488 KB, total sessions:1, uid:1000 session name: ""
[944.864] ng_service_impl.cc:1423 All data sources started
[945.000] ng_service_impl.cc:2428 Draining into file, written: 1 KB, stop: 0
[950.006] ng_service_impl.cc:2428 Draining into file, written: 1 KB, stop: 0
[955.005] ng_service_impl.cc:2428 Draining into file, written: 1 KB, stop: 0
[956.163] ing_service_impl.cc:361 Producer 1 connected, uid=1000
[956.163] ng_service_impl.cc:2510 Producer 1 registered data source "android.heapprofd"
[956.163] ng_service_impl.cc:2745 Setting up data source android.heapprofd with target buffer 1
[956.163] ng_service_impl.cc:2771 Invalid configured SMB sizes: shm_size 0 page_size 0. Falling back to shm_size 262144 page_size 4096.
[956.163] ng_service_impl.cc:2779 Creating SMB of 256 KB for producer "android.heapprofd"
[960.010] ng_service_impl.cc:2428 Draining into file, written: 180 KB, stop: 0
[965.015] ng_service_impl.cc:2428 Draining into file, written: 331 KB, stop: 0
[970.008] ng_service_impl.cc:2428 Draining into file, written: 76 KB, stop: 0
[975.005] ng_service_impl.cc:2428 Draining into file, written: 1 KB, stop: 0
[980.006] ng_service_impl.cc:2428 Draining into file, written: 1 KB, stop: 0
[981.099] ng_service_impl.cc:2428 Draining into file, written: 4 KB, stop: 0
[981.118] ucer_ipc_service.cc:194 Client 1 disconnected
[981.118] ing_service_impl.cc:423 Producer 1 disconnected
[981.118] ng_service_impl.cc:2595 Producer 1 unregistered data source "android.heapprofd"
[981.118] ing_service_impl.cc:474 Consumer 0x559aefd44670 disconnected
[981.118] ng_service_impl.cc:2434 Freeing buffers for session 1
[981.118] ng_service_impl.cc:2466 Tracing session 1 ended, total sessions:0

// perfetto
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ tools/heap_profile -n test -c 5 --print-config | out/linux_clang_debug/perfetto -c - --txt -o ~/heapprofd-trace
[944.858]     perfetto_cmd.cc:594 Parsing TraceConfig, 494 bytes
[944.863]    perfetto_cmd.cc:1026 Connected to the Perfetto traced service, starting tracing

// test app
tkuo@tkuo-HP-Z840-Workstation:~/Documents/perfetto$ LD_PRELOAD=out/linux_clang_debug/libheapprofd_glibc_preload.so ../test/test
[956.163] approfd_producer.cc:245 Connected to the service, mode [child].
[956.164] approfd_producer.cc:367 Setting up datasource: non-statsd initiator.
[956.164] approfd_producer.cc:451 Set up data source.
[956.164] approfd_producer.cc:515 Starting data source 1
[956.164] approfd_producer.cc:558 Started DataSource
[956.164] approfd_producer.cc:851 84899: Received FDs.

Do you have any other suggestions of things I should test? It does seem somewhat specific to using threads

Do you have any other suggestions of things I should test? It does seem somewhat specific to using threads

I managed to reproduce this. I think this is a bug in our glibc malloc wrapper, proposed fix here: https://r.android.com/2519482
Thanks!

@ddiproietto thank you!
hoping to see this land soon.
i think i also hit a deadlock case
#0  0x00007f462503a4d6 in __lll_lock_wait_private () from /lib64/libc.so.6
#1  0x00007f462503e959 in pthread_getattr_np () from /lib64/libc.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#2  0x00007f462a54aa6b in perfetto::profiling::GetThreadStackRange () at ../../src/profiling/memory/client.cc:86
#3  0x00007f462a54b61c in perfetto::profiling::Client::GetStackEnd (this=this@entry=0x7f45d8020188, stackptr=stackptr@entry=0x7f458e7f3010 "\260\060\177\216E\177") at ../../src/profiling/memory/client.cc:286
#4  0x00007f462a54b86e in perfetto::profiling::Client::RecordMalloc (this=0x7f45d8020188, heap_id=1, sample_size=4096, alloc_size=152, alloc_address=139937752257680) at ../../src/profiling/memory/client.cc:372
#5  0x00007f462a5b06a0 in AHeapProfile_reportAllocation (heap_id=1, id=<optimized out>, size=152) at ../../src/profiling/memory/client_api.cc:422
#6  0x00007f462a543db4 in perfetto::profiling::wrap_calloc (heap_id=1, fn=<optimized out>, nmemb=152, size=<optimized out>) at ../../src/profiling/memory/wrap_allocators.cc:47
--Type <RET> for more, q to quit, c to continue without paging--
#7  0x00007f462503b313 in ?? () from /lib64/libc.so.6
#8  0x00007f462503b5f8 in pthread_attr_setaffinity_np () from /lib64/libc.so.6
#9  0x00007f462503e8be in pthread_getattr_np () from /lib64/libc.so.6
#10 0x00007f462a54aa6b in perfetto::profiling::GetThreadStackRange () at ../../src/profiling/memory/client.cc:86
#11 0x00007f462a54b61c in perfetto::profiling::Client::GetStackEnd (this=this@entry=0x7f45d8020188, stackptr=stackptr@entry=0x7f458e7f3460 "") at ../../src/profiling/memory/client.cc:286
--Type <RET> for more, q to quit, c to continue without paging--
#12 0x00007f462a54b86e in perfetto::profiling::Client::RecordMalloc (this=0x7f45d8020188, heap_id=1, sample_size=4096, alloc_size=34, alloc_address=139937752155888) at ../../src/profiling/memory/client.cc:372
#13 0x00007f462a5b06a0 in AHeapProfile_reportAllocation (heap_id=1, id=<optimized out>, size=34) at ../../src/profiling/memory/client_api.cc:422

@ddiproietto i cherry-picked your change and am not longer getting a deadlock. thanks!!

@ddiproietto i also tested with the multi-threaded test app and am seeing the multiple diamonds now too!

out of curiosity, there any plans for the UI to be able to show memory allocated per thread.
i.e currently it shows all memory for a single process, but i assume there is enough meta data to know that there were two threads. there could be drop down menu for each thread

closing since its on mainline. thanks for the fix!


Don't expose non-Miro works to the Experience team

And how.

As we'll be filing all the Sierra records into a separate index for now, I'm going to close it.
We can come back to this when we want to put Sierra in the public index.


Append to a std::nlohmann::json type

I want to add data from multiple JSONs into a singular variable
I want to Parse JSON_1's data into the json data type, then parse JSON_2's data into the same variable, without overwriting the original data (Like an append type operator)
I have tried iterating over the files and using file >> json for each, however the data from the first JSON is overwritten by the next jsons
    std::vector<std::string> cardPaths = getDir("cards/stats/", ".json");
    json cardData;
    std::wstring LoadMsg = L"Loaded:";
    for(auto f_path : cardPaths) {
        std::ifstream(f_path) >> cardData;
        std::cout << f_path << "loaded successfully" << std::endl;
    }

Windows 10 OS and compiler is g++ (Rev3, Built by MSYS2 project) 10.1.0
Library Version

[x] latest release version 3.7.3
[ ] other release - please state the version: ___
[ ] the develop branch

You can use the update function for this.

See https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a6c02637be3d8bd730a14082cc05f7a85.html#a6c02637be3d8bd730a14082cc05f7a85 for documentation and an example.

Thanks, that worked.


Update gradient.scss

background: rgb(171,226,251);
background: linear-gradient(90deg, rgba(171,226,251,1) 12%, rgba(104,183,254,1) 31%, rgba(19,118,245,1) 54%, rgba(27,69,247,1) 76%, rgba(198,193,244,1) 94%);

That's not how you do it but I'll fix it later


Setup.py is empty

Hi, I've followed all your instructions, everything's ok, but I can't install this module, your setup.py is empty though.
Any ideas?
Thanks in advance.

@kkoci it is way overdue, but I've added a setup.py and distributed the package.

Hello!!
I'm sorry, too much work here, but thank you very much! Going to check it ASAP


Incorrect Redirect Path on Create and Cancel Buttons in the Edit Broker on Pods List and Broker Details Pages

When clicking the Create or Cancel buttons on the edit-broker, the redirection should take the user back to the current page from which they navigated (e.g., Pods List page or Broker Details page). However, it currently redirects to the Brokers page instead.

@Msarawan  I think this issue is fixed right?

@Msarawan I think this issue is fixed right?

Yes, the issue is fixed. but still the PR is not merged. we need to do rebasing  and  some cleanup with the PR and then it's good to merge.

Closed as completed.


Home page: Restore % program period complete info and link to program period modal for Low and Medium access users

Affects: People with Low and Medium access to programs
Reproduce the issue

Log in as a user with Low or Medium access to programs.

Visit the home page.

Note that in each program block, there is no % program period complete info and no link to the program period modal in the upper right corner.

Note that if you click to the program page, these elements are implemented as expected, with the correct view-only permissions when you open the modal.

Acceptance criteria
On the home page, in the upper right corner of each program block, the following things are true for all access levels -- Low, Medium, and High:

[x] 1. I can see the program % complete graphic.

[x] 2. When I click on the graphic, it launches the program period modal.

[x] 3. I have the correct permissions in the modal -- View-only for Low and Medium, and View/Edit for High.

Housekeeping

[ ]  Unit test/s written wherever applicable
[ ]  i18n tags included wherever applicable
[ ]  Functionality is accessible to people using screen readers

@RickieT The change to make this work required changing how the Program period modal handles disabling itself based on permissions. Since this modal is used on both the home page and program page, but in slightly different ways, it would be good to test the permission cases on both pages.

QA Passed:
On program and home page with low/medium user, program period modal appeared, could not be changed.


Be able to ignore files/patterns

I've searched, but i cannot seem to find a way of ignoring directorys/files when building the docs. It would be nice to have a .rtdignore in the project root that works in the same way as .gitignore.
My usecase:

Details

Project URL: Local setup

Expected Result

Add a .rtdignore file to the project root with patterns to ignore.
RTD now ignores these files when building.

Is there any way of doing this at the moment?
Thanks

I'm not sure of the use case here. It seems like you should rather be reconfiguring Sphinx to get the directory structure you want?

Thanks for the response. Yes that seems reasonable, I've now tried adding a pattern to docs/conf.py like this, without success:
exclude_patterns = [
    '/**/.github/*
]

I'm using markdown, should i configure mkdocs instead?

Not unless you need mkdoc features, mkdocs is not well supported.

@zappen999 why not just change your folder structure as @agjohnson said? I mean, using a docs/ directory at the root of your project. That is the simplest and common way of solve this, isn't it?

@humitos The problem is that i have both docs/ and .github/, and it takes in both directories. If someone could point me to the correct config file to specify the pattern I'd be very thankful.

@zappen999 ok, it's not easy to help you since we don't have access to the repo to see how it's configured or so.
I would say that you have set up your root directory for building the documentation instead of the docs/ folder and that's the issue.

This is an issue with mkdocs, not with anything in particular we're doing. Going to close this. If you need support, the mkdocs project is the proper place to ask for it.


Update middleware_webhook_rest.py

Client changes to validate and format timestamp format. The client's API waits for the timestamp to be formatted like: "1698759068.307435".

@AashishDhakal what's your feedback?


UserWarning related to hook call

  /home/myuser/myvirtualenv/lib64/python3.6/site-packages/pytest_mp/terminal.py:45: UserWarning: Argument(s) ('config',) which are declared in the hookspec can not be found in this hook call
    res = self.config.hook.pytest_report_teststatus(report=rep)

Could use some more investigation

I was looking at the internal class we are calling https://github.com/ansible/pytest-mp/blob/master/pytest_mp/terminal.py#L16
pytest_mp/terminal.py:16
TerminalReporter.__init__(self, reporter.config)
ansible/pytest-mpAdded by GitHub
looks like TerminalReporter no longer takes a second argument
https://github.com/pytest-dev/pytest/blob/master/src/_pytest/terminal.py#L220

Bah I think this theory is trash, nevermind.

Closing since this is fixed now


Update sbt-ci-release to 1.5.10

Updates com.github.sbt:sbt-ci-release from 1.5.9 to 1.5.10.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.sbt", artifactId = "sbt-ci-release" } ]

labels: sbt-plugin-update, semver-patch

Codecov Report

Merging #265 (1131a58) into master (72c4c18) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #265   +/-   ##
=======================================
  Coverage   66.42%   66.42%
=======================================
  Files          19       19
  Lines         557      557
  Branches       21       22    +1
=======================================
  Hits          370      370
  Misses        187      187

Continue to review full report at Codecov.

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


60' FTP Formula

60 minutes FTP applies the 0.95 factor on average value. While this is ok for the 20 minutes FTP, it should be 1.0 for the 60 minutes FTP. Didn't test other time intervals though.

We’ve had a discussion on FB about renaming the column “FTP” to “95%” because it could be inaccurate if the testing protocol wasn’t precisely followed. These proxys are however widely used by most in a number of situations.
I would therefore however suggest either a new custom power column where anyone is able to enter a fraction of the power (using the usual right click). For example, 0.95 * Watts for the 20 minutes power, 1 * Watts for the 60 minutes, etc.
Or, better, a new column “Est. FTP” (so that nobody gets confused...) with predefined values: 0.95 for 20’, 1.0 for 60’ and above, 0.85 for 5’ and 0 below (5’ is already testing the maximal anareobic power rather than FTP so it is a bit tricky to use that one, but as a rough proxy some research shows it is about 85%), and a linear interpolation for other intervals, i.e.0.8566 for 6’, 0.8833 for 10’, 0.9625 for 30’.
The current “95%” column is pretty much useless because the only relevant interval is 20’.

Closing issue as this is more of a feature request...and only one user is asking for it.


No coverage data on x86_64-unknown-none target

Reproduce
src/main.rs:
#![no_std]
#![cfg_attr(not(test), no_main)]

use core::fmt::Write;

struct Writer;

impl Write for Writer {
    fn write_str(&mut self, s: &str) -> core::fmt::Result {
        let s = s.as_bytes();
        unsafe {
            core::arch::asm!(
                "syscall",
                in("rax") 1,
                in("rdi") 2,
                in("rsi") s.as_ptr(),
                in("rdx") s.len(),
            )
        }
        Ok(())
    }
}

#[panic_handler]
fn panic(_info: &core::panic::PanicInfo) -> ! {
    loop {}
}

struct SizeCounter(usize);

impl minicov::CoverageWriter for SizeCounter {
    fn write(&mut self, data: &[u8]) -> Result<(), minicov::CoverageWriteError> {
        self.0 += data.len();
        Ok(())
    }
}

#[no_mangle]
pub fn _start(_: *const u8) {
    let mut buffer = SizeCounter(0);
    unsafe { minicov::capture_coverage(&mut buffer).unwrap() };
    writeln!(Writer, "Coverage data size: {:#x}", buffer.0).unwrap();

    loop {}
}

Cargo.toml:
[package]
name = "minicov-test"
edition = "2021"

[dependencies]
minicov = { version = "0.3", default-features = false }

Run:
$ RUSTFLAGS="-Cinstrument-coverage -Zno-profiler-runtime -Crelocation-model=static" cargo run --target x86_64-unknown-none --release
   Compiling minicov-test v0.0.0 (/minicov-test)
    Finished `release` profile [optimized] target(s) in 0.14s
     Running `target/x86_64-unknown-none/release/minicov-test`
Coverage data size: 0x80

And 0x80 is (seemingly) barely the size of the .profraw header, and does not contain any coverage data.
Possible Cause
On x86_64-unknown-none target, minicov is compiled with InstrProfilingPlatformOther.c because none of these is hit:
https://github.com/Amanieu/minicov/blob/31ed26cc5173df2d4bfe5361d4608e55b93122b1/minicov/c/InstrProfilingPlatformLinux.c#L9-L11
Then, when capture_coverage gets the address of the counters, it gets NULL because CountersFirst is NULL, so it cannot collect the coverage counters.
In fact, the expected platform should be InstrProfilingPlatformLinux.c. I tried to remove the #if in InstrProfilingPlatformLinux.c (make it use Linux platform instead of Other), then minicov could collect the counters and dump the correct coverage data.

You need to execute static initializers to register counters at startup. This is normally done by libc but on -none targets you need to do this manually yourself.

Thanks for your reply. May I ask what's the proper way to call the "static initializers"?
AFAIK, LLVM does not emit the runtime registration code, because the target is an ELF file:
https://github.com/llvm/llvm-project/blob/8caeb2e0c2fb8a5f1689c11775b81ceee76de958/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp#L1423
And I also look into what InstrProfilingLoweringPass does in my example: https://www.diffchecker.com/07GpyZjq/ . It seems that no initializers are generated in this pass?


python310Packages.types-protobuf: <IP_ADDRESS> -> <IP_ADDRESS>

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.types-protobuf is: Typing stubs for protobuf
meta.homepage for python310Packages.types-protobuf is: https://github.com/python/typeshed
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found <IP_ADDRESS> with grep in /nix/store/d2dpn7hqpqna6bi1z4n9d74imdl05cqw-python3.10-types-protobuf-<IP_ADDRESS>
found <IP_ADDRESS> in filename of file in /nix/store/d2dpn7hqpqna6bi1z4n9d74imdl05cqw-python3.10-types-protobuf-<IP_ADDRESS>

Rebuild report (if merged into master) (click to expand)

15 total rebuild path(s)

15 package rebuild(s)

First fifty rebuilds by attrpath
anki
mnemosyne
mypy-protobuf
openroad
or-tools
python310Packages.apache-beam
python310Packages.dm-sonnet
python310Packages.mypy-protobuf
python310Packages.ortools
python310Packages.tensorflow-datasets
python310Packages.types-protobuf
python311Packages.apache-beam
python311Packages.mypy-protobuf
python311Packages.ortools
python311Packages.types-protobuf

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/d2dpn7hqpqna6bi1z4n9d74imdl05cqw-python3.10-types-protobuf-<IP_ADDRESS> \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.types-protobuf https://github.com/r-ryantm/nixpkgs/archive/30b9333d40151274298dc72972221fd5909e3e47.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/d2dpn7hqpqna6bi1z4n9d74imdl05cqw-python3.10-types-protobuf-<IP_ADDRESS>
ls -la /nix/store/d2dpn7hqpqna6bi1z4n9d74imdl05cqw-python3.10-types-protobuf-<IP_ADDRESS>/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 45m and timed out

Maintainer pings
cc @andersk for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.types-protobuf is: Typing stubs for protobuf
meta.homepage for python310Packages.types-protobuf is: https://github.com/python/typeshed
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found <IP_ADDRESS> with grep in /nix/store/w3axgd4y78265y2qskl0319z9i7x6nzc-python3.10-types-protobuf-<IP_ADDRESS>
found <IP_ADDRESS> in filename of file in /nix/store/w3axgd4y78265y2qskl0319z9i7x6nzc-python3.10-types-protobuf-<IP_ADDRESS>

Rebuild report (if merged into master) (click to expand)

15 total rebuild path(s)

15 package rebuild(s)

First fifty rebuilds by attrpath
anki
mnemosyne
mypy-protobuf
openroad
or-tools
python310Packages.apache-beam
python310Packages.dm-sonnet
python310Packages.mypy-protobuf
python310Packages.ortools
python310Packages.tensorflow-datasets
python310Packages.types-protobuf
python311Packages.apache-beam
python311Packages.mypy-protobuf
python311Packages.ortools
python311Packages.types-protobuf

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/w3axgd4y78265y2qskl0319z9i7x6nzc-python3.10-types-protobuf-<IP_ADDRESS> \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.types-protobuf https://github.com/r-ryantm/nixpkgs/archive/8c33d725d74ad842bc89f52b9f2d3a78fcd70148.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/w3axgd4y78265y2qskl0319z9i7x6nzc-python3.10-types-protobuf-<IP_ADDRESS>
ls -la /nix/store/w3axgd4y78265y2qskl0319z9i7x6nzc-python3.10-types-protobuf-<IP_ADDRESS>/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 45m and timed out

Maintainer pings
cc @andersk for testing.


CheckForUpdates() showing as another process is already running

When I check for updates, using "UpdateManager.Instance.CheckForUpdates()", I get the InvalidOperationException "Another update process is already in progress", although nothing else is running this update.  What could be causing this to get marked as in progress?

Can you provide a repro showing this?

Well, I added a direct call to UpdateManager.Instance.CleanUp() after checking for updates and either applying updates or letting the user know that there were no updates, and this issue has been resolved.
However, I'm now encountering an issue only with the release version of my code.  When I check for updates, I get a message saying "Version string portion with too short or too long".  Is there a set length that the versions have to be?  When I use the FeedBuilder.exe program, I do not get any errors about the version numbers.

Also, when I am debugging my program, the check for updates work correctly.

Regarding the version problem:
NAppUpdate uses the System.Version constuctor Version(String), so I guess you get ArgumentException from it when it tries to check if the version is met. You can see what is wrong with your version by reading the ArgumentException description here: https://msdn.microsoft.com/en-us/library/y0hf9t2e(v=vs.110).aspx
One could argue that the FeedBuilder should check this when creating the xml.
Regarding the Updater already running problem:
We will need more information regarding this one if we are to look into this, I would guess there either is two calls to some NAppUpdate function or you are not calling them in the correct order. Some more information on what methods you try to call and in what order you do it would be helpful.
Closing until more information is added.


Implement constant-time password comparison

Implementing a constant-time password comparison to prevent timing attacks. Taken from https://github.com/99designs/basicauth-go/pull/3.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

5 of 5 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.08%) to 89.674%

Totals

Change from base Build<PHONE_NUMBER>0:
0.08%

Covered Lines:
495

Relevant Lines:
552

💛  - Coveralls


remove extension from search result links

The JavaScript building links in Pagefind results included the .html extension with the URLs.
This change removes the extension from search result links.

Looks good to me, though it'd be better to solve it by having the index correct. But I didn't see a good way to do that: https://pagefind.app/docs/
Also, I was unable to run search locally. I get this message when I start up (even after blowing away node_modules):
pagefind doesn't appear to be written in CJS, but also doesn't appear to be a valid ES module (i.e. it doesn't have "type": "module" or an .mjs extension for the entry point). Please contact the package author to fix.
08:24:15 AM [serve]    404                   /_pagefind/pagefind.js

So search doesn't work for me locally.
Anyway, that's a side note. This solution looks good to me. Thanks!


Symbols package

Description
Please include symbols in NuGet package to allow debugging.
Information
Please include symbols with the NuGet package so we can debug the OpenDocument assemblies.
I'm referring to this:

Good idea. It's been merged and will be available via NuGet with the next release

Thank you!

Hi! I think this has regressed because I can't see any debug symbols on nuget.org for version 2.14.0.


refactor binary release workflow

Ensure that we can release without needing a -ff merge to retain git commit SHA
We can now release crates even where there are no changes to the ockam, ockam_command, and ockam_app_lib crate
We now use same version of ockam, ockam_app_lib and ockam_command

How release workflow runs

Create a PR that bumps the version of our crates, after PR is created, script waits for PR to be merged
PR merged and script automatically detects and start release from the develop branch

@metaclips
Why do we need to bump one of those three crates in order to release?

@metaclips Why do we need to bump one of those three crates in order to release?
We need the version desktop app and CLI to be same


Batch resize-by-weight takes a very long time

Describe the bug
I'm not sure if I'd call this a bug, just a strange behaviour.
I tried using the resize by weight a couple of times on a batch of 6 photos and it just hung on the loading spinner, and I thought it was frozen. But recently I tried it again and just let it run for as long as it needed to. It succeeded, but it took a very long time, like 2-3 minutes per photo. Other features of this app only take a few seconds to convert images so I don't think it's a hardware/CPU issue.
To Reproduce

select resize by weight
select 6 photos
resize to a custom KB limit
processing takes a very long time

Expected behavior

I don't see why resize by weight should take longer than other forms of image resize/conversion?

Smartphone (please complete the following information):

Device: Pixel 3a
OS: CalyxOS (Android)

If you are using image formats like PNG BMP, who doesn't have compression quality params then you cannot get desired weight at all, and execution fails or takes a really long time

It can take a long time, because I'm trying to compress the image while it's size will be <= than given size

The original files were JPG and they were not being converted, just saved as JPG again. However I was reducing the size by a lot (12MB -> 100KB), could that have caused this?

Yup it's intended for that size scaling

But maybe i can create a better algorithm

Okay, this should be much faster now :)


Bug in zscaler

Zscaler DNS events is not being rewritten to match expected sourcetype (zscalernss-dns).
https://github.com/splunk/splunk-connect-for-syslog/blob/main/package/etc/conf.d/conflib/syslog/app-syslog-zscaler_nss_proxy.conf
        if (match("dns" value(".values.product"))) {
            rewrite {
                r_set_splunk_dest_update(
                     index('netdns')
                     class('dns')
                );
            };

:tada: This issue has been resolved in version 2.7.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


WIP Paralize tests

ok, so now they're not-so paralized, but its coming together.

I think I'll be redoing this using docker-machine at some point.


Can't use it

import {Twitter} from '@book000/twitterts'

const username = 'username'
const password = 'password'
// const emailAddress = 'email'
const twitter = await Twitter.login({username, password,puppeteerOptions: {userDataDirectory: '.user-data'}})

[2024-09-30 07:21:35.817] [main/ERROR]: uncaughtException ({"code":"ECONNREFUSED"})

Why does it tries to connect MySQL? I don't want to use MySQL.

@thewh1teagle, Thank you for creating the issue.
I'm sorry. The error you pointed out seems to be a bug.
The library implements a mechanism to save the response to the DB for automatic response type generation.
Normally, this should not be saved unless explicitly enabled, but it seems that it is not implemented as expected.
I will try to fix this as soon as possible, so please be patient!

@book000
Thanks!
By the way, I'm curious. I would like to collect all of my posts and replies (posts,replies,reposts,quotes)
Does it possible with this library?
In addition, I haven't looked into the library yet, but does it it scraping the DOM or it's work more efficient by doing lightweight http requests once the login succeed?

Hi @thewh1teagle,
This library is achieved by manipulating the Chrome browser to actually access x.com and intercepting the API responses as they are communicated in the background.
This is a way to prevent banning, etc. as much as possible by handling the process in the same way as it is actually done in the browser.
If you prefer to simplify with a single HTTP request after login, we also recommend something like trevorhobenshield/twitter-api-client.
Regarding your expectation of the requirement to retrieve all of one's posts, this library may not be able to meet it.
This is because I remember that the Twitter user page does not allow you to go back more than 3200 tweets.
An official Twitter feature, the download feature, might be useful.
https://help.x.com/en/managing-your-account/how-to-download-your-x-archive

fixed by https://github.com/book000/twitterts/pull/1176


Do not fail cypress test on uncaught promise pro-s-context-ci.azurewe…

…bsites.net/contexts

We have that fix in 3 PRs now :D so need to agree which one goes in :)
Other things, for future:

Please don't forget to format files with prettier.
If the commit title doesn't fit into github name, it is in my opinion definitely too long. Too long git commit messages make it difficult to read the log. (Here is the link that goes around in the Equinor chats as a git commit message recommendation, btw)

Close this PR as it is duplicate of other code


Update manage-conditional-access.md - CAPs enforces PATs

Removing warning notice about lack of support for CAPs using PATs. With sprint 142 update to Azure DevOps, CAPs are now honored with PATS, SSH keys, alternate creds and Oauth.

@mfjerome Thank you for for fixing this. I am merging this PR and it should be live soon.


FactoryBot::DuplicateDefinitionError when referencing constant that does not exist

@james-dowling and I just noticed that when we reference a constant that does not exist (whoops!) in the definition of a factory, it results in the following confusing error:
FactoryBot::DuplicateDefinitionError:  Factory already registered: activity

In our case, this definition - where banana is another factory - works fine:
FactoryBot.define do
  factory :something do
    banana
  end
end

But if we try to assign a non-existent constant as a default for banana, we get that FactoryBot::DuplicateDefinitionError:
FactoryBot.define do
  factory :something do
    banana ImaginaryConstant
  end
end

Perhaps the error causes FactoryBot to reload all the factory definitions for some reason?

I am not having any luck reproducing this. Your second example gives me the expected uninitialized constant ImaginaryConstant:
require 'factory_bot'

class Something
end

FactoryBot.define do
  factory :something do
    banana ImaginaryConstant
  end
end

Any ideas what is missing?
You should normally only get a FactoryBot::DuplicateDefinitionError if you try to define two factories with the same name:
require 'factory_bot'

class Something
end

FactoryBot.define do
  factory :something do
  end

  factory :something do
  end
end

I'm going to close for now. Feel free to reopen if I missed something. I would need a bit more context - ideally in the form of a reproduction script or a sample repo the demonstrates the issue. Thanks!