feat: add new notification dispatcher mechanism

I tried to account for all the questions in README.md

And additionally just as a note; we're now introducing Python as a language for one of the microservices while the rest all uses JavaScript. I don't think it's a big issue since Python is broadly used and the dispatcher will likely not need to get regular new features, but I did want to mention it. Holds for the inclusion of the terraform scripts as well, and redis in gsuite-wrapper; as we expand and use more technologies it also can make it more difficult for new developers to get properly onboarded. We'll have to keep that balance in mind, but I think we're still on the good side of it. Replacing elixir with python is definitely a better situation for future maintainers

Replacing elixir with python is definitely a better situation for future maintainers

yes that was definitely a consideration. Python is simple and especially suitable because this is a web-worker; not an API. If it needed some HTTP method then I would probably have done it with node like the gsuite-wrapper
About the redis in the wrapper: in the end we don't use it though, right? (which is a bad choice imho, but this is not the thread for discussing)
About terraform: well it's simplifying stuff for us, given that we don't have newcomers (and to be fair, it's less scary than going to the console)

I rebased

with the last commits it's ready to be used now (at least code-wise). I will have to test it with gmail, or anyone can now anyway

Before I review this; can you also make a PR on core that changes the mailer function to this? So I can deploy and test it on my own hosted instance. No need to do all the other microservices, they all use the same mailer function so I can just copy-paste it locally

just pushed the branch feat/featureflag, I will give you the tokens you need in private. But I may as well simplify it for you, so look at feat/featureflag/rik branch

I still need to go through the summeruniversity emails but I did all other submodules. These are the notes of which I'm pretty sure are not this way in current mailer;

custom.html works for discount codes, but not statutory massmailer. Likely something with markdown HTML, since I think the replacement data is done by statutory (not sure on that)
events_applied.html has the fields 'AEGEE experience', 'Ideal SU' and 'Motivation' which don't always exist on 'regular' events applications (but all three do for SUs). events_edited.html is fine

Apart from that; in the current mailer empty fields are just empty (as in '') but in dispatcher they show up as 'None'. Likewise 'true' and 'false' are 'True' and 'False'. But that's just python vs javascript. Either way we should make that nicer in a separate PR. It helps that mailhog is now easy to use for development

A bug in summeruniversity also allowed me to test the Slack notification message. I got the following error; IsADirectoryError: [Errno 21] Is a directory: '/usr/app/src/../tokens.json'. Might be my fault, might be because Docker volumes can't be a file but have to be a directory. Haven't looked into this

The discussion is getting huge :D
in short what i have to do is to check
this and this right? because for the rest, it's optimisation of the templates that can wait another PR
Do i forget anything?

I believe so, the massmailer and token.json file/folder. And then in the python files there's cleanup and error handling and other TODOs still there. Not sure how much you want to tackle in this PR


Day1

@srimanivinay97 Make a folder you each day. You can make the folder daywise or topicwise. If you get stuck feel free to ping me back.


etcd task page implicitly recommends deprecated etcdctl tool

This is a Bug Report

Problem:
Operating etcd clusters for Kubernetes mentions etcdctl (which is deprecated) quite a lot before the first mention of etcdutl.
Proposed Solution:
Repeat the equivalent change from https://github.com/kubernetes/website/pull/46748 throughout this page.
Page to Update:
https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/

Additional Information:
/sig etcd

/triage accepted
/help

/assign

Help is very welcome. Would you like any advice @robert-cronin ?

@robert-cronin I think you're right.
General guidance:

https://k8s.dev/docs/
https://kubernetes.io/docs/contribute/docs/

I'll edit the issue description.

@robert-cronin I think you're right.
General guidance:

https://k8s.dev/docs/
https://kubernetes.io/docs/contribute/docs/

I'll edit the issue description.

Thank you for the guidance, @sftim.
I have opened a pull request to add a section clarifying the difference between etcdctl and etcdutl. Please feel free to review it and suggest any changes.


Fails when opening all links in bookmark folder

Firstly, thanks for a great add-on that looks the nicest of all the alternatives out there.
I recently noticed an issue in Firefox 65.0.1 where using right-click + "Open all in Tabs" to open all the tabs in a bookmark folder failed because the rest of the tabs were identified as duplicates.
There were 5 tabs in this bookmark folder. Three of these had titles where the first 20 or 30 characters titles were identical, but the rest were entirely different, and the URLs were different. When clicking Open all in Tabs, the first tab was opened and the remaining 4 were automatically closed. Querystring and hash are both enabled.
What's going on here?

Did some more testing, and this happens every time you open all links in a bookmark folder, regardless of how similar they are. The first link opens, and the add-on closes the rest of them.

Thanks by report, I will see and fix this issue ;)

@Kaos-Industries Fixed bug in https://github.com/brcontainer/prevent-duplicate-tabs/commit/40998d53369fe764d7a22d0f7acbd469c0882fd1#diff-7f123f67b412c67f3d4bc4b6dce417e3R21

Add-on for Firefox is now available
Add-on for MS Edge (chromium) in In review
Add-on for Opera is NOT available, but available for Opera Next and Opera Developer
Chrome webstore in review


KAFKA-3306: Change metadata response to include required additional fi…

…elds

Adds a Boolean type to the protocol
Adds new fields to the Metadata reponse protocol
Adds server code to handle new fields

Track controller id in the metadata cache
Check if a topic is considered internal
Check if a topic is marked for deletion
included rack information if present

Adds test code to test new functionality independent of the client

@junrao @gwenshap @ijuma
It would be nice to get this into 0.10. It should be the only required changes for existing protocol messages for KIP-4, which would simplify a backport into 0.10.1 when the rest is agreed upon and ready.
It also adds rack data to the metadata response which goes along with KIP-36 that was added in this release.

@granthenke, I agree that it would be great to get this in if there is agreement on the protocol changes. I haven't reviewed it in detail yet, but 2 things:

The PR needs to be rebased
I think it would be great to make it possible to ask for an update with 0 topics in cases where we just want to get the updated cluster data. People have run into performance issues when clients have 0 topics, but they ask for all topics because the protocol only supports that.

@ijuma I will rebase and look at supporting the idea of null (versus empty list) indicating that you don't want to request topic metadata at all. Its a bit nuanced, but its the most compatible and has fewer edge cases. Worst case scenario if someone passes an empty list is performance. This would help solve KAFKA-3358.

@ijuma I rebased and added the "no topics" functionality.

Sorry, noticed a bit late that this PR includes protocol changes that didn't go through a community discussion. Lets make sure there are 3 committers who are ok with the protocol modification?

@junrao @gwenshap @guozhangwang @ewencp @ijuma
This patch represents the current vote thread for the KIP-4 Metadata changes. Please feel free to review at your convenience.

@junrao @gwenshap @guozhangwang @ewencp @ijuma
Pinging for review. The KIP-4 Metadata changes vote passed and I rebased on trunk.

@granthenke thanks for the PR. I left a few minor comments, looks good otherwise. I think one thing worth paying special attention to is the errorUnavailableEndpoints change, but it seems like Gwen has already done that.

@gwenshap  @ijuma @SinghAsDev @hachikuji
I updated the patch based on the reviews. I added more tests, and some static factory methods.
Most notably I changed from using and allTopics boolean to using null and a static method. It required a little bit of re-work on internal apis but looks reasonable to me. If you think the allTopics boolean is better don't hesitate to weigh in. The specific commit with that change is here: https://github.com/apache/kafka/pull/1095/commits/52aa74d479e39479a9c79d09b0e0fe77391fa219

Thanks @granthenke. Aside from a few minor comments, LGTM. I started a system tests build here:
https://jenkins.confluent.io/job/system-test-kafka-branch-builder/415/console

@ijuma I updated the patch based on your feedback

Thanks @granthenke, LGTM. @gwenshap, do you want to take a look as well?

Looks perfect. I was waiting for you to finish nitpicking tests ;)


v1beta1 API and GroupVersionKind update

This issue is here to open discussion about API changes before going to v1.0.0
API
The current state of the operator's API:

apps.alexandrevilain.dev/v1alpha1.TemporalCluster
apps.alexandrevilain.dev/v1alpha1.TemporalClusterClient
apps.alexandrevilain.dev/v1alpha1.TemporalNamespace

I find the Temporal prefix for each CRDs redoundant.
Maybe we can rename them to:

temporal.alexandrevilain.dev/v1beta1.Cluster
temporal.alexandrevilain.dev/v1beta1.Client
temporal.alexandrevilain.dev/v1beta1.Namespace

The v1beta1 API version can be the starting point to declare the API stable and stop making breaking changes to it.
Webhooks
The v1beta1 can also be the first API with defaulting and validating webhooks.
As webhooks need certificates two solutions are available:

Asking the user to install the operator alongside cert-manager
Using cert-controller

Any thoughts
I would be happy to get any feedbacks about this idea.🙂

Yeah that would be actually great and I agree we should refactor the spec
before changing API endpoint of CRD. In fact this already bit me once in
the CSV :) I just submitted pull request for API endpoint change. Should I
close it and resubmit later after this is refactored? I don't think
changing API endpoint matters much either way more of when you want to do
that change.
On Thu, Sep 22, 2022 at 10:42 AM Alexandre Vilain @.***>
wrote:

Hi @ktenzer https://github.com/ktenzer
This issue will be the next on my TODO list in order to publish the first
version on OperatorHub using the temporal.io group.
What I purpose is the migrate the API with the GVKs:
temporal.io/v1beta1.Cluster
temporal.io/v1beta1.Client
temporal.io/v1beta1.Namespace
What do you think about that ?
Before implementing it, I would like to try to refactor the way
persistence is configured in the operator.
For now it's:
[...]
persistence:
defaultStore: default

visibilityStore: visibility

datastores:
- name: default

  sql:

    user: temporal

    pluginName: postgres

    databaseName: temporal

    connectAddr: postgres.demo.svc.cluster.local:5432

    connectProtocol: tcp

  passwordSecretRef:

    name: postgres-password

    key: PASSWORD

- name: visibility

  sql:

    user: temporal

    pluginName: postgres

    databaseName: temporal_visibility

    connectAddr: postgres.demo.svc.cluster.local:5432

    connectProtocol: tcp

  passwordSecretRef:

    name: postgres-password

    key: PASSWORD

[...]
It's higly inpired by the temporal configuration, but it doesn't matches
the "Kubernetes API style".
What I purpose is something like that:
[...]
persistence:
defaultStore:

  sql:

    user: temporal

    pluginName: postgres

    databaseName: temporal

    connectAddr: postgres.demo.svc.cluster.local:5432

    connectProtocol: tcp

  passwordSecretRef:

    name: postgres-password

    key: PASSWORD

visibilityStore:

  sql:

    user: temporal

    pluginName: postgres

    databaseName: temporal_visibility

    connectAddr: postgres.demo.svc.cluster.local:5432

    connectProtocol: tcp

  passwordSecretRef:

    name: postgres-password

    key: PASSWORD

[...]
IMO the API is cleaner and less error-prone. And I can imagine how the
code base would be easier using this API 😅.
Do you have any thoughts ?
—
Reply to this email directly, view it on GitHub
https://github.com/alexandrevilain/temporal-operator/issues/82#issuecomment-1255350002,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADK5D75F7G6T7CE7HBR723V7SK7PANCNFSM55DRCD5A
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @ktenzer
https://github.com/alexandrevilain/temporal-operator/pull/130 and https://github.com/alexandrevilain/temporal-operator/pull/132 have been merged! I think we're almost ready to close this issue and release 0.7.0 :)

After using new API I think we should change the CRDs
from:
Cluster
Namespace
ClusterClient
To:
TemporalCluster
TemporalNamespace
TemporalClusterClient
The reason is user experience. Namespace clashes so user has to set namespace.temporal.io. In addition cluster is just really generic and likely could class with other operators. Finally just having Temporal in front of it I think makes it consistent.

After writing some kubectl I really agree with your idea.
I'll have the time to do that this week-end.
Then once this fix is done and once your PR is merged, I'll release v0.7.0 :)

We can close as release v0.7.0 ships with the new GVK :)


Remove "strong ETags" from Stats objects

Right now, when given a Stats object, we can generate a weak ETag or a strong ETag; the difference between the two is not the correct strong vs. weak difference. We really cannot emit any strong ETags without at least knowing the bytes of the body, so it shouldn't even be an option (stemmed from #11).

This is no longer necessary, as "weak" is effectively just if the user wants to have the W/ marker or not.


DOC: interpolate: improved docstring of interpolate.interp2d to mention this function only interpolate a scalar returned function.

Reference issue
fix #12868
What does this implement/fix?
I improved docstring of interpolate.interp2d to mention this function only interpolate a scalar returned function.
interp1d and interpn can handle vector returned functions for interpolation, but interp2d cannot.
The interp2d docstring does not mention it, so I updated the docstring to mention it and recommend to use interpn if a user want to interpolate a vector returned functions.
Also, I fixed a missing  RectBivariateSpline link.

I suspect there is little interest in working on interp2d (or need to in fact), so let's document the behavior and leave it at that. Thanks @AtsushiSakai

I suspect there is little interest in working on interp2d (or need to in fact), so let's document the behavior and leave it at that. Thanks @AtsushiSakai


Fix autoClose and scroll on print

autoClose should not apply to printing while not drawing, otherwise annotations are opened after printing and leaves the chart in an unexpected state.
The scroll position should be restored after a print, otherwise the user could easily get lost when they're back at the top of the page after printing.

Thank you very much for your pull request and bringing these issues to our attention.
Those issues will be fixed within the next release.


[Snyk] Security upgrade org.apache.jena:jena-dboe-storage from 4.9.0-SNAPSHOT to 4.9.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

jena-tdb2/pom.xml

Vulnerabilities that will be fixed
With an upgrade:

Severity
Priority Score (*)
Issue
Upgrade
Breaking Change
Exploit Maturity

579/1000  Why? Has a fix available, CVSS 7.3
Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection') SNYK-JAVA-ORGAPACHEJENA-6043134
org.apache.jena:jena-dboe-storage:  4.9.0-SNAPSHOT -> 4.9.0
No
No Known Exploit

(*) Note that the real score may have changed since the PR was raised.
Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

Checkmarx One – Scan Summary & Details – 310c43f6-f892-454e-ab32-307bd701bb4f
New Issues

Severity
Issue
Source File / Package
Checkmarx Insight

CVE-2023-36478
Maven-org.eclipse.jetty:jetty-http-10.0.15
Vulnerable Package

CVE-2023-43646
Npm-get-func-name-2.0.0
Vulnerable Package

CVE-2023-45133
<EMAIL_ADDRESS>Vulnerable Package

CVE-2023-36479
Maven-org.eclipse.jetty:jetty-servlets-10.0.15
Vulnerable Package

CVE-2023-40167
Maven-org.eclipse.jetty:jetty-http-10.0.15
Vulnerable Package

CVE-2023-42503
Maven-org.apache.commons:commons-compress-1.23.0
Vulnerable Package

CVE-2023-44270
Npm-postcss-8.4.21
Vulnerable Package


⚠ Bofrost.at has degraded performance

In 61fda44, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2504 ms

Resolved: Bofrost.at performance has improved in 00a0838 after 6 minutes.


Support Focused as an extension

Motivation
Earlier versions of spek had support for focused versions of the built-in scopes (prefixed with an f), when used Spek will only execute those scopes. This was subsequently removed in later versions because we see it as only a temporary solution for the lack of proper tooling. This still stands but we can see it to be useful in specific circumstances. We don't want it to be part of core Spek so it will be implemented as an extension.
Proposal
For this to work we need to introduce support filtering the test tree and introduce support for tagging.
UNDER CONSTRUCTION

Would be great if IntelliJ plugin would reuse exact same API to run particular test/group!

@artem-zinnatullin that's an interesting idea, I'll consider it!

Would be great if IntelliJ plugin would reuse exact same API to run particular test/group!

Just realised it has some performance implications. It implies that Spek should discover everything first, currently filtering is done while discovering the scopes.

KotlinTest seems to do this with system properties: https://github.com/kotlintest/kotlintest/blob/master/doc/reference.md#focus
It could currently be done by making extra extension functions for groups that just check those system properties against the tags passed...? Of course, having this integrated deeper in Spek might be more efficient...


create a new source for the getting exchange rate btc/usd

Request url to getting current rate: "domain.com/api/rate" with the 'service' parameter (the default service is specified in the .env file)
Steps:
Create service class in folder app/Services/Rate like CryptonatorRateService with another source
Add line in config/rateservices.php

https://github.com/larionovog/CryptocurrencyAnalyzer/pull/5


[WFLY-18590] Upgrade wildfly-transaction-client to 3.0.2.Final

https://issues.redhat.com/browse/WFLY-18590
Upgrade to prepare API for WFLY-14769

Thanks @tadamski


Conda install defaults to v1.4.1

This still seems to be an issue.  What I've found is it may depend on which other packages you have installed.  My solution was to specify the version of pandas-profiling when doing a conda install:
conda install -c conda-forge pandas-profiling=2.6.0
Substitute '2.6.0' with the latest version here: https://anaconda.org/conda-forge/pandas-profiling
When I didn't specify the version, it seemed to install an older version (1.4.1-0 for Linux).  When I did specify the most recent version, it also downloaded qt-5.9.7 which it hadn't done before.  I'm not sure what's going on, because in another conda env, I was able to simply do conda install -c conda-forge pandas-profiling and it worked, but I had installed some other packages first.
If you look at the conda page (https://anaconda.org/conda-forge/pandas-profiling) it has multiple versions on there (1.4.1 and 2.6.0) for all OSs.  My guess is this is what's causing the problem.
Originally posted by @nateGeorge in https://github.com/pandas-profiling/pandas-profiling/issues/136#issuecomment-618649296

Great catch @nateGeorge! I've opened issues at the conda feedstock. Could you provide some additional diagnostic information (e.g. Python version, conda version)?

Note I closed the issue over at conda-forge as the link there referenced the anaconda channel but if the issue still appears with -c conda-forge then something else is happening. Python and conda version as well as the conda output are needed though to understand the problem.

@nateGeroge Could you verify that @xhochy's suggestion that the problem comes from not specifying a channel/specifying the anaconda channel? If so, we can close this issue.
Your other observation that qt was installed was spot on, that issue has now been resolved.

@sbrugman I installed it like conda install -c conda-forge pandas-profiling and it installed the older version in one of my conda environments.

Conda version: 4.8.3
Python version: 3.7.7

@xhochy What are your thoughts on where this could come from?

@sbrugman I installed it like conda install -c conda-forge pandas-profiling and it installed the older version in one of my conda environments.

Conda version: 4.8.3
Python version: 3.7.7

It seems this problem occurs when the environment is corrupted, for instance when conda and pip installations are mixed. I'd recommend creating a new environment.

I'm having the same issue. Installed conda install -c conda-forge pandas-profiling but it installed 1.4. Tried to reinstall the package over 1.4 and was unable.
Removed the pandas-profiling package and attempted an install of 2.8.0.
No go. Any insight?

Did the explicit install of 2.8 update any other packages?

It wouldn't let me install 2.8 @xhochy.

With what message?

@xhochy Not sure what the problem was, but I...

Uninstalled pandas-profiling
Updated all conda files
Ran the install for 2.8.0

And I'm fine now. Thanks for the help!

thank you! It was the only thing that really solved the problem! 2h+ trying to fix


Are you planning to integrate this extension into Python?

In the vs code extension marketplace, there are two extensions, pylance and python, both officially released by Microsoft. After installing python, vs code recommends installing pylance next. The official description says that these two extensions should be used together. If so, why not merge them into one extension?

It is now installed together. You can uninstall it if you want.
If you are having an issue with it, please reopen this issue.


feat: Adds rendering of argo workflows as mkdocs mermaid diagrams

Example of a workflow's page:

so I have run out of time to properly review this today, but wanted to check if the rendered graphs are actually correct. your PR screenshot included sync-srv-redfish-intfs-to-nb which has 3 sequential steps, but they were drawn as parallel - was it just an example and the final rendering is correct or not?
If not, can this script be improved to handle this?

Fixed it, thanks!


IntelliSense conflicts with Emmet in PHP files

When writing Emmet code in a PHP file (for example .row>.medium-4.columns), pressing Tab will change the last part to the IntelliSense suggestion instead of executing the Emmet snippet.
The easiest way to fix this would be the ability to disable IntelliSense on Tab, but I could only find the option to disable using IntelliSense with the Enter button.

I would recommend the "editor.quickSuggestions": false setting. That makes IntelliSense only appear when explicitly requested (cmd+space) and not while you type (minus auto trigger character as in console.<trigggered>).
Alternatively you also change your keybinding in the keybindings.json file. E.g remove the tab binding for accepting suggestions or move them up/down to change the priority.


Make a holder for the Telops camera

It needs to be compatible with a standard camera stand adapter.

Thanks for adding the issue, would you mind writing and follow-up with Antoine to get the info to buy the camera holder he showed us and/or schematics of the thermal imaging camera itself please?


reload on config change

Followup to #695 which actively watches the config file and tells the client to reload↓ if the config file changes. Might be overkill, and a bit hard to test in this repo since we use tsx watch, too. What do you think? Seems fine to me…

Oops, I was supposed to merge this before 1.5.1. But we haven’t created the tag yet, so it’s still fine.


Silent fail on missing license

Hi,
Just came across an small issue, but when the license file isn't included for the project, and so the NuGet pack step fails, the action still registers it as a success. So below is a cutout of the output for a small project i have on github, as you can see the build succeeds, but the pack fails, and the push fails.
`--------------------------------------------------------------------------------------
Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 742.19 ms for /home/runner/work/moodio/moodio/Moodio.Common/Moodio.Common.csproj.
Moodio.Common -> /home/runner/work/moodio/moodio/Moodio.Common/bin/Release/netstandard2.0/Moodio.Common.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:14.06
Microsoft (R) Build Engine version 16.5.0+d4cbfca49 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
/usr/share/dotnet/sdk/3.1.201/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets(198,5): error NU5030: The license file 'LICENSE' does not exist in the package. [/home/runner/work/moodio/moodio/Moodio.Common/Moodio.Common.csproj]
Generated Package: undefined
error: File does not exist (undefined).
`

Thanks for reporting it, rest assured


Limit number of bytes that pymagic uses for format identification

I ran into an error while processing a warc, that was similar to this ticket.
https://github.com/ahupp/python-magic/issues/82
It looks like in the usage for magic.from_buffer you can just send it a fixed amount of data instead of always sending the whole files.  This is because the magic numbers are generally at the beginning of the file.
https://github.com/ahupp/python-magic#usage
maybe we should look at setting .read() to .read(2048) on this line.
https://github.com/unt-libraries/warc-metadata-sidecar/blob/9cc12fcdfd620ce062ef058cafce5d0ab02e28a1/warc_metadata_sidecar.py#L82

This was tried previously with 2048. Perhaps we need to look at reading some other amount for an accurate mimetype but preventing out of memory errors?

Actually, regarding when we tried this previously reading part of the file only and getting different types if we did not specify an amount to read, it may be a bug in libmagic. I tried specifying an amount in from_buffer that should read the entire content, and it still gives the [presumably] undesired type mentioned previously. If we want to prefer the results of reading the whole file, but prevent out of memory errors, we could check for large files using the WARC record's header fields, and if it is above a certain size, read part of the file only. Thoughts @vphill ?


CreatedAt date/time not correct in csv

For example, the 1.16. csv has a createdAt date in September, while the release was made in December.

@pavolloffay This can be closed.  This file doesn't even exist anymore.


feat(brand logo): add support for logo on title

Prerequisites

[x] My Pull Request is filled against the next branch
[X] All commits in my Pull Request conform to Elegant Git commit Guidelines

Recommended Steps

[X] My patch adds a new feature, therefore I have also added a help article about it
[X] My patch changes Elegant behavior, therefore I have updated the help article to reflect this change
[ ] My commits are signed

Description
Added an optional variable DISPLAY_BRAND_LOGO, if defined, a logo image will be displayed Left of the site title in the navigation bar. The variable's value should be the url to the brand logo file.
An example in pelicanconf.py would be :
DISPLAY_BRAND_LOGO = SITEURL + "/images/logo.png"

Or
DISPLAY_BRAND_LOGO = "/images/logo.png"

Thank you @f-fouad I will merge it soon. My python setup is broken on my Mac machine (most probably because I am running beta macOS). As soon as it gets fixed, I will merge and release a new version of Elegant.

Additionally I would consider creating an article (full article) with the feature to be added to the documentation.
Let me know if you can work on this @f-fouad so that we can merge this. Great addition!

Apart of the pelican logo, the variable used for enabling/disabling and the one used for 'showing' the actual icon are different ;-)

@f-fouad are you going to write a small doc article regarding the feature?

Thank you for taking the time and effort to review it.
I am looking for an example of doc article right now (some guidance is welcome). Probably, it will take me some time because I am not accustomed to git/github (first pull request).

It's a matter of adding a file like 'https://github.com/Pelican-Elegant/elegant/blob/master/documentation/content/Components/site-subtitle.md' but with 'site-logo' for example :) (and fill the contents there)

Thank you!


add Constructor

GoppaCode.createCanonicalCheckMatrix(field, gp); take to much time for a constructor.
I want to save and load the McElieceCCA2PrivateKeyParameters in a file.
Here are my numbers as an example:
Intel i5-4570
a generated key pair with: McElieceCCA2Parameters(6624)
GoppaCode.createCanonicalCheckMatrix(field, gp); takes 30 seconds
new PolynomialRingGF2m(field, gp); takes 1,3 seconds

added, should appear soon.


Loading page version

Hello,
Thanks for the new major version 3.0 ; very nice :)
Just a little cosmetic issue on loading page.
I have the latest version 3.0.5, what is shown on bottom right corner of main page, but on loading page it's still 3.0.0 that is displayed.

Fixed in 3.0.6


Add target upload tool.

Fixes #53
Added MEDIA_URL as well so that in debug mode you can view the target images in the admin display. Note that Django doesn't let MEDIA_URL run in non-debug mode (no security on image access).

LGTM besides the few extra comments.


Delphi/Pascal files identified as GDB files

Description
Delphi pascal files (forms and the code) are identified as GDB files and not Pascal. The samples folder for linguist does contain valid exampled: https://github.com/github/linguist/tree/master/samples/Pascal.
From what I have read the language statistics code is based on go-enry which seems to have looked at linquist.
Screenshots

You'll have to report your issue to upstream on https://github.com/github/linguist and then to https://github.com/go-enry/go-enry for syncing changes from Linguist.
After you confirm locally that Linguist and go-enry properly see code snippets you can open PR here to update go-enry version we use.

Does your problem still occur or was it fixed upstream?
Either way, that's not really something Gitea can fix.


Decrease memory footprint

This reduces the memory footprint to match the Lite / Free tier.

do we need to test this out?

I tested this earlier this morning; this was one of the combinations I got to run successfully. I was just worried about the memory footprint pushing so close to the 256MB limit.


Quest: add support to popular third-party editor extensions

In order to get top notch editor support like developers expect, third party extensions also need to be taken into account. Because glimmer-js and glimmer-ts are registered as two new language ids with their own respective file extension, most editor extensions will not run on these by default.
Here is a list of popular editor extensions that currently don't work out of the box with .gjs and .gts. This list is by no means exhaustive, so feel free to submit any others.
VS Code

[x] TailwindCSS Intellisense

PR: https://github.com/tailwindlabs/tailwindcss-intellisense/pull/867

[ ] Pretty TS Errors

PR: https://github.com/yoavbls/pretty-ts-errors/pull/85

[ ] Import Cost

PR: https://github.com/wix/import-cost/pull/320

[ ] Auto rename HTML tags via editor.linkedEditing

Out of curiosity, is WebStorm considered popular enough editor? or this is more more focused on VS Code?

According to the 2022 Ember community survey 11% of developers used a JetBrains IDE, compared to 65% using VS Code. It's significantly less, but in an ideal world all major IDEs would be supported.
Realistically, it will come down to someone using a different IDE to submit a list of third-party extensions and work on support, as they have the incentive to do so. If there is such interest, I do think it makes sense to track it here as well.

@IgnaceMaes thanks for pointer to survey! That indeed confirms VS Code is the popular one

Regarding linkedEditing, and related autoClosingTags: these can be accomplished already today by using extensions:

https://github.com/formulahendry/vscode-auto-close-tag
https://github.com/formulahendry/vscode-auto-rename-tag

For auto closing of tags, a PR has been opened to enable it by default on glimmer-js and glimmer-ts. (https://github.com/formulahendry/vscode-auto-close-tag/pull/224)


[Index] Convert to hashing to HashBuilder with BLAKE3

Hashing.h is non-deterministic between runs. Update the index hashing to use BLAKE3 for the record hash. xxhash is faster in benchmarks that I've found, but there's no easy HashBuilder option for it today.

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test

@swift-ci please test

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test Windows platform

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test macOS platform

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test macOS platform

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test Windows platform

https://github.com/swiftlang/llvm-project/pull/9140
@swift-ci please test Windows platform


Use official node SemVer

https://github.com/npm/node-semver
Will have to adjust the .d part a bit. Probably just to -d.

Hm. Maaaybe it'd be optional, a config toggle... since CalVer isn't canonical npm SemVer...


Question: How to conditionally merge a provider based on the profile?

I want to conditionally merge a provider based on the current profile, and I'm wondering if there's already a nice way to handle this.
Right now, I'm doing it as follows:
    let mut app_config_figment = Figment::new()
        .merge(Toml::file("./src/config/base.toml"))
        .merge(Toml::file("./src/config/production.toml").profile("production"));

    let maybe_profile = Profile::from_env_or("environment_type", "default");

    app_config_figment = app_config_figment.select(maybe_profile);

    if app_config_figment.profile() == "production" {
        app_config_figment = app_config_figment.merge(Env::prefixed("COREOSION_PRODUCTION_").split("_"));
    }

I'm fairly certain that the following figment is equivalent:
    let mut app_config_figment = Figment::new()
        .merge(Toml::file("./src/config/base.toml"))
        .merge(Toml::file("./src/config/production.toml").profile("production"))
        .merge(Env::prefixed("COREOSION_PRODUCTION_").split("_").profile("production"))
        .select(Profile::from_env_or("environment_type", "default"));

This results in the values in COREOSION_PRODUCTION_ being emitted to the production profile only. Thus, the values are selected only when the environment is production, just like your example code.

Awesome! Thanks a lot, Sergio :D.


Cannot teleport or destroy the NPC

Hi!
Firstly, I want to tell you that your project is really cool! The problem is, I can't teleport or destroy a NPC.
I'm using a simple code of creation instruction, waiting (with BukkitRunnable) then teleportation/destroy instructions.
if(args[0].equalsIgnoreCase("test2")) {
                NPC test = new NPC(p.getLocation(), "test");
                test.spawnNPC(p);

                new BukkitRunnable() {
                    @Override
                    public void run() {
                        test.destroyNPC(p);
                        p.sendMessage("§a§lDESTROYED");
                    }
                }.runTaskLater(EldarothPlayer.instance, 20*3);
            }

The NPC is created, but that's it. When I'm destroying it, I get this error:
[09:50:09 WARN]: [EldarothPlayer] Task #26 for EldarothPlayer v1.0-SNAPSHOT generated an exception java.lang.NoSuchMethodError: 'void net.minecraft.network.protocol.game.PacketPlayOutEntityDestroy.<init>(int)'         at io.github.danielthedev.npc.NPC.getEntityDestroyPacket(NPC.java:319) ~[ELDAROTHPLUGIN-1.0-SNAPSHOT-shaded.jar:?]         at io.github.danielthedev.npc.NPC.destroyNPC(NPC.java:113) ~[ELDAROTHPLUGIN-1.0-SNAPSHOT-shaded.jar:?]         at me.funkyfight.eldarothplayer.commands.DebugCommand$1.run(DebugCommand.java:93) ~[ELDAROTHPLUGIN-1.0-SNAPSHOT-shaded.jar:?]         at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[patched_1.17.1.jar:git-Paper-400]         at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483) ~[patched_1.17.1.jar:git-Paper-400]         at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1567) ~[patched_1.17.1.jar:git-Paper-400]         at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:490) ~[patched_1.17.1.jar:git-Paper-400]         at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1483) ~[patched_1.17.1.jar:git-Paper-400]         at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1282) ~[patched_1.17.1.jar:git-Paper-400]        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[patched_1.17.1.jar:git-Paper-400]         at java.lang.Thread.run(Thread.java:833) ~[?:?]
Line 93 in the stacktrace refer to the .destroyNPC(player) method

Yes, I am aware of that problem.
Firstly, due to changes from 1.17 to 1.17.1 the constructor PacketPlayOutEntityDestroy is now changed.
Therefore, you should import the github gist file and compile my util class yourself.
Secondly, the teleport bug was caused by the call order of the packets Teleport and Rotate head.
That has also been fixed in the update gist if I recall correctly.
Here is the link to the resource Gist

Thanks you!


envoy.base.checker: Fix hinting of Exceptions in preload decorator

Signed-off-by: Ryan Northey<EMAIL_ADDRESS>

also, bumps pytest-asyncio version and fixes config


Properly setup seed in RNG

Looks like I've been hurried when creating #25680 and didnt used a native solution which is usage of pcg32_srandom_r specially created for this purpose in http://www.pcg-random.org/downloads/pcg-c-basic-0.9.zip
Fix #27166 + changed few useless/invalid code parts

@hpvb Its code from the same lib, I doubt that even -- GODOT -- start/end needs to be required here, I guess pcg.h/c was manually created, 2 years ago by Ferenc Arn

Fixed it to original look (without modify by clang-format)

Thanks!

Cherry-picked for 3.1.1.

The change is fine but it's going to break backwards compatibility again, seed will produce different sequences than in 3.1.0.

Indeed, thanks. I'll revert the 3.1 cherry-pick.

Actually I just realized that this change breaks saving/restoring the RNG state again. The seeding function no longer treats the seed as a state, so after calling rand() once, passing get_seed() into seed() is not going to put the RNG into the same state. In fact there is no way to get a valid "seed" out of the state anymore.
This change needs get_state() and set_state() methods to go along with it, and get_seed() would need to either be removed entirely, or changed to return the initial seed, which would only change if you re-seeded the RNG.

so after calling rand() once, passing get_seed() into seed() is not going to put the RNG into the same state

I think this can be simply fixed by removing current_seed = pcg_state in rand()

The change is fine but it's going to break backwards compatibility again, seed will produce different sequences than in 3.1.0.

Sure, but should that be considered a compatibility break? It's not like RandomNumberGenerator's implementation is spec-frozen like STL's 9000 compatibility RNGs that differ only in constants. A lot of languages don't guarantee that their standard random implementation never changes across versions, and I can't see why Godot's should. If you know you what you want, you should generate numbers with code that you control, no?
However, I do see that reliable random numbers is a common need in gamedev. Maybe we should introduce a frozen PRNG (alongside the current RNG class, under another name) whose behavior will absolutely never change despite how buggy it is? That will give users like @MidZik something to use.

so after calling rand() once, passing get_seed() into seed() is not going to put the RNG into the same state

I think this can be simply fixed by removing current_seed = pcg.state in rand()

What does that fix? You still can't save/restore the RNG state.

Sure, but should that be considered a compatibility break?

Yes. The reproducibility of PRNGs is one of their major features, and I don't think their behavior should change in a revision release, which generally aims to keep behavior the same where possible.

@toasteater It is a legitimate concern if your game is of a procedurally generated kind, and the seed number is used to reproduce a level.  If the version changes, and the seed evolves differently, that level cannot be recreated anymore from one version to the next.  You may also be exposing this feature to players to share with one another.  Rather suddenly, if you hadn't seen this kind change, you may a small disaster on your hands.
Factorio is a great example of this kind of usage:  https://wiki.factorio.com/World_generator
Many people share and pass their world seeds around.
Also in the case of game replay systems, which may be for user enjoyment or for debugging and supporting a game, these will no longer work on old data.
If updates to seed sequences are too frequent, a creator of a game that relies on these uses would find themselves locked to a specific version, only for this kind of change.
The use cases are of a more specific nature, but it isn't necessarily trivial, certainly not one where you might change things without any reflection.  But I wouldn't disagree with you that the RNG of a framework shouldn't be ossified in stone either.
I like the improvements you've been doing, but I can also be counted as one hoping that certain aspects hit a stable point soon, because I know I'm going to be attempting to make use of replays in my games in the not too distant future.  For me though I'm mostly creating a custom version, so it wouldn't be too much of a problem to revert specific commits.

Looks like a serious problem, I prefer to revert it back

The reproducibility of PRNGs is one of their major features

The most major feature of PRNGs are their randomness.

It is a legitimate concern if your game is of a procedurally generated kind, and the seed number is used to reproduce a level.
...
I can also be counted as one hoping that certain aspects hit a stable point soon

I did acknowledge that stability is a legitimate concern, and I agree with you. That's why I'm suggesting that for these uses you generate numbers with code that you control, and that a frozen PRNG can be introduced alongside the default one.

Reproducibility and seedability of PRNGs is nearly as important as randomness.

A lot of languages don't guarantee that their standard random implementations never change across versions, and I can't see why Godot's should. If you know you what you want, you should generate numbers with code that you control, no?

@toasteater I see, yeah disregard what I wrote.  X)  I misunderstood you a bit because of these remarks above.
The recommendation would be good, though I'm not sure what the maintainers approach would be here with the desire for backwards compatibility.  Maybe new versions become additional API, at least until major releases can make things obsolete/unsupported?  But yes, older versions would be good to keep around.
I'm not sure exactly the extent of the bugginess you've mentioned, but I am curious.  I'm not so well versed in this, and so far I haven't noticed anything clearly detrimental in my uses in the recent past.

@avencherus I'm sorry if my comment was inappropriate in tone, English isn't my first language, but I'm glad that we came to understand each other now. I agree that this is best left for the maintainers to handle.
As for the extent of bugginess (for this specific issue), here's some background: PCG32, the RNG that Godot is currently using, can be described as an LCG with a complex output function. The output function is impressive, but the LCG part is still susceptible to "bad state" -- that's why it once had the "initial 0" bug.  #25680 masked the problem, but one can still easily find "bad seeds" for it (0, for a trivial example). Without proper initialization, the RNG isn't really PCG32, and all the glowing reviews of PCG32's randomness simply don't apply. If users assume it's good, then bizarre problems can plague them somewhere downstream.
The same can be said of issues with it's distributions: 4 billion is large until it isn't. randi_range seem benign until you start dealing with millions, then the bias becomes devastating. Of course, the average mobile developer will not care, but it fails exactly the moment it becomes important, and that is the problem.

@toasteater Thanks.  I'll likely be cherry-picking the improvements to the RNG up until some version, so I may not experience it this bad initialization issue.  Are there side effects aside from the initial 0 number issue?  Are the distributions getting clumped or something like that?

Are there side effects aside from the initial 0 number issue? Are the distributions getting clumped or something like that?

Yes, the distribution may stop being uniform for some seeds*. The initial 0 is just the most obvious symptom: PCG32's output function does a good job at spreading the distribution out, but it's still a garbage in, garbage out situation.
If you are using rand() directly, and are choosing good, random seeds, then it's more likely that you'll not notice anything outright biased to the naked eye. If you're using randi_range, randf, or randfn (uses randf internally) though, the current implementations introduce their own biases that can be significant or not depending on your use case.
Bottom line: avoid the current implementation for any simulations (e.g. board game AIs), or in use cases where fairness is important (multiplayer, etc.)

* Technically, it is "we can't say with confidence that the distribution is as uniform as PCG32's, which is believed to be uniform".


How to ensure that the GC is not going to clean up my internal variable?

I have a native C struct A that, when initialized from mruby, creates struct B. The struct B is accessible by the user from mruby and can be changed. The user can also create a new instance of that structure and assign it to A.
I presume that the problem is that when I create the struct B from within the C code, the GC is not quite aware that it's referenced inside A and eventually cleanse it.
What I'm doing is - during the initialization of A, I call mrb_malloc, to get memory for B. After that, I just pass the B instance around.
I read the gc arena howto doc and I tried putting mrb_gc_arena_save and mrb_gc_arena_restore around my memory alloc but that didn't change anything. I also tried to use mrb_gc_arena_protect still no luck. How am I supposed to protect my struct from the GC? Is there anywhere a ref count that I could just increment and decrement when A starts/stops using the B instance?

It is difficult to grasp the issue from the above abstract description. Can you show us the code?
The problem might be addressed by write barriers or mrb_gc_register() but not sure.

static struct RClass*	class_B	= NULL;
static struct RClass*	class_A	= NULL;

struct B
{
	unsigned char some_variables[24];
};

struct A
{
	struct B *instance;
	unsigned char some_variables[24];
};

static void free_b(mrb_state *mrb, void *p)
{
	mrb_free(mrb, p);
}

static struct mrb_data_type const b_data_type = { "B", free_b };

struct B* b_get_ptr(mrb_state *mrb, mrb_value value )
{
	void* value_p = mrb_data_get_ptr(mrb, value, &b_data_type);

	return (struct B*) value_p;
}

static void free_a(mrb_state *mrb, void *p)
{
	struct A* a = (struct A*)p;

	if(/* a->intance is not referenced by the user in the ruby code */)
		mrb_free( mrb, a->instance);

	mrb_free(mrb, a);
}

static struct mrb_data_type const a_data_type = { "B", free_a };

struct A* a_get_ptr(mrb_state *mrb, mrb_value value )
{
	void* value_p = mrb_data_get_ptr(mrb, value, &a_data_type);

	return (struct A*) value_p;
}

static mrb_value
a_initialize(mrb_state *mrb, mrb_value self)
{
	struct A* data = (struct A*) DATA_PTR(self);
	if(NULL == data)
	{
		data = (struct A*) mrb_malloc(mrb, sizeof(struct A));

		// The question is about this allocation
		data->instance = (struct B*) mrb_malloc(mrb, sizeof(struct B));
	}

	DATA_PTR(self) = data;
	DATA_TYPE(self) = &a_data_type;

	return self;
}

static mrb_value
get_b_from_a(mrb_state *mrb, mrb_value self)
{
	struct A* a = (struct A*) mrb_data_get_ptr( mrb, self, &a_data_type );
	return mrb_obj_value(Data_Wrap_Struct(mrb, class_B, &b_data_type, a->instance));
}

void mrb_mruby_guard_test_gem_init(mrb_state *mrb)
{
	class_A	= mrb_define_class( mrb, "A", mrb->object_class );
	class_B	= mrb_define_class( mrb, "B", mrb->object_class );

	MRB_SET_INSTANCE_TT(class_A, MRB_TT_DATA);
	MRB_SET_INSTANCE_TT(class_B, MRB_TT_DATA);

	mrb_define_class_method(mrb, class_A, "initialize", a_initialize, 0 );
	mrb_define_class_method(mrb, class_A, "getB", get_b_from_a, 0);
	// There are more methods the classes B and A but they are not
	// important (mostly getters and setters).
}

void mrb_mruby_guard_test_gem_final(mrb_state *mrb)
{
}

I didn't want to post code because it looks too long, but here it is.
I have not actually tested it, but I hope that it's going to be understandable. I left 2 comments (one in the free_a function, and one in the  a_initialize method.
The user code can be something like this:
a_inst = A.new
while true
  p "test"
end

The print will try to allocate memory, which (I assume) would start the GC and it will clean the B struct inside A.
I need to know how to tell the GC to leave the allocated B object inside A. Do I add this line do something like this:
mrb_gc_register(mrb, get_b_from_a(mrb, a->instance));

I can't test this right now, but I will test it on Monday.

There are two solutions that I came up.
# Because I am using machine translation by Google, please pardon the disturbance of words.

Implement the reference count on its yourself (irrespective of mruby)
When creating an instance of A, also create an instance of B and set it as a hidden instance variable of the A instance

Implement reference count on its yourself (irrespective of mruby)

Add a reference count member (eg size_t refcount;) to struct B.
To do data->instance->refcount = 1; after doing data->instance = (struct B *)mrb_malloc(mrb, sizeof(struct B)) in the a_initialize() function.
To do a->instance->refcount ++; when creating instance B in the get_b_from_a() function.
To do free_b(a->instance) in the free_a() function.
To do mrb_free(b) if b->refcount is 0 after b->refcount --; in the free_b() function.

When creating an instance of A, also create an instance of B and set it as a hidden instance variable of A instance

Create an instance of B  in the a_initialize() function too.
mrb_value obj_b = mrb_obj_value(Data_Wrap_Struct(mrb, class_B, & b_data_type, a->instance));
But I think better to use Data_Make_Struct() instead of mrb_malloc() + Data_Wrap_Struct().
Next, add the instance of B as a variable of the instance of A.
mrb_iv_set(mrb, obj_a, mrb_intern_lit(mrb, "instance_b"), obj_b);
NOTE: Giving a symbol whose instance variable name does not start with @ will make it invisible from the ruby script.
Get and return the instance variable in the get_b_from_a() function.
return mrb_iv_get(mrb, obj_a, mrb_intern_lit(mrb, "instance_b")))

You may think that it is sufficient to add and exchange the mrb_value obj_b; member to struct A without using instance variables, but in that case it is judged to be an object to be destroyed in the mark phase of GC I will.
It is necessary to indicate the relationship between a and b with mrb_iv_set() whether or not it is placed on a structure.

Thank you. This explanation cleared a misunderstanding that I had. I will try to implement this in the following days.
I will close the issue (at least for now).

I recommend @dearblue's 2nd approach. This is the official way to protect mruby objects referenced from the other mruby object from GC.


Skip flushing file if lfs_file_rawseek() doesn't change position

This fixes #436.
@geky It appears that your concerns were valid, as one of the truncation test cases is now failing with this change:
====== results ======
tests/test_truncate.toml:96:failure: test_truncate#3#1 failed with -6
tests/test_truncate.toml:127:assert: assert failed with 48, expected eq 0
    memcmp(rb, wb, trunc) => 0;

Do you have any ideas about how to go about resolving this?

The good news is that only a single test case is failing, that's quite rare.
You can see the full test case here:
https://github.com/littlefs-project/littlefs/blob/1a59954ec64ca168828a15242cc6de94ac75f9d1/tests/test_truncate.toml#L98-L145
Hmm, it's interesting that lfs_file_truncate internally calls lfs_file_seek. It's also interesting that this test contains a write and then a seek, and then a truncate after seeking. Since there's no longer an implicit flush I wonder if data is getting lost between these calls.
But lfs_file_truncate does contain an explicit flush in the shrinking case (which is what is being tested), so in theory that shouldn't happen:
https://github.com/littlefs-project/littlefs/blob/1a59954ec64ca168828a15242cc6de94ac75f9d1/lfs.c#L3090
Will need to investigate more what's going on

The good news is that only a single test case is failing, that's quite rare.
You can see the full test case here:
https://github.com/littlefs-project/littlefs/blob/1a59954ec64ca168828a15242cc6de94ac75f9d1/tests/test_truncate.toml#L98-L145
Hmm, it's interesting that lfs_file_truncate internally calls lfs_file_seek. It's also interesting that this test contains a write and then a seek, and then a truncate after seeking. Since there's no longer an implicit flush I wonder if data is getting lost between these calls.
But lfs_file_truncate does contain an explicit flush in the shrinking case (which is what is being tested), so in theory that shouldn't happen:
https://github.com/littlefs-project/littlefs/blob/1a59954ec64ca168828a15242cc6de94ac75f9d1/lfs.c#L3090
Will need to investigate more what's going on

Ah! I think the issue is with LFS_SEEK_END. It's calculated based off file->ctz.size.
https://github.com/littlefs-project/littlefs/blob/6bb404315405ba6f5217c061c0e3fb2a0d19099b/lfs.c#L3057-L3059
But file->ctz.size is only updated during flush. Previously the implicit flush updated file->ctz.size before the seek offset is calculated.
Compare to lfs_file_rawsize, which finds the size on unflushed files:
https://github.com/littlefs-project/littlefs/blob/6bb404315405ba6f5217c061c0e3fb2a0d19099b/lfs.c#L3154-L3164
The easiest solution may be just to call lfs_file_rawsize in lfs_file_rawseek, but I'll leave that up to you.

Also it's interesting to note that we no longer need this check in lfs_file_truncate, since lfs_file_rawseek detects noops. Previously it was to avoid the extra flush:
https://github.com/littlefs-project/littlefs/blob/1a59954ec64ca168828a15242cc6de94ac75f9d1/lfs.c#L3109-L3114

Ah! I think the issue is with LFS_SEEK_END. It's calculated based off file->ctz.size.
https://github.com/littlefs-project/littlefs/blob/6bb404315405ba6f5217c061c0e3fb2a0d19099b/lfs.c#L3057-L3059
But file->ctz.size is only updated during flush. Previously the implicit flush updated file->ctz.size before the seek offset is calculated.
Compare to lfs_file_rawsize, which finds the size on unflushed files:
https://github.com/littlefs-project/littlefs/blob/6bb404315405ba6f5217c061c0e3fb2a0d19099b/lfs.c#L3154-L3164
The easiest solution may be just to call lfs_file_rawsize in lfs_file_rawseek, but I'll leave that up to you.

Also it's interesting to note that we no longer need this check in lfs_file_truncate, since lfs_file_rawseek detects noops. Previously it was to avoid the extra flush:
https://github.com/littlefs-project/littlefs/blob/1a59954ec64ca168828a15242cc6de94ac75f9d1/lfs.c#L3109-L3114

Hmm... I've tried adding that fix but the test still seems to be failing, unless the CI isn't picking up on my latest changes.

Hmm... I've tried adding that fix but the test still seems to be failing, unless the CI isn't picking up on my latest changes.

Had to pull up the debugger for this one. It turned out to be a complicated interaction between lfs_file_truncate and lfs_file_seek where lfs_file_truncate wasn't setting file->pos correctly, causing the seek-noop to happen while the file metadata was in a bad state.
lfs_file_truncate expected lfs_file_seek to unconditionally set file->pos, which isn't true any more.
I just put what I found in the commit message (745d98c), but let me know it leaves you with any questions.
Off topic, but I've also ported the CI to Github Actions (https://github.com/littlefs-project/littlefs/pull/516), which hopefully means less of a wait for CI in the future.

Had to pull up the debugger for this one. It turned out to be a complicated interaction between lfs_file_truncate and lfs_file_seek where lfs_file_truncate wasn't setting file->pos correctly, causing the seek-noop to happen while the file metadata was in a bad state.
lfs_file_truncate expected lfs_file_seek to unconditionally set file->pos, which isn't true any more.
I just put what I found in the commit message (745d98c), but let me know it leaves you with any questions.
Off topic, but I've also ported the CI to Github Actions (https://github.com/littlefs-project/littlefs/pull/516), which hopefully means less of a wait for CI in the future.

Your fix makes sense; thanks!

Your fix makes sense; thanks!

Thanks for the PR!

Thanks for the PR!

Not a problem. Thank you for continuing to develop littlefs! :+1:

Not a problem. Thank you for continuing to develop littlefs! :+1:


1.2.0-criteo8

Signed-off-by: Jean-Francois Weber-Marx<EMAIL_ADDRESS>

Codecov Report

Merging #10 into criteo-dev will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           criteo-dev      #10   +/-   ##
===========================================
  Coverage       79.48%   79.48%
===========================================
  Files              85       85
  Lines            8847     8847
  Branches         1890     1890
===========================================
  Hits             7032     7032
  Misses           1550     1550
  Partials          265      265

Continue to review full report at Codecov.

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


Taskbar color

It would be useful if this page documented which of these is used by the taskbar, so that I can use a white or black notification area icon accordingly.

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

ID: e4b6dd6e-725b-81c9-98a2-c2d5b714fb39
Version Independent ID: aaf36ca8-3ac5-57b9-25de-467f513cb219
Content: UIColorType Enum (Windows.UI.ViewManagement) - Windows UWP applications
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.ui.viewmanagement.uicolortype.yml&version=GBlive&_a=contents
Product: uwp
Technology: winrt-reference
Git Login: jwmsft
Microsoft Alias: jimwalk

Thanks for submitting your feedback and I apologize for the delayed response.
This enum and related APIs are used to get the user's system accent color and the variations of it. Whether that color is applied to the taskbar is a user option in the color settings, so there is no guarantee that the color returned is actually applied to the taskbar.
Whether the app icon in the notification area is light or dark depends on the system theme (light/dark), not the accent color. To have your app choose the appropriate icon, there is a setting in the appxmanifest file. In the Visual Studio app manifest editor, choose the Visual Assets tab, then check the "Apply color conversion for Windows Light Theme" option.
For more info about app icons, see App icons and logos and Shell light theme and unplated resources.


Non-Windows installs: path requirements

Expected Behavior

Currently, the readme states "If you get: "XX not found" -> Make sure Nuget ran successfully, and re-run if neccessary." which can be vague. In the case of having illegal characters in the install path, Nuget will run successfully but msbuild will raise errors.
Actual Behavior

Potential Solution

Addition of warning pertaining to path-legal characters in the case of a build error of this form.
Reproducing the Problem

Attempt to install on a path with Windows-illegal characters will raise errors of form "Confirm ... 'QuantConnect.XX.csproj.*.props' is correct, and that the file exists on disk."
Specifically:
mkdir ./illegal:name:ms
cd illegal:name:ms
git clone https://github.com/QuantConnect/Lean
nuget restore QuantConnect.Lean.sln
msbuild QuantConnect.Lean.sln

System Information

Linux (should occur on any unix-like enviro).
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues

[x] I have provided detailed steps to reproduce the issue

Also noting that "..." is used to shorted the full statement, "Confirm that the path '.../QuantConnect.XX.csproj.*.props' is correct, and that the file exists on disk."


Remaining development issues

Enter values of the parameter must be visible in the parameter tree of the ABI.

Whenever a user enters deployed address value in the address field of the fileName_deployed_address.json file then the state should be changed to the deployed address value from undefined.

input parameters edit button on ABI items
call functions with a button interaction
edit button on contract list to edit constructors
edit buttons should open respective json files in editor
enable even listener on contract address with a button interaction


Perl is broken in development container

Description
The version of perl included in the current Flatcar development container was compiled wrong, and will immediately segfault under certain condition. This is actually a really old issue from CoreOS (coreos/bugs#2369), that was originally ignored, and has just been noticed and fixed in upstream not long ago (Perl/perl5#18739). This issue might be caused by the same problem: #307. Interestingly, a simple echo 'print("Hello, World!\n");' | perl is indeed not enough to trigger the segfault.
Impact
I'm trying to automate the build of zfs for Flatcar, and having to patch and rebuild perl every time is a bit of a pain. (https://github.com/lorenz/torcx-zfs/blob/cb9ad1fef25cda4dcb18935883151113af2f791d/build.sh#L13-L15)
Environment and steps to reproduce

Enter development container with systemd-nspawn, as usual.
Run perl -V
Observe segfault.

Attempt to free unreferenced scalar: SV 0x55f7886da390 at /usr/lib64/perl5/5.26.2/strict.pm line 38.
Segmentation fault

Thanks, I dove into the perl-cross scripts and figured out what's going on:
If the optimize variable is passed by the user, then perl-cross/cnf/configure_tool.sh won't append -fwrapv -fno-strict-aliasing to it. Since we touch optimize (https://github.com/kinvolk/portage-stable/blob/main/dev-lang/perl/perl-5.26.2.ebuild#L505), we need to take care of passing fwrapv and fno-strict-aliasing ourselves. I'll try to get the fix into gentoo as well.

So the fix will be part of all channels this week, and the upstream PR has been submitted. I'll go ahead and close this .
Thanks for the issue, its interesting to see what people use torcx for. We're starting to think about replacing torcx with something else that will remain compatible but be better maintained and documented (https://github.com/kinvolk/Flatcar/issues/443).


 Nobody will touch it :rofl:

Every night can’t be legendary. If all nights are legendary, no nights are legendary. 💯

By Ted Mosby

oh my god...


Consider using “passive” event listener for mouse wheel event

FYI, Chrome displays the following message in the console in “verbose” mode:

preload.js:642 [Violation] Added non-passive event listener to a scroll-blocking 'wheel' event. Consider marking event handler as 'passive' to make the page more responsive.

Is there any downside to converting to “passive” event listeners?
More info:
https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
Thanks for everyone’s hard work on this! I use it on all my projects.

Thanks @tedw, I'll get this rolled in!

@tedw just added this, verified that it adds the listener passively and removes the alert from the console and published a new package.

@ten1seven Awesome, thanks!


fix(colors): Red Swap for accessible errors GM-281

Overview

Removes red-400 and adds red-600
Swaps danger-hover and feedback-error to new red.
Changes Error alerts to use red-600.

PR Checklist

[x] Related to designs: https://www.figma.com/file/EVbJ1Qn3FhHDLjtztmrWkt/Color-Research?node-id=72%3A44
[x] Related to JIRA ticket: https://codecademy.atlassian.net/browse/GM-281
[x] I have run this code to verify it works
[x] This PR includes unit tests for the code change

🚀 Styleguide deploy preview ready!https://6101762ea9026c220c13c44a--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@5.7.4-alpha.e6aba6.0@codecademy/gamut-illustrations@0.17.13-alpha.e6aba6.0@codecademy/gamut-kit@0.5.3-alpha.e6aba6.0@codecademy/gamut-labs@19.16.15-alpha.e6aba6.0@codecademy/gamut-patterns@0.5.1-alpha.e6aba6.0@codecademy/gamut-styles@11.6.3-alpha.e6aba6.0@codecademy/gamut-tests@2.4.16-alpha.e6aba6.0@codecademy/gamut@35.4.3-alpha.e6aba6.0@codecademy/konamimojisplosion@0.2.47-alpha.e6aba6.0@codecademy/markdown-overrides@0.5.59-alpha.e6aba6.0@codecademy/monaco@0.1.0-alpha.e6aba6.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://61018852a0e4df40fd0212bd--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@5.7.4-alpha.35298d.0@codecademy/gamut-illustrations@0.17.13-alpha.35298d.0@codecademy/gamut-kit@0.5.3-alpha.35298d.0@codecademy/gamut-labs@19.16.15-alpha.35298d.0@codecademy/gamut-patterns@0.5.1-alpha.35298d.0@codecademy/gamut-styles@11.6.3-alpha.35298d.0@codecademy/gamut-tests@2.4.16-alpha.35298d.0@codecademy/gamut@35.4.3-alpha.35298d.0@codecademy/konamimojisplosion@0.2.47-alpha.35298d.0@codecademy/markdown-overrides@0.5.59-alpha.35298d.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6102b61b3969162d41cd960f--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-icons@5.7.4-alpha.19bf21.0@codecademy/gamut-illustrations@0.17.13-alpha.19bf21.0@codecademy/gamut-kit@0.5.3-alpha.19bf21.0@codecademy/gamut-labs@19.16.15-alpha.19bf21.0@codecademy/gamut-patterns@0.5.1-alpha.19bf21.0@codecademy/gamut-styles@11.6.3-alpha.19bf21.0@codecademy/gamut-tests@2.4.16-alpha.19bf21.0@codecademy/gamut@35.4.3-alpha.19bf21.0@codecademy/konamimojisplosion@0.2.47-alpha.19bf21.0@codecademy/markdown-overrides@0.5.59-alpha.19bf21.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6102b9bb61c2711f63501695--gamut-preview.netlify.appDeploy Logs


Unexpected behaviour when chunking a query

Laravel Version
11.8
PHP Version
8.2
Database Driver & Version
No response
Description
When constructing a Query, calling ->chunk() before calling ->get() or ->delete() alters the original Query object resulting in unexpected results when calling ->get().
I consider this unexpected because I expected ->chunk() to be a read only operation i.e. it doesn't add any constraints to the underling query.
Steps To Reproduce
Execute the query (no chunk before its executed):
$query = \App\User::query()->where('created_at', '<=', \Carbon\CarbonImmutable::today()->subMonths(3));

$query->delete(); // 1742

Chunking the query before doing something with it:
$query = \App\User::query()->where('created_at', '<=', \Carbon\CarbonImmutable::today()->subMonths(3));

$query->chunk(250, function ($users) {}); // Do something with the $users e.g. create a log entry for each user

$query->delete(); // 242

You can see that by calling $query->chunk() first, even with an empty closure, it resulted in ~1,500 users not being deleted
(For context: I used the combination of ->chunk() and ->delete() because I needed to do something per user that wasn't possible to do in a single operation before they were deleted, but I still wanted to run a single DELETE query instead of n DELETE queries inside the ->chunk())

Chunk will modify the query and append take and limit to the generated SQL, you should be able to clone the instance for your use case.
$query = \App\User::query()->where('created_at', '<=', \Carbon\CarbonImmutable::today()->subMonths(3));

$query->clone()->chunk(250, function ($users) {}); // Do something with the $users e.g. create a log entry for each user

$query->delete(); // 242

Chunk will modify the query and append take and limit to the generated SQL, you should be able to clone the instance for your use case.
$query = \App\User::query()->where('created_at', '<=', \Carbon\CarbonImmutable::today()->subMonths(3));

$query->clone()->chunk(250, function ($users) {}); // Do something with the $users e.g. create a log entry for each user

$query->delete(); // 242

@crynobone thanks, yeah that's how I worked around the issue in the end, but I thought I'd report anyway as I found it unexpected and resulted in a bug getting deployed. My tests were passing so I was confident it was working but I obviously didn't have a test where I created > 250 users.
Do you think it maybe makes sense for ->chunk() to do a clone internally before applying the take and limit so that in my example I wouldn't need to do the clone myself?

Do you think it maybe makes sense for ->chunk() to do a clone internally before applying the take and limit so that in my example I wouldn't need to do the clone myself?

Not really, chunking is documented under returning model results, and therefore is it expected that you are no longer working on pre-defined query builder at the state.


Incorrect toRomaji conversion for katakana with long vowels (ー)

Edit: doing the easiest thing last of course, a test that fails on master:
describe('Long vowels', () => {
  expect(toRomaji('スーパー')).toBe('suupaa');
});

When running toRomaji('スーパー') I get the expected 'suupaa' on wanakana.com, but when doing it with the npm version (2.3.4) I get 'su-pa-'. Minimal repro, try toggling the script tags:
package.json
{
  "dependencies": {
    "wanakana": "~2.3.4"
  }
}

index.html
<!DOCTYPE html><meta charset="utf-8">

Also cloned master, ran npm run build and used the created WanaKana/dist/lib/wanakana.min.js with the same result.

Oof, good catch. It appears that the 3.0 beta API docs and min.js were accidentally copied to the gh-pages branch (despite it saying 2.3.4). I'll fix that back to 2.3.4 now.
The 2.x versions always convert ー to - regardless of kana type.
it("Doesn't mangle the long dash 'ー' or slashdot '・'", () =>
  expect(toRomaji('罰ゲーム・ばつげーむ')).toBe('罰ge-mu/batsuge-mu'));

In 3.x this behaviour is indeed remedied to what you expected (and saw on demo site):
  it("Doesn't mangle the long dash 'ー' or slashdot '・'", () =>
    expect(toRomaji('罰ゲーム・ばつげーむ')).toBe('罰geemu/batsuge-mu'));

I'm about to do some user testing with 3.0 and shouldn't be too long before it's published. You can try it out with npm i wanakana@next if you'd like - the remaining testing / potential issues are with bind and IMEMode.

I see, thanks! I'll run with the 3.0 beta when it's available (currently getting 'No matching version found for wanakana@next In most cases you or one of your dependencies are requesting a package version that doesn't exist.').

Oh sorry, yarn gives you a list to select from but npm doesn't.
You can try npm i<EMAIL_ADDRESS>or wait for it to be released fully to npm.

Ah, TIL. Apparently npm requires next to be a published tag for @next to work.


Integration tests added for IDP API patch ADD/REMOVE operations.

Purpose

Integration tests for https://github.com/wso2/identity-api-server/pull/308

Merge After

Merge https://github.com/wso2/identity-api-server/pull/308 and release identity-api-server
Bump identity-api-server version in https://github.com/wso2/identity-rest-dispatcher and release identity-rest-dispatcher
Bump identity-rest-dispatcher and identity-api-server versions in this repo.

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/1276945768

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/1276945768
Status: failure

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/1277375050

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/1277375050
Status: success


Hombli HBSS 0109 Exploit fails

Hey, I'm having trouble with cloudcutter and Hombli HBSS 0109 @ version 1.3.5 (there's a profile for it)

Been trying this on two host devices, double checked for version 1.3.5 in SmartLife before removal. Chip is WB2S.
Any tips?

That profile was based off the information provided in https://github.com/tuya-cloudcutter/tuya-cloudcutter/issues/564
That is the only profile available for 1.3.5.  It's possible they have a different firmware with the same version, but we would need a firmware dump to verify, otherwise I can only recommend trying again.  Being that you verified it is WB2S (BK7231T), we can rule out it isn't the 1.3.5 for BK7231N which is patched.

Closing as stale, as there isn't anything we can do without further information.  Reopen if you have more information to provide.


Latency with setImage

Hi guys, I am want to upload video image each frame.
looks like this  code snippet which will be called each frame.
`cv::cvtColor(frame.clone(), frame, cv::COLOR_BGR2RGB);
			app.frameData->fill(frame.data);

			if (app.tex != nullptr)
			{
				Texture::PixelBufferDescriptor desc(app.frameData->buffer, size_t(width * height * 3),
					Texture::Format::RGB, Texture::Type::UBYTE);

				app.tex->setImage(*engine, 0, std::move(desc));
			}`

however I found that the presentation in screen always appears obvious latency, I just wondering if you guys can share some educated options with me,  thanks.

setImage will schedule the texture upload on the render thread, which should happen before the end of the frame. Other than that, there's no other built-in latency, so it might just be the CPU outpacing the GPU when producing frames?

Oh, Thanks, you are right, I recall that the render was implemented with command-buffer,  it is a potent symbol for  multi-thread.
so I need to redress the balance.


Yann/test/rfid/deep sleep rfidkit functional tests

Requirements

[ ] #1366

Missing card on robot of functional test


support scala 3 compilation

partial scala 3 build support
code now compiles with Scala 3.2.2 but junit-vintage-engine is failing to run due to not liking some class names
I've raised https://github.com/apache/incubator-pekko-connectors-kafka/issues/59 as a follow on

I've asked this question on the Scala Users forum: https://users.scala-lang.org/t/scala-3-compile-issue-code-that-compiles-in-scala-2-12-2-13/9246 -- edit: it looks like private is more strict in Scala 3 - I had to make some private constructors package private to fix compile.
I had to make quite a few code changes to get Scala 3 compilation to work

@raboof @mdedetrich @kerr do you think that it is ok to merge this as a step towards Scala 3 support - #59 covers a remaining issue

Need a squash.

done

Thanks for response, if you can add the comment to .github/workflows/check-build-test.yml that would be great then I will approve the PR.


feat: accept="image/*" is not Working

Type: feat
Platform: mobile webview
I am creating image sharing app in which i will give a input type="file" and pass accept="image/*" but it can't give the option of selecting images it gives also music select box but i have to select images from both camera or gallery. Can someone help me.
Thanks in Advance !

Greetings @kapilkarda!
My sensors indicate that you have created an issue on our tracker that is more asking for usage help than an actual error with Ionic framework.
This Github issue tracker is used to track features, problems, and development of the framework.
If you wish to get help using the framework itself, the recommended place is the forum.
Thank you for allowing me to assist you.


Failures on [co19] Roll co19 to 5e94d0db25a8d8dfb6b1320bdb342e2935faf1d0

There are new test failures on [co19] Roll co19 to 5e94d0db25a8d8dfb6b1320bdb342e2935faf1d0.
The tests
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t01 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t02 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t03 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t04 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t05 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t06 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t07 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t08 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t09 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t10 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t11 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_compound_assignment_static_t12 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_conditional_static_assignment_t01 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_conditional_static_assignment_t02 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/Compound_Assignment/null_aware_conditional_static_assignment_t03 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Assignment/null_aware_assignment_t03 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Postfix_Expressions/conditional_decrement_t02 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Postfix_Expressions/conditional_increment_t02 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Postfix_Expressions/static_type_t10 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Postfix_Expressions/static_type_t12 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Property_Extraction/conditional_t03 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Property_Extraction/conditional_t07 MissingCompileTimeError (expected Pass)
co19/Language/Expressions/Property_Extraction/conditional_t08 MissingCompileTimeError (expected Pass)

are failing on configurations
cfe-strong-linux
cfe-weak-linux

It looks like every one of these failures is a MissingCompileTimeError plus some unexpected compile-time errors. Could it be because the common front end emits those errors at a slightly different location, so we get the right errors, but they aren't in the expected location?

Checking again, the test needs to be adjusted: It uses C?.v= where C denotes a class, and that is a warning in Dart with null safety (this applies for all kinds of member accesses, like calling a static method/getter/setter or tearing off a method). I can't see that this test expects that warning, not for any configuration.
But I can see that dart emits the warning as I'd expect, and so does the dart analyzer. So I don't know why it is characterized as a MissingCompileTimeError by the test runner.

It does look like the problem in all cases is that the CFE reports the error of C?.foo on C and not on ?..

Ah, thanks!


[REQ] Patch from Trivy SBOM scan results

What kind of request is this?
Improvement of existing experience
What is your request or suggestion?
Trivy allows you to generate an SBOM for a container image and then use the SBOM to produce a vulnerability report. My request is that Copa be able to use the vulnerability report generated by the trivy sbom command to patch the container image instead of relying on scans of the container image directly.
Here's an example:
# generate sbom in spdx format
trivy image --format spdx-json --output spdx.json alpine:3.16.0
# create vuln report from sbom
trivy sbom spdx.json --exit-code 0 --format json --output ./patch-from-sbom.json
# patch container image from sbom report
copa patch -i ${IMAGE} -r ./patch-from-sbom.json -t v0.1-alpha-1

Currently, when I follow this path I get the following error:
Error: failed to solve: failed to load cache key: no match for platform in manifest: not found

Are you willing to submit PRs to contribute to this feature request?

[X] Yes, I am willing to implement it.

@duffney can you tell a bit more about this? any distinctions or advantages over using trivy report?

I was envisioning using the SBOM to patch images instead of scanning results. If the SBOM was already available in the referrers of the container image, it would make scanning unnecessary. One of the promises of an SBOM is to assist with vuln management, but after a bit more research it might be a bit early. However, it could make a good backlog feature. :)

it would make scanning unnecessary

wouldn't you still need to scan it (what trivy sbom does)? it just scans the sbom, rather than the image itself

That's correct. However, the report that trivy generates with trivy sbom is in a slightly different format and Copa can't use it to patch. So, another trivy scan report would need to be created in order to use Copa.


When a new user starts the FF! with the Frank!Runner, he sees a warning

Describe the issue
When you start the FF! you see a warning that has nothing to do with the configuration you supplied. The shown screenshot was produced by starting the FF! using the Frank!Runner.
Someone has to update IAF_Util, I would expect.
Reporter
Martijn Dirkse

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Screenshots
If applicable, add screenshots to help explain your problem.
Configuration
Please provide the configuration of the Pipe or Receiver with the problem.

Input
Please provide an example of the input message.
Alternatively, provide a Ladybug report.

Environment
FF! 8.1.0-RC2-20240508.012135: v500
Running on LAPTOP-R1SK28C using Apache Tomcat/9.0.88
Java Version: OpenJDK Runtime Environment (21.0.2+13-LTS)
Heap size: 92M, total JVM memory: 169M
Free disk space: 126GB, total disk space: 464GB
Up since: 2024-05-16 13:24:08 (16m)

Additional Environment

DBMS: [e.g. Oracle, MSSQL, MariaDB, MySql, PostgreSQL]
Browser: [e.g. Chrome, Safari, Edge, Firefox]

Additional Context
Erik told me that the Frank applications that are in the Frank!Manual produce warnings. I am fixing that. To complete this, we also have to fix the warnings that are not caused by the Frank!Manual.

Kan het core team beslissen wie dit gaat oplossen. Ik zou het zelf kunnen proberen als core dat wil.

Not related to the framework, this is an intentional warning.
The Frank!Runner may choose to suppress this warning by setting warnings.suppress.sqlInjections.ManageDatabase=true.


NotificationCreateResult Class Improved

NotificationCreateResult class is now improved in order to add all informations returned from OneSignal server according to OneSignal API:
https://documentation.onesignal.com/reference#section-results-create-notification

No, I just copied the project to my solution, also to use this fix https://github.com/mundipagg/OneSignal-CSharp-SDK/pull/23. Last commit more than year ago, no one seems to be updating this project, which is a pity.


doing introspection on a SQL Server 2018 DB - for Dynamic GP get the following error.

Hi Prisma Team! Prisma Migrate just crashed.
Command
db pull
Versions

Name
Version

Platform
darwin-arm64

Node
v16.14.0

Prisma CLI
4.0.0

Engine
da41d2bb3406da22087b849f0e911199ba4fbf11

Error
Error: [libs/sql-schema-describer/src/mssql.rs:338:30] called `Result::unwrap()` on an `Err` value: "Couldn't parse default value: ` create default dbo.GPS_INT AS 0    `"

Hey. This is a bug we see sometimes in our error reporting backend. I'm the author of Prisma's SQL Server functionality, and I haven't found a way to reproduce this issue. Could you describe the steps how to create a schema that gets our introspection to crash in the following way? Would be really cool.

I don't know why my replay didn't make it to the portal.
This is a SQL Server as stated:
connection string : "DB_SQL_URL2=sqlserver://X.X.X.80:1433;database=DYNAMICS;schema=dbo;user=REMOVED;password=REMOVEDtrustServerCertificate=true;encrypt=true;
It fails right at the SQL Errors table for GP - I have attached that table for your review.

We just ran prisma db pull.

We are connecting to a Microsoft SQL Server with the following connection string (removed ip address username and password) - using Prisma Client:
DB_SQL_URL2=sqlserver://X.X.X.X:1433;database=DYNAMICS;schema=dbo;user=;password=";trustServerCertificate=true;encrypt=true;
We then simply run prisma db pull.
The table that causes the crash I took a screen shot - hope this helps you and all of us.
It would be very beneficial if you guys started to allow multiple schemas on the same db pull.  We often run into situations with legacy applications or large enterprise applications have differing schema's in the same DB - we connect to many different data sources.
Thanks in advance…
Chris Burd
Maxus Capital Group, LLC

From: Julius de Bruijn @.>
Sent: Thursday, July 7, 2022 4:07 PM
To: prisma/prisma @.>
Cc: Chris Burd @.>; Author @.>
Subject: Re: [prisma/prisma] doing introspection on a SQL Server 2018 DB - for Dynamic GP get the following error. (Issue #14200)
Hey. This is a bug we see sometimes in our error reporting backend. I'm the author of Prisma's SQL Server functionality, and I haven't found a way to reproduce this issue. Could you describe the steps how to create a schema that gets our introspection to crash in the following way? Would be really cool.
—
Reply to this email directly, view it on GitHubhttps://github.com/prisma/prisma/issues/14200#issuecomment-1178166198, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AZDR5SSPKIQAPNILKTM6EB3VS42JXANCNFSM526TU7BQ.
You are receiving this because you authored the thread.Message ID: @.***>

It would be very beneficial if you guys started to allow multiple schemas on the same db pull. We often run into situations with legacy applications or large enterprise applications have differing schema's in the same DB - we connect to many different data sources.

This should be right up your alley then: https://github.com/prisma/prisma/issues/1122#issuecomment-1231773471

This should be fixed via https://github.com/prisma/prisma-engines/pull/4884, which will be included in the next release.


Resolution more info optional

Description
External rules used to have a requirement that the resolution steps must be filled in. For this reason, the resolution.md and more_info.md files were mandatory even if the resolution was unknown at the time. It was often worked around by providing these .md files empty.
This MR makes the presence of those files entirely optional, which increases the number of parsed rules from 48 to 55.
Because the attributes could've been empty before because of the empty .md files and according to Georgii and https://docs.google.com/document/d/1KxaZqxE0-Q2r3Y8KoVFBmbxfTHHQQA0Tu9jPMmI1P9E/edit?usp=sharing it won't break any UI element if resolution and more_info are ""
Fixes CCXDEV-5058
Type of change
Please delete options that are not relevant.

New feature (non-breaking change which adds functionality)
Unit tests (no changes in the code)

Testing steps
Ran locally with the latest version of rule content (which has 1 broken external rule without resolution.md) and all external rules were parsed correctly. Ran smart-proxy, retrieved all content and checked the response
Checklist

[x] make before_commit passes
[x] updated documentation wherever necessary
[x] added or modified tests if necessary
[x] updated schemas and validators in insights-data-schemas in case of input/output change

Codecov Report

Merging #264 (79e90b2) into master (0b804b8) will decrease coverage by 0.37%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##           master     #264      +/-   ##
==========================================
- Coverage   69.45%   69.08%   -0.38%
==========================================
  Files           9        9
  Lines         370      372       +2
==========================================
  Hits          257      257
  Misses         91       91
- Partials       22       24       +2

Impacted Files
Coverage Δ

content/content.go
84.93% <33.33%> (-1.18%)
:arrow_down:

Continue to review full report at Codecov.

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

@tisnik not a bad idea at all... done.
thank you!


IsStatusBarEnabled Support

Allow users to disable the Statbus Bar

Completed with https://github.com/tryphotino/photino.NET/issues/134


Frontend e2e tests

[ ] JS-DevTools/coverage-istanbul-loader#10 or istanbuljs/istanbuljs#662
[ ] ~Merge coverage with backend tests~
[x] Errors in folder selection
[x] Handled error in backend (other than non-empty dest)
[x] Unhandled error in backend
[x] Navigation back through the app

Codecov Report

Merging #760 (30d34de) into master (2835521) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master      #760   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           11        11
  Lines          133       133
  Branches        16        16
=========================================
  Hits           133       133


Add sanjayaksaxena to maintainers.yml

Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/india/blob/main/CONTRIBUTING.md.

Which change are you proposing?

[ ] Adding/updating open source project/s
[x] Adding/updating maintainer/s

Adding/updating maintainer/s

[x] Maintainer's location on their GitHub profile indicates as India
[x] Maintainer has approved this PR to be included on the website

What open source project/s does the individual maintain?

https://github.com/winkjs/wink-nlp
https://github.com/winkjs/wink-helpers
https://github.com/winkjs/wink-statistics

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

👍🏾


Upgrade to node 8

Issue
Certain dependencies are preventing us from upgrading to Node 8.
Fix
Bump two dependencies that block progress to Node 8. This PR can be merged without any changes to the server as it doesn't change the runtime behavior of CodeCombat.
Bumped d3 library to move away from the contextify dependency. Checked the teacher dashboard/admin analytics/ladder views to ensure the version bump didn't have regressions. It appears fine.
Also bumped bower to a version that supports Node 8. This change could have an adverse effect on the build step but seems to work fine.
I tested that our build system can build this change by deploying to next against the production server. Browserstack tests were normal.
Finally karma appeared to run normally in the Node 8 environment.

@differentmatt Updated the PR comment with intention as well as what has been tested.

I also tested that development environment still works between the two node versions. npm link links correctly even when server remains on node 6.


Bump nickel tree-sitter grammar

Closes #485

I'm not sure which steps to take to do that ; the instructions in CONTRIBUTING.md are unclear. Would you mind updating them and/or bumping the binary yourself?


Drop require on pyOpenSSL and explicitly require cryptography

It seems that the requirement for having pyOpenSSL was dropped quite a while back (and documented as such), so the only purpose pyOpenSSL now serves is to bring in cryptography, which would perhaps be better called out as a dependency directly.
I'm submitting this, because I felt that requiring pyOpenSSL was a little bit confusing when the only purpose it now serves is bringing in cryptography.

I cheers idea of this - when we can expect this to be include and release?


[EPIC] Epicli configuration validation

Epic with issues regarding Epicli configuration validation

Not going todo this anymore for Epiphany.


Unavailable link

Interesting work! I found that the onedrive links for the datasets and pretrained weights are not available. Could you please check this issue? Thank you.

@lts427 Thank you for your interest in this work!
The onedrive links previously were expired. I've updated the links, they should work now.

Dear @Claymore715 ,
Many thanks for your great contributions to hand trajectory prediction! The link of H2O-DT annotations is broken. Could you please update it? Thank you very much!


Issues with Windows convert

When you run noteshrink on windows (am using windows 10), noteshrink fails on the subprocress.call to convert:
running PDF command "convert page0000.png output.pdf"...
Invalid Parameter - output.pdf
The reason appears to be given in this stackoverflow question:
https://stackoverflow.com/questions/41860668/why-does-this-python-subprocess-command-only-work-when-shell-true-on-windows
Windows has another old program called convert sitting on my PC in C:\Windows\System32\convert.exe
Possible solutions involve using:
shell=True
OR
changing the command to magick. I note from the current release notes that:
magick
The "magick" command is the new primary command of the Shell API, replacing the old "convert" command. This allows you to create a 'magick script' of the form "#!/path/to/command/magick -script", or pipe options into a command "magick -script -, as abackground process.

Same as #29 , workaround on #15 , solved by #30


⚠ Bofrost.at has degraded performance

In 9d486ad, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1249 ms

Resolved: Bofrost.at performance has improved in e5ecdc1 after 9 minutes.


fix: Lean4 code snippets need to specify the lean4 language service

fix: Lean4 code snippets need to specify the lean4 language service id which is lean4 otherwise hover tips in vscode don't get colorized properly when lean3 extension is missing, and besides we want to colorize them using lean4 grammar, not the lean3 grammar.

I see lots of test baselines will need to be updated, before I do that I want to check if this is the right change to make, also do you have a tool that just says "copy test output and promote it to be the new expected output" which might save me a lot of work...?

Could you please try to find an alternative solution for the vscode issue?
We want to avoid
```lean4

because we all hope that in a near future the 4 in Lean 4 will not be needed anymore.

Could you please try to find an alternative solution for the vscode issue?

@gebner might be able to confirm, but I think the only way to get lean4 syntax highlighting on lean4 code snippet using the string lean would require the lean4 VS code extension to register itself as language lean and thereby give up on side-by-side compatibility with lean3 extension.  To get lean3 people would have to disable lean4 extension and vice versa.  Are we ready to do that?

I looked into how vscode is working some more and turns out is coloring code snippets with defined using triple back tick and no language using the lean4 grammar, so we can just do that and cancel this PR.


fix: Set AppVersion/ProtocolVersion [DEV-2112]

This fix gets ABCI info and status endpoints to correctly set app/protocol version to 1, which is the new major version number.

Task linked: DEV-2112 Populate app version correctly


Fix crash when opening a ZIP data pack

Thanks to @bruvzg for providing a fix :slightly_smiling_face:
See also https://github.com/godotengine/godot/pull/42123.

Thanks!

Cherry-picked for 3.2.4.


Enhancement: How to test fields?

We are depending on many fields now and the number of fields implemented is going to increase in time but we still don't have a proper way to test them.
One idea can be driver-based testing with Selenium or Playwright.
And one question is this: these are simple fields that work on the client side. Do we need to test them?

WDYT @jowilf?

#30 resolves this.