Failed to launch browser process on Debian Server

Description
I've run nvidia-snatcher on my windows machine with no issues.
However I wanted to move it to a headless Debian server so I can ensure that it's running even if I turn my computer off.
I copied my .env file, used git to clone the repo and ran npm install.
However when I run it using npm run start I get an error that it 'failed to load the browser process':
jo@mp:/opt/app_nvidia-snatcher/nvidia-snatcher [main]$ cat /etc/debian_version
9.7

jo@mp:/opt/app_nvidia-snatcher/nvidia-snatcher [main]$ node --version
v14.13.1

jo@mp:/opt/app_nvidia-snatcher/nvidia-snatcher [main]$ npm --version
6.14.8

jo@mp:/opt/app_nvidia-snatcher/nvidia-snatcher [main]$ git status
On branch main
Your branch is up-to-date with 'origin/main'.
nothing to commit, working tree clean

jo@mp:/opt/app_nvidia-snatcher/nvidia-snatcher [main]$ git show --oneline -s
d575b8b chore(deps-dev): bump nodemon from 2.0.4 to 2.0.5 (#518)

jo@mp:/opt/app_nvidia-snatcher/nvidia-snatcher [main]$ npm run start

> nvidia-snatcher@ start /opt/app_nvidia-snatcher/nvidia-snatcher
> npm run build && node build/index.js

> nvidia-snatcher@ build /opt/app_nvidia-snatcher/nvidia-snatcher
> rimraf ./build && tsc

                    $$\       $$\ $$\                                                  $$\               $$\
                    \__|      $$ |\__|                                                 $$ |              $$ |
$$$$$$$\ $$\    $$\ $$\  $$$$$$$ |$$\  $$$$$$\           $$$$$$$\ $$$$$$$\   $$$$$$\ $$$$$$\    $$$$$$$\ $$$$$$$\   $$$$$$\   $$$$$$\
$$  __$$\\$$\  $$  |$$ |$$  __$$ |$$ | \____$$\ $$$$$$\ $$  _____|$$  __$$\  \____$$\\_$$  _|  $$  _____|$$  __$$\ $$  __$$\ $$  __$$\
$$ |  $$ |\$$\$$  / $$ |$$ /  $$ |$$ | $$$$$$$ |\______|\$$$$$$\  $$ |  $$ | $$$$$$$ | $$ |    $$ /      $$ |  $$ |$$$$$$$$ |$$ |  \__|
$$ |  $$ | \$$$  /  $$ |$$ |  $$ |$$ |$$  __$$ |         \____$$\ $$ |  $$ |$$  __$$ | $$ |$$\ $$ |      $$ |  $$ |$$   ____|$$ |
$$ |  $$ |  \$  /   $$ |\$$$$$$$ |$$ |\$$$$$$$ |        $$$$$$$  |$$ |  $$ |\$$$$$$$ | \$$$$  |\$$$$$$$\ $$ |  $$ |\$$$$$$$\ $$ |
\__|  \__|   \_/    \__| \_______|\__| \_______|        \_______/ \__|  \__| \_______|  \____/  \_______|\__|  \__| \_______|\__|

[7:55:25 AM] info :: ℹ selected stores: adorama, amazon, asus, bandh, bestbuy, gamestop, newegg, nvidia, nvidia-api, officedepot
[7:55:25 AM] info :: ℹ selected models: strix, rog strix, rog strix oc
[7:55:25 AM] info :: ℹ selected series: 3080
(node:31937) UnhandledPromiseRejectionWarning: Error: Failed to launch the browser process!
[1017/075525.583718:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
#0 0x55fef11ac2a9 base::debug::CollectStackTrace()
#1 0x55fef1124a83 base::debug::StackTrace::StackTrace()
#2 0x55fef11361a0 logging::LogMessage::~LogMessage()
#3 0x55feef77505e content::ZygoteHostImpl::Init()
#4 0x55fef0ccebbb content::ContentMainRunnerImpl::Initialize()
#5 0x55fef0d1e96a service_manager::Main()
#6 0x55fef0ccd191 content::ContentMain()
#7 0x55fef0d1d52d headless::(anonymous namespace)::RunContentMain()
#8 0x55fef0d1d22c headless::HeadlessShellMain()
#9 0x55feee4c5ca7 ChromeMain
#10 0x7fbb80cde2e1 __libc_start_main
#11 0x55feee4c5aea _start

Received signal 6
#0 0x55fef11ac2a9 base::debug::CollectStackTrace()
#1 0x55fef1124a83 base::debug::StackTrace::StackTrace()
#2 0x55fef11abe4b base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7fbb8685a0c0 (/lib/x86_64-linux-gnu/libpthread-2.24.so+0x110bf)
#4 0x7fbb80cf0fff gsignal
#5 0x7fbb80cf242a abort
#6 0x55fef11aada5 base::debug::BreakDebugger()
#7 0x55fef113661b logging::LogMessage::~LogMessage()
#8 0x55feef77505e content::ZygoteHostImpl::Init()
#9 0x55fef0ccebbb content::ContentMainRunnerImpl::Initialize()
#10 0x55fef0d1e96a service_manager::Main()
#11 0x55fef0ccd191 content::ContentMain()
#12 0x55fef0d1d52d headless::(anonymous namespace)::RunContentMain()
#13 0x55fef0d1d22c headless::HeadlessShellMain()
#14 0x55feee4c5ca7 ChromeMain
#15 0x7fbb80cde2e1 __libc_start_main
#16 0x55feee4c5aea _start
  r8:<PHONE_NUMBER>000000  r9: 00007ffd27702350 r10:<PHONE_NUMBER>000008 r11:<PHONE_NUMBER>000246
 r12: 00007ffd27703610 r13: 00007ffd27702dd0 r14: 00007ffd27703620 r15: 00007ffd277025a0
  di:<PHONE_NUMBER>000002  si: 00007ffd27702350  bp: 00007ffd27702590  bx:<PHONE_NUMBER>000006
  dx:<PHONE_NUMBER>000000  ax:<PHONE_NUMBER>000000  cx: 00007fbb80cf0fff  sp: 00007ffd277023c8
  ip: 00007fbb80cf0fff efl:<PHONE_NUMBER>000246 cgf: 002b000000000033 erf:<PHONE_NUMBER>000000
 trp:<PHONE_NUMBER>000000 msk:<PHONE_NUMBER>000000 cr2:<PHONE_NUMBER>000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.

TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md

    at onClose (/opt/app_nvidia-snatcher/nvidia-snatcher/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:193:20)
    at Interface.<anonymous> (/opt/app_nvidia-snatcher/nvidia-snatcher/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:183:68)
    at Interface.emit (events.js:326:22)
    at Interface.close (readline.js:424:8)
    at Socket.onend (readline.js:202:10)
    at Socket.emit (events.js:326:22)
    at endReadableNT (_stream_readable.js:1252:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:31937) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:31937) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Are there any linux-specific installation steps or dependencies that are not listed in the readme?

https://github.com/jef/nvidia-snatcher/wiki/Installation:-Linux:-Debian-based

I've installed the dependencies without any visible errors using this command:
sudo apt-get install -y ca-certificates fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils
I then restarted the server as was recommended in the prompt.
Unfortunately despite that, I get the same UnhandledPromiseRejectionWarning as before when I run npm-snatcher.

Perhaps pull the latest and try and to run again. It may be working now.

Hi @jef
I got latest (6b9ecae) and ran npm install, but am still seeing a crash regarding not having a usable sandbox.
Here is the output when running npm start | tee output.txt:
output.txt
I've been looking at the puppeteer github (namely this issue https://github.com/puppeteer/puppeteer/issues/290) and have been unable to find a resolution. For what it's worth, using the script in this comment I've verified that namespacing is enabled in my kernel, and that my kernel is new enough (4.9.0-8-amd64) to support the required features.

Hi @jef
I got latest (6b9ecae) and ran npm install, but am still seeing a crash regarding not having a usable sandbox.
Here is the output when running npm start | tee output.txt:
output.txt
I've been looking at the puppeteer github (namely this issue puppeteer/puppeteer#290) and have been unable to find a resolution. For what it's worth, using the script in this comment I've verified that namespacing is enabled in my kernel, and that my kernel is new enough (4.9.0-8-amd64) to support the required features.

Is there any solution for this? I have the same issue.


Navbar Changes

in this project ,i have to change navbar, i make the navbar sticky and also change some background color and i also change list view while hovering on list the list size will increase also change bg-colors
https://github.com/user-attachments/assets/f3ca6679-796d-4609-afc9-ecd3546884ec
@Code-Social :pls review my code
#245

what is your issue number?

My issue no. #245

@dipeshkumar799 the dark mode switch broke in the navbar in your pr. Please look into it once.

@Rizwan102003  ok brother i will fixed it tonight

@Rizwan102003 : brother  it is not broke .it is image orr icon issue

yeah i know,can u fix it?

@Rizwan102003  ok I will try at tonight ☺


Adds consensus safety invariant (MIRAI)

Motivation
Adds a consensus safety invariant as a MIRAI precondition (checked statically).
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
cargo test

:umbrella: The latest upstream changes (presumably 3dc03ffd4ca2ee367d57a22114dae6ac2cf5936e) made this pull request unmergeable. Please resolve the merge conflicts.


Update  to add version information for Circup to fin the correct version

See https://github.com/adafruit/circup/issues/165
Thanks :)

@s-light :)


🎉 init(Folders with mock files):

This is the conceived file structure with some dummy files added so that you can properly clone the structure.
There are two basic yaml's in the .github folder that I created before deciding to make the remaining files empty.

Closing pull request so that I can properly adhere to PR format.

Re-opening after seeing that I can actually edit the comments in this form.

I changed the branch I was merging into as well. I originally had this merging to main, but I saw many of the other initial PRs moving to dev.

We will have to change the client/ folders to adapt to next.js@LucieSeidler , but we should probably get this in asap

I have a src/app folder which within client, which is the default for Next.js projects, correct?

Yeah, I think nextjs requires components to be in app folders and static assets to be in public folder.


Clique social, sign message does not work when altme is used as a crypto wallet

When you use Altme as a crypto wallet, you can connect with clique social but you cannot sign the  message
https://clique.social/attestor/twitterPolygonID

That was issue on Wallet connect V1. We now handle wallet connect V2.


Can't set personal blind oracle (pinserver)

When trying to set a personal blind oracle, as described here, Jade doesn't display confirmation and the terminal gets stuck on Connecting..
python3 .\set_jade_pinserver.py --serialport COM7 --set-pubkey ..\blind_pin_server\server_public_key.pub --set-url http://<IP_ADDRESS>:8096
Connecting...
Sending: {'method': 'get_version_info', 'id': '406102'} as cbor of size 35

Jade's firmware version is 1.0.31
I successfully performed this operation several months ago, likely before firmware version 1.0.29.
I have tried on two different Jades (both with 1.0.31 firmware) and with two different machines with Windows 11.

That looks like it's related to generally connecting to Jade [from that box, at least].
Can you interact with that Jade via a) the screen menus, and b) from any other box/phone/app ?
As you can see it isn't even getting as far as trying to pass those pinserver details to Jade, it can't even connect and get the details of what is connected.

That looks like it's related to generally connecting to Jade [from that box, at least].

Issue involves two different boxes, both running Windows 11.

Can you interact with that Jade via a) the screen menus, and b) from any other box/phone/app ?

Yes - both Jades (I have tried with 2 different units) can be interacted with via both, a) [Jade's] screen menus and b) from the desktop wallet [Sparrow].
Also, one of the Jades is already set up to work with the custom pinserver (I set it up earlier) and it does work as it should - I can unlock the Jade and use it as a signing device.

Ended up using Umbrel-based Personal Blind Oracle

There is an alternative, non-BlockStream built implementation of the Jade's Pin Server -> https://github.com/Filiprogrammer/SimpleJadePinServer
Multi vendor..


Syntax fixes

A quick fix to the documentation, there were some rogue quotation marks which would cause things to crash and burn. Just doing my bit ....

[ X ] Is this related to documentation?
Syntax fixes, there was 2 unneeded quotation marks .... doing my bit

Thanks, @JustSteveKing.


inconsistent parameters

This is possible:
moment({ y: year, M: month, d: 1 });

but this not:
moment().set({ d: 1 })

Allow d as argument for set

Probably, you want D: 1.
https://momentjs.com/docs/#/get-set/set/
Please re-open if you still have issues.

thanks, I did not notice date (dates, D)
but that is still inconsistent that for same things parameters are different d VS D

Your code example worked for me. Sorry if I am misunderstanding something.


Resource Group is case insensitive

Description
Making the validation check have rg between dns zones be case insensitive
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?

[x] Unit test created

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 78.778%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2914

Relevant Lines:
3699

💛  - Coveralls


Bump stack.yaml to work with latest LH

Sadly

I cannot seem to get cabal to work for the life of me.
Even stack seems to build etc. (and works fine in e.g. vscode) but ends compilation with this mysterious error

rjhala@pozole ~/r/lh-plugin-demo (bump)> stack clean
rjhala@pozole ~/r/lh-plugin-demo (bump)> stack build --fast

Warning: Stack has not been tested with GHC versions 9.8 and above, and using 9.8.1, this may fail.
lh-plugin-demo> configure (lib)
Configuring lh-plugin-demo-<IP_ADDRESS>...
lh-plugin-demo> build (lib)
Preprocessing library for lh-plugin-demo-<IP_ADDRESS>..
Building library for lh-plugin-demo-<IP_ADDRESS>..
[1 of 3] Compiling Demo.Erase

**** LIQUID: SAFE (26 constraints checked) *************************************
[2 of 3] Compiling Demo.Lib

**** LIQUID: SAFE (47 constraints checked) *************************************
[3 of 3] Compiling Demo.Client

**** LIQUID: SAFE (3 constraints checked) **************************************

lh-plugin-demo> copy/register
Installing library in /Users/rjhala/research/lh-plugin-demo/.stack-work/install/aarch64-osx/e6dad18c7fbe988bce8ffbcdb1655701985f7bc6580a175a2b87b0281885691f/9.8.1/lib/aarch64-osx-ghc-9.8.1/lh-plugin-demo-<IP_ADDRESS>-9zPVSWa3gNR64vyEs6oyok
Error: Cabal-simple_6HauvNHV_<IP_ADDRESS>_ghc-9.8.1:
'/Users/rjhala/.ghcup/ghc/9.8.1/bin/ghc' exited with an error:
<command line>: Could not find module ‘LiquidHaskell’.
Use -v to see a list of the files searched for.

Error: [S-7282]
       Stack failed to execute the build plan.

       While executing the build plan, Stack encountered the error:

       [S-7011]
       While building package lh-plugin-demo-<IP_ADDRESS> (scroll up to its section to see the error) using:
       /Users/rjhala/.stack/setup-exe-cache/aarch64-osx/Cabal-simple_6HauvNHV_<IP_ADDRESS>_ghc-9.8.1 --verbose=1 --builddir=.stack-work/dist/aarch64-osx/ghc-9.8.1 register
       Process exited with code: ExitFailure 1

You need to eliminate -fplugin=LiquidHaskell from ghc-options: and put it instead in your files with {-# OPTIONS_GHC -fplugin=LiquidHaskell #-}. This is due to https://github.com/haskell/cabal/issues/9375, whose fix hasn't landed in Cabal releases yet, I think.

This pr is superseded by https://github.com/ucsd-progsys/lh-plugin-demo/pull/27, I think. Let me know what you think.


Add a schema_version: 2 field to evaluation output files

The new datafiles from running the evaluation are incompatible to the previous ones.
Since a lot of people might have a lot of old trajectories together with results.json, it might be useful to have a schema_version field so that we can easily distinguish between the different formats of the output files and parse them accordingly (yes, we could just check on the different keys, but that seems more brittle by comparison, especially if there will be more changes in the future).

Ahh hmm ok this makes sense, what kind of fix would make the most sense? My interpretation is that we should provide a flag, and that determines which "report generator" is run?
Although at this point, I'm a bit tempted to abandon the format + code related to it in this repository (except for maintaining it in SWE-bench/experiments to maintain results reporting for older submissions) so that the new format becomes the standard.

Yes, honestly I don't mean that SWE-bench should necessarily provide the functionality to read old files. But just having a marker in the file "schema_version: 2" added to the file for any user who wants to hack something together would be helpful (I will still deal with old reports, so I would check on the flag and then get the correct keys).
I can open a PR for it.

That sounds good! @klieret not urgent at all, but could you make the PR for this? It's no rush at all, as I know you have more urgent priorities so don't worry about getting to this right now. Tysm in advance!


fix(pgwire): remove all write usage

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
Cuz there is always a .flush on the end of processing query, no need to call write. We can always call write_no_flush.
Notice this issue is discoverd from #2610 , but have no direct connections.
Checklist

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Documentation
If your pull request contains user-facing changes, please specify the types of the changes, and create a release note. Otherwise, please feel free to remove this section.
Types of user-facing changes
Please keep the types that apply to your changes, and remove those that do not apply.

Installation and deployment
Connector (sources & sinks)
SQL commands, functions, and operators
RisingWave cluster configuration changes
Other (please specify in the release note below)

Release note
Please create a release note for your changes. In the release note, focus on the impact on users, and mention the environment or conditions where the impact may occur.
Refer to a related PR or issue link (optional)

Emmm. Seems there are some test problem. Will take a look


You have '.png' hardcoded in the server.

If i run captcha22 client label --image-type jpg, and give the genreated zip file to the engine. I get this error
Traceback (most recent call last):
  File "/usr/local/bin/captcha22", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/site-packages/captcha22/__main__.py", line 278, in main
    args.func(args)
  File "/usr/local/lib/python3.6/site-packages/captcha22/lib/core/server.py", line 22, in server
    server.main()
  File "/usr/local/lib/python3.6/site-packages/captcha22/lib/server/captcha22.py", line 519, in main
    self.run_server()
  File "/usr/local/lib/python3.6/site-packages/captcha22/lib/server/captcha22.py", line 494, in run_server
    self.check_files()
  File "/usr/local/lib/python3.6/site-packages/captcha22/lib/server/captcha22.py", line 409, in check_files
    self.create_model(file)
  File "/usr/local/lib/python3.6/site-packages/captcha22/lib/server/captcha22.py", line 375, in create_model
    model = captcha(path, self.logger)
  File "/usr/local/lib/python3.6/site-packages/captcha22/lib/server/captcha22.py", line 55, in __init__
    self.get_image_size()
  File "/usr/local/lib/python3.6/site-packages/captcha22/lib/server/captcha22.py", line 61, in get_image_size
    img = cv2.imread(images[0])
IndexError: list index out of range

Likely because you have .png hardcoded here:
https://github.com/FSecureLABS/captcha22/blob/f5e2662f64cbb4d2606982a1b1d0a449a081631f/captcha22/lib/server/captcha22.py#L60

Hi kofoednielsen,
PNG is hardcoded since AOCR only supports PNG and not JPG.
The labelling script supports labelling JPG files, but they still need to be converted to PNG before uploading to the server. I haven't gotten around to adding this conversion function to the labeller script.
In the mean time, you can use something like this to convert all your images to PNG for uploading:
import glob
import cv2

img_dir = "<Add image dir>"
output_dir = "<Add output dir>"

imgs = glob.glob(img_dir + "/*.jpg")

for img in imgs:
    cv2.imwrite(img.replace(img_dir, output_dir + "/").replace("jpg","png"), cv2.imread(img))

This is usually the small script I use for conversion, but I'd like to integrate it into the labelling script to already convert images to PNG.

You can also do it with a simple imagemagick command: mogrify -format png *.jpg
Just wanted to let you know!


Crash/Messed up model when importing 3D scene

Operating system or device, Godot version, GPU Model and driver (if graphics related):
OS: Windows10 Pro, 64-bit
Godot v2.1.4
Issue description:
When trying to import .dae 3d scene, 64 bit Godot crashes. The 32 bit version, however successfully imports the scene, though it is all messed up - the armature is completely broken. If there are animations, they are included, but as much as I could see they are broken, too. The scenes are exported using the Better Collada, although the result is the same with the default exporter
Example scene(similar result with absolutely every scene containing armatures and animation):
http://prntscr.com/hgwbbm
This is the exported result in 32-bit version(completely new project started):
http://prntscr.com/hgw8rs
http://prntscr.com/hgwb1f
P.S. Models(scenes which do not include armatures) are imported correctly in both 32 and 64 bit versions
Please, ask any other information you think is necessary about the problem.

Sorry for the late answer. Do you still reproduce this issue in current Godot releases? (3.0.6 and 3.1-alpha1)

Can you  provide minimal project?

Closing since there is no response from author since 3 years, and the latest tested version of Godot was 2.1


scan_interval:

I would love to control how often this fires for grabbing some local data into docker from other boxes!

Me too. :)

It seems to be every single minute as far as I can see on my HA instance.

I was using a python script to grab data off a secured website, if I hit it too often my IP gets banned for days. I definitely need to limit it to once a day

I think this option works, I've set it to 5 minutes and it scans every 5 minutes.
I think scan_interval is in Hass core and it's available for all sensors, at least those that do polling. Component author does not have to add it manually.

I think this option works, I've set it to 5 minutes and it scans every 5 minutes.
I think scan_interval is in Hass core and it's available for all sensors, at least those that do polling. Component author does not have to add it manually.

Merged pull request adding scan interval


Downloading only works for generic, not stocks, etfs or other options for version 3.0.1

Hello: the following resulted when I typed
python YahooTickerDownloader.py stocks
Error: stocks is not a valid type option. See --help
Only this works:
python YahooTickerDownloader.py

still that way for me

for me the same, the type "positional argument" is not possible, or are we using it wrong
YahooTickerDownloader.py stocks -E DJI


minimal changes to get a webapps homepage (bug 684417a)

Webapps homepage has changed a little more and it looks like there's some todo's in that code. Unless this is going to be worked on, we'll take this as a base for someone to work off and continue work on. If that's wrong, please re-open.

Hey Andy,
Sorry about the lack of updates, I've been on vacation for the past month or so. The TODO's aren't blockers, they'll just only make sense once webapps are collectable (bug #684641). My fixes for 684641 are done, but need tests. I don't know how high on the priority list the homepage and webapps collections are-- if they're up there, I'd suggest that I push my partially-tested 684641 and you guys use it as a starting point to finish both of them up. Otherwise, I should be able to crank out the tests within the week or so.
Lemme know,
David


Invalid key field when using getProof API

Description
When we execute getProof API, it returns an array of storage-entry objects as requested. According to the Ethereum API specification, the key field in the entry object should conform to ^0x([0-9a-f][0-9a-f]){0,32}$ regex pattern. However, it seems that Besu returns a non-conforming value.
(Specification link: https://github.com/ethereum/execution-apis)
Expected behavior:

{
  ...
  storageProof: [ { key: '0x2', value: '0x0', ... } ]
}

Actual behavior:

{
  ...
  storageProof: [ { key: '2', value: '0x0', ... } ]
}

Frequency:
Always
Versions (Add all that apply)

Software version: besu/v22.4.4/linux-x86_64/openjdk-java-16
OS Name & Version: Ubuntu 20.04.4 LTS

Hi there - is this bug present on Besu v22.7.0? @fab-10 @daniellehrner is this something we addressed in Hive testing?


Working directory not reset between build phases

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

App Id
No response
Region
ca-central-1
Amplify Console feature
Build settings
Describe the bug
Changing current directory in a phase's command affect the next phase.
Expected behavior
Working directory reset to the root's project directory on every phase.
Reproduction steps

Edit amplify.yml as following

version: 1

backend:
  phases:
    preBuild:
      commands:
        - echo "$PWD"
        - cd amplify

    build:
      commands:
        - echo "$PWD"

frontend:
  phases:
    preBuild:
      commands:
        - echo "$PWD"

    build:
      commands:
        - echo "$PWD"

Push to trigger the build
Notice the current path not in the project root directory

2022-01-04T15:05:07.500Z [INFO]: ## Starting Backend Build
                                 # Starting phase: preBuild
                                 # Executing command: echo "/codebuild/output/src027357002/src/REDEACTED"
                                 /codebuild/output/src027357002/src/REDEACTED
                                 # Executing command: cd amplify
2022-01-04T15:05:07.518Z [INFO]: # Completed phase: preBuild
                                 # Starting phase: build
2022-01-04T15:05:07.518Z [INFO]: # Executing command: echo "/codebuild/output/src027357002/src/REDEACTED/amplify"
                                 /codebuild/output/src027357002/src/REDEACTED/amplify
2022-01-04T15:05:12.054Z [INFO]: # Completed phase: build
                                 ## Completed Backend Build
                                 ## Starting Frontend Build
                                 # Starting phase: preBuild
                                 # Executing command: echo "/codebuild/output/src027357002/src/REDEACTED/amplify"
                                 /codebuild/output/src027357002/src/REDEACTED/amplify
2022-01-04T15:05:12.056Z [INFO]: # Completed phase: preBuild
                                 # Starting phase: build
                                 # Executing command: echo "/codebuild/output/src027357002/src/REDEACTED/amplify"
                                 /codebuild/output/src027357002/src/REDEACTED/amplify
                                 # Completed phase: build
                                 ## Completed Frontend Build

Build Settings
version: 1

backend:
  phases:
    preBuild:
      commands:
        - echo "$PWD"
        - cd amplify

    build:
      commands:
        - echo "$PWD"

frontend:
  phases:
    preBuild:
      commands:
        - echo "$PWD"

    build:
      commands:
        - echo "$PWD"

Additional information
My understanding is phases are useless and all commands are just executed in order. So the build design miss the point to have phases. They should be isolate from each sections to not be affected by unwanted behaviors. "Pre" phase should prepare the environment for the main phase. And main phases should not be affected by the previous main phase. It would be expected to have to install dependencies in backend and again in frontend as they should not be affected by each others.

Hi @SteeveGL 👋🏽 thanks for raising this! This is not a bug as this is the intended behavior when navigating to a subfolder. This allows customers to only need to change directories once, especially when building apps that live in a monorepo.

No CI work that way. But fine. Then how to get back to the root project directory? That path is not even in environment variable.


Bundle compiled JavaScript files

Repository file structure after bundle:

dist: Bundled files. These files are included in both the NPM package and the VSCode extension.

client.js: All client related stuff.
server.js: All server related stuff.

lib: TypeScript Declaration (.d.ts) files. These files are only included in the NPM package.
src: TypeScript source code.

:tada: This issue has been resolved in version 1.13.0 :tada:
The release is available on:

npm package (@latest dist-tag)
Visual Studio Marketplace
GitHub release

Your semantic-release bot :package::rocket:


Vertical smoothing not working

I'm making this issue in case anyone else has run into something similar. I'm on a mac and vertical movement was only snapping to the pixel grid. To fix this in the smooth_camera system I multiplied the remaindery by -1 instead of currently it is multiplied by 1. TBH not exactly sure why this works (probably just the way the orientation in bevy works). The sample code below works but I highly doubt it's the cleanest way to do this. I'm mostly just creating this issue in case someone else runs into this.
        let remainderx = (*subpixel_pos).x % 1.0;
        let remaindery = -1.0 * ((*subpixel_pos).y % 1.0);

        sprite.rect = Some(Rect {
            min: Vec2::new(remainderx + 1.0, remaindery + 1.0),
            max: image.size_f32() - Vec2::new(1.0 - remainderx, 1.0 - remaindery),
        })

I am able to reproduce the issue, and I'm able to fix it by inverting the Y axis. Will push a fix soon.


Feature/proper nouns

Automation for azure-sdk-for-python

Automation for azure-sdk-for-ruby

Automation for azure-sdk-for-java

Automation for azure-sdk-for-js

Automation for azure-sdk-for-go


Add typing support

The project is internally typed, but mypy complains about client uses since the package does not broadcast being PEP 561 compliant.
$ mypy .
cli.py:12: error: Skipping analyzing "typer_config": module is installed, but missing library stubs or py.typed marker  [import]
cli.py:12: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 26 source files)

Adding an empty stub or marker file should resolve this problem.

Thanks for catching that! The fix is in 1.0.1.


.of(context) returns a concrete type instead of abstraction

.of() method always returns a generated _StringsRu type which doesn't extend the base Translation type.
I cannot put the retrieved value into a variable because of it:

It also hinders me to put the a Translations variable into business-logic controllers.
I had to to pass the whole BuildContext instead.

Hello, _StringsRu is actually the base class but you can set translation_class_visibility: public to store the translation values into a separate variable. This removes the underscore making it public.
For more information, you can look into https://github.com/slang-i18n/slang#-dependency-injection

But I need not the StringsRu variable, but Translations variable (which will be a StringsRu or StringsEn depending on the current locale).

Assuming that Translations.of(context) returns StringsRu, it seems that StringsRu is the base class in your project. If you look into the declaration of StringsEn, you will notice that it implements StringsRu.
So to wrap up: Translations.of(context) will either return StringsEn or StringsRu, but because StringsRu is the base class, the method return type is StringsRu
Translations is just a meaningless class that only provides a nice name.

Yup, ru is my base and currently the only locale.
So, I can make a variable of StringsRu type and StringsEn, StringsDe, etc., will fit into it. Got it!
It 98% solved my issue.
The only possible problem: if I change the base locale in slang.yaml one day, I will have to change StringsRu type across the whole project.
My proposal it to use Translations as a base type.
So even if I change the base local, it won't break the whole system.

Currently, it is quite useful to be StringsEn extends StringsRu so it becomes obvious that English translations fallbacks to Russian.
There is however a workaround to avoid a potential refactoring in the future. You could use typedef and rename it to Translations:
typedef Translations = StringsRu;

// Translations.of(context) cannot be used anymore, so we can use the longer version
Translations t = InheritedLocaleData.of<AppLocale, StringsRu>(context).translations;

// "Translations" type works the same way as StringsRu
t.loginPage.name;

You could refactor Translations, so .of(context) will return a Translations type.
And with codegen power we can add all _StringsRu fields to it. So it will satisfy to its _StringsRu subclass.

_StringsRu implements the Translations

Good idea, I will look into this

To sum it up, as a user, I expect that X.of(context) will return the instance of X type. It's not natural, that it returns something else (especially some weird private type).
Please note,

There's an implicit cast in .of method (the value of _StringsRu is casted to Translations return value).
You can now get rid of private constructor and use abstract interface class.
Private constructor means that the class is just a holder for some static members.
abstract means that class is supposed to be subclassed, interface restricts it to be implemented only (not extended).

Thinking of this issue again, I think we can just rename _StringsRu to Translations and
add typedef StringsRu = Translations; for those who currently use the class name.
If we add the translations to the Translations interface, then the generated file could be unecessary big.

I am agree, Translations currently is just a holder for .of method, and all the functionality lies in the _StringsRu, so we probably can just move the  .of method to the _StringsRu

Relased in v3.26.0


Upgrade spectate to 1.0.0

A 1.0 release of spectate was recently published.
It includes some minor breaking changes, but they should not impact the usages here.

Awesome :)
Thank you so much for checking in @rmorshea
btw, just to let you know there's another project using spectate ;) https://github.com/QuantStack/ipyigv
you said it it was just us, now not anymore! hehe

Awesome :)
Thank you so much for checking in @rmorshea
btw, just to let you know there's another project using spectate ;) https://github.com/QuantStack/ipyigv
you said it it was just us, now not anymore! hehe

Seems like everything is still working as it should indeed. Thanks again for the heads up :)

Seems like everything is still working as it should indeed. Thanks again for the heads up :)

@marimeireles I actually posted an issue here on ipyigv: https://github.com/QuantStack/ipyigv/issues/11. It looks like spectate is (as yet) unused. Maybe you're still working on the project?

@marimeireles I actually posted an issue here on ipyigv: https://github.com/QuantStack/ipyigv/issues/11. It looks like spectate is (as yet) unused. Maybe you're still working on the project?


Examples "Transparency" and "Alpha Mask" don't work

Hi there,
the examples Transparency and Alpha Mask don't seem to work for me, they just don't move at all.
Tested in Firefox 48.0.2, Chrome 49.0.2623.112 and Safari 6.2.8 under Mac OS X.

thanks! should be fixed now


Fix sliced ConcatenationTable pickling with mixed schemas vertically

A sliced + pickled ConcatenationTable could end up with a different schema than the original schema, if the slice only contains blocks with only a subset of the columns.
This can lead to issues when saving datasets from a concatenation of datasets with mixed schemas
Reported in https://discuss.huggingface.co/t/datasetdict-save-to-disk-with-num-proc-1-seems-to-hang-with-error/75595

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Document OTLP ingestion endpoint

Proposal

reopened #10547

Support OTLP（OpenTelemetry Protocol） ingestion.

[x] implement #12571
[ ] add docs

relates #12633

@jesusvazquez Can I take this up?

@prathamesh-sonpatki https://github.com/prometheus/prometheus/pull/12643
Could you take up the task of writing the guide with examples? I'll be happy to guide you.

Sure, let me go through #12643 and get back to you if I have any questions.

client-side(opentelemetry-go)
MrAlias has a good example.
https://github.com/MrAlias/otel-otlp-metric-example/blob/main/main.go
server-side
docker compose.yml
services:
  prom:
    restart: always
    image: quay.io/prometheus/prometheus@sha256:8a1275e99ced4e896279845af495e00fb68708e56d9a857f56f459fa6261a6ec
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--enable-feature=otlp-write-receiver'
    ports:
      - '9090:9090'
    configs:
      - source: prometheus
        target: /etc/prometheus/prometheus.yml
        mode: 440

configs:
  prometheus:
    file: ./prometheus.yml

prometheus.yml
storage:
  tsdb:
    # A 10min time window is enough because it can easily absorb retries and network delays.
    out_of_order_time_window: 10m

remote_write:
  - url: http://localhost:9090/api/v1/otlp/v1/metrics
    queue_config:
      capacity: 1000000
      batch_send_deadline: 10s
      max_samples_per_send: 1000
      max_shards: 3
    remote_timeout: "30s"
    follow_redirects: true

Opened https://github.com/prometheus/docs/pull/2382/files to close part of this issue


Task 'publishToSonatype' not found

Today, I found this plugin and I was hoping to get rid of these manual steps while releasing artifacts. Unfortunately, I did not manage to get the plugin running, yet.
I guess I did everything written in the README, but I'm still ending up at a message telling me

Task 'publishToSonatype' not found in root project 'service-base'.

while trying to call

./gradlew.bat publishToSonatype closeAndReleaseSonatypeStagingRepository

Am I missing something?
Thanks for your support.

Did you create the repository?
nexusPublishing {
    repositories {
        sonatype()
    }
}

Sure, I've added the following elements:
buildscript {
 [...]
  dependencies {
        classpath("io.github.gradle-nexus:publish-plugin:1.0.0")
     }
 }
 [...]
 apply plugin: 'io.github.gradle-nexus.publish-plugin'
 [...]
 nexusPublishing {
     repositories {
         sonatype()
     }
 }

Furthermore, I've added 'sonatypeUsername' and 'sonatypePassword' into ~/.gradle/gradle.properties.
What else do I need?
I'm just wondering, if I call
./gradlew.bat tasks
I only see the following elements in the 'Publishing tasks' section:
Publishing tasks
----------------
closeAndReleaseSonatypeStagingRepository - Closes and releases open staging repository in 'sonatype' Nexus instance.
closeAndReleaseStagingRepository - Closes and releases open staging repositories in the following Nexus instance: 'sonatype'
closeSonatypeStagingRepository - Closes open staging repository in 'sonatype' Nexus instance.
releaseSonatypeStagingRepository - Releases closed staging repository in 'sonatype' Nexus instance.

There is no task 'publishToSonatype' listed anywhere.

Have you defined any publications?

No, as no one asked me to do so.  ;-)
I've added the publications section and I'm now ending up at a point, where the task wants to deploy to the snapshots repository and fails with HTTP 400. Are there any hints why a) it goes to the snapshots repository and b) why this fails?
It would be really great to have a working example on how to use the plugin as there seem to be some additional prerequisites which are not mentioned in the README. Many thanks in advance.

@ThomasJejkal It's not official, but you can take a look at the minimal project used in the e2e tests ran on CI:
https://github.com/gradle-nexus/nexus-publish-e2e-minimal/blob/master/build.gradle

@ThomasJejkal I agree that a full example would be helpful and we should add that.
If it goes to the snapshots repository and you haven't changed the useStaging property, that means your version ends with -SNAPSHOT, does it? Does your project's group match the "Repo Target" in your staging profile? Have you set stagingProfileId on nexusPublishing.repositories.sonatype or packageGroup on nexusPublishing?

I think I see the point. I was trying to integrate the publishing into a GitHub action and skipped the release plugin as it was not clear to me what is covered by this plugin here. On Monday I will try to implement the whole release workflow and report back in both cases, if it works and of course also if it doesn't work. ;-)
Thanks a lot for you help so far.

@ThomasJejkal Feel free to propose a README omprovement to make it more obvious about the publishing plugin.

At the end there were a couple of open points I had to cope with and I'm not sure if some of them might be obvious for others, who are more familiar with publishing to Sonatype than I was, and if some of them fit into the scope of your project.
One issue, where your minimal example helped a lot, was the fact, that Sonatype requires some attributes to be present in the pom. I guess mentioning this in the README could help others.
The second (a lot more frustrating) issue was related to the fact, that I want to integrate the publishing into a GitHub action. Thus, I had to find a way to deal with signing using credentials from environment variables. Here I'm not sure if you want to overload your README with information that might be not relevant for the majority of your users.
If you are interested, I could try to provide a sample project including a README covering the two scenarios: publication from local machine and from GitHub including additional steps that have to be carried out, e.g. tagging, release and defining/triggering a GitHub Action.

If you are interested, I could try to provide a sample project including a README covering the two scenarios.

@ThomasJejkal That would be great. Let's start with the first, GitHub-agnostic, scenario, shall we?

hey @ThomasJejkal i would be highly interested in the full example as well. especially thr publish via github actions scenario :)

As promised, I've created a sample project describing the required steps in order to publish in both ways: from your local machine as well as via GitHub Action.
If you are interested, check out the nexus-publish-example.
If there are any problems or questions, feel free to contact me.

I have this exact issue trying to use the plugin on the Hibernate Reactive project: https://github.com/DavideD/hibernate-reactive/tree/687-release
I've added the nexusPublishing and I also have  a publishing. When I try to call the task I have Task 'publishToSonatype' not found. I also have a warning when I import the project in Intellij that sonatype in the repositories is not recognized. Am I missing something?

Nevermind, it seems I've solved this issue and found where I can add it to my project.

@DavideD how did you solve this?
What I'm realizing is that nexusPublishing needs to be defined in the root project, and therefore it is also looking for group and version in the root project. This is causing a lot of disruption in my Android project.

I've put it in the root of the project.
You can see it here: https://github.com/hibernate/hibernate-reactive/blob/021cd601f6e0d25bc552446f1f4c0c102a153b5e/build.gradle#L99
And I've defined the version and group in the root and in the subprojects.

@DavideD Thanks. By the way, there is logically no group or version in my root project.


ckpt: add open/close for reading checkpoint

For consideration, this adds open() and close() calls to the CheckpointEngine to serve as start and end markers during a restart.  Similar to how create() and commit() define the start and end markers when writing a checkpoint, these new calls are useful for checkpoint engines while reading a checkpoint.
The open() function can be used by the checkpoint engine to find and prepare a checkpoint for reading.  The caller may specify a directory in load_dir and a checkpoint name in tag.  If tag == None or "latest", the checkpoint engine loads the most recent checkpoint that it can find.  Otherwise, the checkpoint engine attempts to load the checkpoint named in tag.  open() returns the tag value of the checkpoint that it actually loaded, or None if it fails to find a checkpoint.
The close() call can be used to free any resources that were allocated by the checkpoint engine during open().
All load() calls that read checkpoint files should be placed between open() and close() bookends.
Implementation details and TODOs:

This moves the processing for the latest file to TorchCheckpointEngine.  It is written during commit() and read during open().  For now, save_latest is a member variable of the class that is hard coded to be True.  To make this dynamic, this could either be a config parameter or an option passed to create().  So that only rank 0 creates the latest file, I pass the rank of each process in the TorchCheckpointEngine constructor.  If it's acceptable to use dist within the checkpoint engine, we could alternatively get the rank directly.
I took an educated guess at updating Nebula to use open() and close(), but it's not possible for me to test the code.  The main change is that the search logic that locates the checkpoint has been moved from load() to open().  In particular, one should review my changes to tag_flag.
As an extension, the load_dir parameter that is passed to open() could be made optional, in which case, one could use the current working directory, or load_dir could be passed as a parameter to the checkpoint engine constructor.  Similar changes could be made for save_dir.  I'm guessing that in most cases, these directory paths do not change during a run.

TODO: the handling of optional params in open() needs to be fixed in case either load_dir or tag is None.

TODO: the handling of optional params in open() needs to be fixed in case either load_dir or tag is None.

Decided to make load_dir required, and updated TorchCheckpointEngine to handle tag=None

@tjruwase , I'd like to get your feedback on this one, too.  Do you have some time to review and consider the types of changes suggested in this PR?

@adammoody, apologies for the delay on this PR. I will get to it no later than next week. Thanks for your patience.

@adammoody, apologies for the delay. This looks good. Thanks!

Great. Thanks, @tjruwase !  There are a few spots in here that I know could use some cleanup / attention.
For one, I could not test the nebula code changes at all, so it'd be good to have someone comb through those in detail and make any necessary changes.
I see there are some conflicts with the main branch.  I'll try to refresh the PR soon.

@tjruwase , I'm working to refresh this PR again.
Since I can't test the changes I made to nebula checkpoint engine, is there someone from the team who could help me there?

Hi, @loadams .  If someone is willing to look this over and if the idea is still acceptable, I'll try to get this back up to date.  In particular, I'd need help to make sure it doesn't break nebula (which I can't test) or other checkpoint/restart paths I may have missed.
These open/close hooks are needed for some checkpoint libraries like SCR/Veloc, but they look to be useful for the existing checkpoint engines in torch/nebula.  It requires two new global collectives (open and close), and one must be sure that any load calls are placed in between.

Hi, @loadams . I hope you had a good Thanksgiving!
I could commit some time to this again.  However, I'd still need an assist from your side to really verify and test things, assuming the DeepSpeed team agrees with the approach here.  If you have a chance, please let me know.  Thanks.


Merge dynamic_hmc and hmc

Current behavior
Currently, hmc and dynamic_hmc are separate algorithms. The latter differs from the former by drawing the length of each proposal from a distribution, while the former has a fixed length.
Desired behavior
Clearly, the former is a special case of the latter. The code overlap is reasonably substantial, and is about to be doubled, because we will also want a dynamic and static version of MH-MCHMC.
It would be nice therefore if we right a version of the static hmc which simply is the dynamic hmc called with a distribution over lengths that is delta on some given length.
Additional enhancement
There is also an alternative way to draw the lengths, outlined in this paper: https://arxiv.org/abs/2110.11576 . It would be nice to include this as an option in dynamic_hmc, which just amounts to providing a new distribution to draw lengths from:
def halton(t, max_bits=10):
    """for t= 0., 1., 2., ... it outputs halton sequence at that index (0.5, 0.25, 0.75, ...)
        taken from: https://github.com/tensorflow/probability/blob/main/discussion/snaper_hmc/SNAPER-HMC.ipynb"""
    float_index = jnp.asarray(t)
    bit_masks = 2**jnp.arange(max_bits, dtype=float_index.dtype)
    return jnp.einsum('i,i->', jnp.mod((float_index + 1) // bit_masks, 2), 0.5 / bit_masks)

def rescale(mu):
    """returns s, such that
        round(U(0, 1) * s + 0.5)
       has expected value mu.
    """
    k = jnp.floor(2 * mu -1)
    x = k * (mu - 0.5 *(k+1)) / (k + 1 - mu)
    return k + x

def trajectory_length(t, mu):
    s = rescale(mu)
    return jnp.rint(0.5 + halton(t) * s)

+1. I think the easiest is to test if passing a lambda _: 10 to dynamic_hmc works as intended, especially the speed is the same using the same rng_key under CPU and GPU (should be the case but it is good to check). Then basically static_hmc would just call dynamic_hmc underneath.
As for the halton sequence we actually already have an implementation in https://github.com/blackjax-devs/blackjax/blob/540db419f0ccddb0368443049492b6c0448fe273/blackjax/adaptation/chees_adaptation.py#L451. probably just need to refactoring out to util.py

Actually taking a look at the implementation in hmc.py, dynamic_hmc is calling hmc_base so code repetition is not too bad, with the dynamic_hmc design which requires 2 additional functions (one for advancing the rng_key and one for generating the step_size), I dont think refactoring into static_hmc calling dynamic_hmc with a delta function would reduce the code complexity and improve code clarity really that much.

Yeah, that's fair. I think it would be a little clearer, because then the difference between static and dynamic would be very apparent, but I don't think it's urgent or even necessary.


Clarification required on retention settings

This article says:
_"Because of the principles of retention, you can use retention labels to supplement a retention policy for specific SharePoint, OneDrive, or Exchange items that need to be retained longer, or deleted sooner than the specified settings in a retention policy for the same location."
Wanted clarification if we can delete items with labels sooner, if retention policy is already set on items.
Example: If there is a retention policy of 5 years on a mailbox, can I assign a label to a folder such that its deleted after 2 years?
I have looked at retention flowchart and it looks like longest retention period wins. If that is the case, then this statement in the article that you can delete items sooner is confusing.

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

ID: 6bfafff9-649f-fe14-6317-b0d81a8aa8ee
Version Independent ID: 6bfafff9-649f-fe14-6317-b0d81a8aa8ee
Content: Create retention labels for exceptions to your retention policies - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/create-retention-labels-information-governance.md
Service: o365-seccomp
GitHub Login: @cabailey
Microsoft Alias: cabailey

@bubhat   You don't say what the configured retention action is in the retention policy for your example, just the time period  ("... a retention policy of 5 years"). If the configured action is to retain, then yes, that always takes priority (the first principle of retention).  But if the configured action of the retention policy is delete-only, a retention label that deletes will take priority over the retention policy because of the third principle of retention. "Explicit wins over implicit for deletions" (https://docs.microsoft.com/en-us/microsoft-365/compliance/retention?view=o365-worldwide#the-principles-of-retention-or-what-takes-precedence).

Thanks.
Thanks,
Bhavana Bhatia

From: Carol Bailey @.>
Sent: Tuesday, February 1, 2022 11:30:11 AM
To: MicrosoftDocs/microsoft-365-docs @.>
Cc: Bhavana Bhatia @.>; Mention @.>
Subject: Re: [MicrosoftDocs/microsoft-365-docs] Clarification required on retention settings (Issue #7576)
@bubhathttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbubhat&data=04|01||c753a1f95157436c9e5d08d9e5a88079|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637793334141645164|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=T2ZbzwUS5LcUrOLTvtnrL01OXNqyjNgriQ0goXbdHGQ%3D&reserved=0 You don't say what the configured retention action is in the retention policy for your example, just the time period ("... a retention policy of 5 years"). If the configured action is to retain, then yes, that always takes priority (the first principle of retention). But if the configured action of the retention policy is delete-only, a retention label that deletes will take priority over the retention policy because of the third principle of retention. "Explicit wins over implicit for deletions" (https://docs.microsoft.com/en-us/microsoft-365/compliance/retention?view=o365-worldwide#the-principles-of-retention-or-what-takes-precedencehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoft-365%2Fcompliance%2Fretention%3Fview%3Do365-worldwide%23the-principles-of-retention-or-what-takes-precedence&data=04|01||c753a1f95157436c9e5d08d9e5a88079|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637793334141645164|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=x82sUcJ5%2FIIYKQLshBTeW4EVDxxcDQjRpnay3Gu1FJU%3D&reserved=0).
—
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fmicrosoft-365-docs%2Fissues%2F7576%23issuecomment-1027103125&data=04|01||c753a1f95157436c9e5d08d9e5a88079|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637793334141645164|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=8BB8f1rYo84xt39bWRlb3fWRRqIsjD1ENhIDPKXyuQM%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHKITXIMFXFKTWOGW6S2WOTUZAKCHANCNFSM5NJVS6YA&data=04|01||c753a1f95157436c9e5d08d9e5a88079|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637793334141645164|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=TpMlu%2BzJRvyj8F8cHspHVkAeJVydxZ1NPy76ATeqAyg%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01||c753a1f95157436c9e5d08d9e5a88079|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637793334141645164|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=pKYrUzrGRuCzGd4dbEqQykuYs2RcPQ4RcCOKlvPvYP8%3D&reserved=0 or Androidhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01||c753a1f95157436c9e5d08d9e5a88079|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637793334141645164|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=4UxFXRMkYB8bHdVI3PSvErulvphSmy2nkOykjwoaBGs%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

Issue addressed & made minor wording change for clarity. Closing.


[Bug]: Jukebox Error - Failed to load data

Minecraft Version
1.20.x
Mod Loader Version
0.15.3
Mod Version
1.2.0
Describe the Issue
If the jukebox feature is true (i guess)

latest.log
https://discord.com/channels/745451299713056791/1191376188929736764
Do you use any other mods except the required ones?
yeeeeees

Fixed with https://github.com/Globox1997/AdditionZ/commit/b0521c92b3a8a04cf5e0de9cd069a95730f24338


Master issue: private registry caching

This is a catch-all issue for configuring a registry as a pull-through cache for non-hub registries.  If you are cc'd here you have shown an interest in this issue and this is a place to state your motivations and expectations.
@zhanghuanzhong (#1242)
@sinovak
@farmerworking (#1146)
@TrumanLang
@dalanlan
@duyanghao
Please do not leave +1 comments.  This is a request for use cases.

@RichardScothern, Thanks for your cc.
My scene is:
I have a Datacenter A in city A and Datacenter B in city B. A and B are in a local area network(LAN), but cann't access the docker hub.
Each Datacenter has multiple instances of Docker running(multiple physical, all running the Docker daemon). And all of them require docker image from the local registry(that means DC A's instance from registry A and DC B's instance from registry B).
Each time one of them requires an image that it isn't in the local registry(eg., registry A) but it's in the remote registry(eg., registry B) it will return failed.
So, my expectation is:
If the image is in the remote registry(eg., registry B) but not in the local registry(eg., registry A), the DC A's instance could get the image from the remote registry(eg., registry B) and cache it in the local registry(eg., registry A). The next time, DC A's instance will get the image from the local registry.

+1 for this
My use-case is that we operate out of multiple AWS regions, we use Jenkins to build docker images and post to multiple private repositories in each region.  The docker registries are on private VPCs which each application instance in the same VPC can pull from.  Basically this means initial upload of the image can be slow but deployments are fast, which is the best way around for us.
For me an on push replication feature would be best, but in the absence of that, this private pull replication would still be beneficial.
We also use docker in vagrant dev environments so an office registry replicating on pull our nearest private registry would also be good

My scene is:
I have two Registry hub,one call A,another is B.Hub A and B are in a local area network(LAN),but can't access the docker hub.
Besides,the LAN has multiple instances of Docker running(multiple physical, all running the Docker daemon).And all of them require docker image from the hub A.
The problem here is that:
we want to pull image from hub A,if it does not exist,the hub A will pull image from hub B and caching it in the local filesystem.In other words,we want to config hub A as a pull-through cache for hub B.

Also would like to have a private registry cache.  The network connection from some of our datacenters to the primary private registry is not the fastest.  When we push a new change to the private registry that needs to be run on a whole bunch of machines in the remote datacenter, presently, each remote machine needs to pull the new image individually over the slow link.  If there were a proxy registry in the remote datacenter, then the new image would only need to be pulled once over the slow link, and then all the machines in the remote datacenter could pull the image quickly from the local caching registry proxy.
Imagine 100 machines in the remote datacenter with gigabit+ networking, and a 100 Mbit connection from that datacenter to the primary private registry.  You can see how a caching proxy would really help here.
I would like to be able to tell the proxy (proxy-registry.datacenter.example.com:5000) what registry it is proxying for (i.e. docker-registry.example.com:443), and then configure the machines in the cluster to refer private registry requests to the proxy (i.e. --registry-mirror docker-registry.example.com:443=proxy-registry.datacenter.example.com:5000)

+1

My scene:
We are running several docker daemons in the public with access to our private hub.
In addition we are running a growing number of docker daemons in corporate which cannot access the public at all. We need to either ship a registry using an asset or "sync" the local registry of the company with the one on the laptop when joining their network locally.

My scene is as following chart:

Our use case is that we have isolated clusters on our private lan. Those clusters only have an edge node. The caching registry would act as a proxy for the isolated cluster. Think spoke and hub. Oh and all of this is on an air-gapped network.

+1
I have exact same scenario of @zhanghuanzhong

+1

The Problem is not Registry V2 but Docker,Here is my solution for this Problem:
https://github.com/docker/docker/pull/21245
And The Test is successful

Is there a chance that this will be officially addressed in the upcoming v2.5 docker-registry release?

There are changes required in the docker engine.  I don't think this will make 2.5

FYI, it turns out you can cache a v2 registry with squid. If you want a pull-through private registry cache, try this out: https://github.com/virtuald/docker-registry-cache

funny! your change seems ridiculous,registry v1 has its own configuration for pull-through private registry cache,refer to:
https://docs.docker.com/v1.6/articles/registry_mirror/
Why do you want to cache both registry v1 and registry v2 with registry v2?that seems funny!
@virtuald

@duyanghao I didn't say I wanted to cache a v1 registry, I merely pointed out that if one wanted to cache a v1 registry with squid, it's not easily done.
However, you can cache a v2 registry with squid.

So, what's the difference of your project?

If you want a pull-through private registry cache, try this out: https://github.com/virtuald/docker-registry-cache

It is a v2 registry cache that works without modifying docker source code.

The Problem is not Registry V2 but Docker,why do you want to change the source code of  registry v2? @virtuald

For my purposes, the problem is not docker. I did not change the source code of registry v2.

maybe,you do some processing on the proxy(such as redirect) to achieve the pull through cache function,but it seems not practical!

@duyanghao why are you arguing so vehemently against a solution that a) is simple, b) purports to work, and c) doesn't require any docker changes?

none of them,we are talking about technology,right?
I just voice my opinion,anyway,you can ignore my view!

@duyanghao it's just a HTTP cache, no magic going on there

Nice work @virtuald

We have sites across the world that are using Docker heavily as part of designer workflows, continuous integration builds, and product. In many of these cases, images are being pulled frequently. The "HTTP cache" mechanisms I have looked at, do not properly handle authentication requirements. Yes, if we had anonymously accessible repositories, a simple HTTP cache mechanism would work, but this is not appropriate in many situations. Once HTTP authentication is required, the Docker Registry V2 support for "CDN" doesn't seem to work. I believe it is due to this code in https://github.com/docker/docker/blob/master/registry/session.go#L100 :
	// Authorization should not be set on 302 redirect for untrusted locations.
	// This logic mirrors the behavior in addRequiredHeadersToRedirectedRequests.
	// As the authorization logic is currently implemented in RoundTrip,
	// a 302 redirect is detected by looking at the Referrer header as go http package adds said header.
	// This is safe as Docker doesn't set Referrer in other scenarios.
	if orig.Header.Get("Referer") != "" && !trustedLocation(orig) {
		return tr.RoundTripper.RoundTrip(orig)
	}

And, the definition of trustedLocation in https://github.com/docker/docker/blob/master/registry/registry.go#L126 :+1:
func trustedLocation(req *http.Request) bool {
	var (
		trusteds = []string{"docker.com", "docker.io"}
		hostname = strings.SplitN(req.Host, ":", 2)[0]
	)
	if req.URL.Scheme != "https" {
		return false
	}

	for _, trusted := range trusteds {
		if hostname == trusted || strings.HasSuffix(hostname, "."+trusted) {
			return true
		}
	}
	return false
}

It seems like only docker.io and docker.com are permitted to have authenticated caching capabilities, as this is the logic hard coded into the client.
I have tried to follow the issues and pull requests that relate to this problem and I find it a little confusing as the above problem doesn't seem to have been documented in any of them, and the requests for change keep getting closed as not properly designed.
I see two directions that could be taken, perhaps both:

Should docker.io and docker.com be considered the only trusted locations? From a corporate perspective, I might not want to trust these. This hard coded logic seems like it should be configurable, such that we could configure out clients to specify which domains should be trusted, including our own, and this would allow us to use CDN-like capabilities to implement authenticated HTTP caching.
Should there be some abstract mirror configuration possible, that would specify "for this domain, use this local mirror" similar to how host volumes are defined with docker create/run. I've seen a few proposals that suggest this model and even implement this model. What aspect of the design needs to be complete for these to be considered acceptable?

Our use case is:
We switched from hosting our own private registry to s3 backed because of storage issues but the performance on s3 is much slower (8mbps down vs 100+ mbps down).  We'd like to run a docker registry as a pull through cache in a couple of colocate data centers nearby our developers to increase performance.

@scottschulthess https://github.com/virtuald/docker-registry-cache will work great for you then

@scottschulthess You have several options now:

If your private registry supports JWT authentication than then Registry 2.6.0 should be able to act as a Mirroring proxy fro it.

As stated above you can use Squid to do the caching in a way @virtuald have done it

It is also possible to configure Nginx to work as a caching proxy as well.

If your private registry supports JWT authentication than then Registry 2.6.0 should be able to act as a Mirroring proxy fro it.

Can this also act as a mirror for different registries? Like acting as a mirror for gcr AND hub?

No you can't configure Registry to act as a mirror for several other registries.

@sergeyfd: I'm trying to use the 2.6.0-rc.1 distribution image as a mirror for an private registry. The docker daemon still only contacts the mirror for docker hub images (without a hostname part). How can I configure docker to use the --registry-mirror for images of the form my.registry.com/something/image?

That feature (--registry-mirror) is meant to be used only for Docker Hub. We solved this issue through global DNS load balancing where DNS server returns IP address of a caching servers in some locations.

I added a proxy section for a private registry - without auth - and it appeared to work OK in a quick test

Our use case:
Using AWS for CI runs while docker registry is hosted in another DC. Docker instances come and go depending on CI demand. Thus private registry cache in AWS would greatly speed up our CI runs.

Our use case: We deploy all our microservices via containers, including to our developer boxes, some of which are located geographically very far away from our primary registry. We'd like the option to run a mirror as a cache on our developer boxes, allowing us to have a local cache to repopulate multiple developer Vagrant machines from. It would also be nice to be able to build and push test versions of containers to the local mirror only to be pulled to the Vagrant machines, but we'll settle for just being able to locally mirror the central private registry.

Our use case: We're running our services in kubernetes among multiple clusters (We have dozens of clusters today and may be more in the future). The clusters are located in difference geographical position and the networks of some clusters are not being controlled by ourselves, thus there're some clusters have slow speed network connections from the local network  to our docker repository server.  When we're deploying services with multiple instances, each docker daemon has to fetch the image for itself and make the deploying very slow.
If I can set up a docker image cache in the local network of clusters, the same image will be only fetched once and it makes deploying more faster.

@lipixun https://github.com/virtuald/docker-registry-cache will work great for you then

You need to add a section to the squid.conf to rewrite any WWW-Authenticate headers to point at the proxy rather than back at the original private docker registry.  We use artifactory, so have something like this:
reply_header_access WWW-Authenticate deny all
reply_header_replace WWW-Authenticate Bearer realm="https://docker-proxy.example.com/v2/token",service="artifactory.example.com:8081",scope="repository:dockerv2-local:pull,push"

@virtuald Nice job!
Another think you may be interested in: collapsed_forwarding. Enabling this option will make squid  pending the concurrent requests of the same resources and only 1 request will be forwarded. Thus, multiple instances could be deployed at the same time without worrying about the duplicated requests.

From the doc I linked,

It consists of a single host name in case of a single-name certificate (e.g. example.com, www.example.com), or a wildcard name in case of a wildcard certificate (e.g. *.example.com). In all cases, it is not an URL and therefore it doesn’t include any protocol (e.g. http:// or https://), port number, or pathname.

So I think it should be the API server's <hostname>.<domain>, but maybe we could set it as *.<domain>...

Our use case:
Multiple Kubernetes clusters running in different regions in AWS, that use images from Docker Hub, various public repositories (e.g. quay.io, gcr.io), and a private registry hosted in AWS. We want to minimise data transfer volume and pull time by caching images in each AWS VPC. We can't (easily) change image names (e.g. point at a different registry) as some images are managed by orchestration tools (e.g. kops).

We have a private docker registry that is in a centralized DMZ subnet accessible by DEV and PROD DMZ subnets (to facilitate integration with out CD pipelines and have one source of truth for our images).  We run these containers in DEV and PROD subnets that do not have network connectivity to the central repository so a proxy would reside in the DEV/PROD DMZs.  Additionally, this would allow us to speed up deployment of images sourced from other public registries and prevent downtimes associated with access to those registries.

private registry cache!! +100

We have a Private Registry that serves 4 offices (In 2 continents) and 2 data centers. It would be nice to have an easily configurable cache in each location to mitigate slow downs and help our CI server and devs work against our private registry.

Why not install a proxy on each datacenter?
On 5 Sep 2017 20:58, "GiantRobots"<EMAIL_ADDRESS>wrote:

We have a Private Registry that serves 4 offices (In 2 continents) and 2
data centers. It would be nice to have an easily configurable cache in each
location to mitigate slow downs and help our CI server and devs work
against our private registry.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/docker/distribution/issues/1431#issuecomment-327255496,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADeok4mZNK8j1oMbAave5KOYOqo2f2x3ks5sfYuogaJpZM4HUjnY
.

@cristifalcas That's exactly what I want to do but I'd like to use the Pull Through Cache functionality of the registry container. The only thing stopping it from working is code in the docker client at least that's my understanding of the issue.
The above commit #34319 adds the functionality that I would like and I can continue to use all my infrastructure mostly un-edited other than a simple config change.

The 'easy' way to do this is still https://github.com/virtuald/docker-registry-cache.  We deploy it in several datacenters around the world to do pull through caching of our primary registry.  There are, however, fiddly problems with authentication that need to be carefully addressed if you don't have universal routing enabled.

So we tried adding  https://github.com/virtuald/docker-registry-cache as a solution to provide a cache. Turns out it doesn't work at all with the S3 backend because it issues temporary redirects directly to the S3 bucket.
So another +1 for a 1st class docker-pull-through-cache implementation.
---------
HTTP/1.1 307 Temporary Redirect
Content-Type: application/octet-stream
Docker-Distribution-Api-Version: registry/2.0
Location: xxx-S3-bukkit-temporary-access-token-xxx
X-Content-Type-Options: nosniff
Date: Wed, 27 Sep 2017 15:14:18 GMT
Content-Length: 315
X-Cache: MISS from xxx
X-Cache-Lookup: MISS xxx (squid/3.5.20)
Connection: close

@GiantRobots we went that route too and decided to run docker-registry-cache in front of docker-registry running on same server but with redirections disabled.

@dangra if you added something to the README about that issue and how you resolved it that would be great 👍

The fact that:

the pull through cache is not queried for non-dockerhub image names, like quay.io and gcr.io hosted images
there is nothing done with this thread

seems to me to favor dockerhub over the competition. I assume it’s very easy to query the mirrors exhaustively and it wouldn’t cost performance. Where is the source with that functionality? Maybe we can do it ourselves?

I do assume the hostname:port/path are abstracted away in the lower level workings of the registry. If so it should be trivial to make rthe registry configurable with more trusted hosts than the docker ones, and remove any hardcoded stuff from the client, and make it try any registered mirrors first.
However, the fact that this thread is so long and old I think I must be grossly oversimplifying the matters. Can you guys shed any light on this @dmcgowan @crosbymichael

Hi Everyone,
I created this project  that works as pull/push through proxy for AWS ECR. You can also add your certificate to make it work with HTTPS but for now you can try insecure mode. I will be happy to hear feedback on this.
It takes care of redirects by ECR and caches them. So cover almost all the cases.
Regards,
Qasim Sarfraz.

@RichardScothern Is there any progress for docker supporting private registry mirror? i guess that could solve most of our problems.

It seems that they are working on this PR.

Plug: A terrible, but working, hack to work around the lack of private registry mirror support: https://github.com/rpardini/docker-caching-proxy-multiple-private
It involves 2 caching containers (one for DockerHub, one for everything else) and injecting stuff into /etc/hosts or other forms of DNS hacks, but handles S3 redirects, authentication, and multiple proxied/cached registries.
Should work about the same as virtuald/docker-registry-cache, without the need to build Squid, and actually caching blobs coming from Amazon S3, Google Storage, etc, and without the need to change the full image names.

Use case (in addition to the above):
I develop many projects, all using docker images. My laptop cannot store all of the images without regularly exceeding the cache. In addition, the docker system prune command does not reliably work  (on my mac) without crashing the docker daemon.
If I could bring around a small hard drive dedicated to my own pretty large docker image cache, I can productively work without very often waiting for all my very large docker images to download. That cache would have to proxy cache several private registries (quay.io, gce, aws).
Thank you for all your work on this. It's much appreciated.

+1

+1

+1

So 4 years after the original issue, this is still not a thing

FWIW, we’ve been using a pull through squid cache for the last several years. Cache the manifests for 30 seconds, layers forever, with fifo expiration on disk usage.

FWIW, we’ve been using a pull through squid cache for the last several years. Cache the manifests for 30 seconds, layers forever, with fifo expiration on disk usage.

@llamahunter that sounds really useful. Is configuration obvious? If not, could you post it in a gist or something. It sounds perfect as a workaround.

@dionjwa https://github.com/virtuald/docker-registry-cache is a squid cache. Doesn't sound like it's as carefully tuned as what @llamahunter has, but those changes are welcome!

We used a nginx cache for years similarly. Nothing special needed in the config, we used this for the cache keys to cache identical blogs across different images/namespaces:
location ~ /v2/.+/blobs/(?<blob_sha256>.+) {
        proxy_cache_key blob_$blob_sha256;
        proxy_cache global_key_zone;
…

I've been using using the regular docker registry as a pull through cache for another private registry just fine, though without requiring authentication.    All I did was set proxy.remote url to be my upstream registry.   Is this issue just about supporting that when auth is required?

Our use case is to cache images on Gitlab runners where each job executes in a separate VM (for security reasons) and therefore images cannot be cached on the host itself. Downloading images even from the same DC still takes time and it would greatly improve execution time for us.

I'm trying to set it up as pull-through cache for another private registry. It seems it works fine, the docker image can be pulled.
proxy:
  remoteurl: https://<private-artifactory>
  # the ref for a secret stored outside of this chart
  # Keys: proxyUsername, proxyPassword
  secretRef: secret-cendentials

Registry version using: 2.7.1
It seems to work fine, it can pull images from another private registry. When I check the storage, the layers and blobs are available. From the second time, image is pulled in a shorter time, but not very short as a few seconds as I expected.
I'm really confused when checking the mirror recipe, it said:

Some questions:

Does it work with another private registry besides Docker Hub?
How can I check if the image is pulled from cached or pull from remote private registry? I try changing log level to debug and checking the pod's log, but it's not clear
3/ Could anyone point me to the sourcecode where it's read from cache instead of pulling from remote registry?

I have two usecases, first of all as a Organisation I want to ensure I can control but also Archive what images are pulled, what tags can be changed and I want to enforce an immutable archive. This is very similar to setting up a MavenEntral mirror repository which makes sure all my builds will be repeatable indefinitely. For this to work I would like to specify one mirror for all namespaces (optionally with a exclude list), so the mirror should get the fully qualified image name to fetch it. This also makes sure there are no namespace conflicts.
the second usecase is, as a software vendor I offer a permitted registry, but imho not want customers to regularly pull images as they go. I would like to tell them, set up a private mirror, enter your credentials in the mirror server.  And it still works to validate the signatures and the used docker files are portable as I specify my private registry everywhere.
BTW caching http Proxy somewhat can do it, but it’s mostly complicating immutable achieving or business rules (like „rel*.* tags must not be moved“)
a sub-usecase of the Second is a offline provisioned mirror in a air gap scenario. Unlike specifying a new registry name you can keep using the official one, even if you provision it’s repositories manually/offline to the mirror.

Does it work with another private registry besides Docker Hub?

No, that’s what the doc says, it does not use the mirror for private registries (Podman and the SuSE docker fork have that option).

How can I check if the image is pulled from cached or pull from remote private registry? I try changing log level to debug and checking the pod's log, but it's not clear

easiest would be to check the mirrors access log.

3/ Could anyone point me to the sourcecode where it's read from cache instead of pulling from remote registry?

the pull code always checks local existence of layer first. Not sure if that code helps you much, since this is not what you care about, or? The places related to mirroring are touched in the Suse PR, so check it out here: https://github.com/moby/moby/pull/34319/files


New task - Loan filter

Similar to "Filter Collection Objects"

Filter all attributes of a loan, matching text string or exact text
Search by Person (Recipient/Supervisor)
Search by Identifier (and ID ranges)
Text in "Notes" field, matching text string or exact text
Tags

Special Searches:

"Is Overdue" - Filters Loans to those Loans with a "past" Date Return Expected
"Has Documentation" - with or without documentation toggle
"Has Identifier" - with or without an identifier

Loan item(s) Filters:

OTU included in loan (e.g. show me all loans with "Coleoptera" or "Arachnida")
By Collection Object identifiers (all loans with the following identifier range or specific identifier)
Filter loans by Item Status (e.g. show me all the loans with loan items marked as "Lost":

== Base attributes

Filter all attributes of a loan, matching text string or exact text

[ ] loan_wildcards - we need identical facet as used in CE attribute search

Search by Person (Recipient/Supervisor)

role[], with person_id[]

[ ] overdue - both - nil, is overdue - true, is not overdue, false

[ ] documentation - with/out filter

[ ] identifiers - withou/out

[ ] Existing facet for taxon_name_id and descendants filter

[ ] Existing facet for otu_id[] selector

[ ] Loan item status - loan_item_disposition - see select list we use in LoanItem UI for things like "Lost"

== Annotations

[ ] Identifier, and Match identifier
[ ] Notes
[ ] Tags

== Notes

By Collection Object identifiers (all loans with the following identifier range or specific identifier)

Will do this, to start, with collection_object_query passing in


patch for ip cve fix

Description

added patch for updating<EMAIL_ADDRESS>to<EMAIL_ADDRESS>
Motivation
There is a CVE for<EMAIL_ADDRESS>that is fixed with<EMAIL_ADDRESS>Issue #, if available:
Description of changes:
created patch for this change, applied patches, then copied all to patched folder
Testing

pulled fresh version of code - oss
build code yarn install --pure-lockfile --verbose
ran smoke tests to verify prior to adding any patches yarn smoketest --web --browser chromium

  70 passing (6m)
  8 pending

✨  Done in 514.59s.

cleaned vscode dir
pull fresh version from source git submodule update --init
applied new patch quilt push patches/security.diff
cd into vscode
build code yarn install --pure-lockfile --verbose
ran smoke tests with current patch yarn smoketest --web --browser chromium

  70 passing (6m)
  8 pending

✨  Done in 501.63s.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@arkaprava08 please note that the current commit message is:
patch for ip cve fix

**Description**

- added patch for updating<EMAIL_ADDRESS>to<EMAIL_ADDRESS>
**Motivation**

There is a CVE for<EMAIL_ADDRESS>that is fixed with<EMAIL_ADDRESS>
Seems to have all of the requested data


Issue 121 Manifest.yml fix

changed yml file

Codecov Report

Merging #122 (7565908) into master (58e072e) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #122   +/-   ##
=======================================
  Coverage   99.44%   99.44%
=======================================
  Files           2        2
  Lines         363      363
=======================================
  Hits          361      361
  Misses          2        2

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 58e072e...7565908. Read the comment docs.

IBM Cloud toolchain: Delivery Pipeline deployed products to dev, including commit 3fdf36a25c3350f6a8164327396ecd5fcaea2ebc

IBM Cloud toolchain: Delivery Pipeline deployed products to prod, including commit 3fdf36a25c3350f6a8164327396ecd5fcaea2ebc


Updated the tooltip on uploaded file links

This PR is for the issue #19740
Testing plan:
Visual testing and automatic tests.
GIFs or screenshots:

@alexmv
Here I have generated a PR for issue #19740 opened by you, Can you review it ?

Can you amend your commit message to follow the Zulip convention. Refer to the docs for specifications.

@rakshit512002 You might also want to mark "Download" for translation.
Take a look at how $t is being used in static/js/notifications.js.

The PR #19834 is unecessary. Since this issue is already fixed in PR #19805

@isakhagg Currently I am the assignee of issue #19740 hence, I opened a PR to fix it.

@isakhagg Currently I am the assignee of issue #19740 hence, I opened a PR to fix it.

Yes, but it has already been fixed in #19805 and the comments you got on this PR is already corrected.

@isakhagg Your PR is not merged yet so please let me try

@ligmitz I have amended the commit message, can you have a look at it?
Please correct me if I am still wrong as it's my first PR.

@rakshit512002 You're welcome to try as everyone else. When picking an issue to work on please make sure that someone is not already assigned, to avoid duplicate PR. When you claim an issue which no one is assigned to use:
@zulipbot claim

You should read more in the documentation:
https://zulip.readthedocs.io/en/latest/overview/contributing.html
My recommendation is for you to close this PR and for you to assign yourself to a new issue.

@isakhagg The one who opened the issue #19740 himself assigned it to me so I think I didn't made any mistake by opening the PR for that issue if you have any problem with that please clarify it with @alexmv and please don't spam my PR's comment section.

@isakhagg Extremely sorry for the inconvenience caused to you, I'll be closing this PR now.


What to do about "Local Component State Management"?

Removed the "Local State Management" tools in #22 to simplify the API as it has turned out in practice that createCallback and useCallback (and yeah, sigh, bindEffect) were already the MVPs of local state and it turned out the "cool" ideas in the Local Component State Management which seemed like such a "hard requirement" for any component framework turned out to be uninteresting in practice. It makes sense to YAGNI the ideas for now, especially with a goal towards a minimal 1.0 release with the support burden that implies.
Is this something to revisit in the future?
Possibly in a way that doesn't bloat the main component? There's probably no good way to do "mixins" or "traits" here? Maybe it's more of a service class need anyway? It's own service-class base class?

A couple months on, createCallback/useCallback is definitely the useState star of Pharkas and YAGNI seems correct on the Local Component State Management tools I explored.


Remove "extra row" from top-app-bar

This is complicated to implement, and not supported by all MDC wrappers.

Discussion in #228 highlights how extra row is utilized for adding tabs to top app bars, including in pwa-starter-kit.

My use case for this is for a secondary title with some dynamic effects to produce a similar effect to what was present in the first Polymer Starter Kit (a long time ago).

After reviewing, we preempted MDC Web by implementing this, and we'd like to avoid that and wait for them to release features first. So this issue will remain valid. extraRow will return when it is released in MDC Web.


Convert toolbars from YAML version 3

a variant of #6582
ping @himdel, @mzazrivec, @chrisarcand

OK, I like this one the best, I think :).
There is a bunch of whitespace annoyances there that you may want to fix in the conversion script but otherwise..

It looks like you have 879 style offenses to fix, @martinpovolny. Please address.
...:trollface: :trollface: :trollface:

Oh, yes, I have to add a calculation of hash key length and align each set of keys to a different column to make that style freak happy.

@himdel, @mzazrivec, @chrisarcand : ready to merge this and move to the next steps. Do a get an ACK here?

ACKed :) LGTM, + seems to work ;)

@himdel : sure it works
@dclarizio, @h-kataria : magic button please? (before someone merges some toolbar changes and I have to rebase!)


PMAPs of CGM and CGL in Julich Brain 2.9 points to prerelease data

see https://github.com/FZJ-INM1-BDA/siibra-configurations/issues/84

fixed in siibra-python as of https://github.com/FZJ-INM1-BDA/siibra-python/releases/tag/v0.4a86


Change the development build name suffix to "(Nightly)"

The previous "☢" suffix was considered to be too alarming.
Closes: https://github.com/endlessm/endless-key-flatpak/issues/51

a new build under this app id every night, which I am not sure it is the case. Also, "Dev" is shorter, which is always a plus.

That would indeed make more sense. I'll change that :)


Need to set label to enable/disable Portworx on nodes

Currently only the service is stopped or started. But OCI-Mon will restart after health checks fail and then restart Portworx since the node labels aren't updated.
The node labels also need to be updated in addition to using systemctl to start/stop Portworx.

Discussed offline. The restart of Portworx was due to a different issue and not the absence of the label.


geoclue2: 2.5.5 -> 2.5.6

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/geoclue/versions.
meta.description for geoclue2 is: "Geolocation framework and some data providers"
meta.homepage for geoclue2 is: "https://gitlab.freedesktop.org/geoclue/geoclue/wikis/home"

Quoted meta.homepage for RFC 45

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 2.5.6 with grep in /nix/store/izs1z0myj3d0q6nx8gmqdqa9jqvnla2z-geoclue-2.5.6

directory tree listing: https://gist.github.com/44a79a213daa6bfd391aba775b850077

du listing: https://gist.github.com/e7e7127d6eb9306b2cae5d8540af5077

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

556 total rebuild path(s)
191 package rebuild(s)
191 x86_64-linux rebuild(s)
178 i686-linux rebuild(s)
16 x86_64-darwin rebuild(s)
171 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
adapta-gtk-theme
almanah
areca
astroid
azureus
balsa
birdfont
bookworm
calls
chrome-gnome-shell
cinnamon.cinnamon-control-center
clight
deepin.dde-kwin
deepin.dde-launcher
deepin.dde-session-ui
deepin.startdde
deja-dup
dropbox-cli
eclipses.eclipse-cpp
eclipses.eclipse-java
eclipses.eclipse-modeling
eclipses.eclipse-platform
eclipses.eclipse-scala-sdk
eclipses.eclipse-sdk
elementary-planner
empathy
eolie
ephemeral
epiphany
evolution-data-server
feedreader
folks
geoclue2
gfbgraph
gnome-builder
gnome-online-accounts
gnome-photos
gnome-recipes
gnome3.bijiben
gnome3.cheese
gnome3.devhelp
gnome3.empathy
gnome3.epiphany
gnome3.evolution
gnome3.evolution-data-server
gnome3.evolution_data_server
gnome3.file-roller
gnome3.folks
gnome3.geary
gnome3.gfbgraph

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/izs1z0myj3d0q6nx8gmqdqa9jqvnla2z-geoclue-2.5.6 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's 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 geoclue2 https://github.com/r-ryantm/nixpkgs/archive/f150d16ab4bb3d20a72e905562c7b890ab1c425a.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/izs1z0myj3d0q6nx8gmqdqa9jqvnla2z-geoclue-2.5.6
ls -la /nix/store/izs1z0myj3d0q6nx8gmqdqa9jqvnla2z-geoclue-2.5.6/bin

cc @7c6f434c for testing.

Changelog looks fine


add "edit" button

Below - say z16 - add a "Edit" button to map, which calls "editor.transformap.co" with the right coordinates.

an "edit" button in each popup, which calls our iD with the right element

fixed with fa580dc.

Edit button for map fixed with fa580dc.
Still todo:
"Edit" for elements in popup.

finally fixed with fce9f1965f39479b79397ab60e87c0ec5887dfd2.


Class member variables/methods window

Thank you for the great software!
Maybe I'm not the first one to ask, then ignore me, if it's possible to create a dockable window with a list of variables/methods within a decompiled class?
Thank you!

Can I try this issue.?


:fire: Add PPP for Cheng Yi

Previously there was no PPP
Let's add PPP

Codecov Report
Base: 72.15% // Head: 72.15% // No change to project coverage :thumbsup:

Coverage data is based on head (6916df5) compared to base (4b89513).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master      #33   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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.


is_constexpr should use parameter values

Example
constexpr int foo(int val)
{
    if(val == 0) {
        throw "bad";
    }
    return val;
}

static_assert(is_constexpr<foo>(5)); // ERROR, false negative

constexpr int bar(int val)
{
    if(val != 0) {
        throw "bad";
    }
    return val;
}

static_assert(!is_constexpr<bar>(5)); // ERROR, false positive

is_constexpr<foo>(5) checks foo(int{}) aka foo(0), which is not constexpr.
is_constexpr<bar>(5) checks bar(int{}) aka bar(0), which is constexpr.

We might be able to improve this for integral parameters, by passing them as non-type template parameters. I don't know how to implement that generally. It would be restricted anyway, since C++17 still doesn't support arbitrary literal types as template parameters.
A lambda based solution may be possible. We can create a lambda, closed over the parameter values, and check if the lambda is constexpr.

It seems like a lambda based solution is out for now. Lambda's can't be template parameters, duh.

I removed values from the interface, you can only pass types now. That makes it less misleading.
I think it could be done with limited scope (integral types only).


Can not show images that attached inline in the text of email

Checklist

[X] I have used the search function to see if someone else has already submitted the same bug report.
[X] I will describe the problem with as much detail as possible.

App version
6.709
Where did you get the app from?
F-Droid
Android version
11
Device model
Emulator
Steps to reproduce

Receive an email with image inside it.
Open that email with K-9

Expected behavior
We should see image inside that email. (Tested with Thunderbird desktop)
Actual behavior
Image didn't load or shows. even we download that image manually.

Logs
No response

Sorry. It was My mistake. I didn't see the "Download Complete message" button located at the bottom of the page. For enhanced user experience, it may be beneficial to consider improving its visibility in the future.


Game reviews

Game Reviews
As a User, I'd like to be able to ask randbot to aggregate reviews for me
Requirements
Primary

Asking for a review for a game should give me results
Integrate with metacritic
Integrate with steam (?)

Secondary

Asking for a review for a game should give me an averaged score across aggregated results

Criteria for acceptance

[ ] Calling @randbot review [game] should give me an aggregated list of reviews

use:
https://api.igdb.com/