Mark variables as obligatory

I'd like to evaluate formula:
$average([accuracy1, accuracy2])

Currently, If I don't set accuracy2, the library will ignore it and return value of accuracy1. Is it possible to mark some/all variables as obligatory?
Example:
expr, err  := jsonata.Compile("$average([accuracy1, accuracy2])")
if err != nil {
	log.Fatal("Invalid expression", err)
	return
}

res, err := expr.Eval(map[string]any{"accuracy1": 0.9})

Got result: 0.9, nil.
Wanted result: 0, errUndfinedVariable("accuracy2")

Hello, i have put together this:
(
$e := function($i, $keyfield){
	$exists($i) ? $i : $error($keyfield & " not exists")
};

$average([$e(accuracy1, "accuracy1"), $e(accuracy2, "accuracy2")])
)

and using input:
{
  "accuracy1": 1.5
}

you get result:
eval error: accuracy2 not exists, position: 56, arguments: number:0 value:accuracy2 not exists , position: 135, arguments: number:1 value:accuracy2

Thank you for the answer! I know this option, but it requires changing formula, that can be difficult. If this is the only option, I will follow your recommendations.

It's the best idea that i think jsonata can provide at this time, so go ahead and utilise this approach


ENH: add resume thresholds to suspender justification message

Description

Adds more context to the justification emitted by the suspenders.
Motivation and Context

Not including the resume condition lead beamline staff to become concerned we were doing "new math".
How Has This Been Tested?

Covered by existing test cases, however we do no check the contents of stdout, disabling capture and running the tests locally gives
.Suspending....To get prompt hit Ctrl-C twice to pause.
Suspension occurred at 2022-12-08 13:25:32.
Justification for this suspension:
Signal bool_sig = 0 fell below 0.5 and has not yet crossed above 0.5.
Suspender SuspendFloor(Signal(name='bool_sig', value=1, timestamp=1670523933.1577613), sleep=0.2, pre_plan=None, post_plan=None,tripped_message=) reports a return to nominal conditions. Will sleep for 0.2 seconds and then release suspension at 2022-12-08 13:25:33.
0.9057326316833496
.Suspending....To get prompt hit Ctrl-C twice to pause.
Suspension occurred at 2022-12-08 13:25:33.
Justification for this suspension:
Signal bool_sig = 1 went above 0.5 and has not yet crossed below 0.5.
Suspender SuspendCeil(Signal(name='bool_sig', value=0, timestamp=1670523934.2849662), sleep=0.2, pre_plan=None, post_plan=None,tripped_message=) reports a return to nominal conditions. Will sleep for 0.2 seconds and then release suspension at 2022-12-08 13:25:34.
0.9056258201599121

Indeed, that's very helpful, thanks @tacaswell!


[4.7] CLOUDSTACK-9022: keep Destroyed volumes for sometime

for now, the Destroyed volumes will be expunged in Storage cleanup thread, no matter when they are destroyed.
In Expunging vm thread, we expunge the Destroyed vms which have been destroyed at least 'expunge.delay' seconds. We add the similar configuration for volumes.

Excellent! I thought this feature was already implemented via expunge.delay, good to know it doesn't work as I thought it was.

@koushik-das Thanks for your comments. I pushed a new commit .

Seems good! Great to see this :) Some tests are failing though, could you look into that?

LGTM +1 (just code review, no testing was performed)

@ustcweizhou If you want this in 4.6.1, please quickly rebase and resolve conflict. Then ping me so I can run the integration tests. Thanks!

@remibergsma  rebased with latest master.
There is a conflict with 4.6 because of commit 1a64c247adbeb326f7ddbe6e4feaf3159e9e740d

@ustcweizhou PR #1145 is merged to 4.6, please close this PR. Thanks!

@remibergsma
#1145 has conflict with master branch. you can merge this PR instead.

@ustcweizhou this PR is not needed as the code from 4.6 will be merged into master.

@DaanHoogland @remibergsma OK, I close this PR, You need to fix the conflict manually when you merge 4.6 to master.


Some pub oauth2 tests fails to wait for response before killing child process.

The following tests:
test/oauth2/with_a_malformed_credentials_authenticates_again_test
test/oauth2/with_a_server_rejected_refresh_token_authenticates_again_test
test/oauth2/with_an_expired_credentials_without_a_refresh_token_authenticates_again_test
test/oauth2/with_no_credentials_authenticates_and_saves_credentials_test
does not wait for the http response to be received in tests/oauth2/utils.dart: authorizePub, before the child process hosting the server is killed.
I'm not sure what the right fix is here.
This issue was introduced by the following CL, where the order of onCancel and 'done'-event was swapped for streams: https://codereview.chromium.org//18915008

This issue has been moved to dart-lang/pub#679.


is compiler needed for windows?

Hi Kerstin,
I am about to try the python version finally, but dont have a compiler.
Is this actually necessary for windows as maybe precompiled binaries would also work.
Just wondering if we could include them.
Cheers.

seems to work now.
Is swig needed for this? it seems to me that it was never used then.
then we can maybe remove it from the prerequisites for the precompiled version.

The problem is that the precompiled version is strongly system-dependent and I have not yet found a working solution to make it less so. I will work on another installation with @schuenke. Until we have one, Iwill emphasize the existence of the installation files before the description of the system-independent installation in the readme.


Bridge OOM with ~30 evaluations of a few hundred metrics each

Environment
The Keptn "dev" environment, aka "sre ocp"

Client OS (e.g., Linux, macOS, Windows):  linux
Keptn Version (keptn version): 0.9.2
Kubernetes Cloud Provider (e.g., GKE, AKS):  on prem OpenShift
Kubernetes version (kubectl version):
oc v3.11.439
kubernetes v1.11.0+d4cacc0
features: Basic-Auth GSSAPI Kerberos SPNEGO

Server https://sreocp.fisdev.local:443
openshift v3.11.439
kubernetes v1.11.0+d4cacc0
Affected Component

[ ] Approval
[X ] Bridge
[ ] CLI
[ ] Datastore
[ ] Docs
[ ] Distributor / Event Broker
[ ] Helm
[ ] Istio
[ ] Jmeter
[ ] Kubernetes Integration
[ ] Openshift Integration
[ ] REST API
[ ] Webhook

Describe the bug
The Bridge pod got OpenShift OOM error and restarted.
To Reproduce
a. Create about 200-300 SLIs/SLOs
b. Trigger 30 evaluations
c. Browse around the Bridge UI, displaying the entire red-green heap map, selecting different evaluation dates.
We saw the error -- sorry, didn't get a screenshot, in the OpenShift Events console for the Bridge...or perhaps was it the Log -- not sure.
Expected behavior
We were expecting that default Bridge deployment memory max would be large enough to process this much data without OOM killing.
Current behavior
OOM will not happen because larger memory foot print is specified in the default Bridge deployment Yaml
All the logs in the following file were captured using our NEW memory settings in the bridge deployment yaml:
         resources:             limits:               cpu: 200m               memory: 256Mi             requests:               cpu: 25m               memory: 128Mi
It would be acceptable if the above memory parameters were used as default for the Bridge.
The following data was captured to provide a general idea of the size of all data processed that caused the OOM with the Keptn default RAM settings.
keptn-oom.zip

I just looked up the current settings:

Pod
Container
Memory (requested)
CPU (requested)
Memory (limit)
CPU (limit)
Images

bridge
bridge
64Mi
25m
128Mi
200m
docker.io/keptn/bridge2:0.11.2


fix(client): ensure validation works during watch

This fixes a bug where changing a challenge would throw an error since validate was missing.

@Sky020 master should be okay now, if you want to give it a go.  Thanks for catching this, by the way.

@ojeytonwilliams , No, thank you, for getting this going so quickly 👍


Fix internal build target

Travis failure is a master build break being fixed separately.

@maksymmalyhin It's need for the internal build structure that includes some dependencies on subsets of this library.


Allow saving/loading custom portrait info

Info set on custom events with the set_extra_data method is not preserved between saves.
As discussed in discord, some of this could be added to Subsystem_Portraits.load_game_state() but for the saving additional functionality would have to be implemented

For extension for both this and beyond this as well for custom scenes and custom events and stuff and just using the Dialogic save system for other game data too if desired, it occurs to me that there should be a several stage signalling system with saves. So when saving is called, it sends the signal out to anything listening to write whatever data they want into the full state, while the save then pauses and waits for anything listening to report back. Then once all of them have reported back, it finally finishes the save and writes the file. Then likewise, a script listening for the load signs from saves can then pull out whatever data they need from the full state


Bulk RNA-seq Level 1 DependsOn Attribute Inconsistency

Information
Proposed change:
The Bulk RNA-Seq Level 1 component contains " Flow, Cell Barcode" in DependsOn instead of "Flow Cell Barcode"
I think this is a typo - not sure if it impacts anything but just in case.
Implementation checklist

[ ] Branch created
[ ] HTAN.model.csv editied and pushed
[ ] HTAN.model.jsonld validated and created by Github action
[ ] PR opened
[ ] PR approved
[ ] PR merged into main
[ ] DCA update requested
[ ] DCA updated

Good catch! I believe this will be covered in https://github.com/ncihtan/data-models/issues/263

Thanks, @PozhidayevaDarya! Yes, we spotted a fair few similar errors last week that @elv-sb will be fixing in #263. I'll close this issue as a duplicate


updating rand_core

LEC dependency change summary:
target packages:
  A rand_core 0.6.0 (direct third-party, crates.io)
    * features: [none]
  M rand_core 0.5.1 (transitive third-party, crates.io)
    * status changed from direct third-party
    * (unchanged features: alloc, getrandom, std)

LSR dependency change summary:
target packages:
  A rand_core 0.6.0 (direct third-party, crates.io)
    * features: [none]
  M rand_core 0.5.1 (transitive third-party, crates.io)
    * status changed from direct third-party
    * (unchanged features: alloc, getrandom, std)

release binaries dependency change summary:
target packages:
  A rand_core 0.6.0 (direct third-party, crates.io) (other versions: 0.3.1, 0.4.2)
    * features: [none]
  M rand_core 0.5.1 (transitive third-party, crates.io) (other versions: 0.3.1, 0.4.2)
    * status changed from direct third-party
    * (unchanged features: alloc, getrandom, std)

/land

Nice thanks for digging in.

:broken_heart: Test Failed - commit-workflow

seems like an unrelated error, rebasing + re-trying

/land

LSR dependency change summary:
target packages:
  A rand_core 0.6.0 (direct third-party, crates.io)
    * features: [none]
  M rand_core 0.5.1 (transitive third-party, crates.io)
    * status changed from direct third-party
    * (unchanged features: alloc, getrandom, std)

LEC dependency change summary:
target packages:
  A rand_core 0.6.0 (direct third-party, crates.io)
    * features: [none]
  M rand_core 0.5.1 (transitive third-party, crates.io)
    * status changed from direct third-party
    * (unchanged features: alloc, getrandom, std)

release binaries dependency change summary:
target packages:
  A rand_core 0.6.0 (direct third-party, crates.io) (other versions: 0.3.1, 0.4.2)
    * features: [none]
  M rand_core 0.5.1 (transitive third-party, crates.io) (other versions: 0.3.1, 0.4.2)
    * status changed from direct third-party
    * (unchanged features: alloc, getrandom, std)

:broken_heart: Test Failed - Build images and run cluster test


MINIFICPP-1734 Make TailFile capable of collecting logs from kubernetes

https://issues.apache.org/jira/browse/MINIFICPP-1734
Add a controller service which can call the Kubernetes API, and modify TailFile so that it can use this service to collect logs from all pods running on the node, or from selected pods/containers using regular expressions for namespace, pod name and container name.
I am still working on integration tests; they will be in a separate pull request.

Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically main)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file?
[ ] If applicable, have you updated the NOTICE file?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.

LGTM, one nitpick and a question, any chance we could create some docker test to verify this in something like minikube?

Yes, I'm working on that.  It will be in a separate pull request.


Related to Hashing functionality

Add hashing functionality to code base.
It should be able to be imported like:
import Hash from "joor/hash"; // or import {Hash} from "joor";
it should contain methods to encrypt and decrypt texts.

 import {Hash} from "joor";
Implemented this importing feature for hashing.
User can now Encrypt and check encrypted text to normal text, which returns true if they are same else returns false;


Fix(kclvm-win): install plugins for win.

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

[ ] N
[x] Y

#379

2. What is the scope of this PR (e.g. component or file name):

kclvm-windows
3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

[x] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Other

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

[x] N
[ ] Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

[x] Unit test
[ ] Integration test
[ ] Benchmark (add benchmark stats below)
[ ] Manual test (add detailed scripts or steps below)
[ ] Other

6. Release note

Please refer to Release Notes Language Style Guide to write a quality release note.
None

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 90.562%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1612

Relevant Lines:
1780

💛  - Coveralls


main_calculator

Hello ANKIT DHANAWAT,
We have reviewed your tasks, you have a done a great job...!
Keep working hard.


python311Packages.py-partiql-parser: 0.3.8 -> 0.4.0; python311Packages.moto: 4.2.2 -> 4.2.6; python311Packages.python-jose: refactor, expose extras

Description of changes
Another try to parallelize the test suite. I'm not sure the test suite will work on all platforms yet.
https://github.com/getmoto/py-partiql-parser/blob/0.4.0/CHANGELOG.md
https://github.com/getmoto/moto/blob/4.2.6/CHANGELOG.md

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg build python311.pkgs.moto
@ofborg build python310.pkgs.moto


Certificates: management command for creating and revoking course certificates

From time to time, course teams would like to grant, or revoke a certificate manually.
This will also be useful for manual testing scenarios where we need a certificate.
acceptance criteria

Inputs:

courserun readable_id
email (optional; default is to attempt certificates for all enrolled users)
grade (optional; overrides the final grade for a single user)

use the grades method of edx-api-client

if possible, fetch all the grades and the passed status in one request, instead of iterating through each user

if the user passed, create a course certificate for them

also need a way to revoke an existing certificate

Posting an update about the working of the command that's created for this:
Criteria & Conditions (For operations in the command)

A course run (Course Run's courseware_id) is needed for all the operations in the command
Grade override and revoke/un-revoke operations are supported for a single user only, so for these operations, the command will specifically need a user
The Create operation is supported for single or all users

If a user is provided while running --create the operation will run only for that specific user
If a user is not provided while running --create the operation will for all the enrolled users

Overall behavior

The command will not check the eligibility of the course run like the regular 24 hours task for certificates, it will just perform the operation specifically for the provided run
In the case of --grade= if the grade is greater than 0.0 the command will override the grade and mark the user passed and generate the certificate
In case the grade is not provided, the command will check the eligibility criteria of certificates e.g. (Passed in edX + Paid enrollment - Verified)

Samples:
Revoke, Un-Revoke (This needs a user, it only works for a single user)

./mange.py manage_certificates —revoke —user=<username or email> —run=<course_run_courseware_id> (Revokes the user certificate for a specific run)

Create certificates (This supports single user or multiple users if no user is provided, If a user is provided it runs for that single user only):

./manage.py manage_certificates —create —user=<username or email> —run=<course_run_courseware_id> (This should create/update the grades for the user and create the certificate for the provided user if the user has passed grade from edX and enrolled in Verified/paid mode)

Override Grade (This operation needs a user and works only for a single user):

./manage.py manage_certificates —create —user=<username or email> —run=<course_run_courseware_id> —grade=<a float value between 0.0-1.0> (This should override the grades for the user with the provided grade in parameters and create the certificate for the provided user regardless of the passing grade and paid enrollment) - This will not create the certificate for the user in the case when grade=0.0 otherwise it will override the grade+create certificate

Thanks for the detailed documentation. Can you put it into a how-to post in hq/discussions?
Can this be closed?

Thanks for the detailed documentation. Can you put it into a how-to post in hq/discussions?
Can this be closed?

Created the discussion post here.
Also tested it on RC, and this can be closed. Closing it via https://github.com/mitodl/mitxonline/pull/897.


MessageController keeps "@@" when unused message reused again when markUnused = true

Unused messages are marked with @@ when markUnused is true. Then you see it and fix something in your code, so some unused messages became reused again. But MessageController does not remove @@ from reused messages:

format php just keeps polluted translation: 'Source' => '@@Translation@@', .
format db keeps old @@Source@@ rows with correnponding translations and inserts new Source rows with empty (t.i. without) translations.

It whould be pretty fine to remove @@ back to get previous normal state when message is reused again.
Checked in 2.0.6

Do you know how to fix it?

@samdark, Do you mean some ideas? We can simply remove @@ back. Or, may be, we need more strict way to mark unused messages? It can be separate file for formats with files (i.e<EMAIL_ADDRESS>and separate field source_message.unused for DB format.

I think in one case, this line cause the @@ will not be removed because it only check whether the keys of the existing translations matches the extracted messages.

Just tried a quick fix. This fix will remove @@ when user added a message whose translations marked as @@ and the number of messages extracted matches the number of translations. Will try to work on a PR when have time.
         if (array_keys($existingMessages) === $messages && (!$sort || array_keys($rawExistingMessages) === $messages)) {
                $new = false;
                foreach($existingMessages as $message => &$translation) {
                    if ((strncmp($translation, '@@', 2) === 0 && substr_compare($translation, '@@', -2, 2) === 0)) {
                        $new = $new || true;
                        $translation = substr($translation, 2, strlen($translation) - 4);
                    }
                }
                if (!$new) {
                    $this->stdout("Nothing new in \"$category\" category... Nothing to save.\n\n", Console::FG_GREEN);
                    return;
                }
            }

Tricky case. If message key is reused but context is different then translation may need to be adjusted so it's not a good idea to reuse it as it was.

As far as I understand, message itself cannot and should not care, where and how it is used. Usage context should care to use correct message. May be I misunderstood the concept?

Yes. The thing is:

The message was translated when it was used in context A.
Then it was deprecated.
Then it was re-used in context B where it's no longer correct but it wasn't marked as untranslated so noone paid attention.

I think we should just put some notice in the documentation.

Message may be reused without marking it temporary as unused. So, %subject% should not care about this such properly.

OK, another example:

subject was used as тема in translation context A.
Code that used it was removed.
New code was introduced that translates subject again. It automatically picked up тема but according to context B it should be translated as объект.
Translators weren't aware of it because they're taking care about new empty strings.

Well, message category is the only way to differentiate subject=тема and subject=объект in the example. IMHO, programmer only should to cate about it, neither %subject%, not translator. Programmer should to provide correct context by message category.

Well, there's only one message in each case. Programmer forgot or wasn't aware about previous message (it happens in teams often) and introduced new one that matched. It's quite typical. Especially for general purpose labels such as "subject".


fix(dynamic_avoidance): fix which side to avoid

Description
Changed the logic about which side to avoid

When the target object velocity is the same direction as the ego

Check if the current object position is left or right against the ego's path

When the target object velocity is NOT the same direction as the ego

Check if the object position in the near future is left or right against the ego's path

Tests performed

psim
Effects on system behavior

nothing
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

When can the dynamic_avoidance  function be used?

@zjw77889
We, TIER IV, will start using the dynamic avoidance feature in two months. Now we are testing and fixing it with a real vehicle.


D3fc plugin - Resizable legend and other tweaks

This PR includes the ability for users to resize the legend by dragging the corners or edges. This is in addition to a previous PR that added the ability to move the legend.

There are also some minor changes to the sunburst chart and some additional tests.

Thanks for the PR!  Looks great!


Country request: Iran

Please process aerial images in Iran for buildings (It's important for us because We had earthquake and flood recently in the west of Iran) and roads.
Thanks for your attention

+++++++++++++++

👍

+1

Thanks for the request @imanmoghimiq30 and everyone else!
I'll add it to our country request list for roads. Microsoft produces the buildings so no promises on them.

@jeffdefacto appreciate

@jeffdefacto will Iran be in the next batch release?  Thanks!!

Bad news unfortunately.
After internal legal review, it has been determined that current US law prevents us from releasing Iran road data.
This could change in the future and this issue will remain open for tracking purposes.

Is there a specific agency I can reach out to and ask more about this? Or is this an agreement between Maxar/ us govt (DoD/ NSA/ etc)? Thanks for updating issue.

It's due to the ongoing sanctions.
I'm not a lawyer, so I can't provide much more information on the subject unfortunately.

@justinelliotmeyers it looks like no data in Iran still, so I would count on this not happening via Meta or Microsoft open data as US-based companies affected by sanctions. Going to close the issue.


Temperatures

Wireless interface temperature:

Broadcom DD-WRT: wl -i INTERFACE phy_tempsense

CPU temperature:

Broadcom DD-WRT: /proc/dmu/temperature

Some devices seem to have temperature information at /sys/class/i2c-adapter/i2c-0/0-0028/temp_input


OpenMS and frequently mass shifts in Unimod

Description of feature
@MaLLLiYA @timosachsenberg @jpfeuffer @daichengxin :
We have been analysing some of the datasets and we found some interesting unexpected PTMs (mass shits), most of them are here:
https://unimod.org/modifications_list.php?a=search&value=1&SearchFor=Unidentified+modification+of&SearchOption=Contains&SearchField=
1970 |   | Unknown:162 | Unidentified modification of 162.1258 found in open search | 162.125595 | 162.2267 | H(18) C(8) O(3)

Can we make sure these mods works in OpenMS? Also, Can you let us know @timosachsenberg how you can search with OpenMS tools for a delta mass when the mod is not defined on OpenMS?

I think you have to add the mods as CUSTOM0..CUSTOM9 to the unimod.xml in the OpenMS share.

In search engine adapter, there is a mass_offsets paramter. Is it applicable?

I think you have to add the mods as CUSTOM0..CUSTOM9 to the unimod.xml in the OpenMS share.

But can this be done dynamically, or we need to add this inside OpenMS and wait for the release?

I think this is a comet specific extension, right?
It sounds like this is a MS1 offset only. I am not sure if it will consider those offsets for every fragment.
If this is what you want, it might work.

This is a good point, if this mass shift is for unexpected PTM - for example 1970 |   | Unknown:162 | Unidentified modification of 162.1258 found in open search | 162.125595 | 162.2267 | H(18) C(8) O(3) in order to identify those peptides, the precursor mass offset should define that mass offset but also the fragment tolerance?

by default search engines assume that the mass shift on the precursor is also observed on the fragments carrying the PTM (e.g., no neutral loss on the PTM is assumed).

I think you have to add the mods as CUSTOM0..CUSTOM9 to the unimod.xml in the OpenMS share.

But can this be done dynamically, or we need to add this inside OpenMS and wait for the release?

This can be done dynamically.

by default search engines assume that the mass shift on the precursor is also observed on the fragments carrying the PTM (e.g., no neutral loss on the PTM is assumed).

But the "mass_offsets" parameter is not for a PTM. You cannot associate a specific AA to that mass_offset, so it wont know which fragments would hold this mass_offset. Therefore I assume this is an MS1-only feature of Comet.

Agree. I really think easiest is to modify the unimod.xml entries for the custom mods. Then it is automatically understood by all tools.
If we can't modify unimod.xml we need to add parameters to all tools that should understand the custom modification (because otherwise peptide masses are not calculated correctly in downstream tools).

 If you think, it is supported, then we can try one example and see if really custom mass shifts can be analyzed in quantms.

Yes it's supported. You will need to add the custom unimod.xml to every step though. You can just add the XML entry with
echo "" >> Openmsshare/unimod.xml
No, it is not easy to "just" support this in the whole pipeline because you would need to encode everything about that modification in every output file you write to make sure that the next tool understands what this mass shift is. Either you will have super verbose files or you need a common file like that unimod.xml

I was thinking and mentioned to Timo that it would be good to support mass shifts as mods in OpenMS. The idea is that we can add a mass shift and keep it in the entire workflow rather than the unimod.


[igraph] update to 0.9.5

Describe the pull request

What does your PR fix?
Update to 0.9.5

Which triplets are supported/not supported?

Yes

If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

@JonLiu1993 Thanks for the review! CI checks have passed, this PR is now complete.

All features are tested successfully in the following triplet:

x86-windows
x64-windows
x64-windows-static

@JonLiu1993 Could you please answer my question from here? https://github.com/microsoft/vcpkg/pull/17683#issuecomment-834119358, https://github.com/microsoft/vcpkg/pull/18213#issuecomment-852020227

When using ${FEATURE_OPTIONS}, vcpkg adds -DSOMEFLAG=ON when an option is enabled. Does it also add -DSOMEFLAG=OFF when the option is not enabled?  Is there an easy way to see the CMake invocation, so I can determine this for myself?

@szhorvat ,If the options are set to OFF by default, we can set -DSOMEFLAG=OFF in ${FEATURE_OPTIONS} or not listed here, but if we need to enable this option, we need to modify -DSOMEFLAG=ON or add -DSOMEFLAG= ON, when to set it to ON, we need to analyze and judge according to the specific situation


Redisson vs Lettuce - Performance Comparison

I was just trying to do a simple performance test to compare Redisson and Lettuce.
I really like Redisson. But Redisson seems to be consistently slower than Lettuce. Is this expected?
Redisson throughput = 58K requests / sec
Lettuce throughput = 75K requests / sec
@RepeatedTest(10)
public void lettucePerformance() throws InterruptedException {
    RedisClient redisClient = RedisClient.create("redis://localhost:6379/0");
    StatefulRedisConnection<String, String> connection = redisClient.connect();
    RedisReactiveCommands<String, String> reactiveCommands = connection.reactive();

    long before = System.currentTimeMillis();
    Mono<Void> mono = Flux.range(1, 500_000)
            .flatMap(i -> reactiveCommands.incr("user:1"))
            .then();

    StepVerifier.create(mono).verifyComplete();
    System.out.println((System.currentTimeMillis() - before)  + " ms");

}

@RepeatedTest(10)
public void redissonPerformance() throws InterruptedException {
    RAtomicLongReactive longReactive = client.getAtomicLong("user:2");

    long before = System.currentTimeMillis();
    Mono<Void> mono = Flux.range(1, 500_000)
            .flatMap(i -> longReactive.incrementAndGet())
            .then();

    StepVerifier.create(mono).verifyComplete();
    System.out.println((System.currentTimeMillis() - before)  + " ms");

}

My Config:
I tried with this
            config
                    .setNettyThreads(0)
                    .useSingleServer()
                    .setAddress("redis://<IP_ADDRESS>:6379");

and this.
            config
                    .useSingleServer()
                    .setAddress("redis://<IP_ADDRESS>:6379");

redisson-3.16.1-SNAPSHOT.jar.zip
Please try attached version.

@mrniko
Thanks for looking into this.  The performance looks good now.

@kitkars
Thank you for feedback.


Create a global extension list

Hey!
This is not an issue actually, more like a proposal.
Example:
I have a home machine where I have VS Code with several plugins that I always use. At work I have another machine with VS Code installed. And I have to install those plugins again.
It would be great to have an (optional) account with login/password which will store a list of extensions somewhere and when I install VSC to a new machine all extensions will be installed automatically. When installing a new extension you could introduce an option like 'Store to extension pull' or 'Try without adding' in case a user wants to play around with it and not to store it in extensions list.

This is discussed in this issue and some of the linked issues: https://github.com/Microsoft/vscode/issues/2743
The CLI options --list-extensions and --install-extension can be useful for installing a bunch of extensions at once.


Any documentation on how to tap into the Variants class imported into product.js?

I need to tap into the _onSelectChange method in the Variants class.
If I add my function call directly inside that method it works fine. But I would love to be able to call it directly from product.js but unfortunately I'm just not knowing how to go about it.
I've gotten as far as var variants = new Variants(options); but that options part is confusing. Something about a container and different selectors and product, etc. The lack of documentation makes it very hard to figure out.
Thanks

theme-variants will emit different event that you can listen too in your scripts. In your case, you can look at how we're using variantChange in Starter theme.
theme-variants definitely needs some love on the documentation side.
Related issue : https://github.com/Shopify/theme-scripts/issues/44.
Hope this helps!


The newest version didnt work for me.

Hey buddy,
if i try to open setup.exe it will not load only the screen will blink and thats all, also if i try older version i can open the setup.exe but if i add to OBS the text file as GameGlock a start it on setup, its not working.
Any help?
Thanks

I made a fairly significant update to allow showing player videos by controlling OBS over WebSockets.  It required me to change the installer.  I just published the change.  The first time I run after installing, I seem to have to run as administrator. After that, it seems to run fine for me.  Do you want to try again?  Thanks!


feature request: report code coverage statistics to teamcity

Hello,
Please add the appropriate Build Statistics messages, in order to report to TeamCity the Code Coverage Statistics, so that TeamCity can then use in Charts/Reports/Failure Conditions/etc.
References:

https://www.jetbrains.com/help/teamcity/importing-arbitrary-coverage-results-to-teamcity.html
https://www.jetbrains.com/help/teamcity/service-messages.html#Reporting+Build+Statistics
https://www.jetbrains.com/help/teamcity/custom-chart.html#Default+Statistics+Values+Provided+by+TeamCity

Similar TeamCity reporter (for Jest though) that has this feature:
https://github.com/winterbe/jest-teamcity-reporter/blob/ffc6f38c8161d501b39a56fb513826c35761c91e/index.js#L62
Thank you.

@antoniosZ Hi. Vitest provides teamcity coverage reporter out of the box

They don't write about it in doc because it is an external library that they provide in the project.

thank you @a3mitskevich ! it's weird that they don't mention it in their docs
https://vitest.dev/guide/reporters.html
or at least, I could not find it even though yes, I found it now that you pointed it out in their source code...

I tried it and it works, thanks again!


mpy zips don't contain mpy files

The assets on the release page that are supposed to contain mpy files for the library don't actually contain library files. Instead they contain only the examples:

This library is not typically used on devices so it's unlikely many people would be looking for it there, I guess that is why it has gone undiscovered.
I ran across a need to put it on a device to check something and noticed I'm unable to install it circup or grab the mpy files manually from the release assets.

The absence of the mpy files seems to be due to a bug in the new action thing, where packages without the adafruit_ prefix are ignored. I'll open an issue for that.
However, I believe the fix here is simply to disable the workflow that creates those zips.
This library should not be used on devices, its absence MUST trigger the except clause in libraries that try to import it it.
In fact it can't be compiled with mpy-cross:
❯ mpy-cross circuitpython_typing/io.py
Traceback (most recent call last):
  File "circuitpython_typing/io.py", line 43
SyntaxError: invalid syntax

I can add a disabling input for the workflow, I agree that makes the most sense.  It should only disable .mpy zip(s), right?

Alright, ready to make a PR for this!


Pronunciation vs. Description

There are numerous fields in this TSV which feature extractions from the 10646hk JPFullTable.pdf document in the 《部件名稱表》 section. It is not clear to me that descriptive values (generally of a radical, but also sometimes to distinguish between identically sounding but functionally distinct characters) should be included in this list–especially since it is designed for computers.
For example:
氵	U+6C35	saam1 dim2 seoi2

Presented with that character component in a text, a situation which occurs almost exclusively in an educational setting, maybe in a sentence such as "譬如話氵用個字倒鎖會同水有關", a reader may indeed describe that character in that way, but that's an expansion to 三點水.
In English, I don't ascribe a pronunciation to the the "right-hand ascender of the lowercase letter d" as first, it doesn't have one, and second, the way I identified it is descriptive.
Given that, I would say that 氵, presented as a standalone character, either has no pronunciation or has a pronunciation of seoi2.

Here is a list of cases in list.tsv which appear to have descriptive values.

㖊	U+358A	jing1 cam4
䇆	U+41C6	sap6 sing1
䇉	U+41C9	baak3 sing1
兙	U+5159	sap6 hak1
兛	U+515B	cin1 hak1
兝	U+515D	fan1 hak1
兞	U+515E	hou4 hak1
兡	U+5161	baak3 hak1
兣	U+5163	lei4 hak1
〺	U+5345	saa1 aa6
卌	U+534C	sei3 aa6
吋	U+540B	jing1 cyun3
呎	U+544E	jing1 cek3
哩	U+54E9	jing1 lei5
唡	U+5521	jing1 loeng2
啢	U+5562	jing1 loeng2
嗧	U+55E7	gaa1 leon4
噚	U+565A	jing1 cam4
浬	U+6D6C	hoi2 lei5
瓧	U+74E7	sap6 ngaa5
瓩	U+74E9	cin1 ngaa5
瓰	U+74F0	fan1 ngaa5
瓱	U+74F1	hou4 ngaa5
瓸	U+74F8	baak3 ngaa5
甅	U+7505	lei4 ngaa5
竍	U+7ACD	sap6 sing1
竏	U+7ACF	cin1 sing1
竓	U+7AD3	hou4 sing1
竕	U+7AD5	fan1 sing1
竡	U+7AE1	baak3 sing1
竰	U+7AF0	lei4 sing1
籿	U+7C7F	fan1 mai5
粀	U+7C80	sap6 mai5
粁	U+7C81	cin1 mai5
粌	U+7C8C	baak3 mai5
粍	U+7C8D	hou4 mai5
粨	U+7CA8	baak3 mai5
粴	U+7CB4	gung1 lei5
糎	U+7CCE	lei4 mai5
𠯢	U+E064	saa1 aa6
𥪕	U+ED41	cin1 sing1
𠺖	U+F45A	jing1 mau5
𠰴	U+F4C0	jing1 sek6

Here is a complete list of the fields which contain descriptive pronunciations from the 粵語拼音表 portion of the list.
㖊	U+358A	jing1 cam4
䇆	U+41C6	sap6 sing1
䇉	U+41C9	baak3 sing1
兙	U+5159	sap6 hak1
兛	U+515B	cin1 hak1
兝	U+515D	fan1 hak1
兞	U+515E	hou4 hak1
兡	U+5161	baak3 hak1
兣	U+5163	lei4 hak1
〺	U+5345	saa1 aa6
卌	U+534C	sei3 aa6
吋	U+540B	jing1 cyun3
呎	U+544E	jing1 cek3
哩	U+54E9	jing1 lei5
唡	U+5521	jing1 loeng2
啢	U+5562	jing1 loeng2
嗧	U+55E7	gaa1 leon4
噚	U+565A	jing1 cam4
浬	U+6D6C	hoi2 lei5
瓧	U+74E7	sap6 ngaa5
瓩	U+74E9	cin1 ngaa5
瓰	U+74F0	fan1 ngaa5
瓱	U+74F1	hou4 ngaa5
瓸	U+74F8	baak3 ngaa5
甅	U+7505	lei4 ngaa5
竍	U+7ACD	sap6 sing1
竏	U+7ACF	cin1 sing1
竓	U+7AD3	hou4 sing1
竕	U+7AD5	fan1 sing1
竡	U+7AE1	baak3 sing1
竰	U+7AF0	lei4 sing1
籿	U+7C7F	fan1 mai5
粀	U+7C80	sap6 mai5
粁	U+7C81	cin1 mai5
粌	U+7C8C	baak3 mai5
粍	U+7C8D	hou4 mai5
粨	U+7CA8	baak3 mai5
粴	U+7CB4	gung1 lei5
糎	U+7CCE	lei4 mai5
𠯢	U+E064	saa1 aa6
𥪕	U+ED41	cin1 sing1
𠺖	U+F45A	jing1 mau5
𠰴	U+F4C0	jing1 sek6

/cc @chaaklau

/cc @chaaklau

Presented with that character component in a text, a situation which occurs almost exclusively in an educational setting, maybe in a sentence such as "譬如話氵用個字倒鎖會同水有關", a reader may indeed describe that character in that way, but that's an expansion to 三點水.

@nathanhammond  As you have correctly pointed out that many of these characters are components, which are almost never used in normal writing. I can think of two contexts in which these characters will be found:

Education setting (e.g. explanation of character structures in language textbooks)
An intended character is not supported by Unicode / the keyboard / the font, therefore users split the characters into two (e.g. 亻因 Taiwanese Hokkien word for "they"). There can also be other reasons for using components instead of the original characters (for fun, to bypass censorship, etc.).

For 1, in education setting, the polysyllabic pronunciation is expected. E.g. I would expect a TTS engine to read  氵 as  三點水 / saam1 dim2 seoi2. This particular one is quite stable, there is no other name for this component. For some lesser-used components, there may not be a unified name.

After further research, these appear to likely be archaic contractions that didn't make it to modern Cantonese. Some of them may be bad handwriting or bad transcriptions (e.g. 䇉 U+41C9 baak3 sing1 could have been intended to be 竡).

I can confirm that unit-related "contractions/combined characters" are not used in Modern Cantonese. Out of all polysyllabic entries, I believe only this is in common use.
〺	U+5345	saa1 aa6

I agree that the descriptive entries should be removed from the table. Many of these components do not have a fixed name, and the values from the original file are just one way of expanding them. We can split list.tsv into two files, one for true character-to-jyutping mapping, and one for descriptive values.
These are true contractions (numbers) and should be kept.
𠯢	U+E064	saa1 aa6
〺	U+5345	saa1 aa6
卌	U+534C	sei3 aa6

These archaic combined characters should be kept.
籿	U+7C7F	fan1 mai5
粀	U+7C80	sap6 mai5
粁	U+7C81	cin1 mai5
粌	U+7C8C	baak3 mai5
粍	U+7C8D	hou4 mai5
粨	U+7CA8	baak3 mai5
糎	U+7CCE	lei4 mai5

䇆	U+41C6	sap6 sing1
䇉	U+41C9	baak3 sing1
竍	U+7ACD	sap6 sing1
竏	U+7ACF	cin1 sing1
竓	U+7AD3	hou4 sing1
竕	U+7AD5	fan1 sing1
竡	U+7AE1	baak3 sing1
竰	U+7AF0	lei4 sing1
𥪕	U+ED41	cin1 sing1

兙	U+5159	sap6 hak1
兛	U+515B	cin1 hak1
兝	U+515D	fan1 hak1
兞	U+515E	hou4 hak1
兡	U+5161	baak3 hak1
兣	U+5163	lei4 hak1

瓧	U+74E7	sap6 ngaa5
瓩	U+74E9	cin1 ngaa5
瓰	U+74F0	fan1 ngaa5
瓱	U+74F1	hou4 ngaa5
瓸	U+74F8	baak3 ngaa5
甅	U+7505	lei4 ngaa5

嗧	U+55E7	gaa1 leon4

I feel that these are also descriptions and should be removed from the main table.
浬	U+6D6C	hoi2 lei5
粴	U+7CB4	gung1 lei5

㖊	U+358A	jing1 cam4
吋	U+540B	jing1 cyun3
呎	U+544E	jing1 cek3
哩	U+54E9	jing1 lei5
唡	U+5521	jing1 loeng2
啢	U+5562	jing1 loeng2
噚	U+565A	jing1 cam4
𠺖	U+F45A	jing1 mau5
𠰴	U+F4C0	jing1 sek6

I also read the linked issue. After the change, the Jyutping field will continue to contain polysyllabic entries. Also note that more combined characters are being created by Cantonese users, some of them may make their ways to Unicode.

Presented with that character component in a text, a situation which occurs almost exclusively in an educational setting, maybe in a sentence such as "譬如話氵用個字倒鎖會同水有關", a reader may indeed describe that character in that way, but that's an expansion to 三點水.

@nathanhammond  As you have correctly pointed out that many of these characters are components, which are almost never used in normal writing. I can think of two contexts in which these characters will be found:

Education setting (e.g. explanation of character structures in language textbooks)
An intended character is not supported by Unicode / the keyboard / the font, therefore users split the characters into two (e.g. 亻因 Taiwanese Hokkien word for "they"). There can also be other reasons for using components instead of the original characters (for fun, to bypass censorship, etc.).

For 1, in education setting, the polysyllabic pronunciation is expected. E.g. I would expect a TTS engine to read  氵 as  三點水 / saam1 dim2 seoi2. This particular one is quite stable, there is no other name for this component. For some lesser-used components, there may not be a unified name.

After further research, these appear to likely be archaic contractions that didn't make it to modern Cantonese. Some of them may be bad handwriting or bad transcriptions (e.g. 䇉 U+41C9 baak3 sing1 could have been intended to be 竡).

I can confirm that unit-related "contractions/combined characters" are not used in Modern Cantonese. Out of all polysyllabic entries, I believe only this is in common use.
〺	U+5345	saa1 aa6

I agree that the descriptive entries should be removed from the table. Many of these components do not have a fixed name, and the values from the original file are just one way of expanding them. We can split list.tsv into two files, one for true character-to-jyutping mapping, and one for descriptive values.
These are true contractions (numbers) and should be kept.
𠯢	U+E064	saa1 aa6
〺	U+5345	saa1 aa6
卌	U+534C	sei3 aa6

These archaic combined characters should be kept.
籿	U+7C7F	fan1 mai5
粀	U+7C80	sap6 mai5
粁	U+7C81	cin1 mai5
粌	U+7C8C	baak3 mai5
粍	U+7C8D	hou4 mai5
粨	U+7CA8	baak3 mai5
糎	U+7CCE	lei4 mai5

䇆	U+41C6	sap6 sing1
䇉	U+41C9	baak3 sing1
竍	U+7ACD	sap6 sing1
竏	U+7ACF	cin1 sing1
竓	U+7AD3	hou4 sing1
竕	U+7AD5	fan1 sing1
竡	U+7AE1	baak3 sing1
竰	U+7AF0	lei4 sing1
𥪕	U+ED41	cin1 sing1

兙	U+5159	sap6 hak1
兛	U+515B	cin1 hak1
兝	U+515D	fan1 hak1
兞	U+515E	hou4 hak1
兡	U+5161	baak3 hak1
兣	U+5163	lei4 hak1

瓧	U+74E7	sap6 ngaa5
瓩	U+74E9	cin1 ngaa5
瓰	U+74F0	fan1 ngaa5
瓱	U+74F1	hou4 ngaa5
瓸	U+74F8	baak3 ngaa5
甅	U+7505	lei4 ngaa5

嗧	U+55E7	gaa1 leon4

I feel that these are also descriptions and should be removed from the main table.
浬	U+6D6C	hoi2 lei5
粴	U+7CB4	gung1 lei5

㖊	U+358A	jing1 cam4
吋	U+540B	jing1 cyun3
呎	U+544E	jing1 cek3
哩	U+54E9	jing1 lei5
唡	U+5521	jing1 loeng2
啢	U+5562	jing1 loeng2
噚	U+565A	jing1 cam4
𠺖	U+F45A	jing1 mau5
𠰴	U+F4C0	jing1 sek6

I also read the linked issue. After the change, the Jyutping field will continue to contain polysyllabic entries. Also note that more combined characters are being created by Cantonese users, some of them may make their ways to Unicode.

Thank you for your detailed response! I appreciate having an additional person review this. Some updates:
I'm definitely not afraid of having to write code to handle polysyllabic characters; I've already got to support 〺. If I have to handle polysyllabic characters even once I may as well do it right. (I'm more in the descriptivist camp when it comes to language.) Thinking about it more, for the archaic "contraction" forms, since all but 6 do not collide with any other meanings or pronunciations there is no particular value in omitting them. (That also gets closer to prescriptivism, which on principle I want to oppose.)
For the six characters that have both monosyllabic and polysyllabic pronunciations listed in 10646HK I can always choose monosyllabic and almost always be correct.
ch	ucs2	pronunciation
吋	U+540B	cyun3
呎	U+544E	cek3
哩	U+54E9	(li1, le1, lei5)
浬	U+6D6C	lei5
𠺖	U+F45A	mau5
𠰴	U+F4C0	sek6

For descriptive readings, I find that should likely be a separate field. A character can have a "pronunciation" or a "description" —or even both. I consider this to be similar to how each Unicode character receives a name. For example, 氵, 三點水 is also known as CJK Radical Water One. I absolutely agree that 三點水 is how that character component should be described in Cantonese, but only if "descriptive readings" (probably a default "on" option) is set in the TTS.

In my implementation of extracting data from 10646HK I've updated it to process each of the tables separately. We now have two separate implementations which produce the same output which gives me confidence that we have successfully captured the source data without error.
I'm in the process of comparing that data to the contents of this repository. I'll have more comments on that soon. (I need to have a better understanding of all the possible character sets involved beforehand.)

Given all of this, I would like to propose that this be addressed by:

Creating an additional field for descriptions (not a separate list; a description field has value and belongs in the list).
Placing descriptive values in the descriptive field and dropping the value from the pronunciation field.

Thank you for your detailed response! I appreciate having an additional person review this. Some updates:
I'm definitely not afraid of having to write code to handle polysyllabic characters; I've already got to support 〺. If I have to handle polysyllabic characters even once I may as well do it right. (I'm more in the descriptivist camp when it comes to language.) Thinking about it more, for the archaic "contraction" forms, since all but 6 do not collide with any other meanings or pronunciations there is no particular value in omitting them. (That also gets closer to prescriptivism, which on principle I want to oppose.)
For the six characters that have both monosyllabic and polysyllabic pronunciations listed in 10646HK I can always choose monosyllabic and almost always be correct.
ch	ucs2	pronunciation
吋	U+540B	cyun3
呎	U+544E	cek3
哩	U+54E9	(li1, le1, lei5)
浬	U+6D6C	lei5
𠺖	U+F45A	mau5
𠰴	U+F4C0	sek6

For descriptive readings, I find that should likely be a separate field. A character can have a "pronunciation" or a "description" —or even both. I consider this to be similar to how each Unicode character receives a name. For example, 氵, 三點水 is also known as CJK Radical Water One. I absolutely agree that 三點水 is how that character component should be described in Cantonese, but only if "descriptive readings" (probably a default "on" option) is set in the TTS.

In my implementation of extracting data from 10646HK I've updated it to process each of the tables separately. We now have two separate implementations which produce the same output which gives me confidence that we have successfully captured the source data without error.
I'm in the process of comparing that data to the contents of this repository. I'll have more comments on that soon. (I need to have a better understanding of all the possible character sets involved beforehand.)

Given all of this, I would like to propose that this be addressed by:

Creating an additional field for descriptions (not a separate list; a description field has value and belongs in the list).
Placing descriptive values in the descriptive field and dropping the value from the pronunciation field.

Fixed, closing :)


[Installation Status Updater] Marks Every Game As Uninstalled

Extension name
Installation Status Updater
Bug Description
Idk if I'm doing something wrong because I didn't see any other issue about this.
Whenever the Extension checks for installation status, for some reason it marks everything (Manually added games excluded) as uninstalled.
I looked through it again and again but I found nothing.
To Reproduce
No response
Logs
playnite.log
extensions.log
Screenshots
No response

Can you share your extension settings please?

Can you share your extension settings please?

Can you enable the "Skip games that include the play action of their library" option and try again? If that doesn't help, can you show me the Play Actions tab in the Edit window of a game having this issue?

Can you enable the "Skip games that include the play action of their library" option and try again? If that doesn't help, can you show me the Play Actions tab in the Edit window of a game having this issue?

This will probably not work, because it happens on games that are from a library like Steam and Epic Games. So they normally don't have a play action.
Maybe it's just a matter of compatibility and nothing else.


Parse image tags

The crawler should optionally parse image tags that are in the form  and use it as input for crawling (just as it would consider  links to images).
I'm creating a pull request which implements that in a few lines.

you can add area, frame, iframe, ilayer, layer parsing as well

as well as link


Custom breakpoints

Whether we want to make it an array or an object, with the key of the id.

I think I like using an object with IDs as keys better.

Whether we want to use just width, and we'll interpolate that. Or should we use minWidth and maxWidth?

I think that we should start with a more strict API that we can expand on later as needed without breaking anything. So let's start with just width? Maybe later we can add more options, like Tailwind?

Should we let users specify the viewportWidth, or should we just interpolate that?

I think we can start with a smaller API and expand from there as we learn? So for now just use width?

Is the label required or optional? The label is used in the breakpoint dropdown, and also on the panel. We can fallback to the id if the label is undefined, but it seems like the label is quite important.

I think it would be cool to make it optional so we can auto-generate from Tailwind. I'm thinking we can use the ID as the label but put it inside <code> so it's styled a bit differently in the UI. We'll want some mockups from @andrewreifman for that. The idea would be that if you provide a label then we just show "Label" but if you don't provide a label we show "id" in a way that's styled so it looks like "code" (i.e., monospace font and maybe with a different color or background)

It's a bit weird because right now you don't have to pass the created runtime anywhere. But in the future, we will require to pass the runtime to the MakeswiftPage.

Will these be part of this PR or are you thinking it will be a future change? I'm thinking for now we can add it as an optional prop so that we can start using the new pattern but it's not a breaking change?

I also just realized that it might be impossible to interpolate the viewportWidth. For example, for the default mobile breakpoint, the maxWidth is 575 and the viewportWidth is 390. Let's say we interpolate from 575 and 0, it'll be 288 if we use the midpoint.
But for the default tablet, the minWidth is 576, maxWidth is 768 and the viewportWidth is 760, so for tablet the viewportWidth is much closer to the maxWidth.

I just realized that we cannot turn just width into a fixed range breakpoints system that we currently use.

I think you might be misunderstanding how Tailwind's API maps to our API. The example you provided would be incorrect, the correct use would be this:
export const runtime = new ReactRuntime({
  unstable_breakpoints: {
    'tablet': { width: 770 },
    'mobile': { width: 576 },
  },
})

The "base" breakpoint doesn't exist. In the same way in Tailwind, which is mobile-first, you don't specify the min-width: 0 breakpoint, it's implicit. In Makeswift, which is desktop-first, there is no "desktop" breakpoint, it's the "base" value where everything inherits from.

I also just realized that it might be impossible to interpolate the viewportWidth. For example, for the default mobile breakpoint, the maxWidth is 575 and the viewportWidth is 390. Let's say we interpolate from 575 and 0, it'll be 288 if we use the midpoint.
But for the default tablet, the minWidth is 576, maxWidth is 768 and the viewportWidth is 760, so for tablet the viewportWidth is much closer to the maxWidth.

Perhaps doing an interpolation doesn't give good results, but the mapping function doesn't have to be linear


Remove warning from nats.mjs

Hi, I'm using React js. I import { connect, StringCodec } from "nats.ws", and then I get the following warning when start npm and also in chrome:
**Compiled with warnings.
./node_modules/nats.ws/nats.mjs
Critical dependency: the request of a dependency is an expression**
Can you find out some ways to solve this issue?

what version are you using do you know?

can you do the following:
# clone the nats.ws repository:
git clone https://github.com/nats-io/nats.ws.git

# install [deno](https://deno.land):
npm run setup

# build the library
npm run build

# install the master of nats-server, if you have
# [Go](https://golang.org/doc/install) installed,
# you can easily clone and build the latest from
# master:
npm run install-ns

# start the built nats-server:
npm run start-nats

# start an http server to serve the content in
# the examples directory:
npm run start-http

# point your browser to: http://localhost:4507/examples
# click on one of the HTML files

Open any of the examples (chat.html, bench.html, etc) - I don't see any warnings on my side.

Also. - what OS are you running.

Windows OS, Nats ws 1.0.0-90. Chrome.  Nats server is built using nats server main branch.
The cmd is not vaild for windows (SH is not a valid command), so I cannot using your script.
Recently I see the  Nats ws has changed a lot, so I tried to integrate into our project.
I change import * as nats from "nats.ws"; to import { connect, StringCodec } from "nats.ws";
and also some publish and subscribe areas. But I got the warning from browser. It seems the warning is from node_modules\react-dev-utils\webpackHotDevClient.js saying ./node_modules/nats.ws/nats.mjs
Critical dependency: the request of a dependency is an expression. Anyway, it is not important.
Besides, I create a new project using create react app template(npx create-react-app my-app). And I added npm install nats.ws@beta2 and add <import { connect, StringCodec } from "nats.ws";> in app.js. And it failed to compile.
Here is the error:
**./node_modules/nats.ws/nats.mjs 605:35
Module parse failed: Unexpected token (605:35)
File was processed with these loaders:

./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|                 const a = mh.values(k);
|

            if (v.length !== a?.length) {

|                   return false;
|                 }**
Could you help if you have time?

@ChenYida - so the ws library is packaged as an ES Module, so if you try to do an import into some node-based project, it is going going to work, however, if you did the same import into browser application, the import should be just fine provided that you are loading your script like this:
<script type="module">
  // load the library
  import { connect } from './nats.mjs'
  // do something with it...
</script>

Note type="module".

You may have to tweak your babel configuration to specify that the nats.mjs library is ES Module. I don't use babel, so I cannot help you in that transpilation step.

Thanks aricart! Finally I find some ways to solve this issue.

Thanks aricart! Finally I find some ways to solve this issue.

I am seeing the exact warning. Could you kindly share how it was solved?

Thanks aricart! Finally I find some ways to solve this issue.

I am seeing the exact warning. Could you kindly share how it was solved?

Just ignore it.


breeze hacked

The issue will be closed without any reasons if it does not satisfy any of following requirements:

Please speak English, we have forum in Chinese.
Please post questions or config/deploy problems on our forum: https://discuss.gogs.io, here are bugs and feature requests only.
Please take a moment to search that an issue doesn't already exist.
Please give all relevant information below for bug reports; incomplete details considered invalid report.

You MUST delete above content including this line before posting; too lazy to take this action considered invalid report.

Gogs version (or commit ref):
Git version:
Operating system:
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gogs.io:

[ ] Yes (provide example URL)
[ ] No
[ ] Not relevant

Log gist (usually found in log/gogs.log):

Description
...

I don't know you guy, I'm currently using the breeze QT theme and I'm not being hacked...


Testing ETOPO2022 dataset

Purpose
Adds earth orography and bedrock artifacts. Only the orography is used, currently.

[ ] I have read and checked the items on the review checklist.

@kmdeck This just updates the Artifacts helpers; we can trigger a custom longrun test with the new dataset following this PR


Archive extracted bulletin files

Asana ticket
I created a service that is called after a PDF is created that checks the file if it matches certain criteria and then archives it if necessary. Using PDF Reader and then feeding that text into ChatGPT is giving consistent results vs just uploading directly to ChatGPT did not give consistent results

@jenlu33 since we now have a plan for the OpenAI extraction, I'll close this.


Annotation not displayed PMID:31900332

PMID:31900332
session is approved but the annotation is not visible?

'tis a configuration thing, knock-on effect of a change Nico recommended in the FYPO auxotrophy branch (ticket) ... needs the usual hack round the fact that it's no longer under either cell or population phenotype


JSON Power Status

This PR adds a feature to be able to specify a JSON object for the status_on config parameter. This will help in cases where you need to check if multiple properties of an accessory are in a certain state for it to be considered "ON." One example might be a speaker that needs to have all of the following properties to be considered "ON."
{
    "playMode": "PLAY",
    "source": "STREAMING",
    "mute": "OFF"
}

When the plugin gets the power state it will check that all the config file object properties exist and have the same value as the response from the accessory.
This in reference to issue #68.

Thanks for this. It's good to have constant improvements that don't stray too far from the original vision of this plugin

I hope this isn't to off-topic. Thanks in advance for your friendly help.
Do you guys see a way how I could get the correct status to the switch?
At the moment it's just an on/off not in relation to the real state of the robot.
{
"accessory": "Http",
"name": "HomBot",
"on_url": "http://xxx.xxx.xxx.xx:6260/json.cgi?{"COMMAND":"CLEAN_START"}",
"on_body": "{"state":"On"}",
"off_url": "http://xxx.xxx.xxx.xx:6260/json.cgi?{"COMMAND":"HOMING"}",
"off_body": "{"state":"Off"}",
"username": "",
"password": "",
"sendimmediately": "",
"switchHandling": "realtime",
"http_method": "GET",
"service": "Switch",
"brightnessHandling": "no"
},
But the HomBot delivers a state in a separate html page with Robot-state: in the first line.
http://xxx.xxx.xxx.xx:6260/status.html
Robot-state: CHARGING
Batt-Perc: 100
Program Version: lg.srv, V2.51 compiled 18.11.2016, by fx2
Client Commands: 0
Cmd per second: 0.000000
Http requests: 26
Cpu-Idle: 85.16
Cpu-User: 1.76
Cpu-Sys: 13.06
Cpu-Nice: 0.00
Mem-Usage: 0.680 MB
Turbo: false
Repeat: false
Mode: ZZ
Version: 16552
Nickname: HOMBOT
Bumping: 2215
Last-Clean: 2017/06/27/17/07/35.518662
There are several states possible.
OFF = CHARGING, STANDBY
ON = BACKMOVING_INIT, WORKING, PAUSE, HOMING, DOCKING

Hi DJay79.
This plugin only does simple on off commands. So it will never say charging standby.
Open an issue any way and @JonnyBoy333
I don't think it's personally possible but I didn't make this pull release.
@JonnyBoy333 If you want to add your PR to my other repo
https://github.com/NovaGL/homebridge-http-advanced
You can go wild there and add all sorts of characteristics.

@DJay79 The plugin right now doesn't handle more intricate operators for the ON or OFF states. So you can't say this value OR this value or this value AND this value mean the switch is on. That being said, in my fork I have worked on a way to have an array of ON or OFF values that you can write more complex configurations for. I realize this functionality is better suited for the homebridge-http-advanced plugin so if I have time this weekend I'll do a PR into that repo.

@DJay79  Thought you might like this repo. Control HomeKit over MQTT
https://github.com/hobbyquaker/homekit2mqtt


Baselayer control doesn't select default baselayer if using more than one map

Hi,
here the example (leaflet V1.4.0):
https://aachen-hat-energie.de/test_ww/test_zukunft.htm
The baselayer-control is only activated on the third map, not on the first and second, as it should be. My Code:

<link rel="stylesheet" href="../js/Leaflet/leaflet.css" >

I tried solutions as
https://aachen-hat-energie.de/test_ww/test_zukunft1.htm
https://aachen-hat-energie.de/test_ww/test_zukunft2.htm
which did not help. There seems to be only ONE control-object.
Sorry, I'm a dummy, but nobody on stackoverflow could help.

Plunkr here.
The word is not "activated", but rather "doesn't show any selected baselayer".

Can be due to https://github.com/Leaflet/Leaflet/commit/19d9e3bc93072bac655b9c6c28737442a6afe7fc . Should research whether several
s with radio buttons make exclusive groups of if they behave like one group of checkboxes.

I stumbled across this issue as well and thought I was doing something wrong, until I realized it might be a bug.
It seems their is no issue in Leaflet 0.7.2, while the issue is reproducible in Leaflet 1.4.0.
The following fiddles demonstrate the issue:
Leaflet 0.7.2 http://jsfiddle.net/sc28/fvy8aq37/2/ --> the base layers are correctly selected in both map controls
Leaflet 1.4.0 http://jsfiddle.net/sc28/9j3hstgx/ --> the base layers are only selected in the second map; when a base map is clicked in either map control, it gets deselected in the other.

Hm, on my PC the second example works well too.

@wowonk Which browser are you using? I tried on Firefox and Chrome and the issue is reproduced in both. Which browser are you using?

Hm, I tested on my tablett (MS Surface 3) with newest Fireforx, Win10, dirctX V12, Treiber WDDM 2.0: it works
I now tested on my PC with newest Firefox (Win8), dirctX V11, Treiber WDDM 1.3: I have the same errors as you
What now ???

Duplicate of #6482. It's already fixed by #6483

Wow, I forgot I approved such a PR :innocent:

Tested it locally, the issue is gone.

BTW @IvanSanchez, I'm going to release new Leaflet version this week.
Are there PRs that need to merged before the release?


GDScript: empty class definition leads to error somewhere else

Godot version
3.4.2
System information
Windows 10
Issue description
Implementing a script class including an inner class with "pass" as body in one line leads to error some place else.
I created the inner class with a given name as a temporary placeholder - prior to full implementation - to use it as an argument in other functions.
The error message itself is just misleading as it refers to a place in code which has nothing to do with the error itself.
I know this is a minor thing. It cost me a bit to figure out what the real cause was.
Steps to reproduce
Inner class definition in single line including pass as body.
class Whatever: pass
# bug_class_one_liner.gd
extends Node2D

# line 07 leads to
# 'error(16,1): The method "to_local" isn't declared in the current class.'
# (line 08 to 09 works - same code including line-break.)
class WorxNot: pass
#class Worx:
#	pass

var var1

var var2

func icon_at(pos: Vector2):
	pos = to_local(pos)
	# other statements

leads to error at line "pos = to_local(pos)" in function icon_at().
Minimal reproduction project
bug_class_one_liner.zip

I can't reproduce this on master b6b81e800, so this is fixed in the new GDScript implementation. I can reproduce this on 3.x cd47ff141 though.

I also found this bug at Godot 3.4.3 and 3.4.4.
It will be all functions/members under empty class.
one_line.gd
extends Node

class TestClass: pass

# These are define under TestClass
var a:int = 42
var b:int = 0

func test( ):
    print( "It's works" )
    return 1024

test.gd
extends Node

func _ready( ):
    var one_line = preload("one_line.gd")

    # These are error.
    # print( one_line.a )
    # print( one_line.b )
    # print( one_line.test( ) )

    # These are ok.
    var test_class = one_line.TestClass.new( )
    print( test_class.a )
    print( test_class.b )
    print( test_class.test( ) )

If no one has started working on it yet, I can try to make a fix for this bug.
The problem is when there is an inner class defined in a single line, then all the other definitions in that GDScript file are treated as part of that inner class and it's scope.
For example, consider we have a script my_node.gd like this:
extends Node2D

class Inner: pass

func icon_at(pos: Vector2):
	pos = to_local(pos)

The problem is that the method icon_at is treated as it's a method of Inner class (which doesn't have to_local).

If no one has started working on it yet, I can make a fix for this bug and submit a PR. Looks like the fix for this should be simple.

Feel free to open a pull request for this :slightly_smiling_face:

GDScript grammar specification says that after the colon in the inner class declaration there should be a newline:
innerClass = "class" IDENTIFIER [ inheritance ] ":" NEWLINE
    INDENT [ inheritance NEWLINE ] topLevelDecl { topLevelDecl } DEDENT ;

I can make a fix according to this spec.

Thank you very much.
Looking forward 😃
On Jun 28, 2022, 10:39, at 10:39, Kirill Diduk @.***> wrote:

The fix for this issue is ready here #61993, waiting to be merged
:slightly_smiling_face:
--
Reply to this email directly or view it on GitHub:
https://github.com/godotengine/godot/issues/56703#issuecomment-1168415583
You are receiving this because you authored the thread.
Message ID: @.***>

Fixed by #61993.

Reopening as #61993 was reverted due to regressions.


Undo(⌘ + z) not working as expected

If you have multiple cursers selecting the same word, it will change each of the words selected as expected. However when you try to undo that(⌘ + z) it undos each of the changes separately instead of all the changes at the same time.
Current action when undoing changes

Expected action is only have to undo all the changes once.

:+1:


New package: Support v0.1.0

Registering package: Support
Repository: https://github.com/KwatME/Support.jl
Created by: @KwatME
Version: v0.1.0
Commit: c018ad07b533e2e029979918159f81a9812ace1f
Git reference: master

What does this package do? It seems like a pretty much random collection of personal utility functions?

What does this package do? It seems like a pretty much random collection of personal utility functions?

Yeah, this name seems a lot too generic for what it is

Yeah, this name seems a lot too generic for what it is

It is a collection of such functions. When I tried to send another module that depends on Support.jl, I was not able to put Support.jl as dependency, because Support.jl was not registered. I don't think there is a need to register Support.jl. Is there a way to list Support.jl as dependency of other modules without registration? Thanks everyone.

It is a collection of such functions. When I tried to send another module that depends on Support.jl, I was not able to put Support.jl as dependency, because Support.jl was not registered. I don't think there is a need to register Support.jl. Is there a way to list Support.jl as dependency of other modules without registration? Thanks everyone.

@fredrikekre , please close this one. Thank you.

@fredrikekre , please close this one. Thank you.


Markdown engine wrongly generate nested code block in list

Issue Summary
Markdown wrongly render nested code blocks in list
Steps to Reproduce
Below is the markdown which rendered wrongly.
+ hello
+ hello

    ```
    NSLog(@"Hello");
    ```

+ hello

Ghost cannot render it correctly but, github's markdown engine works well

hello

hello
NSLog(@"Hello");

hello

Technical details:

Ghost Version:
Node Version: v0.10.37
Browser/OS: Safari
Database:  MySQL

Hey @Draveness this is a known issue, being tracked by #5632. Closing this as a duplicate.

Sorry for this, and hope this can be fixed earlier 👍


Couldn't load - Jar does not contain plugin.yml

Getting an error here, can't load the plugin as it does not contain a plugin.yml file

Hi there!
This is a Forge mod, so you will need to have Forge installed to run it. As far as I'm aware, plugin.yml is specifically used for Spigot plug-ins.

Whoops, that's what I get for downloading plugins without looking, thanks :)


fix(toolbar): update total items text in checked toolbar demos

fixes #1358
//cc @mcoker

Deploy preview for pf-next ready!
Built with commit c246cd3d5a12d5574cc4552e9d2b9d2c0485aa60
https://deploy-preview-1372--pf-next.netlify.com

@boaz0 thanks for doing this! And this was my bad, I should have been more specific in the original issue. I believe the number of items should reflect the sum of the numbers in the filter badges. So in those examples, since the sum of the badges is 36 (18 + 12 + 6), it should read "36 of 37 Items". @gdoyle1 can you confirm?

@mcoker Yes that's correct! Sum of badges (# of items with filters added) / total items


Fixes to Jupyter daemon and refactor jupyter commands

For #7242

Refactor Jupyter Commands
Fixes to Jupyter daemon

(daemon is not used in this PR, wanted to get some other refactorings and fixes out before integrating the daemon. Smaller set of changes easier to review).

Codecov Report

Merging #8469 into master will decrease coverage by 0.81%.
The diff coverage is 68.75%.

@@            Coverage Diff             @@
##           master    #8469      +/-   ##
==========================================
- Coverage   59.39%   58.58%   -0.82%
==========================================
  Files         509      510       +1
  Lines       23423    23574     +151
  Branches     3786     3811      +25
==========================================
- Hits        13913    13810     -103
- Misses       8604     8859     +255
+ Partials      906      905       -1

Impacted Files
Coverage Δ

src/client/datascience/types.ts
100% <ø> (ø)
:arrow_up:

src/client/interpreter/contracts.ts
100% <ø> (ø)
:arrow_up:

src/client/common/process/types.ts
100% <ø> (ø)
:arrow_up:

src/client/interpreter/interpreterService.ts
59.37% <0%> (-1.14%)
:arrow_down:

src/client/common/process/pythonDaemon.ts
7.69% <0%> (ø)

src/client/datascience/jupyter/jupyterCommand.ts
95.65% <100%> (+0.41%)
:arrow_up:

...rc/client/common/process/pythonExecutionFactory.ts
53.42% <20%> (-0.87%)
:arrow_down:

...client/datascience/jupyter/jupyterCommandFinder.ts
69.49% <78.57%> (-5.91%)
:arrow_down:

src/client/testing/serviceRegistry.ts
48.64% <0%> (-46.85%)
:arrow_down:

src/client/testing/codeLenses/main.ts
44.44% <0%> (-33.34%)
:arrow_down:

... and 25 more

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 6295bee...b546835. Read the comment docs.


docs: Clarify instructions for getting help with self-hosting.

Please review carefully, especially the bullet about proving logging output.  You may also have more detailed tips for what a good request for help looks like.
Top section of https://zulip.readthedocs.io/en/latest/production/troubleshooting.html :

Bottom of https://zulip.readthedocs.io/en/latest/production/install.html#troubleshooting :

@alexmv Tagging for your review as well.
I'm working on setting up a config.yml file for zulip/zulip (see https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser), and the idea is to use /production/troubleshooting.html as the external link for getting help with self-hosting.

This looks great as an improvement; I made a small tweak s/enterprise support/paid support/ and added a second commit doing a very minimal improvement to the self-troubleshooting section ... but probably that page could use a broader polish pass; it's very heavy on mechanics and light on process, and probably should link to things like our release lifecycle docs too.

Backported as b44ee89245dcd9d0495840f6572251d53f0d04a7 + e3f0c28528a860c856c039c635a93eaec96cbde7.


docker-compose.yaml "error: unexpected argument"

Describe the bug
The RW service fails to start when using docker compose up -d
Error message/log
`--memory-manager-target-bytes`, `--frontend-total-memory-bytes`, `--compactor-total-memory-bytes` cause errors like `error: unexpected argument '--memory-manager-target-bytes' found`

To Reproduce
cd docker/
docker-compose up -d

Expected behavior
RW is up and running
How did you deploy RisingWave?
The default docker-compose.yaml
The version of RisingWave
risingwavelabs/risingwave:v2.1.0-rc.2
Additional context
No response

the issue still occur

https://github.com/risingwavelabs/risingwave/issues/19957
https://github.com/risingwavelabs/risingwave/issues/19958


Make Foxy release

Adjust the code to be compatible with Foxy and make a release.

hi guys,
when i use build the package on humble, there was some mistake:
In file included from /home/tian/tjwws/src/ros2_net_ft_driver/net_ft_driver/src/hardware_interface.cpp:29:
/home/tian/tjwws/src/ros2_net_ft_driver/net_ft_driver/include/net_ft_driver/hardware_interface.hpp:71:35: error: ‘hardware_interface::return_type net_ft_driver::NetFtHardwareInterface::read()’ marked ‘override’, but does not override
how can i fix it?

Hi, thanks for reporting this issue. It has been a long time since I was using this code. I'll check this today and fry to fix

@tianjiawen1 Are you sure that you have sourced a humble version? I've just compiled the code with humble and iron, of course with the rolling branch

@tianjiawen1 Are you sure that you have sourced a humble version? I've just compiled the code with humble and iron, of course with the rolling branch

thank you very much!  I'll check it tomorrow.

I had finished colcon build. but when i launch the controller, there was a error shows:
[ros2_control_node-1] [INFO] [1696318095.956253458] [resource_manager]: Loading hardware 'NetFtHardwareInterface'
[ros2_control_node-1] [INFO] [1696318095.957246721] [resource_manager]: Initialize hardware 'NetFtHardwareInterface'
[ros2_control_node-1] terminate called after throwing an instance of 'std::invalid_argument'

then the process has died
[ros2_control_node-1] Aborted (Signal sent by tkill() 79688 1000)
[ERROR] [ros2_control_node-1]: process has died [pid 79688, exit code -6, cmd '/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_j6_9s99f --params-file /home/tian/tfsensor/install/net_ft_driver/share/net_ft_driver/config/net_ft_broadcaster.yaml'].

what should i do to fix it？
and i have ping the ip address of my sensor, it can be connected.

Foxy is now EOL.


would like to add selection sort

would like to make this as part of cwoc

I can provide selection sort in any language. Please assign this task to me. I'll get it done asap. I am doing this under CrossWoc.

@hardikchitkara bro, if you want to contribute you should make your own issue to go ahead with that, Anways chill

@Sloth-Panda the selection sort is already done . Kindly look into some other issues or provide a idea which is not done yet.


feat: add TLS library v4.0 (requirer)

Description
Implementation of the Requirer side of the TLS Certificates Library V4.
Fixes #24
The following PR should be merged first:

https://github.com/canonical/charm-relation-interfaces/pull/161

Key features
Automatic Private key operations
Private keys are managed by the TLS library and safely stored in Juju secrets. They can be accessed at any time by the charm using the private_key property.
Automatic CSR operations
Charm authors having to think about certificate signing requests is a problem of the past. CSR's are now automatically managed by the Library and unless asked for, the charm author won't even know they exist. In their place, charm authors only specify the TLS x.509 attributes they want their certificate to have

Country
State
Locality
Organization
...

Automatic certificate renewal
Charm authors won't ever have to think about certificate renewal anymore. All they have to do is listen to certificate available events, compare the cert from the event with the one that is in use and if there's a difference, use the new one.
Certificate Per Application support
Certificates are now available for charm applications. This will be useful for Ingress charms like Traefik where certificates are requested at the application level.
Usage
In this example, the charm requests a certificate per unit with attributes taken from Juju configuration options.
from typing import List, Optional, cast

from ops.charm import CharmBase
from ops.main import main

from lib.charms.tls_certificates_interface.v4.tls_certificates import (
    CertificateAvailableEvent,
    CertificateRequest,
    Mode,
    TLSCertificatesRequiresV4,
)

class ExampleTLSCertificatesRequirerCharm(CharmBase):
    def __init__(self, *args):
        super().__init__(*args)
        certificate_requests = self._get_certificate_requests()
        self.certificates = TLSCertificatesRequiresV4(
            charm=self,
            relationship_name="certificates",
            certificate_requests=certificate_requests,
            mode=Mode.UNIT,
            refresh_events=[self.on.config_changed],
        )
        self.framework.observe(
            self.certificates.on.certificate_available, self._on_certificate_available
        )

    def _get_certificate_requests(self) -> List[CertificateRequest]:
        return [
            CertificateRequest(
                common_name=self._get_config_common_name(),
                sans_dns=self._get_config_sans_dns(),
                organization=self._get_config_organization_name(),
                organizational_unit=self._get_config_organization_unit_name(),
                email_address=self._get_config_email_address(),
                country_name=self._get_config_country_name(),
                state_or_province_name=self._get_config_state_or_province_name(),
                locality_name=self._get_config_locality_name(),
            )
        ]

    def _on_certificate_available(self, event: CertificateAvailableEvent) -> None:
        pass

    def _get_config_common_name(self) -> str:
        return cast(str, self.model.config.get("common_name"))

    def _get_config_sans_dns(self) -> List[str]:
        config_sans_dns = cast(str, self.model.config.get("sans_dns", ""))
        return config_sans_dns.split(",") if config_sans_dns else []

    def _get_config_organization_name(self) -> Optional[str]:
        return cast(str, self.model.config.get("organization_name"))

    def _get_config_organization_unit_name(self) -> Optional[str]:
        return cast(str, self.model.config.get("organization_unit_name"))

    def _get_config_email_address(self) -> Optional[str]:
        return cast(str, self.model.config.get("email_address"))

    def _get_config_country_name(self) -> Optional[str]:
        return cast(str, self.model.config.get("country_name"))

    def _get_config_state_or_province_name(self) -> Optional[str]:
        return cast(str, self.model.config.get("state_or_province_name"))

    def _get_config_locality_name(self) -> Optional[str]:
        return cast(str, self.model.config.get("locality_name"))

if __name__ == "__main__":
    main(ExampleTLSCertificatesRequirerCharm)

Important differences in implementation details from v3 to v4

We use Pydantic for relation data validation instead of json schemas. This is now the default approach to validate relation data and Pydantic allows for a more Python/OOP approach to data model validation.
We use scenario instead of harness for unit testing. It seems to be the new default framework for testing charms. Also, some important bugs (like this one) in harness are not being fixed and maintainers recommend to switch to scenario instead.

Even after being merged this is still a beta library
The intent is to validate this interface internally in the TLS and Telco Engineering teams before publicising it.
Checklist

[ ] My code follows the style guidelines of this project.
[ ] I have performed a self-review of my own code.
[ ] I have made corresponding changes to the documentation.
[ ] I have added tests that validate the behaviour of the software.
[ ] I validated that new and existing unit tests pass locally with my changes.
[ ] Any dependent changes have been merged and published in downstream modules.
[ ] I have bumped the version of any required library.

It looks good to me, but there was one thing that was still nagging me that I couldn't figure out without diving too deep, so I'm going to ask you instead.
Can we completely get rid of the user dealing with strings or bytes versions of the certs/csr/private key? For example, could generate_csr return a CertificateSigningRequest instead of converting it to bytes? We seem to be converting back and forth, and I wonder if we could avoid some of that by just passing around the object versions and only converting to bytes / str when we need to write them to disk / the databag.

We would still have to convert to string when inserting to the relation databag and (vice versa) when reading from it, but yes this could be the only time we do this conversion.


Layer is not updated after fetches because the Delayer hangs

Mapsui Version
4.1.5
Mapsui Platform
Maui, but very likely on all platforms.
Device
Windows Desktop
Describe the bug
When the application was receiving position updates over a long period it could happen that the Delayer got in a state where _waiting was true but the timer was halted, so the method was never called and the Delayer could not recover from this state. The app had to be restarted. This can be a pretty serious bug for some applications.
To Reproduce
That is not easy. Set up an application with many layer and many updates and run it for hours or days.

Fixed in both main and 4.1.


Bounds on generic methods should be treated invariantly in subtyping

Currently, the analyzer treats generic method bounds contra-variantly for sub-typing purposes.  For example, the following is allowed:
class A {
  void foo<T extends num>() {}
}

class B extends A {
  void foo<T extends Object>() {}
}

Per language team decision, this should be changed to require that bounds be equal.

Clarification, does this affect function subtyping in general?
Function<T extends num>() fn = <T extends int>(){};

It seems like this is already an error, so I'm assuming this is truly limited to method overrides.

this is also currently not an error:
class C extends A {
  void foo<T>() {
    return foo<String>();
  }
}

Would the error be at override, or would it infer the type parameter to have a bound, in which case the error would be at the type application site of foo?
@leafpetersen for these questions

@MichaelRFairhurst I'm confused about the results you claim to see above.  Just tested with bleeding edge analyzer and I see covariance as an error, contra-variance currently ok:
void main() {
  Function<T extends num>() fn = <T extends int>(){}; // Error
  Function<T extends int>() fn2 = <T extends num>(){}; // Currently OK, should be error.
}

The contra-variant case should also be an error.
This applies to all places that subtype checking is done (override, assignment, etc).
This example:
class C extends A {
  void foo<T>() {
    return foo<String>();
  }
}

I don't understand.  There is no subtype checking involved here?  In any case, this is valid code: Dart has polymorphic recursion.

I was confused at the results I claimed to see! And I figured out why. I had a copy/paste error. The code I said 'is already an error" and the code I implied wasn't an error, are the same code. Then I based my question on the wrong code snippet. Anyways, I am seeing the same behavior as you. And also, that answers my question. Easy to solve for all cases.
The question on the last example refers to class A in the original issue description. The question mostly whether the bound of T in C.foo should be inferred. It could be considered unbounded/dynamic, in which case its an invalid override of A.foo. Or it could (and I'm assuming it doesn't!) infer the bound to be num as it is declared on A.foo.

Or it could (and I'm assuming it doesn't!) infer the bound to be num as it is declared on A.foo.

Right, no override inference for bounds, so this is rejected.

there was an issue in function type equality not present in function type subtype code.

Function type equality is way sketchy in the analyzer and probably needs some revisiting.

I could be mistaken, but it seems that the typeArguments should not be checked since those include values bound to outer contexts.

I think you're referring to the analyzer's lazy substitutions?  You definitely need to distinguish between the same syntactic type with different replacements for free variables.  For example, this program needs to be rejected:
class A<T> {
  void foo<S extends T>() {}
}

class B<T> {
  void foo<S extends T>() {}
}
 void main() {
   var f = A<int>().foo;
   var g = B<String>().foo;
   f = g;
 }

maybe @jmesserly can give some insight into the equality stuff.
In the following example,
class A<T> {
  void foo<R extends void Function(T)>() {}
}
class B extends A<Num> {
  void foo<R2 extends void Function(Num)>() {}
}

if I check that the bounds are equal, I get "false." The reason why is that A.foo.R.bound.typeArguments has a length of 2: [R, T], and B.foo.R2.bound.typeArguments has a length of 1: [R2]. Neither of these values are related to the equality of the two Function types though.
It already checks that typeFormals are of equal length, and uses relateTypeFormals to get parameters with which to instantiate the functions and then ensure that those instantiated functions are equal. I believe that means that at that point, you only need to check that their parameters & return types are compatible. Reading through the docs on typeFormals (and the code) kind of bounces around in my brain, its explanations are a mix of theory an practice that I haven't quite grokked yet, but it seems like typeFormals eagerly finds the free variables specific to the type in question, so that is what I think I want to be using.
I suppose I may need to alter the code of relateTypeFormals to ensure that it doesn't try to do GLB on the parameters. Hopefully if so it results in simpler logic.

I think the fix is something like this. Warning, untested code :)
Note that I'm not using operator == on the types. operator == does not implement equality for Dart 2 correctly. Also we want Object vs dynamic to be allowed. So we just do t1 <: t2 && t2 :> t1 to implement invariance. Not the most efficient way, but it should get the job done. Maybe we need a fast path for when all the bounds are emitted (the most common case).
diff --git a/pkg/analyzer/lib/src/dart/element/type.dart b/pkg/analyzer/lib/src/dart/element/type.dart
index 5d91528495..f752be1ad7 100644
--- a/pkg/analyzer/lib/src/dart/element/type.dart
+++ b/pkg/analyzer/lib/src/dart/element/type.dart
@@ -1175,8 +1175,8 @@ class FunctionTypeImpl extends TypeImpl implements FunctionType {

   /**
    * Compares two function types [t] and [s] to see if their corresponding
-   * parameter types match [parameterRelation] and their return types match
-   * [returnRelation].
+   * parameter types match [parameterRelation], return types match
+   * [returnRelation], and type parameter bounds match [boundsRelation].
    *
    * Used for the various relations on function types which have the same
    * structural rules for handling optional parameters and arity, but use their
@@ -1184,14 +1184,20 @@ class FunctionTypeImpl extends TypeImpl implements FunctionType {
    *
    * If [parameterRelation] is omitted, uses [returnRelation] for both. This
    * is convenient for Dart 1 type system methods.
+   *
+   * If [boundsRelation] is omitted, uses [returnRelation]. This is for
+   * backwards compatibility, and convenience for Dart 1 type system methods.
    */
   static bool relate(
       FunctionType t,
       DartType other,
       bool returnRelation(DartType t, DartType s),
       DartType instantiateToBounds(DartType t),
-      {bool parameterRelation(ParameterElement t, ParameterElement s)}) {
+      {bool parameterRelation(ParameterElement t, ParameterElement s),
+      bool boundsRelation(DartType bound2, DartType bound1,
+          TypeParameterElement formal2, TypeParameterElement formal1)}) {
     parameterRelation ??= (t, s) => returnRelation(t.type, s.type);
+    boundsRelation ??= (t, s, _, __) => returnRelation(t, s);

     // Trivial base cases.
     if (other == null) {
@@ -1209,7 +1215,7 @@ class FunctionTypeImpl extends TypeImpl implements FunctionType {
     FunctionType s = other as FunctionType;
     if (t.typeFormals.isNotEmpty) {
       List<DartType> freshVariables =
-          relateTypeFormals(t, s, (s, t, _, __) => returnRelation(s, t));
+          relateTypeFormals(t, s, boundsRelation);
       if (freshVariables == null) {
         return false;
       }
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 185d6d3489..84e7e4627c 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -6748,6 +6748,9 @@ class ResolverVisitor extends ScopedVisitor {
    */
   void _inferFunctionExpressionParametersTypes(
       Expression mayBeClosure, DartType mayByFunctionType) {
+    // TODO(jmesserly): remove this code and callers. It's doing
+    // "propagated type" inference for the Dart 1 type system.
+    assert(!strongMode);
     // prepare closure
     if (mayBeClosure is! FunctionExpression) {
       return;
diff --git a/pkg/analyzer/lib/src/generated/type_system.dart b/pkg/analyzer/lib/src/generated/type_system.dart
index d178f25039..ab376a17a8 100644
--- a/pkg/analyzer/lib/src/generated/type_system.dart
+++ b/pkg/analyzer/lib/src/generated/type_system.dart
@@ -646,18 +646,14 @@ class GenericInferrer {

     if (t1 is FunctionType && t2 is FunctionType) {
       return FunctionTypeImpl.relate(
-          t1,
-          t2,
-          (t1, t2) {
-            // TODO(jmesserly): should we flip covariance when we're relating
-            // type formal bounds? They're more like parameters.
-            return matchSubtype(t1, t2);
-          },
-          _typeSystem.instantiateToBounds,
+          t1, t2, matchSubtype, _typeSystem.instantiateToBounds,
           parameterRelation: (p1, p2) {
             return _matchSubtypeOf(p2.type, p1.type, null, origin,
                 covariant: !covariant);
-          });
+          },
+          // Type parameter bounds are invariant.
+          boundsRelation: (t1, t2, p1, p2) =>
+              matchSubtype(t1, t2) && matchSubtype(t2, t1));
     }

     if (t1 is FunctionType && t2 == typeProvider.functionType) {
@@ -1181,7 +1177,10 @@ class StrongTypeSystemImpl extends TypeSystem {
   /// - it allows opt-in covariant parameters.
   bool isOverrideSubtypeOf(FunctionType f1, FunctionType f2) {
     return FunctionTypeImpl.relate(f1, f2, isSubtypeOf, instantiateToBounds,
-        parameterRelation: isOverrideSubtypeOfParameter);
+        parameterRelation: isOverrideSubtypeOfParameter,
+        // Type parameter bounds are invariant.
+        boundsRelation: (t1, t2, p1, p2) =>
+            isSubtypeOf(t1, t2) && isSubtypeOf(t2, t1));
   }

   /// Check that parameter [p2] is a subtype of [p1], given that we are
@@ -1522,7 +1521,10 @@ class StrongTypeSystemImpl extends TypeSystem {
   /// Check that [f1] is a subtype of [f2].
   bool _isFunctionSubtypeOf(FunctionType f1, FunctionType f2) {
     return FunctionTypeImpl.relate(f1, f2, isSubtypeOf, instantiateToBounds,
-        parameterRelation: (p1, p2) => isSubtypeOf(p2.type, p1.type));
+        parameterRelation: (p1, p2) => isSubtypeOf(p2.type, p1.type),
+        // Type parameter bounds are invariant.
+        boundsRelation: (t1, t2, p1, p2) =>
+            isSubtypeOf(t1, t2) && isSubtypeOf(t2, t1));
   }

   bool _isInterfaceSubtypeOf(

I made that diff by searching for all uses of FunctionTypeImpl.relate.
I also looked at FunctionTypeImpl.relateTypeFormals ... there's one use in checker.dart, but I that use is correct. It's for figuring out runtime covariance checks. I think this example is still supported, so we still need that code in checker.dart:
  class C<T> {
    g<S extends T>() => <S>[];
  }
  class D extends C<num> {
    g<R extends num>() => <R>[];
  }
  main() {
     C<Object> c = new C<int>();
     c.g<String>(); // must throw for soundness
     c = new D();
     c.g<String>(); // must throw for soundness
  }

Ah, I like "isSubtypeOf(t1, t2) && isSubtypeOf(t2, t1)"! And great edge case with object/dynamic.
With this I can leave equality untouched which hopefully fixes that linking error if it depends upon equality being...what it is! Awesome response & response time @jmesserly!


use Jack or PulseAudio?

Which is better for performance?
My laptop is i3-350 and 8G ram

I think PulseAudio will consume a bit less CPU than JACK at the price of higher latency. Having a larger target latency, PA wakes up CPU less often, and doesn't imply mandatory format conversion (interleaved 16-bit stereo → separated 32-bit float channels → soundcard format, which is probably 16-bit too).
So I'd personally prefer PA in that case, it's enough for me, as I don't need guarantees that JACK provide.
JACK output code is new, and occasional click due to buffer underruns still occur. I don't know how to fix it yet. Perhaps only my current setup suffers from underrun — I didn't changed settings to allow realtime priority.