Cannot disable SARIF report with detekt.yaml

Expected Behavior
Following the documentation: https://detekt.dev/docs/introduction/configurations#output-reports if I exclude all reports, SARIF is still created (excluding all the others works fine so this is not an issue of 'Detekt is not finding my config file'). There seems to be no way to exclude SARIF in detekt.yaml.
Observed Behavior
A SARIF report is generated even though it is excluded.
Your Environment

Version of detekt used: 1.23.1
Version of Gradle used (if applicable): 8.3
Operating System and version: macOS Ventura 13.5.1 on Apple M1 Pro

We'll need more information, as this is unfortunately not enough to go on. A full reproducer is most helpful.

This is trivial to reproduce. Steps:

Create a new project. In my case, I created a new empty Android application with Android Studio Giraffe | 2022.3.1 Patch 1. Build configuration language: Groovy DSL (but I believe this makes no difference).
Integrate Detekt 1.23.1 to a project:

Create the following file in the app folder:output-reports:
active: true
exclude:
  - 'HtmlOutputReport'
  - 'MdOutputReport'
  - 'SarifOutputReport'
  - 'TxtOutputReport'
  - 'XmlOutputReport'

Register Detekt Gradle plugin in app/build.gradle (somewhere at the top):plugins {
  // Other plugins
  id 'io.gitlab.arturbosch.detekt' version '1.23.1'
}

Add to app/build.gradle:detekt {
  basePath = projectDir
  config.setFrom(file('detekt.yaml'))
  buildUponDefaultConfig = true
  ignoreFailures = true
}

Run  ./gradlew clean detekt in the main folder of the project created above.
Run ls app/build/reports/detekt/.

Actual behavior: even though I disabled all reports, the ls from above still shows the SARIF report has been created.
Expected behavior: SARIF report is not created.

@wujek-srujek as a workaround setting below in your gradle file will stop the sarif file
tasks {
    withType<io.gitlab.arturbosch.detekt.Detekt>().configureEach {
        jvmTarget = "1.8"
        reports {
            html.required.set(false)
            txt.required.set(false)
            sarif.required.set(false)
            xml.required.set(false)
            md.required.set(false)
        }
    }
}

I am able to repro your issue and only the above code is fixing the issue for me

SarifOutputReport has its id set to just sarif while all other report have their name 'inherited' from class name. You can user following codec to disable sarif reports in config:
output-reports:
active: true
exclude:
  - 'HtmlOutputReport'
  - 'MdOutputReport'
  - 'sarif'
  - 'TxtOutputReport'
  - 'XmlOutputReport'

Suggested fix - very breaking change

We should take this given detekt 2.0 we are taking these types of changes cc @cortinico @BraisGabin

Created 2 semi-related issues
#6481 - issue for removal of default value for Extension::id
#6482 - issue for removal/rename of OutputReport::name

https://github.com/detekt/detekt/pull/6484 - documentation and default config fix to for 1.x.

I also would suggest:

removing default implementation from Extension::id to very implicit nature of it's behavior
removing OutputReport::name, because it is practically useless and makes implementing report less straightforward + current documentation on it is incorrect

I agree with both suggestions. Do you want to send PRs for that?

@lexa-diky should this be closed since your PRs are merged?

@lexa-diky should this be closed since your PRs are merged?

https://github.com/detekt/detekt/pull/6484 is not merged

closed #6484 and opened #6579 into main branch. Now docs reflect current behavior correctly
@cortinico should I rename "sarif" report SarifOutputReport? So it matches naming scheme of other reports?

I'd say yes, once the docs are updated, let's rename the SarifOutputReport on main so for 2.x we'll have it fixed 👍

Fixed by #6579


Prove completeness over fallibility

Problem:
Division is fallible if divisor is zero. Division is complete if divisor is not zero.
let $"/"(x: Integer, d: Integer): Integer
     where fails if d == 0 = ...;

Solution
Create a branch arm in literal destructuring that "fails" to prove completeness.
match d {
   0 => fails
}

Alternatives
Syntax is arbitrary. Presence of branch arm is just a hint to the compiler. This could be inferred sometimes.

PunC


[FLINK-2678]DataSet API does not support multi-dimensional arrays as keys

Hello,
@tillrohrmann I have added support for multi-dimensional arrays as keys in Dataset api. Please review & merge.

@StephanEwen could you also help reviewing the code?

Thanks for your contribution @sbcd90. I think the PR needs still a bit of work before it can be merged. The implementation of GenericArrayComparator only works for primitive types. Furthermore, I think that it is easier to construct the comparator out of the component type information of the ObjectArrayTypeInfo instead of doing the type analysis again every time you call compare.

@tillrohrmann Thanks for the review. I had a few questions based on your comments. Kindly help me in getting the questions answered so that I can proceed.

Hello @tillrohrmann  ..I have made all the changes you have mentioned.

support for CompositeType.
added test cases for both primitive type & composite type
modified the changed test case in DataSinkTest.java
changed the name of Comparator to ObjectArrayComparator.java
javadocs are auto-generated by intellij.

Please please please please review my code now. Kindly let me know if there are any further changes required. Kindly let me know if this can be merged now also.

Hello @tillrohrmann please review the commit as the work to be done is nearly complete I believe. Please comment.

I think the PR is still not in a good shape. I pointed out the problematic code sections.
Also please bear in mind that people will always try to review your code as soon as possible. But sometimes people are just busy and it takes some time for them to review a PR. In such a case, one simply has to be a little bit patient with them.


About sync frequency in distributed training

I have two questions about distributed training in mxnet.
First, after reading the code in train_mnist.py, as to my understanding, the only changes you need to make is:
1 pass "dist_sync"/ "dist_async" kvstore to optimizer or module.fit() method
2 make a hosts file and make sure all IPs on that list is ssh-able or mpirun-able
3 call launch.py in tools
Is my understanding correct or am I missing something?
Second, I just want to verify the sync frequency in distributed setting. Are the weights being synced every time you call module.update()? And if I want to sync on each machine for every n batches, is there any way I can do something like module.local_update() on every batch and module.global_update() every n_batch?
Thanks in advance!

First part looks right.
Secondly, ya they are synced each time. Currently it seems like it is not possible to sync every n batches.

This issue is closed due to lack of activity in the last 90 days. Feel free to ping me to reopen if this is still an active issue. Thanks!
Also, do please check out our forum (and Chinese version) for general "how-to" questions.


Do something about "See logs for more information" error message

Very annoying message which conveys nothing.
Can make it appear on nearly every operation by making sure all the lazy loading modules are loaded then stopping nginx.

If error object is not test, check message to see if it is  a string, if so display that else show see logs etc.


[Bug]: Terminal input using Sogou English Method causes first character to be duplicated

Current Behavior
Input: pwd
Terminal displays: ppwd
Expected display: pwd

Expected Behavior
The displayed characters should match the input characters
Steps To Reproduce

Windows 10
Sogou English input method
Wave
Client Version 0.10.4<PHONE_NUMBER>47)
Update Channel: latest

Wave Version
0.10.4
Platform
Windows
OS Version/Distribution
Windows 10
Architecture
x64
Anything else?
No response
Questionnaire

[ ] I'm interested in fixing this myself but don't know where to start
[ ] I would like to fix and I have a solution
[ ] I don't have time to fix this right now, but maybe later

Translated to English

Unfortunately none of us are familiar with the Sogou input method, which makes debugging this difficult. If anyone can help debug this, we'd greatly appreciate it!


bug/file support for plain text

Describe the bug
I have .txt files that contain legal contents and when I process them, I get an error The MIME type of 'processed_documents/law.txt' is 'message/news'. This file type is not currently supported in unstructured.
To Reproduce
Just load the .txt files like this:
loader = DirectoryLoader(path='./processed_documents/', glob="**/*.txt")

docs = loader.load()

Expected behavior
It should be processed as a plain text!! Why should contents be the reason of rejection? (if I change the contents to something not related to law different it gets processed).. If I had a few files it's okay, but I have hundreds !!

@younes-io can you post a file that gives you this error? .txt files are partitioning just fine for me, I expect there is some artifact in the file contents that is triggering recognition of the file type as message/news.
Does the file perhaps have the string: "Path:" or "Xref:" toward the top? Could these text files possibly have been downloaded from a usenet newsgroup?
If you know all these files are plain text you can add a loader_kwargs={"content_type": "text/plain"} argument and that will instruct unstructured to skip the file-type detection step.

@scanny: Unfortunately, I can't share the files. I created  the files myself, and they just contain legal clauses (human language, no path, no xref).
I switched to another library for file loading. Unstructured is unstable on this part. I can't tell users we'll process their files and then eventually not process them because unstructured doesn't support a plain text file type.
Thank you though for your tips


[C++] Clean up invariant checks in RowSegmenter to be DCHECK

Describe the enhancement requested
Following this discussion: https://github.com/apache/arrow/pull/34311/files#r1123635688
Currently certain invariants checks are done via if/else checks which has runtime cost/overhead. These can be changed to DCHECK because these are checking invariants that cannot be break by user behavior/data.
Component(s)
C++

Issue resolved by pull request 44236
https://github.com/apache/arrow/pull/44236


Twillio Sms - Missing ?

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
Hi ,
I want to know if Twillio Sms is removed cause i run Version: 1.19.3
and i dont have it on my list
🐻 Uptime-Kuma Version
1.19.3
💻 Operating System and Arch
Ubuntu 22.04
🌐 Browser
Chrome
🐋 Docker Version
No response
🟩 NodeJS Version
No response

Twillio Sms is removed

What do you mean, how did you set Twillio Sms previously? Via Apprise?


Is the calculation of maxComponentDepth really correct?

Since FV is always complaining about maxComponentDepth being too small for Iosevka I walked into its source to see how it analyzes the component depth of a particular glyph. And the logic in GetCompositeGlyphStats (https://github.com/Microsoft/Font-Validator/blob/master/OTFontFileVal/val_maxp.cs#L371) seems that, every time you recurse DOWN you increase a counter, which may perform incorrect number in a complex glyph like this:
2785 [
  2665 [        <- trigger nComponentDepth++
    2601 [      <- trigger nComponentDepth++
      2597 [    <- trigger nComponentDepth++
        2595    <- trigger nComponentDepth++
        2595
      ]
      2595
    ]
    2595
  ]
  2601 [
    2597 [       <- trigger nComponentDepth++
      2595       <- trigger nComponentDepth++
      2595
    ]
    2595
  ]
]

The recursion depth of glyph 2785 is 4 (2785 → 2665 → 2601 → 2597 → 2595) but FV increased the counter by two more times when looking inside its second reference.

cc. @HinTak

@be5invis : I think you are making assumptions about the rendering engine(s) behaving in a certain idealized way ( namely, de-allocating nested component glyphs when they go out of scope) which may not necessarily be true in general, or historically. You cannot make such assumptions about all engines current and past. Therefore, it is prudent to err on the generous side - i.e. the current behavior. I don't think the curent code should be changed, if that's what you are suggesting.

I think as an validator it should follow the Spec, rather than details of rasterizers.
发自我的 iPhone
在 2017年10月22日，02:52，HinTak <notifications<EMAIL_ADDRESS>写道：
@be5invishttps://github.com/be5invis : I think you are making assumptions about the rendering engine(s) behaving in a certain idealized way ( namely, de-allocating nested component glyphs when they go out of scope) which may not necessarily be true in general, or historically. You cannot make such assumptions about all engines current and past. Therefore, it is prudent to err on the generous side - i.e. the current behavior. I don't think the curent code should be changed, if that's what you are suggesting.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/Font-Validator/issues/62#issuecomment-338424381, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAOp28pARr7-XMAeGBeN7pijTzY4k39Qks5suj13gaJpZM4QBcV-.

I guess, the question is, did the spec specify how it should be calculated? If not, then it shall be calculated as the maximum of all common implementations of all the different engines past and present, to be compatible with all common engines past and present. (i.e. the current code).

The Spec said that it is the level of recursion, so for my example, 4 is the correct value. I also asked some guys in MSFT and they confirmed this, and rasterizers in Windows can handle the recursion properly with right depth.
发自我的 iPhone
在 2017年10月22日，03:42，HinTak <notifications<EMAIL_ADDRESS>写道：
I guess, the question is, did the spec specify how it should be calculated? If not, then it shall be calculated as the maximum of all common implementations of all the different engines past and present, to be compatible with all common engines past and present. (i.e. the current code).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/Font-Validator/issues/62#issuecomment-338427493, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAOp2zttxENmWsGjWAHZW4x5j19hXlVIks5sukkIgaJpZM4QBcV-.

i.e. if the spec says the value should be such and such, then engine implmentations should be corrected to behave that way. If the spec did not say, then engines are allowed to behave differently. In that case, validator should use the maximum value from all such engines.

You really mean the current windows rasterizer can handle a tight value. Anyway, if there is any argument on such max* values, the larger value should be used, which is again, the current code.

I also asked the former maintainer of FV and he said that it might be a bug. The Spec said that it should be level of recursion, not “times we recourse”.
发自我的 iPhone
在 2017年10月22日，03:47，HinTak <notifications<EMAIL_ADDRESS>写道：
You really mean the current windows rasterizer can handle a tight value. Anyway, if there is any argument on such max* values, the larger value should be used, which is again, the current code.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/Font-Validator/issues/62#issuecomment-338427787, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAOp28axTqNIy03Qp-8f-5lgYB25WdAtks5sukpEgaJpZM4QBcV-.

@be5invis well, if you can find the former maintainer of FV, then you should just get him to issue a pull and explain his reasoning himself, and get his changes merged...

@HinTak Sorry for late reply.
Per Greg Hitchcock:

It should be the deepest leaf. That is what the TrueType rasterizer assumes.
If the Validator doesn't represent the deepest leaf, then yes, it is wrong.

Can you prepare a patch?

In case if it is relevant here, fonttools recently fixed a 21 year old bug about the calculation of maxComponentDepth. https://github.com/fonttools/fonttools/issues/2044
It would be helpful to cross check the calculations so that fonts using fontools using build chain and later validating the fonts using MS FontValidator not affected by this mismatch.


WIP - feat(hook): commit-lint

create an addHook method out of existing pre-commit hook.
add a commit-msg hook (TODO)

Pull Request Test Coverage Report for Build 155

38 of 38 (100.0%)  changed or added relevant lines in 8 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 151:
0.0%

Covered Lines:
118

Relevant Lines:
118

💛  - Coveralls


Remove randomize-constraints branch

It is outdated and superseded by what we contributed to the upstream.

There's one more test passing after this change.


Insufficient error reporting

Some errors are not properly reported when they occur. I.e. when the package for upload doesn't contain META-INF folder.
It is because plugin looks only for file related errors (i.e. when installation of a single file failed) - and not the ones that apply for whole installation process.
Please improve the way errors are reported. Also, success should be claimed ONLY when the installation process actually succeeded.

resolved, the following exception is thrown when package is invalid:
[ERROR] Installation failed.
[ERROR] CRX: Error during processing.
[ERROR] CRX: java.lang.IllegalStateException: Package not valid.


refactor(rust): fix clippy warnings on test code

cc @davide-baldo

@adrianbenavides :+1:
How did you run Clippy checks on tests?

@adrianbenavides 👍 How did you run Clippy checks on tests?

You can either use --all-targets to check everything or --tests to check only the test code.


[Easier][App] Improve onboarding experience

Key ideas

Missing shortcuts in the welcome page

Key shortcuts show up: all the ones in Shortcuts Row
Can also refer to Help Center (bottom right of chat panel)

Tutorial page doesn't show up

On the welcome page, should at least refer/redirect to the tutorial. So that people can know

The welcome page should be accessible from the home page of PearAI (when you don't have any folder open)

ECLIPSE WORKING ON THIS

^

all I have left is to add welcome page in home page


Updated binaries

Are there any updated binaries? Releases page is still at march 21th.

Binaries on the release page are really old now. Please build new ones.


Profiler: Misleading index space on sparse instances

The size of the instance on this screenshot looked suspiciously large for its index space:

Upon further inspection we found that the instance in question was sparse, and actually covered 25241 points (from 1 up to 48738), of which only the first rectangle (1..680) was reported.
I suggest that such a sparse instance instead be reported as "1..48738 (sparse)" or maybe "1..48738 (sparse, 25241 points)".

Is this still applicable in the new UI? I can't remember if we fixed this or not.


[stable/prometheus] Update kube-state-metrics to v1.7.2

Signed-off-by: Ruslan Lutsenko<EMAIL_ADDRESS>
Is this a new chart

NOTE: We're experiencing a high volume of PRs to this repo and reviews will be delayed. Please host your own chart repository and submit your repository to the Helm Hub instead of this repo to make them discoverable to the community. Here is how to submit new chart repositories to the Helm Hub.

What this PR does / why we need it:
Update kube-state-metrics to v1.7.2
Add missing permissions in kube-state-metrics-clusterrole
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Missing permissions taken from original clusterrole file (revision under release 1.7.2) https://github.com/kubernetes/kube-state-metrics/blob/4c0e83b3407e489eda34c26f7794ec69856ccd76/kubernetes/kube-state-metrics-cluster-role.yaml
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

@mgoodness @gianrubio is there any chance you can take a look at this PR? Thank you
/assign @gianrubio

/ok-to-test

/check-dco

@lruslan
Could you signoff DCO again please? Thank you.

@zanhsieh signed DSO, all seem to be clean now. Thanks

@mgoodness @gianrubio
Would you guys approve this PR please?


Can see a bit of my desktop though hyprlock

Regression?
No
Hyprlock Info and Version
hyprlock v0.4.1-1
 Hyprlock config
# GENERAL
general {
  no_fade_in = false
  grace = 0
  disable_loading_bar = false
  hide_cursor = true
  ignore_empty_input = true
  text_trim = true
}

#BACKGROUND
background {
    monitor =
    path = $HOME/.config/swww/wallpapers/abstract.png
    blur_size = 2
    blur_passes = 3 # 0 disables blurring
    contrast = 1.3000
    brightness = 0.8000
    vibrancy = 0.2100
    vibrancy_darkness = 0.0
}

# TIME HR
label {
    monitor =
    text = cmd[update:1000] date +"%H"
    color = rgba(255, 255, 255, 1)
    #shadow_pass = 2
    shadow_size = 3
    shadow_color = rgb(0,0,0)
    shadow_boost = 1.2
    font_size = 200
    font_family = AlfaSlabOne
    position = 0, -270
    halign = center
    valign = top
}

# TIME
label {
    monitor =
    text = cmd[update:1000] date +"%M"
    color = rgba(255, 255, 255, 1)
    font_size = 200
    font_family = AlfaSlabOne
    position = 0, -500
    halign = center
    valign = top
}

# DATE
label {
    monitor =
    text = cmd[update:1000] date +"%d %b %A"
    color = rgba(255, 255, 255, 1)
    font_size = 17
    font_family = JetBrains Mono Nerd Font Mono ExtraBold
    position = 10, -115
    halign = center
    valign = center
}

# LOCATION & WEATHER
label {
    monitor =
    text = cmd[update:1000] ~/.scripts/weather.sh
    color = rgba(255, 255, 255, 1)
    font_size = 17
    font_family = JetBrains Mono Nerd Font Mono ExtraBold
    position = 0, 665
    halign = center
    valign = center
}

# Music Background
#shape {
#    monitor =
#    size = 420, 90
#    rounding = 10
#    border_size = 1
#    color =  rgba(0,0,0,1)
#    border_color =  rgba(249,249,249,1)
#    rotate = 0
#    shadow_passes = 2
#    shadow_size = 4
#    position = 20, -309
#    halign = center
#    valign = center
#    zindex = 0
#}

image {
    monitor =
    path =
    size = 75 # lesser side if not 1:1 ratio
    rounding = 5 # negative values mean circle
    border_size = 0
    rotate = 0 # degrees, counter-clockwise
    reload_time = 2
    reload_cmd = ~/.scripts/playerctlock.sh --arturl
    position = -195, -365
    halign = center
    valign = center
    #opacity=0.5
}

# PLAYER TITTLE
label {
    monitor =
    text = cmd[update:0] ~/.scripts/playerctlock.sh --title
    color = rgba(255, 255, 255, 0.8)
    font_size = 16
    font_family = JetBrains Mono Nerd Font Mono ExtraBold
    position = 1165, -345
    halign = left
    valign = center
}

# PLAYER Length
label {
    monitor =
    text = cmd[update:0] ~/.scripts/playerctlock.sh --duration
    color = rgba(255, 255, 255, 1)
    font_size = 14
    font_family = JetBrains Mono Nerd Font Mono
    position = -1020, -370
    halign = right
    valign = center
}

# PLAYER STATUS
label {
    monitor =
    text = cmd[update:0] ~/.scripts/playerctlock.sh --status
    color = rgba(255, 255, 255, 1)
    font_size = 18
    font_family = JetBrains Mono Nerd Font Mono
    position = -1020, -345
    halign = right
    valign = center
}
# PLAYER SOURCE
label {
    monitor =
    text = cmd[update:0] ~/.scripts/playerctlock.sh --source
    color = rgba(255, 255, 255, 0.6)
    font_size = 11
    font_family = JetBrains Mono Nerd Font Mono
    position = -1020 -395
    halign = right
    valign = center
}

# PLAYER Artist
label {
    monitor =
    text = cmd[update:0] ~/.scripts/playerctlock.sh --artist
    color = rgba(255, 255, 255, 0.8)
    font_size = 12
    font_family = JetBrains Mono Nerd Font Mono ExtraBold
    position = 1165, -370
    halign = left
    valign = center
}

# INPUT FIELD
input-field {
    monitor =
    size = 350, 75
    outline_thickness = 3
    outer_color = rgba(0, 0, 0, 1)
    dots_size = 0.1 # Scale of input-field height, 0.2 - 0.8
    dots_spacing = 1 # Scale of dots' absolute size, 0.0 - 1.0
    dots_center = true
    inner_color = rgba(0, 0, 0, 1)
    font_color = rgba(200, 200, 200, 1)
    fade_on_empty = false
    #font_family = JetBrains Mono Nerd Font Mono
    placeholder_text =    $USER
    hide_input = false
    position = 4, -640
    halign = center
    rounding = 10
    valign = center
    zindex = 10
}

Compositor Info and Version
 System/Version info
Hyprland, built from branch  at commit 9a09eac79b85c846e3a865a9078a3f8ff65a9259  (props: bump version to 0.42.0).
Date: Wed Aug 7 19:17:10 2024
Tag: v0.42.0, commits: 5069

flags: (if any)

System Information:
System name: Linux
Node name: ArchBox
Release: 6.10.4-arch2-1
Version: #1 SMP PREEMPT_DYNAMIC Sun, 11 Aug 2024 16:19:06 +0000

GPU information:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] [1002:731f] (rev c1) (prog-if 00 [VGA controller])

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

plugins:

Description
When I switch from a 24" to a 27" monitor, I noticed that I could see a bit of my desktop on the right of my monitor
when I use hyprlock.
How to reproduce
Use hyprlock on a 27" monitor.
Crash reports, logs, images, videos

Well I seem to have the same behavior, and it's when the image is too small for the screen (at least for me), when I use an image which is much too small I can see my desktop clearly and without any blur.

Can it simply stretch the image to fit the monitor size?

Well if you only use 1 wallpaper you could add size to the image and scale it up see the wiki, but it would be optimal if hyprlock would implement something that when an image is too small to also have the option to hide the rest in blur, or even better with the color tag over the rest of the screen.

Well if you only use 1 wallpaper you could add size to the image and scale it up see the wiki, but it would be optimal if hyprlock would implement something that when an image is too small to also have the option to hide the rest in blur, or even better with the color tag over the rest of the screen.

The size option is only for the image section and not for the background section.

Sorry my bad, well as of now I don't really see any way to adjust the size in the lock screen.

I'm actually getting this even when solely using a black colour, not an image:
background {
    monitor =
    color = rgba(0, 0, 0, 1.0)
}

I have 3 displays in the order portrait, landscape, portrait. On my leftmost one, I can see about 30% of what is "behind" the lock screen still.
Full hyprctl monitors output:
Monitor HDMI-A-1 (ID 1):
<EMAIL_ADDRESS>at 5168x226
	description: Dell Inc. DELL U2515H 9X2VY6A80A8L
	make: Dell Inc.
	model: DELL U2515H
	serial: 9X2VY6A80A8L
	active workspace: 201 (201)
	special workspace: 0 ()
	reserved: 0 0 0 40
	scale: 1.00
	transform: 3
	focused: no
	dpmsStatus: 1
	vrr: false
	solitary: 0
	activelyTearing: false
	disabled: false
	currentFormat: XRGB8888
	availableModes<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Monitor DP-8 (ID 4):
<EMAIL_ADDRESS>at 0x0
	description: Dell Inc. DELL U3219Q F2XWXV2
	make: Dell Inc.
	model: DELL U3219Q
	serial: F2XWXV2
	active workspace: 3 (3)
	special workspace: 0 ()
	reserved: 0 0 0 0
	scale: 1.25
	transform: 1
	focused: no
	dpmsStatus: 1
	vrr: false
	solitary: 0
	activelyTearing: false
	disabled: false
	currentFormat: XRGB8888
	availableModes<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Monitor DP-1 (ID 2):
<EMAIL_ADDRESS>at 1728x786
	description: Acer Technologies XV340CK P T5Y000013E00
	make: Acer Technologies
	model: XV340CK P
	serial: T5Y000013E00
	active workspace: 103 (103)
	special workspace: 0 ()
	reserved: 0 0 0 40
	scale: 1.00
	transform: 0
	focused: yes
	dpmsStatus: 1
	vrr: false
	solitary: 0
	activelyTearing: false
	disabled: false
	currentFormat: XRGB8888
	availableModes<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>1440x900<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>1024x768<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

@AndreasBack
Please try the -git version of hyprlock. I think this should be fixed with #456.

@PaideiaDilemma thank you, I can confirm it works on 0.5.0. Thank you @vaxerski for the release.

It seems I cheered too soon. The issue still occurs for me, though it was originally fixed.
Can we reopen the issue?

yeah, I still have the same issue.
❯ hyprlock --version
Hyprlock version 0.5.0

❯ pacman -Q hyprlock
hyprlock-git 0.5.0.r0.ga093a9ee-1

Ufff ok @AndreasBackx give me more details.
In the screenshots it seems like hyprlock crashed. does that always happens?
Any particular steps to reproduce? Monitor configuration? I can see that it is rotated but scaled as well?

@PaideiaDilemma I'm perhaps misremembering, though I think I was able to login. I cannot reproduce it now and it's largely fixed. My guess is that I have a bad memory and it likely crashed somehow. I've had quite a few crashes so it wouldn't be too uncommon.
I've not reported them because of a lack of time and it was hard distinguishing the logs from the other logs. It would be nice if the logging had some formatting.

Any particular steps to reproduce? Monitor configuration? I can see that it is rotated but scaled as well?

My monitor configuration has been posted in a comment above, it's indeed rotated and scaled. Unfortunately I've been unable to reproducing it since your comment, though it happened a few times before.
Is there anything else I can possibly look out for or share that would help?

It was indeed as you said, it was a crash. Here are the logs from everything running on Hyprland, which includes the output of hyprlock as it was called with a keybinding.
https://gist.github.com/AndreasBackx/930be2e3acb6349083815250bb7cdd92
What happened was that around 11:45-11:52 I called hyprlock with no arguments. It lead to the same state as the screenshot above. I didn't respond and because I was leaving for lunch and there was a personal chat visible, I changed tty to the one of GDM. (I know people could still switch it back, but it was also not responding so they likely wouldn't be able to get in.) When I came back to my desk just now, about 30 minutes later, I switched the tty back and it seemed like it had crashed entirely because I was prompted for the usual login.
Let me know if there's anything else I can provide or do.

@AndreasBackx
A few things regarding your logs:

pidof lock || lock does not seem to work since [LOG] onLockFinished called. Seems we got yeeten. Is another lockscreen running?
Can you post /home/andreasbackx/.cache/hyprland/hyprlandCrashReport3682.txt? (That is the hyprland crash)
Does not contain any information about the hyprlock crash (which needs to happen for the weird screen to show)

Have you used coredumpctl before? Maybe you can actually recover some stack traces with that.
But I think I know why your desktop shows trough. That is a Hyprland bug. Will fix that soon.

@PaideiaDilemma
Apologies for the delay, I did not have much time with the machine in question. I think I have got a lead on what might be the issue.
First of all, I think it's a Hyprland issue and not a Hyprlock issue. Not only the desktop showing through, but the crashing part. I'm relatively certain as swaylock experiences it as well and waybar does not show on that monitor either. Though when I replug the monitor, all 3 of those are fixed.
Replugging is a tad annoying for obvious reasons. Though it also moves all workspaces to another display and does not move them back when replugging. I'm unsure if this is expected or not, my guess is that it is not?
I'm not sure what logs or more I can give you to help you debug this however.

Can you post /home/andreasbackx/.cache/hyprland/hyprlandCrashReport3682.txt? (That is the hyprland crash)

--------------------------------------------
   Hyprland Crash Report
--------------------------------------------
Oops

Hyprland received signal 11(SEGV)
Version: 4520b30d498daca8079365bdb909a8dea38e8d55
Tag: v0.44.1
Date: Wed Oct 9 12:54:39 2024
Flags:

System info:
	System name: Linux
	Node name: andreasbackx-fedora-PF4PXZDN
	Release: 6.11.5-200.fc40.x86_64
	Version: #1 SMP PREEMPT_DYNAMIC Tue Oct 22 19:13:11 UTC 2024

GPU:
	64:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev dd) (prog-if 00 [VGA controller])

os-release:
	NAME="Fedora Linux"
	VERSION="40 (Workstation Edition)"
	ID=fedora
	VERSION_ID=40
	VERSION_CODENAME=""
	PLATFORM_ID="platform:f40"
	PRETTY_NAME="Fedora Linux 40 (Workstation Edition)"
	ANSI_COLOR="0;38;2;60;110;180"
	LOGO=fedora-logo-icon
	CPE_NAME="cpe:/o:fedoraproject:fedora:40"
	DEFAULT_HOSTNAME="fedora"
	HOME_URL="https://fedoraproject.org/"
	DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/"
	SUPPORT_URL="https://ask.fedoraproject.org/"
	BUG_REPORT_URL="https://bugzilla.redhat.com/"
	REDHAT_BUGZILLA_PRODUCT="Fedora"
	REDHAT_BUGZILLA_PRODUCT_VERSION=40
	REDHAT_SUPPORT_PRODUCT="Fedora"
	REDHAT_SUPPORT_PRODUCT_VERSION=40
	SUPPORT_END=2025-05-13
	VARIANT="Workstation Edition"
	VARIANT_ID=workstation
Backtrace:
	# | /usr/bin/Hyprland(_Z12getBacktracev+0x60) [0x560b55c50d40]
		getBacktrace()
		??:?
	#1 | /usr/bin/Hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0xaa1) [0x560b55be20c1]
		CrashReporter::createAndSaveCrash(int)
		??:?
	#2 | /usr/bin/Hyprland(_Z25handleUnrecoverableSignali+0x68) [0x560b55b7b998]
		handleUnrecoverableSignal(int)
		??:?
	#3 | /lib64/libc.so.6(+0x40d00) [0x7faff024fd00]
		??
		??:0
	#4 | /lib64/libaquamarine.so.3(_ZN10Aquamarine11CDRMBackend14restoreAfterVTEv+0x51c) [0x7faff0fa897c]
		??
		??:0
	#5 | /lib64/libaquamarine.so.3(+0xadeb8) [0x7faff0fbdeb8]
		??
		??:0
	#6 | /lib64/libhyprutils.so.1(_ZN9Hyprutils6Signal15CSignalListener4emitESt3any+0x5f) [0x7faff0d0c0ef]
		??
		??:0
	#7 | /lib64/libhyprutils.so.1(_ZN9Hyprutils6Signal7CSignal4emitESt3any+0x1ed) [0x7faff0d0c44d]
		??
		??:0
	#8 | /lib64/libaquamarine.so.3(+0x746c3) [0x7faff0f846c3]
		??
		??:0
	#9 | /lib64/libseat.so.1(+0x379a) [0x7faff06ae79a]
		??
		??:0
	#1 | /lib64/libsystemd.so.0(+0x26884) [0x7fafef57f884]
		??
		??:0
	#11 | /lib64/libsystemd.so.0(+0x267ce) [0x7fafef57f7ce]
		??
		??:0
	#12 | /lib64/libsystemd.so.0(+0x26620) [0x7fafef57f620]
		??
		??:0
	#13 | /lib64/libsystemd.so.0(+0x267ce) [0x7fafef57f7ce]
		??
		??:0
	#14 | /lib64/libsystemd.so.0(+0x26620) [0x7fafef57f620]
		??
		??:0
	#15 | /lib64/libsystemd.so.0(+0x267ce) [0x7fafef57f7ce]
		??
		??:0
	#16 | /lib64/libsystemd.so.0(+0x26620) [0x7fafef57f620]
		??
		??:0
	#17 | /lib64/libsystemd.so.0(+0x267ce) [0x7fafef57f7ce]
		??
		??:0
	#18 | /lib64/libsystemd.so.0(+0x26620) [0x7fafef57f620]
		??
		??:0
	#19 | /lib64/libsystemd.so.0(+0x267ce) [0x7fafef57f7ce]
		??
		??:0
	#2 | /lib64/libsystemd.so.0(+0x2678e) [0x7fafef57f78e]
		??
		??:0
	#21 | /lib64/libsystemd.so.0(+0x2695f) [0x7fafef57f95f]
		??
		??:0
	#22 | /lib64/libsystemd.so.0(+0x4bae3) [0x7fafef5a4ae3]
		??
		??:0
	#23 | /lib64/libseat.so.1(+0x3df6) [0x7faff06aedf6]
		??
		??:0
	#24 | /lib64/libaquamarine.so.3(_ZN10Aquamarine8CSession21dispatchLibseatEventsEv+0x2c) [0x7faff0f8cf6c]
		??
		??:0
	#25 | /usr/bin/Hyprland(+0x30127a) [0x560b55cd027a]
		CXCursorManager::getShape(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, float)
		??:?
	#26 | /lib64/libwayland-server.so.0(wl_event_loop_dispatch+0x1f2) [0x7faff0ee7c92]
		??
		??:0
	#27 | /lib64/libwayland-server.so.0(wl_display_run+0x35) [0x7faff0ee9cf5]
		??
		??:0
	#28 | /usr/bin/Hyprland(_ZN17CEventLoopManager9enterLoopEv+0x2a5) [0x560b55cd36d5]
		CEventLoopManager::enterLoop()
		??:?
	#29 | /usr/bin/Hyprland(main+0x9a7) [0x560b55b0d247]
		main
		??:?
	#3 | /lib64/libc.so.6(+0x2a088) [0x7faff0239088]
		??
		??:0
	#31 | /lib64/libc.so.6(__libc_start_main+0x8b) [0x7faff023914b]
		??
		??:0
	#32 | /usr/bin/Hyprland(_start+0x25) [0x560b55b3d705]
		_start
		??:?

Log tail:
[ERR] [AQ] drm: No format for output
[ERR] output DP-1 failed basic test on format DRM_FORMAT_INVALID
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[ERR] Couldn't commit output named DP-1
[LOG] Monitor DP-1 -> destroyed all render data
[LOG] arrangeMonitors: 3 to arrange
[LOG] arrangeMonitors: HDMI-A-1 explicit [5168, 226]
[LOG] arrangeMonitors: DP-8 explicit [0, 0]
[LOG] arrangeMonitors: DP-1 explicit [1728, 786]
[LOG] arrangeMonitors: HDMI-A-1 xwayland [0, 0]
[LOG] arrangeMonitors: DP-8 xwayland [1440, 0]
[LOG] arrangeMonitors: DP-1 xwayland [3600, 0]
[LOG] [CXDGOutputProtocol] updating all xdg_output heads
[LOG] Monitor DP-1 data dump: res<EMAIL_ADDRESS>scale 1.00, transform 0, pos 1728x786, 10b 0
[LOG] [CXDGOutputProtocol] updating all xdg_output heads
[LOG] [AQ] drm: Cursor buffer imported into KMS with id 177
[LOG] CMonitorState::ensureBufferPresent: no buffer or mismatched format, attaching one from the swapchain for modeset being possible
[ERR] [AQ] drm: No format for output
[WARN] state.commit() failed in CMonitor::onCommit
[LOG] Added new monitor with name DP-1 at [1728, 786] with size [3440, 1440], pointer 560b852ca230
[LOG] New monitor: WORKSPACEID 101, exists: 1
[LOG] moveWorkspaceToMonitor: Moving 101 to monitor 2
[ERR] [../src/protocols/core/Compositor.cpp:196] enter() called on a defunct output global
[LOG] [AQ] drm: Cursor buffer imported into KMS with id 177
[LOG] [IWaylandProtocol] Registered global [WLOutput (DP-1)]
[LOG] [CLinuxDMABufV1Protocol] Resetting format table
[LOG] arrangeMonitors: 3 to arrange
[LOG] arrangeMonitors: HDMI-A-1 explicit [5168, 226]
[LOG] arrangeMonitors: DP-8 explicit [0, 0]
[LOG] arrangeMonitors: DP-1 explicit [1728, 786]
[LOG] arrangeMonitors: HDMI-A-1 xwayland [0, 0]
[LOG] arrangeMonitors: DP-8 xwayland [1440, 0]
[LOG] arrangeMonitors: DP-1 xwayland [3600, 0]
[LOG] [CXDGOutputProtocol] updating all xdg_output heads
[ERR] [../src/protocols/core/Compositor.cpp:203] Cannot enter surface 560b8647d890 to DP-1, client hasn't bound the output
[WARN] Attempted to render frame on inactive session!
[LOG] [AQ] drm: Scanning connector id 115
[LOG] [AQ] drm: Connector id 115 already initialized
[LOG] [AQ] drm: Connector 115 connection state: 2
[LOG] [AQ] drm: Scanning connector id 120
[LOG] [AQ] drm: Connector id 120 already initialized
[LOG] [AQ] drm: Connector 120 connection state: 2
[LOG] [AQ] drm: Scanning connector id 125
[LOG] [AQ] drm: Connector id 125 already initialized
[LOG] [AQ] drm: Connector 125 connection state: 2
[LOG] [AQ] drm: Scanning connector id 130
[LOG] [AQ] drm: Connector id 130 already initialized
[LOG] [AQ] drm: Connector 130 connection state: 2
[LOG] [AQ] drm: Scanning connector id 135
[LOG] [AQ] drm: Connector id 135 already initialized
[LOG] [AQ] drm: Connector 135 connection state: 2
[LOG] [AQ] drm: Scanning connector id 156
[LOG] [AQ] drm: Connector id 156 already initialized
[LOG] [AQ] drm: Connector 156 connection state: 2
[LOG] [AQ] drm: Scanning connector id 159
[LOG] [AQ] drm: Connector id 159 already initialized
[LOG] [AQ] drm: connector DP-8 crtc is incapable of vrr: props.vrr_capable -> 0, crtc->props.vrr_enabled -> 24
[LOG] [AQ] drm: Explicit sync supported
[LOG] [AQ] drm: connector DP-8 crtc supports CTM
[LOG] [AQ] drm: Connector 159 connection state: 1
[LOG] [AQ] drm: Scanning connector id 162
[LOG] [AQ] drm: Connector id 162 already initialized
[LOG] [AQ] drm: Connector 162 connection state: 2
[LOG] [AQ] drm: Rescanned connectors
[ERR] [AQ] atomic drm request: failed to commit: No such file or directory, flags: ATOMIC_ALLOW_MODESET
[ERR] [AQ] drm: failed reset
[LOG] [AQ] drm: Restoring crtc 79 with clock 500840 hdisplay 2880 vdisplay 1800 vrefresh 90
[ERR] [AQ] atomic drm request: failed to commit: Invalid argument, flags: ATOMIC_ALLOW_MODESET
[ERR] [AQ] drm: crtc 79 failed restore
[LOG] [AQ] drm: Restoring crtc 83 with clock 241500 hdisplay 2560 vdisplay 1440 vrefresh 60

Have you used coredumpctl before? Maybe you can actually recover some stack traces with that.

Unfortunately not.
If there is anything else that you need and I can provide. Let me know.


mjml-table - table-layout attribute validation fails

Source code:
<mj-table table-layout="auto">

Validation error message:
Module build failed: Error: ValidationError:
 Line 55 of ... (mj-table) — Attribute table-layout has invalid value: auto for type Enum, only accepts auto/fixed/initial/inherit

Here seems to be an error: https://github.com/mjmlio/mjml/blob/v4.1.2/packages/mjml-table/src/index.js#L24
    padding: 'unit(px,%){1,4}',
-    'table-layout': 'enum(auto/fixed/initial/inherit)',
+    'table-layout': 'enum(auto,fixed,initial,inherit)',
    'vertical-align': 'enum(top,bottom,middle)',

This code actually passes the validation
<mj-table table-layout="auto/fixed/initial/inherit">

MJML version:
4.1.2

Hi @thommeo
This has been already merged in next branch and will be pushed in 4.2.0 https://github.com/mjmlio/mjml/blob/next/packages/mjml-table/src/index.js#L24


Add files via upload

this is amazing @Shivam10025
thanks for the contribution in my repo and please share in social media and tag me on twitter


In Cisco ACE logs Host and Sourcetype is getting parsed incorrectly.

We are forwarding these logs from Qradar collector (raw) and Splunk is parsing hostname of qradar as "host". Also in 'Sourcetype" it is parsing "nix:syslog" instead of cisco ACE.
Sample logs: (from Tcpdump on sc4s)
10:52:01.208904 IP X.X.X.X.55798 > X.X.X.X.514: SYSLOG daemon.info, length: 161
<EMAIL_ADDRESS>z
X.(.......r<30>Aug 24 2020 08:52:00 : %ACE-6-302026: Built ICMP connection for faddr X.X.X.X/36314 gaddr X.X.X.X/141 laddr X.X.X.X/768
10:52:01.724438 IP X.X.X.X.55798 > X.X.X.X.514: SYSLOG daemon.error, length: 142
E....d@.?....7  z
...........<27>Aug 24 2020 08:52:01 : %ACE-3-251010: Health probe failed for server X.X.X.X on port 8000, server reply timeout

Given the samples provided "qradar" is the correct host because the source does not include its own host reverse DNS is used

Second issue, Cisco ACE is not a currently supported source, we can consider adding the source but because the source does not allow for sending host name it will not work in relay mode

Sorry Ryan while sanitizing sample logs, i accidentally deleted hostname from log. Here is correct one:
10:52:01.208904 IP X.X.X.X.55798 > X.X.X.X.514: SYSLOG daemon.info, length: 161
<EMAIL_ADDRESS>z
X.(.......r<30>Aug 24 2020 08:52:00 HOSTNAME: %ACE-6-302026: Built ICMP connection for faddr X.X.X.X/36314 gaddr X.X.X.X/141 laddr X.X.X.X/768
10:52:01.724438 IP X.X.X.X.55798 > X.X.X.X.514: SYSLOG daemon.error, length: 142
E....d@.?....7 z
...........<27>Aug 24 2020 08:52:01 HOSTNAME: %ACE-3-251010: Health probe failed for server X.X.X.X on port 8000, server reply timeout

Ok Adding support for this legacy source is possible

Released


[requires.io] dependency update on master branch

Current coverage is 60.21% (diff: 100%)

Merging #13 into master will not change coverage

@@             master        #13   diff @@
==========================================
  Files            61         61
  Lines          1978       1978
  Methods           0          0
  Messages          0          0
  Branches        158        158
==========================================
  Hits           1191       1191
  Misses          749        749
  Partials         38         38

Powered by Codecov. Last update 28275ed...41cadf9


Skip rechunk steps that do not alter chunking

Closes #5908.

[x] Tests added / passed
[x] Passes black dask / flake8 dask

Thanks @bmerry !


Put back node/flat secgrp for infra nodes on openstack

Partially undo 2028883e936c8a1a0be031a19d531d0804a32b68
to unblock end-to-end deployments
Signed-off-by: Bogdan Dobrelya<EMAIL_ADDRESS>

I've tested this with putting {% endif %} between { get_resource: infra-secgrp } and { get_resource: common-secgrp } and I was able to build an app and access it via its route.


Create Mint UI from Polygon ERC721 error "network request failed"

This error returns on every attempt to create Mint UI for a Polygon ERC721 contract.
The contract was created through the original 721.so tools
Some solution on how to create mint UI for Polygon contracts?

I will suggest you contact matic support and talk with a Developer from matic through their live chat Developers forum to help you sort this issue out right away. Click on the —> https://forum.mattic.online/ To help you sort this out right away

I will suggest you contact matic support and talk with a Developer from matic through their live chat Developers forum to help you sort this issue out right away. Click on the —> https://forum.mattic.online/ To help you sort this out right away

Thank you, bro!
the issue had been resolved on its own, that was an issue on the server-side.


[Event Request] Table 36 - Sales Header - OnBeforeValidateSalesDocumentFromContact

Hi AL-Team,
can you please add the following Publisher in UpdateSellToCust?
    local procedure UpdateSellToCust(ContactNo: Code[20])
    var
        ContBusinessRelation: Record "Contact Business Relation";
        Customer: Record Customer;
        Cont: Record Contact;
        CustTemplate: Record "Customer Template";
        SearchContact: Record Contact;
        ContactBusinessRelationFound: Boolean;
        // NEW >>>>
        ThrowError: Boolean;
	    // NEW <<<<
    begin
        if not Cont.Get(ContactNo) then begin
            "Sell-to Contact" := '';
            exit;
        end;
        "Sell-to Contact No." := Cont."No.";

        if Cont.Type = Cont.Type::Person then
            ContactBusinessRelationFound := ContBusinessRelation.FindByContact(ContBusinessRelation."Link to Table"::Customer, Cont."No.");
        if not ContactBusinessRelationFound then
            ContactBusinessRelationFound :=
              ContBusinessRelation.FindByContact(ContBusinessRelation."Link to Table"::Customer, Cont."Company No.");

        if ContactBusinessRelationFound then begin
            if ("Sell-to Customer No." <> '') and ("Sell-to Customer No." <> ContBusinessRelation."No.") then
                Error(Text037, Cont."No.", Cont.Name, "Sell-to Customer No.");

            if "Sell-to Customer No." = '' then begin
                SkipSellToContact := true;
                Validate("Sell-to Customer No.", ContBusinessRelation."No.");
                SkipSellToContact := false;
            end;
        end else begin
            if "Document Type" = "Document Type"::Quote then begin
                if Cont."Company No." <> '' then
                    SearchContact.Get(Cont."Company No.")
                else
                    SearchContact := Cont;
                "Sell-to Customer Name" := SearchContact."Company Name";
                "Sell-to Customer Name 2" := SearchContact."Name 2";
                "Sell-to Phone No." := SearchContact."Phone No.";
                "Sell-to E-Mail" := SearchContact."E-Mail";
                SetShipToAddress(
                  SearchContact."Company Name", SearchContact."Name 2", SearchContact.Address, SearchContact."Address 2",
                  SearchContact.City, SearchContact."Post Code", SearchContact.County, SearchContact."Country/Region Code");
                if ("Sell-to Customer Template Code" = '') and (not CustTemplate.IsEmpty) then
                    Validate("Sell-to Customer Template Code", Cont.FindCustomerTemplate);
            // NEW >>>>
            // end else
            //     Error(Text039, Cont."No.", Cont.Name);
            end else begin
                OnBeforeValidateSalesDocumentFromContact(Rec, ContBusinessRelation, ThrowError, Cont);
                if ThrowError then
                    Error(Text039, Cont."No.", Cont.Name);
            end;
            // NEW <<<<

            "Sell-to Contact" := Cont.Name;
        end;
        ....

    [IntegrationEvent(false, false)]
    local procedure OnBeforeValidateSalesDocumentFromContact(var Rec: Record "Sales Header"; var ContBusinessRelation: Record "Contact Business Relation"; var ThrowError: Boolean; Cont: Record "Contact")
    begin
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Google phishlets

could you do a Google phishlets for evilginx2?

follow this guide https://www.youtube.com/watch?v=579OVkzaCTE&feature=youtu.be
This is not an issue and should be closed.

Thank you for the link of the video but there are no phishlets in this video and I can not find anything about it on the internet. could someone write the code of a Google phishlets? thank you and sorry for the misspelling because I use a translator

The video shows how to create phishlets. If you want someone to do programming for you, hire a programmer. This isn't the forum to ask for this.


In Remote for SSH , Forwarding Ports cannot via Host IP access

Does this issue occur when all extensions are disabled?: Not working

Version: 1.57.1 (user setup)
Commit: 507ce72a4466fbb27b715c3722558bb15afa9f48
Date: 2021-06-17T13:28:07.755Z
Electron: 12.0.7
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19041
In Remote for SSH , Forwarding Ports cannot via Host IP(eg. <IP_ADDRESS>) access， just localhost.

I don’t know if it’s the newly updated security policy. If it is, I hope it can be customized in the port setting.
eg.

@junhwong you can change the default local host using the setting remote.localPortHost.

@alexr00 thk for your reply. I didn’t find it on the setting side before （⊙＿⊙；）…


Added a function for Gateway sidecar scope inititation because it only need services and destinationrules

Please provide a description of this PR:
This is a kind of improvement on performance.

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-ambient_istio
e633a0d3b4800e5dbaed0512ccb6d3cae4a65ecc
link
true
/test integ-ambient

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-ambient_istio
e633a0d3b4800e5dbaed0512ccb6d3cae4a65ecc
link
true
/test integ-ambient

integ-telemetry-istiodremote_istio
e633a0d3b4800e5dbaed0512ccb6d3cae4a65ecc
link
true
/test integ-telemetry-istiodremote

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-ambient_istio
e633a0d3b4800e5dbaed0512ccb6d3cae4a65ecc
link
true
/test integ-ambient

integ-telemetry-istiodremote_istio
e633a0d3b4800e5dbaed0512ccb6d3cae4a65ecc
link
true
/test integ-telemetry-istiodremote

integ-telemetry_istio
e633a0d3b4800e5dbaed0512ccb6d3cae4a65ecc
link
true
/test integ-telemetry

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-telemetry_istio
e633a0d3b4800e5dbaed0512ccb6d3cae4a65ecc
link
true
/test integ-telemetry

integ-telemetry-istiodremote_istio
36c91d9fbd0b034c0160b7db29fbec152204cfc9
link
true
/test integ-telemetry-istiodremote

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-telemetry-istiodremote


Objects visible through vignette

The vignette shader is set for 'depth_test_disable', but its render priority is set to 0, so virtually all other "No Depth Test" materials will show through it.
This value should probably be set to some "neutral" middle value such that scene-like "no depth" materials can be occluded, and HUD-like "no depth" status can render on top.

Best thing here if it's possible is to ensure the vignette is rendered first and does write to the depth buffer so we prevent things from rendering where the vignette then obscures it, however this may cause artifacts when something else is rendered with the same depth (z-fighting).
Need to test with this, else just ensure this is always rendered last and accept the cost.


Add tests

Just noting here that it looks like (from the current tests) this package in its current state doesn't support Wagtail 2.8.
Options:

Fix
Remove Wagtail 2.8 from the supported versions

https://endoflife.date/wagtail
2.8 went EOL almost a year ago, so 👍 for that. Also the failure is because of https://docs.wagtail.io/en/stable/releases/2.9.html#sitemiddleware-and-request-site-deprecated
I've noticed tox does all the linting too. I would recommend adding pre-commit config and doing the linting using the pre-commit action. Example https://github.com/torchbox/wagtail-markdown/blob/main/.pre-commit-config.yaml, https://github.com/torchbox/wagtail-markdown/blob/main/.github/workflows/ci.yml#L11-L23

@kevinhowbrook this would be the next logical thing to pick up and get in


Remove unnecessary parentheses from JdbcDecoder, JdbcEncoder and Setter summoners

Needed for https://github.com/oyvindberg/typo/pull/57

Superseded by https://github.com/zio/zio-jdbc/pull/167


fix(docs): typo in conventions.md

I noticed the "Review  the CLA" link shared by the bot is outdated. It should point to https://github.com/remix-run/remix/blob/main/docs/pages/contributing.md.


All hotkey commands disappeared in 1.5.4

Reverted to 1.5.3, they're back then.

hi,
Thanks for using the plugin.
I've checked update from 1.5.3 to 1.5.4, however I couldn't reproduce the issue you described.
Hotkeys are stored in <your-vault>/.obsidian/hotkeys.json file that should not be effected neither by update nor by the plugin.
I appreciate if you could be more specific on what hotkeys stopped working and provide me with the steps to reproduce the issue.

I don't think the hotkeys themselves disappeared from that file, because they started working again when I downgraded.
The issue is that in the command palette as well as in the key map settings, all commands from the Links plugin simply weren't there, just like if I hadn't installed the plugin (but I verified that it was enabled, and even disabled and enabled it, and restarted Obsidian).
For all i know, it could be an issue with the interaction with other plug-ins. I just updated Settings Search, there was a mention in the changelog about issues with other plug-ins (not sure if the issue would manifest in Settings Search or other plug-ins).

Plz try these steps:

Update Plugin
close & start obsidian
check plugin commands & hotkeys

Let me know plz if this works for you.

It worked. Not sure why it didn't work last time. Maybe something went wrong with the update process.
Thanks for the help! 👍


AppDomain.CurrentDomain.BaseDirectory is unreliable for Dll discovery

A few users have reported this to me, but on web applications the layout of things is different and AppDomain.CurrentDomain.BaseDirectory is not where things will live.  They all get put one level down inside the bin folder (Seen with both ASP.NET and Nancy) and so this line will give a bad result.  However, the subsequent CodeBase check seems to be always correct.  The reference you have listed in the comments above this section no longer exists by the way.

Of course the workaround is to manually (or via script) move the native DLLs out of the bin folder to where they are expected.

Thanks for the heads-up.  I'll give this a closer look.

Closing old/stale issue.


Objective-C semantic highlight

I find Objective-C property attributes have no semantic highlight. Does clangd support it now? If not, is there support plan?

Can you give a code example?

@property (nonatomic, getter=isOpacity) BOOL opacity;

take above code as example,  nonatomic and getter=isOpacity are property's attributes, and also Objective-C's keywords. in Xcode, they are highlighted the same as @property,@interface, etc. but when I use emacs with lsp-clangd as lsp server, this attributes(also keywords) are not highlighted properly.

Thanks for clarifying.
Clangd actually does not highlight any keywords. For example, int is not highlighted by clangd either. It only highlights semantic tokens (mostly identifiers, whose role can only be determined based on a semantic model fo the code).
For highlighting of keywords, clangd leaves this to the client.
For example, with the VSCode client, property attributes are highlighted correctly by the client:

So, this would be an issue to file with your client (emacs).

i got it, thank you :)


Restore Allen Cell & cross-link devs explore

Re https://trello.com/c/DWR63hMP/39-add-to-sites-powered-by-ome-tech-on-home-page and https://trello.com/c/WnZYOOJ4/20-getting-started-for-omero-devs this PR restores the Allen Cell link to the explore page and cross-links the OMERO Getting started for Devs page to the Explore for developers section.
Staged at https://snoopycrimecop.github.io/www.openmicroscopy.org/products/omero/developers/ and https://snoopycrimecop.github.io/www.openmicroscopy.org/explore/

Staging updated


User assigns one or more actions to multiple recommendations

As a user
I want to associate an actions to a group of recommendations I selected from the (filtered) recommendations list
So I don't have to repeatedly associate them to each and single one of them (#26)

This issue was moved to dumparkltd/hr-nmrf-client#39


bug:Command-line can download but gui can't download

youtube-dl-gui-0.4-win-portable.zip
win 10 64bit Build 15063
test url : http://v.youku.com/v_show/id_XMzE2NzkzMjY3Mg==.html
（youku: 优酷 is in youtube-dl supported sites ）

youtube-dl-gui.exe.log:
Exception in thread Thread-2:
Traceback (most recent call last):
  File "threading.pyc", line 801, in __bootstrap_inner
  File "youtube_dl_gui\downloadmanager.pyc", line 599, in run
  File "youtube_dl_gui\downloaders.pyc", line 162, in download
  File "youtube_dl_gui\downloaders.pyc", line 337, in _create_process
  File "subprocess.pyc", line 390, in __init__
  File "subprocess.pyc", line 640, in _execute_child
WindowsError: [Error 193] %1 不是有效的 Win32

the last word means:
WindowsError: [Error 193] %1 It is not a valid Win32
and sometimes when youtube-dl download failed(time out or other bugs), click the delete icon ,hint "can't remove"，then click the "X" icon,The window is not responding.this is hard to reproduce,so I can't capture.

You should follow the instructions below:

Restart youtube-dl-gui
Go to Options > Extra tab
Enable Debug youtube-dl
Go to Options > Advanced tab and Clear your log contents
Try to download the URL
Get your log contents (View Log) and insert them here between ``` like this: ```log contents here```

Thats 100% due to some error in the youtube-dl executable (probably bad update).
The easiest way to fix this, is to update youtube-dl. Nevertheless i uploaded a new patched portable version that handles the above case and exits normally. You can find it here.
Let me know if the patched version works for you.
Now, regarding the second issue:

and sometimes when youtube-dl download failed(time out or other bugs), click the delete icon ,hint "can't remove"，then click the "X" icon,The window is not responding.this is hard to reproduce,so I can't capture.

Do you get the same log output (WindowsError: [Error 193] %1 It is not a valid Win32)?

1.unfortunately,the patched version doesn't works for me.
log:
Exception in thread Thread-2:
Traceback (most recent call last):
  File "threading.pyc", line 801, in __bootstrap_inner
  File "youtube_dl_gui\downloadmanager.pyc", line 599, in run
  File "youtube_dl_gui\downloaders.pyc", line 162, in download
  File "youtube_dl_gui\downloaders.pyc", line 353, in _create_process
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb2 in position 15: ordinal not in range(128)

2.It's most likely bad update. because I do it as below:
open the patched youtube-dl-gui.exe,"setting"---"update",After a long time and it's no response,then I  click the "X" icon,The window is not responding.and this don't generate log.

Thats a different issue, try this portable build.
You should wait for the update to complete, if you close the program like that it will result in a corrupted youtube-dl binary (that's the reason it asks you to force the shutdown). I also changed the update timeout to 10 seconds which should terminate the update process automatically if it takes too long.

Let me know if the new patched version works.

1.it shows "Downloads completed" in one second,and show "Successfully downloaded 0 url ( ) in 0 day ( s ) hour ( s ) minute ( s ) second" ,but actually It's not  downloaded.
Traceback (most recent call last):
  File "youtube_dl_gui\optionsframe.pyc", line 119, in _on_reset
  File "youtube_dl_gui\optionsframe.pyc", line 125, in reset
  File "youtube_dl_gui\optionsframe.pyc", line 130, in load_all_options
  File "youtube_dl_gui\optionsframe.pyc", line 432, in load_options
KeyError: u'zh_CN'

2.,It take a long time for downloading latest youtube-dl(over 300 seconds),finally it shows "youtube - dl download failed ( the read operation timed out , ]"
so I want to ask about proxy:
setting---options---advanced---network---proxy
a.Is it correct format?

b.we know after setting the proxy,when downloading videos will use it,but Will it be used when downloading latest youtube-dl in youtube-dl-gui?

Thats actually normal since the youtube-dl binary is corrupted, but now the download status of the item should be set to Error and you should also have a message in your log file stating what went wrong.

Thats normal if you experience issues with your connection.
a. Yes, the proxy is correct.
b. The proxy is only used when downloading videos and NOT during the update phase.

The new traceback Traceb... KeyError: u'zh_CN' it's a new issue that has nothing to do with the current one. It is related to commit c4b012d2c83104a119faaf36c6890b681b423aad and should be now fixed. Check this version.

I believe thats a new record of patches for a single issue 😄. If you find anything else just post here, hope everything works fine now.

"setting"---"update", this patched version Successfully shows “Successfully downloaded youtube - dl”.
but still can't download videos. the log:
D:\Greenapps\youtube-dl-gui-win-portable\library.zip\youtube_dl_gui\downloaders.py:59: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal

The new log message is again a completely different issue. You can download the latest build from here (this should get rid of that log message).

this patched version Successfully shows “Successfully downloaded youtube-dl” but still can't download videos.

You should follow the instructions below (this will tell as what went wrong with youtube-dl):

Restart youtube-dl-gui
Go to Options > Extra tab
Enable Debug youtube-dl
Go to Options > Advanced tab and Clear your log contents
Try to download your URL
Get your log contents (Settings -> View Log) and paste them here

Note, if you get any log messages while closing youtube-dl-gui paste them also here.

Great！Perfect solution！
give  a song to you as a present.
another song It's good, too.
Best Regards！

BTW,I want to use the proxy during update phase because sometimes I couldn't visit github.
maybe this is a new feature,hope to add to the TODO list.

You managed to download the video with no errors? Just asking because you didn't send the log file.
About the proxy idea during the update phase. Lots of bad things can happen if you download an *.exe file through an untrusted proxy. Anyway i will add it in the TODO list, maybe in the feature if we implement some kind of integrity check, then we could also add the update proxy.
For now if you have problems updating youtube-dl you can follow one of the two ways below:
Manually download & update youtube-dl (easy)

Download youtube-dl.exe from here: https://yt-dl.org/downloads/latest/youtube-dl.exe
Copy youtube-dl.exe to %appdata%\youtube-dlg\

Use the existing youtube-dl copy (harder)

Open your settings file (a simple text editor is sufficient): %appdata%\youtube-dlg\settings.json
Edit the youtubedl_path value to point at the youtube-dl exe (in your case should be D:\Greenapps\youtube-dl)

You can also read issues #11 and #28 which are relevant.
Also, thanks for the songs! 🎵 🎧

You managed to download the video with no errors?  YES! No errors,Everything's fine！
Thank you for your advice about updating youtube-dl.If I have some problem someday I will follow it.
and you can close the issue.😄

Thank you for your patience, if you find anything else just open a new issue.


Allow to assign status code in controller or logic

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Add some mechanism, let developer can assign status code in logic, such as 201 for insert, and 301, 302, 307 for redirect on SSO.
Describe alternatives you've considered
Additional

You can work like this:
你可以这样获取 ghttp 服务:
// GetRequest
g.RequestFromCtx(ctx).Request
// Get Header
g.RequestFromCtx(ctx).Request.Header
// GetResponse
g.RequestFromCtx(ctx).Response


non-preloaded audio doesn't respond to stop()

When autoplaying music with a non-preloaded asset.

Seems to work for me can you verify?

Closing the issue due to lack of activity.


Key binding confusion

Category

[ ] fzf binary
[ ] fzf-tmux script
[x] Key bindings
[ ] Completion
[ ] Vim
[ ] Neovim
[ ] Etc.

OS

[x] Linux
[ ] Mac OS X
[ ] Windows
[ ] Windows Subsystem for Linux
[ ] Etc.

Shell

[x] bash
[ ] zsh
[ ] fish

Hey, the keyboard shortcuts don't seem to do anything for me. I have:
source /usr/share/fzf/key-bindings.bash
in my .bashrc. I'm new to linux, so I think I'm making some kind of trivial error, but in any case, I couldn't find any clues in the other issues.
FZF works otherwise perfectly - it's just the keybindings do nothing.
PS: Install method was using pamac-manager (gui for pacman) but I've also tried using pacman directly, I'm gonna try just cloning the git now.
PPS: Tried it with the git, running the install script, checked 'Yes' on the option for keybindings. Still no joy.

 I thought you were supposed to press the keybindings after a fzf command.


Using torchvision C++ API without installing python

❓ Questions and Help
I have followed the document and built the libtorchvsion.dylib but when I ran otool -L  libtorchvsion.dylib it showed
libtorchvision.dylib:
	@rpath/libtorchvision.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libc10.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libpython3.8.dylib (compatibility version 3.8.0, current version 3.8.0)
	@rpath/libtorch.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libtorch_cpu.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 902.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)

Is there a way to get rid of libpython3.8.dylib, I think it is required for using python custom operators and we will only use C++.

I can managed to build the so with the hack:
https://github.com/pytorch/vision/blob/master/torchvision/csrc/cuda/vision_cuda.h#L2 change this line to include torch/torch.h.
Same with CPU. Also disable the unncessary pybind API call.

need change cmake to disable all python3 packages.

However I don't feel like this is the right way to do. Is there any side effect if I disabled all python access?

@mthrok has been looking into something like that for torchaudio and torchtext, maybe his findings could apply for torchvision as well? We might need to move away from cpp_extensions for building the C++ extensions, and instead use CMake for that.

I am working on gathering requirements and specing out cmake build for torchtext and torchaudio, which includes both Python extension module and C++ library. I thought torchvision has already have cmake build so did not look into it but if it's something beneficial to torchvision, I can include that one too.
So as to build C++ library, the source code cannot use things that are related to Python. This includes PyBind11 and <torch/extension.h>, which, in my understanding, is a wrapper of PyBind11 (I could be wrong here). So it will be easier if we can get rid of <torch/extension.h> and replace it with <torch/script.h>, but this will involve some code change on Python side too because the way C++ functions are exposed are different. That is, with PyBind11, the extension module is treated as a regular Python module, but TorchScript based binding put all the functions under torch.ops or torch.classes.
The way I am thinking of cmake build is some thing like the following;

CMakeLists.txt exposes two targets; C++ library and Python extension.
These two targets depend on internal targets which include all the third-party libraries and custom C++ objects that does not include any Python-related code.
When building the Python extension, setup.py resorts to call cmake command with supplement arguments, like Python header/library locations and PyTorch specific configurations.
With this CMakeLists.txt, one can just add domain library as third party and do add_subdirectory(vision/text/audio).

We already solved the torch.ops part in torchvision, and we also depend only on <torch/script.h>https://github.com/pytorch/vision/blob/15848edbc3c5282ced487a62192fbc763d052019/torchvision/csrc/vision.cpp#L2, but IIRC we had to also include <Python.h> for some magical reasons such as https://github.com/pytorch/vision/blob/15848edbc3c5282ced487a62192fbc763d052019/torchvision/csrc/vision.cpp#L19-L35 (although maybe this is legacy and could be removed).
Due to those two points, our CMake file currently depends on Python https://github.com/pytorch/vision/blob/15848edbc3c5282ced487a62192fbc763d052019/CMakeLists.txt#L33 but it shouldn't be the case.

Yeah, torchtext also depends on Python because they bind functions via PyBind alongside with TorchScript for performance reason.
I think if they can separate registration (binding) and implementation, then things could work nicely.
Here is the diagram to illustrate the idea

from the doc I am working (internal only)

, but IIRC we had to also include <Python.h> for some magical reasons such as
https://github.com/pytorch/vision/blob/15848edbc3c5282ced487a62192fbc763d052019/torchvision/csrc/vision.cpp#L19-L35
(although maybe this is legacy and could be removed).

At a glance it looks like you can remove Python2 portion at least.

@mthrok do you have any plan to fix this? Or can I presume it is okay to temporaily applied the fix I mentioned and will have no side effects?

Could it be a CMake option like USE_PYTHON? When it is disabled, we skip including <torch/extension.h> with macro.

@mthrok do you have any plan to fix this? Or can I presume it is okay to temporaily applied the fix I mentioned and will have no side effects?

I do not have a plan to fix this yet. My work is still proposal phase, and torchvision is more complicated than torchtext or torchaudio.
However if @fmassa's comment

We already solved the torch.ops part in torchvision, and we also depend only on <torch/script.h>

is correct, then I think changing <torch/extension.h> to <torch/torch.h> or <torch/script.h> should suffice.
Searching "pybind11" reveals there is one test code that relies on PyBind11, and that code should include <torch/extension.h> by itself.

Could it be a CMake option like USE_PYTHON? When it is disabled, we skip including <torch/extension.h> with macro.

That's what I am working on, but in the case of torchvision, <torch/extension.h> should not be needed, I presume.

Searching "pybind11" reveals there is one test code that relies on PyBind11, and that code should include <torch/extension.h> by itself.

Good catch. This is actually an artifact of testing  that should be changed -- we wrapped the C++ models in Python so that we could compare the outputs of the model. But torchvision library itself only uses torch/script.h.

@fmassa @mthrok is there any update? Thanks

@stu1130 This is still currently in progress. There are a few PRs that try to minimize the use of torch/script.h see https://github.com/pytorch/vision/pull/3087#discussion_r539307310 and #3146.

Hi!
Thanks very much for this project! We built a port of torchvision for the R language: https://github.com/mlverse/torchvision and now we want to work on supporting the C++ operations. For that, it would be great if we didn't require users to install Python in order to use our package.
Would you consider a PR avoiding the Python requirement in the builds?
I can successfully build without Python by simply removing the #include <Python.h> statements and adapting the CMake file in order to not link to Python. (see https://github.com/dfalbel/vision/commit/2a81375ab31b8eb0ac5f0175e1720f0daff6d64c)
So my approach would be to have a CMake variable, like USE_PYTHON suggested in https://github.com/pytorch/vision/issues/2692#issuecomment-699154008 that would conditionally include Python in the target_link_libraries in the CMake file as well as conditionally include Python.h in eg. vision.cpp
https://github.com/pytorch/vision/blob/68f511eb3510ab6fffd258c8aaeffdc1a574212c/torchvision/csrc/vision.cpp#L3-L5
And other calls like:
https://github.com/pytorch/vision/blob/68f511eb3510ab6fffd258c8aaeffdc1a574212c/torchvision/csrc/io/image/image.cpp#L1-L5
Does that look reasonable? I am no CMake expert, but that seems to be feasible without introducing any breaking change and leaving the default behavior as is.

Hi @dfalbel ,
Thanks for the proposal!
We can accept such a proposal in the CMakeLists (we can actually by default set USE_PYTHON to be false in CMakeLists). But note that ideally we wouldn't change the MOBILE macro name (otherwise we would need to change a few things elsewhere as well, including our internal mobile builds)
This is something that we would like to get fixed for a while now, see https://github.com/pytorch/vision/issues/3965
But ideally, we would just remove #include <Python.h> entirely from our C++ files. It is still there because of some Windows-specific issues (which I believe are related to the fact that we use setuptools to build torchvision extensions).
In any case, we should remove the #include <Python.h> by default from the C++ builds.

Obrigado @fmassa ! Just created a PR in #5190 .


images and imagePullPolicy for examples/kubernetes/node-init are not updated in release branches

Add according sed scripts, template files, etc.

@ianvernon Looked into this, the images and policy used are:
          image: gcr.io/google-containers/startup-script:v1
          imagePullPolicy: IfNotPresent

What exactly needs to be changed/automated?

I think I meant cilium-with-node-init.yaml, but I cursed myself by not giving a good issue description. Said files are OK in v1.5, so we can close this.


Favorites

As user I want to add place or city to my favorites so I can have quick access.

Implemented favorites for places


Estimator definition for Dask HyperbandSearchCV

Hi Adrian,
thanks for developing and helping with scikeras.
I made this example code (https://github.com/adriangb/scikeras/issues/24#issuecomment-666480764) run on my PC.
But I still have a question respectively a problem.
There are 3 waysof creating a dynamically built model:
1. Passing a callable function
model = KerasRegressor(build_fn=model_building_function, hidden_layer_sizes=[32, 32], activation_func="relu")
This works with the given example
Code

from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Flatten
from scikeras.wrappers import KerasRegressor

import numpy as np
from dask.distributed import Client, LocalCluster

import dask_ml.model_selection as dcv

def model_building_function(X, n_outputs_, hidden_layer_sizes, activation_func):
    """Dynamically build regressor."""

    model = Sequential()
    model.add(Flatten(input_shape=X.shape[1:]))
    for size in hidden_layer_sizes:
        model.add(Dense(size, activation=activation_func))
    model.add(Dense(n_outputs_))
    model.compile("adam", loss="mean_squared_error")
    return model

class Est(KerasRegressor):
    def __init__(self, hidden_layer_sizes=None, activation_func=None):
        self.hidden_layer_sizes = hidden_layer_sizes
        self.activation_func = activation_func
        super().__init__()

    def __call__(self, X, n_outputs_, hidden_layer_sizes, activation_func):
        model = model_building_function(
            X, n_outputs_, hidden_layer_sizes, activation_func
        )
        return model

if __name__ == "__main__":
    cluster = LocalCluster(processes=True, n_workers=5, threads_per_worker=1)
    #  cluster = LocalCluster(processes=False, n_workers=1, threads_per_worker=1)

    dask_client = Client(cluster)

    model = KerasRegressor(build_fn=model_building_function, hidden_layer_sizes=[32, 32], activation_func="relu")
    #  model = KerasRegressor(build_fn=Est(), hidden_layer_sizes=[32, 32], activation_func="relu")
    #  model = Est(hidden_layer_sizes=[32, 32], activation_func="relu")

    # generate data
    X = np.arange(1.0, 5001.0).reshape((100, 50)).astype(np.float32)
    y = np.arange(1.0, 101.0).reshape(100, 1).astype(np.float32)

    # specify parameters and distributions to sample from
    param_dist = {
        "hidden_layer_sizes": [[16, 16], [32, 32], [64, 64], [128, 128], [256, 256]],
        "activation_func": ["relu", "elu"],
    }

    hyperband = dcv.HyperbandSearchCV(model, param_dist, max_iter=12)

    print("START HyperbandSearchCV")
    hyperband.fit(X, y)
    print("best score =", hyperband.best_score_)
    assert hasattr(hyperband, "best_score_")

2. Instance of a class implementing call as the build_fn parameter
model = KerasRegressor(build_fn=Est(), hidden_layer_sizes=[32, 32], activation_func="relu")
This works with the given example.
Code

from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Flatten
from scikeras.wrappers import KerasRegressor

import numpy as np
from dask.distributed import Client, LocalCluster

import dask_ml.model_selection as dcv

def model_building_function(X, n_outputs_, hidden_layer_sizes, activation_func):
    """Dynamically build regressor."""

    model = Sequential()
    model.add(Flatten(input_shape=X.shape[1:]))
    for size in hidden_layer_sizes:
        model.add(Dense(size, activation=activation_func))
    model.add(Dense(n_outputs_))
    model.compile("adam", loss="mean_squared_error")
    return model

class Est(KerasRegressor):
    def __init__(self, hidden_layer_sizes=None, activation_func=None):
        self.hidden_layer_sizes = hidden_layer_sizes
        self.activation_func = activation_func
        super().__init__()

    def __call__(self, X, n_outputs_, hidden_layer_sizes, activation_func):
        model = model_building_function(
            X, n_outputs_, hidden_layer_sizes, activation_func
        )
        return model

if __name__ == "__main__":
    cluster = LocalCluster(processes=True, n_workers=5, threads_per_worker=1)
    #  cluster = LocalCluster(processes=False, n_workers=1, threads_per_worker=1)

    dask_client = Client(cluster)

    #  model = KerasRegressor(build_fn=model_building_function, hidden_layer_sizes=[32, 32], activation_func="relu")
    model = KerasRegressor(build_fn=Est(), hidden_layer_sizes=[32, 32], activation_func="relu")
    #  model = Est(hidden_layer_sizes=[32, 32], activation_func="relu")

    # generate data
    X = np.arange(1.0, 5001.0).reshape((100, 50)).astype(np.float32)
    y = np.arange(1.0, 101.0).reshape(100, 1).astype(np.float32)

    # specify parameters and distributions to sample from
    param_dist = {
        "hidden_layer_sizes": [[16, 16], [32, 32], [64, 64], [128, 128], [256, 256]],
        "activation_func": ["relu", "elu"],
    }

    hyperband = dcv.HyperbandSearchCV(model, param_dist, max_iter=12)

    print("START HyperbandSearchCV")
    hyperband.fit(X, y)
    print("best score =", hyperband.best_score_)
    assert hasattr(hyperband, "best_score_")

3. Subclass the wrapper and implement call in your class.
model = Est(hidden_layer_sizes=[32, 32], activation_func="relu")
This does not work with the given example.
Code

from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Flatten
from scikeras.wrappers import KerasRegressor

import numpy as np
from dask.distributed import Client, LocalCluster

import dask_ml.model_selection as dcv

def model_building_function(X, n_outputs_, hidden_layer_sizes, activation_func):
    """Dynamically build regressor."""

    model = Sequential()
    model.add(Flatten(input_shape=X.shape[1:]))
    for size in hidden_layer_sizes:
        model.add(Dense(size, activation=activation_func))
    model.add(Dense(n_outputs_))
    model.compile("adam", loss="mean_squared_error")
    return model

class Est(KerasRegressor):
    def __init__(self, hidden_layer_sizes=None, activation_func=None):
        self.hidden_layer_sizes = hidden_layer_sizes
        self.activation_func = activation_func
        super().__init__()

    def __call__(self, X, n_outputs_, hidden_layer_sizes, activation_func):
        model = model_building_function(
            X, n_outputs_, hidden_layer_sizes, activation_func
        )
        return model

if __name__ == "__main__":
    cluster = LocalCluster(processes=True, n_workers=5, threads_per_worker=1)
    #  cluster = LocalCluster(processes=False, n_workers=1, threads_per_worker=1)

    dask_client = Client(cluster)

    #  model = KerasRegressor(build_fn=model_building_function, hidden_layer_sizes=[32, 32], activation_func="relu")
    #  model = KerasRegressor(build_fn=Est(), hidden_layer_sizes=[32, 32], activation_func="relu")
    model = Est(hidden_layer_sizes=[32, 32], activation_func="relu")

    # generate data
    X = np.arange(1.0, 5001.0).reshape((100, 50)).astype(np.float32)
    y = np.arange(1.0, 101.0).reshape(100, 1).astype(np.float32)

    # specify parameters and distributions to sample from
    param_dist = {
        "hidden_layer_sizes": [[16, 16], [32, 32], [64, 64], [128, 128], [256, 256]],
        "activation_func": ["relu", "elu"],
    }

    hyperband = dcv.HyperbandSearchCV(model, param_dist, max_iter=12)

    print("START HyperbandSearchCV")
    hyperband.fit(X, y)
    print("best score =", hyperband.best_score_)
    assert hasattr(hyperband, "best_score_")

I got the following error:
TypeError: __call__() missing 3 required positional arguments: 'n_outputs_', 'hidden_layer_sizes', and 'activation_func
Traceback

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm 2020.1.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "C:\Program Files\JetBrains\PyCharm 2020.1.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "D:/PycharmProjects/optimization_library/tests/testing.py", line 82, in <module>
    hyperband.fit(X, y)
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\dask_ml\model_selection\_incremental.py", line 702, in fit
    return client.sync(self._fit, X, y, **fit_params)
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\distributed\client.py", line 780, in sync
    self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\distributed\utils.py", line 348, in sync
    raise exc.with_traceback(tb)
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\distributed\utils.py", line 332, in f
    result[0] = yield future
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\tornado\gen.py", line 735, in run
    value = future.result()
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\dask_ml\model_selection\_hyperband.py", line 402, in _fit
    *[SHAs[b]._fit(X, y, **fit_params) for b in _brackets_ids]
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\dask_ml\model_selection\_incremental.py", line 660, in _fit
    prefix=self.prefix,
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\dask_ml\model_selection\_incremental.py", line 478, in fit
    prefix=prefix,
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\dask_ml\model_selection\_incremental.py", line 262, in _fit
    metas = await client.gather(new_scores)
  File "D:\PycharmProjects\optimization_library\venv_dask_hyperband\lib\site-packages\distributed\client.py", line 1752, in _gather
    raise exception.with_traceback(traceback)
TypeError: __call__() missing 3 required positional arguments: 'n_outputs_', 'hidden_layer_sizes', and 'activation_func'

dask error

distributed.worker - WARNING -  Compute Failed
Function:  execute_task
args:      ((<function _partial_fit at 0x00000233830B81F8>, (Est(
	activation_func=elu
	hidden_layer_sizes=[128, 128]
), {'model_id': 1, 'params': {'hidden_layer_sizes': [128, 128], 'activation_func': 'elu'}, 'partial_fit_calls': 0}), array([[3301., 3302., 3303., ..., 3348., 3349., 3350.],
       [4451., 4452., 4453., ..., 4498., 4499., 4500.],
       [ 851.,  852.,  853., ...,  898.,  899.,  900.],
       ...,
       [2051., 2052., 2053., ..., 2098., 2099., 2100.],
       [  51.,   52.,   53., ...,   98.,   99.,  100.],
       [4851., 4852., 4853., ..., 4898., 4899., 4900.]], dtype=float32), array([[ 67.],
       [ 90.],
       [ 18.],
       [ 95.],
       [  5.],
       [ 23.],
       [100.],
       [ 82.],
       [ 48.],
       [ 76.],
       [ 57.],
       [ 36.],
       [ 77.],
       [ 47.],
       [ 94.],
       [ 19.],
       [ 27.],
       [ 80.],
       [  9.],
       [ 33.],
       [ 88.],
       [ 28.],
       [ 66.],
       [ 40.],
       [ 50.],
       [ 55.],
       [ 25.],

kwargs:    {}
Exception: TypeError("__call__() missing 3 required positional arguments: 'n_outputs_', 'hidden_layer_sizes', and 'activation_func'")

Thanks for help.

Hi, can you post a complete example please? Thanks!

I updated my first comment https://github.com/adriangb/scikeras/issues/31#issue-669874356

Hmm this is interesting. I was able to reproduce this. So obviously somewhere within Dask model  is getting called directly (i.e. model()). I'm having trouble tracking down where because of the complexity of the internals and my unfamiliarity with them.
Generally, I feel that using __call__ like this package does is not great, and this would never happen if the function was called build_kears_model_ instead or something like that.
@stsievert do you have any insight?

Dask-ML's model selection does the equivalent of this code:
from sklearn.linear_model import SGDClassifier
from scipy.stats import uniform
from sklearn.model_selection import ParameterSampler
from sklearn.base import clone

# User-specified
param_space = {"alpha": uniform(0, 1)}
user_model = SGDClassifier()

# Inside Dask-ML
params = list(ParameterSampler(param_space, n_iter=1))[0]
model_to_tune = clone(user_model).set_params(**params)

The relevant code is at dask_ml/model_selection/_incremental.py#L129-L132. It looks like the model on _incremental.py#L137 is the user-defined model passed to HyperbandSearchCV.

Right, the part I'm not understanding is where/why Dask calls model() triggering the call of model.__call__() with no args.

The code does perform deepcopy(model) on every partial_fit call. Could that be responsible? I'm not seeing anything else.
Why is this an issue? 2 out of 3 methods in https://github.com/adriangb/scikeras/issues/31#issue-669874356. of initializing the KerasRegressor work with Dask.

deepcopy should work fine. It's not a huge issue since like you say there are ways around it, but it would be nice to at least know why this is happening. Maybe it's good enough reason to justify a switch from __call__  to build_keras_model_ or something less likely to be accidentally called.

@adriangb should I report further problems I encounter between scikeras and dask-ml here or at the repo of dask-ml ?

Please do continue to report them here. I think this is (1) a smaller more nimble project and (2) more likely to be the source of the bugs/bad design.
Regarding this issue specifically, I'm going to look into changing the name of the function for subclassed wrappers from __call__ to something else. I think the change should be backward compatible with the original wrappers from TF (I'm okay with breaking my own API, but not backward compatibility with the old API, at least for now) but I have to double check and implement/test.

Please do continue to report them here.

I also think that's best: Dask-ML doesn't have any code related to SciKeras. But please ping me and/or @TomAugspurger.

I was able to confirm that renaming __call__ fixed the issue. I still don't understand why __call__ was being called, but I'm guessing Daks is introspecting somewhere and the fact that the class instance is a callable triggers some logic. I think this is evidence that it was a bad design decision to use __call__  in the first place. I opened #35 to implement this change, if you can confirm that the branch in #35 fixes this for you that would be great @sim-san. Thank you for reporting this!

Thanks for the fast solution. I will test it tomorrow

@sim-san sorry I closed #35 without seeing your edit! Let me check real quick, I'll revert the commit if needed.

I think there may be some confusion regarding the APIs (please let me know if I am misunderstanding). The three APIs should be:
1. build_fn is a callable function (did not change)
def model_building_function(X, n_outputs_, hidden_layer_sizes, activation_func):
    model = Sequential()
    ...
    return model

model = KerasRegressor(build_fn=model_building_function)

2. build_fn is a callable class (did not change)
class MyClass:

   def __call__(self, X, n_outputs_, hidden_layer_sizes, activation_func):
      model = Sequential()
    ...
    return model

model = KerasRegressor(build_fn=model_building_function)

3.  Subclassing (did change)
class MyClass(KerasRegressor):

   def _keras_build_fn(self, X, n_outputs_, hidden_layer_sizes, activation_func):
      model = Sequential()
    ...
    return model

model = MyClass()

ok. Now I understand how to use the callable class.In the previous version it was also possible to use the class " Subclassing" as a callable class. The change to the "_keras_build_fn" for subclassing does not allow this anymore.
I think we need some more changes in the Readme.md (L126 and 164):
L136: call(...) => _keras_build_fn(...)
L156: call(...) => _keras_build_fn(...)
from scikeras.wrappers import KerasRegressor

class MLPRegressor(KerasRegressor):

    def __init__(self, hidden_layer_sizes=None, **kwargs):
        self.hidden_layer_sizes = hidden_layer_sizes
        super().__init__(**kwargs)   # this is very important!

    def _keras_build_fn(self, X, n_outputs_, hidden_layer_sizes):
        ...

estimator = MLPRegressor(hidden_layer_sizes=[200], a_kwarg="saveme")

estimator.a_kwarg == "saveme"  # True

This interface allows for multiple layers of inheritence and consumption of arguments:
from scikeras.wrappers import KerasRegressor

class ChildMLPRegressor(MLPRegressor):

    def __init__(self, child_argument=None, **kwargs):
        self.child_argument = child_argument
        super().__init__(**kwargs)   # this is very important!

    def _keras_build_fn(self, X, n_outputs_, hidden_layer_sizes):
        ...

estimator = ChildMLPRegressor(child_argument="hello", a_kwarg="saveme")

estimator.child_argument == "hello"  # True
estimator.a_kwarg == "saveme"  # True
estimator.hidden_layer_sizes == None  # True, the default in MLPRegressor is used

Agreed! Must have missed that in #35


DS-4467 Impl multi field sorting capcity

See: https://jira.lyrasis.org/browse/DS-4467
In previous versions of DSpace there was the capacity to select what field to sort against in a set of data from the gear icon E.G (https://imgur.com/a/HhuSKZ1) . I've added a small and nullable input of SortOptions[] into theds-viewable-collection -> ds-pagination sequence that allows devs to configure multi field sorting for this feature.
Would love to get some feedback on this, as well as I'd love to see something like this implemented for every listable DSO }}that makes use of the object-collection.componen.ts ({{ds-viewable-collection) feature.

@AndrewZWood : Sorry for the delayed review here (somehow this PR got lost and was never added to our weekly meetings until this week).
I'm a little unclear how to test this, as it seems like this improvement is not called by any current code yet (unless I'm misunderstanding the code in this PR).  I'm OK with the general idea, but I think I'd like to minimally see some tests (specs) to prove the behavior here.  As is, it's slightly hard for me to review (but if you have advice to offer on testing/reviewing, that'd also be helpful here).