CRABS in Docker

Apologies in advance; I'm sure my issue is pretty pathetic, but I'm using Docker for the first time to try to run CRABS and I've not done much with the Command Prompt before. I'm having trouble getting CRABS to run on Docker.
I've gotten Docker up and running on Windows 10 and have managed to load the welcome and getting started images and made them into containers. I then used Command Prompt to install CRABS, which I can then see as an image on Docker. However, when I run CRABS in Docker or use the Command Prompt to run the first three lines of help code from your tutorial, nothing happens and I get the same error message.
Command Prompt:
C:\Users\lorel>docker run --rm -it quay.io/swordfish/crabs:0.1.4
Traceback (most recent call last):
File "/usr/local/bin/crabs", line 1428, in
main()
File "/usr/local/bin/crabs", line 1425, in main
args.func(args)
AttributeError: 'Namespace' object has no attribute 'func'
Docker (when trying to run from image to container):
2023-07-03 14:43:22 Traceback (most recent call last):
2023-07-03 14:43:22   File "/usr/local/bin/crabs", line 1428, in
2023-07-03 14:43:22     main()
2023-07-03 14:43:22   File "/usr/local/bin/crabs", line 1425, in main
2023-07-03 14:43:22     args.func(args)
2023-07-03 14:43:22 AttributeError: 'Namespace' object has no attribute 'func'
I've tried deleting everything and reloading/reinstalling several times, but still have the same issue.
Are you able to tell me what I've done wrong? Do I need to provide additional information? Is there a tutorial you can point me to?
Thanks in advance!

Hello @lepatrick1,
Apologies for the issues you're running into. As I'm not that familiar with Docker itself, I'll refer you to @hughcross who developed the Docker installation. @hughcross, could you please have a look at the error message to determine what's going on?
Thanks,
Gert-Jan

Hi @lepatrick1 ,
Thanks for trying out Crabs!  Docker can be tricky and many developers build their docker images differently, so you sometimes have to adjust for new programs. I also notice that I have not yet added a Windows tutorial. I will try to do that by the end of the summer, but feel free to ask questions here and we will try to get back to you.
I was able to replicate your error on my Windows machine. I believe the problem is that you did not enter a command after the image. The quay.io/swordfish/crabs:0.1.4 part just finds the image, but you still need a crabs command to do something. For example, to get the help command:
docker run --rm -it quay.io/swordfish/crabs:0.1.4 crabs -h

notice the crabs -h after the image name. Some docker images don't require that you put the command after, but ours does. You should be able to follow most of the mac tutorial, but for Windows terminal you change the \ to a ` (the key next to the 1 key on most keyboards). As an example:
docker run --rm -it `
  -v $(pwd):/data `
  --workdir="/data" `
  quay.io/swordfish/crabs:0.1.4 `
  crabs db_download `
  --source taxonomy

That should work, but let me know. Notice in this last command that you still have the crabs command crabs db_download after the image name.
Hopefully, this will help you get started. Let us know how it goes. One other thing that helps me with Windows is that I use Visual Studio Code and run commands from the terminal within that program. I am not as familiar with Windows but using VS Code (as I do on all operating systems) helps. But there are many options.

Thanks for the information! I've managed to get through the tutorial to the point of trying to output the taxonomy table (the last step of the tutorial before the visualizations). I'm now using Visual Studio Code. It throws an error when I use
-v $(pwd):/data `
so instead I've been using
--volume C:\Users\lorel\reference_database_creator:/data `
I also can't get the following code to work:
PS C:\Users\lorel\reference_database_creator> TAX= 'C:\Users\lorel\reference_database_creator\taxonomy_files'
TAX= : The term 'TAX=' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
At line:1 char:1

TAX= 'C:\Users\lorel\reference_database_creator\taxonomy_files'

  + CategoryInfo          : ObjectNotFound: (TAX=:String) [], CommandNotFoundException
  + FullyQualifiedErrorId : CommandNotFoundException

I've tried modifying the code to get the taxonomy table to output, which is where I'm currently stuck:
PS C:\Users\lorel\reference_database_creator> docker run --rm -it `

--volume C:\Users\lorel\reference_database_creator:/data   --volume C:\Users\lorel\reference_database_creator:/src
--workdir="/data"   --cpus 4
quay.io/swordfish/crabs:0.1.4   crabs assign_tax
--input amanita_its1pga.fasta     --output amanita_its1.tsv
--acc2tax /src/nucl_gb.accession2taxid     --taxid /src/nodes.dmp
--name /src/names.dmp

retrieving accession numbers from amanita_its1pga.fasta
96%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▎    | 760775/793213 [00:00<00:00, 12796342.77it/s]found 2947 accession numbers in amanita_its1pga.fasta
reading /src/nucl_gb.accession2taxid into memory
Traceback (most recent call last):
File "/usr/local/bin/crabs", line 1428, in
main()
File "/usr/local/bin/crabs", line 1425, in main
args.func(args)
File "/usr/local/bin/crabs", line 511, in assign_tax
acc2tax, taxid, name, no_acc = tax2dict(ACC2TAX, TAXID, NAME, accession)
File "/usr/local/bin/function/module_assign_tax.py", line 14, in tax2dict
with tqdm(total = os.path.getsize(acc2tax)) as pbar:
File "/usr/lib/python3.8/genericpath.py", line 50, in getsize
return os.stat(filename).st_size
FileNotFoundError: [Errno 2] No such file or directory: '/src/nucl_gb.accession2taxid'
The last line of the error message keeps coming up regardless of how I tweak the code (as long as I haven't messed the code up so badly it doesn't run at all, which has absolutely happened).
Any ideas on how to get past this error?
Thanks!
Lorelei

Hi @lepatrick1 ,
Let me try to help. I will address your problems in turn. The first problem is that using $(pwd) won't work in Windows. I believe that is just linux/mac. I should have caught that. Sorry. It looks like you solved that. I will check for the Windows shell alternative.
For the second, It looks like you are trying to assign the variable TAX to the folder where the taxonomy files are, as in the tutorial. You have a space between TAX= and the folder. there should be no space.  I think the problem there is that in the second --volume argument you point to the main folder, but it seems you downloaded the taxonomy files to a subfolder called taxonomy_files. Crabs can't find these files as a result. Try this:
PS C:\Users\lorel\reference_database_creator> docker run --rm -it `
   --volume C:\Users\lorel\reference_database_creator:/data `
   --volume C:\Users\lorel\reference_database_creator\taxonomy_files:/src `
   --workdir="/data" `
   --cpus 4 `
   quay.io/swordfish/crabs:0.1.4 `
   crabs assign_tax `
     --input amanita_its1pga.fasta `
     --output amanita_its1.tsv `
     --acc2tax /src/nucl_gb.accession2taxid `
     --taxid /src/nodes.dmp `
     --name /src/names.dmp

If you downloaded your taxonomy files to that subfolder then it should work. Check the names of the downloaded files.
Let me know how that goes.
I am sorry I haven't had a chance to add more information for Windows users. I won't have a chance to do a full tutorial until the fall (northern hemisphere). Thank you for your patience. It looks like you have done pretty well figuring things out, but don't hesitate to ask. Your input helps us as well!
Cheers,
Hugh

Hugh,
Thanks again for getting back to me!
The code you sent to make the TAX variable did not work:
PS C:\Users\lorel\reference_database_creator> TAX='C:\Users\lorel\reference_database_creator\taxonomy_files'
TAX=C:\Users\lorel\reference_database_creator\taxonomy_files : The term 'TAX=C:\Users\lorel\reference_database_creator\taxonomy_files' is not recognized as the
name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At line:1 char:1

TAX='C:\Users\lorel\reference_database_creator\taxonomy_files'

  + CategoryInfo          : ObjectNotFound: (TAX=C:\Users\lo...\taxonomy_files:String) [], CommandNotFoundException
  + FullyQualifiedErrorId : CommandNotFoundException

At this point, I don't care about that, just wanted you to know.
I still can't get the last step to work regardless of where on my computer the taxonomy files are; at this point I have copied them to several folders on my computer to ensure that isn't the problem. I've also checked the spelling of the nucl_gb.accession2taxid and tried adding .gz (which caused a utf8 error) with no luck:
PS C:\Users\lorel\reference_database_creator> docker run --rm -it `

--volume C:\Users\lorel\reference_database_creator:/data   --volume C:\Users\lorel\reference_database_creator:/src
--workdir="/data"   --cpus 4
quay.io/swordfish/crabs:0.1.4   crabs assign_tax
--input amanita_its1pga.fasta     --output amanita_its1.tsv
--acc2tax /src/nucl_gb.accession2taxid     --taxid /src/nodes.dmp
--name /src/names.dmp

retrieving accession numbers from amanita_its1pga.fasta
96%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▎    | 761617/794088 [00:00<00:00, 12340848.17it/s]found 2950 accession numbers in amanita_its1pga.fasta
reading /src/nucl_gb.accession2taxid into memory
Traceback (most recent call last):
File "/usr/local/bin/crabs", line 1428, in
main()
File "/usr/local/bin/crabs", line 1425, in main
args.func(args)
File "/usr/local/bin/crabs", line 511, in assign_tax
acc2tax, taxid, name, no_acc = tax2dict(ACC2TAX, TAXID, NAME, accession)
File "/usr/local/bin/function/module_assign_tax.py", line 14, in tax2dict
with tqdm(total = os.path.getsize(acc2tax)) as pbar:
File "/usr/lib/python3.8/genericpath.py", line 50, in getsize
return os.stat(filename).st_size
FileNotFoundError: [Errno 2] No such file or directory: '/src/nucl_gb.accession2taxid'
Any additional advice?
Thanks,
Lorelei

Hugh (@hughcross),
New issue but while attempting to do the same thing. I've managed to download the sequences I need for my project and am now trying to assign taxonomy and getting this error message about "acc2tax":
PS C:\Users\lorel\reference_database_creator> docker run --rm -it `

--volume C:\Users\lorel\reference_database_creator:/data    --workdir="/data"
--cpus 4    quay.io/swordfish/crabs:0.1.4
crabs assign_tax      --input Insecta_CO1pga.fasta
--output Insecta_its1.tsv      --acc2tax nucl_gb.accession2taxid
--taxid nodes.dmp      --name names.dmp
--missing missing_taxa.tsv
At line:9 char:8

 --acc2tax nucl_gb.accession2taxid `

   ~

Missing expression after unary operator '--'.
At line:9 char:8

 --acc2tax nucl_gb.accession2taxid `

   ~~~~~~~

Unexpected token 'acc2tax' in expression or statement.
+ FullyQualifiedErrorId : MissingExpressionAfterOperator
PS C:\Users\lorel\reference_database_creator> docker run --rm -it `

--volume C:\Users\lorel\reference_database_creator:/data    --volume C:\Users\lorel\reference_database_creator:/src
--workdir="/data"    --cpus 4
quay.io/swordfish/crabs:0.1.4    crabs assign_tax
--input Insecta_CO1pga.fasta      --output Insecta_its1.tsv
--acc2tax /src/nucl_gb.accession2taxid      --taxid /src/nodes.dmp
--name /src/names.dmp `
--missing missing_taxa.tsv
At line:10 char:8

 --acc2tax /src/nucl_gb.accession2taxid `

   ~

Missing expression after unary operator '--'.
At line:10 char:8

 --acc2tax /src/nucl_gb.accession2taxid `

   ~~~~~~~

Unexpected token 'acc2tax' in expression or statement.
+ CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingExpressionAfterOperator
This happens regardless of if I use the src folder (what's the purpose of using this folder?)
This should be the last step I need before I'm ready to move forward with my project so any help or advice would be great! TIA!

I don't know what you all did, but if finally worked! Thanks!
PS C:\Users\lorel\reference_database_creator> docker run --rm -it `

--volume C:\Users\lorel\reference_database_creator:/src    --workdir="/src"
--cpus 4    quay.io/swordfish/crabs:0.1.4
crabs assign_tax      --input Insecta_CO1pga.fasta
--output Insecta_its1.tsv      --acc2tax /src/nucl_gb.accession2taxid
--taxid /src/nodes.dmp      --name /src/names.dmp
--missing missing_taxa.tsv

retrieving accession numbers from Insecta_CO1pga.fasta
95%|███████████████████████████████████████████████████████████████████████████████▋    | 25680600/27062808 [00:02<00:00, 10691597.59it/s]found 116612 accession numbers in Insecta_CO1pga.fasta
reading /src/nucl_gb.accession2taxid into memory
100%|██████████████████████████████████████████████████████████████████████████████|<PHONE_NUMBER>4/11932025964 [12:35<00:00, 15792684.67it/s]reading /src/nodes.dmp into memory
100%|███████████████████████████████████████████████████████████████████████████████████| 190266827/190266827 [00:19<00:00, 9819409.88it/s]reading /src/names.dmp into memory
100%|██████████████████████████████████████████████████████████████████████████████████| 233742549/233742549 [00:20<00:00, 11536535.96it/s]processed 116612 entries in /src/nucl_gb.accession2taxid
processed 2516767 entries in /src/nodes.dmp
processed 2516767 entries in /src/names.dmp
assigning a tax ID number to 116612 accession numbers from Insecta_CO1pga.fasta
did not find 0 accession numbers in /src/nucl_gb.accession2taxid
116612 accession numbers resulted in 21364 unique tax ID numbers
generating taxonomic lineages for 21364 tax ID numbers
assigning a taxonomic lineage to 116612 accession numbers
written 116612 entries to Insecta_its1.tsv
95%|███████████████████████████████████████████████████████████████████████████████▋    | 25680600/27062808 [00:02<00:00, 11543692.44it/s]writting
0 sequences with missing taxonomic info to missing_taxa.tsv


Studio does not let me connect to an encrypted DB.

OrientDB Version: 3.0.10
Java Version: "11" 2018-09-25
OS: Mac OS X 10.14 BuildVersion:	18A391
Expected behavior
Ability to manage data of encrypted DB via Studio.
Actual behavior
Studio does not let me connect to the DB.
Steps to reproduce
I wish to make my database encrypted, so I am following Database Encryption

sudo /Applications/orientdb-3.0.10/bin/console.sh
orientdb> CONFIG SET storage.encryptionKey MyEncryptionKey
orientdb> CREATE DATABASE plocal:/Applications/orientdb/databases/test-db admin admin plocal graph -encryption=aes

Studio does not let me connect to the DB using submitted user and password neither root. Reason : Invalid username or password
Is this behaviour proper ? So encrypted DB can not be managed via Studio ?

Getting same issue encrytpted databases not able to access via orientDB studio.
Also how to connect orientDB database from orientjs  package if it is not accessible using the studio also ?


Question: IdentityServer4 username/password provided by client

Hi,
How do I use IdentityClient to pass username/password/authorization-token to the server. I don't want the server to request the username/password but rather to provided by the client, does IdentityServer answer this need?

Found it tokenClient.RequestResourceOwnerPasswordAsync().


artifacts in planar projection images

Describe the bug
When extracting planar projections from equirectangular images there are strange artifacts in the results not present in the originals.
Original image:

Two example planar projection outputs:

Notice the artifacts around the horizon line and on the guard rail. Issue not isolated to just this dataset. Here's an example from a different video. Compare this with the same planar projection made using an earlier version of nerfstudio.

To Reproduce

run ns-process-data images --camera-type equirectangular --images-per-equirect 8 --data path/to/data --output-dir processed/
Inspect images in "planar projections" folders for artifacts

Expected behavior
Planar projection images without artifacts
Additional context
I recently reinstalled conda and nerfstudio from scratch on a new machine and built from the git repo rather than pip install. There is a command line warning that pops up that I never saw previously when running ns-process-data. I went into the "functional.py" script and changed align_corners=True from false due to even worse artifacts appearing without that change. Maybe this is a user error but I have never seen such an error pop up and did my best to mitigate it. Any input appreciated, I can share datasets but it should happen with any equirectangular image in my experience. Cheers.
[14:19:06] Generating 8 (1440, 1440) sized images per equirectangular image           images_to_nerfstudio_dataset.py:55
/home/mrpibb/miniconda3/envs/nerfstudio/lib/python3.8/site-packages/torch/nn/fun
ctional.py:4236: UserWarning: Default grid_sample and affine_grid behavior has
changed to align_corners=False since 1.3.0. Please specify align_corners=True if
the old behavior is desired. See the documentation of grid_sample for details.
  warnings.warn(

My guess is that this is due to a change in PR #2350.  This change was required for licensing reasons. @THE-COB could also chime in.

My guess is that this is due to a change in PR #2350.  This change was required for licensing reasons. @THE-COB could also chime in.

This is probably true, let me see what I can do about the artifacts

Hi, any update on this because i have reinstalled Nerfstudio just now and still i get the same artifacts. And a lot of them.

Hi, any update on this because i have reinstalled Nerfstudio just now and still i get the same artifacts. And a lot of them.

Sorry, I have not gotten to it yet. I will update you when I get to it or someone else does.

I got the same issue in 3.4:

In the previous version 3.3 patches have no artifacts.

Hi, any updates on this issue? I am using a new nerfstudio version 1.0.2 and also get many artifacts on the planar projections

@tancik @THE-COB Hey, I'm the maintainer for equilib which was the dependency before your own implementation (I didn't realize it used to be a dependency until recently). I think you can revert back to equilib as a dependency since the license is Apache 2!

It is possible to temporary downgrade your nerfstudio version by checking out to 61548ceba1af598a552710d8c4a6feb22645b7e1 (version 0.3.3) where the previous library equilib was used for planar projections. Since it was removed, you may want to install pyequilib back inside your environment
I have tested it myself and got no artifacts at all. However, I have not tested any other command than ns-process-data video --camera-type equirectangular, so maybe it's recommended to check out back on main for the other nerfstudio functionnalities


Release AUR package

Discussed in https://github.com/aaronleopold/stump/discussions/97

Originally posted by Relwi March 15, 2023
Hey, is there the possibility that we have in a future an AUR package?
At some point, it would be a nice to have if CI can also publish the zipped(?) linux binary + webapp bundle to AUR.

Hi, I am interested in this enhancement, but I am confident that it needs more details to achieve the goal.
My first question is: What should be the zipped Linux binary + web app bundle?

In the GitHub actions, I noticed that you create different builds. I assume that the Desktop build should be gone to the AUR. Is it correct?
What are you expected to add to AUR as a web app bundle?

My second question is: How do you handle the versions for all the builds?

I noticed that the version is 0.0.0 for all the builds. In Rust, the version is in the stump/Cargo.toml.
I am not seen GitHub releases or tags. In docker images, I saw only the nightly version and the experimental.
How do you want to handle the versions in AUR? Stump-nightly and stump-experimental. Or other?

These are my AUR:

optional-packages.
battery-discharging.
brightness-xrandr.

My first question is: What should be the zipped Linux binary + web app bundle?

Exactly correct, the binary and the webapp bundle zipped together. Not sure if an installer of some kind would be necessary, but those two items are all that is otherwise needed.

In the GitHub actions, I noticed that you create different builds. I assume that the Desktop build should be gone to the AUR. Is it correct?

Eventually, yes it can. Until the first more stable release of Stump is released, though, it shouldn't. I'm not personally focusing on ensuring the desktop app is always functional right now, since there are many other higher priority things I need to get out the door first.

What are you expected to add to AUR as a web app bundle?

That's a big question, and one I probably can't answer. Someone else requested AUR releases.

My second question is: How do you handle the versions for all the builds?

I don't. This is something that I have an issue for actually: https://github.com/stumpapp/stump/issues/93
Basically, the release workflow is not yet implemented. Ideally, I would imagine when tags are pushed from main to:

Start various builds
Generate a change log

In general, I don't think any actual publishing to AUR should be done yet. You're welcome to continue with this ticket as far or as little as you'd like, but keep in mind it should just be adding the required CI/hookups for it while keeping it 'disabled' so nothing gets published until versioning is a thing here

Thanks for the detailed answer.
I have two questions before continue with this ticket (PR and RM).

If I create the PR, will you merge it if it complains your basic expectations? I am interested in the Hacktoberfest challenge.
I can solve it, in the similar way that I solved in my AUR packages, which for me works good. Do you agree with this solution?

Basically, I automate the creation of the build as you did, then upload the information to the AUR. Because, AUR doesn't store files, only links or commands, and then it downloads and executes these commands in Arch Linux.
Please, review the following links:

.github/actions/aur-deployment/
.github/workflows/deploy-to-aur.yml

If I create the PR, will you merge it if it complains your basic expectations? I am interested in the Hacktoberfest challenge.

Yep! To reiterate, the general expectation would be to add the integration that is functional (i.e. it can run a build and push info to the AUR) but have the workflow be disabled until I am ready (i.e. versioned releases start). That way, there is less of a hurdle once this functionality is needed and we don't pollute the AUR with nightly builds.

I can solve it, in the similar way that I solved in my AUR packages, which for me works good. Do you agree with this solution?

I trust your judgement. Your description sounds logical to me:

Basically, I automate the creation of the build as you did, then upload the information to the AUR

Keeping in mind that while I have primarily used arch-based distributions, my knowledge about best practices for AUR packaging is lacking 😅

Ok, would you kindly assign to me? I'll start working in a few minutes or hours.

I am trying to follow the Development Guide, but it is not working. Do you have an idea how to solve it?
Error:
WARN Unsupported engine: wanted: {"node":"18.16.0"} (current: {"node":"v20.8.0","pnpm":"8.8.0"})

packages/interface | WARN The field "pnpm" was found in /home/wolf/workspace/projects/stump/packages/interface/package.json. This will not take effect. You should configure "pnpm" at the root of the workspace instead.

Scope: all 12 workspace projects
Lockfile is up to date, resolution step is skipped
Packages: +2209

Running install script...
 ELIFECYCLE  Command failed.
 ELIFECYCLE  Command failed with exit code 1.

I attached the screenshots.

Are there any log files being generated? The error code alone isn't much to go off of. You can maybe try removing all node_modules and then:
pnpm store prune
pnpm i --ignore-scripts

I'd also be curious if trying to use moon would present the same issue for you

I'd also be curious if trying to use moon would present the same issue for you. Could also try removing the pnpm-lock.yaml and retrying the above.

First, I deleted these files, then tried pnpm i and I got the same error.
$ find . -iname pnpm-lock.yaml
<EMAIL_ADDRESS>./pnpm-lock.yaml

$ rm -f<EMAIL_ADDRESS>$ rm -f ./pnpm-lock.yaml

$ pnpm i

Are there any log files being generated? The error code alone isn't much to go off of. You can maybe try removing all node_modules and then:
pnpm store prune
pnpm i --ignore-scripts

I restored the file ./pnpm-lock.yaml then I tried these commands and it worked.

Are there any log files being generated? The error code alone isn't much to go off of. You can maybe try removing all node_modules and then:
pnpm store prune
pnpm i --ignore-scripts

I tried first delete the file pnpm-lock.yaml then I executed these commands and it worked too.

New error, I ran pnpm dev:desktop.
These are the outputs.
First time:

Second time:

cargo-watch: command not found

To run any of the dev scripts, you'll need to install that dependency (step 2 of the install guide). However, you don't need to worry about the desktop for now. If you remember:

In the GitHub actions, I noticed that you create different builds. I assume that the Desktop build should be gone to the AUR. Is it correct?

Eventually, yes it can. Until the first more stable release of Stump is released, though, it shouldn't. I'm not personally focusing on ensuring the desktop app is always functional right now, since there are many other higher priority things I need to get out the door first.

I'm mostly concerned with the server and web app bundle for now, sorry if that wasn't communicated well 😅 but that shrinks the scope a bit for this ticket

Yes, I agree. I'm deviating from the goal. Furthermore, I was thinking this day that this ticket is not ready to start because at the end AUR packages have a dependency on digital storage in some place (GitHub releases, hosting, or other). Then, I suggest unassigning me and creating some kind of block.


Lunarfusion/css 117 progress circle core tokens

Description
BREAKING CHANGE: This migrates the Progress Circle component to core tokens.

Jira issue CSS-117 https://jira.corp.adobe.com/browse/CSS-117

How and where has this been tested?

Chrome 103 for macOS
Firefox 102 for macOS
Safari 15.5 for macOS
How this was tested: comparing local build of http://localhost:3000/docs/progresscircle.html with XD redline components batch and with https://spectrum.adobe.com/page/progress-circle/

Screenshots

To-do list

[ ] If my change impacts other components, I have tested to make sure they don't break.
[x] If my change impacts documentation, I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have tested these changes in Windows High Contrast mode.

[ ] This pull request is ready to merge.

I think the VRT will fail as there are a couple of class-names renamed. We need to expect that in the test.

@lunarfusion @bernhard-adobe - we actually have Progress Circle ignored in the VRT due to BackstopJS not being able to handle animations, so this one won't even run.

VRT test: 	https://spectrum-visual-regression.ci.corp.adobe.com/view/Spectrum CSS/job/css-vrt-test/35/artifact/backstop_data/html_report/index.html
2022-08-10 -- 1488 - progress-circle.zip

Released:
2.0.0-beta.0

@jnurthen - would you mind taking a look at the changes to the Progress Circle here to let @lunarfusion know if the Windows High Contrast Mode styles are acceptable? Thank you!

@pfulton - I think I made a mistake when I fixed this one originally. The Highlight colour is not guaranteed to be a visible colour combination with the track (which I think gets ButtonBorder/ButtonText by default).
This is particularly apparent when viewing the High Contrast (light) theme.

I think a border between the 2 could resolve this - or maybe using HighlightText as one of the colours or another way? However, I wouldn't want to block this PR on that as it is not a new error. IMO This can be tracked in a separate (lower priority) Issue as the visibiity of the progress on a progresscircle is likely low priority.

@jnurthen The change that I initially made to WHCM was to ensure the track and the fill have contrast. I did not override the track color for WHCM, but I did override the fill with keyword "Highlight". Here is the VRT result.
Before:

After:

Note that the VRTs appear to be using Mac emulation of WHCM. Our assessment of the difference between Mac emulation and actual default WHCM colors on a windows machine is:

Highlight color that looks bright blue (to me) on Mac emulation (left in the visual below)
Highlight color that looks pale purple (to me) on a PC that a colleague tested for us (right in the visual below)

Would you like any changes to track or fill color keywords or to the delineation of track and fill based on this info? I can provide a comprehensive visual of our Mac emulation vs PC results if that might help.

These are the 4 high contrast themes that windows (10) provides.
HC #1

### HC #2

### HC Dark

### HC Light

These were tested using Assistiv Labs which is running windows.
I don't like using forced-color-adjust: none here as that could lead to the track completely disappearing which I don't think is any better than the current situation.
I was playing around with it and changing the border-style on the track to double might so the trick!

Released<EMAIL_ADDRESS>


Add max_pixrad() function

Add a function to return the maximum radius of HEALPix pixels at a given NSIDE.

Using the expressions for pixel boundaries from Gorski et al. (2005), I think it can be shown that the largest diagonal is just inside the northern polar region, next to the zero meridian. This appears to agree with Fig. 3.
According to Section 4.1, the ring index is $i = N_{\rm side}$, and the pixel-in-ring index is $j = 1$ (note that the bounds for $i$ given in the text are incorrect). By (4) and (5), the pixel centre is hence $z = \frac{2}{3}$ and $\phi = \frac{\pi}{4 N_{\rm side}}$.
According to Fig. 9, the northern vertex of said pixel is $v(k, k')$. Since $\phi_v(k, k') = 0$, it follows that $k = 0$ by (A8).  Furthermore, since the eastern vertex $v(k+1, k')$ is due north of the pixel with $i = N_{\rm side} + 1, j = 1$, it follows that $\phi_v(k+1, k') = \frac{\pi}{2 N_{\rm side}}$, and hence $k' = N_{\rm side} - 1$ by (A8). Using (A7), the northern pixel vertex is hence at $z_v(k, k') = 1 - \frac{1}{3} \bigl(\frac{N_{\rm side} - 1}{N_{\rm side}}\bigr)^2$ and $\phi_v(k, k') = 0$.
The maximum pixel radius is then the angular distance between $(z, \phi)$ and $(z_v, \phi_v)$.


Error creating battery service.

Thank you for this plugin!
I have NOT done the migration to the new Homekit system in iOS.
Homebridge version: v1.6.0
I double checked all the values. I have the location blank (only one charger). I'm so close, the logs show it logs in and finds the correct charger, but it seems to fail adding the battery service?
[03/01/2023, 19:44:14] [Pulsar Plus US SN ######] Found account for *** *******
[03/01/2023, 19:44:14] [Pulsar Plus US SN ######] Found device at the location: Family
[03/01/2023, 19:44:14] [Pulsar Plus US SN ######] Wallbox platform finished loading
[03/01/2023, 19:44:15] [Pulsar Plus US SN ######] Adding lock for Pulsar Plus US SN ###### charger
[03/01/2023, 19:44:15] [Pulsar Plus US SN ######] Adding battery service for Pulsar Plus US SN ###### charger
[03/01/2023, 19:44:17] [Pulsar Plus US SN ######] Error updating status TypeError: Cannot read properties of undefined (reading 'includes')
at /var/lib/homebridge/node_modules/homebridge-my-wallbox/wallboxplatform.js:224:59
at Array.filter ()
at wallboxPlatform.calcBattery (/var/lib/homebridge/node_modules/homebridge-my-wallbox/wallboxplatform.js:224:22)
at wallboxPlatform.updateStatus (/var/lib/homebridge/node_modules/homebridge-my-wallbox/wallboxplatform.js:278:31)
at wallboxPlatform.getStatus (/var/lib/homebridge/node_modules/homebridge-my-wallbox/wallboxplatform.js:246:10)
at processTicksAndRejections (node:internal/process/task_queues:95:5)

It looks like I may have a bug in how the startup handles this part of the config but I believe this is tied to your configuration, Specifically the part around the car.  If this section is blank then it should start correctly or make sure the "Name of your Charger" matches the name from Wallbox, from you log snippet it looks like it should be "Pulsar Plus US SN ######"
Feel free to copy in that section of your config if you still have trouble.

thank you, that was my mistake for not reading carefully.
Now I see this when it is trying to make the switch:
[03/01/2023, 22:59:57] [Pulsar Plus US SN ######] Adding battery service for Pulsar Plus US SN ###### charger
[03/01/2023, 22:59:57] [Pulsar Plus US SN ######] Adding switch for Pulsar Plus US SN ###### charger
[03/01/2023, 22:59:58] [homebridge-my-wallbox] This plugin generated a warning from the characteristic 'Battery Level': characteristic value expected valid finite number and received "NaN" (number). See https://homebridge.io/w/JtMGR for more info.

Even with a very simplified config:
        {
            "name": "Pulsar Plus US SN ######",
            "email"<EMAIL_ADDRESS>            "password": "***",
            "refreshRate": 24,
            "liveRefreshTimeout": 2,
            "liveRefreshRate": 20,
            "locationName": "Family",
            "showControls": 0,
            "socSensor": false,
            "platform": "wallbox"
        }

I get this error:
[03/01/2023, 23:22:59] [Pulsar Plus US SN ######] Adding lock for Pulsar Plus US SN ###### charger
[03/01/2023, 23:23:00] [Pulsar Plus US SN ######] Error updating status TypeError: Cannot read properties of undefined (reading 'getCharacteristic')
    at wallboxPlatform.calcBattery (/var/lib/homebridge/node_modules/homebridge-my-wallbox/wallboxplatform.js:222:43)
    at wallboxPlatform.updateStatus (/var/lib/homebridge/node_modules/homebridge-my-wallbox/wallboxplatform.js:278:31)
    at wallboxPlatform.getStatus (/var/lib/homebridge/node_modules/homebridge-my-wallbox/wallboxplatform.js:246:10)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

Do you get your battery level in your wallbox app? I have a VW ID.4 and I never see my state of charge in my wallbox app. Maybe you're always expecting it to be there but in some cases it may not be there?

It took me some time to realize that if I specify a car and charger, that the log message about the battery level and NaN is just a warning. I see that it is working in the Home App. Closing this issue. Thanks for the support! I'd be happy to beta test for you in the future.


Delete food entry

Description
Delete Food entry and add delete confirmation modal.
Type of change

[x] New feature (non-breaking change which adds functionality)

Change Status

[x] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?

[x] npm start

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings
[x] There are no merge conflicts

alright, we good

 Delete Food entry


Unable to respond to some keys

The problem is described as follows:
1、'ctrl + o' will respond to exceptions when minimap is on display. You can't go back to the previous location, especially across files.
2、'ctrl + w + k/j/h/l' will respond to exceptions when minimap is on display. The key will fail unless you press it very quickly.
I hope these problems can be improved. This is a good plug-in.
Looking forward to reply.

Hi! Thanks for reporting the issue. vim-minimap is very much in maintenance mode, and I do not actively develop it anymore. If you can figure out a fix, I will definitely consider PR, however.


in a pickle

looking to upgrade from 12.2.0 to latest 18.2.7 without downtime
Could someone please refer me to an upgrade path? 😬

@naseemkullah please just follow this issue. and close yours, the summary does not indicate any real context.

Hi @ivankovnatsky i noticed an issue with regards to upgrading to 18.
Are there any docs to upgrade from 12 to 13, 13 to 14, 14 to 15 and so on? Or should the upgrade from 12 to 28 be attempted directly?
Closing issue now. It would appreciate any info with regards to that.

@naseemkullah
tdlr: v18 is a breaking change meaning that you won't be able to upgrade keeping your current resources, and the actions like state manipulation and other shenanigans would be needed.
take a look around at https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/UPGRADE-18.0.md and the thread down the issue: https://github.com/terraform-aws-modules/terraform-aws-eks/issues/1744
sorry, though i posted the url, but i did not.

I see I see
Do you have any info about going from 12 to something below 18? Actually the interesting release is 16 in my case to get rid of template_file use which is not supported on ARM

Thanks @ivankovnatsky

Curious if you ever managed to do an upgrade?

We did an upgrade only for this module: https://github.com/terraform-aws-modules/terraform-aws-eks/tree/master/modules/self-managed-node-group.


experiment with new layout and new tasks pages

This creates the new sitemap. Rather than changing the existing stuff, a new dir was created (content/tasks) and all of this is listed there. This allows for us to have it "hidden" for the time being while it is developed. Mostly doing this so it gets run on netlify.
Naturally md should be autogenerated.

@scottgigante  the preview link? https://deploy-preview-13--openproblems-sca.netlify.app/tasks/

@scottgigante  it's part of the CI/CD

Oh great, thanks. Didn't realise that link took me to the page itself.

@dsm-72 all TODOs have been fixed on main. Once you fix merge conflicts this should be ready to merge.

@dburkhardt @dsm-72 I fixed all the merge conflicts except one which I'm not qualified to comment on. layouts/partials/navbar.html was removed in 08bb865b4643d5c982c2a5603ee2b536fad865d3. I'll let you two figure that out then this should be good to merge

Thanks for all your hard work @dsm-72 !


Golink fails when proto file imports other protos

Hello!
I recently tried this tool out on Embark's internal bazel repo and we noticed golink seems to generate faulty rules when dealing with a proto file with dependencies.
For example, for the following bazel rule file, you can see that the go_proto_link rule is refering to a go_proto_library that does not actually exist in this package:
load("@golink//proto:proto.bzl", "go_proto_link")
load("@rules_proto//proto:defs.bzl", "proto_library")
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")

proto_library(
    name = "inventory_proto",
    srcs = ["inventory_user.proto"],
    visibility = ["//visibility:public"],
    deps = [
        "//services/online-subsystem/proto/inventory/inventory:inventory_proto",
        "@go_googleapis//google/rpc:status_proto",
    ],
)

go_proto_library(
    name = "inventory_go_proto",
    compilers = ["@io_bazel_rules_go//proto:go_grpc"],
    importpath = "github.com/EmbarkStudios/src/services/online-subsystem/proto/inventory/user",
    proto = ":user_proto",
    visibility = ["//visibility:public"],
    deps = ["//services/online-subsystem/proto/inventory/inventory:go_default_library"],
)

go_library(
    name = "go_default_library",
    embed = [":inventory_go_proto"],
    importpath = "github.com/EmbarkStudios/src/services/online-subsystem/proto/inventory/user",
    visibility = ["//visibility:public"],
)

proto_library(
    name = "user_proto",
    srcs = ["inventory_user.proto"],
    visibility = ["//visibility:public"],
    deps = ["//services/online-subsystem/proto/inventory/inventory:inventory_proto"],
)

go_proto_link(
    name = "user_go_proto_link",
    dep = ":user_go_proto",
    version = "v1",
)

Hey @luna-duclos  sorry have been away for a while.
It is little bit weird that you don't have a go_proto_library for user_proto you should. There is nothing hardcoded in my library that should generate this target like this.
I would need to understand a little bit more, were the targets generated by gazelle? Did you change them manually?
I tested this in my own test repo in this commit and it seems to work
https://github.com/nikunjy/go/commit/77b1979603fb05050916f4f104a43585431336cb#diff-b5c7df0248b51c12d89d55f919c29bc4

The targets were indeed generated by gazelle, this happens when you have protos in two different directories and seperate BUILD.bazel files are generated for them and set to depend on eachother.
Let me know if you have any trouble reproducing it and I can work on making an example and posting it here.

Here is an example with two different directories and two different BUILD.bazel
https://github.com/nikunjy/go/commit/e6ce5a2b60a5b119e7334d6e689aab7d9966d641
I have a hello package and a common package. hello imports from common but I am not seeing the same problem.
It seems like your directory structure is like this
|-inventory
|--inventory
|---BUILD.bazel (declares inventory_proto)
|--user
|---BUILD.bazel (one you have copied here)
|---inventory_user.proto

Also there are two targets that are building the same thing inventory_proto and user_proto but inventory_go_proto depends only on user_proto. This seems a little odd. Would be great to have a minimalistic example for your problem.

Will make one and make a gist!

any luck @luna-duclos ?

The issue was on our end! I apologize for taking so long to get back to you, I've been quite swarmed.

Glad to know you figured it out and it worked for you @luna-duclos
Let me know if you think of other improvements in this lib.


/tmp/pip-build-env-<whatever>/overlay/bin/ninja --version fails when trying to install for Blender

Describe the bug
Hi. I'm trying to write an addon for Blender that uses this package as an improvement over the existing addon: https://github.com/mattedicksoncom/blender-xatlas.
I started out by trying to install the package into Blender's python install.
I cd'd into blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python
and ran ./bin/python3.10 -m pip install ~/projects/xatlas-python -t lib/site-packages -vvv. This output the following log:
Using pip 22.2.2 from /home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/site-packages/pip (python 3.10)
Non-user install due to --prefix or --target option
Created temporary directory: /tmp/pip-target-ez6a_g3g
Created temporary directory: /tmp/pip-ephem-wheel-cache-nc14u70s
Created temporary directory: /tmp/pip-build-tracker-e5pq8mwf
Initialized build tracking at /tmp/pip-build-tracker-e5pq8mwf
Created build tracker: /tmp/pip-build-tracker-e5pq8mwf
Entered build tracker: /tmp/pip-build-tracker-e5pq8mwf
Created temporary directory: /tmp/pip-install-0075r_n0
Processing /home/ashley/projects/lighting/xatlas-python
  Added file:///home/ashley/projects/lighting/xatlas-python to build tracker '/tmp/pip-build-tracker-e5pq8mwf'
  Created temporary directory: /tmp/pip-build-env-8_ga30lr
  Running command pip subprocess to install build dependencies
  Using pip 22.2.2 from /home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/site-packages/pip (python 3.10)
  Collecting setuptools>=42
    Using cached setuptools-65.6.3-py3-none-any.whl (1.2 MB)
  Collecting wheel
    Using cached wheel-0.38.4-py3-none-any.whl (36 kB)
  Collecting ninja
    Using cached ninja-1.11.1-py2.py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (145 kB)
  Collecting cmake>=3.12
    Using cached cmake-3.25.0-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23.7 MB)
  Installing collected packages: ninja, cmake, wheel, setuptools
    Creating /tmp/pip-build-env-8_ga30lr/overlay/bin
    changing mode of /tmp/pip-build-env-8_ga30lr/overlay/bin/ninja to 755
    changing mode of /tmp/pip-build-env-8_ga30lr/overlay/bin/cmake to 755
    changing mode of /tmp/pip-build-env-8_ga30lr/overlay/bin/cpack to 755
    changing mode of /tmp/pip-build-env-8_ga30lr/overlay/bin/ctest to 755
    changing mode of /tmp/pip-build-env-8_ga30lr/overlay/bin/wheel to 755
  ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
  trimesh 3.9.1 requires numpy, which is not installed.
  <...snip...>
  Successfully installed cmake-3.25.0 ninja-1.11.1 setuptools-65.6.3 wheel-0.38.4

  [notice] A new release of pip available: 22.2.2 -> 22.3.1
  [notice] To update, run: /home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/bin/python3.10 -m pip install --upgrade pip
  Installing build dependencies ... done
  Running command Getting requirements to build wheel
  running egg_info
  writing xatlas.egg-info/PKG-INFO
  writing dependency_links to xatlas.egg-info/dependency_links.txt
  writing top-level names to xatlas.egg-info/top_level.txt
  reading manifest file 'xatlas.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'extern/pybind11/LICENSE'
  warning: no files found matching 'extern/xatlas/LICENSE'
  warning: no directories found matching 'extern/pybind11/include'
  warning: no directories found matching 'extern/pybind11/tools'
  warning: no directories found matching 'extern/xatlas/source/xatlas'
  adding license file 'LICENSE'
  writing manifest file 'xatlas.egg-info/SOURCES.txt'
  Getting requirements to build wheel ... done
  Created temporary directory: /tmp/pip-modern-metadata-mhmxsvjc
  Running command Preparing metadata (pyproject.toml)
  running dist_info
  creating /tmp/pip-modern-metadata-mhmxsvjc/xatlas.egg-info
  writing /tmp/pip-modern-metadata-mhmxsvjc/xatlas.egg-info/PKG-INFO
  writing dependency_links to /tmp/pip-modern-metadata-mhmxsvjc/xatlas.egg-info/dependency_links.txt
  writing top-level names to /tmp/pip-modern-metadata-mhmxsvjc/xatlas.egg-info/top_level.txt
  writing manifest file '/tmp/pip-modern-metadata-mhmxsvjc/xatlas.egg-info/SOURCES.txt'
  reading manifest file '/tmp/pip-modern-metadata-mhmxsvjc/xatlas.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'extern/pybind11/LICENSE'
  warning: no files found matching 'extern/xatlas/LICENSE'
  warning: no directories found matching 'extern/pybind11/include'
  warning: no directories found matching 'extern/pybind11/tools'
  warning: no directories found matching 'extern/xatlas/source/xatlas'
  adding license file 'LICENSE'
  writing manifest file '/tmp/pip-modern-metadata-mhmxsvjc/xatlas.egg-info/SOURCES.txt'
  creating '/tmp/pip-modern-metadata-mhmxsvjc/xatlas-0.0.6.dist-info'
  Preparing metadata (pyproject.toml) ... done
  Source in /home/ashley/projects/lighting/xatlas-python has version 0.0.6, which satisfies requirement xatlas==0.0.6 from file:///home/ashley/projects/lighting/xatlas-python
  Removed xatlas==0.0.6 from file:///home/ashley/projects/lighting/xatlas-python from build tracker '/tmp/pip-build-tracker-e5pq8mwf'
Created temporary directory: /tmp/pip-unpack-kkwy4l84
Building wheels for collected packages: xatlas
  Created temporary directory: /tmp/pip-wheel-plugb7yr
  Destination directory: /tmp/pip-wheel-plugb7yr
  Running command Building wheel for xatlas (pyproject.toml)
  running bdist_wheel
  running build
  running build_ext
  CMake Error at CMakeLists.txt:3 (project):
    Running

     '/tmp/pip-build-env-yc_hsrdw/overlay/bin/ninja' '--version'

    failed with:

     No such file or directory

  -- Configuring incomplete, errors occurred!
  See also "/home/ashley/projects/lighting/xatlas-python/build/temp.linux-x86_64-cpython-310/CMakeFiles/CMakeOutput.log".
  ['CMakeFiles', 'extern', 'src', 'CMakeCache.txt']
  Traceback (most recent call last):
    File "/home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
      main()
    File "/home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 261, in build_wheel
      return _build_backend().build_wheel(wheel_directory, config_settings,
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 413, in build_wheel
      return self._build_with_temp_dir(['bdist_wheel'], '.whl',
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 398, in _build_with_temp_dir
      self.run_setup()
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 335, in run_setup
      exec(code, locals())
    File "<string>", line 108, in <module>
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/__init__.py", line 87, in setup
      return distutils.core.setup(**attrs)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 185, in setup
      return run_commands(dist)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
      dist.run_commands()
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
      self.run_command(cmd)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 1208, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/wheel/bdist_wheel.py", line 325, in run
      self.run_command("build")
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 1208, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/command/build.py", line 132, in run
      self.run_command(cmd_name)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/dist.py", line 1208, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/command/build_ext.py", line 84, in run
      _build_ext.run(self)
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/command/build_ext.py", line 346, in run
      self.build_extensions()
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/command/build_ext.py", line 468, in build_extensions
      self._build_extensions_serial()
    File "/tmp/pip-build-env-8_ga30lr/overlay/lib/python3.10/site-packages/setuptools/_distutils/command/build_ext.py", line 494, in _build_extensions_serial
      self.build_extension(ext)
    File "<string>", line 98, in build_extension
    File "/home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/subprocess.py", line 369, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['cmake', '/home/ashley/projects/lighting/xatlas-python', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/ashley/projects/lighting/xatlas-python/build/lib.linux-x86_64-cpython-310/', '-DPYTHON_EXECUTABLE=/home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/bin/python3.10', '-DVERSION_INFO=0.0.6', '-DCMAKE_BUILD_TYPE=Release', '-GNinja']' returned non-zero exit status 1.
  error: subprocess-exited-with-error

  × Building wheel for xatlas (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: /home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/bin/python3.10 /home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpdf0obfx3
  cwd: /home/ashley/projects/lighting/xatlas-python
  Building wheel for xatlas (pyproject.toml) ... error
  ERROR: Failed building wheel for xatlas
Failed to build xatlas
ERROR: Could not build wheels for xatlas, which is required to install pyproject.toml-based projects
Exception information:
Traceback (most recent call last):
  File "/home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 167, in exc_logging_wrapper
    status = run_func(*args)
  File "/home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 247, in wrapper
    return func(self, options, args)
  File "/home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 431, in run
    raise InstallationError(
pip._internal.exceptions.InstallationError: Could not build wheels for xatlas, which is required to install pyproject.toml-based projects
Remote version of pip: 22.3.1
Local version of pip:  22.2.2
Was pip installed by pip? True

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: /home/ashley/Downloads/blender-3.5.0-alpha+master.9719fd696488-linux.x86_64-release/3.5/python/bin/python3.10 -m pip install --upgrade pip
Removed build tracker: '/tmp/pip-build-tracker-e5pq8mwf'

I don't know if this is a problem that xatlas-python specifically can address, but I'm reporting it anyway because it's an issue for me. I'll post back here if I figure out a solution.
To Reproduce
Steps to reproduce the behavior:

Download a Blender build
Do what I did, essentially

Expected behavior
Screenshots
Desktop (please complete the following information):

OS: Arch Linux x86_64 6.0.11-arch1-1
Version: commit fd896290d326a45fa89d1ee2a8032a664760900a of python-xatlas

I wasn't able to look into that specific issue any more, but I did manage to write a script that runs with the bpy pip package and unwraps Blender UVs:
https://gist.github.com/expenses/08fd15539606fa97b8d50d3edf172a1b

Hi Ashley,
thanks for reporting this issue. I tried to reproduce it on my system with Blender 3.3 and the installation also fails, but with a different error message, which I think is related to Blender not shipping the Python development version (it's missing the *.lib files on Windows).
Anyway, I think the most convenient solution for your Blender addon might be to install the xatlas package directly from the pypi repository instead of building it from source. This requires wheels for Python 3.10, which are now published with the new xatlas v0.0.7 release.
So you should now be able to install it to Blender with
./bin/python3.10 -m pip install xatlas

Let me know, if this works or helps.

Great, I think the new published version fixed things. ./bin/python3.10 -m pip install xatlas -t lib/python3.10/site-packages/ now works and installs xatlas in a way that it can be loaded in the Blender python terminal.


Document Page is Down

Description
The document page is down currently.
Steps to Reproduce

Go to https://apexcharts.com/docs/
See you cannot load it
Realize that the docs page is down

Expected Behavior
Be able to access the documentation
Actual Behavior
Timeout when attempting to access doc page.
Screenshots

Not for me it's not

Not for me it's not

Seems to be back up now.

Not for me it's not

It is down again.

Up again. Why is this so inconsistent @brianlagunas ?

Same issue for me in Firefox 104.0.2 since yesterday. The error is SSL_ERROR_NO_CYPHER_OVERLAP


Favorite feature for pattern-catalog / chooser

We have a bunch of patterns, so favorite feature is one of the most important feature to develop.

We need to filter by favorite patterns.


Impossible to use LandmarkGrid

Please make sure that this is a bug and also refer to the troubleshooting, FAQ documentation before raising any issues.
System information (Please provide as much relevant information as possible)

Have I written custom code (as opposed to using a stock example script provided in MediaPipe): NO
OS Platform and Distribution (e.g., Linux Ubuntu 16.04, Android 11, iOS 14.4): Chrome (javascript)
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: NO
Browser and version (e.g. Google Chrome, Safari) if the issue happens on browser:
Programming Language and version ( e.g. C++, Python, Java): Javascript
MediaPipe version:
Bazel version (if compiling from source):
Solution ( e.g. FaceMesh, Pose, Holistic ):
Android Studio, NDK, SDK versions (if issue is related to building in Android environment):
Xcode & Tulsi version (if issue is related to building for iOS):

Describe the current behavior:
Describe the expected behavior:
I would like to move LandmarkGrid to a React app, I successfully moved all the other part of the code but LandmarkGrid is not working. I tried 2 ways:

import * as LandmarkGrid from "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>In this case I receive as error:

Uncaught (in promise) ReferenceError: javascript is not defined

import * as LandmarkGrid from "@mediapipe/control_utils_3d";
In this case I received as error:

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'Vector3')
at landmark_grid.ts:631:1
at<EMAIL_ADDRESS>(landmark_grid.ts:631:1)
at<EMAIL_ADDRESS>(landmark_grid.ts:631:1)
at Object.options.factory (react refresh:6:1)
at webpack_require (bootstrap:24:1)
at fn (hot module replacement:61:1)
at App.js:13:1
at Function.webpack_require.a (async module:63:1)
at Module../src/components/functional/PoseLogger.js (App.js:13:1)
at Module.options.factory (react refresh:6:1)
I read that other have similar problem but not found any working solution, can you help me?

Hi @daniele-gusmini , could you please add this  scripts directly to your HTML.

Sorry for the delay, I'm using React framework so I need to use the nom package

I'm also trying to use it with React and getting similar errors but in different files:

same issue


Upload profile photos for users

Users can upload their own profile photo. It gets resized to a small 100x100, and large 300x300.
The project already uses Carrierwave and Mongo's GridFS for file uploads. Will likely need to include an image manipulation library for the resizing.

This is done in 824caab1a1459da86c3033b5b9e29278cd854eae


Is it possible to add year dropdown in date picker?

Is it possible to add year dropdown in date picker?
if possible means tell me how to do that?
for example see the given image.

After click the select dropdown button.

Duplicate of #672.


Add a stream for comments on a submission

Describe the solution you'd like

A stream for all comments made to a post.
Toggle-able options such as top level comments only, etc.
However, if we used the current implementation of retrieving comments, trying to stream a large submission would require a lot of calls to replace_more.

I don't think this feature is within PRAW's scope. This can be achieved using a normal comment stream while filtering based on which post the comment is from. Perhaps this would fit in better to prawdditions.

I agree with @jarhill0. PRAW closely mimics functionality available from Reddit's API. Streaming comments by submission is only partially accomplishable by filtering a subreddit stream, which can be easily done by the end user. We could certainly provide an example in our documentation how someone might achieve such a stream.
I'm going to close this issue.

This is basically an issue for #1355 so I will link this issue and re-open it, since a suitable API point was found.

Closing per slack discussion: This will be a prawdditions feature.


Task delivery

Here we go then! This is where I am. There's documentation in the README and happy to answer any questions. Let me know where you want to go from here 👍

Hey @adoankim - just to say I've seen your comment, and I'll get some answers written up for you as soon as possible. Thanks for being so thorough!

@adoankim
Development workflow

I've tried to deploy it first locally but didn't work without modifying some bits :). This would be useful for devs that don't have access to the Google Cloud resources and others, and just want to test the deployment locally.

Please explain briefly how the previous could be supported for the given solution.
I've made modifications to bin/deploy to fix the issues. The deployment methodology in use here is not scalable particularly due to the fact that meaningful configuration lives in the deployment script itself, which is a recipe for chaos at scale. Still, in the given solution, it now works properly; after deployment the script patches the image of the deployments, and issues a rollout.
And if we would need to deploy a single version, let's say staging, how this could be done?
Similar modifications to the deployment script, which I've not done for the sake of time, but since support exists already to deploy a single environment to GKE, it could be modified similarly to the modifications mentioned above.
Infrastructure

The current terraform plan requires that the person that manages it to have privileges for different resources (project vs compute resources).

What are the benefits of keeping all the resource management in the same plan? and the advantages of separate it in different ones?
Since Terraform is a declarative model, having everything in the same plan allows it to compute desired state reliably. While portions of state can be imported from one plan into another, changes lose atomicity and complicate any guarantees, in turn complicating any automation or CI processes; it becomes possible to apply one plan but for another to fail. With everything in one plan, changes either apply or they don't.

Applying the Terraform plan from a clean project I got the following errors. I've fixed it by adding "something" extra on those resources.
Hint: There is a dependency between the permissions and the usage of the resources.

Error: Error creating Dataset: googleapi: Error 400: The project munraito-00001
has not enabled BigQuery., invalid

on main.tf line 131, in resource "google_bigquery_dataset" "k8s_usage":
131: resource "google_bigquery_dataset" "k8s_usage" {

Error: Error creating KeyRing: googleapi: Error 400: Google Cloud KMS API
has not been used in this project before, or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview?project=954764994050
then retry. If you enabled this API recently, wait a few minutes for the action
to propagate to our systems and retry.

on main.tf line 141, in resource "google_kms_key_ring" "k8s-primary":
141: resource "google_kms_key_ring" "k8s-primary" {

Error: Error creating ManagedZone: googleapi: Error 403: Google Cloud
DNS API has not been used in project<PHONE_NUMBER>50 before or it is disabled.
Enable it by visiting
https://console.cloud.google.com/apis/api/dns.googleapis.com/overview?project=954764994050
then retry. If you enabled this API recently,  wait a few minutes for the action to
propagate to our systems and retry.,  accessNotConfigured

on main.tf line 171, in resource "google_dns_managed_zone" "feeld-env":
171: resource "google_dns_managed_zone" "feeld-env" {

How could we solve this dependency?
Explicit dependencies could be added using the depends_on operator. Usually dependencies are implicitly managed by the module, but in cases like this where those implicit dependencies are missing, Terraform won't wait for the permissions to be applied before proceeding with actions which require them. The dataset, keyring, and managed zone would be marked as depends_on the various google_project_service resources which enable the relevant APIs.
Let's say we want to scale some workload with 100 replicas which require more resources than the cluster have. With the current setup, what are the changes that need to be made to provide more resources? is there a way to do without a manual modification?
Currently autoscaling is disabled as I didn't want to land myself a huge GKE bill if the autoscaler made bad decisions. The GKE cluster autoscaler would spin up new nodes as necessary once enabled. This would of course depend on accurate and correct resource definitions in the Kubernetes objects.
K8s and deployments
How staging and production deployments could be isolated in the same cluster?
The two environments are deployed to different namespaces. With the network policies in place, there is no way for them to interact with each other.
It could be an issue to keep the staging and production deployments inside a single cluster?
One difficulty could be competition for resources; we would expect staging to have problems, potentially leading to high resource consumption, which would impact the available resources for the production environment. One shared resource in this setup is a shared outbound IP; if bad behaviour from staging caused it to be blacklisted, that would affect production.
It's also worth noting that storage and RBAC are non-namespaced resources; any changes to these affect the entire cluster.
How services deployments versioning could be managed/improved on the solution (rollouts, rollback, etc)?
This is the big difference between a setup like this and a truly production-ready deployment. Setting environment variables and keeping configuration in build scripts is not a suitable strategy.
Some of the things which need to be addressed before true production-readiness include immutability (monotonically increasing image version numbers for example), versioning on the deployment objects, reliable liveness and readiness checks, customised rollout strategies like blue/green and canaries, and integration of a full test suite.
One approach to the immutability issue is to package the deployment logic along with the current state of the codebase into a container itself, and maintaining a repository of these self-contained deployers. With proper monotonicity, this guarantees that deployments of a particular version are always exactly the same, allowing for a rollback failsafe.
How secrets changes could affect
Could you please clarify what you mean here? Affect what?
With the current solution, it could be possible that k8s schedules in as single node all replicas for a given deployment. Could this be a potential issue? if so, how it could be improved?
Yes. In the current setup a node represents a physical zone, so to schedule all replicas on one node would be a serious hit to reliability. Also, spreading a particular workload out - especially a resource-heavy one - means that resources can more appropriately be utilised, in particular reducing needs for context switching and I/O.
In terms of persistence for the datastore's stateful sets, what could happen if all the nodes where the deployments are scheduled disappeared?
The PVCs would remain as they are provisioned as GKE volumes. In a Deployment, the pods would be rescheduled on live nodes and the volumes reconnected, then since autorepair is enabled, the nodes that failed would be reprovisioned.
However, we're not dealing with Deployments; we're dealing with StatefulSets, which come with a one instance per node guarantee. If the node is unreachable, the master has no way to be sure whether the pod has evaporated, or is still running but unreachable. As such, it wouldn't reschedule the pod until the failed node object was removed.
How it could be improved?
There's the hack, which is to set terminationGracePeriod of the pod template to 0. This essentially disables the maximum-one-per-node guarantee and is suboptimal to say the least. There doesn't seem to be a best-practice answer; my solution would be monitoring logic sitting somewhere off-cluster which is capable of terminating nodes at the IaaS level and ensuring their node objects are removed from the Kubernetes state, allowing the pod scheduler to bring the stateful services back up and node autorepair to bring the capacity back in.
Let's say that Redis or Postgres release a patch version with some hotfix, what will be the steps to upgrade the datastores deployments without cutting off the service?
The complication comes from the fact that there needs to be at most one master. In order to keep downtime negligible, the following process would be necessary:

Roll out one new Pod, which will become the new master. Configure it as a replication slave to the current master.
Ensure replication is working properly.
Once replication sync is complete, remove the old master pod from the headless service, add the new pod in its place, and promote it to master.
Roll out new slave pods, replicating from the master headless service (which now points at the new master).

For services which support multiple-master configurations, downtime can be zero; all masters can coexist, then once replication is complete, the old ReplicaSet can be disposed of.
I see that all resource requests for the deployments are set on 1M and 32Mi, but not limited. Could this be an issue in the long term? if so, how it could be handled?
Yes - this is an omission. After deployment and visibility on resource consumption, more realistic requests and limits should be set to avoid high usage in one workload starving other workloads, while providing sufficient resource to serve requests in a reasonable manner.

Hey @daveio, thanks for the detailed answers to the questions!.
I've just added some notes and amend the missing question.
Development workflow

Please explain briefly how the previous could be supported for the given solution.

Answer
I've made modifications to bin/deploy to fix the issues. The deployment methodology in use here is not scalable particularly due to the fact that meaningful configuration lives in the deployment script itself, which is a recipe for chaos at scale. Still, in the given solution, it now works properly; after deployment the script patches the image of the deployments, and issues a rollout.

Thanks for making the modifications, it looks good and works as described.

And if we would need to deploy a single version, let's say staging, how this could be done?

Answer
> Similar modifications to the deployment script, which I've not done for the sake of time, but since support exists already to deploy a single environment to GKE, it could be modified similarly to the modifications mentioned above.

:+1:
Infrastructure

What are the benefits of keeping all the resource management in the same plan? and the advantages of separate it in different ones?

Answer
Since Terraform is a declarative model, having everything in the same plan allows it to compute desired state reliably. While portions of state can be imported from one plan into another, changes lose atomicity and complicate any guarantees, in turn complicating any automation or CI processes; it becomes possible to apply one plan but for another to fail. With everything in one plan, changes either apply or they don't.

Good point

Applying the Terraform plan from a clean project I got the following errors. I've fixed it by adding "something" extra on those resources.
How could we solve this dependency?

Answer
Explicit dependencies could be added using the depends_on operator. Usually dependencies are implicitly managed by the module, but in cases like this where those implicit dependencies are missing, Terraform won't wait for the permissions to be applied before proceeding with actions which require them. The dataset, keyring, and managed zone would be marked as depends_on the various google_project_service resources which enable the relevant APIs.

Exactly :+1:

Let's say we want to scale some workload with 100 replicas which require more resources than the cluster have. With the current setup, what are the changes that need to be made to provide more resources? is there a way to do without a manual modification?

Answer
Currently autoscaling is disabled as I didn't want to land myself a huge GKE bill if the autoscaler made bad decisions. The GKE cluster autoscaler would spin up new nodes as necessary once enabled. This would of course depend on accurate and correct resource definitions in the Kubernetes objects.

The autoscaler accepts a min and max number of nodes that can be added/removed automatically so you could set the limit and avoid infinite scaling. And yes, as you commented, depending on the workloads definition more nodes will be spinned up or not :).
If the autoscaler determines that some nodes are not needed anymore it will remove them automatically. However, something that is important, depending on the workloads deployment configuration could prevent the autoscaler to remove the nodes. [reference]
K8s and deployments

How staging and production deployments could be isolated in the same cluster?

Answer
The two environments are deployed to different namespaces. With the network policies in place, there is no way for them to interact with each other.

:+1:

It could be an issue to keep the staging and production deployments inside a single cluster?

Answer
One difficulty could be competition for resources; we would expect staging to have problems, potentially leading to high resource consumption, which would impact the available resources for the production environment. One shared resource in this setup is a shared outbound IP; if bad behaviour from staging caused it to be blacklisted, that would affect production.
It's also worth noting that storage and RBAC are non-namespaced resources; any changes to these affect the entire cluster.

:+1:

How services deployments versioning could be managed/improved on the solution (rollouts, rollback, etc)?

Answer
This is the big difference between a setup like this and a truly production-ready deployment. Setting environment variables and keeping configuration in build scripts is not a suitable strategy.
Some of the things which need to be addressed before true production-readiness include immutability (monotonically increasing image version numbers for example), versioning on the deployment objects, reliable liveness and readiness checks, customised rollout strategies like blue/green and canaries, and integration of a full test suite.
One approach to the immutability issue is to package the deployment logic along with the current state of the codebase into a container itself, and maintaining a repository of these self-contained deployers. With proper monotonicity, this guarantees that deployments of a particular version are always exactly the same, allowing for a rollback failsafe.

Good one :+1:

How secrets changes could affect

Answer
Could you please clarify what you mean here? Affect what?

Sorry, I didn't notice that the question was not complete.
Let's say we have a running deployment on version 1, and we want to roll out a new version 2 with breaking changes on the secrets. For example, replacing a third-party service, and clean up of the older credentials.
How secret changes could affect older deployed versions of workload that is being rolled out?.

With the current solution, it could be possible that k8s schedules in as single node all replicas for a given deployment. Could this be a potential issue? if so, how it could be improved?

Answer
Yes. In the current setup a node represents a physical zone, so to schedule all replicas on one node would be a serious hit to reliability. Also, spreading a particular workload out - especially a resource-heavy one - means that resources can more appropriately be utilised, in particular reducing needs for context switching and I/O.

Good :+1:. There is a concept called Pod affinity & anti-affinity that allow you to control the scheduling of your pods. For example, avoid scheduling more than 1 pod of a given deployment on the same node. [reference]

In terms of persistence for the datastore's stateful sets, what could happen if all the nodes where the deployments are scheduled disappeared?

Answer
The PVCs would remain as they are provisioned as GKE volumes. In a Deployment, the pods would be rescheduled on live nodes and the volumes reconnected, then since autorepair is enabled, the nodes that failed would be reprovisioned.
However, we're not dealing with Deployments; we're dealing with StatefulSets, which come with a one instance per node guarantee. If the node is unreachable, the master has no way to be sure whether the pod has evaporated, or is still running but unreachable. As such, it wouldn't reschedule the pod until the failed node object was removed.

Good!. Extending a bit more this question, in here we let k8s to dynamically provide volume, what else we could put in place to prevent data loss?

How it could be improved?

Answer
There's the hack, which is to set terminationGracePeriod of the pod template to 0. This essentially disables the maximum-one-per-node guarantee and is suboptimal to say the least. There doesn't seem to be a best-practice answer; my solution would be monitoring logic sitting somewhere off-cluster which is capable of terminating nodes at the IaaS level and ensuring their node objects are removed from the Kubernetes state, allowing the pod scheduler to bring the stateful services back up and node autorepair to bring the capacity back in.

Good one :+1:.

Let's say that Redis or Postgres release a patch version with some hotfix, what will be the steps to upgrade the datastores deployments without cutting off the service?

Answer
The complication comes from the fact that there needs to be at most one master. In order to keep downtime negligible, the following process would be necessary:

Roll out one new Pod, which will become the new master. Configure it as a replication slave to the current master.
Ensure replication is working properly.
Once replication sync is complete, remove the old master pod from the headless service, add the new pod in its place, and promote it to master.
Roll out new slave pods, replicating from the master headless service (which now points at the new master).

For services which support multiple-master configurations, downtime can be zero; all masters can coexist, then once replication is complete, the old ReplicaSet can be disposed of.

:+1:

I see that all resource requests for the deployments are set on 1M and 32Mi, but not limited. Could this be an issue in the long term? if so, how it could be handled?

Answer
Yes - this is an omission. After deployment and visibility on resource consumption, more realistic requests and limits should be set to avoid high usage in one workload starving other workloads, while providing sufficient resource to serve requests in a reasonable manner.

:+1:

@adoankim Thanks for your continued efforts. In response to your points and further questions -

The autoscaler accepts a min and max number of nodes that can be added/removed automatically so you could set the limit and avoid infinite scaling. And yes, as you commented, depending on the workloads definition more nodes will be spinned up or not :).
If the autoscaler determines that some nodes are not needed anymore it will remove them automatically. However, something that is important, depending on the workloads deployment configuration could prevent the autoscaler to remove the nodes. [reference]

Very true. A PodDisruptionBudget can be put in place which is a flexible way of telling the orchestrator what you care about, what it can get away with, and what to optimise for in dealing with issues. Using one adds significant complexity, as the complex result of multiple simple rules can result in unexpected behaviours, but used conservatively they're a helpful way to give the orchestrator insight into the priorities you want it to have.

Let's say we have a running deployment on version 1, and we want to roll out a new version 2 with breaking changes on the secrets. For example, replacing a third-party service, and clean up of the older credentials.

How secret changes could affect older deployed versions of workload that is being rolled out?.
Secrets are not inherently versioned, so without taking some action the credentials would apply to all newly-created objects which reference them. An important qualification here is 'newly-created', as any pods from the older deployments would not pick up on the changes. However, if the deployment for the older version were updated or rolled back out, newly created pods would reference the new secret.
One approach is to version secrets in their names, even if just with UNIX time as an integer. If a new deployment refers to app-credentials-1569087597 then there's no way it can cause issues for an older deployment referencing app-credentials-1482958597.

There is a concept called Pod affinity & anti-affinity that allow you to control the scheduling of your pods. For example, avoid scheduling more than 1 pod of a given deployment on the same node. [reference]

While I didn't implement them here I do actually use them on my own personal cluster, a snippet:
---
apiVersion: extensions/v1beta1
kind: Deployment
[...]
spec:
  [...]
  template:
    [...]
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - dave-io
            topologyKey: "kubernetes.io/hostname"
[...]

This configuration ensures that only one pod matching app=dave-io exists per instance of kubernetes.io/hostname (ie, per node).

in here we let k8s to dynamically provide volume, what else we could put in place to prevent data loss?
We can set the persistentVolumeReclaimPolicy to Retain, which will keep the disk images around rather than cleaning them up if the PVC is destroyed. That has its own consequences, though, ie the fact that old volumes lying around still have to be paid for. Monitoring for the environment would need to include checks for any PVs with their status in the Released state so that any cleanup can be taken care of.
It's also well worth enabling snapshotting at the GCP level for persistent volumes, especially those which don't change much but the changes are meaningful, for which the additional cost of deltas will be low and the benefit in terms of recovery high. Snapshots could be taken at regular intervals, or even in response to application events through platform automation.
None of the above are any substitute for a fully application-aware backup strategy. They are 'if all else fails' measures which do not guarantee successful recovery in all cases. An example might be {My,Postgre}SQL databases, which cannot guarantee usability of a point-in-time snapshot of the binary database state - only application-aware backups can provide that.

hey @daveio, Thanks for the answer to the questions!. I've got nothing else to add.
I'll check with the team if there is any other review of the PR is on progress, or if we can proceed with the next steps.

@adoankim Ace, thanks. Looking forward to hearing from you.


Create LICENSE

You refer to the MIT license in the readme, but do not have one in the repository. An existing license helps others to identify the legal conditions for using the library more quickly. You may need to adjust the year and date.

Thanks!


Bugs with Text Search (slow, false positives)

It seems like it might be better to not include a full text search at the moment or potentially that it would be out of scope for a URN resolver with simple search tools.  Let me know your thoughts here.  Would be great to turn the search box into a linked ANNIS query!

If you want to look at ANNIS queries, you can just run one and copy-paste the URL out of the interface. Basically the query is base64-ed in another URL parameter, just like the corpus selection etc.
From: Luke Hollis<EMAIL_ADDRESS>Sent: Thursday, March 19, 2015 12:12
To: CopticScriptorium/cts
Subject: Re: [cts] Bugs with Text Search (slow, false positives) (#48)
It seems like it might be better to not include a full text search at the moment or potentially that it would be out of scope for a URN resolver with simple search tools. Let me know your thoughts here. Would be great to turn the search box into a linked ANNIS query!
—
Reply to this email directly or view it on GitHub https://github.com/CopticScriptorium/cts/issues/48#issuecomment-83646038 .  https://github.com/notifications/beacon/ACFlW18xlyidLe3aZF2dNLkj_dwqtNUwks5n2uy2gaJpZM4DxCrz.gif

The decision is to hide it or link to ANNIS.  If the link to ANNIS is too complicated, you may hide it for now. We should probably reticket this, not close it.

Hidden for now--let me know when you want to prioritize linking the query to ANNIS.

Ok, I think we can close for now.


example deployment

What's new

This adds an example deployment that can be used in an airgapped network.
Best description is to take a look at the README https://github.com/open-rmf/rmf-web/tree/example-deployment/example-deployment.
Self-checks

[ ] I'm familiar with and follow this Typescript guideline
[ ] I added unit-tests for new components
[ ] I tried testing edge cases
[ ] I tested the behavior of the components that interact with the backend, with an e2e test

Discussion

looks great so far! :exploding_head:


Resolve files of :classpath in flutter 1.12.13+hotfix.5 with gradle 3.5.0 issue

Hey everyone, I'm seriously having a very bad issue this time with the new Flutter update.
the thing is have installed:
1- Android Studio 3.5.3 (latest)
2- Flutter 1.12.13+hotfix.5 (latest)
the Gradle I have is gradle-5.6.2-all
and created new Flutter project
in my build.gradle the code is:
buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

and all I get is keep downloading these -_-
> root project > Resolve files of :classpath > protobuf-java-3.4.0.jar > 302 KB/1.32 MB downloaded                            esolve files of :classpath > builder
> root project > Resolve files of :classpath > bundletool-0.9.0.jar > 1.26 MB/5.01 MB downloaded
> root project > Resolve files of :classpath > protos-26.5.0.jar > 708 KB/3.27 MB downloaded
> root project > Resolve files of :classpath > builder-3.5.0.jar > 797 KB/7.80 MB downloaded

I've already tried everything... any solutions??

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of 'flutter doctor -v'  please.
All system setups can be slightly different so it's always better to open new issues and reference related issues.


Allowing TopologySpreadConstraint: DoNotSchedule

Hey DevOps,
we are currently facing issues with scheduling memory-heavy pods. At the moment the PodTopologySpreadConstraint  is set to ScheduleAnyway  here. However, looking at Grafana I noticed this is not very effective since we do not do all our deployments together at the same time and therefore our pods are not spread evenly. We currently have 8 pods of the same, memory intensive deployment on one node and none on another which limits our scheduling.
I would therefore suggest setting this ScheduleAnyway to a variable in the values file, where the default will stay ScheduleAnyway but DoNotSchedule is also allowed.
WDYT?

I am happy to open a PR and I would also make the maxSkew configurable


AttributeError: 'AttentionBlock' object has no attribute 'to_k'

When I use the sdxl model, I get this error:
"AttributeError: 'AttentionBlock' object has no attribute 'to_k'"
What is the cause of this?

have you solved it?

it's likely mismatch of one of these
diffusers==0.11.1
transformers==4.25.1


Badge tsc

I started this branch trying to prove that we could rename files in this TS conversion.  Steps to accomplish:

mv, then commit
convter, then commit

I want to add the strict: true compiler option, but that whines about theme package not having typings, and I'd like to use those typings in the other strict errors (eg, any params that need Theme.names).
I think that all the packages should have strict: true.  We will have to circle back and get those that we missed.

i think strict: true is a great goal. i don't know what it will take but let's plan on it

@danethurber thanks for the thorough review. I think I've addressed everything you mentioned.


Adding crosslinking monomers

Hello.
Thanks for this awesome work.
I am trying to understand the way to add scaffolds to the monomer sdf file. For example, 1,3,5-trismethylbenzene was used in https://pubs.acs.org/doi/10.1021/acs.jcim.2c00703

It is described in BILN-converter (https://github.com/rochoa85/BILN-converter) as

The scaffold with atom numbers looks like this.

I tried making an entry for monomer sdf as follows
TMB_3.sdf
  ChemDraw10042408332D

 12 12  0  0  0  0  0  0  0  0999 V2000
    1.7862    1.0312    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    1.0717    0.6188    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    1.0717   -0.2062    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.3572   -0.6188    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.3572   -1.4438    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.3572   -0.2062    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -0.3572    0.6188    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.0717    1.0312    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.3572    1.0312    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    1.7862    1.8562    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0
    1.0717   -1.8562    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0
   -1.7862    0.6188    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0
  1  2  1  0        0
  2  3  1  0        0
  3  4  2  0        0
  4  5  1  0        0
  4  6  1  0        0
  6  7  2  0        0
  7  8  1  0        0
  7  9  1  0        0
  2  9  2  0        0
  1 10  1  0        0
  5 11  1  0        0
  8 12  1  0        0
M  RGP  3   10   1   11   2   12   3
V    10 *
V    11 *
V    12 *
M  END
>  <m_name>  (2)
1,3,5-trismethylbenzene

>  <symbol>  (2)
135_TMB

>  <m_abbr>  (2)
135_TMB

>  <m_type>  (2)
aa

>  <m_subtype>  (2)
non-natural

>  <m_Rgroups>  (2)
H,H,H,None

>  <m_RgroupIdx>  (2)
9,10,11,None

>  <m_attachmentPointIdx>  (2)
0,4,7,None

>  <natAnalog>  (2)
X

>  <pdbName>  (2)
TMB
$$$$

Edit: Sorry, I edited the issue as there was a problem with the <m_attachmentPointIdx> entry.
Am I going in the right direction?
What should the m_type be in this case? It's not really an amino acid or a cap. Do I need a different m_type?
I tried using aa as m_type. If I add this to the monomer.sdf, the scaffold is recognized, the correct smiles are produced.
CC(C)C[C@@H]1NC(=O)[C@H](CC(=O)O)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](Cc2c[nH]cn2)NC(=O)[C@H](CC(C)C)NC(=O)[C@@H]2CSCc3cc(cc(c3)CSC[C@H](N)C(=O)N[C@@H](CO)C(=O)N[C@@H](Cc3c[nH]c4ccccc34)C(=O)N3CCC[C@H]3C(=O)N[C@@H](C)C(=O)N[C@@H](CCCNC(=N)N)C(=O)N2)CSC[C@@H](C(=O)O)NC1=O

But the conformation generation keeps running for at least an hour. If I pass the --noconf flag, the following image is produced which seems correct except the slight distortion.

Could the conformation generator be stuck because of the m_type?
I would be really grateful for any suggestions.
Best,
Amin.

Ah, you want to use "linker" as m_type, and then an empty m_subtype. "natAnalog" I would leave empty as well. All the other things look ok to me.

Best,
Th.

Gesendet: Freitag, 04. Oktober 2024 um 09:54 Uhr
Von: "amin-sagar" @.>
An: "Boehringer-Ingelheim/pyPept" @.>
Cc: "Subscribed" @.***>
Betreff: [Boehringer-Ingelheim/pyPept] Adding crosslinking monomers (Issue #9)

Hello.
Thanks for this awesome work.
I am trying to understand the way to add scaffolds to the monomer sdf file. For example, 1,3,5-trismethylbenzene was used in https://pubs.acs.org/doi/10.1021/acs.jcim.2c00703
image.png (view on web)
It is described in BILN-converter (https://github.com/rochoa85/BILN-converter) as
image.png (view on web)
The scaffold with atom numbers looks like this.
image.png (view on web)
I tried making an entry for monomer sdf as follows
TMB_3.sdf
ChemDraw10042408332D
12 12  0  0  0  0  0  0  0  0999 V2000
1.7862    1.0312    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
1.0717    0.6188    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
1.0717   -0.2062    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
0.3572   -0.6188    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
0.3572   -1.4438    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
-0.3572   -0.2062    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
-0.3572    0.6188    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
-1.0717    1.0312    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
0.3572    1.0312    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
1.7862    1.8562    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0
1.0717   -1.8562    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0
-1.7862    0.6188    0.0000 R#  0  0  0  0  0  0  0  0  0  0  0  0
1  2  1  0        0
2  3  1  0        0
3  4  2  0        0
4  5  1  0        0
4  6  1  0        0
6  7  2  0        0
7  8  1  0        0
7  9  1  0        0
2  9  2  0        0
1 10  1  0        0
5 11  1  0        0
8 12  1  0        0
M  RGP  3   10   1   11   2   12   3
V    10 *
V    11 *
V    12 *
M  END

<m_name>  (2)
1,3,5-trismethylbenzene

  (2)
123_TMB

<m_abbr>  (2)
123_TMB

<m_type>  (2)
aa

<m_subtype>  (2)
non-natural

<m_Rgroups>  (2)
H,H,H,None

<m_RgroupIdx>  (2)
9,10,11,None

<m_attachmentPointIdx>  (2)
0,4,8,None

  (2)
X

  (2)
TMB
$$$$

Am I going in the right direction?
What should the m_type be in this case? It's not really an amino acid or a cap. Do I need a different m_type?
I would be really grateful for any suggestions.
Best,
Amin.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Perfect. Thanks.


Plugin interferes with handrolled picking functionality, but only when using left click

Encountered during https://github.com/Leafwing-Studios/Emergence/pull/262
On this branch, my tile picking logic was behaving bizarrely: only Shift + Click was working, while simple click and control click were used directly. Use https://github.com/Leafwing-Studios/Emergence/pull/262/commits/14344f12c9f6444bbe1d1673fe83f88da62b6e5d to test.
I at first thought I had a bizarre input binding / clash bug in leafwing_input_manager, that was somehow working previously. However, moving the keybindings to MouseButton::Right rather than MouseButton::Left fully resolved the issue.
I think that this plugin is subtly messing with the left mouse inputs in very surprising ways? I'd have to dig through.
For now, I think my next step is to drop down into bevy_mod_raycast, as I'm not using the more premade functionality exposed by this crate.

Resolved by swapping to a simpler bevy_mod_raycast solution: https://github.com/Leafwing-Studios/Emergence/pull/262/commits/c661fd1bcdb030b5e1c2661a826d53396ae3dc28

Are you using the beta branch, or crates.io?
If you're on beta, defaults inputs can be disabled, and you can use whatever you want to trigger input eveents.

Currently on the crates.io form :) I wanted to test the old API first to have a better opinions.

Closing as inputs are now completely decoupled from plugin logic.