Remove dependencies on DCI flags

Using cluster information for storage configuration

Thanks Beto, now that you did some clean up in the labels and it's more clear, can we also include the label_nodes role in the Dependencies of the README[1]
[1] https://github.com/redhatci/ansible-collection-redhatci-ocp/blob/main/roles/odf_setup/README.md?plain=1#L89

Done


isFocusVisible is not set on elements using react-hook-form

Provide a general summary of the issue here
When I use react-hook-form I cannot focus WITH isFocusVisible on the Select element.
The Select element itself gets the focus but without the isFocusVisible I cannot render a propper ring around the select.
https://github.com/user-attachments/assets/eed2395a-abfa-4ac5-ab0b-29cd4c0e3e0b
NOTE: I do understand that the components exposes a isFocused property that i could use to render the outline but that also means that after I select an element the outline will still be visible which is unwanted behavior.
🤔 Expected Behavior?
Once focus is set on the component via react-hook-form it should add the isFocusVisible property to it so the outline is shown.
😯 Current Behavior
No isFocusVisible gets set for Select, RadioGroup, CheckboxGroup etc...
💁 Possible Solution
No response
🔦 Context
No response
🖥 Steps to Reproduce
https://github.com/zommerberg/react-aria-hook-form-bug
Version
"react-aria-components": "^1.3.1",
What browsers are you seeing the problem on?
Firefox, Chrome, Safari, Microsoft Edge
If other, please specify.
No response
What operating system are you using?
Windows 11
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response

This is a bit tricky, we handle this in our own native form validation via https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/form/src/useFormValidation.ts#L67. We have to set keyboard modality manually here since we don't want to set isFocusVisible=true for all programmatic focus movements (see https://react-spectrum.adobe.com/blog/building-a-button-part-3.html#focus-rings for a break down of some of the scenarios). However, since react-hook-form is handling the validation, that code path doesn't happen, so ideally there would be some way to have react-hook-form set keyboard modality here. I guess you could do something like
  const onInvalid = () => {
    setInteractionModality('keyboard');
  }
  ...
<Form onSubmit={handleSubmit(onSubmit, onInvalid)}

but setInteractionModality comes from @react-aria/interactions directly and isn't exported from the mono repo. Not sure if we could handle this case automatically on our end

setInteractionModality("keyboard"); Does the trick for me. I made my own reusable useReactAriaHook form that will always call it on error.
import {
  useForm,
  UseFormProps,
  UseFormReturn,
  FieldValues,
  UseFormHandleSubmit,
} from "react-hook-form";
import { setInteractionModality } from "@react-aria/interactions";

export function useReactAriaForm<
  TFieldValues extends FieldValues = FieldValues,
  TContext = any
>(
  props?: UseFormProps<TFieldValues, TContext>
): UseFormReturn<TFieldValues, TContext> {
  const form = useForm<TFieldValues, TContext>(props);

  const enhancedHandleSubmit: UseFormHandleSubmit<TFieldValues> = (
    onValid,
    onInvalid
  ) => {
    return form.handleSubmit(onValid, (errors, event) => {
      setInteractionModality("keyboard");
      if (onInvalid) {
        onInvalid(errors, event);
      }
    });
  };

  return {
    ...form,
    handleSubmit: enhancedHandleSubmit,
  };
}

Glad it works for you! Documentation would definitely be nice, but I'm a bit wary about exposing setInteractionModality since it really isn't supposed to be public api. Lemme chat with the team about if there are any alternatives or if we need to setup a helper of sorts rather than exposing that setter directly.

Sorry about the delay, the team discussed this and we'll want to make a helper utility for this. For now it would be best not to use setInteractionModality directly if possible because it isn't public api, could you try dispatching a keyboard event instead to trigger keyboard modality?


[Inquiry] Unexplained "mod broken" notice with no additional context

Hi there!
This is a great mod to have for us players and modders alike to see whether we may potential problems with our mod setups.
However, with the recent release of the Plazas and promenades DLC, I have noticed that 2 of my mods, Express Bus Services (ID<PHONE_NUMBER>) and Express Bus Services TLM Plugin (ID<PHONE_NUMBER>) are marked as "broken" with no further details. This is seen in e.g. catalog version 5.94; I hlpe this info is helpful.
I checked the catalog file (which I guess is the file that is used for client mods to check things), and it says that both mods are "stable".
https://github.com/Finwickle/CompatibilityReport/blob/5c544aeeaccf408d1d2ab74203f47d472a859b68/CompatibilityReport_Catalog.xml
May I know what is going on? Having unexplained inaccuracies in a correctness mod can be fatal.

Hei Vectorial,
first, the file you link to is not the actual file. It is just the one delivered with the mod for installation :)
second, i have added a link both in the report and also on the workshop site to report wrong information :)
third, we are all humans - so errors can happen.

But if you want an explanation:
first tests it ran against the wall as TLM was not updated - and at that time it was not clear if TLM or the plugin caused it. Therefore both where marked broken for the moment. But after TLM got updated, i simply have overseen to remove your plugin too. Se same was btw with the IPT plugin, but this is already back to stable status. And regarding to your main mod i can't tell right now if it is an interfere with maybe 81 Tiles 2 but at least in a combination with 130 other mods adding yours the game stopped working. As the launch used ofc a lot of my time i not had time to test all eventual cases. Therefore i needed to decide what to do.
So in this case (as with some other mods) better save for the players and sorry for the modder. Esp. as i can handle way easier one modder complaining than 10k players complaining there game is not loading any more .... Sorry for that :)
The second plugin will get on stable with next catalog and now i have some more time, i can test the details of the issue

Tested everything again this evening and night. Due to the other mods got fixed i'm not getting any error anymore. Catalog is already updated. Kind regards.
Please next time contact me on the official ways i offer for such :)

Ah, I also saw your update on the steam mod page, and everything seems to become clearer now. And the catalog I say it updated too.
Indeed, we are humans. I must also admit I basically ignored requests to check compatibility of my mods with 81 tiles until very recently...

Still, to try to make something nice out of this, perhaps we could store the "last checked" date for each mod entry in the catalog? That way, if we somehow are too busy to update/recheck the catalog, then users themselves may judge whether the catalog's judgement is good. Afterall, there gotta be some delay with updating the catalog, and mods might get updated while we are doing something else.
But ideally, the catalog got to have up to date information.

Still, many thanks for the update!

You're very welcome. I think it is needed to explain more about testing.
In the very beginning all ~2000 mods where one time tested and categorised. Now every time a mod gets updated, new released or i get a report of issues regarding to it, it will be tested again the top 200 mods. Functionality is tested and logs get checked for any kind of errors. One day a week i updated the catalog.
Every time the game gets updated an additional test of the top 200 mods against new game version prior the release takes place. All of the top 200 mods with issues i either contact the creator or search or one other modder to work on a (temp) fix or new release.
After the release the top 201-300 are added to the test. If there are issues they will be just flagged as broken, so the creator can see in CR that he should take of his mod(s) [Hey! It worked, you took care ;) ]. As soon as the creator either update his mod (i get automatically this info) or contact me using the report form or on the official discord channel for this, i add the mod back in the test and update the catalog in a short term. Short term in the case of a game update meant this time 11 catalog updates within 5 days.
Additionally all mods that are reported to cause issues using the form or discord are tested the same way too
There are mods that will be most likely never tested again, as they have only a few subscribers, be rather old, and no one takes care - not even the creator. They will be only tested again if at least one report will come in or suddenly an update is pushed to workshop.
Therefore the info of last test date seems not really very important for me - even a 7 year old mod can still run perfect. A last tested day would easily lead to the feeling: "It will Not Work". Additionally with more and more info it gets harder for the players to understand.
All the game update mod compatibility tests are done by me. Only the regular weekly mod releases are also checked by rlas who supports me.
Just to make more clear what all this means: In the last three weeks i spent every day between 8-16 hours in testing, feedback, coordinating and support. The days since release i had support requests from ~450 players to get their game back running - additionally to the compatibility tests. Only arround 20 i could not bring back to life.
In general players can be sure: all new mod releases and updates are tested within one week.
And as creator you can be sure: your mod will be tested at release, at every update and if a user reports - in all these cases you'll be contacted if there is an issue.
And in case of game updates your mods will be additionally tested in case it is in the top 200 in advance, in the top 300 at release. At game update it's the modders work to check if something is in the catalog about his mod. Easily done by subbing to his own mod and have a single look each day into the CR.
The plan for the next version of CR is to show an ingame popup in case a new catalog is available. This should remind players and creators in the same way.
Please feel free to contact me on Discord of you have further questions, i'll close that one here now.
Read you soon :)

Thanks for the writing! I never imagined how many work was put into maintaining the catalog. This is truly important work helping out the many many players! A lot of thought was made onto what to prioritize and what to show etc, this is true dedication.
To be honest, I only noticed my mod being marked as broken after reading user feedback; I was not paying attention to CSL every day. If there were no reports, then it might be "the mod is marked as broken but no one knew/cared and everyone forgot about the mod".

Good idea on the catalog update popup!
And maybe a very short summary of the prioritization can be posted in the new workshop page? So that everyone knows roughly what to expect and what to do to help out.

With the new version to release with new ID, i'll add more such information.

all done


Dev sentinel securityinsights microsoft.security insights 2024 09 01

ARM (Control Plane) API Specification Update Pull Request

[!TIP]
Overwhelmed by all this guidance? See the Getting help section at the bottom of this PR description.

PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!

[ ] New resource provider.
[x] New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been created in adherence to OpenAPI specs PR creation guidance).
[ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix OpenAPI spec quality issues in S360.
[ ] Convert existing OpenAPI spec to TypeSpec spec (do not combine this with implementing changes for a new API version).
[ ] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[x] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.

Additional information

 Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.

Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
suppressions guide to get approval.

Getting help

First, please carefully read through this PR description, from top to bottom. Please fill out the Purpose of this PR and Due diligence checklist.
If you don't have permissions to remove or add labels to the PR, request write access per aka.ms/azsdk/access#request-access-to-rest-api-or-sdk-repositories
To understand what you must do next to merge this PR, see the Next Steps to Merge comment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
For help with ARM review (PR workflow diagram Step 2), see https://aka.ms/azsdk/pr-arm-review.
If the PR CI checks appear to be stuck in queued state, please add a comment with contents /azp run.
This should result in a new comment denoting a PR validation pipeline has started and the checks should be updated after few minutes.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

Fix the errors here or add a suppression adding a reasoning for why you cant fix it
https://github.com/Azure/azure-rest-api-specs/pull/30800/checks?check_run_id=30872281352
https://github.com/Azure/autorest/blob/main/docs/generate/suppress-warnings.md

For the suppression, it is approved in the last preview PR. https://github.com/Azure/azure-rest-api-specs/pull/28437

/azp run

/azp run

API change check
APIView has identified API level changes in this PR and created following API reviews.
common

@razvanbadea-msft I fixed the typo, string format and V3 comments.
The rest (like enum, additonalPropertyValidation..) reviewed during the Preview version.
We had a long discussion therewith ARM team... I joined a few ARM meetings, discuss with PMs and the API approved by ARM.
This version is exactly the same definition as we have in Preview version and we want to have the same API (This API is in GA already for a few month with the preview definition)
if you need more explanation let me know, and i will join to ARM meeting


[Snyk] Security upgrade django from 1.2 to 3.2.25

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

packages/requirements.txt

Vulnerabilities that will be fixed
By pinning:

Severity
Priority Score (*)
Issue
Upgrade
Breaking Change
Exploit Maturity

551/1000  Why? Recently disclosed, Has a fix available, CVSS 5.3
Regular Expression Denial of Service (ReDoS) SNYK-PYTHON-DJANGO-6370660
django:  1.2 -> 3.2.25
No
No Known Exploit

(*) Note that the real score may have changed since the PR was raised.
Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.
Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Regular Expression Denial of Service (ReDoS)

Checkmarx One – Scan Summary & Details – 5e0994c1-b1a0-48e4-a277-2a38b5f3360d
New Issues

Severity
Issue
Source File / Package
Checkmarx Insight

CVE-2024-27088
Npm-es5-ext-0.10.53
Vulnerable Package

CVE-2024-25710
Maven-org.apache.commons:commons-compress-1.15
Vulnerable Package

CVE-2024-25710
Maven-org.apache.commons:commons-compress-1.20
Vulnerable Package


Running with docker-compose give ModuleNotFoundError

When trying to run DSA with the docker-compose file, the girder and worker containers repeat this block in the logs over and over:
The user `root' is already a member of `root'.
id: ‘987’: no such user
net.ipv4.conf.eth0.route_localnet = 1
Traceback (most recent call last):
  File "/opt/digital_slide_archive/devops/dsa/provision.py", line 18, in <module>
    from girder_large_image.models.image_item import ImageItem
ModuleNotFoundError: No module named 'girder_large_image'

When running this, it looks like the module is present {{docker run -it --rm dsarchive/dsa_common pip list}}, so perhaps that error is a red herring. I am not sure about the user 987, I'm running this as root.
RHEL 7.9
Docker 20.10.6
Image is dsarchive/dsa_common:latest

I'm surprised by the ModuleNotFoundError: No module named 'girder_large_image' error.  The id: ‘987’: no such user error I could reproduce on a fresh CentOS machine, and have a fix for it in PR #150 (the number is the docker group id, which as stated, isn't a user).  Can you try on that branch and see if it will start for you?
One difference is that I haven't tested running as root (it usually isn't recommended).

Thanks for the quick reply @manthey. Your PR looks to have fixed the user 987 error, I'm just getting this output now:
The user `root' is already a member of `root'.
The user `root' is already a member of `docker'.
Traceback (most recent call last):
  File "/opt/digital_slide_archive/devops/dsa/provision.py", line 18, in <module>
    from girder_large_image.models.image_item import ImageItem
ModuleNotFoundError: No module named 'girder_large_image'

What's really strange to me is that this command works:
docker run -it --rm dsarchive/dsa_common su -c "PATH=\"/opt/digital_slide_archive/devops/dsa/utils:/opt/venv/bin:/.pyenv/bin:/.pyenv/shims:$PATH\"; python /opt/digital_slide_archive/devops/dsa/provision.py"

Running in mode: development
Connecting to MongoDB: mongodb://mongodb:27017/girder?socketTimeoutMS=3600000

I agree about not using root user, I was just trying to see about getting something set up for a demo. Definitely would create a special user if we choose to stand this up in a production capacity. I can also give that a shot if you think it's causing the module not found problem.

I just tried running as root.  The only issue I see is that I get an error on the worker since celery won't run as root with the C_FORCE_ROOT environment variable set.
Are you using a custom docker-compose.yml file?  Did you build the docker image locally (if so, could you try to pull the built image)?  Could you share the entire docker-compose logs girder output?

I'll merge PR #150, as it is a strict improvement.

I'm using a slightly customized docker file (mount the image storage, port number, and C_FORCE_ROOT):
docker-compose.yml
version: '3'
services:
  girder:
    image: dsarchive/dsa_common
    build: ../..
    # Instead of privileged mode, fuse can use:
    # devices:
    #   - /dev/fuse:/dev/fuse
    # security_opt:
    #   - apparmor:unconfined
    # cap_add:
    #   - SYS_ADMIN
    # but these may be somewhat host specific, so we default to privileged.  If
    # the docker daemon is being run with --no-new-privileges, fuse may not
    # work.
    privileged: true
    # Set DSA_USER to a user id that is part of the docker group (e.g.,
    # `DSA_USER=$(id -u):$(id -g)`).  This makes files in assetstores and logs
    # owned by that user and provides permissions to manage docker
    environment:
      DSA_USER: ${DSA_USER:-}
      C_FORCE_ROOT: 1
    restart: unless-stopped
    # Set DSA_PORT to expose the interface on another port (default 8080).
    ports:
      - 8080:8080
    volumes:
      # Needed to use slicer_cli_web to run docker containers
      - /usr/bin/docker:/usr/bin/docker
      - /var/run/docker.sock:/var/run/docker.sock
      # Default assetstore
      - ./assetstore:/assetstore
      # Location of girder.cfg
      - ./girder.cfg:/etc/girder.cfg
      # Location of provision.py
      - ./provision.py:/opt/digital_slide_archive/devops/dsa/provision.py
      # Location to store logs
      - ./logs:/logs

      # For local development, uncomment the set of mounts associated with the
      # local source files.  Adding the editable egg directories first allows
      # allow mounting source files from the host without breaking the internal
      # data.

      # - /opt/girder/girder.egg-info
      # - /opt/girder/clients/python/girder_client.egg-info
      # - ../../../girder:/opt/girder

      # - /opt/girder_worker/girder_worker.egg-info
      # - ../../../../girder_worker:/opt/girder_worker

      # - /opt/girder_worker_utils/girder_worker_utils.egg-info
      # - ../../../../girder_worker_utils:/opt/girder_worker_utils

      # - /opt/HistomicsUI/histomicsui.egg-info
      # - ../../../HistomicsUI:/opt/HistomicsUI

      # - /opt/slicer_cli_web/girder_slicer_cli_web.egg-info
      # - ../../../slicer_cli_web:/opt/slicer_cli_web

      # - /opt/large_image/girder_annotation/girder_large_image_annotation.egg-info
      # - /opt/large_image/girder/girder_large_image.egg-info
      # - /opt/large_image/sources/bioformats/large_image_source_bioformats.egg-info
      # - /opt/large_image/sources/openslide/large_image_source_openslide.egg-info
      # - /opt/large_image/sources/ometiff/large_image_source_ometiff.egg-info
      # - /opt/large_image/sources/pil/large_image_source_pil.egg-info
      # - /opt/large_image/sources/test/large_image_source_test.egg-info
      # - /opt/large_image/sources/dummy/large_image_source_dummy.egg-info
      # - /opt/large_image/sources/tiff/large_image_source_tiff.egg-info
      # - /opt/large_image/sources/mapnik/large_image_source_mapnik.egg-info
      # - /opt/large_image/sources/openjpeg/large_image_source_openjpeg.egg-info
      # - /opt/large_image/sources/gdal/large_image_source_gdal.egg-info
      # - /opt/large_image/sources/nd2/large_image_source_nd2.egg-info
      # - /opt/large_image/large_image.egg-info
      # - /opt/large_image/utilities/converter/large_image_converter.egg-info
      # - /opt/large_image/utilities/tasks/large_image_tasks.egg-info
      # - ../../../large_image:/opt/large_image

      # Add additional mounts here to get access to existing files on your
      # system.  Also add them to the worker container to reduce copying.
      - /opt/dsa-images:/opt/large_image
    depends_on:
      - mongodb
      - memcached
      - rabbitmq
    # The command does:
    # - Ensures that the main process runs as the DSA_USER and is part of both
    #   that group and the docker group.  This is done by:
    #   - adding a user with the DSA_USER's id; this user is named ubuntu if it
    #     doesn't exist.
    #   - adds a group with the DSA_USER's group id.
    #   - adds the user to the user group.
    #   - adds a group with the docker group id.
    #   - adds the user to the docker group.
    # - Use iptables to make some services appear as if they are on localhost
    #   (as well as on the docker network).  This is done to allow tox tests to
    #   run.
    # - Run subsequent commands as the DSA_USER.  This sets some paths based on
    #   what is expected in the Docker so that the current python environment
    #   and the devops/dsa/utils are available.
    # - Provision the Girder instance.  This sets values in the database, such
    #   as creating an admin user if there isn't one.  See the provision.py
    #   script for the details.
    # - If possible, set up a girder mount.  This allows file-like access of
    #   girder resources.  It requires the host to have fuse installed and
    #   the docker container to be run with enough permissions to use fuse.
    # - Start the main girder process.
    command: bash -c '
      if [[ -z "$DSA_USER" ]]; then echo "Set the DSA_USER before starting (e.g, DSA_USER=\$$(id -u):\$$(id -g) <up command>"; exit 1; fi;
      adduser --uid $${DSA_USER%%:*} --disabled-password --gecos "" ubuntu 2>/dev/null;
      addgroup --gid $${DSA_USER#*:} $$(id -ng $${DSA_USER#*:}) 2>/dev/null;
      adduser $$(id -nu $${DSA_USER%%:*}) $$(getent group $${DSA_USER#*:} | cut "-d:" -f1) 2>/dev/null;
      addgroup --gid $$(stat -c "%g" /var/run/docker.sock) docker 2>/dev/null;
      adduser $$(id -nu $${DSA_USER%%:*}) $$(getent group $$(stat -c "%g" /var/run/docker.sock) | cut "-d:" -f1) 2>/dev/null;
      sysctl -w net.ipv4.conf.eth0.route_localnet=1;
      iptables -t nat -A OUTPUT -o lo -p tcp -m tcp --dport 27017 -j DNAT --to-destination `dig +short mongodb`:27017;
      iptables -t nat -A OUTPUT -o lo -p tcp -m tcp --dport 11211 -j DNAT --to-destination `dig +short memcached`:11211;
      iptables -t nat -A POSTROUTING -o eth0 -m addrtype --src-type LOCAL --dst-type UNICAST -j MASQUERADE;
      su $$(id -nu $${DSA_USER%%:*}) -c "
      PATH=\"/opt/digital_slide_archive/devops/dsa/utils:/opt/venv/bin:/.pyenv/bin:/.pyenv/shims:$PATH\";
      python /opt/digital_slide_archive/devops/dsa/provision.py &&
      (girder mount /fuse || true) &&
      girder serve --dev
      "'
  mongodb:
    image: "mongo:latest"
    # Set DSA_USER to your user id (e.g., `DSA_USER=$(id -u):$(id -g)`)
    # so that database files are owned by yourself.
    user: ${DSA_USER:-PLEASE SET DSA_USER}
    restart: unless-stopped
    # Using --nojournal means that changes can be lost between the last
    # checkpoint and an unexpected shutdown, but can substantially reduce
    # writes.
    command: --nojournal
    volumes:
      # Location to store database files
      - ./db:/data/db
    # Uncomment to allow access to the database from outside of the docker
    # network.
    # ports:
    #   - "27017"
    logging:
      options:
        max-size: "10M"
        max-file: "5"
  memcached:
    image: memcached
    command: -m 4096 --max-item-size 8M
    restart: unless-stopped
    # Uncomment to allow access to memcached from outside of the docker network
    # ports:
    #   - "11211"
    logging:
      options:
        max-size: "10M"
        max-file: "5"
  rabbitmq:
    image: "rabbitmq:latest"
    restart: unless-stopped
    # Uncomment to allow access to rabbitmq from outside of the docker network
    # ports:
    #   - "5672"
    logging:
      options:
        max-size: "10M"
        max-file: "5"
  worker:
    image: dsarchive/dsa_common
    build: ../..
    # Set DSA_USER to a user id that is part of the docker group (e.g.,
    # `DSA_USER=$(id -u):$(id -g)`).  This provides permissions to manage
    # docker
    environment:
      DSA_USER: ${DSA_USER:-}
      DSA_WORKER_CONCURRENCY: ${DSA_WORKER_CONCURRENCY:-2}
      C_FORCE_ROOT: 1
      TMPDIR:
    restart: unless-stopped
    volumes:
      # Needed to use slicer_cli_web to run docker containers
      - /usr/bin/docker:/usr/bin/docker
      - /var/run/docker.sock:/var/run/docker.sock
      # Needed to allow transferring data to slicer_cli_web docker containers
      - ${TMPDIR:-/tmp}:${TMPDIR:-/tmp}
      # Add additional mounts here to get access to existing files on your
      # system if they have the same path as on the girder container.
      - /opt/dsa-images:/opt/large_image
    depends_on:
      - rabbitmq
    # See the girder container for an explanation of most of this.
    # The main command is to run girder_worker
    command: bash -c '
      if [[ -z "$DSA_USER" ]]; then echo "Set the DSA_USER before starting (e.g, DSA_USER=\$$(id -u):\$$(id -g) <up command>"; exit 1; fi;
      adduser --uid $${DSA_USER%%:*} --disabled-password --gecos "" ubuntu 2>/dev/null;
      addgroup --gid $${DSA_USER#*:} $$(id -ng $${DSA_USER#*:}) 2>/dev/null;
      adduser $$(id -nu $${DSA_USER%%:*}) $$(getent group $${DSA_USER#*:} | cut "-d:" -f1) 2>/dev/null;
      addgroup --gid $$(stat -c "%g" /var/run/docker.sock) docker 2>/dev/null;
      adduser $$(id -nu $${DSA_USER%%:*}) $$(getent group $$(stat -c "%g" /var/run/docker.sock) | cut "-d:" -f1) 2>/dev/null;
      su $$(id -nu $${DSA_USER%%:*}) -c "
      PATH=\"/opt/digital_slide_archive/devops/dsa/utils:/opt/venv/bin:/.pyenv/bin:/.pyenv/shims:$PATH\";
      DOCKER_CLIENT_TIMEOUT=86400 TMPDIR=${TMPDIR:-/tmp} GW_DIRECT_PATHS=true python -m girder_worker --concurrency=$${DSA_WORKER_CONCURRENCY:-2} -Ofair --prefetch-multiplier=1
      "'
    logging:
      options:
        max-size: "10M"
        max-file: "5"

docker logs output
# docker-compose logs girder
Attaching to dsa_girder_1
girder_1     | Adding user `root' to group `root' ...
girder_1     | Adding user root to group root
girder_1     | Done.
girder_1     | Adding group `docker' (GID 987) ...
girder_1     | Done.
girder_1     | Adding user `root' to group `docker' ...
girder_1     | Adding user root to group docker
girder_1     | Done.
girder_1     | net.ipv4.conf.eth0.route_localnet = 1
girder_1     | Traceback (most recent call last):
girder_1     |   File "/opt/digital_slide_archive/devops/dsa/provision.py", line 18, in <module>
girder_1     |     from girder_large_image.models.image_item import ImageItem
girder_1     | ModuleNotFoundError: No module named 'girder_large_image'
girder_1     | The user `root' is already a member of `root'.
girder_1     | The user `root' is already a member of `docker'.
girder_1     | net.ipv4.conf.eth0.route_localnet = 1
girder_1     | Traceback (most recent call last):
girder_1     |   File "/opt/digital_slide_archive/devops/dsa/provision.py", line 18, in <module>
girder_1     |     from girder_large_image.models.image_item import ImageItem
girder_1     | ModuleNotFoundError: No module named 'girder_large_image'
girder_1     | The user `root' is already a member of `root'.
girder_1     | The user `root' is already a member of `docker'.
girder_1     | net.ipv4.conf.eth0.route_localnet = 1
girder_1     | Traceback (most recent call last):
girder_1     |   File "/opt/digital_slide_archive/devops/dsa/provision.py", line 18, in <module>
girder_1     |     from girder_large_image.models.image_item import ImageItem
girder_1     | ModuleNotFoundError: No module named 'girder_large_image'

... (more of the same)

I pulled the images instead of building them using docker-compose pull.

It's you're extra mount: - /opt/dsa-images:/opt/large_image.  /opt/large_image contains python modules including the girder_large_image module.  By mounting at that location, those modules are no longer available.  You'll either want to use a different mount point or make sure the appropriate files also exist in the local /opt/dsa-images directory.

Ah, that's my fault for reading the file incorrectly, I thought you were supposed to mount to that point. Didn't realize you'd be able to define the asset stores once in the app. I've got it up and running now. Thank you for your help!


Device update crash for

The following code causes crash on dev.update with pyvesync 1.0.11 installed via pip:
#!/usr/bin/env python

from pyvesync import VeSync
import time

dev = VeSync(ID, PASS)
dev.login()

while True:
  dev.update()
  for d in dev.fans:
    print(d.device_name, d.air_quality, d.fan_level)
  time.sleep(60)

with the following output:
Traceback (most recent call last):
  File "./pyvesync-test.py", line 10, in <module>
    dev.update()
  File "/usr/local/lib/python3.7/site-packages/pyvesync/vesync.py", line 245, in update
    outlets, switches, fans, bulbs = self.get_devices()
  File "/usr/local/lib/python3.7/site-packages/pyvesync/vesync.py", line 192, in get_devices
    device_list)
  File "/usr/local/lib/python3.7/site-packages/pyvesync/vesync.py", line 139, in process_devices
    logger.debug('Fans Updated - ' + dev)
TypeError: can only concatenate str (not "VeSyncAir131") to str

That is fixed that in the next release, it should have be logger.debug('Fans Updated - ' + str(dev))

Awesome


Xml enc c14# inclusivenamespace fixes

This is a more generic fix than https://github.com/yaronn/xml-crypto/pull/172 which had several issues in my opinion:

It hardcoded in SAML name spaces so didn't work with other XML types with similar issue
It returned true after the first valid digest was encountered so messages with multiple digests were not properly checked.
It seemed to check the digest 3 times which is a bit overkill.

This pull request refactors the code to make it more generic meaning it should fix the original issue (https://github.com/yaronn/xml-crypto/issues/72) but also https://github.com/yaronn/xml-crypto/issues/94, https://github.com/yaronn/xml-crypto/issues/145 and also https://github.com/yaronn/xml-crypto/issues/92. It would be good if all of those who raised this could confirm if this does fix their issues.
I also added a test case for this for a SOAP message from SOAP-UI which likes to use these extra namespaces (my original problem and why I started looking at this!).
There's a bit of refactoring in this and I didn't see why ancestors were only being calculated for non-exclusive canonicalization when this problem shows they are also needed for exclusive. Perhaps I have missed something here? All the test cases still pass (including the new one) with this fix but not sure how comprehensive they are so would be good to get others input on this.
Let me know your thoughts,
Barry

Hey @bazzadp , thanks for the PR. Apologies for not being able to review this in good time due to other commitments.
To answer your question - #163 was originally filed to address ancestors used in canonicalization, but caused issue #167 and was hence backed out. I'm hoping that what you have done has properly fixed this, and will review in good time!
If you wish, I can also give you publishing rights to this package so that there is at least one other person who can do so.

Hi @LoneRifle thanks for getting back.
Will have a more detailed look at https://github.com/yaronn/xml-crypto/pull/163 but from a (very brief!) look it seems to do a lot of the same thing, but does it in exclusive-canonicalization.js rather than where I've done it in signed-xml.js. To be honest it probably does more belong in with the canonicalization code, than signed-xml code, so maybe I should refactor the code before you accept it? Or if this works, do we go with it for now, and refactor later?
Do we understand why that previous commit failed and does a test case exist to confirm if my code has the same issue?
If you're looking for help to maintain this package then I can possibly give some time, but definitely not approving my own pull request as need a second pair of eyes on it :-)

I've not been able to look further into the problem, and unfortunately a test case that identifies the problem does not exist. Happy for you to refactor as you deem fit. I'll certainly look into the PR as a matter of responsibility, we shouldn't be approving our own PRs =)

@LoneRifle ok the good news is the https://github.com/yaronn/xml-crypto/pull/163 breaks the test suite for two tests:

My new test (valid_signature_with_unused_prefixes.xml)
"signer adds existing prefixes" - this was added with https://github.com/yaronn/xml-crypto/pull/171 so didn't exist when https://github.com/yaronn/xml-crypto/pull/163 was originally submitted.

My change passes the test suite, so that gives me greater confidence that my test hopefully won't have the same issue. However, without a test case for that it's difficult to be sure though. Have asked for help on https://github.com/yaronn/xml-crypto/issues/167 to reduce likelihood of issues.
I also looked at refactoring the code to move the actual setting of the top level namespaces to the canonicalization code but not sure it gains us much. Will keep digging though.

Cool. I think there is enough information in #167 to create a test case, which I would try to do this or next weekend, and then we'll see where we go from there.

@LoneRifle I've gone ahead with that refactor after all. It makes the changes a good bit smaller and cleaner.  And also means I don't need to change c14nOptions which caused the problems before. Will leave you to review when you get a chance.

Turns out there wasn't quite enough information to construct a test case that displays the behaviour that was reported #167 . Without people being forthcoming with a self-contained test case of our own, I would like to proceed with merging this PR once my review is addressed

Let me know if you want npm maintainer rights by replying with your npm login name. I'll publish this when next convenient.

To answer your question - #163 was originally filed to address ancestors used in canonicalization, but caused issue #167 and was hence backed out. I'm hoping that what you have done has properly fixed this, and will review in good time!

Just to follow up on this (I work with @gcharnock), #163 was raised because we see differing behaviour between xml-crypto and other libraries in relation to the specific signed SAML assertions we get from a third party. I've checked again with 1.4.0 and it definitely doesn't validate those assertions properly, even with this fix in. 1.0.2 works for us but obviously not for others. Right now we've forked the SAML libraries in use and pinned them to<EMAIL_ADDRESS>but that's not ideal.
Unfortunately I can't share one of those assertions here as a test case because the third party in question is sensitive about that, if there is any advice anyone can give me for generating a sample XML doc that shows the problem? I'd like to get these assertions in as a test case to illustrate the issue so that subsequent fixes can try to address both #163 without breaking the other documents.

Well this has since been merged and a test case has been added for my issue. So if you can fix it in the latest branch and it still passes the test cases then I’d be reasonably confident you shouldn’t break my usage and you can submit a pull request.
Of course without a test case you’re able to publicly share its difficult to help suggest a fix. Also even if you fix it and submit a pull request but don’t add a test case for your scenario, then no guarantee it won’t break in future.
If you look at the existing test cases, and coupled with what you know privately about your issue, then you might get some idea of how to create a test case?


drivers: pwm: Add Intel PCH blink PWM driver and sample app

Submitting this PR for review for new PWM driver for the IP found in multiple intel PCH hardwares.
This PR includes commits for
a) The driver code
b) dts node for pwm
c) a sample app ( there is no generic pwm driver sample app at the moment)
we can verify using "west build -b rpl_crb samples/drivers/pwm/"

@sknaduva Please rebase to fix the merge conflict and address review the comments.

Hi all,
A new PR has been created for the changes in this PR and all the requested changes are addressed in that.
Requesting you to please review the following PR: https://github.com/zephyrproject-rtos/zephyr/pull/59769


python310Packages.androidtv: 0.0.68 -> 0.0.69

Description of changes
Update to latest upstream release 0.0.69

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)
[ ] 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/)
22.11 Release Notes (or backporting 22.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 196246 run on x86_64-linux 1

3 packages built:

home-assistant-component-tests.androidtv
python310Packages.androidtv
python39Packages.androidtv


Possible memory leak

Hi,
I was running a simple test to see if I should be concerned with memory usage when using recursive calculations and I came across this weird memory usage.
I'm using V2.3.0 of this package.
Below is my full code for this test so you can try to reproduce:
This is the function called to run the test in the console
public static function testCalc() {

    $formulas = ['1+1', '2+2', '3+3', '4+4', '5+5'];

    $c = new CalculatorHelper2();

    echo "START | MEMORY USAGE: " . GeneralHelper::memoryUsage() . "\n\n";

    for ($i = 1; $i <= 500000; $i++) {
        foreach ($formulas as $formula) {

            $c->calc($formula);

            echo "MEMORY USAGE: " . GeneralHelper::memoryUsage() . "\n\n";

        }
    }

}

This is the Helper class I'm using to wrap the MathExecutor
namespace App\Helpers;

use Exception;

use NXP\MathExecutor;

class CalculatorHelper2
{
    private $executor;

    public function __construct() {

        $this->executor = new MathExecutor();
    }

    public function calc($formula) {
        try {

            return $this->executor->execute($formula, false);

        } catch(Exception $e) {

            echo "ERROR in formula...";

        }
    }

}

For additional context this is all the GeneralHelper::memoryUsage function is doing
static public function convertSizes($size) {
    $unit=array('b','kb','mb','gb','tb','pb');
    return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}

static public function memoryUsage() {
    return self::convertSizes(memory_get_usage(true));
}

In this video we can clearly see the memory usage increasing even though nothing is being saved in memory by creating or modifying any variables (for example adding the results from the calculations to an array)
https://user-images.githubusercontent.com/20666039/209993592-d2f2ce7c-38b3-496a-813d-bd44194d7f7e.mp4
Right when the script starts it seems like it's not increase the memory, however, just two seconds later the memory starts increasing pretty fast after every iteration.
Any idea what's happening here?

I don't see a memory leak. I simplified your code down to the basics (this always very important to do, as you want to make sure only very specific code is executed for an example of a problem).
$formulas = ['1+1', '2+2', '3+3', '4+4', '5+5'];

$executor = new \NXP\MathExecutor();

echo "START | Memory Usage: " . memory_get_usage(true) . "\n\n";

for ($i = 1; $i <= 500000; $i++) {
  foreach ($formulas as $formula) {
    $executor->execute($formula, false);
  }
}
echo "END | Memory Usage: " . memory_get_usage(true) . "\n\n";

Memory is the same at the start and end of the program.  I tested PHP 8.1.13 and PHP 8.2.0 under Windows.  They both had the same memory footprint:
START | Memory Usage: 2097152

END | Memory Usage: 2097152

Let me know if you can reproduce this and we can close this issue.
You might want to look elsewhere in your code.  If memory is an issue for you, try calling unset() in key places to see if that helps.

Thanks for you quick reply!
I've been able to track down the issue to the Laravel project we're using.

Thanks.  Makes sense.  Laravel is a pig.


doc(router): fix wildcard router config and documentation

Hi all,
I just tried to make wildcard routes to work, had a look at the documentation and saw that this route won't work:
{ route: 'files*path',       name: 'files',      moduleId: 'files/index',   href:'#files',   nav: true },

I've searched around and found this comment from @bryanrsmith:
https://github.com/aurelia/router/issues/297#issuecomment-188447021
I derived from that comment that the configuration mentioned above should rather look like this:
{ route: 'files/*path',       name: 'files',      moduleId: 'files/index',   href:'#files',   nav: true },

I've tried that in my app and it works.
This PR is my attempt to fix the router documentation.
If you'd rather like to adjust the router implementation to match the documentation, please feel free to close this PR. :smile:

I also ended up acting the same way as @Thanood - glad someone already sent the PR :)

@Thanood Good catch! We definitely need to get this fix into the docs. Would you mind updating to the master branch? It seems there are some conflicts with other fixes.

Sure, will do that.


Add thread input parameters where fine-control optimization needed

adammaikai:house_with_garden:  11:32 AM
can I propose that we add # of threads as a parameter
katie  11:33 AM
i’m fine with that. will it pass to all downstream tasks? or is there a way to customize it for each step?
...
adammaikai:house_with_garden:  11:34 AM
Well we can definitely customize.... If I just pass a threads parameter, I can change any tool that accepts parallelization to take it in

Sounds like a nice to have but can prioritize as more urgent if there is a concrete use case sooner.


Update TF Submodule and LLVM BUILD files.

Updates TF to HEAD and copies latest version of LLVM BUILD files.
./scripts/git/update_tf_llvm_submodules.py --llvm_commit=KEEP --update_build_files=true

Oh there were some changes to tablegen we'll need to pick up I think


[Bug]: check_can_use_docker_or_throw is not raising an exception if code is running in docker container

Describe the bug
If the code is running in docker container, check_can_use_docker_or_throw should raise an exception.
Steps to reproduce
Start VS Code from dev container and call check_can_use_docker_or_throw(True). It should raise an exception but it is not.
Expected Behavior
No response
Screenshots and logs
No response
Additional Information
No response

Hi @davorrunje, I am just checking if this bug report is still valid? Thanks!

@qingyun-wu not sure, I'll check it today

looks stale, can't reproduce.


data:text/html,

This is a very difficult issue to reproduce. Running protractor 5.4.1, and Chrome Version 71.0.3578.98 (Official Build) (64-bit).
When the tests are running (NOT in headless mode, they work fine in that mode), all of a sudden the test browser and the tests stop completely and the URL of the page in the browser is "data:text/html,". It just hangs at this point. If I press enter on the URL, everything proceeds as if there was never a problem and the tests pass! It happens at random points in the tests so I can't reproduce it.
The tests are running against a nodejs server. Any ideas?

I also encountered this issue. I can't reproduce it manually. I could only find the issue in my automation by video recording.

I wonder if this has something to do with the bootstrap process. This is important for AngularJS applications. Probably the async execute is not returning? Unfortunately, I do not have bandwidth to investigate this issue.

Maybe there is a XHR request still "pending" in the background? You can check that out by opening the Chrome Dev Tools -> Network Tab and see if there is a request marked as "pending" when you encounter the error. Note that you'll have to open the dev tools before the error shows up.

I am also seeing this issue using Angular 7 on windows with protractor. This is behavior for me. I seem to be getting similar problems in headless mode on unix too.

i got the same problem.
hangs sometimes on data:text/html,
chromedriver_2.46.exe
protractor 5.4.2

I have the same issue and I haven't been able to find a workaround for this.

Seeing the same issue on a nodejs server when testing with ChromeDriver 73.0.3683.68 and protractor 5.4.2.

We are running into this in an internal Google test.

Hi,
Do you try to get url below?
browser.get('https://www.google.com/');
Try this one;
browser.driver.get('https://www.google.com/')

Hi :
Yes it worked for me , currently i have cucumber set up

I read somewhere that protractor starts on that data:text/html,<html></html> page and that browser.get()/browser.ddriver.get() navigates away from that page.  My idea was to update my capabilities so that chrome would open up on my base url.
capabilities: {
  'browserName': 'chrome',
  'chromeOptions': {
    'args': ['--app=www.yourBaseUrl.com']
  }
}

Recently I have upgraded firefox to 78ESR and was facing the same issue.
My problem was protractor runs first spec properly but for next spec browser.get("url") it get stuck at data:text/html, throwing error for angular.
My solution that worked:
Add line browser.get("/")  before actual URL call.
Code should look like:
browser.get("/") browser.get("your page url")


Modify: Google.Chrome version 122.0.6261.70

Created by 🥟 Dumplings.
Microsoft Reviewers: Open in CodeFlow

Any reason the msi installertypes got removed?

Any reason the msi installertypes got removed?

There are only dynamics links available for the MSI installers and they get updated frequently, which means the manifests will become outdated when a new version is released and thus we have to update them in time and wait for them being merged, which usually takes 0~2 days. There is no such issue for the EXE installers which have static and versioned links and they could also work on the existing MSI installations properly according to my test. Is there any issue happening on your side?

Just inconsistent ProviderName in the output of Get-Package when using the exe, based on whether it is a clean install or update of the existing msi-based installation.
A: Clean install of exe --> Get-Package -Name "Google Chrome" returns the ProviderName "programs"
B: Have chrome installed by msi, update chrome with exe --> Get-Package -Name "Google Chrome" returns the ProviderName "msi"
A hickup in our winget-integration, which worked fine when the manifested contained the msi installertypes. We can make it work, as long as the manifest contain these exe's now and in the future.

Just inconsistent ProviderName in the output of Get-Package when using the exe, based on whether it is a clean install or update of the existing msi-based installation. A: Clean install of exe --> Get-Package -Name "Google Chrome" returns the ProviderName "programs" B: Have chrome installed by msi, update chrome with exe --> Get-Package -Name "Google Chrome" returns the ProviderName "msi"
A hickup in our winget-integration, which worked fine when the manifested contained the msi installertypes. We can make it work, as long as the manifest contain these exe's now and in the future.

This is intended. The EXE installer will update the MSI-based installation if existed, or create/update the EXE-based installation if not. Without this feature there will be two standalone installations which may cause some conflicts and issues in WinGet.

This commit caused me agony for weeks, I'm glad this has been moved to a separate exe version.
This URL installed only for the current user...I'll take an occasional hash-validation error over this install method.

This commit caused me agony for weeks, I'm glad this has been moved to a separate exe version. This URL installed only for the current user...I'll take an occasional hash-validation error over this install method.

It can be installed in machine scope though (by specifying --scope machine)... but anyway it has been moved to a separate package due to #147702.


add RasaRestPluginOptions and RasaRestPlugin to init.py

Thanks for your great issue to fix module importing issue. The last step: bump the version int VERSION file to trigger the deployment of package.

Thanks for your great issue to fix module importing issue. The last step: bump the version int VERSION file to trigger the deployment of package.

Done

Thank you very much for your contribution!
You are welcome to join Wechaty Contributor Program
1. Join Wechaty Organization

You've invited AIAmber to Wechaty! They'll be receiving an email shortly. They can also visit https://github.com/wechaty to accept the invitation.

I have invited you to join our Wechaty GitHub Organization, please accept it by following the above message. (See also: wechaty/PMC#16)
2. Update Your Wechaty Contributor Profile

Please open Contributor Hall of Fame and add yourself to the end of the list, so that other contributors will know you better!
Please add yourself to our Website Contributors by creating a PR and refer to this PR link as well.

3. Join The Contributor Only WeChat Room
We also have a WeChat room for contributors only which can discuss Wechaty at a deeper level, you are welcome to join and if you are interested.
Please add @lijiarui wechat: ruirui_0914 and send her this pr link. She will invite you into Wechaty Contributor Room
Cheers!


[1.8] Update "Run Applications" tasks to apps/v1beta2.

ref https://github.com/kubernetes/features/issues/353

This change is

/assign @kow3ns @foxish

/lgtm


Update accessibility.md

removed additional tag's close />

Sorry, I've signed up at https://code.facebook.com/cla

Thanks. Well spotted!


Linux installation problem with VirtualEnv

I'm using virtual-env to install tensorflow. I've successfully created a virtual-env and when trying to install tensorflow using pip, i'm getting this error.
Any suggestions ?? Thanks.
Unpacking /home/ayan/Desktop/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
  Running setup.py egg_info for package from file:///home/ayan/Desktop/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
    IOError: [Errno 2] No such file or directory: '/tmp/pip-ULRUTP-build/setup.py'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
  File "<string>", line 16, in <module>
IOError: [Errno 2] No such file or directory: '/tmp/pip-ULRUTP-build/setup.py'
----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/pip-ULRUTP-build
Storing complete log in /home/ayan/.pip/pip.log

Also happens on Mac: https://github.com/tensorflow/tensorflow/issues/46
Also reported on stackexchange: http://stackoverflow.com/questions/33623453/pip-installation-error-no-such-file-or-directory-setup-py
They claim that "with python 2.7.10, python-dev and pip 1.5.6, tensorflow will be successfully installed using the pip method."
What version of pip are you using (type "pip --version")

My pip is up-to-date ("pip --version" gives 7.1.2). But my python version is 2.7.4. Is that the problem ?

That's kind of odd, since I got it to work in Python 2.7.3. (And it fixed my version of the bug )
Were you still within the virtualenv? To be clear, the full command sequence would be:
# assuming we want to to be running virtualenv within ~/tensorflow
virtualenv --system-site-packages ~/tensorflow
cd ~/tensorflow
source bin/activate
# we are in the virtual environment, and ./bin is at the beginning of $PATH
pip install --upgrade pip
pip --version
# In the following use "/cpu/" or "/gpu" as desired
pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
# (we would continue with tensorflow setup/testing here)
# when done, we could exit the shell completely, or just leave virtualenv with this command:
deactivate
# Now the prompt and $PATH are back to normal

Its still the same after upgrading everything. Python is now 2.7.10, pip is 7.1.2.
VirtualEnv is still activated in shell. And the sequence is absolutely same as you showed.
After downloading the .whl file, I'm getting the same error.

Darn, I'm out of ideas. But I will edit my comment above to remove the suggestion that "this worked for me so it should work for you".

Did this issue get resolved? A lot of things have changed with 0.6.0.


INTERNAL_SERVICE_ERROR on demo site

Hi
I'm testing out on https://developer.paypal.com/demo/checkout/#/pattern/client and keep getting INTERNAL_SERVICE_ERROR error.
I've replaced sandbox and production client_id. Here's the full error:
debug_id: "54785d4862331"
information_link: "https://developer.paypal.com/docs/api/payments/#errors"
message: "An internal service error has occurred"
name: "INTERNAL_SERVICE_ERROR"
https://developer.paypal.com/demo/checkout/#/pattern/server is also having the same error: Internal Service Error, Internal Server Error
Could advise how to make this works? Thanks!

Looks like this was a temporary connection error on the sandbox site. Sorry for the inconvenience -- I think it should be resolved now. Can you please let me know if you still see the problem?

It's working now. Thanks!

Great!

Yes its still have issue, I'm using Sandbox and trying to capture payment to saved credit card token but its always shows "INTERNAL_SERVICE_ERROR" while cut the payment.


feat: support v6 uuids, closes #684

Adding support for RFC9562 UUIDs.  Adds the following APIs:

v6(options, [buf, [offset]])
Generate a new v6 uuid.  (Same method signature as v1())

v1ToV6(uuid)
Convert a v1 uuid to v6. (w/ optional randomization of node and clock_seq fields)

v6ToV1(uuid)
Convert a v6 uuid to v1.

[!NOTE]
v6() is just a thin wrapper around v1ToV6(v1(...)).  However this required some changes to v1() because RFC9562 specifies that v6 UUIDs SHOULD be reset to a pseudorandom value for each new UUIDv6 generated.

@ctavan can I trouble you for another review of this?  Once this and #759 are merged, I think we can roll the v10.0.0 release.


Terminal opens and closes instantly

Hello! I've tried using eve-ng-integration with urxvt. The problem I've met is that when I tried to connect to my switch, it didn't work. Command "eve-ng-integration telnet://<IP_ADDRESS>:30024" in my urxvt does nothing (urxvt just promptly appears and disappears on my screen). I tried to connect using PuTTY and it worked.
I don't know if this is a correct solution but:
I found the problem to be in the python file "eve-ng-integration/bin/eve-ng-integration" in the function "execute" in the Terminal class:
    def execute(self, command):
        if isinstance(command, (str)):
            command = command.split('\n') # here is the problem

        term = self._terminal_emulator_cmd()

        Popen(term + command)

When "command = command.split('\n')" is changed to "command = command.split(' ')", everything seems to work. The terminal window appears and I have the control of the switch.
I hope it gets fixed soon. Thank you in advance!

I tracked back the problem to commit fixing #8 issue. Reverting back seems to fix the problems of these issues too (at least on my machine). I needed to change _current_desktop to _is_command though. Maybe that was the problem


MapLibre GL JS v3 announcement

The code is ready and the docs are building, so it's time to get an announcement in place before we push the button. Currently the format of the post is an ordered changelog, compiling the information from all the pre-releases.

I would recommend creating a changelog of 3.0 in maplibre-gl changelog file and reference it here, not sure copying the changelog here is a good idea, maybe highlight the interesting features or some notes about improving performance and terrain bug fixes, IDK.

@HarelM , I tried to adjust it to follow your recommendation - how do you like it now?

@duje can you prepare a title image for this announcement?


🚧 Add dropdown menu to the super navigation header component

What

Adds the next stage of the super navigation header - the dropdown submenus.
This has two different behaviours depending on the screen size:

Small screens have a top level menu that toggles the navigation links and search. The navigation links act as an accordion, with further menus in each section. The search toggles the search form and the popular pages.
Larger screens display the navigation links, which toggle each navigation section, and the search, which (same as the small screen)  toggles the search form and the popular pages.

Only one dropdown menu can be open at a time - but part of the navigation menu acts a dropdown changes depending on the screen size.
If the navigation menu has multiple sections open and the screen resizes to larger than the desktop breakpoint then the last opened section will remain open.
Card: https://trello.com/c/hMyNKGBj
Why

The design for the new header navigation calls for dropdown menus, which weren't in the previous version of this component. This remedies that omission.
Visual Changes

Mobile view:
Unopened:

Navigation opened:

Topics opened:

Government activity opened:

Search opened:

Desktop:

Topics opened:

Government activity opened:

Search opened:

Visual discrepancies I found during review. I don't think these are captured elsewhere, sorry if I'm repeating work and/or if these are in fact intentional:
There's a gap on the left of the search button on no-js desktop

Tablet view looks a bit sus

When you hover over the search button whilst it opens you get this spooky overlap

@owenatgov The three visual discrepancies you've described have been fixed in https://github.com/alphagov/govuk_publishing_components/pull/2223/commits/670d150a8de91de8b85bdacf6534133d40fe770b and https://github.com/alphagov/govuk_publishing_components/pull/2223/commits/289a0ae3ad2e1b7be1e35164c2787a4ce1c169a6.

There's a gap on the left of the search button on no-js desktop
Tablet view looks a bit sus
When you hover over the search button whilst it opens you get this spooky overlap

Can you let me know if they're fixed for you?

Assistive tech testing
Tested on:

Keyboard only tabbing
Screen readers (VoiceOver, NVDA and JAWS)
High contrast mode (care your eyes extension and windows high contrast mode)
Screen magnification (windows screen magnifier)
No CSS
No JS
Assetless (CSS AND JS turned off)

There are only 2 things from the above to note:

On screen readers, when navigating to the search section, the user is presented with a hidden h3 that reads "Search" and then immediately after another h3 that reads "Search GOV.UK". This can be confusing for the user as they are presented with a heading that doesn't have any associated content before the following heading. This was most prominent on JAWS which skipped over declarations of things like the user entering a form or a group with no gap between the heading dictations and likely because of JAWS's uncanny cadence.
On screen magnification, at levels beyond 200% the new navigation buttons start to become obscured to the user. This is problematic as, depending on the user's magnification needs, they could miss the menu buttons. See table below:

Zoom level
Screenshot

300%

400%

I view these as problematic but not critical necessarily. Point 1 feels low impact to me and I can't find WCAG criteria that specifically covers screen magnification in this context. Probably something to discuss.

@injms The visual discrepancies listed have indeed been sorted 👍

@owenatgov As we found out, all of these seem to because the browser's default font size was increased. I've tried to make this work better when that happens.

The menu button escapes the black bar a bit on mobile

This should be fixed now - can you give it a check and see if that's correct?

There's a point when the desktop breakpoint first drops in where the buttons on the right jump onto a new line.

I think that this is okay for now, as it shouldn't break access to the menu. Further investigation needed.

This has been fixed in https://github.com/alphagov/govuk_publishing_components/pull/2223/commits/03714d570e3d94fc017c16f64cef74049a902a1f - the dropdown no longer overlaps when the header is on two rows.

Safari
The menu button seems to appear and disappear indiscriminately when screen size changes
https://user-images.githubusercontent.com/64783893/128173716-0ba17dcf-f8d3-4ede-8b77-3ee0fc26ac30.mov

This was an annoying bug that was down to me not setting the breakpoint correctly in the JavaScript - fixed in https://github.com/alphagov/govuk_publishing_components/pull/2223/commits/334b7459af79ca8ba71884671095d56c669cfd4b.

IE11
Menu button not available on mobile. I'm not attaching a screenshot here as the behaviour is the same as safari except the menu button never appears and I also don't think this is a problem as IE11 has zero mobile users based on the latest analytics. Capturing anyway for brevity.

Good catch - and Windows has the 'snap' thing where you can shove a window to the side of the screen and it'll resize itself to probably under the desktop breakpoint.
This was because IE11 does support matchMedia, but not with the onchange event - boo. I've added a try/catch to give IE11 a fallback in https://github.com/alphagov/govuk_publishing_components/pull/2223/commits/0ac6b7221c61e483760b98d067f6696e75bb1cf3

Assistive tech testing coming up this aft.

@owenatgov thanks for looking at this in such detail.

There are only 2 things from the above to note:

On screen readers, when navigating to the search section, the user is presented with a hidden h3 that reads "Search" and then immediately after another h3 that reads "Search GOV.UK". This can be confusing for the user as they are presented with a heading that doesn't have any associated content before the following heading. This was most prominent on JAWS which skipped over declarations of things like the user entering a form or a group with no gap between the heading dictations and likely because of JAWS's uncanny cadence.

I've sorted out the confusing heading order in https://github.com/alphagov/govuk_publishing_components/pull/2223/commits/40c0d060ac54f42cb3f455e88ea6bd04d2ca32cd - this removes the h3 inside the search label.

On screen magnification, at levels beyond 200% the new navigation buttons start to become obscured to the user. This is problematic as, depending on the user's magnification needs, they could miss the menu buttons...

I think that this is okay as this style of magnification (similar to the pinch-to-zoom magnification) means that people can still move the viewport around the page to discover the menu. There are a few pages on GOV.UK that have the search in the top right, so we're following an existing pattern which should help those familiar with the page layout; and having the search in the top right opposite the logo wasn't a problem that was picked up in the audit. This is something that I'd really like to see further user testing with though to ensure we're not following a bad pattern.

Browser testing and assistive tech testing has been addressed 🎉
There are just a few more comments to address and then the commit history needs a tidy, then I feel confident that this is ready to go!

@owenatgov I think I've addressed all of the comments you've made; and the commits have been tidied up, so hopefully this is good to go?

This is only a future reference comment and a bit of a nitpick, but the first commit that includes the 70+ translation files I would have approached slightly differently. I would have perhaps just included the en.yml in that commit, to ensure everything works as expected, and then all the other translations in subsequent commit. Scrolling past the translation files (that don't always load immediately in GH) to check if there's anything to review (the spec is the last file) is a lot of noise for a reviewer. Not a big deal, just a tip really. Otherwise, ✨ GREAT WORK @injms ✨

Just rebased the CHANGELOG to fix conflict.


Adding solution for Harkerrank Day 29: Bitwisw AND problem

Adding solution for Harkerrank Day 29: Bitwisw AND problem in python

@DipanjanDasIT  Please change the name of the folder so that there are no invalid characters (eg: colon)
Having invalid file formats will cause error when cloning locally.


limit on retries

[Enter feedback here]
""
Hello team,
I'm azure Big data support engineer, we engaged databricks backup team who confirmed that there is a hardcoded limit in the number of retries for a job can you consider changing the documentation accordingly to that please?
The documentation implies that there are no limits in terms of replies while there is a limit.
https://learn.microsoft.com/en-us/azure/databricks/workflows/jobs/schedule-jobs#--how-are-failures-handled-for-continuous-jobs
"For each subsequent job run failure, the retry period is increased again, up to a maximum retry period set by the system. After reaching the maximum retry period, the job continues to be retried using the maximum retry period. There is no limit on the number of retries."
this is the response from the databricks team:
"There seems to be a current hard-limit of 5.000 for retried job / tasks for a given job for which the limitation cannot be increased"
""
Let me know if you have any questions.
Thank you,
Michal

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

ID: df9b0989-9aa3-7bf1-0773-5b1373d64151
Version Independent ID: df9b0989-9aa3-7bf1-0773-5b1373d64151
Content: Run jobs on a schedule or continuously - Azure Databricks
Content Source: databricks/workflows/jobs/schedule-jobs.md
Service: azure-databricks
GitHub Login: @mssaperla
Microsoft Alias: saperla

@MichalSzopinski00
Thanks for your feedback! We will investigate and update as appropriate.

@MichalSzopinski00
Thank you for bringing this to our attention.
I've delegated this to content author @mssaperla, who will review it and offer their insightful opinions.

Thanks for providing feedback that helps improve our documentation. We've created an internal work item (DOC-11119) to address your feedback. The timeline for resolution varies based on resourcing.
#please-close


[SUGGESTION/BUG] literal strings in types not supported and @alias type being ignored (and other diagnostics related)

EDIT: Not reall a bug, but it is anoying when adding compatability with multiple lua versions.

Simply adding a variable anywhere with unpack = nil will remove the diagnostic for all files (excluding when the files does not get loaded by LSP server).
Also adding it as a global in .vscode/settings.json -> Lua.diagnostics.globals will also remove the diagnostic.
but still.

The image says more than words.
can't use literal strings in types...

Another bug, variable testVar does not get autocompletion or alike but testVar does as expected.
---@alias test string

---@type test
local testVar

---@type string
local strVar

this is a bug with @alias and i found this while attempting to auto-complete after use of pairs().

I don't know what's wrong.
I will test the syntax of EmmyType later. If it is correctly, I will try to support it later.

i just now updated with another bug.

with 1. its a really minor bug, if that a bug but it is anoying to need to put it in settings.json
and as i stated its kinda a special case so.

Until I have time to refactor, this feature may not be supported.

Yes, you should mark it as 'defined global`, due to it does not exist in Lua 5.3 .

It is a correctly Emmy syntax, but it is not easy to be supported for now.  I will support this during refactory.

Ok thank you.
and i know your english is not great and it was easily understandable but as a note this is how i'd write it.
It is correct Emmy syntax, but it is not easy to support for now. I will support this during refactoring.

Have problems with EmmyLua annotation. Notify window is lying but autocomplete is fine. And sometimes i'm getting messages in "Problems" about wrong function input based on wrong class recognizing.

Should be all fixed. If not, please open a new issue.


A little logic issue?

First here to say, good job, bro. this is what we were considering months ago.
I've played this for a well, and found a little bug maybe, if it is not intended.
It lies in update.js:

According to this logger:
[05/08/2015:10:25:06:394:log:14772]  after push deps are: { context:
{ name: 'electron-updater-play-1',
version: '1.1.0',
publisher: 'electron-updater-play-1',
channel: 'latest',
dev: true,
updatePending: false,
updateInProgress: true,
registry: 'https://registry.npmjs.org',
appDir: 'f:\EolderInUse',
dependencies: { 'electron-updater': '^0.0.x', 'electron-plugins': '^0.0.x' },
plugins: { 'electron-updater-sample-plugin': '^0.0.2' } },
dev is set to true. So it cannot pass the if logic highlighted in the picture above.
What I guess is that you might submit a dev version by mistake.

I would be interested in hearing more about your scenario and what you expect to happen here.
What it's doing here, is to set dev=true if it detects a .git folder in the same repo as the app. Then if you attempt to update the app, it will not update the app itself. The idea is that in a "dev" environment you would use git and npm to update your app.
For example, you clone an app then run elup update. What it would do would be to replace your local code with whatever is latest in npm. This probably isn't want you're wanting, so it skips updating the app and dependencies. It will still, however, update plugins unless they're linked.
Simply checking for a .git folder to detect dev mode is pretty naieve though, I would be interested in hearing your opinion on how to detect that better.

Sounds good, thank you for your quick reply, XD
I guess I misuse your code, my bad.
I just cloned this repo, created a new file, then published it onto npm.
Then try to update an older version to the latest. Surely there is a .git  folder.
But yeah, we won't put a .git folder in our published app.
Will keep watching this repo,  XD

Here is an example electron app you can run:
https://github.com/evolvelabs/electron-updater-sample
If you deploy it via gulp then run the deployed app you'll see the full update happen.

Electron-updater-sample is what I was playing. able to update js files in the folder after I commented that dev logic. Will try to deploy first next step. Thank you for the info~


Serializing to tests

Add serializer to BasicTest (without assertion) and MethodTest (with assertion)
Depends on expectedResult

Pull Request Test Coverage Report for Build 405686251

0 of 156 (0.0%)  changed or added relevant lines in 30 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.9%) to 66.87%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

packages/Babylonian-Core.package/BPExampleToTest.class/instance/example..st
0
4
0.0%

packages/Babylonian-Core.package/BPExampleToTest.class/instance/example.st
0
4
0.0%

packages/Babylonian-Core.package/BPExampleToTest.class/instance/serializedClassCategory.st
0
4
0.0%

packages/Babylonian-Core.package/BPExampleToTest.class/instance/serializedClassName.st
0
4
0.0%

packages/Babylonian-Core.package/BPExampleToTest.class/instance/serializedMethodCategory.st
0
4
0.0%

packages/Babylonian-Core.package/BPExampleToTest.class/instance/serializedMethodName.st
0
4
0.0%

packages/Babylonian-Core.package/BPExampleToTest.class/instance/serializedMethodParameters.st
0
4
0.0%

packages/Babylonian-Core.package/BPExampleToTest.class/instance/serializedReceiverConstructor.st
0
4
0.0%

packages/Babylonian-Core.package/BPExampleToTest.class/instance/serializedTestName.st
0
4
0.0%

packages/Babylonian-Core.package/BPExampleToTestTest.class/instance/testCombineMethod.st
0
4
0.0%

Totals

Change from base Build 400657929:
-1.9%

Covered Lines:
3728

Relevant Lines:
5575

💛  - Coveralls

Following tasks have to be done to finish this pr:

[ ] #17
[ ] #18
[ ] #19
[ ] #20
[ ] Refactor to follow coding guidlines
[ ] Move tests so they are executable by test runner

classes in core-serializing-tests still no testcases


newline screws up parsing

> (+) 1 1

parses diff from
> (+) 1 1

appears to have been resolved


Go to implementation

Probably my biggest nitpick right now is that in React development, 90% of the time I actually want to navigate to a certain implementation code-point, instead of the interface definition.
It's correct that goto-definition should always go to an interface file if existent, so it would probably make a lot of sense to add a goto-implementation command that jumps to the implementation location instead.
LSP Spec: https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/#textDocument_implementation
Having both commands would help greatly navigating React codebases with heavy interface file usage.

Technically, there's no issue implementing the feature.
Also, notice: the implementation is two hops away today: jump to interface then jump to implementation.
The philosophical question though: if you're not reading the interface files, why have them in the first place?

The philosophical question though: if you're not reading the interface files, why have them in the first place?

In a React app, mostly for two reasons:

Hide exports that are not supposed to be exported (e.g. to satisfy fast-refresh conventions)
For compilation performance

If ReScript would have proper semantics for private / public scope, I wouldn't be using interface files I think.

The philosophical question though: if you're not reading the interface files, why have them in the first place?

In a React app, mostly for two reasons:

Hide exports that are not supposed to be exported (e.g. to satisfy fast-refresh conventions)
For compilation performance

If ReScript would have proper semantics for private / public scope that allow optimized build times, I wouldn't be using interface files I think.

That's what I thought. Shows indirectly a need for reaching the same effect with different mechanisms.

As a side note, It might be good to document behavior of each of these requests in ReScript.

I second that. Almost never I want to jump to the interface definition, because I can hover for the type anyway.
Most often I want to look up (or change) the implementation, so personally I would prefer to jump to the .res directly.

See https://github.com/rescript-lang/rescript-vscode/pull/278 where direct jump to implementation is tested.

This is the current flow being considered for the jump-to-definition behaviour:
// Foo.res
let x = 10
//  ^ when clicked, jump to Foo.resi

// Foo.resi
let x : int
//  ^ when clicked, jump to Foo.res

// User.res
Foo.x
//  ^ when clicked, jump to Foo.res

In master.


Authelia and traefik

Hi,
Trying to setup authelia and traefik together and I've checked all previous issue to end with a configuration with the redirect param.
But when I do : https://auth.mytld/api/verify?redirect=https://auth.mytld
It's just returning a 401 :
curl -vvv "authelia.auth.svc:8080/api/verify?redirect=https://auth.domain.tld"
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to authelia.auth.svc (<IP_ADDRESS>) port 8080 (#0)
> GET /api/verify?redirect=https://auth.domain.tld HTTP/1.1
> Host: authelia.auth.svc:8080
> User-Agent: curl/7.57.0
> Accept: */*
>
< HTTP/1.1 401 Unauthorized

Do I need to put something special in authelia config ?
Thanks.

Hello @tcheronneau , this is a duplicate of #88. Please post in this thread instead. Thank you.

Also, I've never seen Traefik work with Authelia so far so please be more precise on the question(s) so that we can help you out more easily.

You’re saying in #88 that you solved from your side by adding the ?redirect=login.domain.tld but I tried directly in authelio with the redirect I get a 301 and no redirect (cf my curl).
So how did you get the redirect working ?
Thanks.

But I’ve managed to « make it works » if I put the url to auth.domain.tld/loggedin you at least manage to validate the user is connected but not to check an acl unfortunatly.

let's move to the open thread please.


Page sitemap

To create a page that links to all the Student Experience pages
FRONTEND (Gatsby):

sitempage-page.js - template page that filters the list of pages using a value passed in from gatsby-node.js
gatsby-node.js - added function that creates the listing page using specific values for student experience

BACKEND (Drupal): live

no changes

TESTING:
The page https://ugconthub-pagesitemap.gtsb.io/sitemap-se , should display all pages that have an alias that includes the keyword "studentexperience"

What order is this list in? last modified (reverse order)? Should there be an option to have it in alphabetical order?


Create Dev Drive needs to inform user that it is doing a VHDX

Dev Home version
0.701.311.0
Windows build number
No response
Other software
No response
Steps to reproduce the bug
No where does dev drive here is creating a virtual HD / there is alternative to doing a a bare metal drive with better perf

Expected result
better text
Actual result
incomplete information to end user
Included System Information
No response
Included Extensions Information
No response

@btueffers - please clarify the wording

proposed:
src\tools\SetupFlow\DevHome.SetupFlow\Strings\en-us\Resources.resw
DevDriveWindowOnlyOneDevDriveAllowedHeader.Text
"A Dev Drive optimizes performance for development. You can create only one in Dev Home and it will be a VHDX."
DevDriveWindowLaunchSettingsDisksAndVolumesHeader.Text
"For advanced settings such as creating a native volume, open the settings app"


Enable to import interfaces from d.ts

Hi guys thank you for your good OSS. I want to join it !
I want to use LocalizedStringsFactory from LocalizedStrings.d.ts but I can not use it.
According to jQuery, JQuery (large J not j) is defined as interface out of the declare module "jquery" { ... } so that we can use it like var jquery: JQuery
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/jquery/index.d.ts#L1402
Because I'm a newbie of typescript, I'm not sure my PR is correct.
If I'm wrong plz tell me m(_ _)m

Why do you want to do this, what's wrong with the current definition?
Thanks

@stefalda No response for couple months so I think this can be closed and @her0e1c1 can notify if he wants it reopened?

@henrikra sorry yeah I had some mistooks sorry for this PR


renaming damping into mixing_weight

With this update we rename damping to mixing_weight and throw an exception if damping is used.

Codecov Report
Attention: Patch coverage is 84.21053% with 6 lines in your changes missing coverage. Please review.

Project coverage is 96.09%. Comparing base (a28ea78) to head (4300696).

Files
Patch %
Lines

src/green/sc/mixing.h
78.57%
6 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #5      +/-   ##
==========================================
- Coverage   96.98%   96.09%   -0.89%
==========================================
  Files          10       10
  Lines         630      641      +11
==========================================
+ Hits          611      616       +5
- Misses         19       25       +6

Flag
Coverage Δ

unittests
96.09% <84.21%> (-0.89%)
:arrow_down:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


WIP: Add heatmap as test of submission process

Checklist for submission:

Is there a report that shows the viz working? Yes
Does the viz work? Yes
Is the code there? Yes
Is there a README that describes the viz/intent/how to use it? Yes
Are all fields of the manifest filled out and reasonable? Yes
Is there some sort of build/deploy script so that changes and management can be made programmatically if needed? Yes

If we want to test out the submission process, could you separate this out into two PRs. The general repo updates & the heatmap submission? It's hard to review just the heatmap submission, and I think we'll want to link to this eventually as a "This is what your PR should look like".

TIL about force updates after a rebase. I thought pushing to the branch would fix everything. This looks better.


prevent padding to drop to 0 on large screen on audio detail view

Fixes

Fixes #1478 by @obulat
Description

Testing Instructions

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added or updated tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

As a solution, I have removed the rule to set padding to 0 on lg screen.
In the description it mentioned to add behaviour like on the image site, but on image site padding is always 4rem, if I apply padding to 4rem on the  lg then it creates a very nasty jump from 4rem at 1024px to 1rem at 1023px and smaller.
if we want same padding than in the images site we should set px-16 (4rem) as on the image site.

Hi, is there anything I can do for the failing checks?


flags != OP1_CLASS;

In srm_oparray.c line 636,
flags != OP1_CLASS;
This is a comparison sentence. It is useless here.  Is it a mistake for flags |= OP1_CLASS; ?

@derickr     Do you have time to confirm this issue? Thanks.

Duplicate of #63, and also incorrect, as the line this is on is 598.

Thanks for the confirmation.


Convert torture tests to unit tests

Blocked by #589
To test functionality of instruction, we use SPIM torture tests (TT). That is not very convinient, as we have to build Binutils and traces in addition to unit tests. The idea is to convert the TT test cases into unit test cases.
Example:
	li $2, 1
	li $4, 0
	sllv $3, $2, $4
	bne $3, 1, fail

becomes
TEST_CASE("sllv")
{
    MIPSInstr<MIPS32> instr( "sllv"); // You need #589 to do that
    instr.set_v_src1( 1);
    instr.set_v_src2( 0);
    instr.execute();
    CHECK( instr.get_v_dst(), 1);
}

There are about 120 instructions supported by MIPT-MIPS so far.
Let's assume that adding tests for 17 instructions is a 1 point, so adding tests to 119 instructions is 7 points. You are not obliged to get all the 7 points at once, you may make 1 point and stop, then continue later or pass the task to another project participant.

Just to clarify: torture tests are located here: https://github.com/MIPT-ILab/mips-traces/blob/master/tt.core.universal.s

@pooh64 What's the progress with that?

@pavelkryukov Now I'm learning mips assembler, I haven't written new tests yet.

Implemented, but not tested instructions:
beql
bgez
bgezal
bgezall
bgezl
bgtz
bgtzl
blez
blezl
bltz
bltzal
bltzall
bltzl
bnel
dadd
daddi
daddiu
daddu
ddiv
ddivu
div
divu
dmult
dmultu
dsll
dsll32
dsra
dsra32
dsrl
dsrl32
dsub
dsubu
lb
lbu
ld
ldl
ldr
lh
lhu
ll
lui
lw
lwl
lwr
lwu
madd
maddu
msub
msubu
sb
sc
sd
sdl
sdr
sh
slt
slti
sub
subu
sw
swl
swr
xori

@pavelkryukov Can I write to the HI and LO registers that are used as destination registers in instruction madd (for example)? As I can see I can write only one destination register by using instr.set_v_dst() function.

instr.set_v_dst() sets destination value, not the register name. You do not need that method as you have destination value generated by execute().
In fact, madd is a tricky instruction, as it does multiplication on ALU and summation in RF, so basically you have to test it with the same test set as mult, checking that accumulation flag (I don't recall the name at the moment, but you can quickly look it up in RF code) is 1.

For loads and stores, you may create a FuncMemory instance:
TEST_CASE( /* */ )
{
    auto func_memory = FuncMemory::create_plain_memory( 10); // Creates a 10 bit address
// ...
    func_memory->load( instr); // Loads value to register
}

@DavidRabbitson Do you intend to proceed?

@pavelkryukov I've done pretty much work on MIPT subjects during this long peroid of time. Unfortunately, I haven't done much on MIPS simulator (my apologies) but I've learnt a lot of new theoretical stuff about logics and uArchitechture apart from lectures. Now I have a free week from my studies due to my illness so I hope I'll proceed on this task.

Please report that you are not going to finish task due to external circumstances as early as you are aware of it.
I expected that to be completed in months, so we can proceed with implementation of RISC-V and big-endian MIPS. If I'd knew there was no much progress with that, I'd complete it myself.

Ok, got that. Hope this situation won't happen anymore.
Can I send my first pack of tests for some instructions this evening?

Sure, thanks.

@pavelkryukov I have mess with commits. Can I delete my forked repository and do all commits in a correct way?

Do not worry, I usually squash all commits to a new commit. You may open a pull request as is.

@pavelkryukov Why do instructions msub and msubu pass all mult tests? If I understand correctly, results should be multiplied by (-1) because for example msub rs, rt algorithm looks like this:
(HI, LO) <- (HI, LO) - (GRP[rs] x GPR[rt]).

Subtraction (and addition in case of madd) happens inside register file, both in HW and our simulation.
If generic ALU did that operation, it would read 4 registers: HI, LO, rs and rt. Instead, MIPS architects put an additional ALU inside RF over the HI/LO registers.
The motivation for these instruction was to simplify operations like matrix multiplication, where each cell is calculated like (a1 * b1 + a2 * b2 + ... ). However, it complicates hardware (for data bypass, you still have to track 4 registers), and RISC-V ISA does not intent to use similar instruction.

@pavelkryukov DADD seems to be 64 bit instruction due to its description, but it is checked as MIPS32Instr in disassembly test block.
https://github.com/MIPT-ILab/mipt-mips/blob/76c7fdc5c7e75a78b22d3a363d0ee217cf3581a6/simulator/mips/t/unit_test.cpp#L91
Why? Should I test it as MIPS64Instr?

Why?

It does not make any harm that MIPS64 instruction is disassembled even in MIPS32 mode; but if such instruction is executed, it would raise a trap.

Should I test it as MIPS64Instr?

I think yes.

@pavelkryukov Should I put trap check in every first test case of 64 bit instruction or I can do it like here?
https://github.com/MIPT-ILab/mipt-mips/blob/7f76610f1e38620027a650b75ced2609c7364502/simulator/mips/t/unit_test.cpp#L52-L57

Should I put trap check in every first test case of 64 bit instruction or I can do it like here?

I suggest to wrap that check to a function:
static bool not_a_mips32_instruction( std::string_view name)
{
    MIPS32Instr instr( name);
    instr.execute();
    return instr.trap_type() == Trap::UNKNOWN_INSTRUCTION;
}

to have it in a single line:
TEST_CASE("dcloz")
{
    CHECK( not_a_mips32_instruction("dcloz") );
// ...
}

Also, please move all MIPS64 tests to a separate translation unit — the current file is already huge.

You mean create new unit test file? How should I call it to avoid conflicts with compilation?

I think mips32_test.cpp and mips64_test.cpp should be fine.

CHECK( not_a_mips32_instruction( "dadd")) = false
CHECK( not_a_mips32_instruction( "daddu")) = false
Looks like dadd and daddu are 32 bit instructions according to these checks. Is that ok?

Oops. that's a bug. Our decoder says they were available in MIPS I (but MIPS III actually).
Could you please fix it?
https://github.com/MIPT-ILab/mipt-mips/blob/7f76610f1e38620027a650b75ced2609c7364502/simulator/mips/mips_instr.cpp#L218-L219

I'll try.

Do I need to test Load_Store instructions in little endian and big endian both like lw?
https://github.com/MIPT-ILab/mipt-mips/blob/3f403a1c5a5185d3d83be64da646208a2e5c5018/simulator/mips/t/unit_test.cpp#L1061
https://github.com/MIPT-ILab/mipt-mips/blob/3f403a1c5a5185d3d83be64da646208a2e5c5018/simulator/mips/t/unit_test.cpp#L1076

Let's start with little-endian.
I consider big-endian tests as a separate issue (#413).

Ok. Is that ok for you that I ask so many questions?

That's far from "many".

Do I have to check exceptions in load_store instructions unit tests? How do I do that?

If instruction entered a trap, it has instr.trap_type() set to some value, so you need to do something like:
CHECK( instr.trap_type() == Trap::UNALIGNED_ADDRESS);

Also I see that every load_store instruction is running at both 32 bit and 64 bit systems. Do I need to test them in 64 bit as well?

There is some discrepancy between the behavior in 32 bit and 64 bit mode.
I do not remember what is the point, but I suspecte it is related to sign extension.
Could you please tell what is different in 32 bit and 64 bit tests?

I'm not sure if this is significant difference but in 32 bit MIPS sign extended value we get after lb (0xab should be loaded) is 0xffff'ffab and in 64 bit it is 0xffff'ffff'ffff'ffab just because GPR [rt] is 64 bit long.

Ok, I agree that difference may be ignored in unit tests. The issue was that MIPS code has to use different immediates.

Leaving 2 points as 2 points were committed to the score table.

@pavelkryukov ll instruction provides primitives to implement atomic Read-Modify-Write (RMW) operations for cached memory locations. How can I test this RMW part of this instruction? Or I can do ll tests similar to lh tests?

We do not have a data cache model so far, therefore it should behave like a simple load of the similar size.

ldr and ldl instructions gives the same result with same arguments. I think problem is located here:
https://github.com/MIPT-ILab/mipt-mips/blob/8a2335b7cc91c059fca891039aff12ffacf40169/simulator/mips/mips_instr.cpp#L76-L77
Do I need to fix this or this is ok?

If you are able to write manual on these instructions (#413), then you can implement them. But at the moment, we should just skip them, since they are not implemented.

How can I read memory created by this function?
https://github.com/MIPT-ILab/mipt-mips/blob/8bcc2a3c0a22a3dcd291c687de675ce8c9ba8493/simulator/mips/t/unit_test.cpp#L1065-L1070

auto m = get_plain_memory_with_data();
auto value = m->read<uint32, Endian::little>( address);

Can I write templates in unit_test.cpp?

Yes, but could you please share your intention? I don't feel there is a good idea...

@pavelkryukov Why do I get dst = 0xdeadbeef when I test bgezal -1? Shouldn't I get dst = PC + 8?

Looks like a bug — $ra should updated regardless of branch being taken or not taken.
Could you please fix it?

Does likely branches do the same thing in simulator?

Likely branches are not supported at the moment, so you may write tests but probably they won't pass. The general idea is that likely branches do not execute delay slot instruction.


Added ctx object to all system struct's constructors

The idea behind this commit is to set the stage for adding additional logging metadata.
Added logging support for command as an example.

Checklist

[ ] make test-all (UNIX) passes. CI will also test this
[ ] unit and/or integration tests are included (if applicable)
[ ] documentation is changed or added (if applicable)

Description of change

This is the simpler version of #836 it goes against the guidance here but it is a much simpler (and cleaner?) implementation.
Also, this approach didn't break any of the unit tests, like #836 did.

Seems a bit of work piled up, going to start merging it.. since it's internal to the app we can revisit/change in a future PR.


Update cats-effect, cats-effect-laws to 3.3.10 in series/0.x

Updates

org.typelevel:cats-effect
org.typelevel:cats-effect-laws

from 2.5.4 to 3.3.10.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Applied Scalafix Migrations

org.typelevel:{cats-effect,cats-effect-laws}:3.0.0

github:typelevel/cats-effect/v3_0_0?sha=v3.0.0

org.typelevel:{cats-effect,cats-effect-laws}:3.3.0 (created no change)

github:typelevel/cats-effect/v3_3_0?sha=series/3.x

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel" } ]

labels: library-update, early-semver-major, semver-spec-major, scalafix-migrations, commit-count:n:2

Superseded by #304.