Git repos: x509: certificate signed by unknown authority

Since roughly today, I get the "x509: certificate signed by unknown authority" error when trying to work with my repos. Last time I've seen it working was yesterday.
C:\Windows\System32>keybase version
Client:  6.2.5-20231231232650+3bdf76f84a
Service: 6.2.5-20231231232650+3bdf76f84a
my log id: 7da4aeb84a8fb6ec2fc6bf1c

Same here:
Client:  6.2.4-20240101011938+ae7e4a1c15
Service: 6.2.4-20240101011938+ae7e4a1c15

This has happened before. See #2371.
I'm seeing it now too. Same client as @epichoxha

Seems related to some upgrade they ran last night. We had the same problem but it's working again. They wrote "Pretty smooth upgrade last night, but we hit some issues with KBFS this morning. KBFS will be in read-only mode until Merkle Trees are rebuilt. Might take up to 24 hours. Thanks for your patience."

Seems related to some upgrade they ran last night. We had the same problem but it's working again. They wrote "Pretty smooth upgrade last night, but we hit some issues with KBFS this morning. KBFS will be in read-only mode until Merkle Trees are rebuilt. Might take up to 24 hours. Thanks for your patience."

For future reference, have you got a link for that?

@bon sorry I don't have it. I only saw mention of it here: https://github.com/keybase/keybase-issues/issues/4241#issuecomment-1948808404 (or here https://github.com/keybase/keybase-issues/issues/4241)
@kuril  you MUST upgrade to mac client version 6.2.5. we experienced the certificate issue on macs several weeks ago and the solution was to upgrade to version 6.2.5

@osilva how can I upgrade? New version asks to confirm login from any other device but all devices are not able to connect due to this error.

@kuril sorry but I don't know. I had the same error with the certificate in January and I downloaded the new client (didn't try any upgrades) and reinstalled it. That worked for me but I can't offer any other advice/suggestion if that does not work for you.

I can confirm on Windows.
I was getting the certificate errors. Went to the keybase website, downloaded the latest client, and as soon as I launched keybase, I received a notification explaining the issue and a message at the top which said

Keybase experienced an expired certificate. You must visit the keybase website and upgrade your client. If you can see this message, then your current client is working.

I was going to screenshot the message so people knew what to look for, but as a dummy, I closed it and then thought about it afterwards.
Keybase has been running fine since then though. You're welcome.

Here's the screenshot. ;)

Nice, yeah that's the message I saw.
Weird thing is I don't recall ever seeing anything on the old non-working client to inform users. Not sure if keybase has any type of "announcement" feature, or if that notification was implemented specifically for this issue.

Is this ever going to be fixed? What's the deal with this... I need my stuff i thought the whole point of keybase is it was e2e

Where are you getting that error at? I've never seen that one popup.

Is this ever going to be fixed? What's the deal with this... I need my stuff i thought the whole point of keybase is it was e2e

I don't know if it'll get fixed for the future, but you need to manually install the latest version to resolve this.

A few months ago, I was approached by an individual who claimed to be a successful cryptocurrency trader with a foolproof investment opportunity. They promised high returns in a short period and assured me that my investment was safe and secure. Filled with excitement and the prospect of making quick profits, I decided to invest a significant amount of money in the scheme. The initial weeks seemed promising as I saw small returns on my investment, which further fueled my belief in the operation's legitimacy. However, as time passed, the individual became increasingly difficult to reach, and my requests to withdraw my profits were ignored. It soon became clear that I had fallen victim to a cryptocurrency investment scam. I had lost a substantial sum of money, and the promises of high returns were nothing but a facade to lure unsuspecting investors.   However, I refused to give up hope and began searching for solutions online. That's when I came across Trust Geeks Hack Expert  specializes in recovering stolen cryptocurrency. I reached out to them and explained my situation, and they immediately sprang into action. Through their expertise, determination, and relentless effort, they were able to track down my lost Bitcoin and recover it for me. I was overjoyed and relieved beyond words when I received the news that my funds had been successfully retrieved. If you find yourself in a similar situation look for assistance from Trust Geeks Hack Expert. I urge everyone to exercise caution when approached with investment opportunities that seem too good to be true, especially in the realm of cryptocurrency.
Contact Service
Email::  trustgeekshackexpert[Dot]fastservice[At]come
Website. https://trustgeekshackexpert.com/
Telegram ID : Trustgeekshackexpert

A few months ago, I was approached by an individual who claimed to be a successful cryptocurrency trader with a foolproof investment opportunity. They promised high returns in a short period and assured me that my investment was safe and secure. Filled with excitement and the prospect of making quick profits, I decided to invest a significant amount of money in the scheme. The initial weeks seemed promising as I saw small returns on my investment, which further fueled my belief in the operation's legitimacy. However, as time passed, the individual became increasingly difficult to reach, and my requests to withdraw my profits were ignored. It soon became clear that I had fallen victim to a cryptocurrency investment scam. I had lost a substantial sum of money, and the promises of high returns were nothing but a facade to lure unsuspecting investors.   However, I refused to give up hope and began searching for solutions online. That's when I came across Trust Geeks Hack Expert  specializes in recovering stolen cryptocurrency. I reached out to them and explained my situation, and they immediately sprang into action. Through their expertise, determination, and relentless effort, they were able to track down my lost Bitcoin and recover it for me. I was overjoyed and relieved beyond words when I received the news that my funds had been successfully retrieved. If you find yourself in a similar situation look for assistance from Trust Geeks Hack Expert. I urge everyone to exercise caution when approached with investment opportunities that seem too good to be true, especially in the realm of cryptocurrency.
Contact Service
Email::  trustgeekshackexpert[Dot]fastservice[At]come
Website. https://trustgeekshackexpert.com/
Telegram ID : Trustgeekshackexpert

Are you really using a keybase issue to advertise your scams.


Add unit tests back to pipeline & improve VSCode integration

This fixes #571 and it fixes #507.
Ruby Test Explorer extension works now in VSCode. Also see my comment here.

[x] VSCode integration via Ruby Test Explorer
[x] Upgrade docs on how to run tests locally, see here
[x] CI/CD: Run unit tests in pipeline -> see for example this run.

[!note]
For the Ruby Test Explorer extension to work, you must have a recent python version installed

Currently, the CI/CD test runs take ~4min 30s (with some things already cached). Without any caches it even takes up to ~7min. This is too long and we should try to reduce the time spent in the initial docker build phase. However, this would probably mean restructuring what is done in the dockerfiles, which should probably be something for another PR.
Future Todos

[ ] Fix failing unit tests. ⚠ Should probably be done before merging this.
[ ] Bring Cypress tests back -> try to avoid executing the same Dockerfile again as many tasks can be shared, e.g. copying a .wasm file from the pdfcomprezzor to the project root etc.

Thanks for the approval, I will merge once we've fixed the unit test cases in another PR to avoid having a failing pipeline in dev.


Provide an option to block request when it's opened in the main frame

Details:
https://github.com/AdguardTeam/AdguardForWindows/issues/2043
Basically, we need to provide a "strict" level of blocking. When the strict level is enabled, we should block requests even when they're executed in the main browser frame.

@ameshkov thanks for approving my idea. Regards

@FadeMind it makes perfect sense, thank you! Also, it's quite often when people ask us how to block this or that completely, and using $empty is not an ideal solution

core/pull-requests/1482

There are some issues with the current implementation.
||exoclick.com^$document for some reason is applied instead of ||syndication.exoclick.com/splash.php?$empty,important,domain=dashishipin.com:

The second issue is that a $document rule is applied to a non-DOCUMENT response.
And finally, the third issue is that the $all rule, in this case, won't block non-document requests while it actually should.

core/pull-requests/1564

Regarding this issue - https://github.com/AdguardTeam/CoreLibs/issues/152#issuecomment-542626310
It seems that it happens again.
Steps to reproduce:

Add this rule:
||cda-tv.online^$document
Go here -  https://cda-tv.online/filmy-online/malgosia-i-jas/ and click on "Proceed anyway" button
Click on one of the video players (marked on screenshot below).

Screenshot

Request marked as Other type is blocked.
Screenshot

It's not a regression since the actual request type detected by the filtering engine is xhr+document.
But there is an issue with the content type displaying which resides in the UI.

Ok, thank you for your answer.
Anyway, I'm wondering why $document must be applied in case like that?
Is there any real case where is needed to apply rule with $document modifier to request which is detected as xhr+document?

@AdamWr, as for Adg4Win we'll improve content-type displaying soon - the corresponding task has been created


Reaction names are sometimes displayed as "[object Object]"

For example:

[ ] http://localhost:3000/reaction/1-Pentanol,N%2CN-Dimethyl-4-nitrosoaniline-->4-(Hydroxylamino)-N%2CN-dimethylaniline,1-Pentanal/Colidextribacter

I can't seem to see it. Has it been fixed?

The errors I reported today are in the update_metab branch.

This error was introduced into the branch by incompletely updating for using InChI keys to link to metabolites. This is now fixed in update_metab branch.


feat: Implement switching to next/previous block on detail pages

Description
resolves #375
compared to the visual material, the design is old for consistency and will be improved here https://github.com/aeternity/aescan/issues/148
Demo

https://github.com/aeternity/aescan/assets/15363559/165d1147-1dae-4ba4-a46d-0949cd4f2afa
Checklist:

[x] I have read and followed the Contributing Guide
[x] add navigation through keyblock detail

I think it should be doable by checking height against blockHeight in recentBlocksStore

It looks good but is there a way to disable the next arrow if the keyblock is the last one to avoid the "Requested keyblock has never been seen in the network." screen?

Fixed and regenerated the demo


Conditionals prevent identifying equivalent circuits/DAGs

The circuit identity check does not distinguish between classical wires used as cargs and classical wires used as conditionals,  and so the following two circuits are marked as non-equivalent:
>>> import qiskit as qk
>>> qr = qk.QuantumRegister(2)
>>> cr = qk.ClassicalRegister(1)
>>> qc1 = qk.QuantumCircuit(qr, cr)
>>> qc1.h(0).c_if(cr, 0)
>>> qc1.h(1).c_if(cr, 0)
>>> print(qc1)
          ┌───┐
q0_0: |0>─┤ H ├────────
          └─┬─┘  ┌───┐
q0_1: |0>───┼────┤ H ├─
            │    └─┬─┘
         ┌──┴──┐┌──┴──┐
 c0_0: 0 ╡ = 0 ╞╡ = 0 ╞
         └─────┘└─────┘
>>> qc2 = qk.QuantumCircuit(qr, cr)
>>> qc2.h(1).c_if(cr, 0)
>>> qc2.h(0).c_if(cr, 0)
>>> print(qc2)
                 ┌───┐
q0_0: |0>────────┤ H ├─
          ┌───┐  └─┬─┘
q0_1: |0>─┤ H ├────┼───
          └─┬─┘    │
         ┌──┴──┐┌──┴──┐
 c0_0: 0 ╡ = 0 ╞╡ = 0 ╞
         └─────┘└─────┘
>>> qc1 == qc2
False

Since both gates use c0 as a condition, and there is no gate between them which uses c0 as a carg, it should be possible to determine that the order of the two gates on c0 is not important. Ref. test.python.transpiler.test_cx_direction.TestCXDirection.test_preserves_conditions .

Update for GoGP
✅ Issue still reproducible as per the original author.
The Code:
import qiskit as qk
qr = qk.QuantumRegister(2)
cr = qk.ClassicalRegister(1)
qc1 = qk.QuantumCircuit(qr, cr)
qc1.h(0).c_if(cr, 0)
qc1.h(1).c_if(cr, 0)
print(qc1)

qc2 = qk.QuantumCircuit(qr, cr)
qc2.h(1).c_if(cr, 0)
qc2.h(0).c_if(cr, 0)
print(qc2)

>>> qc1 == qc2
False

The output is still False when we compare both the circuits.

The two circuits given in this example are structurally different because of the data dependency flowing along bit 0; without an optimising compiler recognising that these are the same condition and that they can be merged into a single classical check, there's no practical way for the DAG comparison to see these two circuits as equal, because under the IR, they are different.
There's not entirely a problem with conditionals: if I instead make the circuits as
import qiskit as qk
qr = qk.QuantumRegister(2)
cr1 = qk.ClassicalRegister(1)
cr2 = qk.ClassicalRegister(1)
qc1 = qk.QuantumCircuit(qr, cr1, cr2)
qc1.h(0).c_if(cr1, 0)
qc1.h(1).c_if(cr2, 0)
print(qc1)

qc2 = qk.QuantumCircuit(qr, cr1, cr2)
qc2.h(1).c_if(cr2, 0)
qc2.h(0).c_if(cr1, 0)
print(qc2)

then we have qc1 == qc2, despite the re-ordering of the circuits required.
I think that if we use "the bit can't have changed between the conditions" as a requirement, we're opening a separate can of worms - should two circuits compare equal if there's extra explicit quantum no-ops on some of its qubits too?  It feels like we're getting into the realm of larger equivalence checkers at that point, which I think is a separate and larger issue than this one.
I propose to close this bug report as "not a bug", and fold its requests into a potential equivalence checker feature request (e.g. #761).  In the interests of slimming the issues, I'll just close this pre-emptively, but feel free to re-open if you disagree with me.


[Feature] Allow To Auto-Restart Tasks

It would be great if there was a built-in way to auto-restart a background task if it stops for any reason.
Currently, our use case is to define tasks within a shell while loop, which can get messy for a long command.
For example:
{
    // ...
    "tasks": [
        {
            "type": "process",
            "isBackground": true,
            "label": "Neo4j: kubectl: Local Port Forward",
            "command": "sh",
            "args": [
                "-c",
                "while true; do kubectl port-forward 'services/my-neo4j' '7474:7474' '7687:7687' --namespace='my-namespace'; sleep 1; echo 'Restarting Neo4j port-forward...'; done"
            ],
            "problemMatcher": [],
        },
    ],
}

This could be better written and much easier to read if rewritten as such:
{
    // ...
    "tasks": [
        {
            "type": "process",
            "isBackground": true,
            "label": "Neo4j: kubectl: Local Port Forward",

            // 👇 Need something simple like this
            "restart": true, // This would keep the below arguments and configuration easier to read and maintain

            "command": "kubectl",
            "args": [
                "port-forward",
                "services/my-neo4j",
                "7474:7474",
                "7687:7687",
                "--namespace='my-namespace'",
            ],
            "problemMatcher": [],
        },
    ],
}

Having this feature would also remove the need to maintain platform-specific looping workarounds for each platform (e.g. Mac/Win/Lin)
This would significantly simplify our tasks across the organization.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Mono Glue Generation Fails

Operating system: Arch Linux, Godot 3.0 custom build.
Issue description: Mono glue no longer being generated by --generate-mono-glue. The output that should appear when glue is generated is absent, and godot builds without the mono module. Found when testing after #11739. 9b8376e of my update script was working before. When trying manually, I produced this hastebin. Typing the commands to compile manually yielded no difference.
Steps to reproduce: Run godot --generate-mono-glue modules/mono/glue as detailed in the GodotSharp building instructions.

Are you building with module_mono_enabled=yes? Those instructions need to be updated to include this, and moved to the docs.

Is this done in both the initial build and after generating glue?
On Tue, Oct 3, 2017 at 12:38 PM, Ignacio Etcheverry
<EMAIL_ADDRESS>wrote:

Are you building with module_mono_enabled=yes? Those instructions
need to be updated to include this, and moved to the docs.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I also ran into the exact same issue when trying it today.

so mono_glue=no got renamed to module_mono_enable
OR
is module_mono_enabled needed on the initial build to enable it. only a binary with enabled mono can than execute --generate-mono-glue ?

is this what is needed for creating a binary that is able to create the bindings:
scons p=osx target=debug tools=yes mono_glue=no module_mono_enabled=yes

Well, attempted rebuilding with module_mono_enabled and got this: https://hastebin.com/raw/ulefufaban

You can ignore the "target=debug tools=yes" portion as these are the defaults.
So:
scons p=x11 builtin_openssl=yes module_mono_enabled=yes mono_glue=no
bin/godot.x11.tools.64 --generate-mono-glue modules/mono/glue
scons p=x11 builtin_openssl=yes module_mono_enabled=yes
In other words, module_mono_enabled=yes only tells Godot to include Mono, not whether to use the glue or not.

@NathanWarden Thank you! that makes sense!
but I still don't get it to work because of Could not detect MinGW
any idea?

by the way what is builtin_openssl=yes used for?

Using the Xamarin msbuild 15, will try with msbuild-bin. builtin_openssl=yes is in case the installed version of openssl on your system is above what is supported by Godot.

@toger5 If you're only trying to build for Linux or OSX you can ignore this as it's only used for Windows.
Sorry, I removed "builtin_openssl=yes" above as it's something you only need for certain Linux distros. :)

@toger5 If you are trying to make a Windows build you'll need to install mingw. If you are trying to build for Windows which OS are you on?

Yes, the mono_glue=no argument is still required when building that binary that generates the glue. Additionally, you need the module_mono_enabled=yes command to tell scons to build the mono module itself, because it's disabled by default.

Other than a brief warning, looks like things are working now.

Although it just got closed, I would like to answer @NathanWarden question and maybe we get it working for me too.
I'm on macOS.

Not a problem at all, just don't want to bother others by keeping the
issue marked as open.
On Tue, Oct 3, 2017 at 1:07 PM, Timo<EMAIL_ADDRESS>wrote:

Although it just got closed, I would like to answer @NathanWarden
question and maybe we get it working for me too.
I'm on macOS.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.

this is the full output
https://gist.github.com/toger5/315b7e45a0726303c2d16c219c39b490

@BrainBlasted The msbuild-15-bin package on Arch Linux is defective (both @karroffel and @tagcup had problems with it as well). I think msbuild-bin should work.

@toger5 Yeah, the MinGW printed is just a warning and you can either ignore it or install MinGW.
Your real error is that you don't have Mono installed. Did you install the Mono from here?
http://www.mono-project.com/download/
You may need to restart before it will be included in your environment variables. If that doesn't work I'll try and help you further as I did get this to work on macOS about a week ago :)

It does now. The reason msbuild-15-bin has issues seems to be because
it is now unmaintained.
On Tue, Oct 3, 2017 at 1:14 PM, Ignacio Etcheverry
<EMAIL_ADDRESS>wrote:

@BrainBlasted The msbuild-15-bin package on Arch Linux is defective
(both @karroffel and @tagcup had problems with it as well). I think
msbuild-bin should work.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@neikeq @BrainBlasted Same here. msbuild-bin works msbuild-15-bin is broken.

@toger5 If you have mono installed you might want to see if you can install it using macports.

There's also brew install mono if you use homebrew.

@BrainBlasted oh nice. that might be better than the installer since the installer is pretty big and has a lot of libs I don't really need.

@neikeq Using msbuild-bin prevents building solutions, since godot looks for msbuild, yet msbuild-bin provides xbuild. How does the compilation process handle it?

I indeed just didn't had mono installed properly (mono -V was giving me an error)
I installed it using the brew formula which seems to work.
@neikeq also mentioned that adding mono to the path could work.
 appending "/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig/" (if mono-2.pc was found there) to PKG_CONFIG_PATH
for any other desperate OS X person ;)

@BrainBlasted I may be missing something you're trying to do in your particular case, but you can change the "Mono > Builds" setting in EditorSettings to use xbuild. Last I tried you have to restart the editor in order for the setting to take affect.

@BrainBlasted This is very much off-topic, but since you mentioned it here, afaik "builtin_openssl=yes" is no longer required for godot to build e.g. on ArchLinux (i think this was fixed a while ago)

... change the "Mono > Builds" setting in EditorSettings to use xbuild. Last I tried you have to restart the editor in order for the setting to take affect.

You don't need to restart anymore.

Thanks for letting me know. Also, does Godot produce logs for when
Proejct solutions fail to build? Nothing shows up in the editor.
On Tue, Oct 3, 2017 at 5:08 PM, Ignacio Etcheverry
<EMAIL_ADDRESS>wrote:

... change the "Mono > Builds" setting in EditorSettings to use
xbuild. Last I tried you have to restart the editor in order for the
setting to take affect.

You don't need to restart anymore.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@novemberist @neikeq Thanks for letting me know on both accounts. :)

@BrainBlasted yes, if there are warning or errors, they will popup on screen (in the bottom panel). If you want to see the logs, you can find them in user://mono/build_logs/<solution_dir>/msbuild_log.txt. The solution directory name is not friendly though, it's <MD5PathToSolution>_<BuildConfiguration>, but don't worry, I will add a button to open the logs from the editor.


[Suggestion] Dark Helm Night Vision costs a small amount of RF/t

I just think it's a bit strange that Night Vision can be turned on and off, makes an awesome camera flash charging sound, but doesn't take energy of any kind to function (especially in light of the fact that Speed and Jump both DO consume RF).  Doesn't need to be too intense, even 1RF per tick would last 83 minutes 20 seconds with the lowest tier of Empowered.  Either way, thanks for your time! =)

Thank you for your suggestion. It has been added to our list or possible enhancement.
This ticket will be closed because we want the list of open tickets to reflect known issues.


Update documentation on mappings

The readme documentation is outdated, e.g., type should be either debit or credit.

I'm new to OFX, so please forgive my naivete if I miss the big picture because of the examples I've been exposed to. It's not clear to me which keys of the mapping file refer to which structures in an OFX file.
Specifically, the OFX file structure which I've encountered (from CapitalOne, Chase, and Citibank checking and CapitalOne, Chase, and Amex credit cards) has three parts: header, transactions, footer. The CSV file I'm working to convert would represent only the transactions part.
Specifically in the documentation,

"The mapping object consists of a dictionary whose keys are OFX/QIF attributes and whose values are functions which should return the corresponding value from a record (csv row)."
It's a little nit, but from accounting I associate "records" as a whole with documents. The OFX file as a record contains all three parts and this term seems to refer to the whole document. Then the parenthetical "(csv row)" suggests a specific concern with transactions. And the keys don't clarify this ambiguity.
This gets to a question. Which features of the mapping file are required by csv2ofx to construct a complete OFX file, and which features are required columns in the csv file export from the bank (to be sure I have a file csv2ofx is capable of converting)?

I find banks refer to 'transactions'. In the mixed context of the XML specification (header, transactions, footer) what is a record? Is it the whole XML? Or an individual transaction?

an individual transaction

where would does account number come from

https://github.com/reubano/csv2ofx/blob/6d35d306f54cbe8a250cae71e51a7fe82665680d/csv2ofx/__init__.py#L261


AES - CTR

I know there was a time where RNCryptor used AES - CTR encryption. Now it's CBC and I think I got the point that it's just more secure since it's not that easy to mess up its parameterisation.
But I need to encrypt video files where I've to use AES - CTR (since it's basically a stream cipher it comes with many advantages for video encryption).
Was there a reason RNCryptor did drop the AES - CTR option completely? Are there any plans to bring it back in any form (reading the description doesn't sounds like there are).
Does anybody know any alternative library to use AES - CTR? I would need to use it in an asynchronous way like RNCryptor offers it in a very elegant way.
Or do I have to fork this project to adapt it for my personal use?

What benefits do you believe you'll get from CTR for video files while
within RNCryptor? While streaming modes can have some benefits, many of
them are lost when you switch to a format like RNCryptor (and also when you
do it on iPhone, which doesn't parallelize CTR the way it could). RNCryptor
(v3 format) includes all it authentication, including password checking, at
the end of the stream. That's fine for transferring file-like data (which
is RNCryptor's focus), but if you mean to actually stream video, that
doesn't work nearly as well as other approaches.
Watch out also for https://github.com/RNCryptor/RNCryptor/issues/129. I
haven't dug into that one deeply and could impact you. I'm finally at a
place where I'll be looking at that again.
I won't be putting CTR back into RNCryptor as an option. The fact that I
expose the settings at all was actually a mistake, since RNCryptor defines
a format, not just an implementation. The format doesn't currently include
any encoding of settings (other than the use of password). So modifying the
settings violates the format rules and breaks all other implementations.
Without forking, you can't change the mode, because you have to use
the CCCryptorCreateWithMode() call in RNCryptorEngine. (That breaks 10.6
compatibility, which is what caused me to remove the call entirely.)
-Rob
On Thu, Sep 17, 2015 at 9:38 AM, sust86<EMAIL_ADDRESS>wrote:

I know there was a time where RNCryptor used AES - CTR encryption. Now
it's CBC and I think I got the point that it's just more secure since it's
not that easy to mess up its parameterisation.
But I need to encrypt video files where I've to use AES - CTR (since it's
basically a stream cipher it comes with many advantages for video
encryption).
Was there a reason RNCryptor did drop the AES - CTR option completely? Are
there any plans to bring it back in any form (reading the description
doesn't sounds like there are).
Does anybody know any alternative library to use AES - CTR? I would need
to use it in an asynchronous way like RNCryptor offers it in a very elegant
way.
Or do I have to fork this project to adapt it for my personal use?
—
Reply to this email directly or view it on GitHub
https://github.com/RNCryptor/RNCryptor/issues/161.

--
Rob Napier
Cocoaphony blog -- http://robnapier.net/blog
iOS Programming Pushing the Limits -- http://robnapier.net/book

Thanks your for quick response Rob!
Let's say I have a pretty large encrypted video file (500 - 1000MB). Now I don't want to encrypt the whole file before being able to play it. I would like to start playing right away. Especially on iPhones, encrypting the whole file might take a while.
Also I would like to be able to do forward / rewind seeking when streaming my video later on.
I did some research and found a short article how to do this on android: http://libeasy.alwaysdata.net/network/#server
They suggest to use stream cipher for video encryption. And for AES it's required to use CTR - NoPadding in order to get random access to any location in the stream.
I also read your comments on stackoverflow about AES - CTR security concerns:
http://stackoverflow.com/questions/24290338/encrypt-and-decrypt-a-random-nsstring-with-aes128-ctr-in-ios-with-a-given-key
"An IV collision immediately leaks information about the plaintext in both packets. For this reason, it is inappropriate to use this mode of operation with static keys. Extraordinary measures would be needed to prevent reuse of an IV value with the static key across power cycles. To be safe, implementations MUST use fresh keys with AES-CTR."
The app encrypts / decrypts videos files from a specific trusted source. Thus I think this scenario shouldn't concern me since it's not really possible to do such "power cycles" with large video files?
CCCryptorCreateWithMode() is exactly what I'm currently trying to use. But there are many parts in your library I would love to utilize. Doing everything myself might not be the best idea since I'm by far no expert in security related things.
I'm currently thinking forking your great work will be the best way for me to have some well built base. To get things started, do you think using your implementation with CCCryptorCreateWithMode (CTR, NoPadding) will work or are there any other changes I'll have to do? (I'm not sure if the current configuration / settings will work with CTR)
I'm sorry because I think this is already a bit off-topic since there are no real issues with RNCryptor. It's a great library!
Thanks for your help Rob. I do really appreciate it!

Yeah, this is pretty much exactly what I suspected you were doing. It's not quite as simple as you're probably hoping.
First, the elephant in the room: In nearly every case that I've had this discussion, I've asked "so, who are you securing this data from?" And the answer, in every case, has been "from my users." That's not encryption. That's DRM. DRM is a completely different problem with completely different solutions (it actually has no real solution, since it requires an ongoing war with your users, but in any case the techniques for fighting your users are very different from the techniques for protecting your users). RNCryptor is designed to provide security, not DRM. See Obfuscating Cocoa and this SO question for more on that.
If you're not at war with your users, then the best solution to this is TLS for transport and device data protection for local storage. There's no need for RNCryptor.
But let's say you're at war with your users and want encryption to help with that. RNCryptor is a decent guide, but is not the right tool for streaming video. Yes, you can turn on CTR mode. That won't give you random access because you can't start an RNCryptor stream in the middle, regardless of the block cipher mode. RNCryptor expects a header, and there won't be one.

The app encrypts / decrypts videos files from a specific trusted source. Thus I think this scenario shouldn't concern me since it's not really possible to do such "power cycles" with large video files?

The problem in CTR is that you need a nonce and a key, and you need to make sure that no two packets ever (in the world, at least in the group that the attacker can see) have the same nonce and key, or both packets can be decrypted. Selecting unique nonces is surprisingly tricky. It's not just the first nonce you have to worry about. It's every nonce. A long stream (like video) can require tens or hundreds of millions of nonces. Making sure that two packets never have the same nonce is harder than it sounds.
When you factor in that your random number generator might be biased, it gets much worse. The "power cycle" issue has to do with the fact that it is very difficult to avoid a biased RNG shortly after you've booted, so random numbers picked soon after a reboot may be much more predictable than you would expect. To do CTR correctly, you really need to both track nonces and rotate keys periodically. That is very different from how RNCryptor works (and why I removed CTR). If you do go down the CTR route, and need real encryption, you should at least study Appendix B of NIST-800-38A.
Weak DRM solutions, though, don't really need good encryption. They just need something that unskilled attackers will give up on. The linked Java examples is wildly insecure since they use a hard-coded key and nonce. That's totally broken on several levels, but for weak DRM it's probably fine. Any serious attacker has lots of ways to decrypt your stream anyway, so "encryption lite" is good enough. But that's all this is. If you want actual encryption, the examples in that article are useless. I haven't looked at the underlying library. I don't know how its internal security is, though it could be fine if used correctly (the examples just don't).
The key feature you would need to reimplement to get random access (and that RNCryptor is poorly suited for) is the rebaseCipher() function. Using CTR alone isn't enough. You may find RNCryptorEngine useful, but it's probably the highest-level class in the system that would really work for you.
Personally I'd research HLS or HTML5 video rather than trying to invent a new solution. HLS has DRM built in, maintained by Apple and enforced by the OS and device. It's far from perfect, but certainly stronger than anything you'd build in a week or two. There has been talk about HTML5 video DRM, though I don't know a lot about that. I don't know if offline storage is directly supported, but you can always implement it via proxies (either via NSURLProtocol, or CocoaHTTPServer.
Good luck!

Well, thats by far a way better and more detailed answer than I would have ever expected. Many thanks for your time!
And you are right, in the end I try to protect data from my users. A well built DRM solution would be the best option I guess. This should be my goal in the long term.

http://robnapier.net/obfuscating-cocoa

I really enjoyed reading this blog post. Thanks for sharing.

If you're not at war with your users, then the best solution to this is TLS for transport and device data protection for local storage. There's no need for RNCryptor.

Device data protection would be sufficient on iOS but it's going to be hard on Mac OSX or Windows.

A long stream (like video) can require tens or hundreds of millions of nonces.
Making sure that two packets never have the same nonce is harder than it sounds.

Okay, I got it. For me the effort to correctly implement AES - CTR doesn't doesn't comply with its benefits.

Personally I'd research HLS or HTML5 video rather than trying to invent a new solution.

Thanks for pointing out this options. I would love to use an already working solution like HLS or HTML5 but I'm limited to some requirements where I can't use any of them.
I think as a first "quick" solution I might try to implement some not highly secure AES - CTR encryption.
I need to provide some basic protection to avoid video files being easily copied and shared. For now it doesn't have to be highly secure. It's more important to avoid poor user experience by long loading / decryption times.
Many thanks for your help Rob!

@sust86 What you need is authenticated streaming encryption (streaming AEAD). Inferno library supports streaming AEAD and fits your scenario.

@sdrapkin @sust86
Inferno does look nice. The author's underlying goals are basically identical to RNCryptor's (tilted towards .NET choices rather than CommonCrypto choices). At first look I think his specific choices are good ones. I haven't studied his CTR implementation, but it looks like a good way to do it safely.
That said, you could pretty easily implement his Streaming AEAD on top of RNCryptor.  Each block has a full header and HMAC. You could build exactly the same thing by encrypting each block you want using RNCryptor and then concatenating them with a wrapper that said how long the block is (using a fixed length block would be slightly more complicated because RNCryptor uses padding). The overhead would be slightly larger than for Inferno, but not by a lot. It could be done securely without any modifications to RNCryptor. As I say, just take each block of data, encrypt it, and then glue them together, and you get something pretty close to Inferno with just a little bit more overhead (~10-26 bytes per block).
I'm not sure what use Inferno would be directly, though. It's very .NET specific.

@sust86 Did you implement AES-CTR for your requirement or found any other alternative? I have similar requirement to encrypt downloaded video and decrypt them runtime while they are being played where user can even seek bath and forth.

@sust86 See FAQ: Does RNCryptor support random access decryption?

@rnapier Thanks for the info but as @sust86 had similar requirement based on above conversation. Wanted to know what approach he took for the same.

I couldn't come up with any alternative so far!
I started building something based on Robs RNCryptor library. Basically we were modifying it to use AES-CTR in a fairly insecure and easy to implement approach. It's not yet done since I'm stuck in some other things at the moment!

@sust86 @ps-sstumpfl @javal-idyllic  I am in the same situation as of yours. Have any of you figured out how to achieve AES-CTR video streaming ?
Kindly share the alternative you people have used for protection to avoid video files being easily copied and shared.


Add files via upload

IMFPA domains mq

@kenji-patole Please provide us with:

the school official full name (not just an abbreviation)
the school official website URL
the school street address, including city and country
an URL of a page on the official website where the school offers an IT-related long-term (>1 year) course
a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.

@kenji-patole You might miss my previous comment. Please react.

@kenji-patole I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the aforementioned issue. Thank you for your understanding!


Can't search with @recommended

Disable a couple extensions
In the extensions search box, enter @disabled foo replacing foo with a word in one extension
enter
All extensions still show

This works for other filters, for example @recommended npm

@roblourens You reported that @disabled foo is not working but in the last line you said it works for all except @recommended npm. After trying out, I see last line is correct. So updated summary and description accordingly. If not, please report it with what is not working. Thanks.

@roblourens Ignore my previous comment. I think what you reported initially makes sense and reverted summary and description


Making migrations with USE_CLOUD_STORAGE on causes error

Unsure if this is a one time issue or something that would be recurring. Don't hit it myself, but that may just indicate it is the one time thing.
Comes from trying to serialize the Google Cloud Storage file storage extension. Probably just missing something. Will investigate

As a workaround, you can disable it when you generate migrations and it will bypass the problem


Configurable CSS image inlining

🚀 Feature request
Command (mark with an x)

[x] build
[x] serve

Description
Image inlining is nothing new and despite HTTP/2 arguments it still makes sense to inline small images to simplify deployment and optimize app loading and experience (e.g. no icon flickering).
Previously it was working out of the box, then the feature was removed, now with PostCSS loader and postcss-url plugin it is very easy to add this feature back.
Describe the solution you'd like
postcss-url provides rich CSS assets manipulation options e.g. filter by type, size, path, etc.
Describe alternatives you've considered
The only alternative I was able to find is very ugly, it is webpack config patch for custom-webpack:
const transformer = PostCssUrlPlugin([
        {
            filter: '**/*.svg',
            url: 'inline'
        },
        {
            filter: '**/*.png',
            url: 'inline'
        }
    ]);

    let patch: any = null;

    let success = false;

    for (const rule of config.module.rules) {
        if (typeof rule !== 'string' && Array.isArray(rule.rules)) {
            for (const loader of rule.rules) {
                if (typeof loader === 'string') {
                    continue;
                }

                if (Array.isArray(loader.oneOf)) {
                    for (const oneOf of loader.oneOf) {
                        if (Array.isArray(oneOf.use)) {
                            for (const use of oneOf.use) {
                                if (typeof use === 'object' && use.loader.includes('postcss-loader')) {
                                    const options: any = use.options;
                                    const postcssOptions = options.postcssOptions;

                                    // https://github.com/angular/angular-cli/blob/e95ecb8ab0382eb803741619c446d6cc7b215ba0/packages/angular_devkit/build_angular/src/webpack/configs/styles.ts#L164
                                    if (typeof postcssOptions === 'function' && postcssOptions !== patch) {
                                        patch = (...args: any[]) => {
                                            const opts = postcssOptions.call(null, ...args);
                                            const has = opts.plugins.find((x: any) => x === transformer) != null;
                                            if (!has) {
                                                opts.plugins.push(transformer);
                                            }
                                            return opts;
                                        };

                                        options.postcssOptions = patch;

                                        success = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

We did used to have this feature, but it was removed a couple of major versions ago, because in most cases inlining of assets is a performance foot-gun.
For more information see https://github.com/angular/angular-cli/pull/11826#issuecomment-416260575 were the Chrome team provided a number of reasons why inlining of assets is discouraged which eventually lead to removing the feature from the CLI altogether.

@alan-agius4, we create and support enterprise applications that are used primarily as desktop apps e.g. CRMs so smooth experience is our goal.

@addyosmani
Thanks for reaching out about when to inline resources. It was unclear from the thread whether you're distinguishing how you handle different types (web fonts, images etc).
We typically don't see a large number of sites inlining web fonts. Given 60% of origins load at least one web font and occasionally it's multiple families, I'm not sure that we should encourage breaking caching by inlining fonts.
A more popular pattern is preloading your fonts or images if they're critical to early paints to ensure the browser fetches them earlier but without breaking caching. Inlining images (e.g. base-64ing) can have negative perf connotations on mobile devices (last I heard).
Supporting easier inlining seems okay as long as it's an opt-in config authors use themselves and there's documentation warning them about the caveats.

Caching is not a big deal because typically js bundle size is much bigger  (100 times if you compare to the size of SVG icon) than the size of the single resource image/font. Browser spends time loading small files, often you see icons slowly appearing here and there. It is getting worse when the user is offline - UI became a mess, so you naturally want to preload resources when possible (that's what angular service worker does).

@KenjiBaheux:
Inlining:
is bad for repeat visits
is bad for performance (e.g. delays parsing of the rest of the resource where the inlining is happening)
can lead to performance footguns (i.e. forgotten resources that are no longer needed, or inlining the whole family when only one face is needed / critical)
makes font-display pointless (the font has been loaded regardless in all cases)
bloats the bytes count
seems like it would be fast for the UA to consume but it actually isn't the case (still has round trips and main thread business interruptions happening <= I think we tried to fix some of that but unclear if we succeeded, in part we also don't want to encourage inlining).
My take on this is that we shouldn't do inlining

JS bundle is cached, so repeat visits are totally OK. Delayed parsing can be controlled using lazy modules. Other points are simply not relevant.

Hi @kemsky,
Thanks for this feature request. We did discuss this during one of our meetings and we came to the conclusion that we shouldn't add this feature as part of the Angular CLI. The main reasons for this are;

Typically you'd only want to embed a limited number of assets under a certain size in the critical path and is no easy way to do this automatically.
This feature would require a  number of options such as for: allowed file paths, allowed file formats, max size.
Preloading hints are to be preferred.
Encoding an image to base64 manually and adding to the stylesheet is trivial.
Users wishing to embed assets during the build can use 3rd party builders, where they can configure and fine grain their assets embedding rules.
Base64 data is bigger than their original binary representations up to 33%.
Web browser need to wait for the whole base64 stream before continuing to render the CSS (even when the image is not displayed. This would impact negatively on your Core Web Vital metrics.
Extensive documentation would be need as feature comes with a number of caveats and pitfalls.

Overall, if you are experience issues that images are taking too long to appear on screen preloading hints should be preferred.


🔨 Some suggested changes to README

Hello! I was a little bored and decided to do some proof reading. I did not want to change too much, fearing that I might mess something up. But I took the liberty of fixing some spelling and writing, and renaming "Patient assistant" to "Patient's assistant" (such that it matches "Doctor's assistant").
Do as you please with these suggestions.

Looks good, thanks! :clap:


[FEATURE] Support for x-forwarded-host header

When a CDN like eCDN is stacked on top of PWA Kit / MRT, the app may be unaware of the origin that the shoppers browser has landed on. This can result in:

Requests from MRT inadvertently routing through the stacked CDN, often being erroneously blocked by WAF rules.
Requests from browser inadvertently skipping the stacked CDN, and going direct to MRT, created CORS errors.

For the purposes of describing the problem, lets imagine a stacked CDN with the domain www.example.com and a MRT environment with the domain example-production.mobify-storefront.com in a stacked setup:
Browser -> CDN -> MRT
Browser -> www.example.com -> example-production.mobify-storefront.com

Within the PWA Kit, the getAppOrigin utility function and process.env.APP_ORIGIN environment variable are used to help construct URLs used to make requests both in browser and on MRT:
https://github.com/SalesforceCommerceCloud/pwa-kit/blob/51bf787c046d7d8d53cb97d21bb6a79e5bc20c60/packages/pwa-kit-react-sdk/src/utils/url.js#L21-L35
https://github.com/SalesforceCommerceCloud/pwa-kit/blob/51bf787c046d7d8d53cb97d21bb6a79e5bc20c60/packages/pwa-kit-runtime/src/ssr/server/build-remote-server.js#L140
They are set to process.env.EXTERNAL_DOMAIN_NAME, which comes from a MRT environment's external domain (eg. example-production.mobify-storefront.com)
In a stacked setup, this is the wrong domain for building client side absolute URLs.
The browser's origin will be www.example.com, but requests will end up being routed to example-production.mobify-storefront.com, which will result in CORS issues.
There are a few potential user-space work arounds today:
1⃣  Make the MRT env accept requests on the same domain as the CDN

Get a MRT cert of the CDN domain (eg. www.example.com)
Update the MRT env's domain to www.example.com. At this point, the MRT env will not be directly accessible from the browser as the DNS entry for www.example.com will point to the CDN.
Configure the CDN to request example-production-cdn.mobify-storefront.com with HTTP Host: www.example.com.

2⃣ Static Configuration

Using PWA Kit configuration files, store the www.example.com domain.
Rather than using getAppOrigin() to make requests, use the domain from the config files..

3⃣  Dynamic Configuration

Update the Request Processor to pass on the x-forwarded-host HTTP request header.
Update the CDN to pass X-Forwarded-Host: www.example.com in requests to MRT.
Rather than using the getAppOrigin(), use this forwarded value to make requests client side. The request class is available via  the window.Progressive global object.

4⃣ Use relative URLs in browser
One other solution that may work is to use relative URLs when requests are being made to proxies in browser.

It would seem useful to have first class support for one of these options.

When we think about "desirable qualities" of a solution ... ideally:

The solution is performant. When requests originate from the browser, we avoid CORS requests. Whatever the request path, we make the minimal amount of hops.
The solution is "simple". It doesn't add significant complexity to the CDN logic or the PWA Kit code.
It is standards based. That is, its likely that most CDNs support it out of the box as a configuration option as opposed to requiring custom edge logic.

A specific case where it is useful to have the "shopper" facing host is when doing CORS – you might want to decide whether to respond with Access-Control-Allow-Origin headers based on the requested host and to do that, you'd need the origin host.
To implement X-Forwarded-Host in user space, you can:

Configure your Stacked CDN to add the X-Forwarded-Host header. Most CDN provide rules to allow you to do this, for example in CloudFlare, you can use Transform rules to dynamically add the header.
Update your request-processor.js to grab the incoming header and add it to the request class.
Update your ssr.js to pull the value out of the request class and act on it.

// request-processor.js

// 1⃣  Grab the shopper facing host and stuff it in the request class to pass it to ssr.js
export const processRequest = ({setRequestClass, headers, path, querystring}) => {
    const host = headers.getHeader('x-forwarded-host')
    setRequestClass(new URLSearchParams({host}))
    return { path, querystring }
}

// app/ssr.js

// 2⃣ Dig out the value – you can use it however you'd like!
app.get('/request-class', (req, res) => {
    res.json({requestClass: res.locals.requestClass})
})

When we think about how we want to expose this, it should use Express' trust proxy feature:
https://expressjs.com/en/guide/behind-proxies.html
This would make req.hostname behave as folks expect.
This is related to #1667.

Not super keen on 1 as that means you have to setup the custom domain twice on eCDN and MRT. More friction to the launch process.

Hi @drewzboto @johnboxall, sorry to bother you but any news on this? As far as we know the eCDN currently does not pass the x-forwarded-for header by default so I'm afraid the suggested solution will not work as intended when the stacked CDN is the eCDN one.

Hey @mgalassi – if you submit a support request, internal teams can help enabled the x-forwarded-host header on your eCDN zone:
https://help.salesforce.com/
Please note that this is a best effort process and no SLA is provided so if you require eCDN to append this header ask early!
This issue is also related to https://github.com/SalesforceCommerceCloud/pwa-kit/issues/1415, as you may want to use it to vary site based on the incoming request.

Hi @johnboxall, that's what I did some days after writing the comment and I can confirm to everyone that the support team can indeed try to add the header to specific domains. I have asked the team to add it to one of our domains for testing and then they would take approx. 2-3 weeks to add it to all the other domains as well (we are talking about 8-9 four/third level domains that can be easily managed by a single environment).
As always, thank you very much John!

FYI, a support request is no longer needed to enable x-forwarded-host headers on eCDN. They will automatically added when configuring eCDN for Managed Runtime

Hi @drewzboto, excellent news! Thank you very much for the notification!

x-forwarded-host header is now supported is<EMAIL_ADDRESS>Please see the release note here. See an example usage in the react app here.


Packit: Fix version fetching

builds listed in gating can be found at: https://copr.fedorainfracloud.org/coprs/rhcontainerbot/packit-builds/build/5805630/

@cfergeau PTAL


Don't automatically (and opaquely) change the NODE_ENV environment variable

I am in the process of getting Ream working with an existing server application and I was getting a bunch of errors which I found to be due to my environment variable being changed by this call: ream().
The environment variable used by this project at the moment is 'dev'. There does not seem to be a way to force ream() to allow that. Using ream({dev: true}) makes NODE_ENV === 'development', which is obviously unhelpful to this particular application.
Perhaps environment variables should be left to the environment to set them?

Fixed in v1.0.0-beta.6


Setup PandA writer to set create directory depth PV on open

Depends on https://github.com/PandABlocks/PandABlocks-ioc/pull/128 being merged/released.
Tested w/ a real PandA in both the success and failure cases. Resolves https://github.com/bluesky/ophyd-async/issues/317

@evalott100 when you have a chance, if you could make a release of the PandA IOC I will go ahead and merge this afterwards (don't want to merge until a released version of the IOC can work with this).

could make a release of the PandA IOC I will go ahead and merge this afterwards

Will do today :pray:

Released! Merge when ready.

Thank you so much!


haveibeenpwned.com

Would you consider adding https://haveibeenpwned.com to the Adv Recon Framework -> Email Address -> Breach Data -> haveibeenpwned.com?

Added to the next release.  Thanks for the suggestion!


Logger and error handling strategy

Brief feature description
Having a clear strategy for logging and error handling
Detailed information
In some very low layer modules of iceoryx_utils, cerr and terminate are used and not the logger and error handler. A clear strategy is needed whether different approaches can be used and if so which criteria apply.
This also includes exception handling. As we do not want to use them noexcept shall be used for all methods

[ ] ensure noexcept for all methods (includes c'tors)

While we have error-handling.md which summarizes our current error handling strategy and mentions open points (cf. https://github.com/eclipse/iceoryx/pull/343)
How do specifically deal with errors in iceoryx::utils is not addressed in much detail there (we have yet to find a clear strategy for this).
@budrus
I propose to leave this issue open but maybe rename the issue to Logger and error handling strategy in iceoryx::utils.
Even if we do not want to do this, we have not yet verified that all methods are indeed noexcept.

@MatthiasKillat OK, but this is then no more a topic for the 1.0 release. I will update the description


Unable to start Channel Media Relay

Describe the bug
I have implemented Media Relay functionality as per described: https://docs.agora.io/en/Interactive Broadcast/media_relay_android?platform=Android
To Reproduce
Steps to reproduce the behavior:

create two channel
call startChannelMediaRelay
called ChannelMediaRelayStateChanged with ServerErrorResponse

Expected behavior
There should be some mechanism to know the actual error.
Smartphone (please complete the following information):

Device: Samsung
OS: 7.1

Can you try our example to see if it works or not?
https://github.com/AgoraIO/Agora-Flutter-SDK/blob/master/example/lib/examples/advanced/channel_media_relay/channel_media_relay.dart

@littleGnAl  We have tried this but look like it is Agora server issue so raised ticket in Agora support.


feat: stacks integration

Resolves #314, #315, #316, #317, #318, #319, #320

closed in favor of https://github.com/icon-project/centralized-relay/pull/417


Macwire does not consider outer trait members to be candidates for wiring

If I have a trait with an inner trait like this:
trait FooComponents {
  lazy val fooService: FooService = wire[FooService]

  trait FooRequestScopedComponents {
    def request: RequestHeader
    def fooController: FooController = wire[FooController]
  }
}

Macwire (2.3.0) is unable to see the fooService in the outer scope and will report an error like FooComponents.scala:20: Cannot find a value of type: [services.FooService]. Writing the code manually works fine.
My motivation here is to try to create a set of "request components", which are instantiated per-request and can have a dependency on the request. I prefer not to use a traditional "request scope" that uses thread locals because that can be hard to manage across thread boundaries in async frameworks like Play, and it seems far less intuitive than normal dependency injection.
I have a basic example Play app showing the approach here: https://github.com/gmethvin/play-scala-macwire-di-example/blob/50f4771/app/GreetingApplicationLoader.scala. I'd like to be able to replace many of those manual constructor calls with wire calls though.

Macwire could also have an option to consider outer trait members as conflicting with inner trait members of the same type. In other words, it would be an error to define the same type in both the inner and the outer scope. This would potentially prevent scoping-related errors, and would be consistent with Guice does with child injectors.

We could also integrate something like https://github.com/adamw/scala-macro-aop, and generate delegates for the outer scope to the inner scope. That would be the most robust solution for scoped dependencies, since if a trait did not depend on the request it could be easily used in either scope.

I don't think it's possible to access the enclosing class of the enclosing class in a macro (there's only Context.enclosingClass, but it's not recursive)


Stop injecting Ginkgo to controllers for testing

Summary
Ginkgo is used for most, possibly all, tests in CAPC. It tries to be smart when executing controller testing by injecting code to catch controller panics as they run in separate goroutines. When un caught, Ginkgo will recognize there's a panic but won't necessarily 'handle' it.
Injecting test code into sources before running tests is a poor practice that we should remove. Panic issues are typically easy to identify even if Ginkgo doesn't handle it explicitly.

/remove-lifecycle stale


Log Ability

Well, it would be nice to explain on how to set up LOGS and ports. Because, we do not understand, and I don't understand how can I enable that on my VPS (Ubuntu)..

Logs are saved in <bot folder>/logs. The default port is 8890, but can be configured with the config option port. After that, the only thing you need to do is ensure that port is open so that the logs can be accessed over the web.

I'm actually having some real difficulty with this also. As it stands, I'm stuck with logs I can't access, and attachments no one can view, because I can't seem to work out what I'm doing with this function. :(
Definitely feeling pretty silly.
In config.json I have my home IP set (since I'm running it off my local PC for now) and the port set as 8892. This is all port forwarded on the router. However, logs, and attachments are displaying an IP address that is different to what I've input anyway.
I'm really confused currently.

Hey, could you post a picture (or paste) of your config with the token blocked/cropped out? @EvilWalks

Hi @Dragory
Here's a screen... didn't know what I should hide and not, so did all the ID's too.
https://imgur.com/a/cWBMD
Despite that config, the URL's produced by the bot within our inbox server all have a different address, as follows:
http://<IP_ADDRESS>:8892/logs/8cc83042e39eec626a99ec9a9ea30cbc
Thanks for any help you can provide. I feel like it's going to something simple that I've overlooked.

@Dragory still having issues, but it's changed. Doesn't instantly open a page saying unavailable. Instead times out after 20 seconds or so. I'm pretty sure my windows and router firewalls are setup correctly to allow it through.
It displays the correct IP address now.
And yeah, was definitely editing the correct config file.

If the displayed IP (and port) is correct, I'm inclined to say the problem is related to your firewall/router/isp. Can't think of anything that could be causing it on the bot's side (without errors anyway).

@EvilWalks @JustPoppy are either of you still having difficulties?  If not, let's try to get this issue closed.

@Dragory can probably close this one


U14: Create game screens, minor fixes and placeholders

When reloading the gamescreen I go to the Lobby and not the Gamescreen, is that because the server doesn't change TurnPlayer when starting the game (or is it just not implemented) ?

When reloading the gamescreen I go to the Lobby and not the Gamescreen, is that because the server doesn't change TurnPlayer when starting the game (or is it just not implemented) ?

Yess your absolutely correct, the automatic to gamescreen port isn't working yet, because the backend isn't setting the turn value at the moment.


Initial record retrieval slowness

Description
To work out what Records the downloader needs to download, we currently pull a list of ALL records on an account. This request can be very slow especially on weekends. This is because we essentially ask Neos' cloud to give us a complete list of the records on your account which is often huge.
You  can see this when you see the account downloader "stuck" on "Queueing Record Downloads"

Versions Affected
ALL, including ALL forks
Possible Solutions

~Paginate the record search~ - Pagination already occurs from CloudX's RecordSearch class
Finish #21 (see notes on suitability in #21's discussion)
Better status messages around the existing pagination.

Current Workarounds
Try any of the following

Waiting - the request will eventually succeed
Retrying Later - the request will be faster on non-peak times

Based on a report from @epicEaston197

RecordSearch is a CloudX class, Re-decompiling it, there is pagination in place.
We will continue research.

We could re-architect this to be more apparent about what's going on, but this really is a display/observability related issue rather than an actual bug.

Oh yeah, that's fast D:

This was resolved in #190


to do: make clearer generator questions

During installer this question What is your Shopify Api Key? should be more specific to avoid confusion with the number of keys that Shopify gives you.
Maybe What is your Shopify Admin Api Key?.

Just noticed that Shopify API key refers only to Admin API whereas Storefront uses the term token instead.


fix(plugins/plugin-k8s): do not retry if k status doesn't have final-…

…state
Fixes #2235

Description of what you did:

My PR is a:

[ ] 💥 Breaking change
[x] 🐛 Bug fix
[ ] 💅 Enhancement
[ ] 🚀 New feature

Please confirm that your PR fulfills these requirements

[x] Multiple commits are squashed into one commit.
[x] The commit message follows Conventional Commits, which allows us to autogenerate release notes; e.g. fix(plugins/plugin-k8s): fixed annoying bugs
[x] All npm dependencies are pinned.

covered by #2239


Spans's parent must be passed as Context instead of Span(Context)s

spec: https://github.com/open-telemetry/opentelemetry-specification/pull/875

https://github.com/open-telemetry/opentelemetry-js/issues/1611

@vmarchaud sorry about the dup


Add WithDataBindMount and WithDataVolume to NATS.

Fixes #3756
This PR splits out bind mount and volume support from the WithJetStream(...) method.
Microsoft Reviewers: Open in CodeFlow

See https://github.com/dotnet/aspire/pull/3763

See #3763

Snap! I'm going to bed :)

Closing in favour of #3763


Wrong email adress

Subject: Wrong email adress
Description:
Hello,
I just tried to sign-up, but I made a mistake in my email adress, I wrote<EMAIL_ADDRESS>instead of .com.
I tried to refresh the page to change it, but it didn't work, it already took my email adress. Can you help me?
Thank you very much
Results:
Backend version: develop-948446a4
Frontend version:
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Page: https://couchers.org/signup
User:

sorted


[BUG] Prompted to "Install MetaMask" with MetaMask already installed

Describe the bug
While connecting through MetaMask, I'm prompted to install MetaMask, but it's already installed. It looks like having Phantom installed causes this. Looks like Brave, Dawn, Tokenary, and Frame could also cause this issue.
To reproduce
Install the Phantom wallet, and try and connect on any connectkit implementation.
Expected behavior
To connect using MetaMask, without other wallet extensions affecting the experience.
Screenshots

Environment details
macOS v13.4.1 (22F82), Chrome v114.0.5735.133, latest version connectkit
Additional context
It looks like the cause is this line here

Also seeing this issue, quite a bad user experience, as sometimes the "Browser Wallet" option doesn't come up either for some users

Also seeing this issue, quite a bad user experience, as sometimes the "Browser Wallet" option doesn't come up either for some users
Edit; @j6i, I set my dependencies to match connectkit directly, namely,
"viem": "~0.3.19",
"wagmi": "^1.0.0"

and this actually does seem to work as expected

That makes sense, we use the latest versions of wagmi and viem.
I'll consider downgrading. Though it looks like there is a PR for the upgrade. Hopefully, that fixes the issue and I won't need to

This is done on purpose inside the MetaMask connector, if this is removed clicking on MetaMask to connect would popup Phantom wallet or other wallet instead. You need to set the config in Phantom wallet to use MetaMask as desired main wallet, for Brave you set this on browser config I think..

I am also experiencing this with a few testers of my app. This is critical for me.
@lochie is there any estimation on when this will be fixed?
The package doesn't seem to work nicely with both MetaMask & Phantom installed.
I'm fine with issuing a PR if we can have a chat on what you expect from the change, surely the best option would be to decouple them (if possible) and complete support for Phantom.

The opening comment is correct that the issue is coming from the isMetamask function.
With just metamask installed in the browser, it will pass the return false checks specific to Metamask and eventually return true at the end of the function.
However, with any of the other wallets also installed in the same browser, it will return false  before getting to the end of the function where the return true is.
There is a new PR that improves the Injected Connector Code, and i've left a comment because the issue is still present there.

Hey gang! This should be fixed in ConnectKit 1.5.1. Let us know if you find any issues 🫡


Updates for VMSS Orchestration Mode Parameters

Resource Provider
What is the Azure resource provider your feature is part of?
Compute Resource Provider
Description of Feature or Work Requested
Provide a brief description of the feature or work requested. A link to conceptual documentation may be helpful too.
Update VMSS Orchestration mode parameters as discussed:

Support availability zone
Should not need to specify credentials
Remove LB, PIP, NSG Create when creating in VM mode
Check VMSS zonal constraints

Minimum API Version Required
What is the minimum API version of your service required to implement your feature?
2019-03-01
Swagger Link
Provide a link to the location of your feature(s) in the REST API specs repo. If your feature(s) has corresponding commit or pull request in the REST API specs repo, provide them. This should be on the master branch of the REST API specs repo.
https://github.com/Azure/azure-rest-api-specs/blob/master/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json
More specifically
https://github.com/Azure/azure-rest-api-specs/blob/cb742dc4f7afe52a95e1ae79c1aa5a5906e49c08/specification/compute/resource-manager/Microsoft.Compute/stable/2019-03-01/compute.json#L3049
Here are some example templates
https://github.com/fitzgeraldsteele/azure-quickstart-templates/tree/master/201-vm-vmss-orchestrator
Target Date
If you have a target date for release of this feature/work, please provide it. While we can't guarantee these dates,
it will help us prioritize your request against other requests.
12-31-2019

@qwordy please take a look and evaulate the work.

@qwordy  add to S161.

@qwordy add to S161.

OK.

You will see the changes in Azure CLI 2.0.77. Code complete: 11/20/2019 Build to Cloud Shell: 11/22/2019 Official Release: 11/26/2019

If you have other problems, you can comment here or open a new one.


Add notes about maven extra configuration and gpg key.

Description:
In scope of this pull request we update documentation.

Add notes about pom.xml configuration.
Add notes about the GPG key import.
Related issue:
https://github.com/actions/setup-java/issues/83
https://github.com/actions/setup-java/issues/91
https://github.com/actions/setup-java/issues/100

Check list:

[x] Mark if documentation changes are required.
[ ] Mark if tests were added or updated to cover the changes.

Hello, everyone. Could you please take a look on this pull request. If you have any suggestion about docs improvement for maven and gpg.
cc: @galderz @davideicardi  @bissim @bjansen

@dmitry-shibanov Looks OK to me as you did, concise and clear. 👌🏾


Update robots.txt for Improved SEO and Documentation Visibility

This pull request addresses  fixes #1960 of taipy by updating the robots.txt file in the taipy-doc repository to enhance search engine optimization (SEO) and user experience.

SEO Improvement: Allowed search engines to index the latest documentation and version 4.0, ensuring users can easily access
the most up-to-date resources.
Disallowed indexing of older documentation versions (3.0, 3.1, 2.0, 2.1, 2.2, 2.3, 2.4) to reduce confusion and direct traffic to the current content.

These modifications are essential for maintaining clarity in documentation access and ensuring users find the most relevant information.

Your description does not match your commits.

@loadinglit All right. Thank you!


Revised MapData interface

This replaces the SWIG-generated MapData class with a new interface that works more naturally with idiomatic Java. This means:

Code is easily readable and much smaller
Code is maintainable without additional tooling
Interface is more precise and clear
Interface is safer and doesn't rely on global statics (resolves #560)

Some parts of this could potentially be improved:

Naming of "MapData": Users of other SDKs will likely be more familiar with this as a "layer", but we also want to make clear the connection to "data sources".
Efficiency of JNI data transfer: Passing features through JNI could theoretically be batched for greater speed, instead of passed with one JNI call per feature.
The "addToMap", "syncWithMap", "removeFromMap" pattern: I think this will actually work pretty well, but I would like to hear feedback on it.
Storing "DataSource" pointers in Java: I'd rather the library handed out integer handles for accessing data sources, then we'd be able to know whether a reference has somehow been invalidated without dereferencing a freed pointer.

TODO:

[x] implement Tangram::removeDataSource
[x] test polygon and geojson features

@tallytalwar @karimnaaji check this out when you get a chance, thanks!

Reviewing this now.

Can you have a PR ready on Eraser-map repo, for the corresponding changes? And then we can cut a new release whenever this gets merged! Or we can wait for eraser-map to pick these changes, till we actually have a more proper release :D.

Yeah, probably not a bad idea to try out these changes in eraser-map to see what it looks like on the client side. That said, I don't think I'll make a PR with those changes yet because it'll just sit there and fail builds until this interface is in a release that we can point to.

Sure since EM is dependent on an explicit release of tangram, we can do it more serially now, and will not result in breaking EM master builds.

I've been reading a lot of the Google Maps API documentation today and if we're leaning towards a more similar interface (we might be soon) we could go for a lifecycle that looks more like:
// Create a new data layer;
// No public constructor for MapData, you must go through a map instance.
MapData pois = map.AddDataLayer("pois");
// These can be accessed from the map object directly,
// so we can't have an orphaned native object with no java reference to it.
assert pois == map.dataLayers().get(0);
// Add features to the layer.
pois.addPoint(new LngLat(0, 0), properties);
// Synchronize with the map.
pois.syncWithMap();
// Remove the layer from the map,
// This removes the data layer from the map object, along with the native data source.
pois.remove();
// The 'pois' object still exists until it's GC'ed, but now it does nothing.

There are trade-offs to this approach too, just something to consider.

Yup, I was also looking at GMaps API and I agree there are trade-offs both ways. I am more inclined to mimic more of GMaps API, to have an easier learning curve for our users who are familiar with GMaps SDK.

We can also provide helper wrapper methods for LatLng to LngLat, wrt compatibility with GMaps API.

After discussing with @tallytalwar we've agreed that there will be further refinements needed to this interface that may require more substantial change to the core library. The desired result is documented in #653. However this PR as it stands is still a major improvement to code quality and will therefore be merged shortly.


Automatic GitHub release

On every push/merge on main or release/* branch create a GitHub release (pre release for main) and upload the deb package as attachment

Works with 690d991d71347919914eea7d7f31ccef9e62310f


Chore/dependencies 2022 06 20

Description of change
This week's dependabot updates.
Checklist

[ ] If this is a releasable change, has a news fragment been added?

Explanation
A news fragment is required for any releasable change (i.e. code that runs in or affects production) so that a corresponding changelog entry is added when releasing.
Check changelog/README.md for instructions.

[x] Has this branch been rebased on top of the current develop branch?

Explanation
The branch should not be stale or have conflicts at the time reviews are requested.

[ ] Is the CircleCI build passing?

General points

Other things to check

Make sure fixtures/test_data.yaml is maintained when updating models
Consider the admin site when making changes to models
Use select-/prefetch-related field lists in views and search apps, and update them when fields are added
Make sure the README is updated e.g. when adding new environment variables

See docs/CONTRIBUTING.md for more guidelines.

@vfarah-if I think we don't need a changelog for dependabot updates? is that the same as a news fragment?


Detect wrapper configuration changes between TAPI build invocations

Fixes #21137

@bot-gradle test QFL

OK, I've already triggered the following builds for you:

QuickFeedbackLinux build

@bot-gradle test QFL

OK, I've already triggered the following builds for you:

QuickFeedbackLinux build

@bot-gradle test QFL

@bot-gradle test RFM

OK, I've already triggered the following builds for you:

PullRequestFeedback build

We decided not to implement change detection. See https://github.com/gradle/gradle/pull/21391.


upcoming events

could you add vertical hairline separators between each event

This can be closed. The button is missing though on my interface?


refactor(es6): refactor PrefetchPlugin to ES6 class

What kind of change does this PR introduce?
Refactor (ES5 => ES6)
Did you add tests for your changes?
No functionality was edited. Tested with<EMAIL_ADDRESS>If relevant, link to documentation update:
N/A
Summary
This is my first OSS contribution ever. Saw that this dependency needed some ES6 care... so I gave it some.
Does this PR introduce a breaking change?
Nope.

Thanks. Congrats on first PR. :-D 😍 🤗

Thanks. Congrats on first PR. :-D 😍 🤗


Akita 7 fails in jest because we are missing type:module from package.json

Is this a regression?
Yes
Description
The akita package.json does not include "type": "module"
https://unpkg.com/browse/<EMAIL_ADDRESS>and node will treat "main" field as commonjs if not specified.
https://nodejs.org/api/esm.html#esm_enabling
I'm not sure if this is the only thing that needs doing for it to work, but I'm guessing someone else knows :)
Please provide a link to a minimal reproduction of the bug
No response
Please provide the exception or error you saw
SyntaxError: Unexpected token 'export'

Please provide the environment you discovered this bug in
jest 27.4.3
akita 7.0.1

Anything else?
No response
Do you want to create a pull request?
No

+1 Same here with
jest 27.4.3
akita 7.0.1

any workarounds? Adding "type": "module" to<EMAIL_ADDRESS>doesn't help.

I am also getting this.
Diff: https://github.com/tony/cv/commit/bf4d4a1b0a1a31dad15354dba41d3cffdc2ae1ba
CI run w/ error: https://github.com/tony/cv/runs/4826668166?check_suite_focus=true

@NetanelBasal Any details on this?

https://stackoverflow.com/questions/49263429/jest-gives-an-error-syntaxerror-unexpected-token-export

@NathanAlcantara I appreciate the link! Thank you.
Hm, I still don't have an idea what's going on.
Any idea on what's changed in Akita between 6 and 7 that could be causing this issue.
Regarding the the type: module in package.json, what would be the impact on that? (I assume there are structural / build reasons not to do that?)

I'm not sure. I didn't change anything. I think it is something with Jest.

@NetanelBasal if I downgrade Akita to vrs 6.2.0, it works fine with same version of jest.

@NetanelBasal And at https://github.com/datorama/akita/issues/778#issuecomment-1013750863 I have a diff and CI runs shows specifically that updating 6 -> 7
However, that still doesn't preclude the issue being rooted our own project's environmental / config issues rather than akita's build/packaging/etc.  It could still be our environment's were / have become incorrect and something underneath the hood, e.g. an inner dependency, brought it to the forefront

We are not doing anything special. We're using Nx to build the package. Is there any issue in Nx regarding what you describe?

Maybe this will help you https://github.com/datorama/akita/issues/781#issuecomment-1018856090

@NetanelBasal I consulted the NX docs and could not find any mentions on how to build multiple module types. Pre nx13 akita had many module systems bundled and referenced in the package.json, now only the ESModule version is bundled. My personal preference would be to try to continue to support multiple module types. Maybe building with @nrwl/angular:package would support more module types out of the box?


i found a bug

jk

this is a bug https://www.gstatic.com/allo/stickers/pack-100002/v2/xxhdpi/13.gif

bug


Error in the time frame of the event

Hello
I have a problem with the timeframe for the events on the calendar tab.
Instead of the start time, I have a strange entry:
e.g. 2efamult - Work instead of 8:45 AM - work.
You can help
Atomic calendar v4.4.2
ha core 2021.7.2
supervisior 2021.06.8

Please could you confirm if you have language set and what it is set to?

Polish

screen

fixed time format was - default

fixed time format was - default

does this mean you fixed the issue?

yes I hope for what is ok


response gives invalid status code when number is sent in res.status(200).send();

Hi there,
While I was testing my own PR, https://github.com/expressjs/express/pull/5445, I encountered an other issue sending number to res.send(<number>),
I get the following error:

<meta charset="utf-8">
<title>Error</title>

RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: 10
    at ServerResponse.writeHead (node:_http_server:352:11)
    at ServerResponse._implicitHeader (node:_http_server:338:8)
    at ServerResponse.end (node:_http_outgoing:1046:10)
    at ServerResponse.send (/home/bhavya/Documents/Sample/node_modules/express/lib/response.js:232:10)
    at /home/bhavya/Documents/Sample/index.js:7:21
    at Layer.handle [as handle_request] (/home/bhavya/Documents/Sample/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/bhavya/Documents/Sample/node_modules/express/lib/router/route.js:144:13)
    at Route.dispatch (/home/bhavya/Documents/Sample/node_modules/express/lib/router/route.js:114:3)
    at Layer.handle [as handle_request] (/home/bhavya/Documents/Sample/node_modules/express/lib/router/layer.js:95:5)
    at /home/bhavya/Documents/Sample/node_modules/express/lib/router/index.js:284:15

Is this intentional, or it is a bug that needs to fixed ?
meanwhile, res.json(10) works fine.
@mikeal @peters @nick @mcolyer @kavu

It is not a bug. As per the documentation, if you provide a number to res.send it needs to be a valid staus code number, otherwise it is expecred you will get an error back that it is not a valid status code.

We deprecated that behavior in 4.x and I think it may be removed in 5. Using res.sendStatus is the preferred method to send a status code number. This is in effort to reduce the number of overloads on res.send signature.

We deprecated that behavior in 4.x and I think it may be removed in 5. Using res.sendStatus is the preferred method to send a status code number. This is in effort to reduce the number of overloads on res.send signature.
@dougwilson anyways, when we are expecting a stable release of version 5 in express ?

Wow

It is in the works.


Add share menu to achievements

Folks love to share their accomplishments on social media. Let's add a Share menu to the achievement cards.

[x] Twitter
[x] Facebook

Fix in  fc04aa4

This is currently not possible in mdl with the way we are dynamically creating the cards


Need a Social badge on the side.

This i took it from the gssoc website, may be we ca integrate this .
I will be providiing the link on new issue

@sanjay-kv sir i want to work on it

@sanjay-kv Can I work on this

@sanjay-kv Do we have to keep this social icon container on every page??

Just home page will do

@sanjay-kv Sure, raising a PR for fixing the spacing in mobile view

In the mobile view is bad , so we can reduce the width a bit and match the color of the background. so it will blend to the page.

@sanjay-kv Ok, I have already fixed the width, will fix the bg now


Gitter channel

It be nice if we could ask little howto questions on gitter.

GH issues are more searchable (imho). I don't think there'd be enough people on gitter to constitute a dedicated room. What are your thoughts about having a channel in the F# slack??

I have a strong preference for GH issues.  I don't even keep slack open anymore.  Please feel free to ask even the most boring questions here.  It doesn't bother me and I know that other people will read them from time to time and it will help them also.

Ok, thanks for your input. I'll post questions on GH however small 😄


Github token should not be compiled with source code.

I am not a rust dev. But I don't think it's a good idea to compile github token altogether in the source code.
This fix fetch GITHUB_TOKEN from environment variable.

In the case of code that reads the Github Access Token from an environment variable, the Github Access Token in the environment variable is not incorporated directly into the binary when it is compiled.
This is considered redundant because the environment variable on the user's side is read, so the environment variable must be set even if the user is not the developer.


LayerSwitcher click events are propagated to ol map

If the user changes the active layers with the LayerSwitcher and the click occurs by chance over a map feature, not only the LayerSwitcher handles the event, but the event is also propagated to the ol map and the feature is clicked.
How to stop event propagation from the LayerSwitcher to the ol map?

Hi, this should be fixed in a future ol release (see https://github.com/openlayers/openlayers/pull/10502)

Since I recently updated ol, it is fixed.


How to extract the apk file ?

main steps:

download the correct recovery ROM file
unpack the payload.bin file from ROM file
extract the system_ext.img file from payload.bin
mount the system_ext.img file and copy apk file

you can follow this shell to extract apk file.
requirements:

run on Ubuntu
payload-dumper-go

@code4fun1024 Thank for your help. But I need more details. Where's the offical link to download the correct recovery ROM? Which specific version should I download?

@hungpham3112 https://mirom.ezbox.idv.tw/en/phone/

@code4fun1024
What do we need to edit in settings.apk ?
Just extracting settings.apk - does not work
Help appreciated
Cheers
Bm

@code4fun1024 Thanks for your concise instructions and @musaprojectx for the download link. To help other people, I will provide detailed instructions below for reproducibility. It worked on my phone Redmi K60 Ultra.
Step 1: Determine your device ROM code

Open ' My device ' in your phone's Settings app. It will show your ROM code. My ROM code is UMLCNXM

Step 2: Download a suitable Zip developer  file for your ROM

Navigate to https://mifirm.net/ and select your phone. My device is Redmi K60 Ultra

The CN part in my ROM code tells me I should select the China column. For example, if your ROM code is UMOEUXM you should select the EU column.

Under Zip developer section, download the zip file with Mi Firm server for the fastest downloading speed. My recommendation is that you should select the file with the Update at column from 1/2024 -> 5/2024. Here I chose the latest version which was updated at 2024-03-15 10:30:26.

Step 3: Unpack the payload.bin file from ROM file with payload-dumper-go.

Unzip your downloaded file, you should see the payload.bin file there

Follow the instructions in the README file to download and install payload-dumper-go.
Open the terminal, and use the cd command to move to the folder where payload.bin is located. For example:

cd /path/to/your/file

Run the Extraction Command

payload-dumper-go -p system_ext -o extract_files payload.bin

Step 4: Extract the Settings.apk

Copy those commands from @code4fun1024 shell script

mkdir -p extract_files/mount_files
sudo mount -o ro ./extract_files/system_ext.img ./extract_files/mount_files
cp ./extract_files/mount_files/priv-app/Settings/Settings.apk "./settings_apks/Settings_${codename}_from_${version}.apk"
sudo umount extract_files/mount_files

Voila, you successfully extracted  Settings.apk.

@hungpham3112
hi, completed third step..now i have system_ext.img..4th step so confusing..can you help?

@hungpham3112
Step 4 is not clear, You need to break it down for the average Windows user. The shell script where it needs to be run and how?
You have to make it clear. Your Guide is almost perfect and we are already very thankful to you

@hungpham3112
Step 4 is not clear, You need to break it down for the average Windows user. The shell script where it needs to be run and how?
My understanding is that shell script needs to be run in Ubuntu, can you please convert it for Windows?
You have to make it clear. Your Guide is almost perfect and we are already very thankful to you

Hi, @Mostwest and @nandhu00090 I assumed developers, not normal users read my instructions. The 4th step uses mount, so you need to use a Unix-based environment to use this. It is recommended to use Linux instead of Windows for those "tweaking" things. I updated the instructions in step 3. Just use WSL2 Ubuntu. Tell me if you have any problems.

@hungpham3112
Step 4 is not clear, You need to break it down for the average Windows user. The shell script where it needs to be run and how?
My understanding is that shell script needs to be run in Ubuntu, can you please convert it for Windows?
You have to make it clear. Your Guide is almost perfect and we are already very thankful to you

Hi, @Mostwest and @nandhu00090 I assumed developers, not normal users read my instructions. The 4th step uses mount, so you need to use a Unix-based environment to use this. It is recommended to use Linux instead of Windows for those "tweaking" things. I updated the instructions in step 3. Just use WSL2 Ubuntu. Tell me if you have any problems or if you successfully bypass.

Normally normal users won't but it was about a thread for unlocking bootloaders for Xiaomi phones, so a lot of "normie" people who are not developers will read this because of Xiaomi making unlock the bootloaders difficult.
I understand if you think it's a waste of time to convert this for Windows, I'm worried about people getting scammed by fake Xiaomi unlockers because also this method can't be runned on Windows. So be it then

@hungpham3112
Step 4 is not clear, You need to break it down for the average Windows user. The shell script where it needs to be run and how?
My understanding is that shell script needs to be run in Ubuntu, can you please convert it for Windows?
You have to make it clear. Your Guide is almost perfect and we are already very thankful to you

Hi, @Mostwest and @nandhu00090 I assumed developers, not normal users read my instructions. The 4th step uses mount, so you need to use a Unix-based environment to use this. It is recommended to use Linux instead of Windows for those "tweaking" things. I updated the instructions in step 3. Just use WSL2 Ubuntu. Tell me if you have any problems or if you successfully bypass.

After everything I still get invalid when trying to update the APK file
my ROM is <IP_ADDRESS>.UNPEUXM and I've used miui_PERIDOTEEAGlobal_OS<IP_ADDRESS>.UNPEUXM_8848314383_14.0.zip which is the stable recovery for POCO F6 EEA
I'm missing something?

Sorry OP, but what is the point of extracting the apk and installing same app again? If i didn't change anything? How it will bypass?


ValueError: failed to load value type: binary-expr

ERROR: failed to statically recover model for node [_node] in package
[yocs_virtual_sensor___node.log]

Fixed


BUG? MemoryFileSystem started to raise error when creating existing dir

In the latest release, the MemoryFileSystem started to raise an error in mkdir if the target directory already exists as a directory. I think this changed in https://github.com/intake/filesystem_spec/pull/654, and it might also have been a deliberate change. But it is inconsistent how the local filesystem works.
LocalFileSystem: works to create existing directory but fails if it already exists as a file:
from fsspec.implementations.local import LocalFileSystem as FSSpecLocalFileSystem
fs = FSSpecLocalFileSystem()
fs.mkdir("test_dir")
fs.touch("test_file")

# creating an existing dir is fine
>>> fs.mkdir("test_dir")
# creating a dir that already exists as a file errors
>>> fs.mkdir("test_file")
...
FileExistsError: [Errno 17] File exists: '/home/joris/scipy/test_file'

MemoryFileSystem: the latest release started to raise in both cases:
from fsspec.implementations.memory import MemoryFileSystem
memfs = MemoryFileSystem()
memfs.mkdir("/test")
memfs.mkdir("/test/subdir")
memfs.touch("/test/file")

In [17]: memfs.mkdir("/test/subdir")
---------------------------------------------------------------------------
FileExistsError                           Traceback (most recent call last)
<ipython-input-17-24458f166c60> in <module>
----> 1 memfs.mkdir("/test/subdir")

~/miniconda3/envs/arrow-dev/lib/python3.8/site-packages/fsspec/implementations/memory.py in mkdir(self, path, create_parents, **kwargs)
     97         path = self._strip_protocol(path)
     98         if path in self.store or path in self.pseudo_dirs:
---> 99             raise FileExistsError
    100         if self._parent(path).strip("/") and self.isfile(self._parent(path)):
    101             raise NotADirectoryError(self._parent(path))

FileExistsError:

In [18]: memfs.mkdir("/test/file")
---------------------------------------------------------------------------
FileExistsError                           Traceback (most recent call last)
<ipython-input-18-783aa803549c> in <module>
----> 1 memfs.mkdir("/test/file")

~/miniconda3/envs/arrow-dev/lib/python3.8/site-packages/fsspec/implementations/memory.py in mkdir(self, path, create_parents, **kwargs)
     97         path = self._strip_protocol(path)
     98         if path in self.store or path in self.pseudo_dirs:
---> 99             raise FileExistsError
    100         if self._parent(path).strip("/") and self.isfile(self._parent(path)):
    101             raise NotADirectoryError(self._parent(path))

FileExistsError:

I don't know what the specified behaviour should be (since the specification isn't clear about this: https://filesystem-spec.readthedocs.io/en/latest/api.html#fsspec.spec.AbstractFileSystem.mkdir).

OK, if that's used as the reference, that's indeed clear.
I personally find the FileExistsError a bit confusing since it's not a file but a directory that exists, but yeah os.mkdir does that as well.


removed

FYI -- the example is in the MotionLayoutExperiments project. It simply uses two image, one already blurred. That said the effect is neat enough that we'll probably make it on the fly in a future version of MotionLabel...


Extension issue

Issue Type: Bug
Extension Name: jupyter
Extension Version: 2020.11.372831992
OS Version: Linux x64 5.4.0-53-generic
VSCode version: 1.51.1

:warning: We have written the needed data into your clipboard. Please paste! :warning:

@Alexfm101 Can you please provide some more information on the bug you are experiencing?


robust handling of fileno

More robust handling of fileno() which is often implemented badly in proxies and wrappers.
Should fix https://github.com/Textualize/rich/issues/2645

Codecov Report
Base: 98.39% // Head: 94.93% // Decreases project coverage by -3.45% :warning:

Coverage data is based on head (571cb3e) compared to base (379a38c).
Patch coverage: 0.00% of modified lines in pull request are covered.

:exclamation: Current head 571cb3e differs from pull request most recent head 3235125. Consider uploading reports for the commit 3235125 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2678      +/-   ##
==========================================
- Coverage   98.39%   94.93%   -3.46%
==========================================
  Files          63       63
  Lines        6796     6797       +1
==========================================
- Hits         6687     6453     -234
- Misses        109      344     +235

Flag
Coverage Δ

unittests
94.93% <0.00%> (-3.46%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

rich/console.py
96.23% <0.00%> (-1.78%)
:arrow_down:

rich/_windows_renderer.py
0.00% <0.00%> (-100.00%)
:arrow_down:

rich/_win32_console.py
3.01% <0.00%> (-86.94%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fixing issue for dotnet framework users unable to run project

This allows users to build and run a .net framework console app using dotnet

@bjcull is there any issue with this one? Looks ok to me.


the cosign command isn't in the image

Per the readme, the cosign command needs to be in there to verify the places to pull the image, yet its not in the base image.

I've thought this over and posted some of my thoughts in discord.
I am not keen on adding cosign to the ucore images, but @castrojo seemed agreeable to adding it to the ublue *-main images.
So I'll PR that and also work on improving the cosign docs in README files.


enhance lds load store to include predicate

This PR is to include the predicate input for lds load store, which can fix some reduce unit test for amd backend.

Oops, I didn't see you'd marked this as a draft.  :)  Well, I hope my comments are still useful.

closing this due to inactivity. Please re-open on top of main w/ @jlebar 's comment if this is important