iOS 12 issues - reported by people

Nothing I experienced but many people are reporting:

ldrestart causes a respring loop & then panic
bootloops
stuck on step 27 (airplane mode fixes it apparently?)
^ that's it for now

Just wanted to make a centralized place for discussing those issues

for step 27 try again and for me the 3rd time it worked

Seems to happen when the device is hot
Happens due to downloads OTA file and I already warned people about that
No clue but it seems like restating fixes it

Happens due to downloads OTA file and I already warned people about that

According to them, they had no updates downloaded @pwn20wndstuff

According to who?

I don't have any OTA update stored on my device. It was blocked by your b28 to atleast SSH and FILZA into my phone via root.

Is there a proper way to explain this directly to you, I have images on my twitter handle: here: https://twitter.com/TempAccountNull/status/1099077402762928129

Is there a proper way to explain this directly to you, I have images on my twitter handle: here: https://twitter.com/TempAccountNull/status/1099071405021376516

@pwn20wndstuff everyone in /r/jailbreak said so

iPad Pro 10.5 12.0 no OTA, no prior jailbreak attempts with other tools, bootloop. Got as far as system snapshot renaming and never came back after that. Awaiting download of ipsw to restore however its taking a while as I'm on 4G at the minute, will try again when done if the beta signing window hasn't closed by the time this download eventually finishes! 7+ ran without issue though.

device shut down after enabling tweaks

Wifi is disabled when it works

Wifi is disabled when it works

this same thing happens to me. wifi switch is greyed out in CC and settings, but rebooting phone re-enables it without issues.

Wifi is disabled when it works

this same thing happens to me. wifi switch is greyed out in CC and settings, but rebooting phone re-enables it without issues.

Could you specify? Does wifi work after reboot after you jailbreak or is it in an unjailbroken state? I am having the issue where wifi will not allow me to enable it.

Enable restore rootfs in the setting and re-run the jailbreak. It worked for me

I fixed it by disabling reload system daemons but i'm not sure if there's a better way to fix it

@jakeajames @pwn20wndstuff maybe airplane mode fix stuck on step 27, i have try for 5 times on ios 12.1.1 ip6s with airplane mode on and device succcessfully jailbroken.

@pwn20wndstuff it also appears that people who got bootlooped had OTA updates completely broken, they didn't have one downloaded, but going to software update settings throwed them an error like "cannot request" or something.

@jakeajames my updates were disabled via Unc0ver using one of the initial releases.


Checkmark for removing the "bad language" embed

Adding a checkmark to be able to dismiss the message would make it possible for the author to remove it upon reading. This would clutter the chat history less.
The next step could be to check if the message which contained bad language was edited and the bad word was removed.
Depending on how many messages are edited every minute this may be a bad idea tho.
Image from Discord:

That's a great idea!
We could have the bot react to the message with a ✅  and if the user reacts with that, the embed disappears
OR, we could leave it up to the user and not react with it beforehand(though that might lead to ppl not knowing about this feature)

@TECHNOFAB11 removing the message to reduce clutter is a great idea 👍 ! But perhaps we should be cautious with how this is done. If the user doesn't take action and simply reacts with an emoji, resulting in the message going away, this becomes a workaround to the bot's warning.
Also, the user can edit and change its message to use words different from the recommended ones. So I think we should run the Alex bot on the edited string again, instead of just checking if the recommended words replaced the previous flagged word.

Depending on how many messages are edited every minute this may be a bad idea tho.

Sorry, I didn't understand. Could you elaborate on why this would be a bad idea in the scenario you mentioned?

@TECHNOFAB11 removing the message to reduce clutter is a great idea 👍 ! But perhaps we should be cautious with how this is done. If the user doesn't take action and simply reacts with an emoji, resulting in the message going away, this becomes a workaround to the bot's warning.
Also, the user can edit and change its message to use words different from the recommended ones. So I think we should run the Alex bot on the edited string again, instead of just checking if the recommended words replaced the previous flagged word.

Depending on how many messages are edited every minute this may be a bad idea tho.

Sorry, I didn't understand. Could you elaborate on why this would be a bad idea in the scenario you mentioned?

Also, the user can edit and change its message to use words different from the recommended ones. So I think we should run the Alex bot on the edited string again, instead of just checking if the recommended words replaced the previous flagged word.

That's a great idea!
I think we could fetch the old content and new content, once a message is edited.
We could run the old content with alex and check in new content has no errors.
Though not sure how we'll keep track of the bot's embeds and edit them

Also, the user can edit and change its message to use words different from the recommended ones. So I think we should run the Alex bot on the edited string again, instead of just checking if the recommended words replaced the previous flagged word.

That's a great idea!
I think we could fetch the old content and new content, once a message is edited.
We could run the old content with alex and check in new content has no errors.
Though not sure how we'll keep track of the bot's embeds and edit them

perhaps we could use the db to store:

wrong_message_id
embed_message_is

I think the rest of the data can be found using those two

perhaps we could use the db to store:

wrong_message_id
embed_message_is

I think the rest of the data can be found using those two

@BOLT04

Sorry, I didn't understand. Could you elaborate on why this would be a bad idea in the scenario you mentioned?
It probably isnt, i just often times forget how powerful (websocket) connections and handling can be :D same reason why i often times think that databases cant handle stuff im planning (they definetely can handle 10x the stuff, i just always forget that or so :D)

@BOLT04

Sorry, I didn't understand. Could you elaborate on why this would be a bad idea in the scenario you mentioned?
It probably isnt, i just often times forget how powerful (websocket) connections and handling can be :D same reason why i often times think that databases cant handle stuff im planning (they definetely can handle 10x the stuff, i just always forget that or so :D)

the idea is good, but I do not think the author should be able to react and have the bot response removed, because most people will just remove it without updating their message - we have seen people not update messages most of the time. I like the idea of having the bot recheck after the message is updated, then if so removing the bot response. We could keep this simple and avoid the DB by keeping it in memory - worst case if the bot is restarted / redeployed, the recent bot replies will not get removed. But I don't see this to be an issue, because the bot responses are getting less as people learn and we config  the AlexJS more.

the idea is good, but I do not think the author should be able to react and have the bot response removed, because most people will just remove it without updating their message - we have seen people not update messages most of the time. I like the idea of having the bot recheck after the message is updated, then if so removing the bot response. We could keep this simple and avoid the DB by keeping it in memory - worst case if the bot is restarted / redeployed, the recent bot replies will not get removed. But I don't see this to be an issue, because the bot responses are getting less as people learn and we config  the AlexJS more.

If we are voting, I am in camp "leave the message and only remove after the offending word is changed" - if that's even a camp to vote for. 😄

If we are voting, I am in camp "leave the message and only remove after the offending word is changed" - if that's even a camp to vote for. 😄

Could we set up something like an on message update event listener, to see if the message was edited?

Could we set up something like an on message update event listener, to see if the message was edited?

Could we set up something like an on message update event listener, to see if the message was edited?

@Vyvy-vi Here it is 😃: https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-messageUpdate.
Now we have access to the oldMessage and newMessage so the function that handles this event can recheck the new content with Alex. I agree with @eddiejaoude and we can start with a map in memory where the key is the ID of the message that caused the warning, and the value is the message id of the warning (the solution proposed here)

Could we set up something like an on message update event listener, to see if the message was edited?

@Vyvy-vi Here it is 😃: https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-messageUpdate.
Now we have access to the oldMessage and newMessage so the function that handles this event can recheck the new content with Alex. I agree with @eddiejaoude and we can start with a map in memory where the key is the ID of the message that caused the warning, and the value is the message id of the warning (the solution proposed here)

I think this is still needed, stalebot

I think it would be better if on message update, it rechecked the message and either do nothing or remove the warning - having people vote on it I think would not go well


No finder for exiv2, Non-Trivial-Linking, Missing WXMP

Would be good to providea finder. Since it's hard to manage linking of libexiv2.a easily. It reports WXMP missing. Have no idea what is that. It's good, that out-dated ubuntu containers have something working from repos.
Linux problem, no idea about windows, mac osx.

Hi @nartes, thank you for posting the issue, does the issue still occur? I installed exiv2 successfully with Ubuntu Server 18.04 and VCPKG latest source. Can you provide related log for this issue?

~/vcpkg$ ./vcpkg install exiv2
The following packages will be built and installed:
/    exiv2[core]:x64-linux
/  * expat[core]:x64-linux
/  * gettext[core]:x64-linux
/  * libiconv[core]:x64-linux
Additional packages (*) will be modified to complete this operation.
Starting package 1/4: expat:x64-linux
Building package expat[core]:x64-linux...
-- Downloading https://github.com/libexpat/libexpat/archive/R_2_2_6.tar.gz...
......
Building package exiv2[core]:x64-linux... done
Installing package exiv2[core]:x64-linux...
Installing package exiv2[core]:x64-linux... done
Elapsed time for package exiv2:x64-linux: 35.46 s
/
Total elapsed time: 44.83 s
/
The package exiv2:x64-linux provides CMake targets:
/
find_package(exiv2 CONFIG REQUIRED)
target_link_libraries(main PRIVATE xmp exiv2lib)


Support HttpClient and Interceptors

Not exactly sure if it is this simple but if you could change to use new HttpClient class (old http deprecated in Angular 5) then I believe that interceptors can be used and requestOptions is not necessary.  I'm using interceptors for auth headers and it would be nice that it just worked.

duplicate of #296


Fix protocol specification in node packages.

This PR is a solution to Issue #25361 .
Add HTTPS protocol selection to v8-profiler git repository.

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

This must also be changed in the source which is package.json. Then there is also other modules that come from github


ipc: silence warnings when peer closes its socket

Sometimes, on shutdown, we see "errors" like:
(WebKitWebProcess:2): WPE-FDO-WARNING **: 15:50:46.723: Failed to send message 67 to socket: Error sending data: Broken pipe
This is race is expected, so let's not clutter our logs with it.

LGTM

Thanks @mcatanzaro for the patch and @zdobersek for the rubber-stamping :smile:


Axes [breaking change]

Use axes instead of 1:size(z,1)
which is slightly breaking because default axes behavior changes for OffsetArrays,
but in a sensible way.
Had to use collect because currently heatmap throws error for OffsetArrays.IdOffsetRange
using Plots: heatmap
using OffsetArrays
x = OffsetArray(rand(5,3), (-2,-1))
heatmap(x)

Returns:
Error showing value of type Plots.Plot{Plots.GRBackend}:
ERROR: DimensionMismatch("new dimensions (6,) must be consistent with array size 15")

@JuliaRegistrator register()

Comments on pull requests will not trigger Registrator, as it is disabled. Please try commenting on a commit or issue.


Added service principle for storage user delegate key

Storage live tests failed for using incorrect service principle key.
Updated the key.
Failed pipeline:
https://dev.azure.com/azure-sdk/internal/_build/results?buildId=96757&view=logs&j=3f0b3bd8-2d88-59b8-ec21-d9a54670d8fb
Tested in local and passed after the update.

Just need to match the name of the variables to what is being loaded in the test.

Merged this one to check whether it fixed the storage live tests.


Support added for RPi2

It uses the configuration Kernel bcm2709 the same as RPi3 and RPi02W.
The main difference is the arch version: a7 (RPi2) instead a53 (RPi3/RPi02W)

LGTM, built locally pi2 without issue. Not able to test final image because I don't have a pi2 device.


Adds Delete to Identity Manager

When a record is removed, the identity manager currently retains the id with a value of true. When trying to revive the record, mirage gives an error like: Attempting to use the ID 1, but it's already been used. I'd like the ability to reinstate the object that was deleted (via undo or some action) and use the same id.

@samselikoff any feedback on this?

Sorry, got busy & have a bit of a backlog of Mirage issues. Thx for the ping.
Could I ask the use case? I'm just curious because this is modeled after how "actual" dbs work.

A lot of times we soft-delete records. So, we will use destroyRecord to fire off a request to the server to delete. The record will be marked as deleted in the database. If the user happened to delete the record by accident, they can undo the change. By undoing, we remove the deleted flag in the db and send the record back to the front-end with the same ID.

Actually my use case was different. If you delete a user and then you attempt to create a new one, it exploded with the error above.
I was under the impression that somehow mirage was keeping a count of the last id assigned to records of a collection, but that somewhere else when you create a records the id was something like collectionName.length, so deleting one record meant that the length was diminishing but the lastId wasn't, so the next creation failed.
Maybe I have an entirely different issue, I'll try to check it.

If this is true this is definitely a bug
On Wed, Jul 13, 2016 at 3:15 AM Miguel Camba<EMAIL_ADDRESS>wrote:

Actually my use case was different. If you delete a user and then you
attempt to create a new one, it exploded with the error above.
I was under the impression that somehow mirage was keeping a count of the
last id assigned to records of a collection, but that somewhere else when
you create a records the id was something like collectionName.length, so
deleting one record meant that the length was diminishing but the lastId
wasn't, so the next creation failed.
Maybe I have an entirely different issue, I'll try to check it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/samselikoff/ember-cli-mirage/pull/799#issuecomment-232275275,
or mute the thread
https://github.com/notifications/unsubscribe/ACyXCvjp9NldVTjGVUkX0iO6zS5LLFzFks5qVJCSgaJpZM4JFJPG
.

@ryanpatrickcook I think we should make this opt-in, because otherwise if you server.create() then delete then server.create() again, it would be id 1 both times, which would be confusing and wouldn't mimic most use cases. Right?
I'm more than happy to merge this in if we can make it opt-in... let's make it a setting on the db that you can set in config.js, this.db.allowIdReuse = true;. What do you think?

Closing due to inactivity


Add decorator for firestore operations feature

While developing with firestore and observables, it happens that infinite loops are created
what cannot be easily identified and stopped.
I am looking for a generic way to decorate all firestore observables to log and catch such situations.

This should not be the case at all. Can you share a repro on StackBlitz?

Closing due to inactivity. Feel free to open a new issue that follows the template and provides a stackblitz


Allow setting keys for any security scheme

The use-case I have for this is combination of session cookie and CSRF protection header.
While the cookie is handled automatically by browser, the token can be set manually in the Authentication section. However it can't be set using setAuthenticationConfiguration method, because the conditions only allow certain schemes to be configured.

Rather than preventing valid cases, the method should allow configuring any security scheme, even if it doesn't necessarily make sense.

Agreed, although there is no reason that a user would ever need to have a X-CSRF-Token to actually put in here, and even if they did this is almost certainly the wrong way to set it. There is no reason why we would assume that the Auth header value must be either Basic or Bearer. So it makes sense to pull in this change.

Published in version 2.2.710

Well, that was way faster than I expected, I didn't even manage to write the changelog. :grimacing:

Well, that was way faster than I expected, I didn't even manage to write the changelog. 😬

Honestly I thought about it, but I don't think anyone has been waiting for this feature. Most people don't expose the token input, so it isn't he highest used feature OR they are using Bearer/Basic input. So I didn't think we needed to take that extra step here.


Highlight users and praises

I want to have a board on the homepage where we officially recognize the work of users of Open Specy and highlight any letters of support that we have. There are a ton of examples on tweets that we could pin and some users who have expressed interest in being officially recognized as one of our "spectroscopy experts".

closing with updates in #108


Networking: find better solution for the magic "default" value

Docker uses a special ("default") value for --net if no network is specified.
The "default" value is set as default value in this flag;
https://github.com/docker/docker/blob/73a5393bf3530815a608725fe2546121ccadbfe4/runconfig/opts/parse.go#L83
And was introduced here;
https://github.com/docker/docker/commit/da5a3e6dee80f1f5d4059851e4762ffb0484f7e9
This value was needed because Windows does not have a "bridge" network, so requires some special handling to check if the default (type of) network is used, for example, in hostconfig_windows.go

Should we use a literal "default" string for the default value? Can we use (e.g.) null (no value) as the default?
In the current situation the --net flag shows "default" as it's default value, but (on Linux), the default is actually "bridge", so this is confusing

Just opening this for discussion, not a high-priority case.

If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
For more information about reporting issues, see CONTRIBUTING.md.
You don't have to include this information if this is a feature request
(This is an automated, informational response)

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

/cc @mavenugo (for libnetwork), @jhowardmsft (for windows)

Can this be closed because of #19431?

@aditirajagopal no, that's only to fix a bug; my preference is to not have this special value, but it may need some discussion before that happens

@thaJeztah I agree. It was added during the "experimental" phase of networking when we wanted to also support the user specified default network. But that idea didn't pan out and should have died along with other experimental functionalities that didn't make it.
As you pointed out, windows integration happened around that time and it was carried forward. Now we have a few issues around managing "default" literal. Lets try and remove that in the next release.

I'm assuming this won't make it for 1.11: tentatively removing from milestone.


Apply ethical filtering to the Japanese mC4 dataset

What
The current approach for filtering the Japanese mC4 dataset relies primarily on top-level domains, which is insufficient for eliminating unethical content from the data.

Introduced in 74b1f2b142ee23bd39f1969482df51e73a2096c5.


newtype-generics upper bounds

base-<IP_ADDRESS> depended on by:

newtype-generics-<IP_ADDRESS> (>=4.5 && < 4.8). No maintainer. @jcristovao

hspec-2.1.7 depended on by:

newtype-generics-<IP_ADDRESS> (==1.9.*). No maintainer. @jcristovao

@ddssff This package is being pulled in by cabal-debian

Could you state that as an issue?  :-)

You mean differently than I just did?

Like, a request for action - "X needs a tighter upper bound in Y", "The upper bound of X is too tight in Y", "the upper bound of X conflicts with the lower bound of Y"....

This is the way all Stackage issues get reported. It means: newtype-generic requires old versions of base and hspec, and therefore won't compile with the rest of the snapshot.
I've worked around this temporarily by forcing an old version of cabal-debian. Fixes at this point would be:

Relaxing the upper bounds in newtype-generics
Dropping the dependency on newtype-generics

Thanks - that wording makes it easier to drop in on an issue and resolve it quickly.

If we could pin newtype-generic to version 0.4 (rather than <IP_ADDRESS>) I think everything would work.  The only changes in <IP_ADDRESS> are dependency bounds.

I'll switch things around that way, but the bounds are there for a reason: the test suite does not compile with 7.10. I'd recommend trying to get newtype-generics to fix this upstream.

Hi :)
Sorry for the delay on this! I've uploaded newtype-generics 0.4.1 to hackage, at least here it compiles and tests under GHC 7.10
Thanks for the heads up!

Thanks @jcristovao!


Error: Unable to detect the font style

Running this on some TTF files gives the following error:
[fontname.py] Unable to detect the font style from the OpenType name table in '[FONT-NAME].ttf'.
Unable to complete execution of the script.

Does this mean my TTF files are corrupt or missing something or is this actually a bug? Wondering if I need to use TTX to do the recompile to get the name to change or if there's some changes I might be able to make to fontname.py to fix the issue.
Thanks, and thanks for this cool repo!

The script pulls the OpenType name table ID 2 record from the font and uses that for the "style" definition.
https://github.com/chrissimpkins/fontname.py/blob/880152731626fe32f5d437617cd6a66c8f0ab213/fontname.py#L64-L68
Here is the spec on the name.ID2 field.
Without that it can't update the font family names properly.  Are these fonts that you can share (even privately by email) with me?  If so, I'd be happy to have a look at how the name tables are structured so that we can troubleshoot this.

Thank you, this is super helpful. I'm going to dig in and play with the script when I have time later tonight or tomorrow. The problem I'm running into is:

free fonts that were not created properly that I've collected over the years
fonts we licensed at my job that for some reason have different font names for each of the weights. For example, VST Sans is a our company font. Each weight, like VST Sans Bold shows up as a different font family because  the font name in the OTF file is VST Sans Bold instead of VST Sans.

I could correct these manually, but am looking for an automated script I can run to do this quickly. I am writing a shell script that will go through all my font folders and just re-name all the font family names for each file it finds. I have organized my library into folders with proper names, so that part should work. I just need to figure out how to handle the fonts with missing table info.
I'll let you know what I turn up and also attach some example files that are open source licensed when I check back in. Thanks for your quick reply!

@blakeperdue This should get you started and can be batched on files with the same family name.  You can use this template to work with the subfamily name in the nameID2 record.
Note that it writes the files in place so execute on copies if you intend to keep the unmodified copies.
TTFont comes from the fontTools Python package.  Requires Py3.6+ as of the v4.0.0+ releases of fontTools.
#!/usr/bin/env python3

import sys

from fontTools.ttLib import TTFont

# new family name for nameID 1
FAMILY_NAME = "[DEFINE FAMILY NAME HERE]"

def main(argv):
    for fontpath in argv:
        tt = TTFont(fontpath)

        for record in tt["name"].names:
            if record.nameID == 1:
            	record.string = FAMILY_NAME

        tt.save(fontpath)
        print(f"Updated '{fontpath}' family name to '{FAMILY_NAME}'")

if __name__ == "__main__":
    main(sys.argv[1:]

Wow, this is great. Thank you so much. And a big thanks on the warning about backing up my files. Good call there and something I hadn't thought of, so thank you for preventing me from breaking my stuff 😅

Let me know if you run across any other issues.  Sometimes there are other problems that lead to issues with family grouping depending on your platform/application targets.

So, the issue I had it turns out with many of my font files is:

the family name has the style in it instead of just the family name
the style string is empty (as that info was incorrectly added to the family name)

I modified your script for my purposes to collect the style string from the user and add it to the font file save. So, I can now run it to 1) name the font family in and 2) add the correct style to each file.
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
modified: fontname.py
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@ fontname.py:70 @ def main(argv):
                style = str(record)
                break

        # if no style was provided, get it from the user
        if len(style) == 0:
            print(f"name = {namerecord_list[1]} / file = {font_path}")
            style = input("Enter style: ")

        # test that a style name was found in the OpenType tables of the font
        if len(style) == 0:
            sys.stderr.write(
@ fontname.py:99 @ def main(argv):
            for record in namerecord_list:
                if record.nameID == 1:
                    record.string = nameID1_string
                if record.nameID == 2:
                    record.string = style
                elif record.nameID == 4:
                    record.string = nameID4_string
                elif record.nameID == 6:


Restricting Glacial Lance

Also, sneaking the Porygon ban. I'm a snail to let this mon legal for year when i should've quickbanned it during early dlc1

Thank-you!


[TTS]add multi-band melgan finetune scripts

remove StyleFastSpeech2Inference from fs2_style.py to fastspeech2.py for reuse
The finetune model is training now

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.root seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


export proxy format ip:port

What command would I use to output the proxies in an IP:PORT format?
Not seeing anything in the documentation on it.

Maybe you could not find the command because it simply does not exist?
But you can write it, see the examples.


Rename project and move to IMS organization

Rename the project (new name: openbadges-validator-core) and move to the IMS organization. The other repos in the openbadges organization should be moved as well.

What should we use for the python package name?
from openbadges_validator import *

Yes, that or openbadges_validator_core. Your thoughts?

If we keep the package named openbadges, and situation the validator as openbadges.validator, then we preserve the possibility for including additional functionality in the same package without breaking the validator API... that might have value?

@ViktorHaag interesting idea.
There are 3 hard problems in computer science:

Naming things
Off-by-one errors

Yes. Naming is hard. I always heard it as, "There are two really hard problems in computer science: naming things, cache invalidation, and off-by-one errors." 8)

It's been done! Welcome to IMSGlobal/openbadges-validator-core


LCFS - Develop Pytest Unit Tests for Auth Middleware in FastAPI

Description:
We need to create a comprehensive set of unit tests using Pytest for our newly developed authentication middleware within our FastAPI application. The middleware integrates with Keycloak and uses JWT tokens for user authentication. The objective is to ensure that each branch of the authentication logic is covered, including but not limited to token retrieval and validation, JWKS fetching and caching, user lookups, and error handling.
Acceptance Criteria:

All public and private methods in the UserAuthentication class must have corresponding test cases.
Tests must cover successful authentication, failure due to various reasons (invalid token, expired token, etc.), and correct handling of edge cases.
The JWT token's interaction with Keycloak should be mocked to ensure tests are not reliant on external systems.
Use fixtures to simulate Redis and database sessions.
Test cases must assert the correct HTTP status codes and responses for various scenarios.
Authentication flow must be verified to ensure a user is correctly authenticated through the middleware.
Tests must verify that JWKS caching works as intended and that JWKS is fetched from the cache or endpoint as required.
Ensure the proper creation of user login history records following authentication attempts.
Code coverage should be no less than 90%.

Task Breakdown:

[ ] Set up the Pytest environment with necessary plugins and fixtures for the FastAPI application.
[ ] Mock external services (Keycloak, Redis, AsyncSession).
[ ] Write test cases for the successful path of user authentication.
[ ] Write test cases for token expiration handling.
[ ] Write test cases for handling invalid tokens.
[ ] Write test cases for JWKS fetching and caching logic.
[ ] Write test cases for error handling when the user does not exist or when an identity provider is unknown.
[ ] Write tests for ensuring user login history is correctly recorded.
[ ] Review tests and refactor to ensure readability and maintainability.
[ ] Run tests and validate against the acceptance criteria.
[ ] Document the test cases and their expected outcomes.

# Example Pytest fixture for Redis
@pytest.fixture
def mock_redis(mocker):
    mocker.patch('redis.asyncio.Redis', autospec=True)

# Example Pytest fixture for AsyncSession
@pytest.fixture
def mock_async_session(mocker):
    mocker.patch('sqlalchemy.ext.asyncio.AsyncSession', autospec=True)

# Example test case for successful authentication
def test_successful_authentication(mock_redis, mock_async_session):
    # Setup mock return values for Redis and AsyncSession
    ...
    # Call the authenticate method
    ...
    # Assert the user is authenticated and a proper AuthCredentials object is returned
    ...

# Example test case for expired JWT token
def test_expired_jwt_token(mock_redis):
    # Setup mock return value for Redis containing the JWKS data
    ...
    # Pass an expired token to the authenticate method
    ...
    # Assert an HTTPException is raised with status code 401
    ...

# Example test case for user login history recording
def test_user_login_history_recorded(mock_async_session):
    # Setup mock AsyncSession with a user object
    ...
    # Trigger a successful/unsuccessful authentication attempt
    ...
    # Assert that a UserLoginHistory entry is created with the correct details
    ...
`

Hey team! Please add your planning poker estimate with Zenhub @AlexZorkin @hamed-valiollahi @jig-patel @kevin-hashimoto @prv-proton

Nothing for PO to test


Make an Explode Node

The KGE has a node that can Dissolve multiple polygons into a single Polygon/Multi-Polygon.  Please create a node that can Explode a polygon, Explode multi-part geometries into multiple single geometries., via the GeoPandas Explode function.
https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoDataFrame.explode.html

Just found the Multipart To Singlepart Node, that does exactly this.


Cardano Indonesia Meeting #12: 28 March 2022 until 03 April 2022

Cardano Indonesia Meeting: 28 March 2022 until 03 April 2022

Last Meeting - #30
Next Meeting - #33

Attendees
Andreas Sosilo (@andreassosilo)
Andre Cahyadi (@andrecahyadi)
Andy Sibuea (@zicozibu)
Dion Setyotomo (@dionsetyotomo)
Yan Tirta (@YanTirta)
Xavier Daniswara(@syarbel)
Reviewing Tasks

Polling for new team meeting schedule #11 by @danivideda
Request new sub-category for Cardano Forum #26 by @andreassosilo

Meeting Topics
Cardano Forum

Request sub-category "Catalyst Indonesia" under "Bahasa Indonesia" in Cardano Forum by @andreassosilo -> Deadline: Tuesday, 05 April 2022

Eastern Town Hall Indonesia

vCA phase in Catalyst Fund 8
Next Eastern Town Hall Meetup will be IdeaFest Reels -> Saturday, 09 April 2022
Don't forget to prepare for "IdeaFest Reels" in Eastern Town Hall for the proposers in Fund 8 (09 April 2022) and also IdeaFest Global in Global Town Hall
Registration Eastern Town Hall IdeaFest Reels (only 20 seats available) -> priority for Eastern Town Hall Community proposers
Proposal from Indonesia & Eastern Town Hall (see below):

👉 Proposal Fund 8 yang dibuat oleh komunitas Indonesia:

Leveling Up Cardano Indonesia IG
link: https://cardano.ideascale.com/c/idea/396542
SPO Delegators Communal CNFT
link: https://cardano.ideascale.com/c/idea/396662
Cardano Hub Indonesia - Video Series
link: https://cardano.ideascale.com/c/idea/401709
Loyalty Point for Developers
link https://cardano.ideascale.com/c/idea/405253

👉  Eastern Town Hall

Eastern Town Hall Team Operation - https://cardano.ideascale.com/c/idea/403802
Connecting Asian Voter and Proposer - https://cardano.ideascale.com/c/idea/404182
Onboarding East Asia Today - https://cardano.ideascale.com/c/idea/404177
Grow East Asia, Grow Cardano - https://cardano.ideascale.com/c/idea/399482
Eastern Catalyst School - https://cardano.ideascale.com/c/idea/405311

Eastern Catalyst School

Take a break

Cardano Hub Indonesia - Workshops

Next workshop: "Self-sovereign Identity, DID and Atala PRISM" -> 03 April 2022
Waiting for the 2nd batch of fund from<EMAIL_ADDRESS>-> 07 April 2022
Flyer for Atala PRISM workshop - 03 April 2022 by @YanTirta (DONE)
Flyer needs to be edited to 16:00-17:30 for April's workshop
For "Cardano Ecosystem - April 2022" -> Discuss about Milkomeda and update in Cardano Ecosystem
For 15 May 2022: we will do workshop -> "Wallet & Delegation" + AMA (Ask Me Anything) -> anyone could ask and answer. And try to ask Budi Isman (Blue Korintji) / Shunsuke Murasaki (Emurgo Indonesia) / Suryono (Alko Indonesia - https://alko.id/) to speak in AMA
@dionsetyotomo : sent invitation to Blue Korintji
For June/July, already ask Andrew Ponto (SPO Kawanua Pool) to give workshop about how to setup stake pool in Cardano

DID for Cardano Indonesia Community

@andreassosilo will create presentation for the workshop -> will try to finish it by tomorrow
Doing research with Daniel Bonfill
Atala PRISM workshop on 03 April 2022 -> presentation, meetup event, etc.

Community Web Portal in Bahasa

Test backend
Final test at 15 April 2022
Prepare articles + Google Forms : https://forms.gle/AaHU5M9jzTnJh6Zv8
@andreassosilo needs to submit article about Cardano tech & @YanTirta needs to submit articles about Catalyst (Governance)

Collaboration

Collaboration with TRIV & PINTU
PINTU: rescheduled event to 06 April 2022 at 17:00 WIB
Please add more information for PINTU event with Cardano Indonesia Community: https://docs.google.com/spreadsheets/d/1M9h401xS00NpgbUVXQKFIT9dGyeeN4jRBKk9YtwEGDI/edit?usp=sharing
About TRIV -> contact with @dionsetyotomo @YanTirta
Discussion with "Dokter Peduli" -> @andrecahyadi had discussion with Ibu Mimy -> please create presentation about "Cardano Indonesia Community" -> waiting proposal from Cardano Indonesia (@YanTirta & Andrew Ponto)

Proposal Cardano Indonesia for Catalyst Fund 9

Title: "Cardano Indonesia Team Operation"
Ask funding for our operational in Cardano Indonesia Hub
Prepare the proposal from now
@YanTirta & @dionsetyotomo : create Google Sheets for our draft proposal, try to use Eastern Town Hall Team Operation proposal
Example proposal from Eastern Town Hall Team Operation: https://docs.google.com/document/d/1lfgePHdJyEW2pDZ8EnL2wCjuJ7wgBQHc/edit?usp=sharing&ouid=116783838297278560675&rtpof=true&sd=true
The core team must be compensate -> meeting: 15 USD/hour for example
@dionsetyotomo will create matrix
Range from admin (30 USD/hour) until developer (100 USD/hour) -> example from other proposal in Catalyst
Need brainstorming on next meeting
Put maximum cap for contribution each month

Cardano Indonesia Treasury Wallet

We can use both: $cardano_id and $cardano.id -> for donation (ADA or NFT)

Team Update

Migration from Whatsapp Group to Telegram Group by @dionsetyotomo (DONE)
Telegram Voice -> Cardano Indonesia or Eastern Town Hall Indonesia -> live event (spontaneous)

Done. Closed.


Implement a wrapper function

A wrapper function can be used in case when the inner function must succeed and errors are considered as programming mistakes.

The same approach is used in some of the packages in standard library. See:

https://golang.org/pkg/html/template/#Must
https://golang.org/pkg/regexp/#MustCompile

You can do that in your code base if it's needed. The library itself shouldn't provide this. It's done like that in other libraries because Go doesn't have generics.


Update to graphql 0.13.0 crashes subscriptions

Update:
Add the following to your package.json and run yarn install. This should fix the problem:
  "resolutions": {
    "graphql": "0.13.1"
  }

After updating to graphql-yoga to 1.2.5 subscriptions are not working anymore because of duplicated graphql version. And a lot of warnings are throwing on yarn installation -> i think that the deps are not compatible with 0.13.0
warning "graphql-yoga ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>- 0.12".
warning "graphql-yoga ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.11.3 || ^0.12.0".
warning "graphql-yoga ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.12.0".
warning "graphql-yoga ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.11.0 || ^0.12.0".
warning "graphql-yoga > apollo-server-express ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.10.0 || ^0.11.0 || ^0.12.0".
warning "graphql-yoga > apollo-server-express > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.11.0 || ^0.12.0".
warning "graphql-yoga > apollo-server-express > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.11.0 || ^0.12.0".
warning "graphql-yoga > apollo-server-express > apollo-server-core ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>|| ^0.11.0 || ^0.12.0".

Cannot use GraphQLSchema “[object Object]” from another module or realm.↵↵Ensure that there is only one instance of “graphql” in the node_modules↵directory. If different versions of “graphql” are the dependencies of other↵relied on modules, use “resolutions” to ensure only one version is installed.↵↵https://yarnpkg.com/en/docs/selective-version-resolutions↵↵Duplicate “graphql” modules cannot be used at the same time since different↵versions may have different capabilities and behavior. The data from one↵version used in the function from another could produce confusing and↵spurious results.

After a rollback to a previous version it works again
my entries in the working version of package.json
"dependencies": {
    "aws-lambda": "^0.1.2",
    "aws-sdk": "2.192.0",
    "bcryptjs": "2.4.3",
    "graphql-yoga": "1.2.4",
    "jsonwebtoken": "8.1.1",
    "prisma-binding": "1.5.7"
  },
  "devDependencies": {
    "@types/bcryptjs": "2.4.1",
    "dotenv-cli": "1.4.0",
    "graphql-cli": "2.13.2",
    "nodemon": "1.14.12",
    "npm-run-all": "4.1.2",
    "prisma": "1.1.3",
    "rimraf": "2.6.2",
    "ts-node": "4.1.0",
    "typescript": "2.6.2"
  }

Same Issue.
"dependencies": {
"bcryptjs": "2.4.3",
"graphql-yoga": "^1.2.5",
"jsonwebtoken": "8.1.0",
"prisma-binding": "^1.5.9"
},
"devDependencies": {
"dotenv": "4.0.0",
"nodemon": "1.14.10"
}

Same. I had to add resolutions<EMAIL_ADDRESS>in package.json and subscriptions don't work correctly

We're looking into this! 🕵

getting a similar error here https://imgur.com/a/nMqHG

Can you all please try to update prisma-binding to the latest version? This should fix the issue.

@schickling Works for me! 💯
Thanks! 🎉 ✨

👋I'm seeing the same error using the typescript-advanced Prisma boilerplate, with latest versions installed.

For everyone still having problems with this, please try the following things if the error still appears:

yarn upgrade-interactive --latest and make sure you're running the newest version of the following packages (if used)

prisma-binding
graphql-yoga
prisma
graphql-cli

rm -rf node_modules
yarn install

@niclone glad it works for you now, reinstalling yarn should actually not be necessary.
Hopefully this all will go a lot smoother for future graphql releases.

@schickling : resintall yarn is not the solution, the solution is to have it UNINSTALLED during prisma init.

I wish I could find the relevant issue but I haven't been able to find it...
From what I remember, the issue is that Yarn tries to install graphql multiple times, at different versions. You'll find that rm -rf node_modules && npm i works perfectly, regardless of what graphql version you have. I'll try to find it again, again

This doesn't work:
yarn upgrade-interactive --latest
rm -rf node_modules
yarn install
yarn dev

I'm still getting the duplicate graphql error.
But this works:
yarn upgrade-interactive --latest
rm -rf node_modules
npm install
yarn dev

or you add to package.json:
"resolution": {
    "graphql": "^0.13.0"
}

But this works:
yarn upgrade-interactive --latest
rm -rf node_modules
npm install
yarn dev

Sounds like you may need to clear yarn's cache
yarn cache clean

Thanks for pointing this out @tobkle. Add the following to your package.json and run yarn install. This should fix the problem:
  "resolutions": {
    "graphql": "0.13.1"
  }

@schickling I am still getting this very issue, even after adding the resolutions property to the package.json.
The only thing that worked for me was downgrading to 1.2.4, anything higher woudl always cause the issue.
I also had to use npm -i instead of yarn as well.

By now all packages have been updated, so with the newest package versions this should now work even without the resolutions addition.

For anyone still running into this, upgrading yarn from 0.27.5 to 1.3.2 fixed it for me.

I'm also getting this issue here:
https://github.com/apollographql/subscriptions-transport-ws/issues/411

Getting this issue after using typescript-advanced boilerplate and following part 1 of the guide for deploying with now. I then realized that I needed to check out part two as well. Deploying with now --dotenv .env worked

Hey, @Urigo from The Guild here!
You might know us from projects such as graphql-code-generator, envelop or graphql-tools.
For a long time we thought that the Javascript ecosystem is still missing a lightweight cross-platform, but still highly customizable GraphQL Server.
In the past the awesome Prisma team took on that great challenge and now we are happy to announce that we are continuing them and just released GraphQL Yoga 2.0 - Build fast, extensible, and batteries-included (Subscriptions, Serverless, File uploads support) GraphQL APIs in Node.js 🚀
We have been working a long time on version 2.0 and have been using it in our clients projects for a few months now and shared a couple of alpha cycles here.
Thank you all for your feedback and suggestions, you made this release possible!
Please try Yoga out again, give us feedback and help us spread the word on the new release!

Announcement and blog post
https://github.com/dotansimha/graphql-yoga/issues/704
https://www.graphql-yoga.com/


fix: link to repository in package.json

Currently no link on https://www.npmjs.com/package/jest-light-runner 🙀

Whops, thanks!


Show image in cells

Hi,
I want to show image inside a cell, How it can be possible ?

Hey @mmdsharifi, a couple of steps to achieve this:

set your column (where you want to show an image) type to type: 'html';
then use valuePrepareFunction on this column to preprocess the data inserted into a cell:

valuePrepareFunction: (value) => { return `<img scr="value" />` }

That's it, let me know if you have any other questions.

Hi,
is chekckbox type of colomn now supported?
In docs I see comlom.type settings that can be html and editor.type  that can be checkbox
but when  I set for a colomn:
enabled: {
title: 'Enabled',
filter: false,
type: 'html',
valuePrepareFunction: (value) => { return <input type="checkbox" name="enabled" value="value" > },
editor: {
type: 'checkbox'
}
},
it shows just nothing in that colomn, no content.
And when I click edit, it shows my boolean value as if an input type="text"
Am I missing something?

@nnixaa i tried your code given above but was unable to access the image.just a logo of image is coming over there.

@nnixaa Hi, I have been using ng2 smart table in my project to display the customer's details. I am unable to insert image in the cells. I have tried the above method but couldn't get it working. Is there any work around?

Hey @nnixaa I am trying to add buttons and images in the table. I tried the method you have mentioned above. I was unable to display images in the table. Link for my plunkr is: https://plnkr.co/edit/lGP4XsO64gjgnTg9Qpvn?p=preview . Kindly help me fix the issue.

I got it done. We have to create renderComponents for each element we insert into the table cells.
Here is the plunkr for the same: https://plnkr.co/edit/lGP4XsO64gjgnTg9Qpvn?p=preview

they show me this error (property) valuePrepareFunction: (img: any) => {
return: string;
valuePrepareFunction: (image) => { return  }

can i return modal window with value of this cell?

valuePrepareFunction: (image) => { return  }
==> src
not
==> scr

Hi,
Looks like your approach should be working.
But the valuepreparefunction is unable to parse the url of the picture.
I get the 404 (NOT FOUND) error. Could you please have a look?
http://localhost:4200/${picture} 404 (Not Found):
This is my column -
status: {
title: 'Status',
type: 'html',
valuePrepareFunction: (picture:string) => {
console.log(picture);
return '';
},
filter: false,
},
the string is printed as expected but the image is not found.
please suggest!

Hi,
Your approach working fine. But I need to display an image which is getting from an api end point, which returns a base64 string.
I tried to call the service endpoint from the valuePrepareFunction and it doesn't show the images in the cell.
ItemImageId: {
        title: 'Image',
        type:'html',
        valuePrepareFunction: (value) => {
          this.getItemImage(value).then(
            async a=>{
              console.log(a) ;
              return a ;
            }) },
        width: '5rem',
        filter: false
      },

getItemImage(imageId)
  {
    var image  =  this.itemService.getItemIconImage(imageId).subscribe(data=> {
      return `<img src=${data.image}  onerror="this.src='./assets/img/default-img-300x180.gif'  class="rounded-circle UserProfileimg" width="40" /><br>`;
    });
  }

Can you please add any suggestions ? @nnixaa

picture: {
title: 'Picture',
type: 'html',
valuePrepareFunction: (picture:string) => { return ; },
},
This works for me, I hope it's useful.

picture: {
title: 'Picture',
type: 'html',
valuePrepareFunction: (picture:string) => { return ; },
},
This works for me, I hope it's useful.

Thanks it's working bro @oskcolorado

Hi,
Your approach working fine. But I need to display an image which is getting from an api end point, which returns a base64 string.
I tried to call the service endpoint from the valuePrepareFunction and it doesn't show the images in the cell.
ItemImageId: {
        title: 'Image',
        type:'html',
        valuePrepareFunction: (value) => {
          this.getItemImage(value).then(
            async a=>{
              console.log(a) ;
              return a ;
            }) },
        width: '5rem',
        filter: false
      },

getItemImage(imageId)
  {
    var image  =  this.itemService.getItemIconImage(imageId).subscribe(data=> {
      return `<img src=${data.image}  onerror="this.src='./assets/img/default-img-300x180.gif'  class="rounded-circle UserProfileimg" width="40" /><br>`;
    });
  }

Can you please add any suggestions ? @nnixaa

You may have already solved the problem, but I managed to upload the photo like this:
    valuePrepareFunction: (picture) => {
      picture= `data:image/jpeg;base64,${picture}`;
      return  this.sanitizer.bypassSecurityTrustHtml(`<img src="${picture}" height="50" width="50"/>`);
    }

I need to use
    private sanitizer: DomSanitize in constructor

But I still need to deal with the error scenario when receiving the photo

poster: {
title: 'Round Poster',
type: 'html',
valuePrepareFunction: (poster) => { return  }
},

hi
i want to add link in cell in this link there is video but the video dosen't work
type: {         title: 'Type',         valuePrepareFunction: (type) => {           if(type==="A"){             return  'Action';           } else {             return  'Error';           }         }        },       videoName: {         title: 'video',         type: 'custom',         renderComponent: LinkVideoComponent,         onComponentInitFunction(instance) {           instance.save.subscribe(row => {             alert(${row.videoName} !!!!)           });         }       },
LinkVideoComponent:
`export class LinkVideoComponent implements OnInit,ViewCell {
renderValue: string;
@Input() value: string | number;
@Input() rowData: any;
@Output() save: EventEmitter = new EventEmitter();
@ViewChild('videoPlayer') videoplayer: ElementRef;
@ViewChild("content") modalContent: TemplateRef;
constructor(private modalService: NgbModal) {}
ngOnInit() {
this.returnLinkVideo();
}
returnLinkVideo() {
this.renderValue = '' + this.value + '';
}
onClick() {
this.save.emit(this.rowData);
this.modalService.open(this.value, { size: 'lg'});
this.videoplayer.nativeElement.play();
}in Html
{{ renderValue }}`
the video in o folder in the same folder project i didn't know how to get it, any help


[5.9] Correctly print swift Int property as NSUInteger when it overrides an NSUInteger objc property.

Explanation: Clang rebranch started reporting certain types to be wrapped in ElaboratedType instead of the underlying TypedefType, which caused the logic to break for printing NSUInteger instead of NSInteger when a Swift Int method/property override an Obj-C decl that used NSUInteger.
Scope: Narrow; affects the Obj-C header generated for a Swift class that subclasses another Obj-C class
Risk: Low; this fixes a regression in the 5.9 branch after the rebranch
Reviewers: @egorzhdan
Issue: rdar://102629628
Original pull request: https://github.com/apple/swift/pull/66011

CC: @beccadax

Thank you @allevato !


Sort active grants DESC

Thanks Shiv! Just moved the "sorting" function below the empty check, which makes more sense.


fixRuntimefilter pushdown through TopN or Window bug

Proposed changes

runtime filter should not push down through topN
runtime filter should not push down through window if target slot is not partition key

Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

master pr  #24397


Stylex 0.4.1 peer dependency

Thank you so much for taking the time to make the astro-stylex plugin available.
Facebook has recently released a 0.4.1 release of stylex, with some really great improvements. As far as I can tell, there are no breaking changes. https://stylexjs.com/blog/v0.4.1/
Would you please consider upgrading your peer dependency declaration to make astro-stylex compatible with the latest release? https://github.com/lilnasy/gratelets/blob/main/packages/stylex/package.json#L31
Thanks in advance.

@enmanuelr Thanks for the heads up!
The new version passes the tests - across the 4 frameworks 🥳
Do you want to open a PR?
It would be a matter of changing the package.json, running pnpm i to update the lockfile, and running pnpm changeset to say there was a version update. The message will appear to users here: CHANGELOG.md.

<EMAIL_ADDRESS>is now out, thanks for the help @enmanuelr!


Fix podman image sign help output

Adjust the help output to mention podman image sign instead of just
podman sign.

/approve

LGTM
@TomSweeneyRedHat @vrothberg @giuseppe @mheon @baude @QiWang19 PTAL

LGTM

Saving the planet, one force merge at a time.

/lgtm


test: compatibility with k8s v1.24

Fixes no issue
Description

adding compatibility test with Kubernetes v1.24

Checklist

[x] PR is rebased to/aimed at branch develop
[x] PR follows Contributing Guide
[x] Added tests (if necessary)
[x] Extended README/Documentation (if necessary)
[x] Adjusted versions of image and Helm chart in values.yaml and Chart.yaml (if necessary)

Codecov Report

Merging #609 (e9a7337) into develop (165f518) will increase coverage by 3.16%.
The diff coverage is 97.04%.

@@             Coverage Diff             @@
##           develop     #609      +/-   ##
===========================================
+ Coverage    93.52%   96.69%   +3.16%
===========================================
  Files           15       22       +7
  Lines          633     1179     +546
===========================================
+ Hits           592     1140     +548
+ Misses          41       39       -2

Impacted Files
Coverage Δ

connaisseur/__main__.py
0.00% <0.00%> (ø)

connaisseur/kube_api.py
87.50% <66.66%> (ø)

...naisseur/validators/notaryv2/notaryv2_validator.py
80.00% <80.00%> (ø)

connaisseur/flask_application.py
92.63% <92.63%> (ø)

connaisseur/validators/static/static_validator.py
93.75% <93.75%> (ø)

connaisseur/util.py
95.45% <95.45%> (-4.55%)
:arrow_down:

connaisseur/logging_wrapper.py
96.15% <96.15%> (ø)

connaisseur/config.py
97.29% <97.29%> (ø)

connaisseur/alert.py
97.97% <97.97%> (ø)

...naisseur/validators/notaryv1/notaryv1_validator.py
98.30% <98.30%> (ø)

... and 12 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 f73314f...e9a7337. Read the comment docs.


[BUG]

ksp 0.1.1
spacewarp 1.0

Bug Information
mods work however appbar additions don't work
Steps to reproduce the behavior: cannot reproduce / cannot fix
Expected behavior
appbar appears without extra popout button
https://discord.com/channels/1078696971088433153/1078841771771056280/1085998544588115999 & https://discord.com/channels/1078696971088433153/1078841771771056280/1085998040600547418

Stage Info bug, not Space Wadp


No required 'packaging' module installed

Installed Jiraffe using pip:
pip install jiraffe
Tried to run and got import exception:
C:\Python37\Scripts>jiraffe Traceback (most recent call last):   File "c:\python37\lib\runpy.py", line 193, in _run_module_as_main     "__main__", mod_spec)   File "c:\python37\lib\runpy.py", line 85, in _run_code     exec(code, run_globals)   File "C:\Python37\Scripts\jiraffe.exe\__main__.py", line 4, in <module>   File "c:\python37\lib\site-packages\jiraffe\__main__.py", line 5, in <module>     from .recon import request, isjira, getversion   File "c:\python37\lib\site-packages\jiraffe\recon.py", line 8, in <module>     from packaging import version ModuleNotFoundError: No module named 'packaging'
I think something in pip manifest should me changed to install packaging module

Can you update your pip version,
pip3 install --upgrade pip

And then try to install packaging, if it's not already present.
pip3 install packaging

After manually installing "packaging" everything works fine

still doesn't work.
with pip3 getting command not found
with pip getting syntax error of some sort


I am trying to install media_kit but I get the following error: media_kit: arm64-v8a JAR verification failed.

Where:
Build file 'C:\Users\pc\AppData\Local\Pub\Cache\hosted\pub.dev\media_kit_libs_android_video-1.3.6\android\build.gradle' line: 102

What went wrong:
A problem occurred evaluating project ':media_kit_libs_android_video'.
media_kit: arm64-v8a JAR verification failed.

I have the latest version of Flutter installed.

Build file 'C:\Users\pc\AppData\Local\Pub\Cache\hosted\pub.dev\media_kit_libs_android_video-1.3.6\android\build.gradle' line: 102

What went wrong:
A problem occurred evaluating project ':media_kit_libs_android_video'.

media_kit: arm64-v8a JAR verification failed.

Just see our unit-tests & builds which succeed on our CI.
I won't come to your office or home to fix your internet.

Same error.
How to fix ?


Additional functions for GroupExt

Hello,
Politely requesting bindings for these Fl_Group functions:

Fl_Group::init_sizes()
Fl_Group::sizes()

Hi
I've added init_sizes(). Sizes is deprecated for bounds, but it's protected, so I've added a Rust implementation which returns the bounds Vec of tuples (left, upper, right, bottom).

Thanks, sounds good.
Sorry, but a couple more:

Fl-Group::add_resizable()
FL-Group::resizable(Fl_Widget*o) <-- is this the same as the current fn resizable<W: WidgetExt>(&self, widget: &W)?

Yeah resizable is the same, I ‘ll update the docs.


Closures

Does sparklyr have facilities for creating closures and/or is it possible to pre-load existing R packages to the cluster before execution?

@git-caprice not yet, but soon. Please keep an eye to this issue for updates: https://github.com/rstudio/sparklyr/issues/81 - Closing this one at the moment.


Add decode method for Field

Description
Add decode method for Field class

For contributor use:

[x] Targeted PR against master branch
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the standards mentioned here.
[ ] Updated relevant documentation
[x] Re-reviewed Files changed in the Github PR explorer
[ ] Added appropriate labels

These changes have been incorporated into the Flow fork of this repo: https://github.com/onflow/flow-jvm-sdk, and are included starting from v 1.0.1.


Destroying scope should only remove its own defaults

Dynamically instantiated maps's defaults are removed when other maps are removed. eg. using ng-if to toggle displaying of different tabs.

Similar implementation to https://github.com/angular-ui/ui-leaflet/pull/322
npm test runs well locally. Build error is probably due to one of the package.json dependencies. I'm still unable to isolate which dependencies is causing the problem.

Please check this commit, https://github.com/angular-ui/ui-leaflet/commit/fee0175b68d9a754a46196d81173e360c5a97fbf,
all efforts will be focused on the version for Leaflet 1.x
Thanks.


[Question] regarding encryption about chain series

Hi,
Akkariiin, thank you for your hard work.
I have a question about chain series. According to breakwa11, the data is already encrypted with RC4 method. However, if the setting of the server we use, for example, 'chacha20' instead of 'none', will the data be encrypted with the new method instead? or this option is totally ignored and the original method is still applied? or the data first will be encrypted with RC4 and then with chacha20? I am a little confused about this setting.

encrypted with RC4 and then with chacha20

thanks


import.meta.url rewrite doesn't work in web worker

Describe the bug
The plugin that rewrites import.meta.url uses window.location which is not available in web workers.
If I am right, I think this happens here: https://github.com/vitejs/vite/blob/d66ea0f420eb7926d927b64e40ecaf83d9388e63/packages/vite/src/node/plugins/assetImportMetaUrl.ts#L55
I believe that using `(window ?? self).location should fix the issue.
Reproduction
Generating WebAssembly with wasm-pack generates a JS file which contains an init() function that contains at the beginning:
if (typeof input === 'undefined') {
    input = new URL('crate_name_bg.wasm', import.meta.url);
}

The workaround is to provide the path directly, like I do here: https://github.com/cedeber/premio/blob/faa64867c913ed183f6941f431d14972e87448e8/app-src/worker.ts
System Info
.

Used Package Manager
pnpm
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/vue-next instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

I can confirm this as I stumbled across this myself, but I would suggest to just use location, which is equivalent to window.location in the browser and self.location in the worker.


Add API functions to start and stop local Monero node

Tests the local Monero node functionality. The test first attempts to stop any instances of the local monero node and check for expected errors. If the local instance is an external process, then the test will print a warning that fully starting / stopping is not tested. Local instance is tested by providing custom MoneroNodeSettings and attempting to connect to it using monerojs.
Resolves haveno-dex/haveno#137

I'm getting an error in the test "Can manage Monero daemon connections" with these 2 PRs, traced from HavenoDaemon.test.ts:398:
 FAIL  src/HavenoDaemon.test.ts (57.514 s)
  ● Can manage Monero daemon connections

    assert.equal(received, expected)

    Expected value to be equal to:
      "http://localhost:58081"
    Received:
      "http://localhost:38081"

    Difference:

    - Expected
    + Received

    - http://localhost:58081
    + http://localhost:38081

      1705 |
      1706 | function testConnection(connection: UrlConnection, url?: string, onlineStatus?: OnlineStatus, authenticationStatus?: AuthenticationStatus, priority?: number) {
    > 1707 |   if (url) assert.equal(connection.getUrl(), url);
           |                   ^
      1708 |   assert.equal(connection.getPassword(), ""); // TODO (woodser): undefined instead of ""?
      1709 |   assert.equal(connection.getUsername(), "");
      1710 |   if (onlineStatus !== undefined) assert.equal(connection.getOnlineStatus(), onlineStatus);

      at testConnection (src/HavenoDaemon.test.ts:1707:19)
      at Object.<anonymous> (src/HavenoDaemon.test.ts:398:5)

I restored the previous behavior which prioritized connecting to the last known monero connection setting. If the connection failed, then attempt to start the local monero node if the setting exists.
Verified both  Can manage Monero daemon connections and Can start and stop local Monero node pass.
I also wanted to run Can complete a trade to test the additional === operator cleanup change I made, however having issues mining blocks with the monero shared test network at the moment.
The interaction between connection manager and local node may need further refinement depending user experience, since if the local node is force killed or stuck on errors then it will fallback and reset to using the connection manager connections but that may not be desired behavior.

If the connection failed, then attempt to start the local monero node if the setting exists.

I'm thinking it would be too automated for the backend to automatically start and connect to a local node if their last used connection is offline and they previously started a local node. They may want to simply select a different node.
It could make sense to automatically start the local node if they last used it and it's offline.

The interaction between connection manager and local node may need further refinement depending user experience, since if the local node is force killed or stuck on errors then it will fallback and reset to using the connection manager connections but that may not be desired behavior.

The connection manager should be independent. If the local node goes offline, the connection manager already supports an option to automatically switch to the next best available connection.
Hope this make sense. Please let me know if I'm missing something.

The connection manager should be independent. If the local node goes offline, the connection manager already supports polling for this and an option to automatically switch to the next best available connection.
I hope this make sense. Please let me know if you think I'm missing something.

Yes, this makes sense. I'll come up with a solution that is cleaner and less surprising for end user.


No module named flask_script.commands during installation

during intalation I get an error:
python manage.py setup_sleepy_puppy
Traceback (most recent call last):
File "manage.py", line 18, in
from flask_script.commands import ShowUrls, Clean
ImportError: No module named flask_script.commands

Did you run into any issues running this command:
python setup.py install

Have you created and activated a virtual environment to install sleepypuppy into?

Hi,
I've found reason, it's missing step with "deactivate" in wiki:
"
Install the required dependencies
python setup.py install
Create database, seed database, create default login with 'admin' user
deactivate
python manage.py setup_sleepy_puppy
"
regards,
Tomasz


No access to remote host name in local.transfer()

Perhaps this is a poor usage pattern, but I have a need to access the remote host name or at least the target name, in transfer() (the files to be transferred are based on the remote hostname or target). In earlier versions I could do this using something like local.flight.flightplan.target.destination (IIRC) but now I don't have that (I could fudge using local._context.target but I am guessing underscore prefixed properties should be treated as private following Unix conventions).
I am wondering if this may be a general need, not just a peculiarity of my usage :-).

See this section in the docs: https://github.com/pstadler/flightplan#accessing-runtime-information
Is this what you're asking for?

For local.transfer() (IIUC) even though there is a remote end, that info is not accessible via the runtime. But I came up with a workaround using plan.runtime.target for my current need. Thank you for the response.

I am bumping up against this issue once again. @pstadler is there an easy way to accomplish this? My guess is not? Because the looping over the target hosts occurs within the local.transfer(), but I thought I'd ask to be sure.

This is a bug. Shouldn't be too hard to fix. Will try to do another release
pretty soon
On 15 May 2017 at 02:55:41, Ravi Sarma<EMAIL_ADDRESS>wrote:

I am bumping up against this issue once again. @pstadler
https://github.com/pstadler is there an easy way to accomplish this? My
guess is not? Because the looping over the target hosts occurs within the
local.transfer(), but I thought I'd ask to be sure.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/pstadler/flightplan/issues/140#issuecomment-301352659,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAkoIZU9wZ-QyvnrUJ8Uw9hX69eVSZkhks5r56KNgaJpZM4IsKVE
.

Ah sorry, I thought this is about another ticket. This is indeed hard to solve. Maybe you should simply roll with an own implementation running rsync in a local loop.


Updated witness, "failed to push new block", "hash is broken", "pushing block to fork database that failed to link"

Hi all, I have been running a witness for the last few months and although I've had success with prior updates, ever since I've updated to v0.6.3 my node has been acting up.  Here is a snippet of the console after I start my witness now:
1290115ms th_a       witness.cpp:194               plugin_startup       ] witness plugin:  plugin_startup() begin
1290115ms th_a       witness.cpp:198               plugin_startup       ] Launching block production for 1 witnesses.
1290115ms th_a       witness.cpp:232               plugin_startup       ] witness plugin:  plugin_startup() end
1290115ms th_a       application.cpp:1124          startup_plugins      ] Plugin witness started
1290115ms th_a       main.cpp:181                  main                 ] Started RevPop node on a chain with 4041382 blocks.
1290115ms th_a       main.cpp:182                  main                 ] Chain ID is 3eb7485cde282aabdfaf41d54fa4fedb1fe2537c598c969b0f4dce412f8ad29d
1291000ms th_a       witness.cpp:881               block_production_loo ] Not producing block because production is disabled until we receive a recent block (see: --enable-stale-production)
1291232ms th_a       db_block.cpp:221              _push_block          ] Failed to push new block:
10 assert_exception: Assert Exception
cr_itr->hash == hash: Hash is broken.
    {}
    th_a  commit_reveal_v3_evaluator.cpp:150 do_evaluate

    {"op":{"fee":{"amount":0,"asset_id":"1.3.0"},"account":"1.2.53","value":"15614816026826025587","maintenance_time":1631037110,"witness_key":"RVP78y22G5rGsmHevqYttvjWfDkMFcpzntH3kyrBbHUa4qvNqM3v4"}}
    th_a  commit_reveal_v3_evaluator.cpp:162 do_evaluate

    {}
    th_a  evaluator.cpp:48 start_evaluate

    {"op":[62,{"fee":{"amount":0,"asset_id":"1.3.0"},"account":"1.2.53","value":"15614816026826025587","maintenance_time":1631037110,"witness_key":"RVP78y22G5rGsmHevqYttvjWfDkMFcpzntH3kyrBbHUa4qvNqM3v4"}]}
    th_a  db_block.cpp:766 apply_operation

    {"trx":{"ref_block_num":43686,"ref_block_prefix":1947504880,"expiration":"2021-09-07T17:52:20","operations":[[62,{"fee":{"amount":0,"asset_id":"1.3.0"},"account":"1.2.53","value":"15614816026826025587","maintenance_time":1631037110,"witness_key":"RVP78y22G5rGsmHevqYttvjWfDkMFcpzntH3kyrBbHUa4qvNqM3v4"}]],"extensions":[],"signatures":["1f37b20225be6dbd4ecf697b60fa357ab5821fdaf7709bb38a4099d108fb99ddbe10370de83f2ea9f4ac7a13a75f28ce69f24d8f0c97ffabe33e3c37833f399145"]}}
    th_a  db_block.cpp:752 _apply_transaction

    {"next_block.block_num()":4041383}
    th_a  db_block.cpp:659 _apply_block
1291232ms th_a       application.cpp:556           handle_block         ] Error when pushing block:
10 assert_exception: Assert Exception
cr_itr->hash == hash: Hash is broken.
    {}
    th_a  commit_reveal_v3_evaluator.cpp:150 do_evaluate

    {"op":{"fee":{"amount":0,"asset_id":"1.3.0"},"account":"1.2.53","value":"15614816026826025587","maintenance_time":1631037110,"witness_key":"RVP78y22G5rGsmHevqYttvjWfDkMFcpzntH3kyrBbHUa4qvNqM3v4"}}
    th_a  commit_reveal_v3_evaluator.cpp:162 do_evaluate

    {}
    th_a  evaluator.cpp:48 start_evaluate

    {"op":[62,{"fee":{"amount":0,"asset_id":"1.3.0"},"account":"1.2.53","value":"15614816026826025587","maintenance_time":1631037110,"witness_key":"RVP78y22G5rGsmHevqYttvjWfDkMFcpzntH3kyrBbHUa4qvNqM3v4"}]}
    th_a  db_block.cpp:766 apply_operation

    {"trx":{"ref_block_num":43686,"ref_block_prefix":1947504880,"expiration":"2021-09-07T17:52:20","operations":[[62,{"fee":{"amount":0,"asset_id":"1.3.0"},"account":"1.2.53","value":"15614816026826025587","maintenance_time":1631037110,"witness_key":"RVP78y22G5rGsmHevqYttvjWfDkMFcpzntH3kyrBbHUa4qvNqM3v4"}]],"extensions":[],"signatures":["1f37b20225be6dbd4ecf697b60fa357ab5821fdaf7709bb38a4099d108fb99ddbe10370de83f2ea9f4ac7a13a75f28ce69f24d8f0c97ffabe33e3c37833f399145"]}}
    th_a  db_block.cpp:752 _apply_transaction

    {"next_block.block_num()":4041383}
    th_a  db_block.cpp:659 _apply_block

    {"new_block":{"previous":"003daaa6f0901474f977d81f68f5c43b824d74f0","timestamp":"2021-09-07T17:51:55","witness":"1.6.20","transaction_merkle_root":"7d8bf4402636cc5417f117604e6df676b8765afd","extensions":[],"witness_signature":"1f323e7b8d162c96c8808551d69869599a45fb0bfe675117bb25376ca6d6a575d0041e6ea1a78817706212b471e8a96229e16196d33af723555ee892fe6ff30fda","transactions":[{"ref_block_num":43686,"ref_block_prefix":1947504880,"expiration":"2021-09-07T17:52:20","operations":[[62,{"fee":{"amount":0,"asset_id":"1.3.0"},"account":"1.2.53","value":"15614816026826025587","maintenance_time":1631037110,"witness_key":"RVP78y22G5rGsmHevqYttvjWfDkMFcpzntH3kyrBbHUa4qvNqM3v4"}]],"extensions":[],"signatures":["1f37b20225be6dbd4ecf697b60fa357ab5821fdaf7709bb38a4099d108fb99ddbe10370de83f2ea9f4ac7a13a75f28ce69f24d8f0c97ffabe33e3c37833f399145"],"operation_results":[[1,"1.25.55"]]}]}}
    th_a  db_block.cpp:227 _push_block
1291266ms th_a       fork_database.cpp:64          push_block           ] Pushing block to fork database that failed to link: 003daaa82de064b8c888f126c0b3dc0dc24a93b0, 4041384
1291266ms th_a       fork_database.cpp:65          push_block           ] Head: 4041382, 003daaa6f0901474f977d81f68f5c43b824d74f0
1291266ms th_a       application.cpp:551           handle_block         ] Error when pushing block:
3080000 unlinkable_block_exception: unlinkable block
block does not link to known chain
    {}
    th_a  fork_database.cpp:84 _push_block

    {"new_block":{"previous":"003daaa7b1263e08ae9f9d338792cf43ee14c3d8","timestamp":"2021-09-07T17:52:00","witness":"1.6.15","transaction_merkle_root":"0000000000000000000000000000000000000000","extensions":[],"witness_signature":"1f3cbebc3b57baeeb3f607eefb5241e7b6bf477364dbf838866b214bc3b7c7e8f06c190c55341eb84a8d80b09ee82d85aed9f52669a888590be0ee84285c97c4f1","transactions":[]}}
    th_a  db_block.cpp:227 _push_block
1291269ms th_a       fork_database.cpp:64          push_block           ] Pushing block to fork database that failed to link: 003daaa97f441bef94b09dba257806dfc563da25, 4041385
1291269ms th_a       fork_database.cpp:65          push_block           ] Head: 4041382, 003daaa6f0901474f977d81f68f5c43b824d74f0
1291269ms th_a       application.cpp:551           handle_block         ] Error when pushing block:
3080000 unlinkable_block_exception: unlinkable block
block does not link to known chain

Eventually this leads to a lot of this:
1583000ms th_a       witness.cpp:881               block_production_loo ] Not producing block because production is disabled until we receive a recent block (see: --enable-stale-production)
1584001ms th_a       witness.cpp:881               block_production_loo ] Not producing block because production is disabled until we receive a recent block (see: --enable-stale-production)
1585000ms th_a       witness.cpp:881               block_production_loo ] Not producing block because production is disabled until we receive a recent block (see: --enable-stale-production)
1586001ms th_a       witness.cpp:881               block_production_loo ] Not producing block because production is disabled until we receive a recent block (see: --enable-stale-production)
1587000ms th_a       witness.cpp:881               block_production_loo ] Not producing block because production is disabled until we receive a recent block (see: --enable-stale-production)

Am I stuck on an old fork pre 0.6.3?  Do you think I need to delete my chain and resync?  Thank you for any advice.

Hi -
If you wouldn’t mind, could you please provide all of the steps you took to update to the new version? If it’s from a Docker build, you can double check the version number — it should look something like this:
$ docker run  --rm -it  --name blockchain-version public.ecr.aws/revpop/revpop-core:0.6.3 witness_node -v
Version: v0.6.3
SHA: 14bab4598ef51831f53a7e041c4ac2f889d3c700
Timestamp: 73 hours ago
SSL: OpenSSL 1.1.1  11 Sep 2018
Boost: 1.65.1
Websocket++: 0.7.0

Your witness isn’t going to be able to produce blocks while it’s outside the network consensus - and if it’s for some reason running on an older version, this may be the issue.
And you can always try a resync as well.
Thanks!

Hi -
If you wouldn’t mind, could you please provide all of the steps you took to update to the new version? If it’s from a Docker build, you can double check the version number — it should look something like this:
$ docker run  --rm -it  --name blockchain-version public.ecr.aws/revpop/revpop-core:0.6.3 witness_node -v
Version: v0.6.3
SHA: 14bab4598ef51831f53a7e041c4ac2f889d3c700
Timestamp: 73 hours ago
SSL: OpenSSL 1.1.1  11 Sep 2018
Boost: 1.65.1
Websocket++: 0.7.0

Your witness isn’t going to be able to produce blocks while it’s outside the network consensus - and if it’s for some reason running on an older version, this may be the issue.
And you can always try a resync as well.
Thanks!

Hi thank you for the reply.  I did not do a docker build so I was not able to figure out how to check my version, but I do follow the instructions provided on the readme to do upgrades (Upgrade Script + Build Script).  I just went through the commands again to double check the output and it looks like there were no changes and the build was complete, so the version must have been correct.  Upon restarting my witness and double checking the build, I still received the same errors so I deleted my blockchain folder and restarted my witness. It resynced and now it is fixed!  Thanks!


Enable default layout for collections

If I have several hundred _post objects, I should be able to add a layout key in config.php to set a default layout for all of those posts, which cascades down as every other config variable does, rather than having to add the layout to every single one of the files (which makes it very difficult to change layouts)

Nevermind - the problem was with the layout key. It should use extends


vc4-kms-v3d dtoverlay prevents standard Raspi 7" display from working

Describe the bug
In the current (0.0.6, 0.1.0-M1) builds, we have a config.txt dtoverlay with the v4-kms-.. graphics driver. This works for HDMI displays, but does not work with the standard Raspberry Pi 7" display, which is installed on the DSI port (flat cable).
Display:
https://www.raspberrypi.com/products/raspberry-pi-touch-display/
To Reproduce
Steps to reproduce the behaviour:

Install non-HDMI display on Raspi
Boot Leda 0.0.6 or 0.1.0-M1
Display powers off after kernel is loaded (Boot screen is visible ofc)

Expected behaviour
Display stays powered on
Login shell appears
Leda Version (please complete the following information):

Version: 0.0.6, 0.1.0-M1
Machine: raspberrypi4-64

Workaround
Edit config.txt
Comment out or remove the dtoverlay line:
# COMMENT OUT OR REMOVE TO FIX DISPLAY
# dtoverlay=vc4-kms-v3d

I ran into this as well when trying to use an UHD HDMI display. Commenting out the dtoverlay=vc4-kms-v3d line fixed the issue.


Allow local development

Provide Iconfont e.g. via composer https://github.com/driftyco/ionicons/blob/master/composer.json
and allow development without network connection.

Is fixed with https://github.com/shyim/shopware-profiler/commit/d4430fcc02a854307183069a2287941d3164d193
I will release next week a new release


playground: editing can be slow or hang the site

They play site tries to run cue on every keystroke. Most of the time this is invalid CUE as I write statements and causes the page to lag or become non-responsive.
Could we have a button to run rather than auto every keystroke? Maybe a toggle to enable auto mode if desired?

Thanks for raising @verdverm. Yes, could absolutely have a more manual "evaluate" button, equally we could debounce changes, and only process changes after a Xms delay.


CSV output formatting fix

If output type is text/csv, wrap in PlainTextResponse to maintain formatting

Not sure what the best response formatting would be when there are multiple files that need csv outputs. Right now it still defaults to the application/json response type which wraps the strings into a json array.

For multi file outputs, the csv content is joined with the others using an outer join so if there were different columns, they would all be persisted.

Since the code in the prepline_test_project directory is autogenerated, I felt it didn't make sense to require a code coverage percentage here since it makes sense that there might be more code generated than needed for every case of wrapped code from a notebook. That directory was removed from the make target that runs pytest.

I'm getting an error with make tidy-notebooks, which is going to execute all the cells. Is there a missing pandas import somewhere?
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[2], line 1
----> 1 print(pipeline_api("some text", "text/csv", "isd"))

Cell In[1], line 7, in pipeline_api(text, response_type, response_schema)
      2 def pipeline_api(
      3     text,
      4     response_type="text/csv",
      5     response_schema="isd",
      6 ):
----> 7     data = pd.DataFrame(data={"silly_result": [str(len(text)), text, str(response_type), str(response_schema)]})
      8     if response_type == "text/csv":
      9         return data.to_csv()

NameError: name 'pd' is not defined
NameError: name 'pd' is not defined


some methods have been deprecated

when I am running the go get, this error arrives,
go get github.com/adrg/libvlc-go/v3
# github.com/adrg/libvlc-go/v3
cgo-gcc-prolog: In function ‘_cgo_9537c696e5c9_Cfunc_libvlc_media_is_parsed’:
cgo-gcc-prolog:210:2: warning: ‘libvlc_media_is_parsed’ is deprecated [-Wdeprecated-declarations]
In file included from /usr/include/vlc/vlc.h:51,
                 from ../../../go/pkg/mod/github.com/adrg/libvlc-go/v3@v3.0.4/media.go:4:
/usr/include/vlc/deprecated.h:249:4: note: declared here
  249 |    libvlc_media_is_parsed( libvlc_media_t *p_md );
      |    ^~~~~~~~~~~~~~~~~~~~~~
cgo-gcc-prolog: In function ‘_cgo_9537c696e5c9_Cfunc_libvlc_media_parse’:
cgo-gcc-prolog:263:2: warning: ‘libvlc_media_parse’ is deprecated [-Wdeprecated-declarations]
In file included from /usr/include/vlc/vlc.h:51,
                 from ../../../go/pkg/mod/github.com/adrg/libvlc-go/v3@v3.0.4/media.go:4:
/usr/include/vlc/deprecated.h:209:1: note: declared here
  209 | libvlc_media_parse( libvlc_media_t *p_md );
      | ^~~~~~~~~~~~~~~~~~
cgo-gcc-prolog: In function ‘_cgo_9537c696e5c9_Cfunc_libvlc_media_parse_async’:
cgo-gcc-prolog:275:2: warning: ‘libvlc_media_parse_async’ is deprecated [-Wdeprecated-declarations]
In file included from /usr/include/vlc/vlc.h:51,
                 from ../../../go/pkg/mod/github.com/adrg/libvlc-go/v3@v3.0.4/media.go:4:
/usr/include/vlc/deprecated.h:233:1: note: declared here
  233 | libvlc_media_parse_async( libvlc_media_t *p_md );
      | ^~~~~~~~~~~~~~~~~~~~~~~~

all the dependencies were previously installed, as mentioned here

Duplicate #40


Support Python 3

What does this PR do?
The DNS Check appears to already support python 3, so I'm just adding a test for it to ensure we don't break python 3 support.
Motivation
We gotta move everything to python 3
Review checklist

[x] PR has a meaningful title or PR has the no-changelog label attached
[x] Feature or bugfix has tests
[x] Git history is clean
[ ] If PR impacts documentation, docs team has been notified or an issue has been opened on the documentation repo
[ ] If PR adds a configuration option, it has been added to the configuration file.

Additional Notes
I added no changelog since there are no changes

The DNS library we use does not yet support python 3. It will in the future. So, we can't do anything for the moment. If need be we'll have to help them finish porting the library, but for now we can wait.

I'm closing this out, someone else can do this upgrade when it's time


refactor createTasks to decouple constants resolution and abstract away targets and mode into the constants.

closing this, as it does not seem that needed.
Feel free to reopen otherwise


Support CA chain in fileca

Description
The current fileca implementation only supports a root CA certificate, but should support a chain of intermediates of arbitrary length

📣 Starting some work on this one :D


Fix issue where minify() would corrupt some characters such as   in some environments

Adding the u flag there fixes an issue in my environment (MAMP 4.1.1 with PHP 7.1.5) where minify() would corrupt the   character (it would get replaced by the replacement character).

This also fixes it for 4-byte unicode characters, like 𠜎 𠜱 𠝹 𠱓.

SGTM. Is this testable? Any thoughts @glensc?

Would be difficult. Was only able to reproduce it using the latest version of MAMP.  Assumed it had something to do with the version of PCRE installed (8.38), but tried outside of MAMP using that same PCRE version and it worked fine. Having a difficult time tracking down what the source is.

Just added some more u flags (in all the preg_ functions in HTML.php, basically) because I could still reproduce the issue with differently formatted HTML (still containing the   character).

/u adds some kind of performance penalty, but i think it's worth the correctness.


get-ecr-uri.sh falls back to use another region in partition if regio…

…n unconfigured
Issue #, if available:
N/A
Description of changes:
The get-ecr-uri/sh script is used to get the ECR URI for the pause container in the region. I've updated that script to fall back to another region in the same partition if the region is unknown. This is necessary to automate support for new regions. Eventually, we should still add an entry for the specific region, but this will enable new regions without a change.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Testing Done
New unit tests added for the script. Also, I removed the entry for eu-south-1, which is an opt-in region, and validated that the nodes were still able to join the clusters in that region.

See this guide for recommended testing for PRs. Some tests may not apply. Completing tests and providing additional validation steps are not required, but it is recommended and may reduce review time and time to merge.

LGTM.

@mmerkes looks fine to me, the linter just wants some indentation tweaks.

@cartermckinnon Ya, I forget that we have the linter and pushed and logged off before it finish. I just updated it. Should be gtg.

/ci


Cinebench 20 and 23 Results

Thanks for your hard work with this kext and the patches. I started using them on my Z690 build (ASUS Max Extreme / i9 12900KF / 64GB DDR / CPU iCue 360mm LCD AIO / Vega 56 for Mojave and 6900XT for Big Sur & Monterey).
The Cinebench tests were done in Big Sur (11.6.5). I'd run scores before switching from CPUFriend and CPUFriendDataProvider to your CPUTopologyRebuild. The boot-arg -ctrsmt was used and the ProvideCurrentCpuInfo Quirk was set to true for all boots. Also, I had active all of your patches, as appropriate for Big Sur and my i9 for both sets of tests as described in the next paragraph.
Single core scores went from almost 1900 (as shown below) when CPUFriend and CPUFriendDataProvider were used, to 985 when CpuTopologyRebuild was substituted for those other two. I found similar 50% reductions in Cinebench 20 multicore scores (not shown).
I'm wondering my experience is so different from what you described on your Performance page.

@iGPU CpuTopologyRebuild.kext is not a replacement for CPUFriend / DataProvider, so I think these kexts can be used at the same time.
I didn't test mixed kexts configuration because I'm currently using iMacPro smbios that does not need CPUFriend, but MacPro smbios probably needs CPUFriend to get better performance.

Thanks for reply. From the Readme.md file, it was not clear that all 3 were to be used simultaneously: I thought that CPUTopologyRebuild was instead of the other two.
When all 3 are run simultaneously, Single Core in Cinebench R23 gives an 1824 result, similar to the 1895 that I posted above, with Multi-Core coming in at 27543 (AI Optimization and XMP-1 are activated in BIOS) . And these results were without using "-ctrsmt".
GB5 now has a Single Core score of 2118 with a Multi-Core score of 19314, while correctly reporting 16-cores with 24 threads. (And again, these results were without using "-ctrsmt".)

Thanks for your hard work with this kext and the patches. I started using them on my Z690 build (ASUS Max Extreme / i9 12900KF / 64GB DDR / CPU iCue 360mm LCD AIO / Vega 56 for Mojave and 6900XT for Big Sur & Monterey).
The Cinebench tests were done in Big Sur (11.6.5). I'd run scores before switching from CPUFriend and CPUFriendDataProvider to your CPUTopologyRebuild. The boot-arg -ctrsmt was used and the ProvideCurrentCpuInfo Quirk was set to true for all boots. Also, I had active all of your patches, as appropriate for Big Sur and my i9 for both sets of tests as described in the next paragraph.
Single core scores went from almost 1900 (as shown below) when CPUFriend and CPUFriendDataProvider were used, to 985 when CpuTopologyRebuild was substituted for those other two. I found similar 50% reductions in Cinebench 20 multicore scores (not shown).
I'm wondering my experience is so different from what you described on your Performance page.

could you share your new cinebench result with multicore? your result is closer to my 12400f cpu, i assume you may need to recheck the SMBIOS.


[RFC] Decouple variables passed to child components from parent component's logic

from @levithomason post:
Motivation
Any variables or styles used directly in a component's logic implicitly become part of a global theming interface.
All themes will have to implement variables.typePrimaryColor, for instance, in order for this to work.  Additionally, we are removing the styling from the theme and baking it into the component instead.
We would like all theming values and theming logic living in the theme's files.  This way, each theme is free to choose the values and logic behind their styles.  The question is how?
Proposal 1 - Component part variables
Component variables files could define variables for each component parts as well.  Then, variable values and logic for component parts can be left to the theme and not dictated to all themes by the component.  Here's an example of the Button theme defining an icon part in its variables.
// themes/teams/components/Button/buttonVariables.tsx

export default (siteVariables) => {
  const variables = {
    color: undefined,
    typePrimaryColor: siteVariables.white,
    typeSecondaryColor: siteVariables.black,
  }

  variables.icon = {
    color:
      type === "primary"
        ? variables.typePrimaryColor
        : type === "secondary"
          ? variables.typeSecondaryColor
          : variables.color
  }

  return variables
}

Now, the component simply implements a contract that says "we pass variables[part] to each component part":
// Button.tsx

Icon.create(icon, {
  defaultProps: {
    variables: variables.icon
  }
})

This would also allow us to do this consistently for all components, including the styles for each component part.  That then would allow us to write a conformance test for it.  This would make the API easier to understand and work with as well since there is only one concept, "components pass variables/styles to each component part".
Proposal 2 - A high-level theme interface
This proposal would introduce a new concept.  Something like a lightweight theme interface that is allowed to pass between components.  It would consist of backgroundColor, foregroundColor, and perhaps an accentColor initially (names and keys are inspired by present convergence talks with several teams at Microsoft).
The Button in this case would define these three values for its bounds.  Then, they would passed to the Icon.
/cc @levithomason, @miroslavstastny

Agree with all the points provided. We've had similar discussion with @miroslavstastny where exactly the same points were raised by him - at that point we've decided to pass variables directly in component's logic, primarily for the sake of not introducing additional complexity for theme mechanisms that were just introduced then (and, thus, were not exploited enough to be considered as robust solution).
Speaking of the options suggested - I would definitely support the first one, as it suggests clear path that doesn't change but extends the approach we are using now - and, thus, it is not associated with significant increase of complexity. Also, this one seems to be flexible enough, so that with this one we would be able to address quite broad set of scenarios.
Not saying 'no' to the second option, though - but would rather wait once this concept will solidify in our minds, for the sake of us being absolutely sure about what we are buying for additional efforts laid in this direction, as well as whether this concept is able to cover all the cases we are interested in (and how flexible it would be to cover potentially emerged edge-cases)

thanks - let me introduce PR for having more concrete discussion over the first option then..

My (still the same) opinion is if we access theme variables in component source, layers are broken.
I completely agree with the proposal to decouple it, I love Proposal 1.


Switch IRC server to irc.libera.chat.

Might be nice to add a config parameter to override the default server too.

Indeed, I'll follow up with that.