Implement TDA Metric

Topological data analysis has a fairly well developed pipeline for these kinds of metrics. The paper mentioned in the state of work is on the more theoretical end, but according to Tom Davies there are multiple repos containing implementations of this pipeline.
Todo:

[x] Talk with Tom to get recommendations of implementations and advice on usage.
[ ] Investigate which implementation is best/easiest to work with.
[ ] Implement within our framework.

From chat with Tom:
What has become the defacto standard library for TDA is Giotto-tda.
The pipe line would be as follows:

Use the cubical homology to create a set of persistence diagrams from both the ideal case (just the data and labels), and the features post model inference with the labels.
Given each set of persistence diagrams create a persistance image - essentially a vector representation of topological information.
Compare the (Euclidean) distance between the vector for each model and the vector for the base case, with the shorter the distance suggesting better performance post fine tuning of a model.

Tom makes the point that this use case for TDA is not unusual but would still be considered experimental. In light of that and the fact that this seems to be the most computationally expensive metric my approach is going to be one of trying to get the code working even if there are gaps in my understanding, before trying to get my head around it fully, in an effort to prototype it and sense test it.

Further detail from Tom:

For homology -> diagram step we should give it either n (x_1, ..., x_n, y) or (x_1, ..., x_n, f(x)) tensors where x_i are the flattened pixel values of a grayscale version of image, y are the ground true labels, and f(x) are the features.
The images need to be in grayscale for the homology analysis to work.
The features can be from colour images (this should still work, but for somewhat unexact reasons).

Ok further details:

The cubical homology isn't going to work as giotto-tda requires a numpy array of all the flattened pixel values. This will only work if we transform the incoming images first so they all have the same number of pixels, which is definitely an option but one I'm keeping ont he backburner for now.
The Vietoris Rips homology is simpler (can acccept ragged arrays) but a lot slower, trying this first.

Some general notes on how this method differs from all the others:

The pre processing is different as we require a separate preprocessing of the images for the TDA comparison.
This approach requires comparing all the models to be tested simultaneously to work (as the persistance image bounding box needs to consider all the diagrams it's comparing).

On a deeper inspection the Vietoris Rips homology also doesn't accept ragged arrays (somewhat misleading documentation...) so I will be looking at rescaling the images.

Current list of hyperparameters to experiment with:

Pixel number for image reduction: I've been using 224x224 as this is the standard that the preprocessors on Huggingface use, and this shouldn't change how effective the TDA is, however resizing them to n_classes x n_classes if n_classes > 224 could aid with the next step:
To append the label to the image a reasonable suggestion is to append a 'new row of pixel values' to the bottom. This could either be [ label ] * 224, or could be a one-hot vector. If a OHV then it would either need padding with zeros if n_classes < 224 or wrapping around and padding to add multiple rows. The alternative being that one can resize the images as above. Both methods would be reasonable, however the one hot method might make more topological sense.
When running inference through the model do we want the classes or the features? Again there doesn't seem to be a good immediate answer to this, however if we want features we'll likely need to reduce the dimensions and/or pad to make it all fit, and classes has the same question as (2), though which ever the answer to (2) is if we use classes it should correspond here.

I'm not sure (and also Tom isn't sure) the effect any of these difference should have on this pipeline overall other than they all seem like worthwhile solutions to problems so might be worth experimenting with all of them.

I've settled on the following hyperparameters to experiment with initially:

number of images in the probe set.
one hot vector vs. integer labels
classifier (with one hot vectors or integer labels) vs. features

My initial experiments with the pipeline show that just using the classifier is not effective for ImageNet. This is to be expected as the models were trained on ImageNet and so are fairly accurate, in other words TDA is too blunt a tool to pick it apart in this case. However if we extract the features rather than the label we might see a difference.
I'll be running an experiment testing all of the above parameters for the most effective version, however will not implement the TDA metric within our structure until I've tested it as it will require a refactoring of our processes.

For the features I had been reducing the feature dimension down to number of pixels on one side of the squared images (224 as standard), and padding with zeros to get up to the correct dimension if the feature vector is smaller than the pixel number. However it's occured to me that a more topologically reasonably way to do this (i.e. avoiding an uneven proliferation of null dimensions for certain models - which would affect the outcome but not in a way that is representative of their performance necessarily) would be to feature reduce to a dimension that is some divisor of the pixel lenght (e.g. 28 or 56 for 224) and repeat the feature vector as an additional row of 'pixel values'.

Updated todo list:

[ ] Pull out functions into a script to run an experiment.
[ ] Write tests for functions.
[ ] Run experiment.
[ ] Decide upon how to integrate into our previous framework, if at all.

I've been running an experiment where I vary the hyperparameters, and will have some results analysed by tomorrow. However I'm already convinced this isn't going to work as not only do the results I've been looking at not stack up but I'm also seeing it more to no longer being 'low-cost', with a single run taking up to three hours. Obviously there are some serious optimisations to make from my quite adhoc run however I don't see that there is enough to make it worth it.

From experiments this doesn't seem to work for ImageNet-1k, and moving forward it is unclear how one would use the labels in a sensible way for a dataset with different classes to ImageNet. TDA in this application appears to not be mature enough. Before closing this issue though the final three steps should be:

[ ] Check wih Tom that there aren't any obvious methods within TDA that I've missed for moving forward.
[ ] Discuss based on this information wheter or not it's worth moving forward with TDA.

Todo:

[ ] Write up in report why we're deciding to not move forward with TDA.

Closing this issue as TDA considered a dead end, as explained in report draf.


setup sphinx doc + api doc

Modifications had to be made to docstrings to keep sphinx happy.
Most importantly, sections in docstrings that don't correspond to valid
numpy style sections have been replaced with **section title**. Otherwise
these sections caused "unexpected section title" warnings and did not show
in final html output.

Ah, cool, thanks a lot. I've started working on getting the documentation up and running too.


Document comment patterns

The docs don't cover matching comments. It seems like there is support and I was able to reverse-engineer a bit of it, but wasn't able to figure out how to match comments with a specific format (e.g. TODO\((.*)\) where the capture group is a bug identifier).

`// TODO` matches only comments whose text is exactly "TODO"
`// TODO$_` matches all comments whose prefix is "TODO"
`// r"TODO"`, `// r"TODO.*"`, `r"// TODO"`, `r"// TODO.*"`, `// TODO.*`, and `// TODO*` don't match anything

`/* TODO$_ */` finds different locations from `// TODO$_` -- both only match that specific type of comment 👎🏻

While we're here I also tried the AST node example from the docs but wasn't able to make it work

By default, Grit treats block comments as different from line comments - since sometimes you want to transform one into the other. We can consider adding an equivalence class, but if you use the AST node it works well.
This should do what you want:
engine marzano(0.1)
language js

string(fragment="str")

I'm unable to replicate your concern with AST nodes:


feat: add 'replace' config option

This adds a config option to flexibly allow regex-based transformations of diagnostic messages. E.g. the following config:
{
    "errorLens.replace": [
        {
            "matcher": "foo (.*)",
            "message": "just $1"
        }
    ]
}

Would transform a diagnostic message "foo bar" to "just bar".

LGTM. Thanks.


Refine the contributor guide

What does this PR try to resolve?
Try to redirect the user to start a discussion before hacking or submitting a pull request.
How should we test and review this PR?
Grammar? 😆

r? @alexcrichton
(rust-highfive has picked a reviewer for you, use r? to override)

r? @Eh2406
I rolled the dice and it picked you as a reviewer 😆

Sounded good to my screen reader.

Thanks!
@bors r+

:pushpin: Commit 2d06e57040c094c1ccd0b8d66e5bb9c63431534e has been approved by ehuss

:hourglass: Testing commit 2d06e57040c094c1ccd0b8d66e5bb9c63431534e with merge 19f31880cf3f226bad0ea154eb9acb56b88647b9...


"Failed to initialize input reader" on OSX

I'm trying to use this but for some reason I get a "Failed to initialize input reader" issue:

I'm using macOS 13.6 in case this matters.
Is there any workarround for this?

Hey!
Sorry for the delay
I'm looking for a Macbook to test this


WTF SHADOW MARIO FIXXXX THISSSS 0.5.2

Describe your bug here.
When fc week 1 ,  i get an infinity of week 7 achivement ! @ShadowMario plz fix

Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
Not even

holy funk you got the hidden week 7 achievement. /j


Update Toolkit to v5

Updated the toolkit package to v5, which includes updates to the API endpoints making the frontend compatible with the current testnet.
Removed the @zetachain/networks package as the toolkit already imports it by default.

@andresaiello @lucas-janon please, review.


Heading behavior and documentation mismatch

From the forum: The documentation for Flung for Canvas and Sprites claims that heading will be in the range [0, 360). However, values reported by a test app show that values are in the range [-180,180).
So there are three things we should consider:

Update the documentation so that the range is [180, 180) and be done with it.
Fix the math so that it normalizes the value to [0, 360).
Slightly more challenging: I always think of heading as relative to north (+Y on 2D screen). Right now the 0 value is +X (east). We could rotate the heading value so that 0 is +Y and 90 is +X.

In the case of 2 or 3, we should provide an option on the Canvas to retain the Legacy behavior with upgrader for projects so that existing projects relying on the old semantics do not break.

Hello @ewpatton sir ,
some clarifications i want to know about :
1 > In the first point you said , update the docs by [180,180) , is it [-180,180) or the previous one ?
2 > In the second point , if we are saying the range is [-180,180) then why we are normalizing the result in [0,360)
3 > In the third point , i think we should make it standard , like we see in a coordinate system ( as in maths)
The 90 => +Y
0 => +X
Many Thanks

Re. item 1, yes the lower bound should be -180.
In the case of items 2 and 3, this would bring the Heading property in alignment with a compass heading where north is measured from 0 going clockwise. Today the angle is positive clockwise from 0 to 180 starting from +X then going counterclockwise to -X and the angle is negative when going clockwise.

@ewpatton  Sir , in the second point i have some doubts , why we want to nomalize to [0,360) as it is  already in the [-180,180) and we also want like this ?

@ewpatton Sir , i think if you want to implement the third point of yours , then we can change the code as,
in the file Canvas.java at line no . 1737
float heading = (float) -Math.toDegrees(Math.atan2(vx, vy)) + 90f;
if (heading < 0) {
  heading += 360f;
}

want to know your point of view.
Many Thanks


✨ PIC-2311 - Add match-with-scores endpoint

This PR creates a new match endpoint which, in addition to the existing match functionality, also fetches match probability scores for each of the matches found. These are sourced per-match from hmpps-person-match-score which is a RESTful API around a matching algorithm created by the data science team.
POST /match-with-scores returns:
{
    "matches": [
        {
            "offender": {
                "firstName": "foo",
                ...
            },
            "matchProbability": 0.9999999997   <- We've added this
        }
    ],
    "matchedBy": "ALL_SUPPLIED"
}

This is useful to the probation in court team who eventually want to use these scores to judge whether a match is likely to be correct, saving users time by preventing them from having to manually confirm matches that are clearly wrong.
We don't want the call to fail if the probability scores aren't available so we've added error handling to allow it to fail gracefully.
More info here

A decision has been made that this code should be owned and operated by Probation in Court so this PR will not be merged and will be re-implemented in court-case-matcher or a proxy service.


Deletion of many selected files in explorer is slow

Does this issue occur when all extensions are disabled?: Yes

VS Code Version:Version: 1.72.1
Commit: 129500ee4c8ab7263461ffe327268ba56b9f210d
Date: 2022-10-10T17:25:13.482Z
Electron: 19.0.17
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Darwin x64 21.6.0
Sandboxed: No

OS Version: macOS 12.6

Steps to Reproduce:

Select many files in the explorer and delete them

Observe how slow it is (it doesn't matter if the directory is a git repo or not)

Removing an entire directory with many files in explorer does not have any performance penalty. Removing the same set of files with a terminal and command rm is instantaneous too.

Merging with https://github.com/microsoft/vscode/issues/165271


Strict graphql ws typed dicts

Description
This PR refactors all types of the legacy graphql-ws protocol. I continued using typed dicts (vs dataclasses) for performance reasons, simplicity, and the ability to model null vs undefined easily. In the linked issue I complained about them, but now that we have NotRequired and Required available for typing, they're easy and fun to work with.
Pylance is now pretty happy when I open the protocol implementation, some type casts were removed, and some minor type errors in tests surfaced and were fixed.
Types of Changes

[ ] Core
[ ] Bugfix
[ ] New feature
[x] Enhancement/optimization
[ ] Documentation

Issues Fixed or Closed by This PR

Fixes #1669
Closes #2771

Summary by Sourcery
Refactor the graphql-ws protocol types to use stricter typed dicts, enhancing type safety and clarity. Update tests to reflect these changes and add a release note to document the improvements.
Enhancements:

Refactor all types of the legacy graphql-ws protocol to use stricter typed dicts, improving type safety and clarity.

Documentation:

Add a release note detailing the refactoring of the graphql-ws protocol types and the improvements in type strictness.

Tests:

Update tests to align with the new strict typing of the graphql-ws protocol, ensuring compatibility and correctness.

Thanks for adding the RELEASE.md file!

Here's a preview of the changelog:

In this release, all types of the legacy graphql-ws protocol were refactored.
The types are now much stricter and precisely model the difference between null and undefined fields.
As a result, our protocol implementation and related tests are now more robust and easier to maintain.
Here's the tweet text:
🆕 Release (next) is out! Thanks to @NucleonJohn for the PR 👏

Get it here 👉 https://strawberry.rocks/release/(next)


fix(dialog): drag events in modals are applied to underlying elements

Contain onDragEnter event to the modal only, as it's propagating to the elements behind it causing unexpected behaviours in the elements.
With error
https://github.com/sanity-io/ui/assets/46196328/c2661532-44de-4fd5-bef9-a693e34eb224
Fixed:
https://github.com/sanity-io/ui/assets/46196328/c6b317b1-cd5e-42a8-997b-93263ede1c06

Closing in favour of PR in mono repo to keep changes contained.
https://github.com/sanity-io/sanity/pull/5282


relay view broken

Relay view seems to be broken for some relays. They only show a red box with "Something went wrong
padded hex string expected, got unpadded hex of length 63"
The faulty relays seem to be nostr.mom and spore.ws

do you know what relays show the error? Ive seen it before but I'm having trouble tracking down exactly what relay and how its causing the issue

Is this still happening for you? if not I'm going to close this issue
I'm fairly certain this was caused by bad relay data getting cached from an older version of noStrudel. although I cant be sure now since I cant seem to reproduce the issue anymore on my end

Yes, it's still happening. Same relays.

After cleaning the cache under Settings/Database the error seems to be gone (strange though).
I think we can close this.


Implement raptor indexing engine (collapsed tree)

Description [WIP]
Implement RAPTOR: Recursive Abstractive Processing For Tree-Organized Retrieval
paper: https://arxiv.org/pdf/2401.18059.pdf
Fixes # (issue)
Type of Change
Please delete options that are not relevant.

[x] New Loader/Tool
[ ] Bug fix / Smaller change
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Added new unit/integration tests
[ ] Added new notebook (that tests end-to-end)
[ ] I stared at the code and made sure it makes sense

Suggested Checklist:

[ ] I have added a library.json file if a new loader/tool was added
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I ran make format; make lint to appease the lint gods

@MarouaneMaatouk can you run make lint to fix the linting errors?

hey @MarouaneMaatouk - quick bump on this. once it's ready we'll help you port it over to llama_index (with the v0.10 upgrades packs are consolidated into the main repo)


[CM] Introduce tuning with MetaSchedule for ResNet50

Currently ResNet50 MLPerf inference workflow in CMind just compiles model withut any tuning, but to get maximum performance we need to use modern MetaSchedule.

cc @KJlaccHoeUM9l

Implemented here
Close this ticket as the PR was merged


Init the flask-migrate extension first

It seems that we should init the extension first, am I miss something here?

Thanks!


Fix hint about combining '--all' with '--translation'

Running tx pull --all currently shows the error:

It doesn't make sense to use the '--all' or '--language' flag without the '--translation' flag

However, for tx pull the argument actually needs to be --translations (with an s at the end) and not --translation as it is for tx push.

I am not sure why this error is shown 🤔? The documentation implies:

when neither -s/-t are set, -t is assumed

https://github.com/transifex/cli#:~:text=when neither -s/-t are set%2C -t is assumed

when neither -s/-t are set, -t is assumed

This used to be the case up until v1.3.1. So perhaps this was an unintended change in v1.4?

Hello @bastianeicher,
We really appreciate taking the time tackling this. 👏
We merged a fix that tackles the issue with the --t(#112) more holistic that will be available with the next release, so I will close this one.


Update app-service-linux-ssh-support.md

Didn't work when copy-pasting in Azure CLI. One dash was not like the other.

@nphmuller : Thanks for your contribution! The author, @wesmc7777, has been notified to review your proposed change.

@nphmuller Great catch! Thank you!

#sign-off


Temporary copy error in incoming portal

A Windows user is reporting the following error when they run an Incoming v2 or v3 portal:

Error. Failed to remove directory structure. /path/to/temp/0001

The issue seems to be caused by an earlier problem copying the job files to the temporary path. The copyResult returns false/0. I think this may be related to the directory separator function as the path its trying to copy to is built like this:
c:/path/to/ScriptData\temporary\path\0001
Perhaps the different types of directory separators are causing copy() to fail.

This was fixed in a49022e386e7fa582bf6cc7f5602edfdf1ad75cf


Contributor introduction: database "speedtyper" does not exist

I followed the contributor introduction step by step, and ran into errors. First, there was some error about GITHUB_ACCESS_TOKEN not being found, so I created one and set that environment value. (This should probably also be documented though.)
The next thing I'm running into is this:
~/speedtyper.dev $ make run-seed-codesources
yarn --cwd ./packages/back-nest command seed-challenges
yarn run v1.22.21
$ TS_NODE_PROJECT=./tsconfig.json ts-node -r tsconfig-paths/register ./src/commands.ts seed-challenges
[Nest] 46018  - 03/08/2024, 12:38:00 PM   ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)...
error: database "speedtyper" does not exist
    at Parser.parseErrorMessage (/Users/leontepe/speedtyper.dev/packages/back-nest/node_modules/pg-protocol/src/parser.ts:369:69)
    at Parser.handlePacket (/Users/leontepe/speedtyper.dev/packages/back-nest/node_modules/pg-protocol/src/parser.ts:188:21)
    at Parser.parse (/Users/leontepe/speedtyper.dev/packages/back-nest/node_modules/pg-protocol/src/parser.ts:103:30)
    at Socket.<anonymous> (/Users/leontepe/speedtyper.dev/packages/back-nest/node_modules/pg-protocol/src/index.ts:7:48)
    at Socket.emit (node:events:514:28)
    at Socket.emit (node:domain:488:12)
    at addChunk (node:internal/streams/readable:545:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:495:3)
    at Socket.Readable.push (node:internal/streams/readable:375:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
^Cmake: *** [run-seed-codesources] Interrupt: 2

So essentially just the database not existing. This, too, is not documented in the contributor introduction.
Of course it's possible to figure this out and solve this on your own, but I think that defeats the purpose of a contributor introduction. It should get you to a working initial state, where you can start fiddling around with things.

For reference, what I ended up doing:

Install PostgreSQL
Run psql postgres to enter the Postgres shell
Run CREATE DATABASE speedtyper; to create the database speedtyper
Run CREATE ROLE speedtyper LOGIN; to create the role speedtyper with login permissions
Run CREATE ROLE postgres LOGIN; to create the role postgres with login permissions
Run ALTER ROLE postgres WITH SUPERUSER; to give superuser permissions to the user postgres (you could probably be more fine-grained here, but this works, so...)

And that's it, if I remember correctly. Then make run-seed-codesources successfully runs.


Task server backend

What changes were proposed in this pull request?

Task server backend changes

How was this patch tested?
##- (Please explain how this patch was tested. Ex: unit tests, manual tests)
##- (If this patch involves UI changes, please attach a screen-shot; otherwise, remove this)

Moved the imports to the top and renamed MyCelery. We have split the PR into two parts and abandoning this PR.

Adding Task server backend changes for Hue #3687
Task server Docker changes and backend tasks changes #3688


Specify Icon

Is there a way to specify a certain icon to be used in the banner? I would like to have separate Apple touch icons and app icons.

Any update here, Im trying to specify the custom icon as well for iOS


Alexa says Repeat after me [...]

Describe the bug
Since today the notification functionality misbehaves for me in Germany. When using type: "tts" alexa says "Sprich mir nach [...]". Which would translate to "Repeat after me [...]"
I figure this is a change to the Alexa API and nothing can be done about it.
I will change all my automations to use type: announce.
To Reproduce
Steps to reproduce the behavior:
In Homeassistant call service notify.alexa_media with the data:
{
"message":"test",
"data":{"type":"tts"},
"target": "media_player.kevins_echo_dot_oben"
}

Expected behavior
Alexa says "test"
Screenshots
N/A
System details

Home-assistant (version): 0.98.5
Hassio (Yes/No): No
alexa_media  (version from const.py or HA startup): 2.3.4
alexapy (version from pip show alexapy or HA startup): 1.3.2

Logs
N/A
Additional context
N/A

Can you see if you can get the Alexa app to do a TTS anymore? If so, we may need to see the routine to adjust the API call.

TTS as part of a routine works fine.

Can you please pull the the TTS parameters from a routine per this entry?

{"@type":"com.amazon.alexa.behaviors.model.Automation","automationId":"amzn1.alexa.automation.b5af6208-3d8a-4fdd-9e10-fa30cde42834","name":null,"triggers":[{"payload":{"customerId":"<DELETED>","utterance":"gute Nacht","locale":"de-DE","marketplaceId":"<DELETED>"},"id":"amzn1.alexa.trigger.68be0cec-1a63-49c0-89bf-c464d4d4a9cf","type":"CustomUtterance","timeLapse":null,"skillId":""}],"sequence":{"@type":"com.amazon.alexa.behaviors.model.Sequence","sequenceId":"amzn1.alexa.sequence.13fae817-5cbd-4ac8-ac77-a560a048d9b3","startNode":{"@type":"com.amazon.alexa.behaviors.model.SerialNode","name":null,"nodesToExecute":[{"@type":"com.amazon.alexa.behaviors.model.ParallelNode","name":null,"nodesToExecute":[{"@type":"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode","type":"Alexa.SmartHome.Batch","skillId":"amzn1.ask.1p.smarthome","operationPayload":{"target":"<DELETED>","customerId":"<DELETED>","operations":[{"type":"turnOn"}]},"name":null},{"@type":"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode","type":"Alexa.Speak","skillId":"amzn1.ask.1p.saysomething","operationPayload":{"deviceType":"<DELETED>","customerId":"<DELETED>","textToSpeak":"gute Nacht. Schlaf schÃ¶n!","locale":"de-DE","deviceSerialNumber":"<DELETED>"},"name":null}]}]}},"owner":null,"clientAlias":null,"condition":null,"status":"ENABLED","creationTimeEpochMillis":1534228975339,"lastUpdatedTimeEpochMillis":1543183306589}

This is actually working fine for me, but the issue sounds a bit like an old issue we had in the UK were saying "Simon Says phrase" would, about 1 time out of 4, respond with "I heard phrase" rather than just repeating the phrase.
When Routines were initially introduced, the Alexa Says option would act the same way with the phrases being prefixed with "I heard". I sent feedback to Amazon at the time and it was fixed within a few days.
If this issue has returned for some languages, but is not a problem in routines, it's possible that routines are sending a slightly different request. The one difference I can see is that it looks like the one from the routine has "skillId":"amzn1.ask.1p.saysomething" while I don't think the API is sending.

@eifinger There's a merge pending in alexapy that adds in the skillId. Assuming your on the latest version, can you check if it helps?

I'm not at home over the vacation days. I will report back as soon as I can


vimBufferSetLines: update documentation

This PR is not intended for merging, at least not yet.
I am unsure if this is a bug or if I am misusing the API.
The added test fails with:
-- START set_lines_into_empty_buffer --
LINE 0:
LINE 1:
LINE 2: line 1
LINE 3: line 2
LINE 4: line 3
LINE 5: line 4
[FAILED]
set_lines_into_empty_buffer failed:
	apitest/buffer_set_lines.c:175: strcmp(vimBufferGetLine(buf, 1), "line1") == 0

-- END set_lines_into_empty_buffer -

I am attempting to place a block of lines into an empty buffer in one pass. But when I do that, the lines I get back from vim are not what I expect. In the test they appear to be off by two blank lines, but in my app the lines I got back were all kinds of strange things.
Here is where I am using vimBufferSetLines in my app: https://github.com/city41/Godot_VimTextEdit/blob/master/vim/text_edit.cpp#L4860
I originally was doing this
int len = text.size();
char** rawLines = new char*[len];

for (int i = 0; i < len; i++) {
        // returns a null terminated char*, ie a c string
        rawLines[i] = text[i].ascii().get_data();
}

vimBufferSetLines(vimBuf, 1, len, rawLines, len);

I changed it to this, which fixed the issue for me:
	int len = text.size();
	char* rawLines[1];

	for (int i = len - 1; i >= 0; i--) {
		rawLines[0] = text[i].ascii().get_data();
		vimBufferSetLines(vimBuf, 0, 0, rawLines, 1);
	}

I am inserting the lines from bottom to top, one at a time. This appears to also be what vimBufferSetLines itself does when it is sent a batch of lines.

@CrossR  @bryphe this PR is now just updating vimBufferSetLines's documentation comment.

Looks great, @city41 ! I just fixed a small typo, but otherwise looks good. Thanks for thinking through this, putting together the code sample as a discussion point, and updating our docs. Much appreciated!


how to http/2 server push static resources

First check

[x] I added a very descriptive title to this issue.
[x] I used the GitHub search to find a similar issue and didn't find it.
[x] I searched the FastAPI documentation, with the integrated search.
[x] I already searched in Google "How to X in FastAPI" and didn't find any information.
[x] I already read and followed all the tutorial in the docs and didn't find an answer.
[x] I already checked if it is not related to FastAPI but to Pydantic.
[x] I already checked if it is not related to FastAPI but to Swagger UI.
[x] I already checked if it is not related to FastAPI but to ReDoc.
[x] After submitting this, I commit to one of:

Read open issues with questions until I find 2 issues where I can help someone and add a comment to help there.
I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future.
Implement a Pull Request for a confirmed bug.

Example
Here's a self-contained, minimal, reproducible, example with my use case:

from fastapi import FastAPI, Request
from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles

app = FastAPI()

app.mount("/dist", StaticFiles(directory="views/dist"), name="static")

@app.get("/")
@app.get("/{pathname}")
async def render(pathname: Optional[str] = None, request: Request = None):
    "A catch-all route"
    await request.send_push_promise("/dist/manifest.webmanifest")
    await request.send_push_promise("/dist/index.cbb1cf3e.css")
    await request.send_push_promise("/dist/index.7553f2c4.js")
    return FileResponse("views/dist/index.html")

Description
According to Starlette docs, there is a request.send_push_promise method for server push. My code runs just fine and serves the route and assets, but they are not server pushed at all, just regular fetch.
How can I get this to work?
Environment

OS: Ubuntu 20.04:
FastAPI Version 0.55.1:
Python version: 3.7
Server<EMAIL_ADDRESS>Browser: Chrome 83.x

I believe http/2 has certain requirements, such as https? Have you tried over https?
And how do you know they're not being send over server push?

@Mause I'm testing the deployed app using this tool https://http2.pro/check, which tells me my server does support http2 but no resources are being pushed even though my main route is configured exactly like above.
Also using Chrome devtools Network tab, pushed resources should show up as Push / ... under initiator but it's not currently, the initiator according to Chrome is (index)

you will need hypercorn , have you tried running with it?
or http2 supported servers.

https://pypi.org/project/Hypercorn/

@v3ss0n I am in fact running<EMAIL_ADDRESS>but it's not pushing any resources according to Chrome (83)

Hey, I am having a similar problem. @adrian2x did you get it to work somehow?

@adrian2x, @rohanshiva - I have reached to this write up https://levelup.gitconnected.com/deploy-fastapi-with-hypercorn-http-2-asgi-8cfc304e9e7a?gi=74e947dae0af which may be useful if you miss configured the hypercorn instance

Thank you for the link, I think I was missing the certificate before and only testing in localhost without encryption.
This is a very nice explanation for anyone planning to run hypercorn.
On Sep 21, 2022, at 11:57 PM, Abdelaziz Sharaf<EMAIL_ADDRESS>wrote:
@adrian2xhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fadrian2x&data=05|01||e9a9d9f72b1443c494a908da9c4e8cff|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637994158448999422|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=%2F1F5pzGZbXpsG3bDNMUw7TvHXodB45MF2s6YKGgXd9M%3D&reserved=0, @rohanshivahttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Frohanshiva&data=05|01||e9a9d9f72b1443c494a908da9c4e8cff|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637994158448999422|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=y%2BIwk61bckTky2Bi78P3jgqHxZUAJnCc%2FWNAg0uwiiQ%3D&reserved=0 - I have reached to this write up https://levelup.gitconnected.com/deploy-fastapi-with-hypercorn-http-2-asgi-8cfc304e9e7a?gi=74e947dae0afhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flevelup.gitconnected.com%2Fdeploy-fastapi-with-hypercorn-http-2-asgi-8cfc304e9e7a%3Fgi%3D74e947dae0af&data=05|01||e9a9d9f72b1443c494a908da9c4e8cff|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637994158448999422|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=grD%2Bg9ELjtsCDevDXMo18m7idE4Q9sqeYu3TpSw%2F%2BXo%3D&reserved=0 which may be useful if you miss configured the hypercorn instance
—
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftiangolo%2Ffastapi%2Fissues%2F2032%23issuecomment-1254489984&data=05|01||e9a9d9f72b1443c494a908da9c4e8cff|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637994158449155218|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=YMfOXWbeDmEYT7dhvOjDqQbgGgjS2sbDz29jAnHWJ9w%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABKLWLININNTBY4IOI5DMFDV7PKKBANCNFSM4RGFDU6Q&data=05|01||e9a9d9f72b1443c494a908da9c4e8cff|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637994158449155218|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=D1zZkzRInWbcxPNc5PjkVF5w7YBNMO79qwQkLldidNE%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

Thanks for the help here everyone! 👏  🙇
If that solves the original problem, then you can close this issue @adrian2x  ✔


Run cluster setup in separate Argo stage

What this PR does / why we need it:
Cluster setup step might be cpu intensive which affects the unit test step that is running in parallel at the same stage,
run cluster setup as separate stage to avoid unit test eventually check timeouts.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Release note:

fixed in the other PR


Custom sync for tape and TestServer

We have a problem while working with coordinated tests. The only way to synchronize between test participants is teardown. This doesn't look good. I have a good example:
var db = new Pouch();
var th = new ThaliManager(db);

th.start(participants) // 3 copies of current test
.then(function() {
  return db.put(new doc());
})
.then(function() {
  return wait(db); // Wait until 3 docs will appear in current db.
})
.then(function() {
  return allFinished?; // Is each copy of this test ready? Each copy should have its 3 docs.
})
.then(function() {
  return th.stop();
})

We are creating db and thali manager for it's automatic replication.
We are starting thali manager with our participants (participant is a copy of current test runner).
We are putting doc into the db and we are expecting that it will be replicated among all participants.
Other participants will share it's docs with us.
We want to stop thali manager only when all docs will be shared among all dbs (allFinished).

In theory allFinished is just a mutex.lock() or something similar. In order to implement allFinished we need to access shared memory and lock threads somehow. Today it is done by using 'teardown':
var th;
var test = tape({
  teardown: function () {
    th.stop();
  });
});
test('test name', function () {
  var db = new Pouch();
  th = new ThaliManager(db);
  th.start(participants)
  .then(function() {
    return db.put(new doc());
  })
  .then(function() {
    return wait(db);
  })
  .then(function() {
     currentDBIsFinished! // Current test copy is ready to teardown.
  });
})

It works fine. But we have several limitations:

We have only one lock at the end of each test.
We couldn't have more than one lock per test.
We need to split big complex tests into smaller one.
We need to dance around common teardown function.

I think all these limitations are artificial. Teardown is done here and here.
It is possible to implement a special function that will work in the same way:
test('test name', function (t) {
  var db = new Pouch();
  var th = new ThaliManager(db);

  th.start(participants)
  .then(function() {
    return db.put(new doc());
  })
  .then(function() {
    return wait(db);
  })
  .then(function() {
    return t.sync();
  })
  .then(function() {
    return th.stop();
  })
});

t.sync() will store the place where it has called (like __FILE__ and __LINE__). It can be done in js by capturing stack trace. It will create a unique id id = md5(file) + ':' + line.
t.sync will emit a sync event on device.socket with id param.
t.sync will create a promise that will be resolved device.socket.once('synchronized') with proper id.
Test framework will bind to this event. device.socket.on('sync'). It will multiplex sync event within its channel. The channel name is id. It can be done by using hash: hash[id].toComplete--

There are two ways we can implement this. One is to create a function that all the instances share and coordinate locally. The benefit of this is that it exercises our existing P2P functionality and doesn't require complicating the coordination server. The other choice is to create a dedicated sync service on the coordination server. This would certainly be easier to implement. In that case we can just give each lock a common name. So if someone calls the sync service on the coordination server then the coordination server will just create a counter set to the number of participants in the test and whenever it gets a 'done' call for a particular named sync point it will decrement the counter. When it gets to 0 then it fires a done event with the sync's name.
I'm o.k. with either approach. But there is something rather appealing in having the phones do it themselves rather than using the coordination server. We should be eating our own dogfood.

@andrew-aladev I'm putting this into icebox on the assumption that the tests we currently have that would benefit from this already work well enough and/or we can use the teardown trick where we run two tests in a row that are working together. So this is then more of a nice to have.


Personal Java Compatability Problem

The core interpreter package does not run on a
Personal Java (Java 1.1) system. bsh.Reflection class
contains a call to Vector.add() which should instead
be Vector.addElement()
The jvm I used when I encountered this error was
Jeode for the Pocket PC. The error also occurs on the
personal java emulation environment (pjee) from sun
which runs on a standard PC.
I would very much like to be able to use bsh on a
Java 1.1 system, and if all the problems are like the
one above I'm sure it won't take long to fix.
Thanks,
Christopher James Plant
<EMAIL_ADDRESS>Reported by: *anonymous
Original Ticket: "beanshell/bugs/248":https://sourceforge.net/p/beanshell/bugs/248

Contacted Chris at the supplied e-mail and invited him to comment on this issue.

Alas mail got bounced...

So it is up to us...
Attempted to find pjee but and found this forum post from someone else looking for it too, no response.
Not going to spend more time on this, if there is a need someone will raise it again and we can look into it.
Closed: stale


Fronted version

Describe the problem
We need build lib for fronted.

Which template needed? It's important...
Maybe use next path: ~/apps/web - for ui

Which template needed? It's important... Maybe use next path: ~/apps/web - for ui

Hello, what do you mean by template ? Sorry for so not clear issue name, but we need to build this library (metaforge) by some builder, to allow run it at fronted apps.

By template I mean public template like this. We just copy code and run. Easy and fast way.

For example in redux repo. They build site from path ~/website

By template I mean public template like this. We just copy code and run. Easy and fast way.

Well, we dont use any dependency here, except our own utils library, so you can use browserify as dev dependency to compile it from ~/index.js. As for the vite boilerplate, i don't know any, i think it mostly for website development and it would not fit in our issue.

You want to say that we will write a website in pure js without frameworks. I like it

o say that we will write a webs

Well, this project not about the website at all, this specific library supposed to validate data at runtime. But in the main goal, we have in plans website.

I'm confused man. I want to help you but I don’t understand how

I'm confused man. I want to help you but I don’t understand how

I see.. May i ask, how did you find us or this repository ?
If you want to solve this issue, you can ask me direct questions about problems on your way and i can help to solve them. We have more tasks todo, if you want to participate there - i can figure out task that can fit you.


The route-href attribute should work for href attributes on custom elements

I'm submitting a feature request
Expected/desired behavior:

What is the expected behavior?

The route-href attribute should work not just for href attributes on native HTML elements, such as <a>, but also for href attributes on any custom element.
In the example below, the href attribute of the <a> element will get the value undefined, but ideally, it should get the URL generated by route-href.
app-nav.html
<app-nav-item route-href="route: home" title="home">

app-nav-item.html
<template>
    <a href.bind="href">${title}</a>
</template>

app-nav-item.ts
export class AppNavItem
{
    @bindable
    public title: string;

    @bindable
    public href: string;
}

What is the motivation / use case for changing the behavior?

This would make scenarios like the above cleaner, as we would not need to first generate the URL in the view model, and then bind the href attribute of our custom element to that value. This would make setting a href attribute on a custom element more consistent with how it's done for <a> elements, and it would cover a use case that people might expect to work.

Sounds like a great opportunity to PR the route-href with this enhancement :)

Fixed :)

this should be documented somewhere


Sync subscriptions from Lago when they change

This checks for subscription changes in Lago and syncs them to SI when they change or new ones are added.
It also switches workspace_delegations_population.py to use the shared libraries, and moves the Auth API stuff to its own module.
DRAFT: testing.

Is this PR a mix of two PRS? It's got content about the AI asset sprayer too in it


Ambisonic Binaural vs IPLBinauralEffect

Hello!
I have some questions about binaural audio and the different approaches available.
I was originally doing everything through IPLBinauralEffect and adding it to each point source individually. This worked well enough.
However, from reading docs and then trying it myself, another path seems to encode all your point sources into an ambisonic sound field and then decoding it while setting binaural to IPL_TRUE. This also seems to work, but have some questions about this:

Is mixing many point sources into one ambisonic sound field and decoding once on the final field more performant than running individual IPLBinauralEffects on each point source?
The two methods actually sound quite different with IPLBinauralEffect having a much more pronounced spatializing effect (hard left and hard right seem to pan much more aggressively), but this also seems to color the point sources a bit more in not always the most desirable way. Is this expected?

One final note, there seems to be yet a third way to do this, and that's to use iplAmbisonicsBinauralEffectApply on an already encoded ambisonic sound field. You also have to apply iplAmbisonicsRotationEffectApply before using this effect, and this effect also seems to handle the decoding to 2 channels for you as well. From what I can tell, this sounds the same as doing the ambisonic approach mentioned above.
I'm currently on 4.2.0.
Cheers!

To answer your questions:

Mixing multiple point sources into a single Ambisonic field and then decoding can be more performant than separately spatializing each point source. This depends on the number of Ambisonic channels vs. the number of sources. Some audio engines provide an option for running the entire mixing pipeline in Ambisonic format, which also allows for decoding to arbitrary speaker configurations in addition to binaural rendering.
Correct, IPLBinauralEffect provides more accurate spatialization and a greater sense of externalization, at the cost of more spectral coloration. Ambisonics results in reduced spatial resolution, but provides less spectral coloration in addition to the advantages of mixing, arbitrary speaker layouts, etc.
iplAmbisonicsDecodeEffectApply is essentially implemented as iplAmbisonicsRotateEffectApply followed by iplAmbisonicsBinauralEffectApply (assuming binaural is set to IPL_TRUE), so yes, these approaches should sound the same.

Thank you for the detailed response! Very excited to see proper ambisonics work so well for game tech. Matches my experiences with ATK, but harder to get that working with game tech:
https://www.ambisonictoolkit.net/
I actually prefer the sound going trough the ambisonic field but curious to compare in a setting where localization is super crucial (like you would want in something like Counter Strike). Might also help to test more SOFAs but the default Steam Audio one works best so far on my head and ear shape.
I'll close the issue since you've answered everything I need. Quite fond of this API!
Cheers


[type:refactor][ISSUE #2916] refactor SpringCloudPlugin

see https://github.com/apache/incubator-shenyu/issues/2916.
You can follow these steps to verify whether the results are correct :

run ShenyuAdminBootstrap;
turn on SpringCloudPlugin in shenyu-admin;
run EurekaServerApplication;
run ShenyuTestSpringCloudApplication;
run ShenyuBootstrapApplication;
run spring-cloud-test-api.http.

Codecov Report

Merging #2919 (f242b4e) into master (b242cb8) will decrease coverage by 0.28%.
The diff coverage is 20.00%.

@@             Coverage Diff              @@
##             master    #2919      +/-   ##
============================================
- Coverage     59.90%   59.62%   -0.29%
+ Complexity     4465     4424      -41
============================================
  Files           693      690       -3
  Lines         20026    19968      -58
  Branches       1786     1782       -4
============================================
- Hits          11997    11905      -92
- Misses         7020     7053      +33
- Partials       1009     1010       +1

Impacted Files
Coverage Δ

...e/shenyu/plugin/springcloud/SpringCloudPlugin.java
32.14% <14.28%> (-32.57%)
:arrow_down:

...in/springcloud/SpringCloudPluginConfiguration.java
100.00% <100.00%> (ø)

...admin/controller/ShenyuHttpRegistryController.java
81.81% <0.00%> (-18.19%)
:arrow_down:

...in/disruptor/RegisterServerDisruptorPublisher.java
64.28% <0.00%> (-14.29%)
:arrow_down:

...che/shenyu/sync/data/http/HttpSyncDataService.java
70.37% <0.00%> (-13.34%)
:arrow_down:

...yu/sync/data/http/refresh/AbstractDataRefresh.java
70.00% <0.00%> (-13.34%)
:arrow_down:

...a/org/apache/shenyu/common/utils/VersionUtils.java
67.85% <0.00%> (-10.72%)
:arrow_down:

...apache/shenyu/admin/utils/ShenyuDictH2Trigger.java
63.63% <0.00%> (-9.10%)
:arrow_down:

...ache/shenyu/admin/utils/PluginHandleH2Trigger.java
63.63% <0.00%> (-9.10%)
:arrow_down:

.../apache/shenyu/admin/model/dto/BatchCommonDTO.java
50.00% <0.00%> (-7.15%)
:arrow_down:

... and 28 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 b242cb8...f242b4e. Read the comment docs.

This reduces some of the grayscale logic, so I'll turn off this PR.


Fix issue

Modified the user.json file to contain the name and email information for five users

My first open source contribution

My first open source contribution

Looks good, i'm merging it!

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


next steps with snapshot

[ ] add a scenario snapshot apply command that takes a State and applies it to a unit, i.e. mutates its state to match the provided one (as much as possible).
[ ] add a scenario snapshot replay command that takes a State and executes an event on the unit with that State as context.
[ ] integrate with https://github.com/canonical/hotsos for support/field?
[ ] integrate with https://github.com/sosreport/sos for support/field?

this functionality is a jhack concern, and implemented there


lxc edit, push and pull on stopped containers

lxc edit, push and pull currently only work for running containers.
It should be possible to edit files when a container is not running. Eg. after lxc init, before starting.
lxc init <image> <container name>
lxc file edit newcontainer1/etc/network/interfaces
lxc start <container name>

Actually not so easy. We need to add file pull/push to the container interface and the LXC container backend, then add some new code to forkgetfile and forkputfile to chroot into the container rootfs and pull/push the file.

Done


Validate referenced objects

First step:

[ ] Collect all objects which can be referenced in the 2.1.0 schema

[ ] Collect all objects which can be referenced in the 2.2.0 schema

[ ] Check that this references for 2.0.0 schema are correct

val possibleReferencesLocation = mapOf(
                AsyncAPISchemaIndex.channels to setOf("\$.channels.*.\$ref"),
                AsyncAPISchemaIndex.parameters to setOf(
                        "\$.channels.*.parameters.*.\$ref",
                        "\$.components.parameters.*.\$ref"
                ),
                AsyncAPISchemaIndex.traits to setOf(
                        "\$.channels.*.subscribe.traits.*.\$ref",
                        "\$.channels.*.publish.traits.*.\$ref",
                        "\$.components.messages.*.traits.*.\$ref"
                ),
                AsyncAPISchemaIndex.messages to setOf(
                        "\$.channels.*.subscribe.message.\$ref",
                        "\$.channels.*.publish.message.\$ref",
                        "\$.components.messages.*.\$ref"
                ),
                AsyncAPISchemaIndex.schemas to setOf("\$.components.schemas.*.\$ref"),
                AsyncAPISchemaIndex.securitySchemes to setOf("\$.components.securitySchemes.*.\$ref"),
                AsyncAPISchemaIndex.correlationIds to setOf(
                        "\$.components.messages.*.correlationId.\$ref",
                        "\$.components.messages.*.traits.*.correlationId.\$ref"
                ),
                AsyncAPISchemaIndex.headers to setOf(
                        "\$.components.messages.*.headers.\$ref",
                        "\$.components.messages.*.traits.*.headers.\$ref"
                )
        )

Second step:

[ ] Generate JsonSchema per object which can be referenced in the 2.0.0 specification

[ ] Generate JsonSchema per object which can be referenced in the 2.1.0 specification

[ ] Generate JsonSchema per object which can be referenced in the 2.2.0 specification

Third step:

[ ] Check that plugin collects referenced objects correctly for 2.0.0

[ ] Collect referenced objects for 2.1.0

[ ] Collect referenced objects for 2.2.0

Fourth step:

[ ] Validate referenced object by their type

Hi @Pakisan if work for this issue is still planned, I suggest moving it to https://github.com/asyncapi/jasyncapi-idea-plugin
OTOH if this is completed -- or this issue will not be worked on -- I suggest closing this issue.

Moved to https://github.com/asyncapi/jasyncapi-idea-plugin/issues/18


Fix the import of "queue" and "Queue" for Python 2.7.x and 3.5.x compatibility

This simply requires a try...except block, for all necessary files importing the queue library, as in QSForex.

Hello, I'm a bit new to Python and github but I am interested in the project and want to help out! I believe I've made the fix, but am having trouble with "git push" (i.e. permission denied). Do I need to be given permission first or should I fork the original, push to it, then create a pull request? Thank you

OK, after playing around I believe it is the latter. I'll initiate a pull request upon your confirmation. Thanks!

Indeed, it should look like this:
try:
    import Queue as queue
except ImportError:
    import queue
import time

Feel free to submit a pull request as well! Thanks for fixing it.

This has now been merged into master.


Consider moving up to Swift 5.0 as the minimum compiler and language versions

We currently require a 4.2 or later compiler and support the language version of 4.2 or later.
According to https://www.swift.org/download/, 4.2 came out with Xcode 10.0 on September 17, 2018; 4.2.1 was Xcode 10.1 on October 30, 2018.  4.2.2 & 4.2.3 were linux only, with the later being on February 28, 2019.  4.2.4 was on March 29, 2019 and is Ubuntu 16.04 only.
There is specific support for 4.2 in the library and generator, so it would simply things.  The AppStore won't accept things off that older Xcode version, but in theory , someone could be using a newer compiler but still compiling the generated code in the 4.2 mode.
Swift Package Index compatibility reports these days only mention the 5.x version, so that might be a signal that the 4.x support really can be dropped.
Thoughts?

We should also revisit https://github.com/apple/swift-protobuf/labels/API change for things to do as part of a major version bump.

Calling this fixed/done as the only conditionals left in the library and generated code are now around the 5.5 needs for Sendable.


[Do not merge] Allow all events to access cache

This PR removes the check on the cache actions side and allows all events that are tied to a ref to access cache. It cannot be merged until after the server side change are fully rolled out.
Fixes: https://github.com/github/c2c-actions-service/issues/369

Hello,
Can I ask if this is related to scoping problem that causes cache to be inaccessible for rerunning workflows from GitHub UI?

@manuyavuz-pointr No this is not related to the rerun scope issue.
https://github.com/actions/cache/issues/208 is the issue tracking the problem and the awesome @joshmgross wrote an explanation here https://github.com/actions/cache/issues/208#issuecomment-607877125.

sorry for drive-by comment but just wanted to say i'm super excited for this 🎉

Looks good!

Thanks a ton!
❤ it!

@aiqiaoy
Just gave this a try, but it appears that the deployment event is still not supported:

What will it take to make actions/cache work with the deployment event?
A reference could be passed in the payload, for example.

Perhaps https://github.com/actions/cache/pull/317 will help?


Allow --files-from to take a dash (-) for stdin #769

See code, added errors when both --stdin and --files from - are used together.

I'm not entirely sure what you mean. Could you elaborate more on that?

Do you mean for example that if you have the command:
$ find -name '*.go' | restic backup --files-from -
open -: no such file or directory

That the - automatically gets converted to os.Stdin?

I thought it would be something like this: https://github.com/restic/restic/pull/773/files

I interpreted it the wrong way, excuses. I will close my PR.

Thanks for trying :)


audit: Fix build with pkgsMusl.

Motivation for this change
The previous patches no longer applied to the current code.
Also declare necessary autoconf, automake, libtool dependencies.
Without them, the musl build gets:
	/build/audit-2.8.5/missing: line 81: aclocal-1.16: command not found
	configure.ac:16: warning: macro 'AM_PROG_LIBTOOL' not found in library
	sh: autom4te: not found

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Needs to go to staging

Alternatively push the patch and autotools bits into a rebuild-avoiding optionalAttrs, but that's pretty ugly.  Nevermind, although it's what I did locally to avoid mass-rebuild when poking at this same issue:
https://github.com/dtzWill/nixpkgs/commits/nixos-dtz/pkgs/os-specific/linux/audit
(forgive references to 2.8.6, commit messages were written a bit sleepy-minded :innocent:)
Actually looks like I did a hack job of what you've done here ;).
I don't think autotools and friends ever really go in depsBuildBuild, honestly don't think it's really "blessed" to put anything there other than buildPackages.stdenv.cc.  The oracle of build-fu-and-shenanigans must be consulted! If available... :3.

I'd guess without the tools the build attempts to use the pre-generated configure which works for glibc but since it won't have the changes from the patch it doesn't for musl... does that fit?
As for generating it separately and once regardless of platform details -- in fact, while I don't know it's used much in nixpkgs this is precisely what nix itself does (kinda seen here, details are in plumbing elsewhere: https://github.com/NixOS/nix/blob/master/release.nix#L19 ), it generates a prestine source tarball first (generating the bits) and then uses the result everywhere.
I agree such a migration/change shouldn't be started as part of this PR, but perhaps an RFC or issue or something to discuss? If nothing else it'd be good to fix this before such a discussion concludes ;).

Alternatively push the patch and autotools bits into a rebuild-avoiding optionalAttrs, but that's pretty ugly.

This avoided the rebuild for me nicely: b73f382f2

I'm almost entirely sure I did not merge this, yet github says I did. Did you merge @vcunat?

Yes.  GitHub very often gets this wrong.  I had written to their support about this, but that might've been like two years ago.  You can retry if you care enough.

Very weird, I would have thought its not too hard to determine who merged. Anyway, as long as I didn't accidentally merge anything that's good enough for me.

I suspect they don't necessarily inspect every push for this, and that's why sometimes merges get attributed to some later pushers on the target branch.


Allow system interpreters set by VIRTUAL_ENV to be used without opt-in

Closes https://github.com/astral-sh/uv/issues/3905
Closes https://github.com/astral-sh/uv/issues/4009
Allows an active virtual environment to be used even if it's not PEP 405 compliant (unless SystemPython::Disallowed is passed; which I don't think we ever do right now in user-facing code). User reports indicate that PEP 405 compliance may be too high of a bar. We will emit a debug log noting this, but otherwise not warn — we may want a more user-facing warning.

I'm a little hesitant here, but it seems common enough to allow it?

I thought this included #4009 but it actually doesn't resolve that. I'm leaning towards waiting on this now.


boolean flags set with '=' but not space

When using a cli.BoolTFlag type the flag is set to false if the command uses an '=' sign.
app --flag=false

but if the form --flag false is used the value is silently dropped.
app --flag false

As a developer we know that it is a boolean option (ie a flag) so the behaviour of silently dropping the value is kind of understandable.  But as a user golang typically does not differentiate between the usage of '=' or space for passing command line options.  This behaviour therefore violates the principle of least surprise.
thanks

This is the result of design constraints, and I'm not sure that parsing that way makes more sense than how it works now.
A boolean flag normally does not take arguments. For a boolean flag where the default is false, if the flag is present, the value is set to true. Consider the case where the application takes arguments as well, for a flag with the default value of false:
app --bool-flag foo

--bool-flag is a boolean flag, so foo must therefore be an argument. If the argument becomes true by default, isn't changing whether or not an argument passed more surprising? Or even worse, trying to change whether what follows is parsed as an argument based on whether it happens to be true or false? The = syntax is only allowed because it's unambiguous, but really I consider it more surprising that = is allowed at all.
The design pattern I use to avoid this situation is to flip the default by using the prefix no-.
# Before
app --foo=false

# After
app --no-foo

Thanks for your comment, I agree totally that accepting an =false is surprising.  I did try adding negated flags for those that default to true but it seemed to clog up the cli.  Anyways, thanks for your thoughts.


privacy lock - update label

What kind of PR is this?:

/kind feature
What this PR does / why we need it:

To clarify authentication methods

Which issue(s) does this PR fixes?:

Fixes #911
Additional comments?:

Requires testing on other devices that use different authentication methods

Developer Checklist:

[x] Read your code changes at least once
[ ] Tested on iOS/Android device (e.g, No crashes, library supported etc.)
[x] No console errors on web
[x] Tested on Light mode and Dark mode*
[x] Your UI implementation visually matched the rendered design*
[ ] Unit tests*
[ ] Added e2e tests*
[ ] Added translations*

Acceptance Criteria: Privacy Lock to pass all scenarios as stated.
Android

[ ] 1. Enable Privacy Lock - Trigger Prompt - Fingerprint - Quit app - Open app - Trigger Prompt

[ ] 2. Disable Privacy Lock - Trigger Prompt - Fingerprint - Quit app - Open app - No Prompt

[ ] 3. Enable Privacy Lock - Trigger Prompt - Pattern - Quit app - Open app - Trigger Prompt

[x] 4. Disable Privacy Lock - Trigger Prompt - Pattern - Quit App - Open app - No Prompt

[x] 5. Enable Privacy Lock - Trigger Prompt - Pin - Quit app - Open app - Trigger Prompt

[x] 6. Disable Privacy Lock - Trigger Prompt - Pin - Quit app - Open app - No Prompt

[x] 7. Enable Privacy Lock - Trigger Prompt - Pin - Quit app - Change system settings to Pattern - Open app - Trigger Prompt - Able to access via Pattern

[x] 8. Continue from 7 - Quit App - Open App - Trigger prompt

[x] 9. Enable Privacy Lock - Trigger Prompt - Fingerprint - Unlink Wallet - Restore Wallet - Privacy Lock should be enabled

[x] 10. Enable Privacy Lock - Switch to another app - Go back immediately - No prompt

[x] 11. Enable Privacy Lock - Switch to another app - Wait 1 minute - Trigger prompt

[x] 12. Enable Privacy Lock - Lock & unlock device - No prompt triggered

[x] 13. Disable Privacy Lock - Lock & unlock device - No prompt triggered

[ ] 14. Enable Privacy Lock - Lock device - Wait 1 minute - Unlock device - Cancel prompt - Prompt should remain (no matter number of attempts to cancel prompt)

[ ] 15. Continue from 14 - Cancel Prompt - App should remain open & prompt should remain (no matter number of attempts to cancel prompt)

[x] 16. Enable Privacy Lock - Minimise - Wait 1 minute - Open app again - Cancel prompt - Prompt should remain (no matter number of attempts to cancel prompt)

[x] 17. Enable Privacy Lock - Trigger Prompt - Fingerprint - Quit app - Change Fingerprint on device - Open app - Try with old fingerprint - Should fail - Try with new Fingerprint - Should pass

[x] 18. Same with 17 but try with updated pattern / pin

[x] 19. Enable Privacy Lock - Trigger Prompt - Fingerprint - Quit app - Remove Fingerprint - Open app - Trigger prompt (pattern / pin)

[x] 20. Enable Privacy Lock - Trigger Prompt - Pattern / pin - Quit app - Remove pattern / pin - Open app - No prompt

[x] 21. Continue from 20 - Re-enable Fingerprint & pattern / pin - Open app - Trigger prompt

[ ] 22. From MainNet, activate Privacy Lock - Switch to Playground Network - Switch back to MainNet - Should trigger prompt

iOS

[x] 1. Enable Secure with Touch ID - Trigger Prompt - Touch ID - Quit app - Open app - Trigger prompt

[x] 2. Disable Secure with Touch ID - Trigger Prompt - Touch ID  - Quit app - Open app- No prompt

[x] 3. Enable Secure with pincode - Trigger Prompt - Pincode - Quit app - Open app - Trigger prompt

[x] 4. Disable Secure with pincode - Trigger Prompt - Pincode  - Quit app - Open app - No prompt

[x] 5. Enable Secure with Face ID - Trigger Prompt - Face ID - Quit app - Open app - Trigger prompt

[x] 6. Disable Secure with Face ID - Trigger Prompt - Face ID - Quit app - Open app - No prompt

[x] 7. Enable Secure with — - Trigger Prompt - Touch ID / Pincode / Face ID- Unlink Wallet - Restore Wallet - Secure with — remains enabled

[x] 8. Continue from 7 - Quit App - Open App - Trigger prompt

[x] 9. Enable Secure with — - Switch to another other app - Go back immediately - No prompt

[x] 10. Enable Secure with — - Switch to another app - Wait 1 minute - Trigger prompt

[x] 11. Enable Secure with — - Lock & unlock device - No prompt triggered

[x] 12. Disable Secure with — - Lock & unlock device - No prompt triggered

[x] 13. Enable Secure with — - Lock device - Wait 1 minute - Unlock device - Cancel prompt - Prompt should remain (no matter number of attempts to cancel prompt)

[x] 14. Continue from 13 - Cancel Prompt - App should remain open & prompt should remain (no matter number of attempts to cancel prompt)

[x] 15. Enable Secure with — - Minimise - Wait 1 minute - Open app again - Cancel prompt - Prompt should remain (no matter number of attempts to cancel prompt)

[x] 16. Enable Secure with — - Trigger Prompt - Face ID - Quit App - Try with different Face ID on Device - Should fail - Try with own Face ID - Should pass

[x] 17. Same with 16 but test with updated Touch ID / Pincode

[x] 18. Enable Secure with — - Trigger Prompt - Face ID / Pincode - Quit App - In device's Settings >Face ID & Passcode > Other Apps > toggle off FaceID for DeFiChain - Open DeFiChain App - Trigger prompt (pincode)

[x] 19. Enable Privacy Lock - Trigger Prompt - passcode - Quit App - In device, turn off passcode - Open DeFiChain App - No prompt

[ ] 20. Continue from 19 - Re-enable Face ID / Touch ID / pincode - Open app - Trigger prompt

[ ] 21. From MainNet, activate Privacy Lock - Switch to Playground Network - Switch back to MainNet - Should trigger prompt

iOS:

[ ] 5. Enable Secure with Face ID - Trigger Prompt - Face ID - Quit app - Open app - Trigger prompt

Reported in #971

Uploading IMG_3433.MOV…
Android:

[ ] 13. Enable Secure with — - Lock device - Wait 1 minute - Unlock device - Cancel prompt - Prompt should remain (no matter number of attempts to cancel prompt)
[ ]  14. Continue from 13 - Cancel Prompt - App should remain open & prompt should remain (no matter number of attempts to cancel prompt)
[ ]  15. Enable Secure with — - Minimise - Wait 1 minute - Open app again - Cancel prompt - Prompt should remain (no matter number of attempts to cancel prompt)

iOS:

[ ] 5. Enable Secure with Face ID - Trigger Prompt - Face ID - Quit app - Open app - Trigger prompt

Reported in #971

https://user-images.githubusercontent.com/65014479/135251363-839afe7d-4e9a-49c5-80df-57b985318e91.MP4
iOS:

[ ] 21. From MainNet, activate Secure with — - Switch to Playground Network - Switch back to MainNet - Should trigger prompt

Switched network, did not trigger prompt


Runtime Node20.x support?

Hello,
I was wondering if there are any updates planned for runtime Node20.x support?
According to this article (https://aws.amazon.com/blogs/compute/node-js-20-x-runtime-now-available-in-aws-lambda/) Lambda can now run on node v20.
When i tried to sam build a sam app locally with runtime set to Node20.x, build succeeded (sam-cli v1.103.0).
However, when I tried to deploy the app w github actions, build failed with the following error:
Build Failed
Error: 'node20.x' runtime is not supported

I would really appreciate it if someone can share plans for node v20.x support in the near future. Thank you!

You need to pull new version of SAM CLI
See https://github.com/aws/serverless-application-model/issues/3460 for more details

@ssenchenko
As I've mentioned in my original post, build succeeds with the new sam-cli pulled on my local machine.
However, the issue i'm having is when i try to deploy the sam app with github actions.
Here is a bit of the github workflow pipline.yaml I have:
build-and-deploy-dev:
   if: github.ref == 'refs/heads/dev'
   needs: [test]
   runs-on: ubuntu-latest
   steps:
     - uses: actions/checkout@v3
     - uses: aws-actions/setup-sam@v2
       with:
         use-installer: true
     - run: sam build --template ${SAM_TEMPLATE} --use-container

..and so on.
This is where i get the error:
Build Failed
Error: 'node20.x' runtime is not supported

How should i update the .github/workflows/pipeline.yaml file in order for the sam app to be successfully built when the runtime is set to node20.x in the template.yaml?


[Discussion] New Quest tracker / HUD is missing after recent update (link to video on how to use it)

Module Version: v0.7.7
Describe the bug
The quest tracker / HUD, to the top right of the screen, is missing now after this update to 0.7.7.  I've noticed the option to enable the quest tracker isn't in the config either.  Thinking it might have been removed, I came here only to see discussion about how it's been an emphasis of the recent update.  I'm confused.
Notice in screenshot that I have quests, the config doesn't show the quest tracker checkbox on/off, and the top right doesn't display the tracker.

For what it's worth, I see that resizable is an option.  I've tried toggling that on and off and wonder if somehow it's been resized to non-existent, or hidden somewhere.  Not sure where I'd look to expand that if that's the case.

Indeed there isn't documentation on the wiki, but you'll find this video going over all the details of the new quest tracker helpful.
https://www.youtube.com/watch?v=lfSYJXVQAcE&t=281s
What you are seeing is not a bug.

Thanks!


FYI: Can not start a container 2013R2

Hi,
This is kind of a follow up on Issue #379.
We also got stuck with dism not able to enable the dotnet3 feature(s). What helped me (but not my collegue)  was to change the given code of 71\navinstall.ps1 to:
Write-Host "Installing .NET 3"
Set-Service -Name wuauserv -StartupType "Manual"
DISM /Online /Quiet /Add-Package /PackagePath:"C:\NAVDVD\Prerequisite Components\microsoft-windows-netfx3-ondemand-package.cab" | Out-Null
Dism /online /enable-feature /all /featurename:NetFX3 /Source:"C:\NAVDVD\Prerequisite Components" /limitaccess | Out-Null
I don't expect that there will be much energy put into this. But maybe it gives you or others a hint what causes issues with that part of the script...
to find out what works I did as suggested: went into the container (yes it is there even if it fails to get NAV running) and worked my way through this dism stuff until I found a combo that worked. I than took a copy of the navinstall.ps1 , changed it accordingly and handed it into new-navcontainer   -myScripts @("C:\temp\run71\navinstall.ps1")

Thanks for sharing.


Add CI script and minimal/recent lock files

Done on top of #79 so that the github action doesn't need to worry about the submodule.
Add test scripts and lock files, as well as updating the github actions, to mimic how we do things in rust-secp256k1.

I'm not entirely sure how all these changes are going to fit in with your local CI @apoelstra, if there as a preferred ordering for these changes I can re-do things. My guess is that this can be rebased and merge after #79 and then we do #77

This is the next step @apoelstra in the epic Core upgrade process.

Nice! As a nit, I kinda prefer the Cargo-minimal.lock file actually have minimum deps (cc I think can be 1.0.28 as it is in some other projcets). But I'm not too concerned about this. Fine to just use the existing values as "minimum supported" ones since we know they work with our MSRV.

Gonna go ahead and merge -- my local CI script is now broken without this :) so I'd prefer if we merge it ASAP. If we want to tweak the lockfiles we can do it in a future PR.


Terminate session after a defined time

Hi,
First I want to thank you for creating and maintaining this project.
I have ttyd running on small server with very limited resources, creating a new container for each client using the command ttyd docker run -it --rm ubuntu and it works great.
However, the session and the container keep running as long as the user does not close the browser (as expected). It'd be very useful if those sessions (and their containers) can be terminated after a fixed period of time, e.g. 5 minutes. Is there any known method to achieve this?
Eddie

It's possible to implement it outside of ttyd, you can use a shell script to call the docker run command and terminate it in it after a defined time.

Thank you @tsl0922 . I'll share the solution here when its ready.


friendly_id slug not updating

When you change the article title, the slug should also change to match, but this is not currently happening.
from the friendly_id docs:
Slugs are no longer regenerated when a record is saved. If you want to regenerate a slug, you must explicitly set the slug column to nil:

Incidentally, we seem to be validating for title uniqueness:

Is that the behavior we want?

this is on production and tested.


'Embed into Div' option in Edit menu

When writing code, one thing I often do (perhaps because I'm fairly amateur) is wrapping a section of html within a new div, eg a bootstrap container. There may be some easier way to do this, but I tend to use emmet shortcuts to create a div, delete the closing tag and make the new one below the relevant section (or cut and paste it). Then of course I highlight the code to indent it. It would be very useful to have an option or extension which allows me to highlight a section of code, and wrap it into another div, ideally even indenting it. This would be similar to the option in the EDIT menu to highlight a section and toggle a block or line comment, but instead you highlight the section, then select 'embed into div'. Obviously this only applies to html files so maybe it could be a contextual feature.
Anyway if this is already possible in some way or at least there's a quicker workaround then please let me know. Many thanks.

Check out the Wrap with Abbreviation command. First, you select the part you want to wrap, and then an inputbox should show up allowing you to enter an Emmet abbreviation like div.

Thank you, that is extremely helpful, I will use this a lot! For anyone else who may find this useful, highlight the part you wish to wrap into a div (or any other tag), press 'ctrl + shift + p' then begin to type 'emmet' then select 'emmet: wrap with abbreviation'. You can also select a keyboard shortcut to get directly to this by clicking the preferences icon to the right then clicking the '+' to add a keyboard binding. I chose a chorded 'ctrl w e' (hold ctrl, press w, then e).


No
Describe the problem
When running pipdeptree in databricks notebook I am getting the following error
Warning!!! Duplicate package metadata found:
"/usr/local/lib/python3.8/dist-packages"
  filelock                         3.6.0            (using 3.0.12, "/databricks/python3/lib/python3.8/site-packages")
  pip                              21.0.1           (using 24.1.2, "/databricks/python3/lib/python3.8/site-packages")
  wheel                            0.36.2           (using 0.36.2, "/databricks/python3/lib/python3.8/site-packages")
"/usr/lib/python3/dist-packages"
  distro                           1.4.0            (using 1.9.0, "/databricks/python3/lib/python3.8/site-packages")
  requests                         2.22.0           (using 2.32.3, "/databricks/python3/lib/python3.8/site-packages")
  certifi                          2019.11.28       (using 2020.12.5, "/databricks/python3/lib/python3.8/site-packages")
  chardet                          3.0.4            (using 4.0.0, "/databricks/python3/lib/python3.8/site-packages")
  urllib3                          1.25.8           (using 1.25.11, "/databricks/python3/lib/python3.8/site-packages")
  idna                             2.8              (using 2.10, "/databricks/python3/lib/python3.8/site-packages")
  six                              1.14.0           (using 1.15.0, "/databricks/python3/lib/python3.8/site-packages")
NOTE: This warning isn't a failure warning.
------------------------------------------------------------------------
Traceback (most recent call last):
  File "/databricks/python3/bin/pipdeptree", line 8, in <module>
    sys.exit(main())
  File "/databricks/python3/lib/python3.8/site-packages/pipdeptree/__main__.py", line 36, in main
    tree = PackageDAG.from_pkgs(pkgs)
  File "/databricks/python3/lib/python3.8/site-packages/pipdeptree/_models/dag.py", line 63, in from_pkgs
    req = next(requires_iterator)
  File "/databricks/python3/lib/python3.8/site-packages/pipdeptree/_models/package.py", line 118, in requires
    if not req.marker or req.marker.evaluate():
  File "/databricks/python3/lib/python3.8/site-packages/packaging/markers.py", line 325, in evaluate
    return _evaluate_markers(self._markers, current_environment)
  File "/databricks/python3/lib/python3.8/site-packages/packaging/markers.py", line 225, in _evaluate_markers
    groups[-1].append(_eval_op(lhs_value, op, rhs_value))
  File "/databricks/python3/lib/python3.8/site-packages/packaging/markers.py", line 183, in _eval_op
    return spec.contains(lhs, prereleases=True)
  File "/databricks/python3/lib/python3.8/site-packages/packaging/specifiers.py", line 552, in contains
    normalized_item = _coerce_version(item)
  File "/databricks/python3/lib/python3.8/site-packages/packaging/specifiers.py", line 28, in _coerce_version
    version = Version(version)
  File "/databricks/python3/lib/python3.8/site-packages/packaging/version.py", line 202, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
packaging.version.InvalidVersion: Invalid version: 'cpython'

What I think is happening is that you have some package metadata that contains an invalid requirement string. More specifically, a requirement string that contains an invalid environment marker.
I think the wrong marker variable is being used somewhere e.g. 'cpython'==python_version in some METADATA file.
I was able to reproduce the same exact stack trace after adding the following METADATA file into my environment:
Metadata-Version: 2.1
Name: fake
Version: 1.2.3
Requires-Dist: covdefaults>=2.3; 'cpython' == python_version

The stack trace:
Traceback (most recent call last):
  File "/home/vscode/.local/bin/pipdeptree", line 8, in <module>
    sys.exit(main())
  File "/workspaces/pipdeptree/src/pipdeptree/__main__.py", line 36, in main
    tree = PackageDAG.from_pkgs(pkgs)
  File "/workspaces/pipdeptree/src/pipdeptree/_models/dag.py", line 63, in from_pkgs
    req = next(requires_iterator)
  File "/workspaces/pipdeptree/src/pipdeptree/_models/package.py", line 118, in requires
    if not req.marker or req.marker.evaluate():
  File "/home/vscode/.local/lib/python3.9/site-packages/packaging/markers.py", line 327, in evaluate
    return _evaluate_markers(self._markers, current_environment)
  File "/home/vscode/.local/lib/python3.9/site-packages/packaging/markers.py", line 227, in _evaluate_markers
    groups[-1].append(_eval_op(lhs_value, op, rhs_value))
  File "/home/vscode/.local/lib/python3.9/site-packages/packaging/markers.py", line 184, in _eval_op
    return spec.contains(lhs, prereleases=True)
  File "/home/vscode/.local/lib/python3.9/site-packages/packaging/specifiers.py", line 552, in contains
    normalized_item = _coerce_version(item)
  File "/home/vscode/.local/lib/python3.9/site-packages/packaging/specifiers.py", line 28, in _coerce_version
    version = Version(version)
  File "/home/vscode/.local/lib/python3.9/site-packages/packaging/version.py", line 202, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
packaging.version.InvalidVersion: Invalid version: 'cpython'

It looks like the problem lies in _eval_op(), where it would create a valid Specifier e.g. Specifier('==3.12'), but it does not attempt to check if lhs (which equals "cpython") is a valid Version, which will cause it to raise InvalidVersion.
Because of this, I think this maybe an upstream bug and should be reported here.

Actually, it looks like this issue is already being tracked in https://github.com/pypa/packaging/issues/767.

Thank you, do you think this could be somehow catched when evaluating the dependencies? Even if one package has bad definition in metadata it's maybe not reason to not show the partial tree of dependencies anyway. In my case I was looking what was requiring sklearn>=1.x.x, in the end I created an extra env in databricks and used the sklearn==0.23.x for loading of a model.

Seeing that the upstream issue has been open for some time, I think it would make sense for me to implement a workaround until they are able to fix it. I'll get to it when I have the time.


[FEATURE] First time contributor GitHub action should be deleted

Description
Since Reviewpad is going to run and check if it is a first time contributor we don't need another action to do this.
Screenshots
No response
Additional information
No response

I want to work on this issue.
Can you assign it to me and tell me, what exactly the issue is

Thank you, Issue is now fixed


⚠ Mobitopup has degraded performance

In cd4369f, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 5781 ms

Resolved: Mobitopup performance has improved in 7047a61.


yt-dlp got updated

The auto install of yt-dlp installs the older version, that appears to not work any more. i think it needs an update to the latest version released 3 days ago

Hello,
This package doesn't hold a specific binary version; instead, a postinstall script is run ever time it's installed to get the latest binary.
I checked it manually in mt computer and it works as usual.

hello. my already installed library stopped working on my app. i had to manually install the latest version of yt-dlp to have it working again


Add ClientOptions and control autoReconnect #58

Coverage decreased (-0.27%) to 94.91% when pulling 6ebcd49d6f3949994fb7acc16f064fe4760fd0af on issue-58-client-options into 93de6880054ccf60db302eb4871d90cbea982788 on master.


chore: upgrade @radix-ui/react-select to 2.0.0

Do you know where I can find the release notes for this version? I can't find it here: https://www.radix-ui.com/primitives/docs/overview/releases
Thank you

It seems https://github.com/radix-ui/primitives/pull/2174 is why it's breaking.
Originally posted by @benoitgrelard in https://github.com/radix-ui/primitives/pull/2174#discussion_r1210334603

Making this a major as this is potentially a breaking change for people who were relying on using an option with value="" instead of the placeholder.

@shadcn Hi, is there any update to this?

@harryzcy Thanks for the links. Looks good.


Invalid interval on old range

Hi,
I discovered a strange behaviour. I have a load metric for which the storage-chema is 60:10080,300:26298,900:175200.
If I try to display a graph showing last month everything is ok. But if I try to display the same graph from 4 months ago I got nothing (graph with no values). I tried to display the graph with the format=raw param and it seems that the metric interval used is wrong.
For the last month metric interval shown by webapp is 300s which is good. But if I try to display on month range from 4 months ago the webapp shows the same 300s interval and None values. It should use the next rententtion interval which is 900s.
I suspect that the issue (blank graph) comes from this wrong metric interval.
PS: I can correctly fetch values for the same range from the wsp file using whisper-fetch.py tool.

Which version of graphite-web and carbon are you using?
You say if you select one month, you get a resolution of 300s. The archive 300:26298, is only 26298/(60*24) = 18,2625 days. This doesn't make sense to me, it should show a 900s interval on one -1month.

Ok I just upgraded to 1.0.1 and everything is working as expected. My version was quite old (I think it was 0.9.10) :)


IPv6 support

We currently support logging of only IPv4 addresses (packed into an int). Starting with Zipkin 1.4 endpoints can omit IPv4 (by setting Endpoint.ipv4 to 0), and optionally log Endpoint.ipv6 as the raw 16byte address.

Brave 4.3 supports this (via zipkin, but yeah)


Improvements to DatabasePager: new methods to start/stop requests(update...

...d pagedLOD example) and to set the dabatase path

I need to check some things


Bump JDK requirement to JDK 11?

Please participate in the poll (click on the desired answer).
Shall Liquibase Neo4j bump its JDK (and JRE) requirement?

Feel free to detail your opinion by commenting on this issue.

Liquibase core currently has a JDK 8 baseline and will not revisit this requirement for the time being, as far as I understand.
Bumping the requirement to JDK 11 would allow Liquibase Neo4j to:

benefit from newer Java features
pull in the Cypher DSL parser module, thus moving away from brittle Cypher string manipulation

That being said, changing this requirement would complicate the potential merge of the Neo4j extension into the main Liquibase repository.


Add device and positions to app

In this PR, new features:

Show device info (from map tap "Devices", then a device name)
Show devices as pins on the map (polls API only when you open the map screen)
"Zoom-to-all" devices, with padding around the edge of map
Web sockets to push Position updates to the app
Data formatting of latlon (5 dp), speed (1dp) with units, course (compass direction, degrees)

Known issues:

Zoom to all devices doesn't add padding around the edge of the map
Some device/position info isn't shown (e.g. attributes, is valid, is outdated)
If the API is polled while you have a callout visible, the callout is closed
Web sockets don't work on my Traccar server (503)

I will try later and see if WebSocket connection works for me.

I have figured out the problem with websocket. The cookie is set for /api path, so you need to request cookie for http://demo.traccar.org/api instead of top level http://demo.traccar.org/.
Please check login screen layout on iPhone 4S screen. It doesn't work properly. There must be some auto-layout issue.

You were correct about the cookie path. This PR is ready for review now.
Positions are pushed to the app using the web socket, but the map only redraws all the positions every 10s on a timer. I did this because I wasn't sure what would happen if a massive amount of positions were pushed to the app quickly. Map redraws can take some time when there are many annotations.

It doesn't sound right. The map should be updated in real time. That was the whole purpose of using WebSockets. Why does map re-draw on every update. You just need to add/update single marker.

OK. Just pushed a change to remove the timer, and update the map as soon as new positions are received from the web socket.
Only single markers are updated (only the ones that change), not all markers.

OK, I'll try to find time to review it later today.
Does it mean we can publish the app after the merge is done? Is anything missing?

For me personally, the only major thing I feel I need "right now" is to add the ability to change the map type (between: roads, roads + satellite imagery, and just satellite imagery).
I would also like some guidance about how the app should look/feel. I've built the UI in the app in what I think is a tidy way, but I have only used Traccar for a few weeks... you will have a much better idea about how things should work.

Changing map type can wait. It's not that important for the first version. Let me review the code and the app, merge PR, and submit the app for Apple review if everything is fine. After that we can start on other features.

Issues I found so far:

You need to support HTTPS version of WebSocket. As far as I remember, you don't need to change schema to ws or wss. Just use regular http schema.
App crashes on self.lastUpdate = dateFormatter.dateFromString(value as! String). I'm not able to see variables in debug mode for some reason, but I guess the issue is with date format. Make sure you are using latest version of Traccar server for testing.

Trying to fix my debug issues at the moment. Not sure why it doesn't show any variable values.

Are you sure you are using Carthage dependencies correctly? I have another project and it looks completely different. I'm not a huge expert in iOS, so please correct me if I'm talking nonsense.
In my other project:

Dependencies in project navigator show as suitcases (frameworks).
I don't have anything in embedded binaries.
There is an extra build phase to copy frameworks.

In Traccar Manager project:

Dependencies in project navigator show with blue icons (sub-projects?)
Libraries are in embedded binaries section.
Extra build phase in missing

I was thinking my debugging issues are somehow related to dependencies. Does debugging work for you?

By debugging you mean the symbol inspector? It works most of the time for me -- on this and other projects. When it doesn't work I assume it is just another Xcode bug :)
I've just pushed changes to:

Use Carthage's built frameworks, instead of sub-projects. I would be curious to see if this fixes your debug problems.
Use the same URL scheme as the API for the web sockets (http/https)
Handle the case where we don't have timestamps to parse
Round the course bearing to 1 dp (I wonder if nearest whole number is better)
Reconnect web socket when the app is opened, if the user is still logged-in

Thanks. I'll try it in the evening.

Can you please fix the warning:

.../TraccarManager/LoginViewController.swift:48:17: 'UIAlertView' was deprecated in iOS 9.0: UIAlertView is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead

Everything else looks good. I think we can merge and publish it. What's the minimum iOS we can target? iOS 8?

Fixed that warning. Did your debug issues go away with those Carthage changes?
I've only tested on iOS 8 and above, so I wouldn't feel comfortable targeting anything lower.
I was playing with the app on the iPads today, and it might be nice to tweak so the app feels a bit more "at home" on the iPad. But for now, I think it is OK.

Merged. I'll try to find time tomorrow to submit the app for Apple review.

By the way, do you want me to include you as an author in the README file and license headers? If yes, do you want to add your email address there as well?

That'd be awesome. Yes please -- "Will Pearse" and<EMAIL_ADDRESS>Thanks!


assert not working on mac os x

I have created simple program in mac os x. Just set variable without any assignment and then check assert ( exist != null) but this statement fails, no any assertion.
Dart version:
Dart VM version: 2.0.0 (Fri Aug 3 10:53:23 2018 +0200) on "macos_x64"
Thanks

Have you tried enabling the option --enable-asserts, i.e. dart --enable-asserts <dart-script-file.dart>?

@dhil
Thanks.
I did not try with that option by enabling. Thanks.
After I enable it's work, getting assertion.
I think I will have to more dig in to the dart configuration option.


Enabling adding multiple events to a callback

Enabling adding multiple events to a callback
Problem at hand using socket.io
    socket.on('xxxxxx', () => {
      this.performAction1();
    });

    socket.on('yyyyyyy', () => {
      this.performAction1();
    });

    socket.on('zzzzzzzz', ({ value1, value2 }) => {
      this.performAction2(value1, value2);
    });

    socket.on('xzxzxzxzxz', () => {
      this.performAction1();
    });

One callback is used for multiple events, whereas an array could be passed.
Solution
    socket.addEventsListener(['xxxxxx', 'xzxzxzxzxz', 'yyyyyyy'], () => {
      this.performAction1();
    });

    socket.on('zzzzzzzz', ({ value1, value2}) => {
      this.performAction2(value1, value2);
    });

Results

Lines of code saved
No breaking changes

Issues encountered
I could not find a good keyword to match on and add a shortcut, so I did not add one.

How often do you need this that declaring a named function is not much simpler?

Not that much, but I figured it might be very useful for projects that use sockets a lot. I mean, isn't the idea just great? It's more like a possibility than a key feature, I agree. But I think it's cool. It does not break anything, it does not map to an on-like alias, so it is completely transparent for people who do not need it, and it's just a few code snippets so it does not make the final package that much more heavy! 😉

I'm going to pass on this. I don't think it's a common need and it's easy enough to use named functions or a for-loop if you need it.


Cleanup

Referenced the device manual and simplified the different components of the DMX code.
Make it possible to send complete data with confidence.

I'd like to test this with an actual device before merging.


Lint repo!!

I'm curious, what should this issue actually address?
Please note that I'm not being sarcastic or anything; I would just like to know.


Update to ion icons 2.0.1

Current version uses ion icons 2.0.0

Hmm, looking at b69385da7d8c1fadd00d52b2ac1f27a5323087ea it might not be as straight-forward as I was thinking.


Bug in API

$rootScope.$emit('lazyImg:refresh');
not working

Facing the same problem.. could you fix it somehow?

Facing same problem.


closes #291

Deploy preview for landscape ready!
Built with commit<PHONE_NUMBER>314eb13552373bb009bcf16a3dd29c
https://deploy-preview-294--landscape.netlify.com


[FEATURE] Support byte sized vector in Lucene engine

Is your feature request related to a problem?
Currently vectors are represented as floats(4 Bytes) for each dimension. This could lead to large storage and memory requirements to construct/load/save/search graphs and at scale becomes costly and also hard to manage the cluster requirements. In some cases, customers prefer to reduce the storage/memory foot prints at the cost of loosing tolerable recall.
What solution would you like?
We could provide Byte sized vectors that can use one Byte per dimension instead of current 4 Bytes using the ByteVector feature of Lucene. By providing quantization techniques we could let the floats convert to Int[-128 to 127] at loss of some precision and hence provide reduction to storage and memory requirements

If you are interested in this feature, please do a +1. If possible please leave a comment about your usecase.


Hide Injector from public API

Karyon.start() returns a LifecycleInjector that extends Guice's Injector.  This poses two issues,

It leaks Guice's API (we also leak Guice's API with support for Module's)
It exposes the Injector to the user.  This makes it possible for the user to use the Injector directly outside of the scope of DI which makes application code dependent on Guice API, something we are trying to avoid in making executable code agnostic of the DI framework.  Also, as a best practice all application code should run within the context of the DI framework.

To solve this we could rename LifecyleInjector to KaryonContext,
public interface KaryonContex {
    void awaitTermination();
    void shutdown();
    void addListener(LifecycleListener listener);
}

3.x branch no longer under development


dvc folders for data added

Hello @g4challenge ,
as the first step regarding the data pipeline, I would like to integrate the data folder into the project. In my conception, the subfolders will be versioned by dvc thus being excluded from git using the .gitignore file. Is this first step okay for you?

@renatofnc - please move this dvc tracking to the for now internal experiment project on gitlab - this repository should only allow for data access - data usage and storage should be in the GitLab repository.