Pytest-fixture for separate virtual environments for each integration test

Pre-requisites
Please ensure you have done the following:

[x] I have read the CONTRIBUTING.md document.
[x] If my change requires a change to the documentation, I have updated the documentation accordingly.
[x] I have added tests to cover my changes.

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Describe changes
Managed to get a preliminary working version of this ticket. Definitely needs to be fleshed out and made robust. Nonetheless, i think early feedback would help. It would also be good to see if it works for you.
To test, simply checkout the branch and run:
zenml integration uninstall -f
pytest tests/integration/test_examples.py
zenml integration list

Tests should pass, you should have no active integrations afterwards.

@AlexejPenner I went through the instructions, (prefixing them with poetry update and poetry install), but I get an ERROR for every single integration test. (They all run, but give similar errors):
__________________________________________________________________________ ERROR at setup of test_run_fetch_historical_runs __________________________________________________________________________

tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x15d528190>, _basetemp=PosixPath('/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8'))

    @pytest.fixture
    def virtualenv(tmp_path_factory):
        """Based on the underlying virtual environment a copy of the environment is
        made and used for the test that uses this fixture.

        Yields:
            Path to the virtual environment
        """
        # Remember the old executable
        orig_sys_executable = Path(sys.executable)

        # Create temporary venv
        tmp_path = tmp_path_factory.mktemp("tmp") / "venv"
        # TODO[High]: Implement for use outside of a base virtual environment
        #  If this happens outside of a virtual environment the complete
        #  /usr space is cloned
        clone_virtualenv(
            src_dir=str(orig_sys_executable.parent.parent), dst_dir=str(tmp_path)
        )

        env_bin_dir = "bin"
        if sys.platform == "win32":
            env_bin_dir = "Scripts"

        # Activate venv
        activate_this_file = tmp_path / env_bin_dir / "activate_this.py"
>       execfile(str(activate_this_file), dict(__file__=str(activate_this_file)))
E       FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8/tmp14/venv/bin/activate_this.py'

/Users/strickvl/coding/zenml/repos/zenml/tests/conftest.py:233: FileNotFoundError
--------------------------------------------------------------------------------------- Captured stdout setup ----------------------------------------------------------------------------------------
Registered stack component with name 'local_orchestrator'.
Registered stack component with name 'local_metadata_store'.
Registered stack component with name 'local_artifact_store'.
Registered stack with name 'local_stack'.
Cloning virtualenv '/Users/strickvl/.pyenv/versions/3.8.10/envs/zenml-dev-3.8.10' => '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8/tmp14/venv'...
Fixing scripts in bin...
Scanning for internal symlinks that point to the original virtual env.
_________________________________________________________________________________ ERROR at setup of test_run_mlflow __________________________________________________________________________________

tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x15d528190>, _basetemp=PosixPath('/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8'))

    @pytest.fixture
    def virtualenv(tmp_path_factory):
        """Based on the underlying virtual environment a copy of the environment is
        made and used for the test that uses this fixture.

        Yields:
            Path to the virtual environment
        """
        # Remember the old executable
        orig_sys_executable = Path(sys.executable)

        # Create temporary venv
        tmp_path = tmp_path_factory.mktemp("tmp") / "venv"
        # TODO[High]: Implement for use outside of a base virtual environment
        #  If this happens outside of a virtual environment the complete
        #  /usr space is cloned
        clone_virtualenv(
            src_dir=str(orig_sys_executable.parent.parent), dst_dir=str(tmp_path)
        )

        env_bin_dir = "bin"
        if sys.platform == "win32":
            env_bin_dir = "Scripts"

        # Activate venv
        activate_this_file = tmp_path / env_bin_dir / "activate_this.py"
>       execfile(str(activate_this_file), dict(__file__=str(activate_this_file)))
E       FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8/tmp16/venv/bin/activate_this.py'

/Users/strickvl/coding/zenml/repos/zenml/tests/conftest.py:233: FileNotFoundError
--------------------------------------------------------------------------------------- Captured stdout setup ----------------------------------------------------------------------------------------
Registered stack component with name 'local_orchestrator'.
Registered stack component with name 'local_metadata_store'.
Registered stack component with name 'local_artifact_store'.
Registered stack with name 'local_stack'.
Cloning virtualenv '/Users/strickvl/.pyenv/versions/3.8.10/envs/zenml-dev-3.8.10' => '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8/tmp16/venv'...
Fixing scripts in bin...
Scanning for internal symlinks that point to the original virtual env.
====================================================================================== short test summary info =======================================================================================
ERROR tests/integration/test_examples.py::test_run_caching - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/p...
ERROR tests/integration/test_examples.py::test_whylogs_profiling - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-stri...
ERROR tests/integration/test_examples.py::test_run_drift_detection - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-st...
ERROR tests/integration/test_examples.py::test_run_quickstart - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickv...
ERROR tests/integration/test_examples.py::test_run_not_so_quickstart - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-...
ERROR tests/integration/test_examples.py::test_run_custom_materializer - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-o...
ERROR tests/integration/test_examples.py::test_run_fetch_historical_runs - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest...
ERROR tests/integration/test_examples.py::test_run_mlflow - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/py...
=================================================================================== 8 errors in 131.94s (0:02:11) ====================================================================================
(zenml-dev-3.8.10) [~/coding/zenml/repos/zenml]$

@AlexejPenner I went through the instructions, (prefixing them with poetry update and poetry install), but I get an ERROR for every single integration test. (They all run, but give similar errors):
__________________________________________________________________________ ERROR at setup of test_run_fetch_historical_runs __________________________________________________________________________

tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x15d528190>, _basetemp=PosixPath('/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8'))

    @pytest.fixture
    def virtualenv(tmp_path_factory):
        """Based on the underlying virtual environment a copy of the environment is
        made and used for the test that uses this fixture.

        Yields:
            Path to the virtual environment
        """
        # Remember the old executable
        orig_sys_executable = Path(sys.executable)

        # Create temporary venv
        tmp_path = tmp_path_factory.mktemp("tmp") / "venv"
        # TODO[High]: Implement for use outside of a base virtual environment
        #  If this happens outside of a virtual environment the complete
        #  /usr space is cloned
        clone_virtualenv(
            src_dir=str(orig_sys_executable.parent.parent), dst_dir=str(tmp_path)
        )

        env_bin_dir = "bin"
        if sys.platform == "win32":
            env_bin_dir = "Scripts"

        # Activate venv
        activate_this_file = tmp_path / env_bin_dir / "activate_this.py"
>       execfile(str(activate_this_file), dict(__file__=str(activate_this_file)))
E       FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8/tmp14/venv/bin/activate_this.py'

/Users/strickvl/coding/zenml/repos/zenml/tests/conftest.py:233: FileNotFoundError
--------------------------------------------------------------------------------------- Captured stdout setup ----------------------------------------------------------------------------------------
Registered stack component with name 'local_orchestrator'.
Registered stack component with name 'local_metadata_store'.
Registered stack component with name 'local_artifact_store'.
Registered stack with name 'local_stack'.
Cloning virtualenv '/Users/strickvl/.pyenv/versions/3.8.10/envs/zenml-dev-3.8.10' => '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8/tmp14/venv'...
Fixing scripts in bin...
Scanning for internal symlinks that point to the original virtual env.
_________________________________________________________________________________ ERROR at setup of test_run_mlflow __________________________________________________________________________________

tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x15d528190>, _basetemp=PosixPath('/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8'))

    @pytest.fixture
    def virtualenv(tmp_path_factory):
        """Based on the underlying virtual environment a copy of the environment is
        made and used for the test that uses this fixture.

        Yields:
            Path to the virtual environment
        """
        # Remember the old executable
        orig_sys_executable = Path(sys.executable)

        # Create temporary venv
        tmp_path = tmp_path_factory.mktemp("tmp") / "venv"
        # TODO[High]: Implement for use outside of a base virtual environment
        #  If this happens outside of a virtual environment the complete
        #  /usr space is cloned
        clone_virtualenv(
            src_dir=str(orig_sys_executable.parent.parent), dst_dir=str(tmp_path)
        )

        env_bin_dir = "bin"
        if sys.platform == "win32":
            env_bin_dir = "Scripts"

        # Activate venv
        activate_this_file = tmp_path / env_bin_dir / "activate_this.py"
>       execfile(str(activate_this_file), dict(__file__=str(activate_this_file)))
E       FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8/tmp16/venv/bin/activate_this.py'

/Users/strickvl/coding/zenml/repos/zenml/tests/conftest.py:233: FileNotFoundError
--------------------------------------------------------------------------------------- Captured stdout setup ----------------------------------------------------------------------------------------
Registered stack component with name 'local_orchestrator'.
Registered stack component with name 'local_metadata_store'.
Registered stack component with name 'local_artifact_store'.
Registered stack with name 'local_stack'.
Cloning virtualenv '/Users/strickvl/.pyenv/versions/3.8.10/envs/zenml-dev-3.8.10' => '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/pytest-8/tmp16/venv'...
Fixing scripts in bin...
Scanning for internal symlinks that point to the original virtual env.
====================================================================================== short test summary info =======================================================================================
ERROR tests/integration/test_examples.py::test_run_caching - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/p...
ERROR tests/integration/test_examples.py::test_whylogs_profiling - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-stri...
ERROR tests/integration/test_examples.py::test_run_drift_detection - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-st...
ERROR tests/integration/test_examples.py::test_run_quickstart - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickv...
ERROR tests/integration/test_examples.py::test_run_not_so_quickstart - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-...
ERROR tests/integration/test_examples.py::test_run_custom_materializer - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-o...
ERROR tests/integration/test_examples.py::test_run_fetch_historical_runs - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest...
ERROR tests/integration/test_examples.py::test_run_mlflow - FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/49/7x17fsrn4knfk852z31cs_vm0000gn/T/pytest-of-strickvl/py...
=================================================================================== 8 errors in 131.94s (0:02:11) ====================================================================================
(zenml-dev-3.8.10) [~/coding/zenml/repos/zenml]$

Thanks for trying this Alex. Basically the code currently only works if your venv contains an activate-this.py file within the bin (Scripts for WIndows) directory of the virtualenvironment.
This means it works inside of virtual environments created with:
virtualenv ...
Pycharm UI
It won't work inside of virtual environments created with
pyenv
python -m venv ...
I am not sure about conda
Basically what you would need to do is this:
pip install virtualenv
virtualenv <env-name>
source <env-name>/bin/activate
# source <env-name>\Scripts\activate
poetry install

pytest tests/integration/test_examples.py
zenml integration list

In order to make this work. I will investigate how to create an activate-this.py dynamically for virtual environments without this file present.

LTKF!

@strickvl @schustmi @jwwwb - finally ready to be reviewed - the kubeflow pipeline integration tests will be fixed in a separate ticket.

Very nice. Looking forward to having this running in our CI system. Do we have a ticket in the backlog to address it only working for people using venv? I couldn't find one.

This is a TODO in the code, the ticket will be generated :)


Problem with building Prometheus in Windows environment.

Trying to build Prometheus using golang v 1.7
Issued following command:
C:\GoWorkspace\src\Prometheus>go build -o prometheus ./cmd/prometheus
Received exceptions along these lines:
cmd\prometheus\main.go:29:2: cannot find package "github.com/prometheus/prometheus/config" in any of:
C:\GoWorkspace\src\Prometheus\vendor\github.com\prometheus\prometheus\config (vendor tree)
C:\Go\src\github.com\prometheus\prometheus\config (from $GOROOT)
C:\GoWorkspace\src\github.com\prometheus\prometheus\config (from $GOPATH)
Environment
Windows environment. GOPATH is set (see below)
C:\GoWorkspace\src\Prometheus>SET go
GOPATH=C:\GoWorkspace
GOROOT=C:\Go\

Prometheus version:
Current master branch.

Hi there, you shouldclone the project as C:\GoWorkspace\src\github.com\prometheus\prometheus not C:\GoWorkspace\src\Prometheus.


support different types of computing hardware

Motivation
Currently, OpenPAI has supported the most widely used computing devices: Nvidia GPU, AMD GPU and CPU. In addition, it has the potential to support other types of device, e.g. AI computing chips (NPU).
Goal
Decouple OpenPAI services and specific hardware types. One OpenPAI service container can support a list of hardware types.
Requirements
For every type of computing device, the vendor should guarantee:

one machine should only have one type of computing device
driver and k8s device plugin are successfully deployed in each machine
devices work correctly with docker and k8s
compatible framework and docker images

MVP with default scheduler
By assuming that there is only one type of computing device in a cluster, we could build a minimal viable solution with the default scheduler by

configure ComputeDevice (default is nvidia.com/gpu) in deployment and record it in configmap
add option to turn off HivdD scheduler in quick start
bypass (or do other) pre-checks according to ComputeDevice in quick start
chage nvidia.com/gpu to ComputeDevice in rest server
change vc resource information when use default scheduler

https://github.com/microsoft/pai/blob/2fb370a59387f7df5e6cec9d30d194f3af19e2d9/src/rest-server/src/models/v2/job/k8s.js#L483-L487
Beside the necessary works, we (pai-dev team and device vendor) could make better support by

refactor and organize device-related codes in devices subfolders. The basic idea is to quick locate device related codes and isolate codes for different devices (e.g. different device vendors should avoid editing the same file).
If a component must support diverse types of computing device, there will be a devices folder in it. For PAI services, they should take these files into consideration in build time. And one container will support a list of different machine models. For other components like the deploy script, they should check these files in runtime.
provide monitoring tool like nvidia-smi and prometheus exporter
update webportal terms

Perfect support with HiveD
By enabling HiveD, we could get better support

allow multiple device types in a cluster
support virtual clusters
topology aware scheduling to guarantee sharing safety of DL scenario

Some extra efforts must be done to achieve this

offer a container runtime for every device type. Container runtime is a modified version of runc adding a custom pre-start hook to all containers. Here are two examples nvidia-container-runtime and runtime for AMD Radeon Open Compute
describe machines and devices in layout.yaml #5151
make sure HiveD config generation is independent of computing devices
add appropriate environment variables in rest-server when generate pod spec in addition to NVIDIA_VISIBLE_DEVICES and PAI_AMD_VISIBLE_DEVICES.

https://github.com/microsoft/pai/blob/2fb370a59387f7df5e6cec9d30d194f3af19e2d9/src/rest-server/src/models/v2/job/k8s.js#L656-L676
Some optional work items include

clarify and unify the machine sku description in layout.yaml and HiveD skus
make sku-(cpu,gpu,mem) converting simply, predictably and decoupled with devices #5148.
health report for computing device. This is not mandatory since node-level health check is provided by k8s already.

Detailed Work Items for this issue:

Installation

[ ] P0 add a flag to use default scheduler, and not enable hived scheduler
[ ] P0 Refactor the code structure to run prechecks / installation items of different hardwares

Add a computing_devices folder

Device Plugin

[ ] P0 Refactor the code structure to install different device plugins

Add a computing_devices folder

Rest-server

[ ] P0 read defaultComputingDeviceType from layout.yaml (Use nvidia.com/gpu if not found)

Should support it in https://github.com/microsoft/pai/blob/master/src/rest-server/src/models/v2/virtual-cluster/k8s.js , https://github.com/microsoft/pai/blob/master/src/rest-server/src/models/v2/utils/frameworkConverter.js , https://github.com/microsoft/pai/blob/d0aef5dc009794b4804027b4f21c78556024d2ec/src/rest-server/src/models/v2/job/k8s.js

[ ] P1 support config hivedComputingDeviceList in https://github.com/microsoft/pai/blob/d0aef5dc009794b4804027b4f21c78556024d2ec/src/rest-server/src/models/v2/job/k8s.js

[ ] P2 webportal
[ ] P2 refactor job_exporter, node_exporter, watchdog codes to support different hardwares

Test cases for rest-server:
1. Default Scheduler: Test the resource requirement is correctly specified in pod definition.

./paictl.py service stop -n hivedscheduler cluster-configuration rest-server
Modify services-configuration.yaml: disable hivedscheduler
Modify layout.yaml: set the cluster workers' computing device type to a.b.com/c e.g. :

machine-sku:
  master-machine: # define a machine sku
    # the resource requirements for all the machines of this sku
    # We use the same memory format as Kubernetes, e.g. Gi, Mi
    # Reference: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory
    mem: 60Gi
    cpu:
      # the number of CPU vcores
      vcore: 24
  gpu-machine:
    computing-device:
      type: a.b.com/c
      model: faked
      count: 4
    mem: 220Gi
    cpu:
      vcore: 24

machine-list:
  - hostname: pai-master # name of the machine, **do not** use upper case alphabet letters for hostname
    hostip: <IP_ADDRESS>
    machine-type: master-machine # only one master-machine supported
    pai-master: "true"
  - hostname: pai-worker1
    hostip: <IP_ADDRESS>
    machine-type: gpu-machine
    pai-worker: "true"
  - hostname: pai-worker2
    hostip: <IP_ADDRESS>
    machine-type: gpu-machine
    pai-worker: "true"
………………

push the modified config to k8s
./paictl.py service start -n hivedscheduler cluster-configuration rest-server
submit a job from webportal
expect there is a a.b.com/c resource request in the pod spec

2. Hived Scheduler: Test the environment varibales is set in pod spec.
-./paictl.py service stop -n hivedscheduler cluster-configuration rest-server

Modify services-configuration.yaml: enable hivedscheduler; set rest-server.hived-computing-device-envs to TEST,NVIDIA_VISIBLE_DEVICES,HIVED_VISIBLE_DEVICES
Modify layout.yaml: set the cluster workers' computing device type back to nvidia.com/gpu
push the modified config to k8s
./paictl.py service start -n hivedscheduler cluster-configuration rest-server
submit a job from webportal
In the pod, expect environment variable TEST is set to something like 0,1,.....


when my content have e.x  so content not supported it.

Describe the bug
if my content have div tag or other tag html and I can adding in editor so not support and show nothing
Reproduction
if my content have div tag or other tag html and I can adding in editor so not support and show nothing
System Info
node 20
vue3

Used Package Manager
npm
Validations

[X] Read the the documentation in detail.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

issue for support all tag in html


[DRAFT] Always wait for iptables-legacy lock, even if using sandboxing. Also, rename var.

Please provide a description of this PR:
Related to https://github.com/istio/istio/issues/54050 but I want to do some more testing to see if I can reproduce that reliably first.
Basically:

Always run iptables-legacy with a waitlock, even if we are using the sandboxed lockfile

In the sandboxed lock mode we have, we use the netns file as the lockfile, and assume we don't have to wait for it to be unlocked. This mostly works pretty well, but a netns is just a file like any other and we can't assume no other process on the node has locked the netns for some reason - so reintroduce the wait arg for that case too. This shouldn't trigger any delays since we will only wait if we can't grab the sandboxed lockfile for that pod as a first thing.
Rename the iptables-legacy sandboxing variable to be a bit more clear about when it needs to be used.

It is never required for ambient, as for ambient we are always using the binaries inside the istio-cni container, and always using a lockfile inside that container - we don't use host binaries or lockfiles, so we would only ever be contending with ourself.
As https://github.com/istio/istio/pull/51777 mentioned, it does improve pod add performance in ambient, so added an env option to disable it if needed, but default that to true.

@bleggett: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
66b8712e2fcde35931340cfc23e6e475c974daa2
link
true
/test gencheck

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@bleggett: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
66b8712e2fcde35931340cfc23e6e475c974daa2
link
true
/test gencheck

lint_istio
66b8712e2fcde35931340cfc23e6e475c974daa2
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

I vaguely recall some issue around --wait even when there is no contention. Let me see if I can dig it up (I may just be hallucinating it...)

I vaguely recall some issue around --wait even when there is no contention. Let me see if I can dig it up (I may just be hallucinating it...)

NVM I think its the opposite, that some cases even without --wait it still waits (https://lists.netfilter.org/pipermail/netfilter-buglog/2023-December/005671.html)

I vaguely recall some issue around --wait even when there is no contention. Let me see if I can dig it up (I may just be hallucinating it...)

Yeah I would expect even with the interval bug it would at least opportunistically try for the lock at least once before waiting.

@bleggett: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
66b8712e2fcde35931340cfc23e6e475c974daa2
link
true
/test gencheck

lint_istio
2289c67f4b48d2584aff83dd0c1087769eafed0a
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@bleggett: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
2289c67f4b48d2584aff83dd0c1087769eafed0a
link
true
/test lint

integ-ambient_istio
2289c67f4b48d2584aff83dd0c1087769eafed0a
link
true
/test integ-ambient

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@bleggett: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-ambient_istio
2289c67f4b48d2584aff83dd0c1087769eafed0a
link
true
/test integ-ambient

lint_istio
d663d00e440b9fa7a9a84c3dbfcf4730304dd78e
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.


openvpn the client restarts abnormally. Procedure

Problem Statement
After connecting to casdoor with oauth2 plug-in, basically every 50 minutes or so, the client will jump back to the login interface of casdoor, but the authentication expiration time of casdoor is set to 168 hours, and neither openvpn nor oauth2 has a restart record. It is very strange
openvpn-auth-oauth2 logs
*

Environment

openvpn-auth-oauth2 Version: latest
OpenVPN Server Version: latest
Server OS:
OpenVPN Client (flavor, OS): os

Without logs of openvpn server and openvpn-auth-oauth2, I cant support

openvpn - log：
:54818 TLS: soft reset sec=3503/3502 bytes=351748/-1 pkts=3096/0
:54818 peer info: IV_VER=3.8.2connect3
:54818 peer info: IV_PLAT=mac
:54818 peer info: IV_NCP=2
:54818 peer info: IV_TCPNL=1
:54818 peer info: IV_PROTO=990
:54818 peer info: IV_MTU=1600
:54818 peer info: IV_CIPHERS=AES-128-CBC:AES-192-CBC:AES-256-CBC:AES-128-GCM:AES-192-GCM:AES-256-GCM:CHACHA20-POLY1305
:54818 peer info: IV_LZO=1
:54818 peer info: IV_AUTO_SESS=1
:54818 peer info: IV_GUI_VER=OCmacOS_3.4.9-4830
:54818 peer info: IV_SSO=webauth,crtext
:54818 TLS: Username/Password authentication deferred for username '' [CN SET]
:54818 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer temporary key: 253 bits X25519
MANAGEMENT: CMD 'client-pending-auth 12 3 "WEB_AUTH::https://dev-xxxxxx/oauth2/start?state=Ji8QXKc_Pv4juCK1gVtb_OmOD0dVK1ikE_RN9XG0whM5D0K7NMatNrYz7a_H7y1j3a6dkasl5mk6JvJHex-u6egTcavTCtKrkOad00C2QFw" 180'
SENT CONTROL []: 'AUTH_PENDING,timeout 180' (status=1)
SENT CONTROL []: 'INFO_PRE,WEB_AUTH::https://dev-vpn.os.kr36.ink/oauth2/start?state=Ji8QXKc_Pv4juCK1gVtb_OmOD0dVK1ikE_RN9XG0whM5D0K7NMatNrYz7a_H7y1j3a6dkasl5mk6JvJHex-u6egTcavTCtKrkOad00C2QFw' (status=1)
MANAGEMENT: CMD 'client-auth 12 3'
:54818 SENT CONTROL []: 'PUSH_REPLY,auth-tokenSESS_ID' (status=1)
openvpn-auth-oauth2 - log
time=2024-07-30T18:49:32.289+08:00 level=INFO msg="new client reauth" ip=xxxxxxx:54818 cid=12 kid=3 common_name="" reason=REAUTH session_id=1RbZyLfSMre5mq4H session_state=AuthenticatedEmptyUser
time=2024-07-30T18:49:32.289+08:00 level=INFO msg="initiate non-interactive authentication via refresh token" ip=<IP_ADDRESS>:54818 cid=12 kid=3 common_name="" reason=REAUTH session_id=1RbZyLfSMre5mq4H session_state=AuthenticatedEmptyUser
time=2024-07-30T18:49:32.496+08:00 level=WARN msg="error from token exchange: error from token exchange: ErrorType=invalid_grant Description=refresh token is invalid, expired or revoked" ip=xxxxxx:54818 cid=12 kid=3 common_name="" reason=REAUTH session_id=1RbZyLfSMre5mq4H session_state=AuthenticatedEmptyUser
time=2024-07-30T18:49:32.496+08:00 level=INFO msg="start pending auth" ip=xxxxxx:54818 cid=12 kid=3 common_name="" reason=REAUTH session_id=1RbZyLfSMre5mq4H session_state=AuthenticatedEmptyUser
time=2024-07-30T18:49:32.700+08:00 level=INFO msg="initialize authorization via oauth2" ip=xxxxxx:54818 cid=12 kid=3 common_name=""
time=2024-07-30T18:49:38.714+08:00 level=INFO msg="successful authorization via oauth2" ip=xxxxxx:54818 cid=12 kid=3 session_id=1RbZyLfSMre5mq4H common_name="" idtoken.subject=7d3f45f8-b638-49dc-81aa-bd126f158bf4<EMAIL_ADDRESS>idtoken.preferred_username="" user.subject=7d3f45f8-b638-49dc-81aa-bd126f158bf4 user.preferred_username=""
time=2024-07-30T18:49:38.714+08:00 level=INFO msg="accept OpenVPN client cid 12, kid 3" ip=xxxxx:54818 cid=12 kid=3 session_id=1RbZyLfSMre5mq4H common_name="" idtoken.subject=7d3f45f8-b638-49dc-81aa-bd126f158bf4<EMAIL_ADDRESS>idtoken.preferred_username="" user.subject=7d3f45f8-b638-49dc-81aa-bd126f158bf4 user.preferred_username=""
time=2024-07-30T18:51:48.581+08:00 level=WARN msg="invalid state: invalid state: expired after 2 minutes, issued at: 2m16.581343172s"
time=2024-07-30T18:51:48.618+08:00 level=WARN msg="invalid state: invalid state: expired after 2 minutes, issued at: 2m16.618329931s"
time=2024-07-30T18:51:48.654+08:00 level=WARN msg="invalid state: invalid state: expired after 2 minutes, issued at: 2m16.654549658s"
time=2024-07-30T18:51:49.662+08:00 level=WARN msg="invalid state: invalid state: expired after 2 minutes, issued at: 2m17.662972757s"
time=2024-07-30T18:51:50.671+08:00 level=WARN msg="invalid state: invalid state: expired after 2 minutes, issued at: 2m18.671468377s"
Can you see that

TLS: soft reset

OpenVPN has a setting called reneg-sec. the default value is 3600. In a standard configuration, the OpenVPN server (and client) will terminate the connection after approx 60 Minutes. This is expected and generally supported.
openvpn-auth-oauth2 will used the stored refresh token to re-authenticate the user. However, your IDP (casdoor?) rejects this, because the refresh token is invalide.

time=2024-07-30T18:49:32.496+08:00 level=WARN msg="error from token exchange: error from token exchange: ErrorType=invalid_grant Description=refresh token is invalid, expired or revoked" ip=xxxxxx:54818 cid=12 kid=3

The message Description=refresh token is invalid, expired or revoked is returned by casdoor. What ever you have configured at casdoor, the refresh token is invalid or expired.
Then, openvpn-auth-oauth2 falls back to an interactive authentication.
3 possible solutions:

Fix casdoor configure (I cant help you here, it seems like the 168 hours settings does not have any effect)
Set reneg-sec 0 and push "reneg-sec 0" at OpenVPN server config which leads into a less secure connections, since rekeying is disabled
Set oauth2.refresh.validate-user at openvpn-auth-oauth2. This skips calling casdoor on re-authentications.

thank you
The configuration of casdoor does not have any effect, and the setting of oauth2.refresh.validate-user as openvpn-auth-oauth2 you said is invalid and needs to be a bool value.
log:
,time=2024-07-31T09:32:39.776+08:00 level=ERROR msg="error loading config: error unmarschal config: decoding failed due to the following error(s):\n\ncannot parse 'oauth2.refresh.validate-user' as bool: strconv.ParseBool: parsing "openvpn-auth-oauth2": invalid syntax"

reneg-sec, can not be regarded as 0, is the 7200 I set invalid, or jump about 60 minutes, I changed oauth2.refresh.validate-user to false, is observing


the views don't auto flex Its own height，all use the heighest view's height

Current behaviour
when i have three views which has different height, but all the views use the heighest view‘s height

Expected behaviour
Each view has the height of each view

Code sample

Screenshots (if applicable)

What have you tried

Your Environment

software
version

ios or android

react-native
0.60.0

react-native-tab-view
^2.9.0

react-native-gesture-handler
^1.3.0

react-native-reanimated
^1.0.1

node

npm or yarn
yarn

This is expected behaviour. TabView renders scenes side by side in a flexbox row. If you want to restrict the height, you should set the height of the tabview in style.

@lipei2017 have you managed to fix it?

@satya164

If you want to restrict the height, you should set the height of the tab view in style

but in this case, it will cause performance problems with re-renders.
Wouldn't you think that it's expected behavior for  of the library?

This is expected behaviour. TabView renders scenes side by side in a flexbox row. If you want to restrict the height, you should set the height of the tabview in style.

Why we should set height in style?!?! We might have three scenes with different views and flatlist ! That is not systematic!!

Has anyone found any feasible solution?

I'm also asking if anyone found a solution?

Any solution ?

Any solution ?

suffering the same issue here x_x

I agree, it's not very usefull to manually set height to views, each view should have his own height. I tried with manually setHeight to te <TabView/> it didn't help.
Maybe @satya164 you can re-consider this issue ?

+1 would be great if the scenes adapts its own height

+1 this is driving me crazy

+1

While I'm not proud of this solution, it seems to work well. Basically it involves getting the height of each tab and setting the height on style and sceneContainerStyle dynamically on tab change. Hopefully this helps some of you and any suggestions on improving this are welcomed!
TabScreenExample.tsx
import React, {useEffect, useState} from 'react';
import {Dimensions} from 'react-native';
import {TabView} from 'react-native-tab-view';
import {Value} from 'react-native-reanimated';

type HeightType = string | number;

let mounted = false;

const TabScreenExample = () => {
    const [index, setIndex] = useState(0);
    const [height, setHeight] = useState<HeightType>('auto');
    const [tab0Height, setTab0Height] = useState<HeightType>('auto');
    const [tab1Height, setTab1Height] = useState<HeightType>('auto');
    const [tab2Height, setTab2Height] = useState<HeightType>('auto');
    const [tab3Height, setTab3Height] = useState<HeightType>('auto');

    useEffect(() => {
        if (!mounted) {
            setCurrentTabHeight(tab0Height);
            mounted = true;
        }
    });

    const position = new Value(0);

    const [routes] = useState([
        {key: 'tab0', title: 'Tab 0'},
        {key: 'tab1', title: 'Tab 1'},
        {key: 'tab2', title: 'Tab 2'},
        {key: 'tab3', title: 'Tab 3'}
    ]);

    const renderScene = ({route}) => {
        switch (route.key) {
            case 'tab0':
                return <TabExample onLayout={(h: number) => setTab0Height(h)} />;
            case 'tab1':
                return <TabExample onLayout={(h: number) => setTab1Height(h)} />;
            case 'tab2':
                return <TabExample onLayout={(h: number) => setTab2Height(h)} />;
            case 'tab3':
                return <TabExample onLayout={(h: number) => setTab3Height(h)} />;
        }
    };

    const setCurrentTabHeight = (newHeight: HeightType) => {
        const deviceHeight = Dimensions.get('window').height;
        const tabHeight = newHeight !== 'auto' && newHeight < deviceHeight ? deviceHeight : newHeight;
        if (height !== tabHeight) {
            setHeight(tabHeight);
        }
    };

    const _onTabChange = (index) => {
        switch (index) {
            case 0:
                setCurrentTabHeight(tab0Height);
                break;
            case 1:
                setCurrentTabHeight(tab1Height);
                break;
            case 2:
                setCurrentTabHeight(tab2Height);
                break;
            case 3:
                setCurrentTabHeight(tab3Height);
                break;
        }
    };

    return (
        <TabView
            style={{height}}
            sceneContainerStyle={{height}}
            navigationState={{index, routes}}
            renderScene={renderScene}
            onIndexChange={(index) => {
                setIndex(index);
                _onTabChange(index);
            }}
            position={position}
            initialLayout={{width: Dimensions.get('window').width}}
        />
    );
};

export default TabScreenExample;

TabExample.tsx
export default TabScreenExample;

import React from 'react';
import {View} from 'react-native';

interface Props {
    onLayout: (h: number) => void;
}

const TabExample = ({onLayout}: Props) => {
    return (
        <View onLayout={event => onLayout(event.nativeEvent.layout.height)}>
            {/* Tab Content Here */}
        </View>
    );
};

export default TabExample;

@suxur I tried to do the same thing as you but my tabview keeps re-rendering all scenes (tabs) whenever index changes, hence rendering the calculated height pointless.
Did you encounter this?

I believe so and that's why the each tab saves it's height to it's own variable in the state. Then the on change tab should choose the correct height for that tab.

@suxur does it works for you with a view that increases its height dinamically? When I have the second view greater than the first one (which has an infinite scroll with pagination), the first one adapts its height to the second one. Ahhh, also, in react native "height: auto" doesn't exists, the equivalent is flex: 1.

But working perfect when the first view's height is the biggest.

It is hard to manage the FlexBox Equal Column Height default behaviour when you have dynamic and endless FlatLists in your screens. I think the library should offer the way to handle this. I have tried to pass a hidden overflow or a flex-start align to each child but not working. The only way is to dinamically calculate the height, something that can affect performance with large lists.

also experiencing this issue

I don't think any of these are feasible solutions. Has there been any updates to this? Its driving me nuts. Only way I can get it to show the tab content is if i set the height of the container

While I'm not proud of this solution, it seems to work well. Basically it involves getting the height of each tab and setting the height on style and sceneContainerStyle dynamically on tab change. Hopefully this helps some of you and any suggestions on improving this are welcomed!
TabScreenExample.tsx
import React, {useEffect, useState} from 'react';
import {Dimensions} from 'react-native';
import {TabView} from 'react-native-tab-view';
import {Value} from 'react-native-reanimated';

type HeightType = string | number;

let mounted = false;

const TabScreenExample = () => {
    const [index, setIndex] = useState(0);
    const [height, setHeight] = useState<HeightType>('auto');
    const [tab0Height, setTab0Height] = useState<HeightType>('auto');
    const [tab1Height, setTab1Height] = useState<HeightType>('auto');
    const [tab2Height, setTab2Height] = useState<HeightType>('auto');
    const [tab3Height, setTab3Height] = useState<HeightType>('auto');

    useEffect(() => {
        if (!mounted) {
            setCurrentTabHeight(tab0Height);
            mounted = true;
        }
    });

    const position = new Value(0);

    const [routes] = useState([
        {key: 'tab0', title: 'Tab 0'},
        {key: 'tab1', title: 'Tab 1'},
        {key: 'tab2', title: 'Tab 2'},
        {key: 'tab3', title: 'Tab 3'}
    ]);

    const renderScene = ({route}) => {
        switch (route.key) {
            case 'tab0':
                return <TabExample onLayout={(h: number) => setTab0Height(h)} />;
            case 'tab1':
                return <TabExample onLayout={(h: number) => setTab1Height(h)} />;
            case 'tab2':
                return <TabExample onLayout={(h: number) => setTab2Height(h)} />;
            case 'tab3':
                return <TabExample onLayout={(h: number) => setTab3Height(h)} />;
        }
    };

    const setCurrentTabHeight = (newHeight: HeightType) => {
        const deviceHeight = Dimensions.get('window').height;
        const tabHeight = newHeight !== 'auto' && newHeight < deviceHeight ? deviceHeight : newHeight;
        if (height !== tabHeight) {
            setHeight(tabHeight);
        }
    };

    const _onTabChange = (index) => {
        switch (index) {
            case 0:
                setCurrentTabHeight(tab0Height);
                break;
            case 1:
                setCurrentTabHeight(tab1Height);
                break;
            case 2:
                setCurrentTabHeight(tab2Height);
                break;
            case 3:
                setCurrentTabHeight(tab3Height);
                break;
        }
    };

    return (
        <TabView
            style={{height}}
            sceneContainerStyle={{height}}
            navigationState={{index, routes}}
            renderScene={renderScene}
            onIndexChange={(index) => {
                setIndex(index);
                _onTabChange(index);
            }}
            position={position}
            initialLayout={{width: Dimensions.get('window').width}}
        />
    );
};

export default TabScreenExample;

TabExample.tsx
import React from 'react';
import {View} from 'react-native';

interface Props {
    onLayout: (h: number) => void;
}

const TabExample = ({onLayout}: Props) => {
    return (
        <View onLayout={event => onLayout(event.nativeEvent.layout.height)}>
            {/* Tab Content Here */}
        </View>
    );
};

export default TabExample;

this honestly did it for me after several hours of research. thanks!


build with androidx.core:core-splashscreen fails

[ X] I have read the guidelines for submitting issues

🐛 Describe the bug
For the dependency "androidx.core:core-splashscreen" it uses the version for the dependency "androidx.core:core-ktx"
⚠ Current behavior
There is a line in my versions.properties: versions.androidx.core=1.6.0. refreshVersions uses that for the version for androidx.core:core-splashscreen, which is invalid.
✅ Expected behavior
I expect core-splashscreen to have its own version number, since the most recent version as of today is 1.0.0-alpha01
💣 Steps to reproduce
Include core-splashscreen and core-ktx in the same project.

Thanks for the report
You can hardcode the version to work-around the problem for now
implementation(androidx.core:core-splashscreen:1.0.0-alpha01)

Fixed on main, next release will bring the dependency notation AndroidX.core.splashscreen and the correct version key will be used.

0.20.0 is out, fixing this issue.


Pagination for collections

See the working demo here
It's mandatory to set pagination to true in each collection pages html file.
For example

Where the collection name is 'cooking'
For more customization and configuration, read the jekyll-paginate-v2 documentation
Note: The three commits (082ca6f, 1901203, dff0346) were test commits with the url and should be ignored.

Hi, seems like most of the change is a config change, which is already well documented in jekyll-paginate-v2, and currently the blog template already provides an example, so I don't believe it is needed. What do you think?

I agree that jekyll-paginate-v2 is well documented and easy to customize. But if someone is willing to use the Sparrow theme (with multiple collections) with lots of posts, I think they expect those collections to be paginated as well.

Commit 3b63261 adds 'next' and 'previous' buttons for pagination, for both blog and all collections (anything that has pagination enabled).


Refresh isn't showing new schema with SqlServer Connection

I'm connecting to a Sql Server database from the Ubuntu 16.04 clieanand trying to use the explorer on a new schema, but it's not showing the new schema in the explorer after refresh.
I am still able to query data based on the new schema, but am unable to use the db explorer to look at table + field names.
Note: Doing this same thing on the windows client works. I'm not sure about the mac client though.

I'm using the Ubuntu 16.04 client

Can't reproduce. I'm clicking on a database name (in navigator), press f5 and see new schema.
How do you perform refresh? Maybe F5 shortcut has some other meaning on your Ubuntu machine (ten you can refresh using context menu or redefine refresh command shortcut in preferences).

I'm hitting f5 (while watching the ui bring up a status bar) and the right-click menu. I'm still not seeing the schema. If it helps it's not under a standard name, but there aren't any exotic chars in it or anything.
I'm also on 3.7.4
Also didn't expect such a fast reply thanks :)

Still can't reproduce.
When you perform refresh - check Query Manager view for metadata refresh query:
-- Load schemas row must appear there after each refreshing.
Also if can refresh whole connection (just select connection in navigator) - in that case physical reconnect will be done and all metadata will be re-read completely.

From the log file I see Error reading schemas in catalog 'Schema Name' - null

These are just warnings.
Actual schema read happens.
Do you see new schema after connection refresh?

Nope I keep seeing the line

 55 2016-09-22 17:07:46.727 - Error reading schemas in catalog '<schema name?' - null

"Error reading schemas" is just a warning (there are multiple ways to read schemas and one of them failed). If it'd be an error than you'd see an error dialog and empty list of schemas.
So if connection refresh doesn't help - does it mean that reconnect doesn't help? What if you restart DBeaver - do you see new schema?

I forced object refresh in the connection properties and now it's working.
Thanks for your help!!


[null-safety] remove mockito from text control a11y test

Description
Remove more mockito usage from our tests.

Holding off on landing until https://github.com/flutter/flutter/pull/62894

Rebased on-top of Fake removal, should be safe to land

Just curious, what is the reason for removing mockito?

@tomaszpolanski  There is nothing wrong with mockito to be clear, but we only use a tiny bit of it (6 or 7 tests in the framework). We're trying to make sure the framework tests can run in null-safety mode before null-safety is released, so trying to avoid pre-migrating more packages that is necessary.

Got it! Thanks for clarifying it @jonahwilliams


Moved over the good parts of the FFiT code base

Moved the RTL support and new menu rendering. With this new menu rendering sub modules are allowed to update existing menu structures and add their own menu items

Bug found in language fix


Clangd should parse header files in context

foo.h

#ifndef TEST
#error TEST not defined!
#endif

main.cpp

#define TEST
#include "foo.h"

Current behavior.

Expected behavior. (from Microsoft C/C++ extension)

this is a bug, which not fix by now, too for me

this is a bug, which not fix by now, too for me

The issue is, we can't make concrete assumptions about this. The file may be included somewhere else with different macros defined etc. Clangd is designed to work on the assumption that all files are self contained.

The issue is, we can't make concrete assumptions about this. The file may be included somewhere else with different macros defined etc. Clangd is designed to work on the assumption that all files are self contained.

that't the problem, but clion can do that well. when there is not #include ,it will fell that and give me the best choice.

that't the problem, but clion can do that well. when there is not #include ,it will fell that and give me the best choice.

foo.h
#ifdef TEST
#error
#endif

a.c
#include "foo.h"

b.c
#define TEST
#include "foo.h"

In this contrived example, should clangd give an error or not when parsing foo.h?
If we treat the header as self contained its always going to be no.
Likewise parsing in a.c's context it also wont error.
However parsing in b.c's context will cause an error.
This non-deterministic behaviour is part of the reason for assuming headers are self contained in clangd.

foo.h
#ifdef TEST
#error
#endif

a.c
#include "foo.h"

b.c
#define TEST
#include "foo.h"

In this contrived example, should clangd give an error or not when parsing foo.h?
If we treat the header as self contained its always going to be no.
Likewise parsing in a.c's context it also wont error.
However parsing in b.c's context will cause an error.
This non-deterministic behaviour is part of the reason for assuming headers are self contained in clangd.

In this contrived example, should clangd give an error or not when parsing foo.h?
If we treat the header as self contained its always going to be no.
Likewise parsing in a.c's context it also wont error.
However parsing in b.c's context will cause an error.

Eclipse's behaviour here is:

if foo.h is opened by following the include from a.c, no error
if foo.h is opened by following the include from b.c, error
if foo.h is opened "without context" (e.g. from the editor's file browser), you get one of the two behaviours, but there is no guarantee about which one

In this contrived example, should clangd give an error or not when parsing foo.h?
If we treat the header as self contained its always going to be no.
Likewise parsing in a.c's context it also wont error.
However parsing in b.c's context will cause an error.

Eclipse's behaviour here is:

if foo.h is opened by following the include from a.c, no error
if foo.h is opened by following the include from b.c, error
if foo.h is opened "without context" (e.g. from the editor's file browser), you get one of the two behaviours, but there is no guarantee about which one

This is almost the same problem as #45


⚠ Bofrost.es has degraded performance

In f210e77, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1892 ms

Resolved: Bofrost.es performance has improved in 4fe291a after 4 hours, 6 minutes.


GridFieldOrderableRows: cannot reorder when Sort column values are not normalized

Imagine the situation when Sort field contains the same value, for example 1. Then reordering cannot reset Sort field the way it does with value 0 in GridFieldOrderableRows::populateSortValues(). And since the only valid Sort value in the set is 1, reordering will fail.

Name
Sort

apple
1

orange
1

pear
1

Fixed with https://github.com/silverstripe-australia/silverstripe-gridfieldextensions/commit/1d2b20c87f792ca6b55bd1aaa01efda92a98b3f4 thanks @dhensby!
Not released yet though. Can we get a release please? "silverstripe-australia/gridfieldextensions": "dev-master" makes me uncomfortable 😛

Yep, we need a release.
@jonom you can link to 1.4.x-dev instead which will give you a little bit more certainty, but not much...

Have pushed a new release tag.


Markdown render issue with [foo | bar][link]

Checklist

[X] I have read and accepted the contributing guidelines.

How did you create the site?
Generated from chirpy-starter
Describe the bug
I have a markdown content:
+ [foo | bar][link]

[link]: https://example.com

Then the render result looks like:

Expected Behavior
Rendered as:

foo | bar

Environment

Ruby: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-linux]
Jekyll: jekyll 4.3.4
Chirpy: jekyll-theme-chirpy (7.1.1)

Anything else?
No response

@cotes2020 Thanks a lot, I'll do it.

+ [foo | bar][link]

[link]: https://example.com

However, the same markdown text is rendered differently between Chirpy and GitHub.


Update README.md

Contributing
If you want to add a project to this list, please make sure that:

[x] You read the contributing guide
[x] The repository has hacktoberfest as topic and counts for hacktoberfest event
[x] The project can't be just an "add your name" or simply + 1 contribution to hacktoberfest
[x] Place them in alphabetical order
[x] One repository per PR/contribution - avoid conflicts and simplify review
[x] Your pull request is not spammy just adding an empty line, otherwise it will be marked as invalid and not count to hacktoberfest.

If they meet the requirements above, feel free to create a PR. Happy Hacking! :sparkles:

Unfortunatelly this repository that you've added doesn't have hacktoberfest as a topic and don't counts for hacktoberfest event


Fix: pass the correct value to _onChange

Fixes an regression introduced by v5 where an incorrect value is written back to form control. Furthermore, this adds another check if the textMaskInputElement is present.

Thanks!


It s  a SHITT

I payed 30 bucks for free at api,3 times took my money and strat over and it blocks,the ideea is good but the app it s shitt,you own me 30

What part of "This is an EARLY, UNSTABLE, PREVIEW RELEASE of the project. ⚠ Until v1 is released, it is expected to break often.
It consumes a lot of tokens. If you are on a token budget, wait until v1 is released." didn't you understand?
We should be thankful for all that is being achieved, $30 is nothing compared to all the hours the devs are putting in.
Learn to respect.

At least it should let me take what I have payed,no?You should make
something to save somewhere all the work done from 30 to 30 sec,it s easy
to do,no? Respect for what??I didn't get nothing in exchange of 30 dollars
:)
On Tue, Nov 12, 2024, 4:56 PM Dev.Bleras @.***> wrote:

What part of "This is an EARLY, UNSTABLE, PREVIEW RELEASE of the project.
⚠ Until v1 is released, it is expected to break often. It consumes a lot
of tokens. If you are on a token budget, wait until v1 is released." didn't
you understand?
We should be thankful for all that is being achieved, $30 is nothing
compared to all the hours the devs are putting in.
Learn to respect.
—
Reply to this email directly, view it on GitHub
https://github.com/raidendotai/cofounder/issues/84#issuecomment-2470756285,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZGZBYYSP7LBDS6L3QWOXB32AIJJPAVCNFSM6AAAAABRUB3AUSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZQG42TMMRYGU
.
You are receiving this because you authored the thread.Message ID:
@.***>


'Install Vue' assumes location of npm

When attempting to "Install Vue", it fails with:
IllegalArgumentException: exe: /usr/local/bin/npm doesn't exist

I can see the location assumption here: https://github.com/henjue/vue-for-idea/blob/master/src/main/java/io/j99/idea/vue/action/InstallAction.java#L46
Many of us use NVM or some form of version manager, and deliberately don't have a global installation of Node.

you need install npm。
ubuntu example :sudo apt-get install npm

you need install npm。
ubuntu example :sudo apt-get install npm

Please read the issue beyond the first two lines.
I have NPM installed, but not where your plugin assumes it is.

Have the same issue too.
I am running WebStorm on my Window 10 laptop and have Node.js installed globally. Is it because this plugin doesn't support Windows yet?

same issue

+1, same problem with upstairs, can i change the npm path?


is there way to run some sqlite command, such as .import

for example importing a csv file, could you suggest a way to do that? thanks!

So the sqlite cli is compiled with that support. Bog standard embedded sqlite does not have this ability. https://sqlite.org/cli.html
Your best bet is to parse the CSV and stream it into the database
"priv/english.csv"
|> File.stream!()
|> CSV.decode()
|> Enum.each(fn row ->
  Repo.insert(....)
end)

Or use the CLI to import it manually.


Project Red compatibility

With the latest  build of OpenCubicChunks the game crashed at the start and says that galatic is a problem. Without Cubic everything working fine.
crash-2019-07-02_18.41.22-client.txt

First this appears to be some custom build of cubic chunks with no way for me to determine the version from the log.
Second, galacticraft is not going to work with cubic chunks for many reasons even if it initializes and loads.
And then, it fails probably because some galacticraft access transformer didn't get applied correctly, which I can't even begin to diagnose without debug.log

I downloaded the latest files from github and reduced the maximum from integer max to 256 in the CubicChunks.java because the mod is only about an extended depth.
I did that six months ago and never had any problems. I have github files from about 3 months ago, no problems with galacticraft initializes. Now galactic crashes the game with the current files already when loading the mods off therefore no debug is written.

If there is no debug.log, try with vanilla launcher instead of twitch launcher.

Also you should clone the git repository to compile the mod if you want version number, not just download the zip file.

And once again, galacticraft has a whole lot of other issues, like rockets not working properly (not just due to extra height), landing not working properly, digging below y=0 or above y=256 on GC planets crashing the server and probably other issues too.

I only use the Vanilla launcher and I tried again it will not debug.log file generated.
I tried it as you said with git clone and have repeated the whole it is the version 1.12.2-0.0.966.0

Can you try to use old version of the launcher? I think the new native launcher broken logging.

I hope it help.
debug.log

I dont know the version, because it was a zip downlload with timetitle 7th April.  Everthing loads with galatic and works fine.  I have tested start and landing to and from the moon. Everything fine. I have put cubic chunk at a building heigh 256 and building deep is integer max.

I don't know what causes this issue with Galacticraft, but overall it's not going to be compatible. You also have project red which is also incompatible.

Project Red, I have no idea , what works and what not works at this mod, other people wish that mod. This modpack is an own creation for a serverproject with 5 friends and the world will be started in the next days.

Shouldn't this be closed and merged into #448?


fix: Oracle SQL database data leakage FP (951120 PL1)

I'm getting FPs with this part of regex matching Oracle SQL error messages:
Oracle.*Driver
Was trying to find what kind of error messages is this regex supposed to match and was able to found only these:
Cannot initiate JDBC driver with class name oracle jdbc Oracle Driver
[informatica][Oracle JDBC Driver][Oracle]Connection refused
JDBC Driver class not found: oracle.jdbc.OracleDriver

My fix expects that the last one may be in the form of oracle.jdbc.Oracle<something>Driver (but i haven't found any on the web) and for this case the 20 characters limit seems to be sufficient.

Would you mind moving the generation to regex-assembly? That would also help with commenting.

@theseion Sure but i don't know what are you talking about. :) Regex was generated using a crs-toolchain and i thought this is the correct way.

Oh, sorry, i confused this PR with my other recent PR.

The generated expression differs from the original one, you'll have to regenerate.

I know, i'm not finished yet. I will join two of my PRs into this one.


Reorder BroadcastInDimOp and BinaryElementwiseOp

Part of #1583 and #1148. I think it can be a standalone pass. /cc @benvanik for visibility.

(a good extension for this would be for unary ops)

Nice! I wrote something similar but never sent out for reviews.. Probably should go back and dig it out to see what else are covered compared to this patch. Thanks for the contribution!! :D


Add polish translation to BotBuilder

Is it possible to add  Polish translations to Botbuilder.
I can help translate.

We're happy to look at pull requests - it looks like you have some experience with translation (https://github.com/Microsoft/BotBuilder/issues/339).

Closing this issue. Thanks!


Footer in website

I can add a footer to the website which will make the website more attractive and which will make a complete website

Hey @YasirObaibullah99 is this a critical work, and if I proceed with https://github.com/aditya-singh9/kekfinder/issues/41, will it be breaking changes to your work?

No you just tell me how you are doing in #41 it will not break

Sure. Basically the "components" folder will have only folders, each folder named different components (like items, search etc), and each folder will have the component files (js) and their supporting files like css (basically all files with same name goes in sane folder with that name).
If you're creating new component files, please follow this practice. I'll take care of converting the structure of existing files.

Reference: https://github.com/Substancia/OneshotAI-MERN-client-webapp/

Ya this is best practices for react js and go for it

@YasirObaibullah99 is this work done? Let me know once I can start with the code restructuring without affecting your work. Thanks.

Ya it merged now you can start your work

Awesome!
@aditya-singh9 @Rudresh-pandey since the new UI work starts tomorrow and the repo will be blocked for the entire day, and since no critical work is being done right now, I'll do the code restructuring after my dinner. That cool?

Cool

Why are we using an entire library (cdbreact) just for the footer? Couldn't we have just coded a footer component manually? An additional package means higher vulnerability risk in the future.
Also the footer is misbehaving.

left-bottom in desktop view
bottom in tablet and mobile view

i am not getting any of the footer issue in my local npm server

Sorry, my bad, I've got this particular issue fixed, with a new question. Do we want the footer to stick to the bottom when emojis list is empty? Because that wasn't implemented.

i have already implemented it

check this :- it was working when i made the pr
https://kekfinder-cnjf9wcez-aditya-singh9.vercel.app/

ok now i understand , since i was using my laptop to see the progress i didn't check the height of the device that's why the footer is behaving like this , it's not a big issue

i am just confused 😑, i don't know which property should i use to make this footer on the bottom of the screen

Sorry, my bad, I've got this particular issue fixed, with a new question. Do we want the footer to stick to the bottom when emojis list is empty? Because that wasn't implemented.

yes i didn't considered the heights of the screen , i wasted a lot of time 😑 and didn't allow others to get there code merged

I did spend some time on this issue, and realized that the difficulty in this issue arises from the way the divisions and blocks are defined in the html code (basically the elements structure). To fix this, all I see are either do some nasty hacks (like force fixing heights of certain elements), or restructuring the elements altogether. If anyone can come up with a GOOD solution, I'll be very curious.

This is what I came up with, simple change, works fine. Please do some edge-testing.
@aditya-singh9 @Rudresh-pandey


From sqlx 0.7 this code is not working anymore

Hi people! Your work on sqlx is amazing! Congratulations and thank you very much! ♥
A few months ago - coming from Golang - I was looking for a way to use both direct queries and queries in transactions (I'm also using a clean code architecture, so I cannot call sqlx methods directly).
A very nice person on the rust Discord channel helped me put this code together and it works great: https://github.com/frederikhors/iss-sqlx-0.7.
This allows me to use code like this:
let mut tx = repo.start_transaction().await?;

let available_seats = tx.search_for_available_seats(stadium_id).await?;

let confirmed_seat = tx.confirm_seat(available_seats[0]).await?;

tx.commit().await?;

in addition to this:
let example = repo.clone_boxed().search_for_available_seats(stadium_id).await?;

Everything works perfectly with sqlx 0.6.3, but now with sqlx 0.7 I'm having this error:
error[E0277]: the trait bound `&'this mut Transaction<'static, Postgres>: sqlx::Executor<'this>` is not satisfied
  --> src\main.rs:99:28
   |
99 |     type Executor<'this> = &'this mut Self;
   |                            ^^^^^^^^^^^^^^^ the trait `sqlx::Executor<'this>` is not implemented for `&'this mut Transaction<'static, Postgres>`
   |
   = help: the following other types implement trait `sqlx::Executor<'c>`:
             <&'c mut PgConnection as sqlx::Executor<'c>>
             <&'c mut PgListener as sqlx::Executor<'c>>
             <&Pool<DB> as sqlx::Executor<'p>>
   = note: required for `<Transaction<'static, Postgres> as Executor>::Executor<'this>` to implement `PgExecutor<'this>`
note: required by a bound in `Executor::Executor`
  --> src\main.rs:78:41
   |
78 |     type Executor<'this>: Send + Sync + sqlx::PgExecutor<'this>;
   |                                         ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Executor::Executor`

For more information about this error, try `rustc --explain E0277`.

I saw the note in CHANGELOG about Executor trait but I don't know how to fix it in this case.
Could you suggest me a way to fix it?
Can you think of an alternative way to use instead of this Executor trait?
The custom trait
pub trait Executor: Send + Sync {
    type Executor<'this>: Send + Sync + sqlx::PgExecutor<'this>;

    // From https://users.rust-lang.org/t/why-does-this-impl-executor-does-not-live-long-enough/94241
    fn _disable_lint(e: Self::Executor<'_>) -> Self::Executor<'_>;

    fn as_executor(&mut self) -> Self::Executor<'_>;
}

impl Executor for sqlx::PgPool {
    type Executor<'this> = &'this Self;

    fn _disable_lint(e: Self::Executor<'_>) -> Self::Executor<'_> {
        e
    }

    fn as_executor(&mut self) -> Self::Executor<'_> {
        self
    }
}

impl Executor for sqlx::Transaction<'static, sqlx::Postgres> {
    type Executor<'this> = &'this mut Self;

    fn _disable_lint(e: Self::Executor<'_>) -> Self::Executor<'_> {
        e
    }

    fn as_executor(&mut self) -> Self::Executor<'_> {
        self
    }
}

Just ran into this issue a minute ago. You need to add an extra deref to get the "concrete" PgConnection type that has Executor implemented.
From the change notes:

To fix this breakage, simply add a dereference where an impl Executor is expected, as they both dereference to the inner connection type which will still implement it:

&mut transaction -> &mut *transaction
&mut connection -> &mut *connection

Then, you're going to need to change:
impl Executor for sqlx::Transaction<'static, sqlx::Postgres> {
    type Executor<'this> = &'this mut Self;

    fn _disable_lint(e: Self::Executor<'_>) -> Self::Executor<'_> {
        e
    }

    fn as_executor(&mut self) -> Self::Executor<'_> {
        self
    }
}

to something like,
impl Executor for sqlx::Transaction<'static, sqlx::Postgres> {
    type Executor<'this> = &'this mut PgConnection;

    fn _disable_lint(e: Self::Executor<'_>) -> Self::Executor<'_> {
        e
    }

    fn as_executor(&mut self) -> Self::Executor<'_> {
        &mut *self
    }
}

Or if you really want to, you could tell it to the use type that it derefs to, but I think this is less obvious that really you're turning it into a PgConnection.
use std::ops::Deref;

impl Executor for sqlx::Transaction<'static, sqlx::Postgres> {
    type Executor<'this> = &'this mut <Self as Deref>::Target;
    ...
}

@jaxrtech, amazing! Thank you very much!
Just one question: why are you using:
fn as_executor(&mut self) -> Self::Executor<'_> {
    &mut *self
}

instead of a simpler:
fn as_executor(&mut self) -> Self::Executor<'_> {
    self
}

The latter is working for me.

Hi people! Your work on sqlx is amazing! Congratulations and thank you very much! ♥
A few months ago - coming from Golang - I was looking for a way to use both direct queries and queries in transactions (I'm also using a clean code architecture, so I cannot call sqlx methods directly).
A very nice person on the rust Discord channel helped me put this code together and it works great: https://github.com/frederikhors/iss-sqlx-0.7.
This allows me to use code like this:
let mut tx = repo.start_transaction().await?;

let available_seats = tx.search_for_available_seats(stadium_id).await?;

let confirmed_seat = tx.confirm_seat(available_seats[0]).await?;

tx.commit().await?;

in addition to this:
let example = repo.clone_boxed().search_for_available_seats(stadium_id).await?;

Everything works perfectly with sqlx 0.6.3, but now with sqlx 0.7 I'm having this error:
error[E0277]: the trait bound `&'this mut Transaction<'static, Postgres>: sqlx::Executor<'this>` is not satisfied
  --> src\main.rs:99:28
   |
99 |     type Executor<'this> = &'this mut Self;
   |                            ^^^^^^^^^^^^^^^ the trait `sqlx::Executor<'this>` is not implemented for `&'this mut Transaction<'static, Postgres>`
   |
   = help: the following other types implement trait `sqlx::Executor<'c>`:
             <&'c mut PgConnection as sqlx::Executor<'c>>
             <&'c mut PgListener as sqlx::Executor<'c>>
             <&Pool<DB> as sqlx::Executor<'p>>
   = note: required for `<Transaction<'static, Postgres> as Executor>::Executor<'this>` to implement `PgExecutor<'this>`
note: required by a bound in `Executor::Executor`
  --> src\main.rs:78:41
   |
78 |     type Executor<'this>: Send + Sync + sqlx::PgExecutor<'this>;
   |                                         ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Executor::Executor`

For more information about this error, try `rustc --explain E0277`.

I saw the note in CHANGELOG about Executor trait but I don't know how to fix it in this case.
Could you suggest me a way to fix it?
Can you think of an alternative way to use instead of this Executor trait?
The custom trait
pub trait Executor: Send + Sync {
    type Executor<'this>: Send + Sync + sqlx::PgExecutor<'this>;

    // From https://users.rust-lang.org/t/why-does-this-impl-executor-does-not-live-long-enough/94241
    fn _disable_lint(e: Self::Executor<'_>) -> Self::Executor<'_>;

    fn as_executor(&mut self) -> Self::Executor<'_>;
}

impl Executor for sqlx::PgPool {
    type Executor<'this> = &'this Self;

    fn _disable_lint(e: Self::Executor<'_>) -> Self::Executor<'_> {
        e
    }

    fn as_executor(&mut self) -> Self::Executor<'_> {
        self
    }
}

impl Executor for sqlx::Transaction<'static, sqlx::Postgres> {
    type Executor<'this> = &'this mut Self;

    fn _disable_lint(e: Self::Executor<'_>) -> Self::Executor<'_> {
        e
    }

    fn as_executor(&mut self) -> Self::Executor<'_> {
        self
    }
}

my code:
let sql = r#"insert into users (name,age,id_card,last_update) value(?,?,?,?)"#;
    let mut conn = pool.begin().await?;
    let affect_rows = sqlx::query(sql)
        .bind("daheige")
        .bind(32)
        .bind("abc")
        .bind(chrono::NaiveDate::from_ymd(2022, 04, 13))
        .execute(&mut conn)
        .await?;
    conn.commit().await?;
    let id = affect_rows.last_insert_id();
    println!("id = {}", id);

hi, I have this fatal problem too. 7.0.x version of the transaction operation, for mysql will not be compiled, error is as follows:
error[E0277]: the trait bound `&mut Transaction<'_, MySql>: Executor<'_>` is not satisfied
   --> src/main.rs:148:18
    |
148 |         .execute(&mut conn)
    |          ------- ^^^^^^^^^ the trait `Executor<'_>` is not implemented for `&mut Transaction<'_, MySql>`
    |          |
    |          required by a bound introduced by this call
    |
    = help: the following other types implement trait `Executor<'c>`:
              <&'c mut MySqlConnection as Executor<'c>>
              <&'c mut AnyConnection as Executor<'c>>
              <&Pool<DB> as Executor<'p>>
note: required by a bound in `Query::<'q, DB, A>::execute`
   --> /Users/heige/.cargo/registry/src/github.com-1ecc6299db9ec823/sqlx-core-0.7.4/src/query.rs:155:12
    |
151 |     pub async fn execute<'e, 'c: 'e, E>(self, executor: E) -> Result<DB::QueryResult, Error>
    |                  ------- required by a bound in this associated function
...
155 |         E: Executor<'c, Database = DB>,
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, A>::execute`

For more information about this error, try `rustc --explain E0277`.

I sincerely hope that sqlx developers can fix this bug.

I corrected it in the following way fix my code, cargo check is normal.
let sql = r#"insert into users (name,age,id_card,last_update) value(?,?,?,?)"#;
let mut tx = pool.begin().await?;
let conn = &mut tx;
// https://github.com/launchbadge/sqlx/blob/main/examples/postgres/transaction/src/main.rs#L14
let affect_rows = sqlx::query(sql)
    .bind("daheige")
    .bind(32)
    .bind("abc")
    .bind(chrono::NaiveDate::from_ymd(2022, 04, 13))
    // In 0.7, `Transaction` can no longer implement `Executor` directly,
    // so it must be dereferenced to the internal connection type.
    .execute(&mut **conn)
    .await?;
tx.commit().await?;
let id = affect_rows.last_insert_id();
println!("id = {}", id);

It is possible to run cargo check.


Version matched error while "pip install -r requirements.txt"?

Description
I've just transport a new machine and found that using pip install through requirements.txt doesn't working.
It seems interesting that it works when I use the script in the README.md.
Working: pip install --upgrade "jax[cuda11_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
Not working: pip install -r requirements.txt
Requirements.txt:
-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
jax[cuda11_pip]

What jax/jaxlib version are you using?
No response
Which accelerator(s) are you using?
No response
Additional system info
No response
NVIDIA GPU info
No response

I think it is just my machine issue. Other package has also encounter the same issue. Sorry;

Glad you got it sorted out!


Clarify the usage of these method by making them protected.

@rosshambrick @chrslgndev @dmays can i get some 👀 on this?

👀


Remove trailing spaces

The test fails due to a bug in it.
  Describing Get-Help & Get-Command on Add-Computer to build MAML Model Object
    Context Add-Computer
      [-] Checks that Help Exists on Computer Running Tests 837ms
        ItemNotFoundException: Cannot find path 'C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\' because it does not exist.
        at <ScriptBlock>, C:\projects\markdown-maml\test\Pester\PlatyPs.Tests.ps1: line 634
      [+] Validates attributes by checking several sections of the single attributes for Add-Computer 0.99s
      [+] Validates the examples by checking Add-Computer Example 1 18ms
      [+] Validates Parameters by checking Add-Computer Computer Name and Local Credential in Domain ParameterSet 48ms
      [+] Validates there is only 1 default parameterset and that it is the domain parameterset for Add-Computer 12ms

Indeed, looks like appveyor image recently got Azure module installed by default. And that causes problems. The broad $paths = $env:PsModulePath.Split(';') logic should be replaced by the fixed collection of the modules that are really used in the tests.
            It 'Checks that Help Exists on Computer Running Tests' {

                $Command = Get-Command Add-Computer
                $HelpFileName = Split-Path $Command.HelpFile -Leaf
                $foundHelp = @()
                $paths = $env:PsModulePath.Split(';')
                foreach($path in $paths)
                {
                $path = Split-Path $path -Parent
                $foundHelp += Get-ChildItem -Path $path -Recurse | Where-Object { $_.Name -like "*$HelpFileName"} | Select-Object Name
                }

                $foundHelp.Count | Should BeGreaterThan 0
            }

On linux the error is
    Context Output SMA into /home/travis/build/PowerShell/platyPS\out\sma-maml
      [-] Error occurred in Context block 216ms
        RuntimeException: No file found in /opt/microsoft/powershell/6.1.0~preview.2\en-US\System.Management.Automation.dll-Help.xml.
        at <ScriptBlock>, /home/travis/build/PowerShell/platyPS/out/platyPS/platyPS.psm1: line 276
        at New-MarkdownHelp<Process>, /home/travis/build/PowerShell/platyPS/out/platyPS/platyPS.psm1: line 258
        at <ScriptBlock>, /home/travis/build/PowerShell/platyPS/test/Pester/FullLoop.Tests.ps1: line 178
        at DescribeImpl, /usr/local/share/powershell/Modules/Pester/4.3.1/Functions/Describe.ps1: line 161

I will hold the PR until these issues are fixed.

Re-kicked the build. Meanwhile, I'm not sure that Update-MarkdownHelp will be an idempotent if remove some of the trailing whitespaces. Can you, please, check that Update-MarkdownHelp .\docs on the platyPS itself doesn't produce any diff?

@it-praktyk you would need to rebase to include the test fixes in your branch, otherwise, CI will fail.

Done.

Can you, please, check that Update-MarkdownHelp .\docs on the platyPS itself doesn't produce any diff?
I'll do it until Monday (CEST).

Looks like rebase didn't go well.

There should not be any of commits from master in your branch.
You may [need to cherry-pick to fix this at this point[(http://justinhileman.info/article/git-pretty/).
Regular rebase looks like this
git fetch --all -p
git rebase origin master
git push --force-with-lease <your-remote-name> HEAD

I've rebased interactively and forcibly pushed - IMHO looks OK now.

Can you, please, check that Update-MarkdownHelp .\docs on the platyPS itself doesn't produce any diff?

I built PlatyPS for the branch master and it-praktyk:Remove_trailing_spaces - in my opinion removing trailing spaces from the code doesn't impact produced output.

Oh  gotcha - I glanced on the diff and noticed a number of changes that looked like the docs change. Didn't realize it all comes from tests.
Thank you!


python311Packages.azure-mgmt-containerservice: 29.1.0 -> 30.0.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.azure-mgmt-containerservice is: This is the Microsoft Azure Container Service Management Client Library
meta.homepage for python311Packages.azure-mgmt-containerservice is: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/containerservice/azure-mgmt-containerservice
meta.changelog for python311Packages.azure-mgmt-containerservice is: https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-containerservice_30.0.0/sdk/containerservice/azure-mgmt-containerservice/CHANGELOG.md
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 30.0.0 with grep in /nix/store/m1jrgvvdk482zi17jn5igcbksf9qs9wk-python3.11-azure-mgmt-containerservice-30.0.0
found 30.0.0 in filename of file in /nix/store/m1jrgvvdk482zi17jn5igcbksf9qs9wk-python3.11-azure-mgmt-containerservice-30.0.0

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

5 total rebuild path(s)

5 package rebuild(s)

First fifty rebuilds by attrpath

azure-cli
prowler
python311Packages.azure-mgmt-containerservice
python312Packages.azure-mgmt-containerservice

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/m1jrgvvdk482zi17jn5igcbksf9qs9wk-python3.11-azure-mgmt-containerservice-30.0.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/47cda7772c94a26858ae05217820ab4a1c7f2dde#python311Packages.azure-mgmt-containerservice

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/m1jrgvvdk482zi17jn5igcbksf9qs9wk-python3.11-azure-mgmt-containerservice-30.0.0
ls -la /nix/store/m1jrgvvdk482zi17jn5igcbksf9qs9wk-python3.11-azure-mgmt-containerservice-30.0.0/bin

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

2 packages failed to build:

prowler
prowler.dist

6 packages built:

azure-cli
azure-cli.dist
python311Packages.azure-mgmt-containerservice
python311Packages.azure-mgmt-containerservice.dist
python312Packages.azure-mgmt-containerservice
python312Packages.azure-mgmt-containerservice.dist

Maintainer pings
cc @mwilsoncoding for testing.

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

2 packages failed to build:

prowler
prowler.dist

6 packages built:

azure-cli
azure-cli.dist
python311Packages.azure-mgmt-containerservice
python311Packages.azure-mgmt-containerservice.dist
python312Packages.azure-mgmt-containerservice
python312Packages.azure-mgmt-containerservice.dist

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

8 packages built:

azure-cli
azure-cli.dist
prowler
prowler.dist
python311Packages.azure-mgmt-containerservice
python311Packages.azure-mgmt-containerservice.dist
python312Packages.azure-mgmt-containerservice
python312Packages.azure-mgmt-containerservice.dist


Is it possible to make is_deleted field redefined and optional?

https://github.com/igorbenav/fastcrud/blob/adf9ab08c6d7b39b303374a430623846bc6548d3/fastcrud/crud/fast_crud.py#L1697
It would be convenient to make this field redefined to self.is_deleted_column and optional, because in some cases, one deleted_at_column field is enough to understand that the record has been deleted.

This is possible

I think we can close this based on #152 being merged?

Yeah, @gsegatti, I forgot about the closing keywords


How to handle additional data insert in many2many jointable?

Your Question
Background information:
I searched the web and this repo for a few hours but could not find an earlier question/answer, but I have two tables with a many2many relation (Recipe and Ingredient), linked through a custom jointable (Recipe_Ingredient) that contains extra metadata:
models:
type Recipe struct {
	ID          int           `gorm:"primaryKey;serial;unique;not null;autoIncrement" json:"id"`
	Title       string        `gorm:"not null" json:"title"`
	Description string        `gorm:"not null" json:"description"`
	Method      string        `gorm:"not null" json:"method"`
	Ingredients []Ingredients `gorm:"not null" json:"ingredients"`
}

type Ingredients struct {
	ID   int    `gorm:"primaryKey;serial;unique;not null;autoIncrement" json:"id"`
	Name string `gorm:"not null" json:"name"`
}

type Recipe_Ingredient struct {
	RecipeID     int    `gorm:"primaryKey" json:"recipeid"`
	IngredientID int    `gorm:"primaryKey" json:"ingredientid"`
	Amount       int    `gorm:"not null" json:"amount"`
	Unit         string `gorm:"not null" json:"unit"`
}

main.go:
func initDatabase(host string, username string, password string, database string, timezone string) *gorm.DB {
	dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=5432 sslmode=disable TimeZone=%s", host, username, password, database, timezone)
	log.Debugf(dsn)

	db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
	if err != nil {
		log.Fatalf("Unable to connect to the database. Exiting..\n%v\n", err)
	}

	if err := db.SetupJoinTable(&models.Recipe{}, "recipe_ingredient", &models.Recipe_Ingredient{}); err != nil {
		log.Error("error setting up jointable for recipe/ingredient link")
	}

	err = db.AutoMigrate(
		&models.Recipe{},
		&models.Ingredients{})

	if err != nil {
		log.Errorf("Error while migrating database models: %s", err.Error())
	}

	return db
}

I managed to create the tables just fine, but I can't seem to figure out how to insert that metadata. I was looking at the BeforeCreate and BeforeSave, but that does not seem to work. I am currently working with an json input such as:
{
  "Title": "title",
  "Description": "description",
  "Method": "lots of text",
  "Ingredient": [{"id": 1, "amount": 20, "unit": "grams"}, {"id": 2, "amount": 10, "unit": "mililiters"}]
}

My current insert is limited to the following, which works to insert into the recipe table and the ID's in the jointable, but I'm stuck figuring out the metadata insert (amount and unit in the ingredient input):
// Create new recipe
func (r gormProductRepository) Create(recipe m.Recipe) (*m.Recipe, error) {
	//...

	err := r.db.Transaction(func(tx *gorm.DB) error {
		// Create recipe record
		if err := tx.Create(&recipe).Error; err != nil {
			return err
		}

		return nil
	})

	if err != nil {
		return nil, err
	}

	return &recipe, nil
}

I'm currently thinking about a two stage insert where I first insert the recipe and jointable ID's, and then based on the returned recipeID add the correct values in the jointable, but if there is a way to do this in one go then that would have my preference.
The document you expected this should be explained
https://gorm.io/docs/many_to_many.html
Potentially:
https://gorm.io/docs/hooks.html or https://gorm.io/docs/transactions.html
Expected answer
A nudge in the right direction on how to handle metadata insert :)
Thanks!

The only way that I found to do this was using the before save hook, the problem is that the before hook can't (or I don't know how) handle the data that came from your &recipe pointer because it capture only the value of the keys of the join table, for you to add the data from your &recipe input you have to pass a context
tx.WithContext(context.WithValue(context.Background(), "RecipeKey", recipe)).Create(&recipe)

and in your before save hook you can access this value from your context using
func (t *Recipe_Ingredient) BeforeSave(tx *gorm.DB) error {
      values, ok := tx.Statement.Context.Value("RecipeKey").(Recipe)
}

https://gorm.io/docs/many_to_many.html#Customize-JoinTable


Clean up output format

This patch cleans up the output format when using -v/--verbose and -vv/--very-verbose flags.
This is what it currently looks like:
. ===[fib_rec]===expected
$ ./project04 fib_rec 10
['c: 55\n', 'asm: 55\n', 'emu: 55\n']

===[fib_rec]===actual
$ ./project04 fib_rec 10
['c: 55\n', 'asm: 55\n', 'emu: 55\n']

fib_rec(4/4) ===[get_bitseq]===expected
$ ./project04 get_bitseq 94116 12 15
['c: 6\n', 'asm: 6\n', 'emu: 6\n']

===[get_bitseq]===actual
$ ./project04 get_bitseq 94116 12 15
['c: 6\n', 'asm: 6\n', 'emu: 6\n']

get_bitseq(4/4) ===[int_to_str]===expected
$ ./project04 int_to_str 255 -o 16
['c: 0xff\n', 'asm: 0xff\n', 'emu: 0xff\n']

===[int_to_str]===actual
$ ./project04 int_to_str 255 -o 16
['c: 0xff\n', 'asm: 0xff\n', 'emu: 0xff\n']

int_to_str(5/5) ===[is_pal]===expected

...

This is what it looks like after:
===[fib_rec]===expected
$ ./project04 fib_rec 10
['c: 55\n', 'asm: 55\n', 'emu: 55\n']

===[fib_rec]===actual
$ ./project04 fib_rec 10
['c: 55\n', 'asm: 55\n', 'emu: 55\n']
fib_rec(4/4)

===[get_bitseq]===expected
$ ./project04 get_bitseq 94116 12 15
['c: 6\n', 'asm: 6\n', 'emu: 6\n']

===[get_bitseq]===actual
$ ./project04 get_bitseq 94116 12 15
['c: 6\n', 'asm: 6\n', 'emu: 6\n']
get_bitseq(4/4)

===[int_to_str]===expected
$ ./project04 int_to_str 255 -o 16
['c: 0xff\n', 'asm: 0xff\n', 'emu: 0xff\n']

===[int_to_str]===actual
$ ./project04 int_to_str 255 -o 16
['c: 0xff\n', 'asm: 0xff\n', 'emu: 0xff\n']
int_to_str(5/5)

...

In the original format, the output doesn't group logically by each test case, with the name of the current test case on the same line as the start of the next test case output. This confuses me sometimes, and I've also heard from other students about how it often can be hard to read. The new format starts each test case diff output on a newline along with an empty line separating it from the previous test case, and also removes the extra line between the current test case output and its title.

I have the same issue and this new format is easier on the eyes.

Cool, thanks, merged


Model from local file system

Hello! Please tell me how to load the model saved to the device? ArNode.uri supports only assets and links.

Hi @i-panov, did you have a look at the Code example for loading models from the local file system and from online resources? As you can see in there, you have to place you model inside the flutter asset folder of your app (NOT the asset folder of the AR Flutter plugin), then you can simply provide the path to the ARNode's uri property and load the locally saved model.
Best
Lars

@CariusLars Yes, I looked at this particular example. This is the load from assets, and I need it from the phone's file system.

Hi @i-panov , sorry for the misunderstanding, now I get it! You're right, the plugin actually doesn't support loading from models from the device's file system, but that can be added easily. I suggest you fork the repo and add the function, it would be great if you could create a pull request afterwards so I can include it in the next release!
Here are some pointers on how to do it:

I suggest you add a new nodeType, e.g. fileSystemGltf
In the AndroidARView on line 473, add a case for the new node type that doesn'T use the Flutter loader but rather uses the file path provided in the ARNode's uri property right away to pass to the ARModelBuilder's function makeNodeFromGltf
To the same for the IosARView (line 280)

Let me know if you struggle at any point :)
Cheers
Lars

It worked, thanks!

Nice! Would be really cool if you could open a pull request with the code you added so others in the community can profit from your contribution :)

I am facing the same issue. Have you rolled this into the last release?

I am trying to implement this myself but makeNodeFromGltf is failing when I pass the path uri. I'm only working on an iOS implementation too so would it be worth joining forces to get this in? I need to do the snapshot feature too, so would like to get this done ASAP.

When I pass the URI to the GLTFSceneSource class it fails. The path string I am sending as the name attribute is: /var/mobile/Containers/Data/Application/DC0F7267-7901-470D-A834-84B0E5B40FF1/Documents/statue.glb so I'm not sure this line: Bundle.main.path(forResource: name, ofType: nil) is handling that resource name properly.
@i-panov - how did you do this when you fixed the issue?

@CariusLars Itried to load the file from /data/user/0/com.cart.app/app_flutter/file_picker/Duck.glb still same issue

@CariusLars I've seen the example. got the file from file picker and created a file in path from getApplicationDocumentsDirectory . But still i'm getting unable to load the model why ?
Snippet:
Directory appDocDir = await getApplicationDocumentsDirectory();
String fileName = result.files.single.name; // duck.glb
File file = File("${appDocDir.path}/$fileName");
await file.create();

current path : /data/data/com.demo.app/app_flutter/Duck.glb

Figured out . The problem is  i was adding the whole path . Now it's working
ARNode(
    type: NodeType.fileSystemAppFolderGLB,
    uri:  fileName, // duck.glb
    scale: Vector3(0.5, 0.5, 0.5),
    position: Vector3(0.0, 0.0, 0.0),
    rotation: Vector4(1.0, 0.0, 0.0, 0.0),
      );

Is the issue about local file system resolved? Because i am getting errors about "unable to renderable file.glb".

This wont work for me...
I keep getting "Unable to load renderable"

This wont work for me...
I keep getting "Unable to load renderable"

Me too. Any solutions to this ?


There is an alternative way.

npm already has something like config built in that don't get in the way of any package.json fields
https://docs.npmjs.com/cli/v7/configuring-npm/package-json#config
{
  "name": "some-package",
  "version": "1.0.0",
  "config": {
    "unicorn": {
      "rainbow": true
    }
  }
}

There isn't any need for looking up any package.json file or loading/reading a file sync or async and then parsing it...
you can access it from process env variables like so:
// $> npm run start
console.log(process.env.npm_package_config_unicorn_rainbow) // true

That only works when you run it from a npm script. And there's also a much higher chance of conflicts as it's not defined what config should contain, so some tools might namespace its properties while another one wouldn't. If you prefer the config way, you simply just don't use this package, but I personally prefer config to be under top-level namespaces.


Use release branches

The release currently works off of main branch, requiring a freeze.
Let's change that and use a release branch.

Closed by https://github.com/TimefoldAI/timefold-solver/pull/115.


Unable to start the docker container after init when using docker-compose

This could just be because i am new to docker, but i am having a hard time figuring out how to use the container with docker compose.
Who is the bug affecting?
What is affected by this bug?
starting the docker image (jedisct1/dnscrypt-server) with docker compose after init
How do we replicate the issue?

using this compose file:
  dnscrypt:
    image: jedisct1/dnscrypt-server:latest
    container_name: dnscrypt
    restart: always
    command: "init -N my.domain.com -E 'x.x.x.x:5454'
    ports:
      - "5554:5554/udp"
      - "5554:5554/tcp"
    volumes:
      - /mnt/data/docker/dns/dnscrypt/keys:/opt/encrypted-dns/etc/keys
      - /mnt/data/docker/dns/dnscrypt/etc:/etc/dnscrypt-proxy
    environment:
      - TZ="America/Vancouver"

i get
dnscrypt    | Congratulations! The container has been properly initialized.
dnscrypt    | Take a look up above at the way dnscrypt-proxy has to be configured in order
dnscrypt    | to connect to your resolver. Then, start the container with the default command.

but then how do i start the server? if i change the compose command it recreates the image and asks me to run init again.
Expected behavior (i.e. solution)
Being able to init and then run the container with docker-compose

@katbyte  I've just moved this to the dnscrypt-server-docker repo

@katbyte  I've just moved this to the dnscrypt-server-docker repo

@katbyte It occurs to me that it might have worked for me b/c the tweaks I made to the image above was designed for k8s.  Perhaps that's why it worked for me.  Perhaps you could try that to see if it works - that might help us understand if there are any changes we should make here...

@katbyte It occurs to me that it might have worked for me b/c the tweaks I made to the image above was designed for k8s.  Perhaps that's why it worked for me.  Perhaps you could try that to see if it works - that might help us understand if there are any changes we should make here...

Hi @katbyte - did you make any progress?

Hi @katbyte - did you make any progress?

A fully working docker-compose.yml has been added to the repo, plus directions in README.md.