Change Apache document Root folder on NTFS partition

Hi,
I have successfully enabled and installed the WSL on my Windows 10 laptop. I have also installed apache.
The default apache webpage is available at http://localhost so it works.
What I would like to do is to change the document root configuration to the mounted Windows disk partition, in /mnt/d/Dropbox/blog. I have checked the blog folder and set :
chown to www-data:www-data
chmod to 755

After service restart, I get the Apache 403 Forbidden Error.
I have checked over the internet, but no serious issue. Do you have any idea?

Required packages and commands to install : apache2

WSL's "DriveFS" does not support true linux-style permissions.  There was a way to do it in the past (for example, April and May's insider builds) by moving your whole WSL installation with "VolFS" to a .vhdx file on another harddrive, but there are problems doing that in recent builds.  Nobody is completely sure why it doesn't work anymore, but the devs have said they're looking into it.

Thanks for your answer fpqc!

@fpqc -- That doesn't entirely explain the "Forbidden" response, since on DrvFS everything is wide open to begin with (except for obvious protected directories) and chown doesn't accomplish anything. Or maybe that is the reason, something about permissions being too open?

I think I may know what is going on...
What does apache's error log say about it?
Is there an index.html file in that directory, or any files at all for that matter?

Hi,
In the meantime, I have disabled the WSL feature so I can't really take a look in the log file, but I can still re install it...
But the folder /mnt/d/Dropbox/blog was empty*
*### It probably had a desktop.ini file

I don't know why it doesn't work using a folder on NTFS partition as apache root, but as a workaround you can set it up the same way I do.
Just make a symlink to your folder on NTFS partition in /var/www.

@JayBeeDe -- If I am not mistaken (which I certainly could be) the reason you got a "403 Forbidden" error was because there was no index.html file in the directory and the apache config "forbid" the creation of a directory index to replace it. If I am right, putting an index.html file there would have resulted in normal rendering of the web page. Or maybe some other problem would have shown itself...

I have the same problem. Running apache as root needs recompile... I cannot move the www files into linux subsystem folders... I need them to be accessed from windows

Same problem here. Any solution?

I had the same issue and solved it by adding the new directory to apache2.conf, i.e.:
<Directory  /mnt/d/Dropbox/blog/>
       Options Indexes FollowSymLinks
       AllowOverride None
       Require all granted
</Directory>

And restart Apache.

That actually worked. But still I am not sure why it can't work with just VirtualHost configuration. Maybe that issue is not just with NTFS systems, it might be so by the Apache design.

It's Apache design indeed. Yesterday I managed to setup multiple virtual hosts in my D drive following this guide: https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04. Once you have made the change in apache2.conf, it's virtually copy & paste to create more hosts.

Personally it was an Apache configuration like @diplopito, sorry...

I had the same issue and solved it by adding the new directory to apache2.conf, i.e.:
<Directory  /mnt/d/Dropbox/blog/>
       Options Indexes FollowSymLinks
       AllowOverride None
       Require all granted
</Directory>

And restart Apache.
##############
Hi, I have same issue, done this but stil not working for me, I am getting
" chmod(): Operation not permitted "

do you know who owns that folder in your setup? is it $USER:$USER or apache:apache
?? >> /mnt/d/Dropbox/blog/

@diplopito @everyone well, my issue is, in wsl, when I do chown to www-data and chmod 755, the permission changes are not being applied, hence the " chmod(): Operation not permitted " error I am getting, apache2 can't read those application files as it hasn't got right permissions, this is on Windows subsystems for linux, (WSL).
I am running ubuntu.

@LowitGC sorry for this silly question, but are you using sudo? I'm also using Ubuntu and don't have this problem. Which command are you exactly using so I can try to reproduce it?

@diplopito I don't know if you understood, I am using Ubuntu on WSL >> windows subsystems for linux.
my drive where wwwdocroot is d: on windows machine which I have mounted to this Ubuntu machine as /mnt/d/xyz
now, on the bash, I am as non sudo user lets say xxxx >> below is my bash with sudo as xxx is normal user.
xxx@XYNsystem sudo chown www-data:www-data /mnt/d/xyz/
and
xxx@XYNsystem sudo chmod -R 755 /mnt/d/xyz
and to check it if I did ls -la on /mnt/d/xyz
its still shows as owned by user xxxx  xxxx instead of www-data www-data
and my apache2 says >> chmod90: Operation not permitted
This is in detail, I can't see how much more better I can explain this for you to replicate!!

@JayBeeDe
Did you solve your issue? and how?

It was 2 years ago... I just remember that no it was not working as expected at the end!

@diplopito , Thanks for clarifying, It isn't working for me with %U %U and I still have file permission errors, however, I have been able to mount using drvfs file type with metadata and I could change to www-data and it all works fine now and file permissions are persistent.
This might give you more info on drvfs file type mount,
https://www.howtogeek.com/331053/how-to-mount-removable-drives-and-network-locations-in-the-windows-subsystem-for-linux/
Thanks

I had the same issue and solved it by adding the new directory to apache2.conf, i.e.:
<Directory  /mnt/d/Dropbox/blog/>
       Options Indexes FollowSymLinks
       AllowOverride None
       Require all granted
</Directory>

And restart Apache.

Just had same 404 Forbidden error with Apache2 running on WSL in Windows 10.
This your tip actually solve the issue. Thanks again
@diplopito

Just had same 404 Forbidden error with Apache2 running on WSL in Windows 10.
This your tip actually solve the issue. Thanks again
@diplopito

Glad that it helped. I've taken it a step forward: https://www.youtube.com/watch?v=0U2oN4v_bnQ

That actually worked. But still I am not sure why it can't work with just VirtualHost configuration. Maybe that issue is not just with NTFS systems, it might be so by the Apache design.
--- edit ---
Yup! Checked with Ubuntu, you can't set VirtualHost with root outside "/var/www" without adding the destination in apache2.conf.

I resolved with VirtualHost configuration like this:
<Directory  /mnt/e/www/test/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted

<VirtualHost *:80>
ServerName test.local
ServerAdmin webmaster@localhost
DocumentRoot /mnt/e/www/test

ErrorLog ${APACHE_LOG_DIR}/error_test.log
CustomLog ${APACHE_LOG_DIR}/access_test.log combined


[GLUTEN-1632][CH]Daily Update Clickhouse Version (20231122)

Auto commit by gluten daily build, please check the build status and merge it if it's green.

Fix #3769


How to handle Dependencies with dart:ffi when creating kernel snapshot?

This use case might rare, but it exist currently in one of my projects.
I have a server written in dart, which has a direct dependency to a library that uses dart:ffi to communicate with a C-Library.
That server gets compiled to a kernel snapshot via: dart compile kernel -o bin/server.dill bin/startServer.dart
Afterwards I run that compiled kernel snapshot with the following command: dart --disable-service-origin-check --disable-service-auth-codes --enable-vm-service=9999 bin/server.dill
So when this running dart server tries to reach the C-Library from that direct dependency, I mentioned, it fails. The corresponding C-Library is not available/doesn't exist in that kernel snapshot.
I haven't currently that corresponding stacktrace, but I can provide it if it helps.
Is this a desired behaviour? If so, what can I do to resolve that error?

/cc @dcharkes


React 17 support?

When installing in a react 17 library:
❯ npm install react-sticky-box
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/react
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>|| ^15.0.0 || ^16.0.0" from<EMAIL_ADDRESS>npm ERR! node_modules/react-sticky-box
npm ERR!   react-sticky-box@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See /Users/mf/.npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:

➕

@danielberndt, can you help ?

with the parameter --force it worked
npm install react-sticky-box --force

To force the installation may cause deployment issues, also looking for v17 support

It seems that it doesn't work on 17 React. It was the best library

v1.0.0 was just released with "react": ">=16.8.0" as peer dependency


RTOP print values.

Frederic has suggested that there is a way to convert from the compiler-lib's internal representation and a parse tree - from which we can simply pipe into the pretty printer. For this task, we would break open utop (it probably has hooks for printing though) and figure out how to turn values into parse trees, and print those using the Reason syntax.

I think we can close this one out!


x/leverage: Reconcile Params

Summary
Currently, the x/leverage module has the following parameters per token in its registry:

base_denom
exchange_rate
collateral_weight
base_borrow_rate

Compound has the following per token in their governance model:

Collateral Factor, e.g. 0%
Reserve Factor, e.g. 25%
COMP Speed, e.g. 0.0014625
APY borrow base rate, e.g. 2%
APY borrow rate at kink, e.g. 20%
Kink at 80% utilization
100% APY borrow rate at 100% utilization

We need to reconcile what parameters we're missing and if we need them. Based on the above list, they seem to be:

Reserve Factor, e.g. 25%
COMP Speed, e.g. 0.0014625
kink and utilization related fields

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

With the exception of COMP speed, which seems to relate to liquidity mining rather than any of our core features, all parameters mentioned will be completed when PR #179 merges.


ADBDEV-2543 6.20.1 sync

Here are some reminders before you submit the pull request

[ ] Add tests for the change
[ ] Document changes
[ ] Communicate in the mailing list if needed
[ ] Pass make installcheck
[ ] Review a PR in return to support the community

@maksm90, @InnerLife0, this PR is ready to review.
There is known issue with behave test on x86_64.

The commit https://github.com/arenadata/gpdb/pull/317/commits/dd25596741882e97bcc1fb458059c17f056e710e have added cool feature that will allow to inspect corrupted bitmap indexes.


Extend toString method of MessageProperties

Prior to this commit, MessageProperties#toString printed correlationId and did not print correlationIdString. In this commit, correlationIdString is added to toString in order to make better logs readability.
I have signed and agree to the terms of the Spring Individual Contributor
License Agreement.

Good catch!
Merging...
Thank you for contribution.
Looking forward for more!

Merged as https://github.com/spring-projects/spring-amqp/commit/185fe59f7dbec1763642c3411698a9aebb8ca02d.
Pay attention that I have found more missed properties.


Fixing course link

This was hard-coded to the .com URL.  This does not make it very friendly to GHES. Thank you to @JasonEtco for giving me the proper variable to pull for this.
Fixes #26
/cc @crichID @brianamarie @hectorsector @JasonEtco

Thank you @amyschoen!


Pending changes exported from your codespace

[x] Have you followed the contributing guidelines?
[x] Have you explained what your changes do, and why they add value to the Guides?

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

Hi @Jordanwaslistening. You made your PR to my fork by mistake instead of the parent repo.


[Exploration]  Port SeedSigner to the NumWorks open graphing calculator?

Hi!  This idea is not SeedSigner specific, but since SS's ethos is multiplying easy access to Bitcoin signing devices, especially through repurposing other hardware, this seemed like the best community to put this idea to.
The NumWorks graphing calculator is an open source effort to enable high school math education.  It's ARM7 based (STM32F730V8T6, same chip family as ColdCard and many other wallets).

Here's some of the advantages to using this as a signing device:

Totally innocuous design and primary purpose.  It's a calculator dude.  Easy to hide in plain site, or take with anywhere.
Some countries charge much lower import taxes for calculators than for other electronics devices, so this might be easier to ship around.
There's a whole grassroots effort to get these devices widely distributed to high school kids that has nothing necessarily to do with Bitcoin per-se (though it'd be great to get kids into Bitcoin and math at the same time!)
Much more limited, fully open source code base compared to SeedSigner and more complex devices.  Smaller attack surface.
OS already implements "Test Mode" (as in, for taking standardized tests like SAT without cheating), which deletes all recent inputs and memory.  Also has a hard "Reset" which completely wipes the device and restores it to factory firmware.  So possibly more verifiably "stateless".
The ROM chip includes a "deep power down" mode, which prevents ANY data from being written to the chip at a hardware level, further assuring its "statelessness."
Integrated Li-Po battery
Huge beautiful screen for displaying QR codes.
Tons of buttons for user input.
The STM32 does have some security features which isolate sections of code and memory.  I'm sure its nowhere near as good as a proper secure element.

Here's some disadvantages:

Input would be hard.  Either the PSBT would have to be sent over USB cable, or typed in manually.  It might not be hard to type given the comfortable amount of buttons, but could take a while and be error prone.
The private key would have to be typed by hand each time (no QR scanner input).
OS code and "apps" are written in C++, so we couldn't port SS code directly.  Perhaps we could port over Bitcoin Core wallet code however, or maybe even some of ColdCard's.
Would require frequent USB connections, to re-load the Bitcoin wallet code, since the workflow would likely require a hard reset to factory firmware each time it is used.  Possible mitigations are to fork the OS code itself and install custom firmware that includes the Bitcoin wallet app (so it doesn't dissappear each time, just the wallet data does).
Careful checking of the signed transaction for correct addresses would be required before transmitting to the blockchain, since the stateless model and frequent USB connections means trust in the device itself should be very low.  We're really just using it as a calculator to do the ECDSA and SHA-256 math and then nuking it each time, rather than do them by hand with pencil/paper.  It's highly likely that it would be actively trying to leak the private key from the moment it is entered until we hit the "RESET" button.
The display may be more susceptible to TEMPEST style attacks than SS (way out of my depth on this one, but I think ColdCard uses a very specific serial communication protocal for the Q1 to at least mitigate this a little bit).
No secure element (but you already knew that.  If SE is a must buy a CC).
Compared to ColdCard Mark 4, this STM supports only AES encryption/decryption natively using its own hardware accelerator.  The CC Mk4 "MCU implements SHA-256 and AES natively for quicker encryption/decryption."

So, that's my idea.  Use the NumWorks graphing calculator as a covert signing device.  I'd love to your thoughts, positive or negative!  What major roadblocks am I missing?  Would this be useful to the community?

I like the creativity of this idea and I can tell you've put a good amount of thought into it. The display for numworks unfortunately doesn't look like it would offer an advantage over our current display; according to their specs the resolution is 320x240 pixels (https://www.numworks.com/specs/).


Docs suggestions

In 3.1.3 you talk about escaping characters.  It would maybe be worth adding the pipe character (|) to the list, since it's quite widely used to chain commands in Linux, but if it's referred to unescaped in the text it will be interpreted as a table border command, and the text will get table borders around it.
In 2.1 you say:

It is important to note that each Softcover chapter file corresponds to exactly one chapter. This means that you can only include one top-level # heading in any given file.

I think this needs to be given much more emphasis, addressing especially those who are importing existing Markdown files which may not have had this constraint applied (ie there is more than one # header in the file).  Attempting to build will then give the error:
in `block in split_into_chapters': undefined method `slug' for nil:NilClass (NoMethodError)

(possibly another one for a potential Troubleshooting chapter?) until the chapter is split, or all other # headers except the first are downgraded to ##.  (It does build the book-on-one-long-page html, but not the chapter-on-one-page html, but doesn't actually tell you that.)

Thanks for the notes. I've added | to the list of escaped characters.
I've also released a new version of the gem that catches the NoMethodError and gives a more helpful error message. Run gem update softcover to get the latest version.
Thanks!


cloudlist: 0.0.1 -> 1.0.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/projectdiscovery/cloudlist/releases.
meta.description for cloudlist is: "Tool for listing assets from multiple cloud providers"
meta.homepage for cloudlist is: "https://github.com/projectdiscovery/cloudlist"
meta.changelog for cloudlist is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/if3h33y7fpwaqy12ic8xqpnl408g3zsk-cloudlist-1.0.0/bin/cloudlist had a zero exit code or showed the expected version
0 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 1.0.0 with grep in /nix/store/if3h33y7fpwaqy12ic8xqpnl408g3zsk-cloudlist-1.0.0
found 1.0.0 in filename of file in /nix/store/if3h33y7fpwaqy12ic8xqpnl408g3zsk-cloudlist-1.0.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
cloudlist

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/if3h33y7fpwaqy12ic8xqpnl408g3zsk-cloudlist-1.0.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A cloudlist https://github.com/r-ryantm/nixpkgs/archive/f6a7904d77191770775215d5492211ec012c79fb.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/if3h33y7fpwaqy12ic8xqpnl408g3zsk-cloudlist-1.0.0
ls -la /nix/store/if3h33y7fpwaqy12ic8xqpnl408g3zsk-cloudlist-1.0.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cloudlist

Maintainer pings
cc @fabaff @kalbasit for testing.

@ofborg eval


TableClient.CreateIfNotExists / TableClient.CreateIfNotExistsAsync documentation corrected

TableClient.CreateIfNotExists / TableClient.CreateIfNotExistsAsync documentation corrected (methods do not return null if the table already exists)
Anyway, this change #30849 is, in my opinion, questionable. For example

BlobContainerClient.CreateIfNotExists still returns NULL if container already exists
QueueClient.CreateIfNotExists still returns NULL if the queue already exists

It would be nice to have this unified (as it has been in the past).

TableClient.CreateIfNotExists / TableClient.CreateIfNotExistsAsync documentation corrected (methods do not return null if the table already exists)
Anyway, this change #30849 is, in my opinion, questionable. For example

BlobContainerClient.CreateIfNotExists still returns NULL if container already exists
QueueClient.CreateIfNotExists still returns NULL if the queue already exists

It would be nice to have this unified (as it has been in the past).

Thanks for this PR!
Regarding the inconsistent behavior with Blob and Queue clients, they should actually conform this this new behavior. See https://github.com/Azure/azure-sdk-for-net/issues/25626 for details.


CFY-6005. Fix use callback invocation

In this PR, the use command that was called directly from the teardown one is now called using ctxt.invoke to avoid parsing arguments from the command line.
Note: I had to include 2832295 in this branch make the test cases pass. However, the commit is not in the master branch. I believe the commit should be pushed to the master branch before this branch, so that the diff in this branch contains only the changes related to the issue that has been fixed.

@idanmo Now that the version update is in master, this PR has been updated accordingly.


[ja]Update "Installing kubeadm" page references apt repositories

issue : #44495
I've just submitted my first Pull Request. If anything seems off or if I missed any steps, I'd appreciate your guidance. Excited to be part of the project!

it looks really great, but maybe updating step 2 (and the description for step 2 and 3, if possible) as well would help users a lot as it is related to the updated step 3, can you update?

Okay!
I will update step 2 and the description for step 2 and 3.

I finish update step 2 and the description for step 2 and 3.

/approve
for other reviewers, the step 1 has been updated by https://github.com/kubernetes/website/pull/44181

I'm not well-versed in Git operations, and things have ended up in a strange state. What should I do?

/remove-area blog release-eng
/remove-language de en es fr hi id it ko pl pt ru uk vi zh
/remove-sig release

Don't worry about it.
I suggest closing this PR and creating a new one.

Don't worry about it. I suggest closing this PR and creating a new one.

Thank you. I try it.


Random issue with compression

There seems to be an edge case with compression where the result causes a "Need LibLoad" or something

I think I fixed this with c4876f7

Apparently this still exists.

oh yeah I fixed this


Auto Download not queuing up new chapters

Steps to reproduce
Turn on auto download
Expected behavior
Auto downloads when new chapters are added
Actual behavior
Sometimes, some chapters aren't being queued to download.
I can see new chapters availible, but I don't see that chapter added to the queue.
This doesn't happen all the time, I do see time to time new chapters being downloaded, but there are also times when new chapters just sits there not being downloaded.
I haven't figured out if it's particular manga, or if it has to do with if I'm on wifi or mobile data when the library updates.
I understand even if on queue, if I have only download on wifi turned on, it will just sit there until I connect to wifi, but in my case it's not even on queue.
Crash logs
No response
TachiyomiSY version
r566
Android version
Android 14
Device
Samsung A55
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have gone through the FAQ and troubleshooting guide.
[X] I have updated the app to version 1.10.5.
[X] I have updated all installed extensions.
[X] I will fill out all of the requested information in this form.

Maybe you have "Skip downloading duplicate read chapters" enabled? Or the category isn't included/excluded from Auto-download?

Nope, that's not it.
I have those exact settings.

Where are you seeing these new chapters? In WebView? Or in the chapter list of whatever manga you have saved in your Library?
Maybe you need to give the app permission again, such as Background Usage enabled & Battery Optimization disabled. I don't think it's the following, but just to check I guess, go to your Phone Settings > Developer Options, and see if your settings match mine:

Unrelated, but if your version you wrote is correct, you're behind on a version (r567)

I have the overlays on the library screen to show me how many new chapters are there, and also how many are downloaded.
So on some days, I would see the odd case where I see the new chapter overlay, but I see no corresponding downloaded chapter for it.
I go into the manga, and indeed, there's a new chapter, but it's not downloaded.
I click the download, then it proceed to put it on queue, and it goes on and downloads it.
So the master library updating does happen, it's just for some reason new chapters aren't added to queue to be downloaded.
I do see I can turn on log level to "Extra".  I'd guess I can try that for a few days, and see if I can catch that bug happen, then check the log.
Where would the log file be placed?

OK, I'm gonna close this for now.
Since turning on the logging, I haven't seen this happen, and still haven't seen it happen even after turning it off.
Maybe recent the updates, or cleaning up of some downloaded files fixed it.
I'll come back if this ever does happen again.


Too fast

While I was looking for the right repo to clone because he didn't show his screen, I didn't get what file to change and how...

This part's a review, so no worries. We're changing the README.md file @sindyoke -- update the link on that file to https://YOUR-USERNAME.github.io/

Here's the command line history if you need it:

@hectorsector I am new to vim, I forgot how to change README, so I lost him

@sindyoke I'd skip that step for now, as long as you were able to create your new repository, and push up to your own repo, you're set to keep following. Otherwise, I can walk you through that step. Let me know!

For future reference, you open the README.md file in any text editor you want, but if you want to use vim, you can save and quit with Esc+:+w+q+Enter

Hope this video will be available. I managed to edit README and commit, but I am not sure where to go from there. Should I copy his commands or change some of them. I was really enthusiastic about this, I just lost him because I didn't know what repo to clone, and he talked too fast and now I am really behind. Thanks anyway, it's a great course, I will watch it a few times in the following days.

I created my repo on github, but I don't know what to do in editor.
I did:
git merge readme-update
git remote rename origin upstream
git remote add origin https://github.com/beardofedu/github-games.git ... guess I should've changed this to my new repo? and then push?

guess I should've changed this to my new repo? and then push?

Correct, you can see what you've got currently with git remote -v. If you did use his, use git remote origin set-url <YOUR-URL>.

hey thanks! That's exactly the command I needed :)

I'll go ahead and mark this resolved as I think you're caught up. The diff activity was about showing how to use diff so you can view that on the video later. You can pick up from where Matt is now safely.


Why use this action instead of simply setting DEVELOPER_DIR?

Apparently you can just set DEVELOPER_DIR to achieve the same result: https://github.community/t/selecting-an-xcode-version/16204
Any reasons why one would want to use this action instead?

When you specify DEVELOPER_DIR, you have to specify exact path to Xcode.
Action allows to specify Xcode versions via

SemVer notation, something like 12.x or 12.1.x
latest and latest-stable keywords

Ah, that makes sense.
I was fighting with Xcode today and mistakenly thought that setting DEVELOPER_DIR would solve my problems. But in the end, I found that all I really needed was to set MACOSX_DEPLOYMENT_TARGET: https://github.com/ActivityWatch/activitywatch/pull/544#issuecomment-751749253
Thanks for the reply, closing.


Unsquish parameter types in tooltips for macro-generated functions

Note the missing whitespace between : and the parameter type.
Before:

After:

This is a band-aid fix for one small use case. &mut types, for example, are still squashed. I had hoped that the ra_fmt crate might have some utilities to format code blocks, but it's rather minimal at the moment. Is the long term goal to implement a formatter, re-use rustfmt, or TBD?

bors r+


Clean up gluesql-js/ build scripts,

Remove dist/bundler/* from package files.
Move gluesql-js/web build scripts to use web/package.json
Update gluesql-js/web/README.md

Codecov Report

Merging #552 (a55b0b2) into main (5bfd458) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #552   +/-   ##
=======================================
  Coverage   93.17%   93.17%
=======================================
  Files         179      179
  Lines       11750    11750
=======================================
  Hits        10948    10948
  Misses        802      802

Continue to review full report at Codecov.

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


Rename StateScoped to StateExitDespawn, add the inverse variant StateEntryDespawn

What problem does this solve or what need does it fill?
The current naming of the StateScoped component is slightly misleading: it could be interpreted as "this entity will not exist outside of this state". Whereas in fact it merely despawns on exit of the given state, it doesn't care if you spawn an entity outside of the given state:
for (entity, binding) in &query {
    if binding.0 == *exited {
        #[cfg(feature = "bevy_hierarchy")]
        commands.entity(entity).despawn_recursive();
        #[cfg(not(feature = "bevy_hierarchy"))]
        commands.entity(entity).despawn();
    }
}

To me, this functionality is fine, I can't think of a situation where you would want to spawn something in a state it doesn't belong, only for it to be deleted instantly.
There is also no available inverse of this component: despawn an entity on entry to a state, which I recently found a need for, and have written a very similar mechanism to achieve the same thing.
What solution would you like?

Rename StateScoped to StateExitDespawn, or maybe a cleaner looking name than that.
Add the inverse version: StateEntryDespawn, having it operate during state transition, before OnEnter.

Here's a snippet of what I produced for my own game:
impl AppExtLifetime for SubApp {
    fn enable_state_entry_despawn<S: States>(&mut self) -> &mut Self {
        self.add_systems(
            StateTransition,
            state_entry_despawn::<S>
                .in_set(TransitionSchedules::<S>::default())
                .run_if(on_event::<StateTransitionEvent<S>>()),
        );
        self
    }
}

What alternative(s) have you considered?
No real alternatives.
Additional context
State transitions are such a powerful and flexible way to orchestrate game entity lifecyles and the flow of the game itself, it would be nice to see more features in this area.

IMO having entities "scoped to a particular state" is more simple concept than despawn-on-entry/exit. If StateScoped gets warning (or even instant despawn) against insertion during mismatched state, then these new components could be added to fill the gaps for advanced use.

Yes, maybe a warning will help to better specify the intention of StateScoped and having the other two I mention as separate.
I would say that the additional ones I'm suggesting are not "advanced" though, it seems more of a necessity as I develop a game driven by states and substates. I'm currently only developing a Pong clone, but rather than just throwing it together, I'm trying to build scalable infrastructure and learn from it going forward. I have a top-level GameState which contains Menu and Level, and then inside the "level" is Countdown and Play substates. Everything I spawn in the "level" gets scoped to the Level game state, so if at any point the player quits back to the menu, all entities in the level are despawned. The round starts with a Countdown and then transitions to Play when the timer has finished. I spawn the paddles and ball on entry to Countdown, which signifies a new round. When play has finished in the Play state, I want to loop back round to Countdown state to start a new round, and I want to simply respawn the ball and paddles. Therefore, I actually want to scope the paddles and ball to two states, which is where the current options fall short. By having a despawn-on-entry, I'm able to simply transition from Play back to Countdown and the StateEntryDespawn takes care of despawning the previous ball and paddles.

Note that this also opens the door to expanding the type into an enum as such:
pub enum DespawnOnExit<S: State> {
    Single,
    #[default]
    Recursive,
    Descendants,
    #[doc(hidden)]
    _PhantomData(PhantomData<S>),
}

Also "despawn on enter", "hide on enter", "hide on exit", "disable on enter", etc. become very reasonable to add.


UI redesign

Redesigned UI, here are some screenshots.

Home screen with temporary placeholder image, this page will store an overview of projects.

Sample projects

Completed todos

i'll add UI tests in the next PR as I feel the changes are large enough to warrant an entirely separate issue.


[Test] Use new retrieval logic to fetch latest .NET versions

Summary

To test the new metadata retrieval, I removed all metadata.dependencies from the buildpack.toml, then used make retrieve and jam update-dependencies with the output. See PR comment for the metadata.json I used.  I used jam v1.6.2.
It appears that the offline buildpack test fails with some issue related to tar-ing up the dependency layer.
Use Cases

Checklist

[ ] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[ ] I have added an integration test, if necessary.
[ ] I have reviewed the styleguide for guidance on my code quality.
[ ] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

Here's the metadata.json that I used as input to jam update-dependencies.
[{"checksum":"sha512:afae1f5ab022b81636a0d6fe3956d491c3f28206f8177787013f309841dcb9f1134b33677a9cf3fd68a5c86cff7fcb0694eb597dc99a96dacd704e89120375a7","cpe":"cpe:2.3:a:microsoft:.net_core:3.1.30:*:*:*:*:*:*:*","purl":"pkg:generic/dotnet-core-aspnet-runtime@3.1.30?checksum=afae1f5ab022b81636a0d6fe3956d491c3f28206f8177787013f309841dcb9f1134b33677a9cf3fd68a5c86cff7fcb0694eb597dc99a96dacd704e89120375a7\u0026download_url=https://download.visualstudio.microsoft.com/download/pr/12f61df9-e5d2-4cc2-b992-80d30ee3fc43/0087f4e0b8b3a94effa890ee3ebba0b1/aspnetcore-runtime-3.1.30-linux-x64.tar.gz","deprecation_date":"2022-12-13T00:00:00Z","id":"dotnet-core-aspnet-runtime","licenses":["MIT","MIT-0"],"name":"ASP.NET Core Runtime","source":"https://download.visualstudio.microsoft.com/download/pr/12f61df9-e5d2-4cc2-b992-80d30ee3fc43/0087f4e0b8b3a94effa890ee3ebba0b1/aspnetcore-runtime-3.1.30-linux-x64.tar.gz","source-checksum":"sha512:afae1f5ab022b81636a0d6fe3956d491c3f28206f8177787013f309841dcb9f1134b33677a9cf3fd68a5c86cff7fcb0694eb597dc99a96dacd704e89120375a7","stacks":["io.buildpacks.stacks.bionic","io.paketo.stacks.tiny"],"uri":"https://download.visualstudio.microsoft.com/download/pr/12f61df9-e5d2-4cc2-b992-80d30ee3fc43/0087f4e0b8b3a94effa890ee3ebba0b1/aspnetcore-runtime-3.1.30-linux-x64.tar.gz","version":"3.1.30","target":""},{"checksum":"sha512:991918a89c1372d8d1eef967777cc9dd55d0cef827d940f068e701ca877dd6e14045c3a309e6e9c4a7f843eef6d1b192b9ae1257141947f999f4e8dd6b0d43e3","cpe":"cpe:2.3:a:microsoft:.net_core:3.1.29:*:*:*:*:*:*:*","purl":"pkg:generic/dotnet-core-aspnet-runtime@3.1.29?checksum=991918a89c1372d8d1eef967777cc9dd55d0cef827d940f068e701ca877dd6e14045c3a309e6e9c4a7f843eef6d1b192b9ae1257141947f999f4e8dd6b0d43e3\u0026download_url=https://download.visualstudio.microsoft.com/download/pr/d35c543b-44be-46ab-abf0-de8af9c5b3cb/4a17a6aaabe3f2f0e49de31f2f809713/aspnetcore-runtime-3.1.29-linux-x64.tar.gz","deprecation_date":"2022-12-13T00:00:00Z","id":"dotnet-core-aspnet-runtime","licenses":["MIT","MIT-0"],"name":"ASP.NET Core Runtime","source":"https://download.visualstudio.microsoft.com/download/pr/d35c543b-44be-46ab-abf0-de8af9c5b3cb/4a17a6aaabe3f2f0e49de31f2f809713/aspnetcore-runtime-3.1.29-linux-x64.tar.gz","source-checksum":"sha512:991918a89c1372d8d1eef967777cc9dd55d0cef827d940f068e701ca877dd6e14045c3a309e6e9c4a7f843eef6d1b192b9ae1257141947f999f4e8dd6b0d43e3","stacks":["io.buildpacks.stacks.bionic","io.paketo.stacks.tiny"],"uri":"https://download.visualstudio.microsoft.com/download/pr/d35c543b-44be-46ab-abf0-de8af9c5b3cb/4a17a6aaabe3f2f0e49de31f2f809713/aspnetcore-runtime-3.1.29-linux-x64.tar.gz","version":"3.1.29","target":""},{"checksum":"sha512:85fd0e7e8bcf371fe3234b46089382fae7418930daec8c5232347c08ebd44542924eaf628264335473467066512df36c3213949e56f0d0dae4cf387f2c5c6d0c","cpe":"cpe:2.3:a:microsoft:.net:6.0.10:*:*:*:*:*:*:*","purl":"pkg:generic/dotnet-core-aspnet-runtime@6.0.10?checksum=85fd0e7e8bcf371fe3234b46089382fae7418930daec8c5232347c08ebd44542924eaf628264335473467066512df36c3213949e56f0d0dae4cf387f2c5c6d0c\u0026download_url=https://download.visualstudio.microsoft.com/download/pr/7d44ddeb-ad35-41a8-a581-03b151afbd80/6888586c28836b1e1f71df879184550b/aspnetcore-runtime-6.0.10-linux-x64.tar.gz","deprecation_date":"2024-11-12T00:00:00Z","id":"dotnet-core-aspnet-runtime","licenses":["MIT","MIT-0"],"name":"ASP.NET Core Runtime","source":"https://download.visualstudio.microsoft.com/download/pr/7d44ddeb-ad35-41a8-a581-03b151afbd80/6888586c28836b1e1f71df879184550b/aspnetcore-runtime-6.0.10-linux-x64.tar.gz","source-checksum":"sha512:85fd0e7e8bcf371fe3234b46089382fae7418930daec8c5232347c08ebd44542924eaf628264335473467066512df36c3213949e56f0d0dae4cf387f2c5c6d0c","stacks":["io.buildpacks.stacks.bionic","io.paketo.stacks.tiny","io.buildpacks.stacks.jammy","io.buildpacks.stacks.jammy.tiny"],"uri":"https://download.visualstudio.microsoft.com/download/pr/7d44ddeb-ad35-41a8-a581-03b151afbd80/6888586c28836b1e1f71df879184550b/aspnetcore-runtime-6.0.10-linux-x64.tar.gz","version":"6.0.10","target":""},{"checksum":"sha512:e808036155bc324335c309aaf948b2be1940a62eaf0135752989644698653c8f3a5ce310c3ee6742e3af73dbe175c6e529298eedf6eeb31cc38bfeab628f6d7b","cpe":"cpe:2.3:a:microsoft:.net:6.0.9:*:*:*:*:*:*:*","purl":"pkg:generic/dotnet-core-aspnet-runtime@6.0.9?checksum=e808036155bc324335c309aaf948b2be1940a62eaf0135752989644698653c8f3a5ce310c3ee6742e3af73dbe175c6e529298eedf6eeb31cc38bfeab628f6d7b\u0026download_url=https://download.visualstudio.microsoft.com/download/pr/1a2bca2e-f525-4ecf-9c46-06889b4ce3a4/1a7ad60df284ca6b00ca5d31cc1b1c7c/aspnetcore-runtime-6.0.9-linux-x64.tar.gz","deprecation_date":"2024-11-12T00:00:00Z","id":"dotnet-core-aspnet-runtime","licenses":["MIT","MIT-0"],"name":"ASP.NET Core Runtime","source":"https://download.visualstudio.microsoft.com/download/pr/1a2bca2e-f525-4ecf-9c46-06889b4ce3a4/1a7ad60df284ca6b00ca5d31cc1b1c7c/aspnetcore-runtime-6.0.9-linux-x64.tar.gz","source-checksum":"sha512:e808036155bc324335c309aaf948b2be1940a62eaf0135752989644698653c8f3a5ce310c3ee6742e3af73dbe175c6e529298eedf6eeb31cc38bfeab628f6d7b","stacks":["io.buildpacks.stacks.bionic","io.paketo.stacks.tiny","io.buildpacks.stacks.jammy","io.buildpacks.stacks.jammy.tiny"],"uri":"https://download.visualstudio.microsoft.com/download/pr/1a2bca2e-f525-4ecf-9c46-06889b4ce3a4/1a7ad60df284ca6b00ca5d31cc1b1c7c/aspnetcore-runtime-6.0.9-linux-x64.tar.gz","version":"6.0.9","target":""}]

Update: It appears that this failure mode was caused by an overburdened docker daemon on my local. Cleaning up my docker daemon resolved the failure.


[enhancement] enhance log "Notification update on "pi4" detected"

I got the following log entry:
notification-manager.0 | 2024-04-13 07:30:20.257 | info | Notification update on "pi4" detected

Please try to enhance the info to give some hints where to get more info etc. Currently this log is nearly unuseable as I do not know where to look for more info or what action is expected by user.
If more information is not available, consider reducing message to debug as currently its only a sort of "something happend" log :-)

It is just a log if adapter starts to process notification. Yes can be debug

I also have these logs, realized them today for the first time.
If they don't give me any information, I'd also prefer to have them as loglevel "debug", since it's flooding my logfile with irrelevant information and makes it harder to find actual relevant information in the log.
Additionally, maybe you could rewrite the log string to "Starting to process notifications", instead of "Notification detected"
Thanks a lot :-)
2024-05-02 06:54:36.283 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 07:09:36.334 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 07:24:36.401 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 07:39:36.447 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 07:54:36.496 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 08:09:36.546 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 08:24:36.589 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 08:39:36.689 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 08:54:36.743 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 09:09:36.791 - info: notification-manager.0 (644) Notification update on "iobroker" detected
2024-05-02 09:24:36.837 - info: notification-manager.0 (644) Notification update on "iobroker" detected


[Spotify] Starting playback sometimes opens the spotify app window

Extension
https://www.raycast.com/mattisssa/spotify-player
Description
Sometimes—I don't know exactly why—when I start a new music source from "Your Library" or "Search", the Spotify window will open. This behavior only started recently. I wish I could say what changed.
Steps To Reproduce

"Your Library"
Play anything.
Sometimes, the Spotify window will open.

Current Behaviour
The Spotify window opens sometimes.
Expected Behaviour
I would like it to never open the Spotify window.

This still happens.

Still a problem.

Initially, every Spotify action was made through the API but for rate-limiting reasons, we had to switch to AppleScript for some of these actions. AppleScript requires Spotify to be opened, so if you're playing a song for example, and Spotify isn't opened, it'll open it. However, if Spotify is running in the background, it shouldn't bring the Spotify window to front. I'm not sure we can do much more here unfortunately 😕


Update "app" and "ChaosType" fields in the result custom resource spec in the litmus tests

Is this a BUG REPORT or FEATURE REQUEST?
FEATURE REQUEST

What happened:

Litmus result custom resource jinja template: https://github.com/openebs/litmus/blob/master/hack/litmus-result.j2)

Currently, the result custom resource updates (which are done at the beginning of a test's execution, i.e., before proceeding to the business logic (SoT) - and - upon completion of test business logic (EoT)) which are performed in a litmus test playbooks (refer test.yml of any given litmus test) only update the test name, test phase & test result fields of the CR.

It is desirable to update the app & chaostype fields of the CR in order to facilitate filtering of results for a given type of app or chaos test.

What you expected to happen:

Litmus test results can be queried on the basis of app type or chaos test type.

How to fix it:

The fix will involve:

Passing the {{app}} & {{chaostype}} variables in the ansible template task, similar to how the other params such as {{test}}, {{phase}} & {{verdict}} are being passed. Ex: https://github.com/openebs/litmus/blob/master/apps/percona/chaos/openebs_volume_replica_failure/test.yml#L36

The values to be provided for {{app}} is the app-label (which is derived from the pod ENV & set as a test_var called {{label}} (https://github.com/openebs/litmus/blob/master/apps/percona/chaos/openebs_volume_replica_failure/test_vars.yml#L3)

The value to be provided for the {{chaostype}} is the name of the {{chaosutil}} derived from execution of this template (https://github.com/openebs/litmus/blob/master/apps/percona/chaos/openebs_volume_replica_failure/chaosutil.j2) - minus the (.yaml)

This is being done as part of app chaos tests.
For reference: https://github.com/openebs/litmus/blob/master/apps/percona/chaos/app_node_failure_ups_diff_name/test.yml


Show API attributes with a special prefixes in Developer portal

Describe your problem(s)
API Publisher wants to communicate some information to the App developer which couldn't do by the existing API propertied.
Describe your solution
Define a new prefix...like display that will work as a flag to show those properties (with that prefix) to appear in the API overview page of the Devportal
ex: display_region=US

How will you implement it

Optional Fields
Related Issues:

Suggested Labels:

Suggested Assignees:

Related issue : https://github.com/wso2/product-apim/issues/8091

The attribute to display need to add with __display suffix as follows.

From devportal API overview page, it will be displayed as follows.

How do I declare additional properties that should be visible on the dev portal using apictl import?
I have tried adding:
additionalProperties:
   mypropertyone__display: valueone
   mypropertytwo__display: valuetwo

to api_template.yaml, but I do not see them in the Publisher and - of course - they are not shown in the DevPortal.
My goal is to publish an API with additional properties shown in the DevPortal within a CI/CD pipeline (thus using apictl)
APIM 3.2.0 - Update Level 137
apictl Version: 3.1.4 Build Date: 2020-07-31 04:23:40 UTC


Don't bring SysEx Librarian to foreground when receiving program change and sending syses

User request:

Is it possible to have an option to leave the program minimised when sending a program change to it?

Might be because of the way it shows the progress indicator when sending sysex.


Implement configurable OIDC claims extraction

This PR expands the authentication agent with methods to extract an OAuth2 token claims and set
their values to HAProxy session variables.
The token claims are prefixed with "token_claim_" and can be used as in an example below:
http-request set-header X-OIDC-Username %[var(sess.auth.token_claim_name)] if acl_app3 authenticated

#16

Hi @ErmakovDmitriy - sorry for the delay, we missed this PR. Could you please fix conflicts and push back your patch? Thx

Hi @ErmakovDmitriy - sorry for the delay, we missed this PR. Could you please fix conflicts and push back your patch? Thx

@ErmakovDmitriy  I still see out-of-date branch -> could you please rebase and push? Thx

Hi @mougams,
Thank you for your patience!
Please, take a look at the current state. Sorry again for me being clumsy with git.


fix(fulcio): delete all unassigned server config maps

Now, the config maps associated with the ServerConfig are recreated every time changes are detected, or when the environment is in an invalid state. Since the only resource depending on these config maps is the deployment, there is no downside to recreating them during each reconciliation cycle.
Additionally, the cleanup procedure has been moved after the creation of the new config map, ensuring that unassigned resources are properly removed after the new configuration is in place.

/lgtm


Support old setuptools

Boring but working.
Support old version of setuptools. It should fix the nightly build of debian packages
closes #2288

LGTM


Why using log_softmax instead of softmax?

I think it should be softmax instead. Otherwise p_t and p_s are not comparable.
Could you please explain why?
https://github.com/HobbitLong/RepDistiller/blob/dcc043277f2820efafd679ffb82b8e8195b7e222/distiller_zoo/KD.py#L13-L17

for those who have similar question like i did: https://github.com/yoshitomo-matsubara/torchdistill/issues/233


BB still pinging

After drop today at 131pm(PST), it is 803pm and it is still wanting to ping that a card on bestbuy is still in stock. I ran with "INCOGNITO" enabled to see if it was a cache issue and its still wanting to ping. Also, "IN_STOCK_WAIT_TIME" seems to want to wait indefinately no matter what it is set to, need to restart to research item stock.

After pulling latest main BB is still pinging the founders edition

Same here - maybe we need a delay after pageload? Usually the Add to Cart button changes to Sold Out after a few seconds on a normal Chrome browser.

Probably has to do with the incognito plugin and how JavaScript loads.

similar issue here - i could duplicate it with my local firefox instance. essentially 'add to cart' would never go away. in chrome it would display 'add to cart' and switch to 'out of stock' after a second or so. this lasted for several hours after the drop


pip install broken on 0.17.1

Hello,
I've been getting this error since  the upgrade to 0.17.1 was released.
# pip install --upgrade future
Collecting future
  Using cached https://files.pythonhosted.org/packages/90/52/e20466b85000a181e1e144fd8305caf2cf475e2f9674e797b222f8105f5f/future-0.17.1.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-JWMEZH/future/setup.py", line 181, in <module>
        **setup_kwds
      File "/usr/lib64/python2.7/distutils/core.py", line 112, in setup
        _setup_distribution = dist = klass(attrs)
      File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 269, in __init__
        _Distribution.__init__(self,attrs)
      File "/usr/lib64/python2.7/distutils/dist.py", line 287, in __init__
        self.finalize_options()
      File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 302, in finalize_options
        ep.load()(self, ep.name, value)
      File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2343, in load
        return self.resolve()
      File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2353, in resolve
        raise ImportError(str(exc))
    ImportError: 'module' object has no attribute 'check_specifier'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-JWMEZH/future/

The server has the latest pip installed
# pip --version
pip 18.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)

I wonder if anyone else is having this issue.

I reinstalled setuptools on my server and everything seems to be fine now. Weird error.


toStrictEqual fails to distinguish 0 from 5e-324

🐛 Bug Report
While trying to automate the detection of bugs and regressions in Jest (see my previous PR #7938), I found a very strange failing case in toStrictEqual:
expect(0).not.toStrictEqual(5e-324) // throws

//    expect(received).not.toStrictEqual(expected)
//
//    Expected: 5e-324
//    Received: 0

To Reproduce
Steps to reproduce the behavior: expect(0).not.toStrictEqual(5e-324)
Expected behavior
I would have expect Jest to succeed to distinguish 0 from 5e-324.
Run npx envinfo --preset jest
Paste the results here:
$ npx envinfo --preset jest
npx : 1 installé(s) en 4.679s

  System:
    OS: Windows 10
    CPU: (8) x64 Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz
  Binaries:
    Node: 10.12.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.10.1 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 6.7.0 - C:\Program Files\nodejs\npm.CMD

The native assert of node does consider 0 and 5e-304 as different values:
const assert = require('assert');
assert.notStrictEqual(0, 5e-324);

@dubzzz  Good catch. Here is my confirmation and quick analysis:
describe('MIN_VALUE', () => {
  const min = Number.MIN_VALUE;

  test('Object.is for toBe', () => {
    expect(Object.is(0, min)).toBe(false);
  });

  describe('egal for isEqual or isStrictEqual', () => {
    const egal = (a, b) => a != +a ? b != +b : a === 0 ? 1 / a == 1 / b : a == +b;

    test('min received', () => {
      expect(egal(min, 0)).toBe(false);
    });
    test('min expected', () => {
      expect(egal(0, min)).toBe(true); // incorrect and inconsistent
    });
  });
});

Can you research the egal comparison at: https://github.com/facebook/jest/blob/master/packages/expect/src/jasmineUtils.ts#L108-L111

is it copied correctly from what you consider to be an authoritative source?
does a source claim that egal is symmetric?

Regardless of the reason for the problem, we can replace it with Object.is(a, b) true?

My personal feeling is that equal should be symmetric. If I am not wrong both == and === are symmetric in JavaScript (but not transitive).
In other languages, such as Java we can read the following, equals [...] is symmetric [source].
Object.is would have been a great candidate but unfortunately it does not seem to be compatible with IE so it might be an issue for Jest [source].
@pedrottimark If you are OK with it, I will try to issue a new PR to fix the lines https://github.com/facebook/jest/blob/master/packages/expect/src/jasmineUtils.ts#L108-L111

Here is a quick investigation I just did:
function compare(a, b) {
  // a and b are such that:
  // - Object.prototype.toString.call(a) -> [object Number]
  // - Object.prototype.toString.call(b) -> [object Number]
  if (a != +a)               // if a is Number.NaN
    return b != +b;        //   return b is Number.NaN
  if (a === 0)               // if a is 0 (or -0)
    return 1 / a == 1 / b; //   return (a and b are -0) or (a and b are 0)
  return a == +b;            // return a == +b
}

The code above is the one at https://github.com/facebook/jest/blob/master/packages/expect/src/jasmineUtils.ts#L108-L111 with ternary operators changed into classical if-else.
Problem in the second if:
1 / 0                === Infinity
1 / Number.MIN_VALUE === Infinity

Good point about Object.is yet we have already started to use it, even a few lines upstream: https://github.com/facebook/jest/blob/master/packages/expect/src/jasmineUtils.ts#L90-L92

We should maybe just get rid off the case '[object Number]' because it is already covered by https://github.com/facebook/jest/blob/master/packages/expect/src/jasmineUtils.ts#L90-L92

Notice that if statement returns if true so the switch statement is providing type-specific criteria for not true. What do you think about bring together the following cases:
case '[object String]':
case '[object Number]':
case '[object Boolean]':
  return Object.is(a, b);

I'm fine with people needing to polyfill Object.is, fwiw

Indeed, I think it would be a good thing to factorize those cases in a single one.
I believe we could also add [object Date] but I am not 100% sure for this one.
If we do the Object.is under this case (number + boolean + string) we can remove the one at lines 90 to 92 and replace it by a simple === for others.

Be careful about Date objects because they needs value comparison instead of object identity.
While we are looking at it, can you take a careful look at symbols, because I don’t see a case for them? Future readers will thank us, if we can bring together logic for the primitive types.

@pedrottimark In reality it seems that moving to Object.is will change the current behaviour of the following cases:

a = new String('5'); b = '5'; a == String(b); // -> is true
a = new String('5'); b = '5'; Object.is(a, b); // -> is false
a = new Number(0); b = 0; a != +a ? b != +b : a === 0 && b === 0 ? 1 / a == 1 / b : a == +b; // -> is true
a = new Number(0); b = 0; Object.is(a, b); // -> is false
a = new Boolean(true); b = true; +a == +b; +a == +b; // -> is true
a = new Boolean(true); b = true; +a == +b; Object.is(a, b); // -> is false

Oh yeah, good point, I messed up and tested Number(0) but not new Number(0)
But we can use Number(…) as type cast for Object.is comparison?
That raises a different question in my mind is return a == String(b); symmetrical?

Good point for the string case ^^
I just tried to check and it seems ok (no failing assert below):
const assert = require('assert');
const cmp = (a, b) => a == String(b);
assert.ok(cmp('', ''));
assert.ok(cmp('', String('')));
assert.ok(cmp('', new String('')));
assert.ok(cmp(String(''), ''));
assert.ok(cmp(String(''), String('')));
assert.ok(cmp(String(''), new String('')));
assert.ok(cmp(new String(''), ''));
assert.ok(cmp(new String(''), String('')));
assert.ok(cmp(new String(''), new String('')));

Another problem I just spotted is the a === 0 in the https://github.com/facebook/jest/blob/master/packages/expect/src/jasmineUtils.ts#L108-L111 which will not work well if a = new Number(0)

Thank you for walking through this together. Working on Jest is a deep dive into corners of ECMAScript.
Here is a step back to candidate minimal solution taking instances into account:
case '[object Number]':
  return Object.is(Number(a), Number(b));

Review updated accordingly.
I don't know how to deal with the failing tests

Thank you. I have enjoyed the interaction. I wrote a comment in PR about CI and 2 suggested tests.

Thanks a lot for your help on this issue


BUG: Issue with latest builds (fonts not correct)

It appears with fresh builds the fonts are not correct
Is this due to an upgrade in pydata or sphinx-book-theme?

An example build
https://quantecon.github.io/lecture-julia.myst/intro.html


How to omit a column on a joined struct?

Your Question
How do I omit a column from a joined struct?  I have the following:
type Client struct {
    Realm *Realm
    Config string
}

type Realm struct {
   Config string
}

When I do the following clause:
db.Join("Realm").Omit("config", "Realm.config")

The config is omitted on the root client, but not the realm.  How do I instruct Gorm to omit a column on a joined struct?
The document you expected this should be explained
https://gorm.io/docs/advanced_query.html
Expected answer
How to omit a column on a joined struct.

db.Omit("config").Join("Realm",db.Omit("config"))


Feature Request: HOOBS configuration

Is your feature request related to a problem? Please describe:
When using HOOBS instead of Homebridge, the configuration options are not available. I believe this is because the plugin does not properly use the config schema, but I got this from another troubleshooting website. It can be done, but it has to be done manually in the advanced section. Unfortunately, there's no example of all the options available in the plug-in or how to use them. I have a copy of my config prior to the 3.0 beta releases, but I'm not sure what changes came with the beta. Is there a way to see what the config page looks like in Homebridge without installing Homebridge?
Describe the solution you'd like:
Include support for config schema so that HOOBS customization is possible.
Describe alternatives you've considered:
Provide sample template of advanced setup page on Github site that can be copied and filled in.
Additional context:
No response
Node Version (optional):
16.14.0
NPM Version (optional):
8.3.1
Homebridge Version (optional):
HOOBS 4.1.22
Plugin Version:
3.0.0-beta.2
Operating System (optional):
MacOS

The biggest change is there is an array named sensors that lets you add binfull or running sensors. I fixed the plug-in so that it will run without them


Implement fetch proposal by ID & deposits total api

Blocked by #93
Changes

added new module github.com/vektah/dataloaden for generating dataloaders
created getProposalByID and getProposalByIDs graphql endpoints
created dataloaders for

proposal and
proposal deposits

implemented queries

QueryProposalByIDs and
QueryProposalTotalDeposit
QueryProposalDepositsByProposalIDs

Tests
Tests manually with the following queries:
proposalByID(id: ID!): Proposal

query Proposal {
  proposalByID(id: "proposal_1") {
    id
    title
    description
    type
    submitTime
    depositEndTime
    votingStartTime
    votingEndTime
    proposerAddress
    status
    depositTotal
    tallyResult {
      yes
      no
      abstain
      noWithVeto
    }
  }
}

refs #85

@hochiw update 🆙 🙇♂


Question Re: New "Features"

"The download button in the search result view is desabled if the video is currently streamed live"
Is this due to the API or just a random change on your side?
Because its terrible either way, some people might want this as an option for some reason, but I honestly dont see why.
Saving a stream while its still going because the vod might get deleted or because you want to get a section up fast is incredibly important, imagine having to wait an entire day to download something from a 24 hours stream! For long broadcasts being able to download chunks while its still going is essential.

Discussed HERE and HERE


Why was apiKey removed ?

I'm integrating latest bugsnag (library 5.3.0, and plugin 5.6.0).
The runtime library allows specifying API key in code - i.e. out of AndroidManifest.xml. And I'd like to keep it out of the manifest - it's company policy.
Turns out that the plugin requires that the API key is in AndroidManifest.xml - and there was a commit (https://github.com/bugsnag/bugsnag-android-gradle-plugin/commit/a3288c34dc0288e0832a8f02d497d11ea7b74b22) removing it from gradle build script.
What's the explanation for this?

Hey @valeriyo, the apiKey property was removed as it had caused confusion in the past. Having the API key in one single place reduced this issue. Your Bugsnag API key is a public key, and not private so it's safe to put into your manifest. The API key does not allow for any read access to your data.

The client library allows overriding apiKey in multiple places, even in the per-event callback. So, what confusion are you talking about? You've removed the functionality from the gradle plugin, causing a feature gap between the plugin and the run-time library, and the best of your explanation is "it had caused confusion in the past"? Am I missing something here? Where is the issue that called for apiKey removal? I can't find it.

And why would you close this ticket @xander-jones without a proper follow-up?

Your Bugsnag API key is a public key

What's that claim based on? It provides access to writing against the quota, so it could be exploited to effectively do a Denial of Service.


Key authentication plugin is not protecting the APIs from Apache-HttpClient 4

I set up a kong server with keyauth following the http://getkong.org/plugins/key-authentication
then I use Jmeter to make a Apache-HttpClient 4.* HTTP request to call the Kong APIs with a wrong apikey or not apikey. And it pass the keyauth check like there is no protection.
Protected User-Agent:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36
Apache-HttpClient 3.*
Not Protected User-Agent:
Apache-HttpClient 4.*

Hi @Hughiegao,
This is what I just ran on my local Kong.
Adding an API:
$ http :8001/apis name=mockbin public_dns=mockbin.com target_url=http://mockbin.com
HTTP/1.1 201 Created
Date: Fri, 17 Jul 2015 22:12:52 GMT
Server: kong/0.4.0

{
    "created_at":<PHONE_NUMBER>000,
    "id": "1905e78b-2e92-4160-c143-571915f0cac9",
    "name": "mockbin",
    "public_dns": "mockbin.com",
    "target_url": "http://mockbin.com/"
}

Adding a plugin on top of it (keyauth):
$ http :8001/apis/mockbin/plugins name=keyauth
HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
Date: Fri, 17 Jul 2015 22:13:13 GMT
Server: kong/0.4.0

{
    "api_id": "1905e78b-2e92-4160-c143-571915f0cac9",
    "created_at":<PHONE_NUMBER>000,
    "enabled": true,
    "id": "26aff2ea-0c21-48a2-c8f3-52ca949b4b29",
    "name": "keyauth",
    "value": {
        "hide_credentials": false,
        "key_names": [
            "apikey"
        ]
    }
}

Making a request through Kong:
$ http :8000 Host:mockbin.com
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8
Date: Fri, 17 Jul 2015 22:13:42 GMT
Server: kong/0.4.0

{
    "message": "No API key found in headers or querystring"
}

And with a wrong credential:
http ':8000/?apikey=foo' Host:mockbin.com
HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=utf-8
Date: Fri, 17 Jul 2015 22:17:15 GMT
Server: kong/0.4.0

{
    "message": "Invalid authentication credentials"
}

As you can see the request doesn't go through. Could you share your setup and/or compare it with the one I just posted so we can know what's happening, fix it or eventually clear the confusion if there was any?
Thanks

It is running at a CentOS 6 VM
Adding an API:
curl –X POST: http://localhost:8001/apis/ --data "name=mockbin" --data "path=/mockbin/" --data "strip_path=false" --data "target_url=http://mockbin.com"
curl: (6) Couldn't resolve host '–X'
curl: (6) Couldn't resolve host 'POST:'
{"path":"/mockbin/","target_url":"http://mockbin.com/","id":"e1bd7009-6da7-4886-c8cf-ed7452f3bf66","created_at":1437486095000,"name":"mockbin","strip_path":false}
Adding a plugin on top of it (keyauth):
curl -X POST http://localhost:8001/apis/mockbin/plugins  --data "name=keyauth"  --data "value.key_names=apikey"
{"api_id":"e1bd7009-6da7-4886-c8cf-ed7452f3bf66","value":{"key_names":["apikey"],"hide_credentials":false},"id":"79f323a3-d9af-4468-c467-f524dabc51bb","enabled":true,"created_at":1437486116000,"name":"keyauth"}
Making a request through Kong:
curl localhost:8000/mockbin/123
{"message":"Invalid authentication credentials"}
Making a request through Kong with right key:
<I believe "Cannot GET /mockbin/123 is the right message">
curl localhost:8000/mockbin/123 -H "apikey:123"
Cannot GET /mockbin/123
Making a request through Kong with header of "Expect:100-continue"
<HERE IS THE ISSUES, I can reproduce with curl>
curl localhost:8000/mockbin/123 -H "Expect:100-continue"
Cannot GET /mockbin/123
I believe the "Expect:100-continue" is the problem, what it did is allow a client that is sending a request message with a request body to determine if the origin server is willing to accept the request (based on the request headers) before the client sends the request body. Maybe that is how it pass the Kong keyauth check?
more doc with http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html
8.2.3 Use of the 100 (Continue) Status.
Thanks you to look it up for me.

I do confirm that this has been implemented as a feature (https://github.com/Mashape/kong/blob/master/kong/plugins/keyauth/access.lua#L14-L17) because it was breaking a specific  use case, which it should be client-side HTML forms for file uploads.
Let me investigate.

skip_authentication? It looks like security breach for me. :)
Thank you for the investigation.

Okay, I remember now why this check has been implemented.
The Expect: 100-continue request is sent when the client is trying to validate the prerequisites of the request. This is primarily used when making POST requests with multipart/form-data bodies, to validate that the size of the payload can be accepted by the final API.
Because of the nature of 100-continue, the body is not being sent (otherwise it would defeat it's purpose). The Key Authentication plugin accepts the authentication key to be in the header, in the querystring or in the body. In the latter case when credentials are being sent in the body, because 100-continue doesn't send any body, the request will always fail because the authentication parameter will never be submitted.
So Kong skips the authentication for Expect: 100-continue requests, but it will properly enforce it on the subsequent request is the server doesn't deny the prerequisites.

The problem is with this "Expect: 100-continue", the KONG don't seem to deny the subsequent request. I can't target_url that I have. But, It doesn't need the apikey when you do "Expect: 100-continue" request

To prove what I mean, I create a mockbin for it.
http://mockbin.com/bin/14d814d0-ff59-4072-bbd3-c4f43720423a
All it did is return a message of "You pass the Key Authentication check!"
It is running at a CentOS 6 VM
Adding an API:
curl –X POST: http://localhost:8001/apis/ --data "name=mockbin" --data "path=/mockbin/" --data "strip_path=false" --data "target_url=http://mockbin.com/bin/14d814d0-ff59-4072-bbd3-c4f43720423a"

{"path":"\/mockbin\/","target_url":"http:\/\/mockbin.com\/","id":"e1bd7009-6da7-4886-c8cf-ed7452f3bf66","created_at":1437486095000,"name":"mockbin","strip_path":false}

Adding a plugin on top of it (keyauth):
curl -X POST http://localhost:8001/apis/mockbin/plugins  --data "name=keyauth"  --data "value.key_names=apikey"

{"api_id":"e1bd7009-6da7-4886-c8cf-ed7452f3bf66","value":{"key_names":["apikey"],"hide_credentials":false},"id":"79f323a3-d9af-4468-c467-f524dabc51bb","enabled":true,"created_at":1437486116000,"name":"keyauth"}

Adding a consumer
curl -X POST http://localhost:8001/consumers --data "username=hughiegao"

{"username":"hughiegao","created_at":1439845929000,"id":"bebe228d-f536-4251-c215-356cb7af522b"}

Adding a key=123 to this consumer
curl -X POST http://localhost:8001/consumers/bebe228d-f536-4251-c215-356cb7af522b/keyauth --data "key=123"

{"created_at":1439846176000,"consumer_id":"bebe228d-f536-4251-c215-356cb7af522b","key":"123","id":"c773224f-fc2d-4985-c929-7c21b7ce9c02"}

Making a request through Kong:
curl localhost:8000/mockbin/123
{"message":"No API key found in headers or querystring"}

Making a request through Kong with right key:
curl localhost:8000/mockbin/123 -H "apikey:123"
You pass the Key Authentication check!

Making a request through Kong with header of "Expect:100-continue"
HERE IS THE ISSUES, I can reproduce with curl
I DON'T NEED A API KEY FOR IT!
curl localhost:8000/mockbin/123 -H "Expect:100-continue"
You pass the Key Authentication check!

The problem is if I have a "Expect:100-continue" inside my header, it will always skip the key authentication.

@Hughiegao I decided to go ahead and remove that exception, so that the parameter is always required. This will be effective starting from the next version.

@thefosk
Isn't this should be applied for basicauth plugin aswell ? ( i can prepare a pr for it).

@thefosk
Thank you for the update.

This has been fixed on both key auth and basic auth.


⚠ Bofrost.fr has degraded performance

In f35288a, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1168 ms

Resolved: Bofrost.fr performance has improved in 8e4bf86 after 6 minutes.


Reference to Admin Accounts with Mailboxes

Hello,
This article references admin accounts having mailboxes. Other documentation we have at Microsoft contradicts this https://docs.microsoft.com/en-us/archive/blogs/cloud_solution_architect/azure-administrator-account-security. In my own security training, I have learned that admin accounts should not have mailboxes. Is there a plan to remove this reference to keep our documentation consistent? Thanks so much!

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

ID: 826a3309-03a5-60b4-aa4c-63f385150455
Version Independent ID: 1d2e2f1c-2805-5cda-a4ad-76fedbc3f525
Content: Secure access practices for administrators in Azure AD
Content Source: articles/active-directory/users-groups-roles/directory-admin-roles-secure.md
Service: active-directory
Sub-service: users-groups-roles
GitHub Login: @curtand
Microsoft Alias: curtand

@cconli Thanks for the feedback !  I have assigned this issue to content author to investigate and update the document as appropriate.

#reassign:rolyon

Hi @cconli
Thanks for your feedback. I passed this along to the team. Many features automatically email users - especially administrators. We don't have updates to this doc at this time.
Let us know if you have any additional feedback.
thanks

#please-close


IntelliSense doesn't respect type override in python

Issue Type: Bug
It looks like IntelliSense always shows the properties and methods of the last type of the variable.
Look at this code, for example:
x = "hello there"
print(x.)  # looking at IntelliSense results here
x = 19
print(x)

I'd expect to get attributes of str but IntelliSense gives me attributes of int instead, despite the fact that x is set to an int only after this line, so I should see attributes of str at this point of the code, not int.
This screenshot highlights the issue:

It's obviously wrong to use int  attributes here, so why IntelliSense suggests them instead of the str attributes it should suggest?
VS Code version: Code 1.46.1 (cd9ea6488829f560dc949a8b2fb789f3cdc05f5d, 2020-06-17T21:13:20.174Z)
OS version: Windows_NT x64 10.0.18363

/extPython


Nixvim Updates

Separate the nixvim config into many files, which is a start towards making it fully modularised, with different plugins enabled on different machines.

manually merged


Fix no results response for detailed categories api.

This was returning a 404 when no categories were found.  Given this is a
plural endpoint, it is more correct for this to return empty array in
this situation.

I agree that this would be a better response in this case.  However, do we know what apps are calling this endpoint, and how they'll respond to an empty list coming back when they were expecting a 404?  I'm concerned that they may have special-case behaviour for the 404 response which this change breaks.

A further thought - we'll shortly be removing detailed guide categories all together (https://trello.com/c/FxaabmPY/216-remove-detailed-guide-categories-from-whitehall) so tweaking this API now may not be worthwhile.

A further thought - we'll shortly be removing detailed guide categories all together so tweaking this API now may not be worthwhile.

Fair enough.


[Proposal]Allow multiple arb files to organize l10n / intl localizations for a language

Use case

In the current app development, you cannot split your localizations into multiple files to better categorize them. You also don't have the ability to add comments to JSON files in order to better separate the categories.
In Flutter itself you also have multiple files for the different packages.
See also docs for localization.
Question is also asked on Stackoverflow with no good answer yet.
Dart package is claimed to support multiple arb files: https://pub.dev/packages/intl_translation
Proposal

Allow multiple .arb files with the same suffix
Let parse all files into one dart file if no template-arb-file is specified in l10n.yaml file or/and allow wildcard for this parameter: template-arb-file: "*_en.arb"

The relevant changes could be made here.

Hi @golane-august, Thanks for filing the issue. That looks like a valid feature request.

It's also a must have from my point of view.
Having all localized strings into one file make things very complicated.
However, I think things could be even more improved than @golane-august suggestion.
Having all files into a unique folder is not suitable from my point of view.
Basically, we should have the ability to store arb files near to each linked widget.
Example of app structure I have in mind:
lib/features
   home/
       homeWidget.dart
       home_en.arb
       home_fr.arb
       ....
   awesomeFeature
       awesomeFeatureWidget.dart
       awesomeFeature_en.arb
       awesomeFeature_fr.arb

If needed, we may use special attributes of arb files, @@locale and @@context described at https://github.com/google/app-resource-bundle/wiki/ApplicationResourceBundleSpecification

@sbatezat I don't really agree on that. Although it would be nice to have more flexibility, it may is a bad idea everyone cooks their own soup. I more like the idea of having reusable strings (e.g. such as for buttons like OK or Cancel), which doesn't belong to any special widget. Also in src only should be source files and no translations. You also usually don't mix up resources or assets into source folder. If it should be really separated it's worth considering writing an extra package for this "widget" or functionality.

It's also a must have from my point of view. Having all localized strings into one file make things very complicated.
However, I think things could be even more improved than @golane-august suggestion. Having all files into a unique folder is not suitable from my point of view. Basically, we should have the ability to store arb files near to each linked widget.
Example of app structure I have in mind:
lib/features
   home/
       homeWidget.dart
       home_en.arb
       home_fr.arb
       ....
   awesomeFeature
       awesomeFeatureWidget.dart
       awesomeFeature_en.arb
       awesomeFeature_fr.arb

If needed, we may use special attributes of arb files, @@ locale and @@ context described at https://github.com/google/app-resource-bundle/wiki/ApplicationResourceBundleSpecification
See also this issue/comment, showing we are not the only ones interested by cleaning our arb files : #71729 (comment)

I want to make this.

Agree, would be much easier to maintain if we could split it up into feature specific arb files

up

On more thumb-up to get localisation gens separated.
We are facing an issue with long file at the moment, that is difficult to read more than 1k lines per file.
Could you manage to generate Localisation per feature(arb file).

We would also like something like this, akin to .NET resource files. We have quite a large app with multiple flavours, for different customers (of which some want multi-lingual, others don't) - and would like to be able to have feature-specific resources, flavour-specific resources, and just a bit of organisation.
Otherwise we end up with thousands of fields in a single file and have to manage namespacing the keys ourselves.
Would be quite nice even just to be able to simply have multiple .arb files and a parent file that lists which ones to include in the release.

This really needs to be done as it will be difficult to maintain the translation without it

Hey everyone, I've started working on this and already created a draft. You can check it out there. The part that generates the localizations with a namespace is already working. I plan to finish it by the end of next week.

https://github.com/flutter/flutter/pull/137307

good, hope we can use it in early 2024.

Any updates on this?

Any updates on this?

The PR is stale. Someone can take it over https://github.com/flutter/flutter/pull/137307

While waiting I've been using https://pub.dev/packages/merge_localizations

One more.
This kind of feature would greatly help for having I18N by flavors.

I just opened a new PR for this feature, now with backward compatibility:

https://github.com/flutter/flutter/pull/157696

I'd love it if you could give a review and add suggestions :)

If anyone has the same use case as me, I found this article and I hope this helps.
tl;dr I wanted to have multiple .arb file sources:

Place your <name>.arb files in separate folders:

- l10n
  - app
    - app_en.arb
  - errors
    - errors_en.arb

Create a shell script, generate-l10n.sh:

#!/bin/bash

flutter gen-l10n \
  --arb-dir ./lib/src/localization/app \
  --template-arb-file app_en.arb \
  --output-localization-file app_localizations.dart \
  --output-class AppLocalizations \
  || { echo "Error generating app l10n"; exit 1; }

flutter gen-l10n \
  --arb-dir ./lib/src/localization/errors \
  --template-arb-file errors_en.arb \
  --output-localization-file errors_localizations.dart \
  --output-class ErrorsLocalizations \
  || { echo "Error generating error messages l10n"; exit 1; }

Run the script: sh ./generate-l10n.sh
3. If you have existing l10n.yaml, delete it as the script will locate your .arb files
4. In your MaterialApp, add the the delegates:
MaterialApp.router(
  builder: (context, widget) {
    return ResponsiveWrapper(
      child: widget!,
    );
  },
  restorationScopeId: 'app',
  localizationsDelegates: const [
    AppLocalizations.delegate, // Add this line
    ErrorsLocalizations.delegate, // Add this line
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
  ],
  supportedLocales: const [
    Locale('en', ''),
  ],
  onGenerateTitle: (BuildContext context) =>
      AppLocalizations.of(context)!.appTitle,
  theme: AffinidiThemeData().light,
  darkTheme: AffinidiThemeData().dark,
  themeMode: ThemeMode.light,
  routerConfig: AppRouter.router,
);


Issue with k8s.io/zh/docs/concepts/policy/

https://kubernetes.io/zh/docs/concepts/policy/pod-security-policy/ and 'https://kubernetes.io/zh/docs/tutorials/clusters/apparmor/'
is unable to access

The former page is being fixed (#32128)
The latter one is an outdated link.  The link is mentioned in the following pages:
docs/tasks/configure-pod-container/security-context.md: needs resync.
docs/concepts/policy/pod-security-policy.md: bad link, fixed in #32138
docs/tutorials/_index.md: needs resync.
docs/reference/command-line-tools-reference/feature-gates.md: needs resync.

/language zh

The latter is available in the new URL.
https://kubernetes.io/zh/docs/tutorials/security/apparmor/
Close as completed.
/close


Contact Details

Hi ,
I have been trying to contact you regarding some of your work but I didn't manage to find any official way of contacting you. If possible please let me know any way to contact you.

Hey @varunr107,
You can contact me through my LinkedIn: https://www.linkedin.com/in/frw/
Let me know if you need an alternative way of contact.

Do you use any Instant Messaging apps ? That would be best
On Fri, 28 Apr 2023 at 9:59 AM, Frederick Widjaja @.***>
wrote:

Hey @varunr107 https://github.com/varunr107,
You can contact me through my LinkedIn: https://www.linkedin.com/in/frw/
Let me know if you need an alternative way of contact.
—
Reply to this email directly, view it on GitHub
https://github.com/frw/react-native-ssl-public-key-pinning/issues/6#issuecomment-1526974643,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQJUL5K7ZWNL6JJL6IFWOMLXDNBR5ANCNFSM6AAAAAAXOHK3EY
.
You are receiving this because you were mentioned.Message ID:
@.***>

You can contact me through Telegram: https://t.me/frederickwidjaja


Replaced all conditions to a short syntax

Q
A

Bug fix?
no

New feature?
no

BC breaks?
no

Deprecations?
no

Tests pass?
yes

From PHP.net

Since PHP 5.3, it is possible to leave out the middle part of the ternary operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise.

@dosten thanks for the pull request! However, I'm afraid that the proposed code doesn't work as the existing one. The problem, as usual, happens with edge cases such as using empty strings or 0 values as separators (I know it's not common, but we don't prevent users from using it):
$userSeparator = '';
$selfSeparator = '+';

// works: $separator = '' (empty string)
$separator = (null !== $userSeparator)
    ? $userSeparator
    : ((null !== $selfSeparator) ? $selfSeparator : '-');

// doesn't work: $separator = '+'
$separator = $userSeparator ?: $selfSeparator ?: '-';