WIP: Source space SNR

Closes #1453.
WIP -- I'm not on Py2 here so I can't actually look at the results, but they should match the paper. Should probably figure out how to deal with free vs fixed orientation -- might be worth saying for a first pass that it only works for a forward solution in fixed orientation / forward that can be converted to fixed and surf ori.

@Eric89GXL: What signal amplitude are you providing SNR estimates for? Also is the source-noise estimate somehow different from dSPM? Don't we get the same info if we plot the dSPM denominator instead?

Look here and you tell me :)
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2882168/

FWIW the input should be MNE current amplitudes, I was going to try implementing it, and then sort out the differences between all these different methods

Ah ok.. They seem to be doing a 10 nA current for each source dipole (whereas your code seems to have a unit amplitude, see the a parameter in their formula).  Also FWIW it is different from dSPM in the sense that it is independent of the choice of inverse procedure whereas dSPM is tied to what your inverse operator is: If I am understanding it right, the average SNR in sensor space  for each source (when it has 10 nA activity added to spontaneous brain activity) is calculated.

@haribharadwaj if you're interested to see how MNE-C comes up with the plots in mne-analyze, we have that now, too:
https://github.com/mne-tools/mne-python/pull/1844

Thanks @Eric89GXL .. The MNE-C green curve reminds of good old L-curve calculations:
https://www.sintef.no/globalassets/project/evitameeting/2005/lcurve.pdf

Closing for now, someone can resurrect when a use case comes up :)

someone can resurrect when a use case comes up :)

use case like setting the SNR parameter in apply_inverse? :)


Feature request: custom dynamic css

Would it be possible to use a custom css file to theme webpages? Bonus points if it can be dynamically updated once the file is changed

There are many other extensions that do exactly that
I don't like universal tools - instead I prefer perfect tool for exactly one job it does the best


Is that right?
Q2) If I have some anthropometric measurements (height/ weight/Bust (Chest)/ waist/hips) and images of(female/male) and add use these for training purposes
and then I want to get anthropometric measurements from 2d images of human (female/male); What should I do?

Hi @ghiu-75. I'm copy/pasting my email here just for the records:
Thanks for your interest in our code. I'll try to answer your questions here but feel free to reach me back in case I left anything unclear.
Q1) Yes, once you set up the environment and download the needed data files, extractor_model_training.py is the entry point to the application. The call
extracted_measurements = measurements_from_sil(
   model,
   input_info,
   sil_images,
   df_total,
   stature_glob,
)

extracts 8 body measurements from the images, height, and weight - weight can be not informed though.
Then a set of 21 measurements is completed by imputation and the 3D avatar is generated. In addition to the wavefront.obj file for the avatar, an output table (output_data_avatar_male_fromImg.csv attached) is generated containing the measurements values in the different states: Basic-Input (after extraction from images), Predicted-Input (after imputation), and 3D Avatar-Output (by measuring the 3D avatar).
Q2) The NN to extract body measurements was trained with 2 full-body images, height, and weight as input data, and chest_girth, waist_girth, hips_buttock_girth, shoulder_girth, thigh_girth sleeveoutseam_length, crotchheight_length, and waistback_length as target values. Although, the code could be adapted to use whatever set of measurements you might have depending on the database you want/need to use.
I hope this helps. I recommend starting by running the code step by step as outlined in the Readme file. This can help you get familiar with the code and get a feel for how everything works before making any modifications.

About your following up comments:
1) For weight estimation, what should your suggestion be?
One does not need the weight to be an input data to run the Extractor (only images and height are mandatory). Although, the weight can be useful for the imputation of the "missing" 10 measurements after the extraction of the main measurements out of the images (+ height). That is why informing the weight is recommended but not mandatory.
2) can I train the program with images of (f/m) just with their height and weight info?
Although the NN model (Extractor) is intended to use Images+Height (the weight is to be used during the Imputation), it could be adapted to only use Images. This is an experiment that we run in the paper, and we noticed that the accuracy (according to the metric we used) was reduced from 97% to 91%.


Blender 3D model does not show properly

Hi
I installed the infinigen and run following example command successfully.
$BLENDER -noaudio --background --python generate.py -- --seed 0 --task populate fine_terrain -g desert simple --input_folder outputs/helloworld/coarse --output_folder outputs/helloworld/fine
It generated the fine blender model, e.g. scene.blend. When I openned it, the 3d model was full of blocks as the attached picture. I checked the readme.md file, it said.
We hide many meshes by default for viewport stability; to view them, click "Render" or use the UI to unhide them.
In Blender, I select all the objects and click Alt-H to unhide. It does not work.
When I run the command to generate RGB file.
$BLENDER -noaudio --background --python generate.py -- --seed 0 --task render -g desert simple --input_folder outputs/helloworld/fine --output_folder outputs/helloworld/frames
The generated RGB files seems perfect. So I believe the Blender file should contain the correct content but did not show them.
I am wondering how to show the 3D model properly in Blender file.
Thanks for the help
Aaron

Hi, maybe try this:

In the 3D Viewport, press the '/' key  to enter Local View mode and it lets you isolate selected objects.
Select all the objects by pressing the 'A' key
Press the '/' key to exit Local View mode
If that did not work try to enable 'Restriction Toggles' which can be found in the 3D viewport so 'N' key -> 'View' -> 'Restriction Toggles' checkbox is enabled. Make sure that the 'Restrict Viewport' is turned on for all the objects.

I had the same issue

Hello folks, sorry for the inconvinience on this. Blender makes it somewhat hard to unhide the objects, we had to use the '.hide_viewport' property to actually get performance benefits, which is not affected by the usual Alt+H hotkey.
To unhide the objects, open the dialog in the topright of your screen (shown in first image, marked 1) and click the button tell blender to show you options to hide/unhide objects (shown in first image, marked 2). Now, in your outliner (second image) you should see that some objects and collections are hidden. you can click the viewport icon to unhide, but beware that this may lag your viewport momentarily or cause low FPS

hello, I try your method, but only saw the box mesh, never saw the detail mesh, how can I do to saw the detail mesh in the viewport? I hope to export the generated model,  Thanks for your help.

Hello, it does not seem that the 'hide viewport' restriction toggle button is visible in your UI. Please make sure to click the filter button highlighted in blue next to the red "1" in my screenshot to open the dropdown,  then click the little viewport screen icon marked 2. This will then show the extra viewport visibility buttons shown in the middle in my second screenshot. The outliner in the top right of the screenshot you sent only shows the eye and camera icons, which means this step has not been done.
Once you have completed the above step, you can then use the hide viewport buttons to hide the placeholders collection, then unhide the unique_assets collection and maybe the scatters to see everything in the viewport.

To make it concrete, heres a brief video demo of unhiding a monkey in a toy file. Apologies for the inconvenience, we had no choice but to apply these rarely used settings in order to make the files overwhelm the viewport. The intended usage is that you open a file then unhide only some very specific parts you want to look at, to avoid overwhelming blender.
https://youtu.be/nrgp8jOEycY

Hello, it does not seem that the 'hide viewport' restriction toggle button is visible in your UI. Please make sure to click the filter button highlighted in blue next to the red "1" in my screenshot to open the dropdown, then click the little viewport screen icon marked 2. This will then show the extra viewport visibility buttons shown in the middle in my second screenshot. The outliner in the top right of the screenshot you sent only shows the eye and camera icons, which means this step has not been done.
Once you have completed the above step, you can then use the hide viewport buttons to hide the placeholders collection, then unhide the unique_assets collection and maybe the scatters to see everything in the viewport.

thansk for your reply, I tried it and it worked. but now I have another issue about  /worldgen/tools/export/export.py , when I try to export scene.blend to .fbx,  it may export some .png and report segmentation fault, never export .fbx file.

Awesome, I will close this issue, please make a new one RE export and @David-Yan1 will help


missing config when using git clone

Describe the problem
When copier sees a template dir that's a dirty git repo, it will run git clone to a temp dir, and then try to commit dirty changes.
However, since no author is passed by copier, git will fail if no global user.name/user.email is set.
Template

init a git repo
commit some files
add untracked files

To Reproduce
copier /path/to/template .
Logs
Command line: | /usr/bin/git --git-dir=.git --work-tree=/home/x/templates/pyproject commit -m 'Copier automated commit for draft changes' --no-verify --no-gpg-sign
Stderr:       | Author identity unknown
              |
              | *** Please tell me who you are.
              |
              | Run
              |
              |   git config --global user.email<EMAIL_ADDRESS>              |   git config --global user.name "Your Name"
              |
              | to set your account's default identity.
              | Omit --global to set the identity only in this repository.
              |

Expected behavior
Since the commit is temporary, the author information is not important.
I would expect copier to pass something like --author='copier<EMAIL_ADDRESS>to git-commit
Screenshots/screencasts/logs
No response
Operating system
Linux
Operating system distribution and version
debian
Copier version
9.3.1
Python version
3.12
Installation method
pipx+pypi
Additional context
No response

I've submitted a PR that fixes this problem: #1716


doesn't compile

Hey, thanks for the great work.
I am reading your code and would like to try the SG1 query with the source dataset you provide.
Here are some issues I got:

the project is not compiling as you are using NUMACircularQueryBuffer.h in real but you put NumaCircularQueryBuffer.h in your cmakelist.

the provided docker env still can't compile LightSaber (after fixing the above issue).

It would be great if you can quickly check the project.
Looking forward your reply
Xiaorui

Hi Xiaorui,
I am not sure I can reproduce your issue with the information you provided. The Docker file was functional the last time I checked it on my laptop.
What's the setup environment? What's the error?
The code was written a couple of years ago (Ubuntu 18.04.5 LTS) and probably doesn't run as it does in newer versions (or Mac).
Cheers,
George

Hey George,
Thanks for the reply.
I get the following errors when I run the ./smartgrid binary in docker:
error: unknown argument: '-internal-isystem'
error: -emit-llvm cannot be used when linking

By the way, Do you still have your dataset somewhere accessible? (i.e., Smart grid dataset and Cluster Monitoring) it would be very nice if you could share it as the official link is closed now.
Thanks again for the reply,
Have a nice day.
Xiaorui.
Thanks again for your reply.

Hi Xiaorui,
Unfortunately, I don't have access to linux machine and can't reproduce the issue.
As for the datasets, you can download them from the following links: i) https://github.com/google/cluster-data/blob/master/ClusterData2011_2.md ; ii) http://www.doc.ic.ac.uk/~mweidlic/sorted.csv.gz (found it here https://blog.yomo.run/posts/debs2014-grand-challenge-by-yomo)
Cheers,
George

Hey Geoge,
Thanks for the fast reply and references!
I think we can close this issue.
B.S.
Xiaorui


Giving a prompt on the UI when saving fails

I use the version 2956
Sometimes (many times) when I make changes ( in dslEditor or in diagram view) , then save workspace, I will find a problem in the javascript console. The put request returned a 400 status code with the following information
{
“success”: false,
“message”: “The workspace could not be saved because a newer version has been created by XXX at XXXX.”
}

However, there is no prompt on the UI, and the “SAVE workspace” button is grayed out. A few times ago, I didn’t know that I didn’t save successfully. After returning to the dashboard, I found that my changes didn’t exist. I felt very disappointed. I wonder if you can consider giving a prompt on the UI when saving fails to avoid this situation.
In addition, I can be sure that no one is editing and uploading this workspace synchronously except me. Why does it fail to save? Why is there a new version? I looked up the open source code on your github and found that this might be caused by the separate storage of workspace metadata and workspace.dsl. I wonder if the metadata update succeeds sometimes, but the workspace.dsl itself fails? (Maybe my guess is wrong, please forgive me)

Are you using the DSL editor and diagram editor simultaneously, in different tabs? If so, that will be the problem - the UI is not designed to be used in that way.

It can be confirmed that I didn't edit at the same time on different tabs. After I found that there was a problem with dsleditor, I went back to the dashboard and then entered the diagram editor to edit to see if there was still a problem, and then found that there was such a problem wherever I edited. I can only force push a new version through cli before I can edit it again.

I've modified the UI so that it shows the error message in the browser itself. This is available in build 2959+.
The problem you're seeing is when the revision flag in the workspace metadata becomes different from that in the workspace JSON, but I don't understand the cause yet. If it happens again, you can issue the following command in your JavaScript/developer console to reset the revision, which will allow you to save your workspace from the DSL editor/diagram editor page.
structurizrApiClient.resetRevision()

I've upgraded to 2959, this version has solved the problem of not knowing the saving failure in time. The next time I encounter a save failure, I will pay attention to what I have done before and check the corresponding log to see if there is any useful information. Thank you for your timely handling.

Marking as resolved - please let me know if the issue happens again.


Packe and Postpackage doesn't work - CANNOT RUN WITH NODE 10.4.1

Hi,
Finally I want to release my first version of the app. But I can't.
I get the error:
CANNOT RUN WITH NODE 10.4.1
Electron Packager requires Node 4.0 or above.

When I'm trying to run npm run packe or npm run postpackage
I have Node v10.4.1
What am I doing wrong?

This one is solved by updating electron and electron-packager
But now I got a new error when running postpackage
rcedit.exe failed with exit code 1. Fatal error: Unable to commit changes

Running it on a current windows machine with x64.


Logo in the middle with current prayer window

Just the logo with Fajr/Zuhr/Asr/Maghrib/Isha under it.
More useful than having the date.

Should also tell the user how much time left until next prayer window.
Could use this:


Prevent RarArchiveLoader reading nested RAR explicitly

Fixes #189
Changes

~Rename RarArchiveLoader to RarArchvieReader and corresponding functional API~
Raise Error when reading nested RAR
Add tests for nested RAR and nested TAR.

cc: @pmeier There is a BC-breaking naming change.

Re naming change: Recall, that we explicitly went for "Loader" in #41. Unless something has changed in the mean time, you should probably rename the other "Reader"'s to "Loader"'s.

Re naming change: Recall, that we explicitly went for "Loader" in #41. Unless something has changed in the mean time, you should probably rename the other "Reader"'s to "Loader"'s.

Yes. But, it seems we reach another agreement #103 later.
cc: @NivekT

Since you haven't replied to that, I was under the impression that was the way to go. Anyway, Reader seems misleading for these, since no reading is performed.

I made a mistake of naming, and thanks for pointing out. Reader is not appropriate here.

In #41 (comment) I wrote:

True, but that means neither Lister nor Opener is a good [f]it here, since both actions are performed. Maybe RarArchiveLoader?

Since you haven't replied to that, I was under the impression that was the way to go. Anyway, Reader seems misleading for these, since no reading is performed.

Personally, I think Reader might be the best given that we have other DataPipes that perform decompression and are named Reader (i.e. tar, xz, zip).

I removed renaming from this PR. We can decide which is the best name for all archive loader/opener/reader in a separate PR.

Failing tests on windows and mac are caused by stalled nightly release again.

@NivekT
Two issues here:

.xz, .gz, and so on are completely different concepts from .tar, .zip, and so on. The former is compression while the latter is archiving. You can have both separately. The current name of Extractor is misleading since it doesn't extract anything, but rather decompresses it. For example, it would turn foo.tar.gz into foo.tar without ever touching the internals of the archive.

The activity "read" is usually associated with getting data from a file. Thus, LineReader is a good description, because you actually read the data. In contrast, TarArchiveReader is not since we never touch the data of the files inside the archive.
There are more inconsistencies like that throughout torchdata and this is ok for the prototype phase. This needs to be resolved before we commit to BC. My suggestion was the following taxonomie:

list: Take a single path and return all included paths. For example, FileLister
open: Take a single path and return the path plus the open file handle. For example, FileOpener
load: Combine list and open. For example, RarFileLoader, TarFileReader, ZipFileReader
read: Anything that actually returns data in whatever form of a file handle. For example LineReader, CSVParser, CSVDictParser

Of course you don't need to use this, but whatever you decide on, it should be consistent throughout the code base.

@pmeier I agree load is marginally better for these archive files (not that read will make or break things, I had a look at the tarfile documentation and it uses the word 'read' pretty liberally).
I also concur that extract is confusing in that people may expect things to be written to file systme. I think we should rename that to decompress or in_memory_extract?

LGTM, what is the reasoning behind not supporting nested RAR? Might be good to explicit include the reasoning somwhere (as a comment or error message)

Since we are relying on third-party rarfile library and RAR is a close-source format, I can't really tell the reason why it can not be supported

I had a look at the tarfile documentation and it uses the word 'read' pretty liberally

They only have to have consistent use of "read" throughout this module so they may get away with a more relaxed definition. Unfortunately, this doesn't apply to us.

I also concur that extract is confusing in that people may expect things to be written to file systme. I think we should rename that to decompress or in_memory_extract?

+1 for decompress given that is the most precise. in_memory_extract has again the "extract" keyword that might be misleading. For example IterableWrapper(["foo.tar.gz"]).in_memory_extract() would give you the file handle corresponding to foo.tar rather than the contents of foo.tar.

Then, let's make a decision here:
ArchiveLoader: Taking charge of listing and opening inner files
Decompressor: Taking charge of decompressing the compressed files/archives like file.gz or a.tar.gz


The RoadMap Link in the first "Important" Box is not working as expected

Hi,
The Roadmap link:
https://www.microsoft.com/en-us/microsoft-365/roadmap?featureid=44370
mentioned in the first "important" Box at the top of the page is not right.
The ID 44370 which the link filters isn´t available anymore. Whats the right Roadmap ID?

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

ID: f5920152-5fee-41ed-56df-ad7b51b25cc2
Version Independent ID: 88cfc850-5e36-48ee-ba99-088b2b653f1e
Content: Manage discovery of private teams in Microsoft Teams - Microsoft Teams
Content Source: Teams/manage-discovery-of-private-teams.md
Service: msteams
GitHub Login: @LanaChin
Microsoft Alias: v-lanac

@J-a-k-o-b Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.

Hi @scanum,
i don´t think that a support case will help here. It´s more a kind ot typo. It has nothing to do with our tenant. The link in the docs is just wrong.
Regards


STYLE: Modules/Core/Common/include/VNLSparseLUSolverTraits.h:17: error: namespace not defined

Description
git commit Modules/Core/Common/include/VNLSparseLUSolverTraits.h

fails with a KWStyle error:
Modules/Core/Common/include/VNLSparseLUSolverTraits.h:17: error: namespace not defined

It may be that VNLIterativeSparseSolverTraits.h would do the same.
Expected coding style
Unsure what it should be.  Either

The code needs to be put in a namespace such as itk
The KWStyle check needs to pass despite the lack of a namespace; the lack of namespace should be documented in the file itself.

Versions

Commit ae8cd2588968b1f9680fd3f981a3139e433babc9.
Operating system: Linux 5.13.0-27-generic #29~20.04.1-Ubuntu SMP Fri Jan 14 00:32:30 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
git version 2.25.1
g++ (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
clang-format version 8.0.0 (tags/RELEASE_800/final)

An exception may need to be added like this: https://github.com/InsightSoftwareConsortium/ITK/blob/3a8307b5c71a0e6c1877b508b719834b4db4ef50/Modules/Core/Mesh/ITKKWStyleOverwrite.txt#L3


translate canary rollout for helm

https://kubevela.io/zh/docs/tutorials/helm-rollout

I would try to translate this doc. assign to me:)

@wonderflow after a couple of failed attempts, https://github.com/kubevela/kubevela.io/pull/852 shows every action goes well. waiting for your review.

committed and merged, can close now.


Drop Support for PHP 5.5

updated both composer.json and travis.yml as well as added 7.1 to test suite as it gets more active.


Shell: pasted text is green/bold when pasted right after a brace match

From pierre.raybaut on 2009-08-30T06:26:53Z
xxx
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=16

From pierre.raybaut on 2009-08-30T06:44:46Z
fixed in v1.0.0beta4
Status: Fixed


bring back debug version

fix incorrect check for event type, making the message with cms version show up again
remove the check for debug that resulted in incorrect positioning of the messages

LGTM

Coverage remained the same at 89.264% when pulling e8744cd4c2b6429e781453ce1d2701cca663a741 on FinalAngel:bugfix/bring-back-debug-version into 71d14b1041c87ccc080a59d58220c6de5db619c8 on divio:release/3.2.x.


SQLException: Access denied for user<EMAIL_ADDRESS>(using password: YES)

I'm trying to create an integration test for my Spring Boot app with MySQL container.
So this is the CatIntegrationTests class:
`
@RunWith(SpringRunner.class)
@SpringBootTest(classes = CatApplication.class,
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource(locations = "classpath:application-integrationtests.properties")
@AutoConfigureMockMvc
 public class CatIntegrationTest {
  @LocalServerPort
   private int port;
   TestRestTemplate restTemplate = new TestRestTemplate();

   @Autowired
   private MockMvc mvc;

MySQLContainer mySQLContainer;

@Before
public void before(){
    mySQLContainer = new MySQLContainer("mysql:5.7.22").withDatabaseName("cats").withUsername("test").withPassword("test");
    mySQLContainer.start();
}

@After
public void after(){
    mySQLContainer.stop();

}

`
And the application-integrationtests.properties is like that:

spring.jpa.hibernate.ddl-auto=create
spring.jpa.database=mysql
spring.datasource.url=jdbc:mysql://localhost:3306/cats
spring.datasource.username=test
spring.datasource.password=test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

When trying to run the integration test, I get this error (and I really don't see the container spinning up):
java.sql.SQLException: Access denied for user<EMAIL_ADDRESS>(using password: YES)
Any idea what is missing here?

Hi @itay-keller,
Since I had it in my workshop, I hope it's fine if I refer it here? :)
https://bsideup.gitbooks.io/spring-io-testcontainers-workshop/content/steps/step4.html
TL;DR:

use JDBC url (see the link, you will find an explanation and also a reference to the docs)
configure your properties properly, MySQL will not be running on localhost:3306

Hi @bsideup .
It worked!!! Big big thanks!!

@itay-keller woooo 🎉  I'm closing the issue as "invalid", but feel free to report more 👍


Adding support for alive_tests

I've wanted to add the alive_tests option. Contrary to the OMP documentation (http://docs.greenbone.net/API/OMP/omp-7.0.html#type_alive_test)  it seems that this parameter takes the options that are specified in the UI. These are:

Scan Config Default (This is the Default)
ICMP Ping
TCP-ACK Service Ping
TCP-SYN Service Ping
ARP Ping
ICMP & ARP Ping
TCP-ACK Service & ARP Ping
ICMP, TCP-ACK Service & ARP Ping
Consider Alive

Released 0.5.0!


"конструктор таблиц" in LibreOffice Base table designer window title

Issue description
The window title of the LibreOffice Base (the database application in that office suite) table designer contains Russian terms, even though neither the database nor my NixOS configuration refer to the Russian language in any way.
Steps to reproduce
In a NixOS configured for German (Switzerland)
{ config, pkgs, ... }:

{
  # ...
  i18n = {
    consoleFont = "Lat2-Terminus16";
    consoleKeyMap = "de_CH-latin1";
    defaultLocale = "de_CH.UTF-8";
  };
  # ...
  services.xserver.layout = "ch,de";
  # ...
  services.xserver.localectlFix.enable = true;
  # ...
}

Launch LibreOfficeDev Base
(/run/current-system/sw/bin/sbase → /nix/store/10xqxd0rh3xs3hksy4063a9agk7jgx5k-libreoffice-<IP_ADDRESS>/bin/sbase)

You are greeted with the Database wizard. Click the Fertigstellen button. (Probably "Finish" in English.)

You are prompted where to store the database. Choose a location and name, e.g. /tmp/MyDB.odb

Now you see the application's main window. It's title reads

MyDB.odb - LibreOfficeDev Base

In the Aufgaben section, click Tabelle in der Entwurfsansicht erstellen…

This opens a new window, the table designer

Expected
The table designer window title is in German (and maybe some English).
Observed
The table designer window title reads

MyDB.odb : Tabelle1 - LibreOfficeDev Base: конструктор таблиц

("Tabelle" is German for "[database / spreadsheet] table", so that part is fine.)
"конструктор таблиц" seems to be Russian and to mean "table designer".
Technical details

system: "x86_64-linux"
host os: Linux 4.9.66, NixOS, 17.09.2281.b4a0c011e81 (Hummingbird)
multi-user?: yes
sandbox: no
version: nix-env (Nix) 1.11.15
channels(root): "nixos-17.09.2281.b4a0c011e81"
channels(das-g): ""
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs

Complete /etc/nixos/configuration.nix:
# Edit this configuration file to define what should be installed on
# your system.  Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      ./localectl-fix.nix
    ];

  boot.loader.grub.device = "/dev/sda";
  boot.initrd.luks.devices = [
    {
      name = "lvm";
      device = "/dev/sda2";
    }
  ];

  # Use the systemd-boot EFI boot loader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  # networking.hostName = "nixos"; # Define your hostname.
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.

  # Select internationalisation properties.
  i18n = {
    consoleFont = "Lat2-Terminus16";
    consoleKeyMap = "de_CH-latin1";
    defaultLocale = "de_CH.UTF-8";
  };

  # Set your time zone.
  time.timeZone = "Europe/Zurich";

  # List packages installed in system profile. To search by name, run:
  # $ nix-env -qaP | grep wget
  environment.systemPackages = with pkgs; [
    git
    git-cola
    nix-repl
    gnupg
    firefox
    thunderbird
    owncloud-client
    qgis
    libreoffice
    tdesktop
    pgadmin
    mysql-workbench
  ];

  # Some programs need SUID wrappers, can be configured further or are
  # started in user sessions.
  # programs.bash.enableCompletion = true;
  # programs.mtr.enable = true;
  # programs.gnupg.agent = { enable = true; enableSSHSupport = true; };

  # List services that you want to enable:
  services.postgresql.enable = true;
  services.postgresql.package = pkgs.postgresql;
  services.postgresql.authentication = pkgs.lib.mkForce ''
    # File generated by Nix config; Do not edit!

    # TYPE	DATABASE	USER    	ADDRESS 	METHOD
    local	all     	postgres	        	trust
    local	all     	all     	       		md5
    host	all     	all     	samehost	md5
    '';
  services.mysql.package = pkgs.mariadb;
  services.mysql.enable = true;

  # Enable the OpenSSH daemon.
  # services.openssh.enable = true;

  # Open ports in the firewall.
  # networking.firewall.allowedTCPPorts = [ ... ];
  # networking.firewall.allowedUDPPorts = [ ... ];
  # Or disable the firewall altogether.
  # networking.firewall.enable = false;

  # Enable CUPS to print documents.
  # services.printing.enable = true;

  # Enable the X11 windowing system.
  services.xserver.enable = true;
  services.xserver.layout = "ch,de";
  services.xserver.displayManager.gdm.enable = true;
  services.xserver.desktopManager.gnome3.enable = true;
  services.xserver.localectlFix.enable = true;

  # Enable touchpad support.
  # services.xserver.libinput.enable = true;

  # Enable the KDE Desktop Environment.
  # services.xserver.displayManager.sddm.enable = true;
  # services.xserver.desktopManager.plasma5.enable = true;

  # Define a user account. Don't forget to set a password with ‘passwd’.
  # users.extraUsers.guest = {
  #   isNormalUser = true;
  #   uid = 1000;
  # };
  users.extraUsers.das-g = {
    isNormalUser = true;
    home = "/home/das-g";
    description = "Raphael Das Gupta";
    extraGroups = ["wheel" "networkmanager"];
  };
  programs.vim.defaultEditor = true;
  programs.command-not-found.enable = true;

  # This value determines the NixOS release with which your system is to be
  # compatible, in order to avoid breaking some software such as database
  # servers. You should change this only after NixOS release notes say you
  # should.
  system.stateVersion = "17.09"; # Did you read the comment?

}

complete /etc/nixos/localectl-fix.nix (see https://github.com/NixOS/nixpkgs/issues/14318#issuecomment-309250231):
{ config, lib, pkgs, ... }:

with lib;
let
  cfg = config.services.xserver;
  fcfg = cfg.localectlFix;
in {
  options.services.xserver.localectlFix =
    { enable = mkEnableOption "Enables localectl fix.";
    };

  config = mkIf fcfg.enable {
    environment.etc = mkAssert cfg.enable ''
      X11 must be enabled for the fix to work.
    '' { "X11/xorg.conf.d/00-keyboard.conf".text = ''
          Section "InputClass"
            Identifier "Keyboard catchall"
            MatchIsKeyboard "on"
            Option "XkbRules" "base"
            Option "XkbModel" "${cfg.xkbModel}"
            Option "XkbLayout" "${cfg.layout}"
            Option "XkbOptions" "${cfg.xkbOptions}"
            Option "XkbVariant" "${cfg.xkbVariant}"
          EndSection
        '';
       };
  };
}

@7c6f434c might know more

As a native Russian speaker, I confirm this caption does mean «table constructor».
As one of the people bumping LibreOffice and fixing its build, I fail to understand why this effect can happen.
(Apparently LibreOffice Base needs even more stuff from DE than LibreOffice Calc/Writer; I have just tried to reproduce and hit various Bigger Problems on a system with no DE and very minimalistic DBus «system» instance)

This also happens with LANG=en_US.UTF-8.

@das-g can you still reproduce this ?

@das-g can you still reproduce this ?

No, looks fine now:

(This is with /nix/store/nfclqk9bhp06lq4x051y8f6syf977gcl-libreoffice-<IP_ADDRESS>/bin/sbase)

system: "x86_64-linux"
host os: Linux 4.14.105, NixOS, 18.09.2308.343abf7730f (Jellyfish)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.1.3
channels(root): "nixos-18.09.2308.343abf7730f"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Just out of curiosity: What caused this issue and how was it fixed?


Build error

Describe the bug
A clear and concise description of what the bug is.
After cloning the project locally I was build the project by running the first command as mention in the Readme  file
make libgit2
but it shows 2 error
Environment
OS: the OS + version you’re running Kubescape on, e.g Ubuntu 22.04 LTS
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04 LTS
Release:	22.04
Codename:	jammy
Actual Behavior
A clear and concise description of what happened. If applicable, add screenshots to help explain your problem.

Did you check you dir permissions?

yes I think it has all the necessary permission. Please let me if it need more

@dwertent
The permission issue is solved but now it says there is a missing file

.

I tried using the vs code but the problem remain same there is some missing file

@amirmalka Did you see this before?

@souravsk pkg-config & cmake are needed. In your case I can see that pkg-config is missing
I don't have an ubuntu machine to confirm but I would say that the following commands should install it:
sudo apt-get update
sudo apt-get -y install pkg-config

Please advise if it solves your issue

@amirmalka thank you it worked I have tried precisely but I didn't at that time but for some reason, it is working now.


Add bun container definition

Adds the possibility to play with a brand new JS/TS runtime Bun

duplicate of #1526


WIP - pod commands preparation for generic systemd unit files

This PR includes a series of changes which are all needed to allow for generating generic systemd unit files for pods. We already support that for containers but not yet for pods. With Podman 2 waiting around the corner, I hope to get the remaining bits ready soon. This PR is already a big step forward, so we can focus after that on the generator.
This PR:

Adds a CreateCommand field to the pod config. We already do that for containers but also need that for pods to support generate systemd **--new** on pods.
Add the --pod-id-fileflag  to podman-pod-{rm,start,stop}.
Add several end-to-end tests to make sure it's working properly and to prevent us from regressing in the future.

@baude @giuseppe @mheon @rhatdan PTAL

quay.io is down...let's wait a bit

Moving to WIP as I'll start working on the generator part now.

... and more plumbing:

container-{create,run}: add --pod-id-file
pod create: add --infra-conmon-pidfile

@baude FYI, the refactoring is done. Now I can merge the --new pod logic.

@vrothberg I am very much looking forward to this getting merged! Thanks for your hard work! Once things are ready and some RPMs are made, I would be glad to test and give it Bodhi karma.

@vrothberg I am very much looking forward to this getting merged! Thanks for your hard work! Once things are ready and some RPMs are made, I would be glad to test and give it Bodhi karma.

Thanks for the kind words, @jdoss, a really nice motivation!

Here's the first working state for --new $POD. I'll now work on tests and may look into further refactorings.

@edsantiago @giuseppe @jwhonce @mheon @rhatdan @TomSweeneyRedHat PTAL
It's big, so I suggest going through the commits one-by-one.

Curious:
Uploading 3 artifacts for /var/tmp/go/src/github.com/containers/libpod/*.log.html
Uploaded /var/tmp/go/src/github.com/containers/libpod/apiv2_test.log.html
Failed to upload artifact file /var/tmp/go/src/github.com/containers/libpod/integration_test.log.html: EOF

Failed to upload artifact file /var/tmp/go/src/github.com/containers/libpod/integration_test.log.html: EOF
That's an error from Cirrus-CI (runs in google cloud kubernetes) trying to push the file into one of our google storage buckets.  The docs-task error is also new to me: Failed to start: readHandshakeRecord.  I hesitate to suggest a networking glitch, but these all feel like problems in google, not Cirrus-CI or Github.  I'll poke around and see what I can see...

Failed to upload artifact file /var/tmp/go/src/github.com/containers/libpod/integration_test.log.html: EOF
That's an error from Cirrus-CI (runs in google cloud kubernetes) trying to push the file into one of our google storage buckets. The docs-task error is also new to me: Failed to start: readHandshakeRecord. I hesitate to suggest a networking glitch, but these all feel like problems in google, not Cirrus-CI or Github. I'll poke around and see what I can see...

Thanks a ton for looking into it. Restarting has helped and turned into my favourite colour: green :-)

I want to add one more test to exercise, --new pod in e2e on a pod with a couple containers.

...poked around and not seeing anything other than green-lights at the moment.  No idea what happened, but it seems like a very limited event.  I'll keep my eyes out though, thanks for alerting me.

The libpod bits all look fine. I'll take a look at the rest later.

@mheon @giuseppe PTAL

Ready to merge from my side.

/lgtm
/hold

/hold cancel


Improve Private Service Access experience

output the reserved IP range by name which is necessary for Filestore API when using Private Service Access
output connect_mode to PRIVATE_SERVICE_ACCESS with dependency upon the peering being established; this services as useful graph dependency and for Toolkit "use" keyword
modify the Filestore module to perform cross-variable validation when values are provided from the private-services-access module

The following error can be triggered at "terraform plan" by setting reserved_ip_range: <IP_ADDRESS>/28 in any of our Filestore examples
╷
│ Error: Resource precondition failed
│
│   on modules/embedded/modules/file-system/filestore/main.tf line 84, in resource "google_filestore_instance" "filestore_instance":
│   84:       condition = (
│   85:         var.reserved_ip_range == null ||
│   86:         var.connect_mode == "DIRECT_PEERING" && can(cidrhost(var.reserved_ip_range, 0)) && contains(["24", "29"], try(split("/", var.reserved_ip_range)[1], "")) ||
│   87:         var.connect_mode == "PRIVATE_SERVICE_ACCESS" && var.private_vpc_connection_peering != null && var.reserved_ip_range != null
│   88:       )
│     ├────────────────
│     │ var.connect_mode is "DIRECT_PEERING"
│     │ var.private_vpc_connection_peering is null
│     │ var.reserved_ip_range is "<IP_ADDRESS>/28"
│
│ If connect_mode is set to DIRECT_PEERING and reserved_ip_range is
│ specified then it must be a CIDR IP range with suffix range size 29.
│ If connect_mode is set to PRIVATE_SERVICE_ACCESS, then the name
│ of the private VPC connection peering and the name of reserved IP
│ range must also be supplied.
╵

From the relevant help section:
         reserved-ip-range
            The reserved-ip-range can have one of the following two types of
            values: a CIDR range value when using DIRECT_PEERING connect mode
            or an allocated IP address range
            (https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address)
            when using PRIVATE_SERVICE_ACCESS connect mode. When the name of an
            allocated IP address range is specified, it must be one of the
            ranges associated with the private service access connection. When
            specified as a direct CIDR value, it must be a /29 CIDR block for
            Basic tier or a /24 CIDR block for High Scale, Zonal, Enterprise or
            Regional tier in one of the internal IP address ranges
            (https://www.arin.net/knowledge/address_filters.html) that
            identifies the range of IP addresses reserved for this instance.
            For example, <IP_ADDRESS>/29 or <IP_ADDRESS>/24. The range you specify
            can't overlap with either existing subnets or assigned IP address
            ranges for other Cloud Filestore instances in the selected VPC
            network.
         connect-mode
            Network connection mode used by instances. CONNECT_MODE must be one
            of: DIRECT_PEERING or PRIVATE_SERVICE_ACCESS.

Submission Checklist
Please take the following actions before submitting this pull request.

Fork your PR branch from the Toolkit "develop" branch (not main)
Test all changes with pre-commit in a local branch #
Confirm that "make tests" passes all tests
Add or modify unit tests to cover code changes
Ensure that unit test coverage remains above 80%
Update all applicable documentation
Follow Cloud HPC Toolkit Contribution guidelines #

Test example "enterprise" blueprint (not yet recommended for develop branch):
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---

blueprint_name: hpc-enterprise-slurm-v6

vars:
  project_id:  ## Set GCP Project ID Here ##
  deployment_name: hpc01
  region: us-central1
  zone: us-central1-a
  gpu_zones: [us-central1-a, us-central1-b, us-central1-c, us-central1-f]
  slurm_image:
    # Visit https://github.com/GoogleCloudPlatform/slurm-gcp/blob/master/docs/images.md#published-image-family
    # for a list of valid family options with Slurm
    family: slurm-gcp-6-5-hpc-rocky-linux-8
    project: schedmd-slurm-public
  # If image above is changed to use custom image, then setting below must be set to true
  instance_image_custom: false

# Recommended to use GCS backend for Terraform state
# See https://github.com/GoogleCloudPlatform/hpc-toolkit/tree/main/examples#optional-setting-up-a-remote-terraform-state
#
# terraform_backend_defaults:
#  type: gcs
#  configuration:
#    bucket: <<BUCKET_NAME>>

# Documentation for each of the modules used below can be found at
# https://github.com/GoogleCloudPlatform/hpc-toolkit/blob/main/modules/README.md

deployment_groups:
- group: primary
  modules:
  # Source is an embedded module, denoted by "modules/*" without ./, ../, /
  # as a prefix. To refer to a local or community module, prefix with ./, ../ or /
  # Example - ./modules/network/vpc
  - id: network
    source: modules/network/vpc

  - id: private_service_access
    source: community/modules/network/private-service-access
    use: [network]

  - id: controller_sa
    source: community/modules/project/service-account
    settings:
      name: controller
      project_roles:
      - compute.instanceAdmin.v1
      - iam.serviceAccountUser
      - logging.logWriter
      - monitoring.metricWriter
      - pubsub.admin
      - storage.objectViewer

  - id: login_sa
    source: community/modules/project/service-account
    settings:
      name: login
      project_roles:
      - logging.logWriter
      - monitoring.metricWriter
      - storage.objectViewer

  - id: compute_sa
    source: community/modules/project/service-account
    settings:
      name: compute
      project_roles:
      - logging.logWriter
      - monitoring.metricWriter
      - storage.objectCreator

  - id: homefs
    source: modules/file-system/filestore
    use:
    - network
    - private_service_access
    settings:
      local_mount: /home

  - id: projectsfs
    source: modules/file-system/filestore
    use:
    - network
    - private_service_access
    settings:
      local_mount: /projects

  # This file system has an associated license cost.
  # https://console.developers.google.com/marketplace/product/ddnstorage/exascaler-cloud
  - id: scratchfs
    source: community/modules/file-system/DDN-EXAScaler
    use: [network]
    settings:
      local_mount: /scratch

  - id: n2_nodeset
    source: community/modules/compute/schedmd-slurm-gcp-v6-nodeset
    use: [network, compute_sa]
    settings:
      node_count_dynamic_max: 4
      machine_type: n2-standard-2
      instance_image: $(vars.slurm_image)
      enable_placement: false  # the default is: true

  - id: n2_partition
    source: community/modules/compute/schedmd-slurm-gcp-v6-partition
    use: [n2_nodeset]
    settings:
      partition_name: n2
      exclusive: false  # allows nodes to stay up after jobs are done
      is_default: true
      partition_conf:
        SuspendTime: 300 # time (in secs) the nodes in this partition stay active after their tasks have completed

  - id: c2_nodeset
    source: community/modules/compute/schedmd-slurm-gcp-v6-nodeset
    use: [network, compute_sa]
    settings:
      node_count_dynamic_max: 20
      machine_type: c2-standard-60  # this is the default
      instance_image: $(vars.slurm_image)
      enable_placement: true
      bandwidth_tier: tier_1_enabled
      disk_type: pd-ssd
      disk_size_gb: 100

  # use `-p c2` to submit jobs to this partition:
  # ex: `srun -p c2 -N 1 hostname`
  - id: c2_partition
    source: community/modules/compute/schedmd-slurm-gcp-v6-partition
    use: [c2_nodeset]
    settings:
      partition_name: c2
      # the following two are true by default
      exclusive: true  # this must be true if nodeset.enable_placement is true

  - id: c2d_nodeset
    source: community/modules/compute/schedmd-slurm-gcp-v6-nodeset
    use: [network, compute_sa]
    settings:
      node_count_dynamic_max: 20
      machine_type: c2d-standard-112
      instance_image: $(vars.slurm_image)
      bandwidth_tier: tier_1_enabled
      disk_type: pd-ssd
      disk_size_gb: 100

  - id: c2d_partition
    source: community/modules/compute/schedmd-slurm-gcp-v6-partition
    use: [c2d_nodeset]
    settings:
      partition_name: c2d

  - id: c3_nodeset
    source: community/modules/compute/schedmd-slurm-gcp-v6-nodeset
    use: [network, compute_sa]
    settings:
      node_count_dynamic_max: 20
      machine_type: c3-highcpu-176
      instance_image: $(vars.slurm_image)
      bandwidth_tier: tier_1_enabled
      disk_type: pd-ssd
      disk_size_gb: 100

  - id: c3_partition
    source: community/modules/compute/schedmd-slurm-gcp-v6-partition
    use: [c3_nodeset]
    settings:
      partition_name: c3

  - id: a2_8_nodeset
    source: community/modules/compute/schedmd-slurm-gcp-v6-nodeset
    use: [network, compute_sa]
    settings:
      node_count_dynamic_max: 16
      machine_type: a2-ultragpu-8g
      # This makes this nodeset look for machines in any of the following zones
      # https://github.com/GoogleCloudPlatform/hpc-toolkit/tree/develop/community/modules/compute/schedmd-slurm-gcp-v6-nodeset#compute-vm-zone-policies
      zones: $(vars.gpu_zones)
      bandwidth_tier: gvnic_enabled
      instance_image: $(vars.slurm_image)
      disk_type: pd-ssd
      disk_size_gb: 100
      node_conf:
        Sockets: 2
        CoresPerSocket: 24

  # use `-p a208` to submit jobs to this partition:
  # ex: `srun -p a208 --gpus-per-node=8 -N 1 nvidia-smi`
  - id: a2_8_partition
    source: community/modules/compute/schedmd-slurm-gcp-v6-partition
    use: [a2_8_nodeset]
    settings:
      partition_name: a208
      # The following allows users to use more host memory without specifying cpus on a job
      partition_conf:
        DefMemPerGPU: 160000
        DefMemPerCPU: null

  - id: a2_16_nodeset
    source: community/modules/compute/schedmd-slurm-gcp-v6-nodeset
    use: [network, compute_sa]
    settings:
      node_count_dynamic_max: 16
      machine_type: a2-megagpu-16g
      # This makes this nodeset look for machines in any of the following zones
      # https://github.com/GoogleCloudPlatform/hpc-toolkit/tree/develop/community/modules/compute/schedmd-slurm-gcp-v5-partition#compute-vm-zone-policies // !!!
      zones: $(vars.gpu_zones)
      bandwidth_tier: gvnic_enabled
      instance_image: $(vars.slurm_image)
      disk_type: pd-ssd
      disk_size_gb: 100
      node_conf:
        Sockets: 2
        CoresPerSocket: 24

  # use `-p a216` to submit jobs to this partition:
  # ex: `srun -p a216 --gpus-per-node=16 -N 1 nvidia-smi`
  - id: a2_16_partition
    source: community/modules/compute/schedmd-slurm-gcp-v6-partition
    use: [a2_16_nodeset]
    settings:
      partition_name: a216
      # The following allows users to use more host memory without specifying cpus on a job
      partition_conf:
        DefMemPerGPU: 160000
        DefMemPerCPU: null

  - id: h3_nodeset
    source: community/modules/compute/schedmd-slurm-gcp-v6-nodeset
    use: [network, compute_sa]
    settings:
      node_count_dynamic_max: 16
      machine_type: h3-standard-88
      bandwidth_tier: gvnic_enabled  # https://cloud.google.com/compute/docs/compute-optimized-machines#h3_network
      instance_image: $(vars.slurm_image)
      # H3 does not support pd-ssd and pd-standard
      # https://cloud.google.com/compute/docs/compute-optimized-machines#h3_disks
      disk_type: pd-balanced
      disk_size_gb: 100

  # use `-p h3` to submit jobs to this partition:
  # ex: `srun -p h3  -N 1 hostname`
  - id: h3_partition
    source: community/modules/compute/schedmd-slurm-gcp-v6-partition
    use: [h3_nodeset]
    settings:
      partition_name: h3

  - id: slurm_login
    source: community/modules/scheduler/schedmd-slurm-gcp-v6-login
    use: [network, login_sa]
    settings:
      instance_image: $(vars.slurm_image)
      machine_type: n2-standard-4
      # we recommend disabling public IPs if possible
      # but that requires your network to have a NAT or
      # private access configured
      enable_login_public_ips: true

  - id: slurm_controller
    source: community/modules/scheduler/schedmd-slurm-gcp-v6-controller
    use: [network, controller_sa, homefs, projectsfs, scratchfs, slurm_login,
          n2_partition, c2_partition, c2d_partition, c3_partition, a2_8_partition, a2_16_partition, h3_partition]
    settings:
      instance_image: $(vars.slurm_image)
      # the following allow for longer boot time
      # which is useful for large GPU nodes
      cloud_parameters:
        no_comma_params: false
        resume_rate: 0
        resume_timeout: 600
        suspend_rate: 0
        suspend_timeout: 600
      # we recommend disabling public IPs if possible
      # but that requires your network to have a NAT or
      # private access configured
      enable_controller_public_ips: true

  - id: hpc_dashboard
    source: modules/monitoring/dashboard
    outputs: [instructions]


README is erroneous

Seems to be copied from the SystemLink Tag Module.

Yes this module was build from the code in the SystemLink Tag Module. I forgot to update the readme when I made this module


Update dns-pod-service.md: fix wrong content

tiny fix wrong.
according to the context, the old content should be wrong, just change it.

CLA signed.

This is an incorrect "fix". The DNS query originated from the "test" namespace will resolve to that namespace, not "prod".
/close


Gogs is not running with Nginx subfolder proxy setting (already solved)

I'm trying to serve Gogs behind Nginx under a subfolder for hours. Finally, I managed to understand the problem:

Would you consider pointing out that part in the documentation?

I think it is really an important skill to read the docs carefully...

I think it is really an important skill to write the docs carefully...

 Customer never satisfied😣

Haha! That's unfair! =)
Don't be offended, but it's like a simple regex syntax error you've made where you just forgot to add the "global" switch, which made me skip reading in the first match.
Honestly, I really appreciate you for doing this great job and I want it to be greater (that's why I shared that pitfall). Please consider that I'm not the only one who forgot to add the ending slash.
This is the exact post that helped me solving the problem:

It's up to you.

Lol, you win.

OK, how about this:
note to the both suffixes after location and proxy_pass.

Now the one must be blind to miss that. That would be quite enough.

(Upps, not merged yet)

Updated: https://gogs.io/docs/intro/faqs#how-do-i-set-up-a-sub-path-with-nginx%3F

NOT noted that in chinese yet!  ╮(￣▽￣)╭


Added glance type/provider.

This is a openstack glance provider with the following features with the ability to load/delete glance images using the CLI API. Some of the functionality in the CLI is incomplete, for example we are unable to query non public images. This still needs updates to support properties, which is pending a separate update for puppet.

(Warning: Annoying house-keeper alert)
Just going around and cleaning up modules/redmine/stuff ... I just added a category to:
https://projects.puppetlabs.com/projects/modules
If you guys want to add redmine issues now for glance (like - for this one?). Back in my box now :-).


Visually distinguishing Staged Changes from Changes in Tree View

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.82.2
OS Version: macOS 13.5.2

It's difficult to distinguish Staged Changes from Changes in Source Control sidebar in Tree view. This has been raised several times before; most relevant was https://github.com/microsoft/vscode/issues/102473 but that was swept into an existing discussion about a larger change that was only partially relevant.
Simplest proposal:
[role="treeitem"][aria-level="1"] {
    font-weight: bold;
}

The difference is subtle; other tweaks could improve it. e.g., add a line (or even half-line) of vertical space before it. Or, removing the 8px padding-left on the .monaco-tl-twistie also pulls it visually farther from the tree. The old all-caps CHANGES feels a bit too strong to me, but it would fix the issue.
Other approaches include https://github.com/microsoft/vscode/issues/140343 suggested adding themeable elements.

Researching this led to me creating #194068, so SCM-view-specific colors aren't unheard of.

Tagging @daviddossett, and @hbons to get their thoughts on this.

The old all-caps CHANGES feels a bit too strong to me, but it would fix the issue.

This is probably the easiest. Originally all ResourceGroup labels got styled uppercase unconditionally. I raised an issue about this because my SCM extension uses those groups in a way that means case is important. I had expected the built-in Git extension to uppercase its own labels so as to retain the familiar appearance, but maybe it was a conscious decision to adopt the change.
When there's more than one SCM repository displayed for a workspace I think the repository headers get bolded. Perhaps resource groups would benefit from being in italics? Alternatively, add a new color name such as scm.resourceGroupBackground.

Tagging @joaomoreno as I am sure that he has additional context on this.


fake prime effective???

I know it's "fake", but after use this, my alternative account don't get banned!
I used rage config on competitive and wingman match, and reported by many people,
but my account still alive.
So... is it real prime???
or just my luck??

What does prime and not getting ban have to do with each other?

What does prime and not getting ban have to do with each other?

prime is increase player's trust factor, so harder to getting ban i think...

What does prime and not getting ban have to do with each other?

prime is increase player's trust factor, so harder to getting ban i think...

lol

Fake prime is just a visual lobby thing, don't affect anything in your trust factor.


Docs: add examples of Dataset.map() and reduce() functions

Some users were not clear on how to use it. Maybe we could give some more realistic example, e.g. how to use to process results from a crawler after it finished.

Also, mention that the functions just return an array with the result, they don't update the dataset in any way.

+1

We have a lot of new examples now! I also made one with a detailed description of the dataset map & reduce methods


[BUG] TS0012 not working correctly

I’m using ZHA and added two 2-way switches (TS0012) today.
Now I have the problem that sometimes they don’t work correctly.
Sometimes they work very fast then suddnely react very slow, or it switches off/on but in ZHA it says its still on/off or if I turn on/off both sometimes only one gets switched, so basically they often behave weirdly,.
I don't know what the reason could be, in the ZHA Log, there are no errors.

Very likely your switch is not loading the quirk for TS00X devices but not easy saying then  you was not providing any logs and device signature.
You can trying configure local quirks and download this file and change this line and saving it the quirk folder and restarting HA.
https://github.com/zigpy/zha-device-handlers/blob/dcee551996a0a9e388b6afb1e054dada46897ee5/zhaquirks/tuya/ts001x.py#L74
Replace the line with:
        MODEL: "TS0012",

Today suddenly one of those two devices is NaN, in the Log this appeared:
`Logger: zigpy.zcl
Source: /usr/local/lib/python3.9/site-packages/zigpy/zcl/init.py:114
First occurred: 00:52:03 (10 occurrences)
Last logged: 00:52:05
[0xd61f:1:0xe001] Unknown cluster-specific command 225`
And this:
`Logger: homeassistant
Source: /usr/src/homeassistant/homeassistant/runner.py:98
First occurred: 04:19:03 (1 occurrences)
Last logged: 04:19:03
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/zigpy/device.py", line 103, in group_membership_scan
await ep.group_membership_scan()
File "/usr/local/lib/python3.9/site-packages/zigpy/endpoint.py", line 163, in group_membership_scan
groups = {group for group in res[1]}
TypeError: 'Status' object is not iterable`
Thats the device signature:
{   "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",   "endpoints": {     "1": {       "profile_id": 260,       "device_type": "0x0100",       "in_clusters": [         "0x0000",         "0x0003",         "0x0004",         "0x0005",         "0x0006",         "0xe000",         "0xe001"       ],       "out_clusters": [         "0x000a",         "0x0019"       ]     },     "2": {       "profile_id": 260,       "device_type": "0x0100",       "in_clusters": [         "0x0003",         "0x0004",         "0x0005",         "0x0006",         "0xe000",         "0xe001"       ],       "out_clusters": []     }   },   "manufacturer": "_TZ3000_e98krvvk",   "model": "TS0012",   "class": "zigpy.device.Device" }

 "class": "zigpy.device.Device" = no quirk for the device is loaded so its not working OK.
Configure local quirks and putting one patched quirk i was writing above. and restarting HA. https://github.com/zigpy/zha-device-handlers/discussions/693#discussioncomment-857274

Thanks for your help.
I did it according to the description and changed MODELS_INFO: [("_TZ3000_fvh3pjaz", "TS0012")] to MODELS_INFO: [("_TZ3000_e98krvvk", "TS0012")] but the custom quirk didn't load.
I look through my other devices and also saw that the quirk for my TS0011 also didn't load, but surprisingly switching works.
So I also changed the line MODELS_INFO: [("_TZ3000_9hpxg80k", "TS0011")] to MODELS_INFO: [("_TZ3000_hafsqare", "TS0012")]
Device Signature off TS0011:
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0100",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe000",
        "0xe001"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    }
  },
  "manufacturer": "_TZ3000_hafsqare",
  "model": "TS0011",
  "class": "zigpy.device.Device"
}

But both didn't load.

For the TS0012 you must deleting the old line MODELS_INFO line (its need exact model for triggering) and putting  in the right line (74) :
        MODEL: "TS0012",

or it is not working.
In your last example you have one TS0011and its using the TS0011 class of the quirk and need making the same at this line:
https://github.com/zigpy/zha-device-handlers/blob/dcee551996a0a9e388b6afb1e054dada46897ee5/zhaquirks/tuya/ts001x.py#L26
with:
        MODEL: "TS0012",

and deleting the old MODELS_INFO line.

I did it exactly as you said but sadly the quirks doens't apply to the device, I don't know why.
Does the filename of the quirks matter?

The filename doesn't matter.
I think that clusters do not match with your device.
I would suggest another approach:

download the ts011f.py file:

https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/tuya/ts011f.py

Add inside another class:

class Tuya_2G_Switch_nogp(TuyaSwitch):
    """Tuya 2 gang light switch."""

    signature = {
        MODELS_INFO: [("_TZ3000_e98krvvk", "TS0012")],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_PLUG_IN_UNIT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_PLUG_IN_UNIT,
                INPUT_CLUSTERS: [
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
        },
    }
    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBE000Cluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaZBOnOffAttributeCluster,
                    TuyaZBE000Cluster,
                    TuyaZBExternalSwitchTypeCluster,
                ],
                OUTPUT_CLUSTERS: [],
            },
        },
    }

It is NOT the definitive solution, but it will serve to see if we make it work.
Delete cache and restart HA.

I don't know if its normal when there was no quirks applied but I don't have a chache file in the quirks folder.

If you are working with a custom_zha_quirks and it is configured in HA, I think that should be

I tried you suggestion and got another error:
Logger: homeassistant.config_entries
Source: custom_zha_quirks/ts011f.py:123
First occurred: 23:26:01 (1 occurrences)
Last logged: 23:26:01

Error setting up entry USB Serial, s/n: n/a for zha
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 313, in async_setup
    result = await component.async_setup_entry(hass, self)  # type: ignore
  File "/usr/src/homeassistant/homeassistant/components/zha/__init__.py", line 99, in async_setup_entry
    setup_quirks(config)
  File "/usr/local/lib/python3.9/site-packages/zhaquirks/__init__.py", line 403, in setup
    importer.find_module(modname).load_module(modname)
  File "<frozen importlib._bootstrap_external>", line 529, in _check_name_wrapper
  File "<frozen importlib._bootstrap_external>", line 1029, in load_module
  File "<frozen importlib._bootstrap_external>", line 854, in load_module
  File "<frozen importlib._bootstrap>", line 274, in _load_module_shim
  File "<frozen importlib._bootstrap>", line 711, in _load
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/config/custom_zha_quirks/ts011f.py", line 119, in <module>
    class Tuya_2G_Switch_nogp(TuyaSwitch):
  File "/config/custom_zha_quirks/ts011f.py", line 123, in Tuya_2G_Switch_nogp
    MODELS_INFO: [("_TZ3000_e98krvvk", "TS0012")],

Error setting up entry USB Serial, s/n: n/a for zha

Do you have any other config for the zha integration? O it is just something like:
zha:
  custom_quirks_path: /config/custom_zha_quirks/

@javicalle  If changing to MODEL in the TX001 for both TS0011 and TS0012 devices it shall normally loading the quirk but its need adding one new class then hi is having one new cluster "0xe001" that the "normal" is not having.

@javicalle No, I never added something manually to the ZHA config beside this.
@MattWestb I don't know what a cluster is but I often get the error "unknown cluster".

@javicalle If changing to MODEL in the TX001 for both TS0011 and TS0012 devices it shall normally loading the quirk but its need adding one new class then hi is having one new cluster "0xe001" that the "normal" is not having.

His device signature has:
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0xe000",
        "0xe001"
      ],

And ts001x.py have:
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                ],

I think that at least 3 clusters more are needed, don't you think?

It could be that @MattWestb is right, but @Tropaion you could try changing the DEVICE_TYPE at the signature part of both endpoints?
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,

@javicalle What should I change?
In the commend in "ts001x.py" it says the "device_type=100", the same as in my device signature

Perhaps I have created more confusion by trying to intervene.
@MattWestb had suggested you to modify the ts001x.py file.
I had made another suggestion to you (independent of Matew's) which was to copy the ts011f.py file and add the definition of a new class inside (Tuya_2G_Switch_nogp).
In my proposal there was an error in the part of the signature of the device, which is what I have suggested you to modify to test.
Where I said:
    signature = {
        MODELS_INFO: [("_TZ3000_e98krvvk", "TS0012")],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_PLUG_IN_UNIT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_PLUG_IN_UNIT,
                INPUT_CLUSTERS: [
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
        },
    }

I should said
    signature = {
        MODELS_INFO: [("_TZ3000_e98krvvk", "TS0012")],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    TuyaZBE000Cluster.cluster_id,
                    TuyaZBExternalSwitchTypeCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [],
            },
        },
    }

But this change must not be tested with the @MattWestb change also implemented.

Okay, I now added the unknown clusters to the TS001x file and it applies the quirks now. Tomorrow I will test how it works.
BTW should I upload the quirk somehow and add it to zigpy? And don't know how this is handled.

BTW should I upload the quirk somehow and add it to zigpy? And don't know how this is handled.

Do you mean to be added in the zha-device-handlers library?
The usual process would be to create a PR. But let's see how it works and then we can discuss it.

So, the farthest one away lost connection overnight and I got these errors, don't know if this is relevant:
Logger: homeassistant.components.zha.core.channels.base
Source: components/zha/core/channels/base.py:428
Integration: Zigbee Home Automation (documentation, issues)
First occurred: 01:10:07 (3 occurrences)
Last logged: 01:10:07

[0xB95A:1:0x0702]: async_initialize: all attempts have failed: [DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>'), DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>'), DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>'), DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>')]
[0xB95A:1:0x0b04]: async_initialize: all attempts have failed: [DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>'), DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>'), DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>'), DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>')]
[0xB95A:1:0x0006]: async_initialize: all attempts have failed: [DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>'), DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>'), DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>'), DeliveryError('Request failed after 5 attempts: <Status.MAC_NO_ACK: 233>')]

The two 2-way switches I currently have installed are still reacting slowly, are the farthest ones away so I'm not sure if this is an aspect. The 1-way switches are one room nearer and work fine.

  "class": "ts001x.TuyaDoubleNoNeutralSwitch" = ZHA have loading the quirk for the device and making all changes for it to working.
  "class": "zigpy.device.Device" = no matching quirk was found and its using all standard function of the device (if the device is 100% Zigbee standard its the default).
As i was saying the quirk is deleting the time cluster and the device shall start working OK and not  resetting its state after some minute.
Now you only need doing the same for the TS0011 ;-)

@MattWestb I already implemented it yesterday, this is my current quirks file:
bseed_ts001x.py.txt
But I still got these errors:
Logger: zigpy.zcl
Source: /usr/local/lib/python3.9/site-packages/zigpy/zcl/__init__.py:95
First occurred: 11:56:44 (21 occurrences)
Last logged: 11:56:44

- Unknown cluster 61184
- Unknown cluster 57345
- Unknown cluster 57344

BTW does it matter which base class I use? Currently I have BSEED_Tuya_Single_No_N(TuyaSwitch) but I also saw many which use custom device: BSEED_Tuya_Single_No_N(CustomDevice). I don't know which to use.

@MattWestb After trial and error I got it working now.
I found that the error is not from these two devices but from the ZigBee Bseed Dimmer (TS0601), which hasn't been implemented yet in ZHA.
But I'm still not sure which base class is better to use BSEED_Tuya_Single_No_N(TuyaSwitch) or BSEED_Tuya_Single_No_N(CustomDevice)
I don't know if and how to make a PR for this, so I will post the file here: bseed_ts001x.py.txt

Servus !!
I was changing your last for using MODEL so its working with other tuya devices with the same setting (shall doing the same with the "old" 11 and 12 classes) and running black on it.
The original quirk is using TuyaSwitch so i think its better and safer using that  if its working OK with your devices !!
I think you shall making the class name better than the "old" then its have more functionality and describing it 2.
bseed_ts001x.py_MW.txt
This switches is coming as only controller (as remotes) and also with integrated relays for in wall mounting. Therefore its little tricky not braking both types in the quirk.
You shall getting more attributes on the OnOff cluster but i dont knowing if its working on your model.
https://github.com/zigpy/zha-device-handlers/blob/db6a9316f08f58631b0efa3a0b049ae7fe90f169/zhaquirks/tuya/__init__.py#L886-L901
https://github.com/zigpy/zha-device-handlers/blob/db6a9316f08f58631b0efa3a0b049ae7fe90f169/zhaquirks/tuya/__init__.py#L827-L857
Great work done !!
If you have getting both working OK then its time making one nice PR for them and perhaps also adding one new class for the TS0013 that is very likely having the same settings but one extra endpoint.
The problem with the TS0601 dimmer is over my head but @javicalle have getting nearly all working on them but hi need little more testing and feedback for them to working with all futures.
One good thing with the TS001X family switches is that you can binding them to light groups and steering the lights also the the system is offline that is not possible with the TS0601 devices.

Ok, I thought MODEL is a old syntax and can cause collision if there a same definitions.
So, should I change the class name and file name or can I keep it? I don't know if there is a naming convention.
I also added the triple way switch but I don't have a device to test it:  bseed_ts001x.py.txt

One good thing with the TS001X family switches is that you can binding them to light groups and steering the lights also the the system is offline that is not possible with the TS0601 devices.

Do you mean the ZigBee Groups?
I tried settung one up for all light so I can turn them all off but I can't get it to work, trying it for a few days now -.-
Maybe you have a suggestion for me? There isn't much about it in the net.

The MODELS is making all device with the right model type and correct cluster config using the quirk.
MODELS_INFO must also the name so can selecting with models shall using the quirk then must adding all IDs or its not working.
Then tuya looks using the same function on all "normal" Zigbee devices its better using MODELS and dont need addinga all variants of them.
Your switch is having on/off cluster as in so ZHA shall doing 1/2 lights on the device card.
If its working OK you can switching them on and off one by one.
If they working normal it shall being possible adding them to light groupes like in your screenshot. But i think the problem is that its one sleeping end device if looking in the device signature: *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)", so trying waking it up then sending commands to it and see if its working.
It can being that its not supporting group binding then one sleeping  device.
More "normal" devices like IKEA have support for over 50 groups in there devices and and no problem adding multiple groups. Some less good device cant only being bound to one group or not at all.

@MattWestb So how do I wake it up? It's possible that it's sleeping because it says it's battery powered, probably because its without N wire. But the device has a group cluster, doesn't this imply that it support groups?

Xiaomi / Aqara have doing may switches without neutral and normally they is sleepers.
The device dont have pull control cluster (its Zigbee 3 function that making the end device pulling commands from the coordinator and not losing commands that have timing out) so the routers must keeping your command but they is only doing it for 7 seconds and then throwing it (old not Zigbee 3 way).
Then you is changing state in HA is it working OK or is it very delayed and timing out oft ?
I only having some tuya TRVs that is sleepers that need getting commands but they is normally working OK but can being very lazy.
And still still likely the switches is not supporting groups but must looking in the log if the add group is getting OK or some error (then the device is receiving it).
Then sending commands to the switch is the best pressing one button so its sending somthing and have the radio on and can receiving the command.

The device is often delayed and sometime timing out.
Is it possible to disable sleeping?

Only possible by flashing one new firmware on the device and we dont have the code tuya have baked in there device only the Zigbee stack from Silabs they is using.
I think you must see the without neutral switches and one sleeping remote with relays that is made sending its status / commands and not receiving commands like "normal lights is doing (and i hope tuya switches with neutral is no sleepers).
Look around for information and you is finding some interesting or perhaps bad. I have not doing it then i have finding one good tuya simmer module that can being bonded and have installing it and then IKEA was updating the firmware in there remotes and was losing the group binding and breaking the "remote controlling" but working OK local and also turing all endpoints / gangs on and off.
https://github.com/MattWestb/tuya-Switches-Dimmer

It can helping but very likely not then i dont think they is changing the device type (router, sleeping or not sleeping end device) but you never knowing.

What I don't understand...is there a cluster attribute where I can see which type it is and if it supports groups?

"Normal devices" is having cluster= is working out of the box with ZHA then its Zigbee compatible but with tuya is little "working or not" and also hiding clusters that is working so we dont finding  them so easy.
I fighting with one TS004F that is one dimmer remote but can changing to one "scene controller" but as light controller is sending commands on, off dim up and down OK but its having group cluster as in (its for lights) and out (for sending from remote) and normally you shall binding the  out cluster to one group but with this device its needed adding one group to the in cluster as it was one light.
Its all tuya :-(((

@MattWestb BTW are making the PR or should I?

I can making it but i cant testing if its working.
If you is doing one its great then you can testing the finale code for your 2 switches and adding the TS0013 without testing its very OK then all before have looking the same as the TS0012 with one extra endpoint.
Also if you can changing the old to using MODEL its being  better then user dont need requesting new devices (as long tuya is not making new versions of them).
If you need help i can hiniting little.
Most important is formatting the code with black and i normally using black playground for doing  that. https://black.vercel.app/

I already did everything you said:
bseed_ts001x.py.txt

Was making one fast look and its looks OK but im not one coding expert.
I think the best is adding the new switches to the exiting quirk by adding the new classes so not having different files for same type of the devices like is being made for other tuya quirks and not making one new file for every new "manufacturer".


bug: Error When Starting aw-watcher.nvim

Did you check docs and existing issues?

[X] I have read all the plugin docs
[X] I have searched the existing issues
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
v0.10.2
Operating system/version
MacOs 15.2
Describe the bug
I followed the instructions in the README to install the aw-watcher.nvim plugin, but I encountered an error when starting.
Failed to run `config` for aw-watcher.nvim

...hare/nvim/lazy/aw-watcher.nvim/lua/aw_watcher/config.lua:34: bucket hostname must be a string

# stacktrace:
  - /aw-watcher.nvim/lua/aw_watcher/config.lua:34 _in_ **new**
  - /aw-watcher.nvim/lua/aw_watcher/init.lua:57 _in_ **setup**
  - lua/config/lazy.lua:9
  - init.lua:2

Steps To Reproduce

Expected Behavior

Hi!
Thank you. I don't have a MacOs to test, so I'm very grateful that you opened the issue :)
I hope I fixed the issue with the 16bc4a7 commit.

The new code works fine. Thank you!


How to let kubelet rotate logs with cri-dockerd?

Hi,
We try to switch from docker to cri-dockerd to be able to upgrade Kubernetes from 1.23 to 1.24 using Rancher.
However there seems to be a problem with log rotation.
Once we switch to cri-dockerd kubelet complains:
E1208 21:16:11.060897   10983 container_log_manager.go:266] "Failed to rotate log for container" err="failed to rotate log \"/var/log/pods/cattle-monitoring-system_pushprox-kube-scheduler-proxy-6cb664c86b-smtz2_d98c3e29-8508-4a70-aa03-1eba3187dc77/pushprox-proxy/0.log\": failed to reopen container log \"d85741fb71b5030d07512c9aad0db585807ea4d26fe25b17c25815d4196f1c58\": rpc error: code = Unknown desc = docker does not support reopening container log files" path="/var/log/pods/cattle-monitoring-system_pushprox-kube-scheduler-proxy-6cb664c86b-smtz2_d98c3e29-8508-4a70-aa03-1eba3187dc77/pushprox-proxy/0.log" containerID="d85741fb71b5030d07512c9aad0db585807ea4d26fe25b17c25815d4196f1c58"
time="2022-12-08T21:16:14Z" level=info msg="Using CNI configuration file /etc/cni/net.d/10-canal.conflist"
time="2022-12-08T21:16:19Z" level=info msg="Using CNI configuration file /etc/cni/net.d/10-canal.conflist"
E1208 21:16:21.103339   10983 remote_runtime.go:1145] "ReopenContainerLog from runtime service failed" err="rpc error: code = Unknown desc = docker does not support reopening container log files" containerID="d85741fb71b5030d07512c9aad0db585807ea4d26fe25b17c25815d4196f1c58"

So the relevant part here is: "docker does not support reopening container log files"
I found this old issue https://github.com/containerd/cri/issues/817 .
There it is said, "let kubelet" do the rotation.
However ... How to do that, if cri-dockerd seems to be missing an essential feature?
Or what else can we do to ensure our logs get rotated correctly, when we switch to cri-dockerd?

@evol262 Does that mean the error can safely be ignored?

Thank you very much :)

@evol262 I just noticed that we're being hit by this issue also (k3s with docker, so cri-dockerd in use). Our log is being spammed every five seconds with messages like these:
E0119 23:24:38.345846   19031 remote_runtime.go:1168] "ReopenContainerLog from runtime service failed" err="rpc error: code = Unknown desc = docker does not support reopening container log files" containerID="8113e7bcfaedcc3c2b096fbcf12023bd0676ce00db621fabc617d6b749f23277"
E0119 23:24:38.345912   19031 container_log_manager.go:266] "Failed to rotate log for container" err="failed to rotate log \"/var/log/pods/ontwikkel_stubs-579887cfb9-cxd4x_d4d4f990-8a3f-499f-828a-1786051a5f3d/app/0.log\": failed to reopen container log \"8113e7bcfaedcc3c2b096fbcf12023bd0676ce00db621fabc617d6b749f23277\": rpc error: code = Unknown desc = docker does not support reopening container log files" path="/var/log/pods/ontwikkel_stubs-579887cfb9-cxd4x_d4d4f990-8a3f-499f-828a-1786051a5f3d/app/0.log" containerID="8113e7bcfaedcc3c2b096fbcf12023bd0676ce00db621fabc617d6b749f23277"

As you can see, it's quite a bit of noise. Could this (shouldn't this) be fixed in cri-dockerd? Or do you think it should be brought up with kubernetes/kubernetes?
Lastly (since fixes in kubernetes/kubernetes often take quite some time), would you know of a workaround that avoids these messages from spamming our logs?


teleport_12: 12.1.5 -> 12.4.7

Description of changes
Minor update.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 238627 run on aarch64-darwin 1

2 packages failed to build:

teleport (teleport_12)
teleport.client (teleport_12.client)

Result of nixpkgs-review pr 238627 run on aarch64-darwin 1

2 packages built:

teleport (teleport_12)
teleport.client (teleport_12.client)


Use gevent's WSGIServer instead of plain Flask

The issue we had
Some of my coworkers and I had an issue that some of the HTTP requests are blocked for several minutes (in my case 6 minutes), which leads to the system being practically unusable.
Below are screenshots of Chrome's developer tool:

The same issue occurs in Firefox and Safari as well.
This issue looks like happening inside Flask:
https://stackoverflow.com/q/54775894/564246
What this PR does
Wraps around app.run with gevent's WSGIServer to enable the server to better handle concurrent requests.
Details
I found some information related to this issue.
https://stackoverflow.com/a/14823968/564246

flask.Flask.run accepts additional keyword arguments (**options) that it forwards to werkzeug.serving.run_simple
(snip)
threaded defaults to True as of Flask 1.0

https://stackoverflow.com/a/29887309/564246

but keep in mind that the built-in WSGI server in Werkzeug (which is packaged into Flask and what it uses for app.run()) is only single-threaded.

Misc.
I'm not a Python guy, so let me know if there's anything to improve. Thank you in advance.

Thank you for your PR!
It's better to have an option to enable an alternative webserver.

Thank you for your comment. I added an option --use-gevent. Let me know if there's anything else to improve.


fix giou loss test

Related #1320.
As Reduction.NONE has changed. Change reduction mode to Reduction.SUM_OVER_BATCH_SIZE for unifying graph and eager reduction behavior.

Thank you for the pull request!


[BUG] fiftyone.core.service.ServerService failed to bind to port 5151

This is my code following the tutorials. Could you help me fix this problem? I have tried to change the port, but it didn't work.

It seems like to be a problem of wsl2. However, I still don't know how to handle.

Hi @clickmouse.
So I am not familiar wsl2. Of course, if there is another process on 5151, that is an issue. But regarding general port availability and access, this may be hard for use to diagnose.
You can try starting the server manually with the below
# in your environment
python /mnt/d/miniconda3/envs/py38/lib/python3.8/site-packages/fiftyone/server/main.py

If that works, then this is our issue. And we'll have to dig into this.

@benjaminpkane Thanks for your reply. It now works on my mac. It must be the problem of wsl2.


Properly set up Prettier

Need to add it as a local dependency, add a (probably empty) config file, and set it to ignore the out/ folder.

See https://prettier.io/docs/en/install.html