Environment Install Fails

Hi,
When I try install by following the instructions (cloning, filtering and pip install -requirements.txt) I get and error when it reaches the ProDy package. From a couple of Googles it looks like the ProDy package is not compatible with Python 3.12. Is there any fix for this?
I am on Ubuntu Desktop 24.04.1 with Python 3.12. The error message is below:
Collecting ProDy
Using cached ProDy-2.4.1.tar.gz (21.7 MB)
Installing build dependencies ... error
error: subprocess-exited-with-error
× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> [58 lines of output]
Collecting setuptools
Using cached setuptools-74.1.1-py3-none-any.whl.metadata (6.7 kB)
Collecting wheel
Using cached wheel-0.44.0-py3-none-any.whl.metadata (2.3 kB)
Collecting numpy<1.24,>=1.10
Using cached numpy-1.23.5.tar.gz (10.7 MB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'error'
error: subprocess-exited-with-error
    × Getting requirements to build wheel did not run successfully.
    │ exit code: 1
    ╰─> [33 lines of output]
        Traceback (most recent call last):
          File "/home/system/Software/TemBERTure/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
            main()
          File "/home/system/Software/TemBERTure/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
            json_out['return_val'] = hook(**hook_input['kwargs'])
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File "/home/system/Software/TemBERTure/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 112, in get_requires_for_build_wheel
            backend = _build_backend()
                      ^^^^^^^^^^^^^^^^
          File "/home/system/Software/TemBERTure/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend
            obj = import_module(mod_path)
                  ^^^^^^^^^^^^^^^^^^^^^^^
          File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
            return _bootstrap._gcd_import(name[level:], package, level)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
          File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
          File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
          File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
          File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
          File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
          File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
          File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
          File "<frozen importlib._bootstrap_external>", line 995, in exec_module
          File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
          File "/tmp/pip-build-env-i753o2dn/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 16, in <module>
            import setuptools.version
          File "/tmp/pip-build-env-i753o2dn/overlay/lib/python3.12/site-packages/setuptools/version.py", line 1, in <module>
            import pkg_resources
          File "/tmp/pip-build-env-i753o2dn/overlay/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2172, in <module>
            register_finder(pkgutil.ImpImporter, find_on_path)
                            ^^^^^^^^^^^^^^^^^^^
        AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
        [end of output]

    note: This error originates from a subprocess, and is likely not a problem with pip.
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.

Hi @ShellHeadBash, thanks for using TemBERTure!
In the README I wrote than the env uses 3.9.18. I raccomand using this python version.


GitHub Bug Bounty Program Legal Safe Harbor: site policy typo fix

Closes #33944

@Yewzir Thanks so much for opening a PR with this fix! I'll update the branch and get this merged once we get approval from our Site Policy team 🍏


Ansible code using shell command built-in broken on ansible releases 2.14+

If using Ansible 2.14 or later, it appears like we get failures for any usage of the shell command that has the warn parameter defined.
See background on the deprecation/removal: https://github.com/ansible/ansible/issues/79379
There are two places where this occurs in our automation (one in our code, one in a dependency).

roles/redpanda_broker/tasks/install-redpanda.yml in add the redpanda repo
in the cloudalchemy/node-exporter dependency in it's preflight checks.

We can fix the first. The second is going to be harder because the node-exporter appears to no longer be maintained and is possibly moving to a different repo per this open issue in their github repo:
https://github.com/cloudalchemy/ansible-node-exporter/issues/279
Looks like we need to use the prometheus-community version of node-exporter which patches this warn issue in the preflight.
https://github.com/prometheus-community/ansible/commit/ec6c857129d3dfb068fb703c583123cc2c4acca7
We can fix the first, but

Looks like there's another fork of the cloudalchemy repo that fixes just this issue.
https://github.com/debendraoli/ansible-node-exporter


TypeSpec definitions for Azure Quantum service data-plane

Data Plane API - Pull Request
This PR introduces TypeSpec definitions for the Azure Quantum data-plane REST API.
API Info: The Basics
Most of the information about your service should be captured in the issue that serves as your API Spec engagement record.

Link to API Spec engagement record issue: https://github.com/Azure/azure-rest-api-specs/issues/28140

Is this review for (select one):

[x] a public preview

Change Scope

Design Document: N/A
Previous API Spec Doc: N/A
Updated paths: N/A

List of changes:

There are no breaking changes in the actual surface-area/implementation of the Azure Quantum REST API. But as we created the TypeSpec definitions we:

Fixed (removed or added) required parameters/properties and x-ms-mutability via the @visibility decorator.

This may be seen as a breaking change in the client, but the service was already enforcing it anyway.

Added missing value constraints (that were already enforced in the service) with @minLength, @maxLength, and @pattern decorators.

This may be seen as a breaking change in the client, but the service was already enforcing it anyway.

Changed some operationIds (via auto-generated operation ids) to conform to Azure REST API Specs guidelines

In general, applying the guidelines made the operationId naming better to understand!
This will create a breaking change in the generated protocol-layer SDKs, but we don't have any customers that are actively using them. All of our customers use either our Jupyter Notebook Portal experience, the Azure CLI, and mostly our convenient Python SDK. We will update the Azure CLI and Python SDK wrappers/convenience-layer to adjust to these changes.

Used Azure.Core types and operations, which caused some changes in the model (for example, the name of the body parameter or former custom paged-list-response types by using ResourceList<Resource> -> Paged<Resource>)
Changed some models names/refs to improve the organization/modularity of the TypeSpec code.

As with the item above, we will update our convenience-layers accordingly.

Applied suppressions only when they were absolutely needed.

Important: In general, the breaking changes will not be visible or affect our customers, and it's better to do them now and align with the guidelines while we are still under public preview and have no users using the generated SDKs directly.
Viewing API changes
Note: The TypeSpec API view is not showing the complete TypeSpec, maybe a bug because the way we modularized our code.
It might be better to review the TypeSpec by checking out the vxfield-quantum-Microsoft.Quantum-2024-03-01-preview branch or via the PR's Files changed.
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.
Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
Swagger-Suppression-Process
to get approval.
❔Got questions? Need additional info?? We are here to help!

 Contact us!
The Azure API Review Board is dedicated to helping you create amazing APIs. You can read about our mission and learn more about our process on our wiki.

💬 Teams Channel
💌 email

Click here for links to tools, specs, guidelines & other good stuff
Tooling

Open API validation tools were run on this PR. Go here to see how to fix errors
Spectral Linting
Open API Hub

Guidelines & Specifications

Azure REST API Guidelines
OpenAPI Style Guidelines
Azure Breaking Change Policy

Helpful Links

Azure DevTools Wiki

Checks stuck in `queued` state?
If the PR CI checks appear to be stuck in `queued` state, please add a comment with contents `/azp run`.
This should result in a new comment denoting a `PR validation pipeline` has started and the checks should be updated after few minutes.

fix https://github.com/Azure/azure-rest-api-specs/issues/28140

All, sorry about the spam of "requested reviews".
I mistakenly rebase my branch with master instead of main and when I push it, some GitHub action requested the reviews...


Better placement for 'create a guide' inside a crop's page

Hey all I noticed the create a guide button is placed all the way at the bottom of all guides, therefore it's getting buried when there's a long list.

Since we're promoting the idea of more people generating content, it'd be better to move that action to a more visible place? Maybe similar to this example I made quickly:

I think that's a great idea! Another option is to take the existing UI element, place it at the top of the list, and change the text to "Make your own" (which I think would follow well after the "Guides for this crop" heading)

I like the idea of moving this to the top, though let's not lose the one at the bottom (after a potentially long scroll!), and make sure to not show them both if there's only a handful of guides?

Yeah if there's like less than 5 or 10 don't bother showing the one at the bottom

This is a really great for someone new to the project hoping to explore Ruby on Rails' controller + view structure.

Find where the guides and crops are shown (views/crops/show.html.erb and views/crop_searches/show.html.erb)
Copy the "Create Guide" button to the top.
Add a conditional to the bottom to only show if there are more than 10 guides being shown.


spgemm can handle unlimited unique numbers in matrix A

Major changes to src/generator_spgemm_csr_asparse_reg.c:

If matrix A contains too many unique non-zeros constants, instead of storing these values in the vector registers, they are stored in a packed form in memory. When these values are required for FMA, they are broadcast at runtime, as illustrated by this plot:
This change allows the kernel to handle an unlimited number of unique values in matrix A.
Add one more nested loop level for M blocking support (line 346). Currently, only the new kernel uses M blocking, as it provides spare registers for accumulating intermediate C values. By experiments on both AVX2 and AVX-512 machines, I found l_n_blocking=2 with l_m_blocking=4 provides the best performance. l_n_blocking=1 with l_m_blocking=8 also provides good performance if we have to enforce l_n_blocking to be 1 for a narrower kernel.

Changes to src/libxsmm_main.h

libxsmm_dfsspmdm and libxsmm_sfsspmdm also keep the pointer to the packed matrix A storage if required.

Changes to src/libxsmm_fsspmdm.c

Add codes to libxsmm_d/sfsspmdm_create to determine if the matrix A can be stored in the vector registers or not.
Add codes to libxsmm_d/sfsspmdm_create to generate the packed matrix A storage.
Change libxsmm_d/sfsspmdm_execute so they can pass the correct A pointer to the kernel.
Change libxsmm_d/sfsspmdm_destroy so the packed matrix A storage can be free'd.

By experiments on both AMD and Intel processors supporting AVX2, the improved routine can provide ~7 times speedup for sparse GEMM used in PyFR on average.

CI and static analysis have shown following issues, can you please fix:
./src/libxsmm_fsspmdm.c:213:24: warning: 1st function call argument is an uninitialized value [core.CallAndMessage]
./src/libxsmm_fsspmdm.c:219:34: warning: 1st function call argument is an uninitialized value [core.CallAndMessage]
./src/libxsmm_fsspmdm.c:405:17: warning: Potential leak of memory pointed to by 'a_unique_values' [unix.Malloc]
./src/libxsmm_fsspmdm.c:572:24: warning: 1st function call argument is an uninitialized value [core.CallAndMessage]
./src/libxsmm_fsspmdm.c:578:34: warning: 1st function call argument is an uninitialized value [core.CallAndMessage]
./src/libxsmm_fsspmdm.c:763:17: warning: Potential leak of memory pointed to by 'a_unique_values' [unix.Malloc]

@alheinecke Could you show me how to run the CI and static analysis on a local machine?

Static analysis can be performed like:
cd /path/to/libxsmm
scripts/tool_analyze.sh

If Clang/LLVM C++ Compiler is not found (try clang++ --version), an error message should appear.

Btw, I think we have no CI tests for the spgemm domain other than compiling sample code like an interface test. So, even samples/pyfr/test.sh does not run on our CI. Please note, test.sh seems to focus on performance rather than validation.

The problem we had last time where compiling/static analysis issues.

Taking a step back here, with this new arrangement is there any need for the permute operands in memory after this change?  If not, then we can greatly simply the driver code by always passing the A matrix in as the first argument, and eliminating a load of complexity in the process.  This might also enable us to get rid of the code which generates the warnings.


Language switch

UI control in the navbar where the user gets to change the language in real time.

Already sinked some time in this but hitting the wall where I currently don't know how to make the TranslationService, which is currently initialized as a private Service in app.component.ts, available for use in the header module.
Any hints are welcome!

Current branch I'm working on, where it "this.translate" currently can't be found because the header component can't get to the service https://github.com/bram-atmire/dspace-angular/commit/b2011e701c54b41bb765add05524d9511bb71196

You'll have inject the translate service into your component, by adding it as an argument to your constructor (don't forget to set a scope - private, protected, public, ... - for it). The HeaderComponent already uses two injectables, the Store and HostWindowService - just add the TranslateService here.
This is not needed for your particular issue, but if you'd create a new service service this would be important to know, so I'll just mention it anyway:
You have to make sure the module that your header component is a part of - which is the AppModule in your case - imports the TranslateModule. The AppModule already imports the TranslateModule here.

Tried it and it worked, but shouldn't this be a shared component like auth-nav-menu in order to better reuse/remove  it.  But I'm completely new to Angular.
One other question tried to make it configurable default Language and list of available languages and put this in config/environment.dev.js for local development.
Where should config options for a real commit to DSpace go ?

I also got a little bit further, and have now a working, but ugly language switch dropdown cfr
https://github.com/bram-atmire/dspace-angular/tree/issue-298-language-switch
I agree, it might be cleaner if this is not such a part of the header but a separate component.
I also wonder about how to address the configurability:

reading out the configuration (where do we read it out?)
allowing a user to enable another language
allowing a user to disable a language

And how that config persists.

As @cjuergen mentioned, it's neater if you put the language switch in a separate component, and use that component in the header.
To ensure the select is styled by bootstrap give it the class form-control. To ensure it fits nicely in the navbar, wrap it in a div or form with the class form-inline
For now, I'd configure the available languages by adding them to environment.default.js. They can be overwritten in the environment.(dev|prod|test).js files for specific deployments. Since the translation source files reside on the angular server, it makes sense to configure them there as well (as opposed to getting the config from REST).
Afterwards we can consider adding a step in the build process that configures the languages in ngx-translate based on the available language json files. However I'm not convinced that is better, as you may want to disable languages that come with dspace, and if you do that by deleting the translation files, you may need to do it again every time you update.

Imo it should be configurable and not automatically be pulled from available translations in order to give the instance control over it. Furthermore most will have to adjust the message catalogue and be it mere branding. They usually do it for only a couple of languages and not for all.

PR 308 can be reviewed. It has typedoc, but doesn't have any specific tests yet.


Update relative URL for results

The current version was broken for me. This version has the advantage of working fine even in branches.

Thank you for this fix :+1:


Added timestamp fields to Ping/Pong messages

Added timestamp field to Ping message
Added ping_timestamp field to Pong message

(to reflect the ping timestamp back)

This is in preparation for a Canary implementation which uses Ping/Pong message to measure latency throughout our Relay deployments

Note: whitespace changes were from auto-formatting


Add negative damage

Some figures have -1 damage modifiers.

I simulate this adding +1 block but if there's pierce from attacker I understand that's not exactly the same.


Infinite indication of loading of taxonomy data when searching for input missing in the taxonomy

Issue came from UAT
Preconditions:

A category and an associated taxonomy exist.
An extraction job with at that category and taxonomy is created and started.

Steps:

Open the annotation task.
Select the category with taxonomy and create a label over some part of text.
The right sidebar switches to the “data” tab, and a search bar appears below.
Enter something that is not a substring of any entries display names in the taxonomy.

Result:
Animation of loading (jumping three dots) appears and runs indefinitely.
Expected result:
'Nothing was found' or similar text should be shown.

Reopen this issue as reproduced on dev1.

fixed by https://github.com/epam/badgerdoc/pull/590

fixed


fix(shimmer): correctly stop shimmer and disabled autoStart on Android

Closes #5

Thanks again @sebj54 published with 1.0.7 now.


TN-1617

Implements /api/report/questionnaire_status

Hello @pbugni! Thanks for submitting the PR.

There are no PEP8 issues in the file portal/models/qb_status.py !

In the file portal/views/reporting.py, following                are the PEP8 issues :

Line 283:5: E303 too many blank lines (2)

There are no PEP8 issues in the file tests/__init__.py !

There are no PEP8 issues in the file tests/test_assessment_status.py !

There are no PEP8 issues in the file tests/test_reporting.py !

@pbugni You've got a conflict FYI

As per the current file listing:  "These merge commits were added into this branch cleanly."
Closing this PR - apparently the changes were already merged.


test: E2E tests for apis (REST)

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #3625 into master will decrease coverage by 0.16%.
The diff coverage is n/a.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 051b2fb...a5f54fd. Read the comment docs.

Codecov Report

Merging #3625 into master will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3625      +/-   ##
==========================================
- Coverage   59.12%   59.09%   -0.04%
==========================================
  Files         289      287       -2
  Lines       13341    13349       +8
  Branches     2532     2675     +143
==========================================
  Hits         7888     7888
+ Misses       5046     5036      -10
- Partials      407      425      +18

Impacted Files
Coverage Δ

packages/graphql-mapping-template/src/print.ts
35.71% <0.00%> (ø)

...ages/amplify-appsync-simulator/src/server/index.ts
64.28% <0.00%> (ø)

...ges/amplify-util-mock/src/CFNParser/stack/index.ts
88.09% <0.00%> (ø)

...ges/graphql-transformer-core/src/util/fileUtils.ts
11.76% <0.00%> (ø)

...es/graphql-transformer-core/src/stripDirectives.ts
35.29% <0.00%> (ø)

...amplify-appsync-simulator/src/server/operations.ts
28.12% <0.00%> (ø)

...graphql-transformer-core/src/TransformerContext.ts
26.20% <0.00%> (ø)

...mplify-appsync-simulator/src/resolvers/function.ts
9.67% <0.00%> (ø)

...plify-appsync-simulator/src/server/subscription.ts
26.95% <0.00%> (ø)

...lify-graphql-types-generator/src/compiler/index.ts
90.32% <0.00%> (ø)

... and 21 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9f0656c...adc3c59. Read the comment docs.


Restore pylint speedup for PRs

Was removed in #542.
Also modifying lint_fileset so that removing / renaming files does not give run_pylint fits.

Coverage remained the same when pulling 5a2fac8c5c420607a16ac03ffa7d15b716580ba8 on dhermes:restore-pylint-speedup into 55285f95f0260139c572cc4b956effd62c395ecf on GoogleCloudPlatform:master.

LGTM


Include some External Compaction info in Monitor

Is your feature request related to a problem? Please describe.
There is currently nothing reported about External Compactions in the Monitor
Describe the solution you'd like
At the minimum, include the same info about External compactions that we currently provide for internal compactions (number running, queued). If possible it would be helpful to list the process ID or external compaction ID of the process performing the compactions. We may need to add a separate page since the information would likely be separate from what we currently provide.

@keith-turner @dlmarion Any ideas for this?

IIRC the external compactions are included currently in the number of running and queued compactions displayed on the monitor. This is because the external compactions are queued up from the tserver and the tserver knows when they are running/finished/failed. There are several places where external compaction information is stored.

When an external compaction is running an ecomp column is added in the metadata table for the Tablet. It lists the files included in the compaction, the compactor address, the compaction settings, etc.

When a compaction is finished the entry for the tablet in the metadata table is removed and an ~ecomp entry is added to signify that the external compaction is finshed (succeeded or failed).

The blog provides a description for both 1 and 2. However, I'm not sure that this provides a complete picture. There are two data structures in the CompactionCoordinator that may also be of use. Specifically the QueueSummaries and the RUNNING collections. As their name implies, the QueueSummaries collection contains a summary of the external compaction queues for each tserver and the RUNNING collection has information about what is active now.
To populate the QueueSummaries, the CompactionCoordinator asks each TServer about the external compactions that are queued up. When a Compactor is free to do work, the CompactionCoordinator assigns it the highest priority compaction for the queue that it is working on. An entry is put into the RUNNING collection for that compaction and then the Compactor calls back periodically to update the state using this method. If you look at where this is used, you will see that it tell the CompactionCoordinator when the compaction starts/succeeds/fails and also updates it periodically on how many entries it has written out to show progress information.
I don't think we have exposed the information in the CompactionCoordinator yet, except for in the tests. In some of the tests I start up the TestCompactionCoordinator so that I can use the information in the RUNNING collection to determine external compaction success / failure.

I am not sure what exactly we should show but I think the important part now would be to determine if we need to create any Thrift RPCs in ManagerMonitorInfo to expose the information to the Monitor. We won't be able to create new RPCs in a bug fix release. As long as the information is available to the monitor, we should be able to change how the information is viewed in a bug fix release though. So if there is anything you can think of, such as information from the CompactionCoordinator, that we will need to create RPCs for, we should take care of that now.

IIRC the external compactions are included currently in the number of running and queued compactions displayed on the monitor. This is because the external compactions are queued up from the tserver and the tserver knows when they are running/finished/failed.

If this is the case, then perhaps there is nothing that we need to do for now. I will leave this ticket open until someone can confirm this.


Expand node after setChildren

Hello.
Thank you very much for this compement!! It's so usefull.
My question.
I'm trying to expand a node after add children with a socket response.
public handleSelected(e: NodeEvent): void{
    const nodeController = this.treeComponent.getControllerByNodeId(e.node.id);
    let nuevosHijos: Array<TreeModel>;
    let padre: EspacioPadre = {espacio_padre_almacen_id: this.selectedAlmacen, espacio_padre_id: e.node.id};
    this.channelEspacio.push(ArbolAction.ObtenerHijos.valueOf(), padre)
      .receive("ok", ({hijos: res}) => {
        nuevosHijos = JSON.parse(JSON.stringify(res));
        nodeController.setChildren(nuevosHijos);
        console.log(res);
      })
      .receive("error", ({hijos: res}) => {
        console.log("Error al recbir hijos");
      });
    nodeController.expand();
  }

node not expand with nodeController.expand().
Thanks for reading.

@horsaco27 try putting nodeController.expand(); after nodeController.setChildren(nuevosHijos); and before console.log(res);

Thank you for your answer, but still not working

are you sure its e.node.id or e.node.node.id? version i'm using<EMAIL_ADDRESS>

I'm ussing<EMAIL_ADDRESS>version.
You tree already has children? It seems tree without children can't expand. I trying to set children after click on one father.
Let me check your example...

all the nodes in the tree that i work with, have at least an empty array as children.

Thank you for your help.
Your example not working for me. Code here.
    if (e && e.node && e.node.node && e.node.node.id) {
      console.log(e.node.node.id);
      console.log(e.node.id);
      const nodeController = this.treeComponent.getControllerByNodeId(e.node.node.id);
      console.log(nodeController.isCollapsed());

      if (nodeController.isCollapsed()) {
          nodeController.expand();
      }
    }
}

The result

e.node.id and e.node.node.id are the same
Every node has this struct:
{ value: "Sección-7", id: 7, children: [] }

I'm confused....console.log(nodeController.isCollapsed()); results false means it is expanded. Isn't that what you were looking for?

If you don't mind, can you put your code in plunker, or https://stackblitz.com/edit/angular?

The problem is that console.log(nodeController.isCollapsed()); returns false but node is not expand.
Here is the example:
https://angular-hazauh.stackblitz.io
I want to expand node whenever children are added.

I see what the problem is...children is an empty array. (my bad! I should have mentioned clearly before). It needs to be array of objects with empty values. Check this out:
public tree: TreeModel = {
    value: 'Programming languages by programming paradigm',
    id: 10,
    children: [
      {
        value: 'Object-oriented programming',
        id: 1,
        settings: {
            static: true,
            rightMenu: false,
            leftMenu: false,
            isCollapsedOnInit: true,
        },
        children: [{
            value: '',
            id: ''
        }]
      },
      {
        value: 'Prototype-based programming',
        id: 5,
        settings: {
            static: true,
            rightMenu: false,
            leftMenu: false,
            isCollapsedOnInit: true,
        },
        children: [{
            value: '',
            id: ''
        }]
      }
    ]
  };

It is advised to pass settings as well to make the nodes collapsed by default.
By the way, your if condition is incorrect. It should be e && e.node && e.node.node && e.node.node.id && e.node.node.id !== 10 (make sure that your logic runs only on child nodes not on root)

That's the idea!
Thak you very much! Now working perfectly!!
Leave this here if anyone needs help!
https://stackblitz.com/edit/angular-hazauh

when I created two buttons when I clicked new file button it added a new file and click new folder button added folder also but the problem is when I added a folder and then added child then it's not collapsed and expanded please tell me the solution.here is the code and my problem.
https://stackblitz.com/edit/ng2-tree-create-file-4yrdcm?file=app/hello.component.ts


English translations on alerts?

Is it possible to have translations to other languages or at least English to alert modals?

Sorry for the late reply, currently does not support, I'll support in these two days, thanks for the proposal.

It is supported in v1.0.24
you can use prop limitPrompt to custom limit alert content
eg:
<vux-uploader-component
  :limitPrompt="limit => `No more than ${limit} photos`"
></vux-uploader-component>


Feature: _vectorcall support

Pull Request Test Coverage Report for Build<PHONE_NUMBER>4
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.534%

Totals

Change from base Build<PHONE_NUMBER>7:
0.0%

Covered Lines:
1067

Relevant Lines:
1072

💛  - Coveralls


Karpener unable to create spot instances in a local zone

Description
When trying to use a spot instance in a local zone Karpenter fails to launch one even if there is capacity for it. As an example I am using the t3.medium in the eu-north-1-cph-1a local zone.
Observed Behavior:
{"level":"ERROR","time":"2024-05-11T19:42:18.235Z","logger":"controller.provisioner","message":"Could not schedule pod, incompatible with nodepool \"eks-cluster-prefect\", daemonset overhead={\"cpu\":\"210m\",\"memory\":\"240Mi\",\"pods\":\"6\"}, no instance type satisfied resources {\"cpu\":\"210m\",\"memory\":\"240Mi\",\"pods\":\"7\"} and requirements karpenter.sh/capacity-type In [spot], karpenter.sh/nodepool In [eks-cluster-prefect], node.kubernetes.io/instance-type In [t3.medium], topology.kubernetes.io/zone In [eu-north-1-cph-1a], worker/type In [prefect] (no instance type met the scheduling requirements or had a required offering); incompatible with nodepool \"eks-cluster-default\", daemonset overhead={\"cpu\":\"210m\",\"memory\":\"240Mi\",\"pods\":\"7\"}, incompatible requirements, key worker/type, worker/type In [prefect] not in worker/type In [worker]","commit":"a70b39e","pod":"prefect/inquisitive-carp-mwbgm-vtxj7"}
Karpenter is able to discover the spot instances:
karpenter_cloudprovider_instance_type_offering_available{capacity_type="spot",instance_type="t3.medium",zone="eu-north-1-cph-1a"} 0 karpenter_cloudprovider_instance_type_offering_available{capacity_type="spot",instance_type="t3.medium",zone="eu-north-1a"} 0 karpenter_cloudprovider_instance_type_offering_available{capacity_type="spot",instance_type="t3.medium",zone="eu-north-1b"} 0 karpenter_cloudprovider_instance_type_offering_available{capacity_type="spot",instance_type="t3.medium",zone="eu-north-1c"} 0
AWS Is offering this instance type but is not publishing the price history
Expected Behavior:
Have a spot instance scheduled, or get the warning that no capacity is available.
Reproduction Steps (Please include YAML):
NodeClass is basically the default one.
apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
  annotations:
    karpenter.sh/nodepool-hash: "2250080940955023888"
  creationTimestamp: "2023-12-26T18:51:41Z"
  generation: 5
  name: eks-cluster-prefect
  resourceVersion: "55330654"
  uid: 4afa6704-20b1-4398-8834-02002b4dbdc5
spec:
  disruption:
    consolidateAfter: 30s
    consolidationPolicy: WhenEmpty
    expireAfter: 720h
  template:
    metadata:
      labels:
        worker/type: prefect
    spec:
      kubelet:
        evictionHard:
          memory.available: 200Mi
      nodeClassRef:
        name: eks-cluster
      requirements:
      - key: node.kubernetes.io/instance-type
        operator: In
        values:
        - t3.medium
      - key: karpenter.sh/capacity-type
        operator: In
        values:
        - spot
      - key: topology.kubernetes.io/zone
        operator: In
        values:
        - eu-north-1-cph-1a
      taints:
      - effect: NoSchedule
        key: prefect/dedicated
status: {}

Versions:

Chart Version: 0.36.0; Image version: 0.36.1
Kubernetes Version (kubectl version):

Client Version: v1.28.2 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 Server Version: v1.29.3-eks-adc7111

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

AWS Is offering this instance type but is not publishing the price history

Do you see different behavior for on-demand instance types? Is this issue just for spot or for all instance types?

yeah if I change this exact config to use on-demand everything gets scheduled like normal. But as soon as it's switched to spot it fails

Are you able to launch this instance in non-local zones? Based on the metric it looks like we believe the instance type is unavailable across all zones, not just the local zone. Do you have a full set of Karpenter logs?

yes, if I include a non-local zone AZ both on-demand and spots work for the regular AZ. local-zone continues to fail. (please don't mind the closed spot instance. It was in the running state, I was just too late grabbing a screenshot from the spot requests page)
karpenter_bad.log
karpenter_success.log

It does look like we assume if we can discover spot pricing within a region, we can discover pricing across all zones. If a zone is missing from the pricing information, offerings for that zone are marked as unavailable. It's probably reasonable to continue to fallback to the on-demand pricing if pricing for a specific zone is unavailable, like we would for the region if it were unavailable. I'm still a bit confused about your metric values though, Karpenter believed there were no offerings available in any zone for t3.medium, not just the local zone. Did you see different values for the karpenter_cloudprovider_instance_type_offering_available metric when you were successfully able to launch instance in the normal AZs?

yes I noticed that when I allowed it to be scheduled in the other AZ it changed to a 1. I attached the entire metrics list, hopefully that also helps.
metrics.txt

After taking another look at your logs, I realized the reason the metrics showed the instance as unavailable was because you're only selecting subnets from that zone. I had assumed you were only using the nodepool to filter down zone. That clears up my point of confusion, and the metrics you provided look right to me.
I guess the question at this point is what are the implications of falling back to on-demand pricing in a single zone. The only thing I can think of is that we may not consolidate when we should have been able to, but the same can be said for full region fallback. I'm going to try and think if there's anything else, but that seems like a reasonable path forward at the moment.

what are the implications of falling back to on-demand pricing in a single zone

Bit confused with this one, do you mean as a fallback showing that on-demand pricing? The implication I could see is that if you define a cheap t3 instance and an expensive g4dn type then that might cause issues. I noticed that the g4dn has ~77% cost savings and would be cheaper than that t3 one.
For my use case this would not be a problem, but for others it could be.
Could another option be to create an average from all other valid discovered zones?

@jmdeal Have you been able to get any progress with this yet?


Close agent when server returns PERMISSION_DENIED

Hi ,
I'm passing authorisation token in meta data from the node js agent and OAP server checks if the token is valid or not and if it is not valid then it returns status PERMISSION_DENIED and node js agent infinitly sends request to the server instead of killing the agent gRPC process.
I tried this in remtoe-client-service.js file hoping it would work but the application using node js is
crashing.

is there a way to just stop the node js agent without kill the application using it ?

I think to do that, you need to support the agent running in NO_OP mode.

NO_OP

Hi @wu-sheng  can you be more specific ?
i didn't understand it , if it's possible can you post how and where the changes need to be done

I don't read the go2sky codes recently, in Java, it is like this, https://github.com/apache/skywalking/blob/master/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/IgnoredTracerContext.java.
It doesn't generate meaningful spans and segment.


[WIP]Improve kmp.ShortDiff when one object is invalid

Fixed knative/serving#4655

Both are invalid throw an error

If x is invalid and y is valid, add '+' prefix and no '-'

If x is valid and y is invalid, add '-' prefix and not '+'

@dgerd Sorry for the delay, do you have time to review the code?

No worries. Thanks for the PR!! I will take a look Monday morning.
On Sun, Jul 14, 2019 at 8:27 AM fatkun<EMAIL_ADDRESS>wrote:

@dgerd https://github.com/dgerd Sorry for the delay, do you have time
to review the code?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/knative/pkg/pull/528?email_source=notifications&email_token=AKLJ6MQG77IUZJPLFW5ZAE3P7NAVHA5CNFSM4IDQSQJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ4HTCY#issuecomment-511211915,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKLJ6MWQRMWVVOL6CXNMWDTP7NAVHANCNFSM4IDQSQJQ
.

/ok-to-test

/lgtm

/assign @mattmoor
for approval

@fatkun Can you remove the "[WIP]"?


[webview_flutter] navigationDelegate, onPageStarted, onPageFinished not always called

Steps to Reproduce

Execute flutter run on the code sample (with webview_flutter: ^3.0.4)
Press the ./ or github button
Navigate to e.g. Actions on github
Or navigate to a story on Slashdot

Expected results:
Log of calls to navigationDelegate, onPageStarted, onPageFinished
Actual results:
No calls. On github only the onPageFinished

Code sample
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late WebViewController webViewController;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            bottomSheet: Row(children: [
              TextButton(
                child: const Text('/.'),
                onPressed: () =>
                    webViewController.loadUrl('https://m.slashdot.org'),
              ),
              TextButton(
                child: const Text('github'),
                onPressed: () =>
                    webViewController.loadUrl('https://github.com/pimusicbox'),
              ),
            ]),
            body: WebView(
              navigationDelegate: (NavigationRequest navigation) async {
                debugPrint('Nav ${navigation.url}');
                return NavigationDecision.navigate;
              },
              key: const Key('webviewkey'),
              javascriptMode: JavascriptMode.unrestricted,
              onWebViewCreated: (WebViewController controller) {
                webViewController = controller;
              },
              onPageStarted: (url) {
                debugPrint('Page started $url');
              },
              onPageFinished: (url) {
                debugPrint('Page finished $url');
              },
              onWebResourceError: (error) async {
                debugPrint(
                    'Webview load error: ${error.description} ${error.failingUrl}  ${error.domain}');
              },
              backgroundColor:
                  Colors.white, //needed for some websites in dark mode
              initialMediaPlaybackPolicy: AutoMediaPlaybackPolicy
                  .require_user_action_for_all_media_types,
              allowsInlineMediaPlayback: true,
              gestureNavigationEnabled: true,
            )));
  }
}

Logs

[✓] Flutter (Channel stable, 3.0.5, on macOS 12.5 21G72 darwin-arm, locale nl-NL)
    • Flutter version 3.0.5 at /Users/wouter/Library/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (3 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/wouter/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_SDK_ROOT = /Users/wouter/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] VS Code (version 1.69.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (3 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 12 (API 32) (emulator)
    • macOS (desktop)             • macos         • darwin-arm64   • macOS 12.5 21G72 darwin-arm
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 103.0.5060.134

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Hello @woutervanwijk. I am unable to reproduce this issue. I am testing on stable, on an Android Emulator (API 32). See below the logs on clicking each of the buttons. Let me know if I am missing any reproduction steps.

Logs
Clicking on github
I/flutter ( 9805): Page started https://github.com/pimusicbox
D/EGL_emulation( 9805): eglCreateContext: 0xb4000077eda20610: maj 3 min 0 rcv 3
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
D/EGL_emulation( 9805): app_time_stats: avg=254.17ms min=13.84ms max=3384.61ms count=16
D/EGL_emulation( 9805): app_time_stats: avg=248.52ms min=5.75ms max=3401.53ms count=16
I/flutter ( 9805): Page finished https://github.com/pimusicbox
I/flutter ( 9805): Page finished https://github.com/pimusicbox
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
I/flutter ( 9805): Page finished https://github.com/pimusicbox

Clicking on /.
I/flutter ( 9805): Page started https://m.slashdot.org/
D/EGL_emulation( 9805): eglCreateContext: 0xb4000077eda20610: maj 3 min 0 rcv 3
I/chromium( 9805): [INFO:CONSOLE(93)] "A parser-blocking, cross site (i.e. different eTLD+1) script, https://a.fsdn.com/sd/m/assets/phone_templates.min.js?v=2.9, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.", source: https://m.slashdot.org/ (93)
I/chromium( 9805): [INFO:CONSOLE(93)] "A parser-blocking, cross site (i.e. different eTLD+1) script, https://a.fsdn.com/sd/m/assets/phone_templates.min.js?v=2.9, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.", source: https://m.slashdot.org/ (93)
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
D/EGL_emulation( 9805): app_time_stats: avg=44610.13ms min=44610.13ms max=44610.13ms count=1
D/EGL_emulation( 9805): app_time_stats: avg=1513.38ms min=5.19ms max=44619.60ms count=30
D/EGL_emulation( 9805): app_time_stats: avg=902.28ms min=39.49ms max=1765.06ms count=2
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
I/chromium( 9805): [INFO:CONSOLE(18)] "[GPT] Div ID passed to googletag.display() does not match any defined slots: f.", source: https://securepubads.g.doubleclick.net/gpt/pubads_impl_2022072702.js (18)
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
D/EGL_emulation( 9805): app_time_stats: avg=93.63ms min=14.38ms max=172.84ms count=11
D/EGL_emulation( 9805): app_time_stats: avg=91.24ms min=10.04ms max=171.58ms count=11
D/EGL_emulation( 9805): app_time_stats: avg=100.81ms min=19.33ms max=166.97ms count=10
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
I/chromium( 9805): [INFO:CONSOLE(2)] "Powered by AMP ⚡ HTML – Version<PHONE_NUMBER>000 https://0c7ef1e5e8d1331280bdd3e02f95aeaf.safeframe.googlesyndication.com/safeframe/1-0-38/html/container.html", source: https://cdn.ampproject.org/rtv/012207221643000/amp4ads-v0.mjs (2)
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
I/chromium( 9805): [INFO:CONSOLE(2)] "Unrecognized feature: 'attribution-reporting'.", source: https://cdn.ampproject.org/rtv/012207221643000/v0/amp-ad-exit-0.1.mjs (2)
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
I/chromium( 9805): [INFO:CONSOLE(2)] "Powered by AMP ⚡ HTML – Version<PHONE_NUMBER>000 https://0c7ef1e5e8d1331280bdd3e02f95aeaf.safeframe.googlesyndication.com/safeframe/1-0-38/html/container.html", source: https://cdn.ampproject.org/rtv/012207221643000/amp4ads-v0.mjs (2)
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
D/EGL_emulation( 9805): app_time_stats: avg=56.34ms min=9.57ms max=172.78ms count=18
D/EGL_emulation( 9805): app_time_stats: avg=54.85ms min=5.01ms max=174.67ms count=18
D/EGL_emulation( 9805): app_time_stats: avg=66.93ms min=12.50ms max=183.18ms count=15
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
E/FrameEvents( 9805): updateAcquireFence: Did not find frame.
I/flutter ( 9805): Page finished https://m.slashdot.org/

flutter doctor -v (Stable)
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.4 21F79 darwin-arm, locale en-US)
    • Flutter version 3.0.5 at /Users/nabeelparkar/fvm/versions/stable
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (3 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nabeelparkar/Library/Android/sdk/
    • Platform android-33, build-tools 33.0.0
    • ANDROID_SDK_ROOT = /Users/nabeelparkar/Library/Android/sdk/
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /Applications/Brave Browser.app/Contents/MacOS/Brave Browser

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 69.0.4
    • Dart plugin version 221.5921.27

[✓] VS Code (version 1.69.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Brave Browser <IP_ADDRESS>

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

flutter doctor -v (Master)
[✓] Flutter (Channel master, 3.1.0-0.0.pre.2028, on macOS 12.4 21F79 darwin-arm, locale en-US)
    • Flutter version 3.1.0-0.0.pre.2028 on channel master at /Users/nabeelparkar/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision e3bc09a6df (40 minutes ago), 2022-08-02 01:15:06 -0400
    • Engine revision 1c3b1b305e
    • Dart version 2.19.0 (build 2.19.0-52.0.dev)
    • DevTools version 2.16.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/nabeelparkar/Library/Android/sdk/
    • Platform android-33, build-tools 33.0.0
    • ANDROID_SDK_ROOT = /Users/nabeelparkar/Library/Android/sdk/
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13F100
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /Applications/Brave Browser.app/Contents/MacOS/Brave Browser

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 69.0.4
    • Dart plugin version 221.5921.27

[✓] VS Code (version 1.69.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Brave Browser <IP_ADDRESS>

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

The problem is after the page is loaded and you tap on another navigational item
Did you navigate to 'Actions' (or another sub) on github? And to a story on Slashdot?

There are caveats listed on Android here. Since this is working as expected, I am closing this issue. If you disagree, please comment and we can re-open it

Ah, good to know. But don't close it, because it also happens on iOS and newer Android versions. Use a phone simulator, not tablet. E.g. the slashdot site needs to be at m.slashdot.org On iOS (iphone 13), if you click on something, no logs of navigation/pageloading. On github the same. Just click around and notice the absense of the logs while navigating

I'll keep the issue open for insights from the team

Any solution?
I tested the package webview_flutter_web and it keep the issue.

Any solution?
I'm facing same issue when use the webview_flutter_web.

I have the same issue.
In my case, onPageStated() works on debug mode, does not work on release mode consistently. I haven't tested other callbacks.

webview_flutter version: 4.01
platform: android
flutter / dart versions: 3.3.10 / 2.18.6

This issue happens to be me very consistently on webview_flutter version 4.0.1.
Both onPageStarted() and onPageLoaded() do not fire in release or profile mode. In debug mode everything works as expected.
The way I've gotten around this is to initialize the NavigationDelegate as it's own variable before creating the WebViewController instead of initializing it when creating the WebViewController. For some reason that seems to work better. I'll include examples below:
Instead of doing this
class _MyViewState extends State<MyView> {
  late WebViewController _controller;

  @override
  void initState() {
    _controller = WebViewController()
      ..setNavigationDelegate(NavigationDelegate(onPageFinished: (url) {
        // TODO
      }, onPageStarted: (url) {
        // TODO
      }));
    super.initState();
  }
}

Do this
class _MyViewState extends State<MyView> {
  late WebViewController _controller;
  late NavigationDelegate _navigationDelegate;

  @override
  void initState() {
    _navigationDelegate = NavigationDelegate(onPageFinished: (url) {
      // TODO
    }, onPageStarted: (url) {
      // TODO
    });
    _controller = WebViewController()
      ..setNavigationDelegate(_navigationDelegate);
    super.initState();
  }
}

I don't know why but for some reason this fixed the issue for me.

I finally downgraded the version to 2.8.0 to solve the problem.

Facing the same issue here, even with the solution @joshmossas suggested. Yes it did help slightly, but issue still persists.

When in release mode, does that part work?
https://github.com/flutter/plugins/blob/39197f17ca595f6ffb6ed11b9e046fc27e2e7e50/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart#L104
When I am in release mode, the NavigationDelegate event is not called. From webview_flutter 4.0.1 version

@joshmossas That's so weird!!! Why would that yield different results??? It worked for me as well but I am thoroughly and utterly confused on WHY?? Dart has to be doing some weird wizardry with const stuff and initializing it earlier so it has time to settle its internal state or something...

@joshmossas @davidpanic @keithcwk @FangHanZreo @innomatica
Can you specify

Which device you are using?
Which Android version you are running?
Are you using a physical device or emulator?
Are there specific websites that you don't see the callbacks?
Which version of webview_flutter_android is in your pubspec.lock?

I wasn't able to reproduce the issue. I was using a Pixel 6 Pro emulator with Android version 33.
I ran the example app in the webview_flutter plugin with flutter run --release. I tested https://flutter.dev, https://www.github.com, and https://m.slashdot.org.

As I described above, it happens only on release mode so only on a real device and does not produce any debug messages. I tested on an Android 11 device and on an 13 device as well.  I wasn't aware that I can run a release mode on an emulator.
The version of webview_flutter affected by this issue is 4.0.1. And it seems to happen very reliably regardless of the target website.
I also see that recent version (108.0.5359.128)of Android System WebView seems to crash on certain website like reddit.com but I'm certain that is a different matter altogether.

I can confirm that @joshmossas  method works although thorough testing is yet to be done. For some reason, you need to create and initialize NavigationDelegate() before WebViewController().

As per https://github.com/flutter/flutter/issues/108801#issuecomment-1367490174, there is a workaround available. Adding the relevant label. If this workaround is invalid, let me know and I can remove that label

I recently experienced exactly the same issue. I tried the workaround mentioned here #108801 (comment) and it helped, but I noticed two things I'd like to share here, maybe it helps others.
First, it seems to be important that the NavigationDelegate (which the comment linked above suggests to create before creating the WebView) is a member in the state class and not a local variable. I tried with local variable, and it failed. (My guess is that this is the reason why the initialization described in the documentation causes this issue in Android release builds).
Second, these methods: setCookie, setJavaScriptMode, addJavaScriptChannel, loadRequest and most importantly setNavigationDelegate all have a return type of Future<void>, so they work asynchronously.  But the documentation does not say that we should use await. This is strange to me because if we call a future in initState, chances are good that the build method will run earlier than this future completes, it will complete before the build only if we are lucky enough and the methods are quick.
So I ended up combining the workaround of #108801 (comment) with a FutureBuilder and using await on the initalization methods, also keep every important variable in a member of my state class.
Of course due to the nature of this issue I don't know whether it is a fully working example, but as for now, after testing it 100 times, I could not reproduce the original error, for me now onProgress, onPageStarted and onPageFinished all seems to work on Android in release mode as well.
Here is my code, it uses print on purpose to show the logs if you run it in release mode. The Reload button clears the cache with awaiting it and reloads the page. (https://flutter.dev is a good test because it loads quite slow and usually calls onWebResourceError a couple of times, at least from Android web view).
// ignore_for_file: avoid_print

import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

class WebViewTest extends StatefulWidget {
  const WebViewTest({Key? key}) : super(key: key);
  @override
  WebViewTestState createState() => WebViewTestState();
}

class WebViewTestState extends State<WebViewTest> {
  static final _uri = Uri.parse('https://flutter.dev');

  late final Future<WebViewController> _initWebViewFuture;
  late final WebViewController _webViewController;
  late final NavigationDelegate _navigationDelegate;

  @override
  void initState() {
    super.initState();
    _initWebViewFuture = _initWebView();
  }

  Future<WebViewController> _initWebView() async {
    print('WebView: _initWebView started.');

    _navigationDelegate = NavigationDelegate(
      onProgress: _onProgress,
      onPageStarted: _onPageStarted,
      onPageFinished: _onPageFinished,
      onWebResourceError: _onWebResourceError,
    );

    _webViewController = WebViewController();

    await _webViewController.setJavaScriptMode(JavaScriptMode.unrestricted);
    await _webViewController.addJavaScriptChannel('MyJavaScripChannel',
        onMessageReceived: _onMessageReceived);
    await _webViewController.setNavigationDelegate(_navigationDelegate);
    await WebViewCookieManager().setCookie(
        const WebViewCookie(name: "cookie", value: 'value', domain: 'domain'));
    await _webViewController.loadRequest(_uri);

    print('WebView: _initWebView finished.');

    return Future.value(_webViewController);
  }

  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(title: const Text('WebView Test')),
        body: FutureBuilder<WebViewController>(
          future: _initWebViewFuture,
          builder: (context, snapshot) {
            if (snapshot.hasData) {
              return WebViewWidget(controller: _webViewController);
            } else if (snapshot.hasError) {
              return const Center(child: Text('WebView initalization error.'));
            } else {
              return const Center(
                child: CircularProgressIndicator(),
              );
            }
          },
        ),
        floatingActionButton: FloatingActionButton.large(
          onPressed: () async {
            await _webViewController.clearCache();
            await _webViewController.loadRequest(_uri);
          },
          child: const Text('Reload'),
        ),
      );

  void _onPageStarted(String url) {
    print('WebView: _onPageStarted');
  }

  void _onProgress(int percent) {
    print('WebView: _onProgress: $percent');
  }

  void _onPageFinished(String url) async {
    print('WebView: _onPageFinished');
  }

  void _onWebResourceError(WebResourceError error) {
    print(
        'WebView: _onWebResourceError: ${error.description} (${error.errorCode}) - ${error.errorType}');
  }

  void _onMessageReceived(JavaScriptMessage message) {}
}

it seems to be important that the NavigationDelegate (which the comment linked above suggests to create before creating > the WebView) is a member in the state class and not a local variable.

Preserve NavigationDelegate instance in the state class instead of locally inside init function fixes this for me.

@koltai75
Excellent find I have to say. I guess this explains why its a hit or miss sometimes on my previous findings, and I have to totally agree that since most of the functions are Future<void> functions, we should initialise it properly before using these callbacks, and I think an example like this should be added into the docs.
Thanks a lot!
@bparrishMines To answer your question
Device: Pixel 4 API 30 Android Emulator
Pubspec lock webview_flutter_android version: 3.1.1

@keithcwk
You are welcome. I find it quite surprising that the official docs don't point out that these are futures.

I was using the workaround as suggested in this comment by @koltai75 , the callbacks sometimes still do not work on profile/production mode, however, based on @bparrishMines's suggestion where this issue is fixed from webview_flutter_android version 3.2.x onwards, this issue seems to be solved and I can verify this on my end.
Once again, thanks @bparrishMines @koltai75 and others in helping to look into this issue!


Integration offline

Getting this error.
Retrying setup: 504, message='Gateway Timeout', url=URL('https://api.pirateweather.net/forecast/GKYRaaoHWs9w6cAkr1LmC3MV3cKmp8Ru51ouLMJo/-27.831334337290553,153.3171808719635?units=si')

Same here.  Was working until an HA restart so I thought that caused it but I guess not.
Retrying setup: 500, message='Internal Server Error',

@alexander0042 - No apologies necessary!  And once my finances stabilize a bit towards the end of the month I plan on making a contribution to help pay for this awesome service.  Thanks so much for your dedication.

Is this working again? I added this integration for the first time the other day and it pulled in initial data but never updated after that.

Same issue here.

Is this working again? I added this integration for the first time the other day and it pulled in initial data but never updated after that.

Same issue here.

I ended up figuring out my issue. Home Assistant didn't like having two weather integrations. When I disabled the old one it started working

Is this working again? I added this integration for the first time the other day and it pulled in initial data but never updated after that.

Same issue here.

I ended up figuring out my issue. Home Assistant didn't like having two weather integrations. When I disabled the old one it started working

I have 4, this is the only one that doesn't work.

I've been running this for probably 6-9 months and upon a restart today, getting 504 gateway error as well. Doesn't come up after reload/restart.

Me too.
...
Retrying setup: 504, message='Gateway Timeout', url=URL('https://api.pirateweather.net/forecast/?units=si')
...

Looks like it's back up and working for me now.  Had to restart HA to get it to reconnect.

This one is my fault- I broke my AWS networking, and didn't notice it quickly enough. It's all corrected now, and I've added a test to make sure it doesn't happen again.
For future reference, there's a status page that checks if the endpoint is down every 5 minutes, which is useful for checking if the problem is my end or something else.


fix URI parsing to support spaces in path

Ran across this while trying to close an Atlas ticket. Same issue as https://github.com/mapbox/node-mbtiles/pull/45. Tests fail without fix when run in a path with a space, pass with it.

now with tests


Unstoppabledomains/feature

This pull request allows users of ipfs-companion to look up ipfs websites that are connected to various decentralized domains such as .crypto .zil .eth.
Resolution library is making a direct blockchain call to various chains to resolve the ipfshash attached to the domain. For domains ending on .zil, it talks with Zilliqa registry contract located over here: zil1jcgu2wlx6xejqk9jw3aaankw6lsjzeunx2j0jz
for domains ending on .crypto or .eth the library talks with these smart-contracts respectively:
0xD1E5b0FF1287aA9f9A268759062E4Ab08b9Dacbe and 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e
The library weighs about 300kB according to bundlephobia
Once the ipfs hash is retrieved from the domain it redirects users to a public gateway and later being picked up by ipfs companion code which respectfully redirects it to the localhost.
This makes it very convenient for the user to browse the ipfs websites without the need to remember or store somewhere Ipfshash. instead, they can use a simple domain.
Domains to play around:
brad.crypto
johnnyjumper.zil
myetherwallet.crypto
brantly.eth

The build is failed because of the restrictions on file size.
My local machine is saying that the file size becomes: 4.386131 Mb which is not that much bigger than 4Mb. Will it be possible to lift the size restriction or to increase it to 4.5Mb?

@lidel there is a question I couldn't found an answer in the code base. I added the localization for en and Russian language of option_supportUnstoppableDomain_title and description as well as called the browser.in18.getMessage but the chrome extension on my end didn't resolve the text at all. Mozilla Firefox on the other hand resolved and returned everything correctly. Would you have any ideas what steps did I miss for this one to work?

After understanding how centralized and proprietary the API is (https://github.com/ipfs-shipyard/ipfs-companion/pull/875#discussion_r420109570) I'd like us to pause this work and discuss how we can work around centralization problems introduced in the initial version of PR.
Note that we already support for other naming systems that do not require IPFS Companion to compromise on any of the things mentioned in https://github.com/ipfs-shipyard/ipfs-companion/pull/875#discussion_r423253106. And that support is enabled by default because we don't need to worry about privacy ramifications of using a third party HTTP API.
Proposal: leverage DNSLink
When it comes to decentralized naming systems, I firmly believe, at the very minimum,  we should rely on DNS + DNSLink in cases where shipping full blockchain client is not feasible (IPFS Companion is such case).  If we start embedding libraries for each naming system, start calling third-party HTTP APIs it will get out of hand really fast.
DNSLink gateway (example: https://eth.link) is much better for both user privacy and maintenance burden in projects which want to implement support for alternative naming systems.
DNSLink gateway:

removes all the complexity from clients and reuse existing DNSLink standard
removes centralization vector and the single point of failure

DNS caching would protect most of users from temporary outrages
Everyone can run their own gateway, including one on localhost
no proprietary APIs: DNS + DNSLink = no vendor lock-in

DNS client capable of resolving TXT record is all you need
out of the box support in go-ipfs, all public IPFS gateways and ipfs-companion without any additional code:
(https://ipfs.io/ipns/ipfs.eth.link/)

I believe someone mentioned DNSLink gateway on the roadmap for Unstoppable Domains: what is ETA? Can we wait with this until that lands?

I'm closing this PR: UnstoppableDomains decided to go with DNSLink interop for "no configuration" experience in the browser:

https://docs.unstoppabledomains.com/browser-resolution/resolving-domains-in-a-browser#gateway-to-simplify-the-integration


MM-14712 - Add support for signing SAML requests

Summary
Added a new toggle for SignRequests setting
Ticket Link
Fixes https://mattermost.atlassian.net/browse/MM-14712
Related Pull Requests

Has server changes https://github.com/mattermost/mattermost-server/pull/11081
Has enterprise changes https://github.com/mattermost/enterprise/pull/449

@reflog this is failing the i18n check

Suggested wording: When true, will sign the SAML request using your private key.  When false, Mattermost will not sign the SAML request.

We don’t have “their” private key


Add Dear PyGUI export feature

Eg dearpygui

Could you show me a snippet that sets a style in dearpygui? I can't seem to find one

https://github.com/hoffstadt/DearPyGui_Ext/blob/master/dearpygui_ext/themes.py
Allthough i dislike the way the color is "calculated" in the arguments. But you definitely get the point haha


CORE-11945: Remove sub-batching from the state and event pattern

The state and event pattern divides up a batch of records into sub-batches by splitting the batch from Kafka when it sees a second instance of a key in the batch. Each sub-batch is processed and committed separately. This has a large negative performance impact if keys in the batch repeat frequently and close together, as it means very small numbers of events are processed in one go before the commit time to Kafka is incurred.
For most usages of the state and event pattern this doesn't matter. However, the P2P markers topic typically has two or three events on the same key close to each other. Under high loads and with session messages occurring, the consumer group lag on this topic rapidly grows. The impact of this is that the P2P layer could spuriously replay messages as it takes a long time for it to process the corresponding marker.
Here the sub-batching logic is removed entirely, and the pattern updated to use the previous output state as the next input if multiple records on the same key appear in the same batch. This eliminates the consumer lag growing as described above.
One side impact of this is that the state and event listener is no longer guaranteed to see every state update on a key. This is largely a non-issue as most usages of this are waiting for a null state to remove a timer, which they are guaranteed to see if it has happened and are guaranteed to see non-null if the state is not nulled out.

Is there any danger of breaking the flow model with this?  e.g. flow has 2 pending events, picks them both up and processes them both with no checkpoint in-between (that is what this might imply, yes?).
It sort of sounds like maybe it should be a problem, but I actually think it isn't since the end result is the same.


fix analysis errors

fix ~a dozen analysis issues related to show in exports
fix lots of missing type annotations

These were found w/ the latest 1.17.0-dev sdk.

Updated to remove exports no longer necessary exports and to fix a test.

@abarth at some point we're going to have to go through and re-export names that we think should be re-exported.

I'm not sure I understand.  I think this lint is catching no-op exports (i.e., of names that don't exist).

Yeah but in same cases they don't exist because they were renamed or moved. For example the debugPrint one is now in foundation instead of services. I'm sure there's other cases where over time we're bit-rotting our lists of exports, like where there's things we're not re-exporting but should be.

Ah, makes sense.  Hopefully this new lint will help us not rot more.

Landing; I did change the export of debugPrint from services to foundation.


Update for windows breaks vagrant provisioning on Mac

The commit at https://github.com/roots/bedrock-ansible/commit/3d328563858518e75ee0ce60c6f34237f0c5bae0 breaks non-Windows provisioning for more than one site. In order to get sites working, I had to rollback the changes to roles/wordpress-install/tasks/main.yml
Specifically, the dest="/tmp/.env.temp" gives an error of unable to find, does not exist.  Also, the .env file is rewritten with the info from the last site in the setup.

Fixed by 8f14013

Thanks for the report


RE-1920 implement revoke gati token

Github doesn’t allow explicit ordering of steps, meaning we cannot revoke the token within our action setup-github-token. Instead we will have to call a step separately at the end of all steps in the job to revoke the token.
Since it is going to be one single command, creating a separate action seems redundant. I've implemented a change to the existing setup-github-token to also allow user's to revoke the token and add an additional input revoke which when set will revoke the token. We can even rename this action to  github-token-issuer to avoid the confusion.
Tested here - https://github.com/smartcontractkit/mercury-pipeline/pull/1032/checks

We should use the post lifecycle of the setup-github-token action instead. It won't require any changes on the workflow author side.

The post option is only available for actions using node. When running using docker there’s similar option for post-entrypoint. But composite actions don’t have that option according to their schema, which our setup-github-token action uses. I’m assuming because composite actions have the flexibility of defining more than one step to run and don’t need such options.

closing this with what Henry had suggested above:
https://github.com/smartcontractkit/.github/pull/509#pullrequestreview-2181847087


Bug: User list activity dropdown scrollbar causes CSS popping

Describe the bug
https://github.com/open-sauced/app/assets/23109390/5707242e-8da3-4774-b1f0-1a814f4d741b
Notice how the top header bar shifts left and right as i open and close the activity dropdown (which looks to remove the scrollbar).
Likely related to:

https://github.com/open-sauced/app/issues/1696
https://github.com/open-sauced/app/pull/1704
https://github.com/open-sauced/app/issues/1705

This seems to be a persistent problem with a few of our form like components: I'd like to see this fixed globally since it's popped up in other components/pages.
Steps to reproduce

Go to a user list page, go to activity tab
Click the "Most active contributors" dropdown
Notice the top header shift to the right.
Close dropdown
Notice the top header shifts back left (since scrollbar re-appears)

Note: I noticed this on both Chrome and Firefox.
Browsers
No response
Additional context (Is this in dev or production?)
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[X] I agree to follow this project's Contribution Docs

I can look into this once it's been triaged.

It looks like an overlay is being added when the dropdown is open. Not sure why that is though. Feel free to dig into this @aryanas15.
https://github.com/open-sauced/app/assets/833231/158abac4-35bb-4565-be0c-fea247539129


Use php-http instead of guzzle

fix #29
replace guzzle deps by php-http.
bump php requirement
the base branch is now 2.0

Merging in new master


Update FINOS badge on README.MD to ARCHIVED

This pull request communicates the repo status as ARCHIVED in accordance with project materials recorded and tracked at FINOS.

Hi @pmonks - Just letting you know we've done a little housekeeping with the Symphony team and are archiving projects that have been released but are no longer being actively developed.
Feel free to contact me if you'd like to bring the project back into an incubating or active state within FINOS.
In the meantime, it would be awesome if you could accept this pull request to update the FINOS badge.
Thank you.
James.

This project is still active, and has a low commit rate as it’s mature and stable.


fix: popover glitch, tip jumps #125

This tries to fix the https://github.com/littlebits/react-popover/issues/125
On popoverResize event is firing even if the size of the popover haven't really changed (due on the late attachement of the tip to the containerEl), the popoverResize re-resolvePopoverLayout causing the jumping glitch. You can see that the event is firing even in the first toggle, and the diff of the height is exactly the size of the tip.

This tries to fix it by ensuring that the resize is at least > than the tipSize.

I would like to test/evaluate on it a bit more, so if anyone else has the issue and can npm -i directly from the fork in their project to test locally and give feedback, would be much appreciated.

With your fix:

Without:

I have a bug in both cases the initial position of the popover seems off.

@Kerumen thx for the feedback, I will check it more in deep.

@AvraamMavridis I reported the initial layout position here: https://github.com/littlebits/react-popover/issues/62#issuecomment-329233980

@AvraamMavridis Thanks so much for your contribution! This has been a long outstanding rough edge that I'd like to see get fixed. I don't have time to help out on this PR at the moment but if you get into a perfected state I would be more than happy to try and get this merged.


Make the sentient plant mutation non-copyable to other plantholders

About the PR
This PR changes seed packets to lose the sentient mutation gene if created by clipping, the seed extractor or reverting a plant with cryoxadone. Crossing plants will no longer transfer the gene either.
Why / Balance
Fixes #20825
The ghost role menu is often spammed by lots of sentient hydroponics trays from the sentient plant mutation. The large number of these is caused by it being possible to transfer sentience by producing seeds from the mutated plant and putting them into other trays.
By removing this propagation we can make this ghost role more rare. If a botanist wants multiple sentient trays he will have to mutate each one of them separately.
The mutation has also been made rarer. While the exact probability depends on the amount of mutagen given at once and whether Left4Zed is used, my calculation says that using 90u of mutagen should give you a 50-60% chance of getting a sentient tray.
Technical details
Each time we spawn a seed packet we first clone the seed data if necessary and set the Sentient gene to false.
The Unique bool is adjusted accordingly.
The number of bits for Sentient has been reduced.
The total number of bits has been corrected.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes
none
Changelog.
:cl:

tweak: The sentient plant mutation can no longer be propagated to other trays via seeds or swabs. It has also been made more rare.

Could it have been on purpose that the bit sum didn't match for the longest time?
I always assumed it was for a reason, like having mutations that don't do anything.

Could it have been on purpose that the bit sum didn't match for the longest time?
I always assumed it was for a reason, like having mutations that don't do anything.

I had a look at the git history and it seems the fun column had always been summed up wrong (70 instead of 60). People just kept adding or subtracting instead of checking the correct value.
See 7fc357afd28c68bb844e11277de1d2f6ee680df5


Convert MATLAB ui table to Dash DataTable

Similar to https://github.com/plotly/dash_matlab/issues/11 and https://github.com/plotly/dash_matlab/issues/10, please explore adding MATLAB uitable to ui2dash using Dash DataTable: https://dash.plotly.com/datatable.
Please commit your solution to https://github.com/plotly/dash_matlab as a GitHub pull request and ask Igor review when you are finished.
To keep ui2dash.m clean and readable, please create a helper file/function in the aux folder

Please also add a simple Dash DataTable example to the Examples folder that shows this working. I'd recommend a simple Dash app with a DataTable and dropdown as inputs, and a graph as the output. The dropdown is to chose the graph type (bar, scatter, line, etc) and the table is to edit the x/y data in the graph, for example:
X. Y

1
2
3
5
8
13

When the user changes the dropdown, the graph type updates. When the user changes the data in the first 2 columns of the table, the graph updates with the new data.


Spurious (?) multishot poll wakeups

Dear colleagues,
I'm trying to debug a problem with spurious poll events when multishot mode (IORING_POLL_ADD_MULTI) is enabled.
Unfortunately, I haven't managed to make a minimal reproducer for the issue yet.
Currently, it's reproducible with LXC when it's built with -Dio-uring-event-loop=true. Reproducer itself is fairly easy:
./build/src/lxc/tools/lxc-start -F test_ct -l TRACE -o lxcstart.log
just enter a few symbols in the terminal (or press Enter a few times) and it'll stuck forever.
A stuck reason is that LXC process gets poll CQE then performs read from FD, just after read it gets a new CQE to the same FD, goes to read it and stuck forever.
I've started an investigation of this problem from the userspace (LXC) side and found that:

disabling IORING_POLL_ADD_MULTI solves the problem (https://github.com/lxc/lxc/commit/7fd671dbce98d139e52e8c4266f1050ef49ea8af)
making terminals FDs non-blocking (without disabling multishot mode) makes reproductions rarer (https://github.com/lxc/lxc/commit/715fb4effaa7f35e642056d2a10d5b8c393bfac0)

It was a hint for me and I've started digging the problem on the kernel side.
The main point of interest in the kernel is function io_poll_check_events:
static int io_poll_check_events(struct io_kiocb *req, bool *locked)
{
	int v;

	/* req->task == current here, checking PF_EXITING is safe */
	if (unlikely(req->task->flags & PF_EXITING))
		return -ECANCELED;
printk("%px %s:%d io_poll_check_events %px %ps\n", req, __func__, __LINE__, req->file, req->file->f_op);
	do {
		v = atomic_read(&req->poll_refs);
printk("%px %s:%d iteration %d %d %px %ps\n", req, __func__, __LINE__, v, req->cqe.res, req->file, req->file->f_op);
		if (unlikely(v != 1)) {
			/* tw should be the owner and so have some refs */
			if (WARN_ON_ONCE(!(v & IO_POLL_REF_MASK)))
				return IOU_POLL_NO_ACTION;
			if (v & IO_POLL_CANCEL_FLAG)
				return -ECANCELED;
			/*
			 * cqe.res contains only events of the first wake up
			 * and all others are to be lost. Redo vfs_poll() to get
			 * up to date state.
			 */
			if ((v & IO_POLL_REF_MASK) != 1)
				req->cqe.res = 0;

			if (v & IO_POLL_RETRY_FLAG) {
				req->cqe.res = 0;
				/*
				 * We won't find new events that came in between
				 * vfs_poll and the ref put unless we clear the
				 * flag in advance.
				 */
				atomic_andnot(IO_POLL_RETRY_FLAG, &req->poll_refs);
				v &= ~IO_POLL_RETRY_FLAG;
			}
		}

		/* the mask was stashed in __io_poll_execute */
printk("%px %s:%d PRE vfs_poll %d %px %px %ps\n", req, __func__, __LINE__, req->cqe.res, &req->cqe.res, req->file, req->file->f_op);
		if (!req->cqe.res) {
			struct poll_table_struct pt = { ._key = req->apoll_events };
			req->cqe.res = vfs_poll(req->file, &pt) & req->apoll_events;
printk("%px %s:%d vfs_poll %d %px %ps\n", req, __func__, __LINE__, req->cqe.res, req->file, req->file->f_op);
			/*
			 * We got woken with a mask, but someone else got to
			 * it first. The above vfs_poll() doesn't add us back
			 * to the waitqueue, so if we get nothing back, we
			 * should be safe and attempt a reissue.
			 */
			if (unlikely(!req->cqe.res)) {
				/* Multishot armed need not reissue */
				if (!(req->apoll_events & EPOLLONESHOT))
					continue;
				return IOU_POLL_REISSUE;
			}
		}
		if (req->apoll_events & EPOLLONESHOT)
			return IOU_POLL_DONE;
printk("%px %s:%d continue iteration %px %ps\n", req, __func__, __LINE__, req->file, req->file->f_op);
		/* multishot, just fill a CQE and proceed */
		if (!(req->flags & REQ_F_APOLL_MULTISHOT)) {
			__poll_t mask = mangle_poll(req->cqe.res &
						    req->apoll_events);
printk("%px %s:%d writting CQE %px %llx\n", req, __func__, __LINE__, req->file, req->cqe.user_data);
			if (!io_aux_cqe(req->ctx, *locked, req->cqe.user_data,
					mask, IORING_CQE_F_MORE, false)) {
printk("%px %s:%d overflow\n", req, __func__, __LINE__);
				io_req_set_res(req, mask, 0);
				return IOU_POLL_REMOVE_POLL_USE_RES;
			}
		} else {
printk("%px %s:%d io_poll_issue\n", req, __func__, __LINE__);
			int ret = io_poll_issue(req, locked);
			if (ret == IOU_STOP_MULTISHOT)
				return IOU_POLL_REMOVE_POLL_USE_RES;
			if (ret < 0)
				return ret;
		}

		/* force the next iteration to vfs_poll() */
		req->cqe.res = 0;
printk("%px %s:%d req->cqe.res = 0 %px %px %llx\n", req, __func__, __LINE__, &req->cqe.res, req->file, req->cqe.user_data);
		/*
		 * Release all references, retry if someone tried to restart
		 * task_work while we were executing it.
		 */
	} while (atomic_sub_return(v & IO_POLL_REF_MASK, &req->poll_refs) &
					IO_POLL_REF_MASK);

	return IOU_POLL_NO_ACTION;
}

I found a strange thing, sometimes after req->cqe.res = 0, on the next iteration vfs_poll isn't called. It seemed strange to me and I found that req->cqe.res is changed to non-zero value in between of the iteration from the io_poll_wake function.
It's worth to mention that problem happens with the tty_fops and ptmx_fops FDs, but we also use signalfd and socket FDs in the same io_uring instance.
The purpose of filling this issue is to share my experience (maybe someone else met this problem too) and to get a debugging advice. :)
Kind regards,
Alex

yes, I came to the same conclusion during debugging and committed this patch (lxc/lxc@715fb4e). It makes reproduction rarer.

Ah, right, and thank you for finally fixing this one!

I tested it back then, worked for me. Is there a chance there is yet another blocking file you missed? It might also be a separate problem.

I'm almost sure that I've covered all places, but I'll check again. As reproduction became rare after making FDs non-blocking it makes harder to debug what's happening. But my understanding is that we are getting into the infinite loop when poll CQE arrives, we go to read (and get something), then a new poll CQE arrived, we go to read (get nothing), new poll CQE arrives, we go to read (get nothing) and it's infinite sequence. My suspicion was that for some reason read wakes POLLIN for ttys... but I've checked git log for TTYs discipline driver and ptmx and found nothing suspicious.

Ok, so it's busy looping doing nothing useful. We need to understand what wakes it up.  Can you run bpftace for 10-20s after that state of nothingness kicks in? This one should do:
bpftrace -e 'kprobe:io_poll_wake { @[kstack] = count(); }'
This should do, you can specify pid and output log file with -p and -o respectively.

Any news on that one?

Hi Pavel,
I'm really sorry for long delay with reply. I've just missed a notification and then forget to back to the issue.
After we have landed this https://github.com/lxc/lxc/pull/4304 and stopped using a multi shot mode polling everything works just fine.
So, I don't think that there is any issue from the io_uring side. If I found anything interesting in there or if I see any extra issues I'll definitely go and do some kernel debugging and tracing by myself and then contact you with some insights ;-)
I think we can close this for now.
Sorry for taking your time!
Kind regards,
Alex


⚠ ClamAV has degraded performance

In 0db269d, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 186 ms

Resolved: ClamAV performance has improved in 490eeb2 after 5 minutes.


dynamic env is an empty object in production when using config.kit.env.dir

Describe the bug
config.kit.env.dir, introduced in https://github.com/sveltejs/kit/pull/6175, only works in dev.
In dev, correct env is logged to console. In prod, empty object is logged to console. Minimal reproduction below.
Reproduction
https://github.com/ambiguous48/dynamic-env-missing
Logs
No response
System Info
System:
    OS: Linux 5.18 Pop!_OS 22.04 LTS
    CPU: (24) x64 12th Gen Intel(R) Core(TM) i9-12900K
    Memory: 16.68 GB / 31.13 GB
    Container: Yes
    Shell: 5.8.1 - /usr/bin/zsh
  Binaries:
    Node: 18.3.0 - ~/.local/share/pnpm/node
    Yarn: 1.22.19 - ~/.local/share/pnpm/yarn
    npm: 8.11.0 - ~/.local/share/pnpm/npm
  Browsers:
    Chrome: 104.0.5112.79
    Firefox: 103.0
  npmPackages:
    @sveltejs/adapter-auto: next => 1.0.0-next.65
    @sveltejs/kit: next => 1.0.0-next.431
    svelte: ^3.44.0 => 3.49.0
    vite: ^3.0.4 => 3.0.9

Severity
annoyance
Additional Information
No response

Based on my testing, this should be fixed with #6179. The problem isn't even the new config.kit.env.dir option, it's that (1) we weren't initializing the variables correctly in prerendering and (2) something something, complicated initialization sequences. Either way, the repro works fine when I point it at that branch.

Closing this then since that PR has been merged. Note that it hasn't been released yet

Note that it hasn't been released yet

@benmccann This is the release that you're referring to, yes? If the answer is no feel free to disregard this.
If it is, then the issue seems to still exist even after updating to the latest sveltekit (reproduction here).

that reproduction looks to be on the latest version and any changes from a week ago have certainly been released by now, so I'd expect it to work

Just a heads up that this issue can also be reproduced when using adapter-node then running npm run build && node build/index.js

Just a heads up that this issue can also be reproduced when using adapter-node then running npm run build && node build/index.js

This is definitely intended behavior.

This is definitely intended behavior.

I had falsely assumed that $env/dynamic would automatically inject .env files (a la dotenv), despite the docs stating otherwise.
Please feel free to close this issue.

This is definitely intended behavior.

I had falsely assumed that $env/dynamic would automatically inject .env files (a la dotenv), despite the docs stating otherwise.
Please feel free to close this issue.

It does in dev, obviously, but prod depends on the adapter. I'll wait to close until we hear from @Rich-Harris on whether the preview "adapter" should read .env files.


Make all toasts compatible

Make all toasts at top right.
Change one with green color to primary.
Add icon at all of them.
https://github.com/threefoldtech/tfgrid-sdk-ts/issues/1148

I believe we can handle the spaces here to make it aligned, specially the icon

also the failed toast

The user will only choose type from predefined ones and add message without considering anything else

https://github.com/threefoldtech/tfgrid-sdk-ts/assets/54944491/1595a2cf-59d5-48b7-bc27-c940fddbcc8b


fix: canonicalize config keys

Description
When merging supplied storage options with environment variables, we need to canonicalize the items in the storage options first. This is because for some keys there is multiple valid definitions (AWS_ENDPOINT_URL, AWS_ENDPOINT) and also casing (AWS_ACCESS_KEY_ID, aws_access_key_id). It seems like the 'more canonical' lowercase versions win, which can cause surprise if you have one set of access keys in your environment and one in your storage options. This is exacerbated as the S3StorageOptions construction also sets envrionment variables, and it always does so into the canonical lowercase versions. I found this when opening two buckets with different credentials, and the credentials for the first were being used to open the second.

Looks like the failure is just in some tests which are not expecting some environment variables to be set. Our option I think is to either have these new tests reset their environment variables, or update the other tests.

Looks like the failure is just in some tests which are not expecting some environment variables to be set. Our option I think is to either have these new tests reset their environment variables, or update the other tests.

I introduced a small utility to all of the tests to restore the environment to how it was when they captured it. Let me know if you think this approach is reasonable?

☝ I briefly flirted with changing the tests to be a lot more careful about which environment variables they touched. This was because the integration tests workflow itself actually sets some extra environment vars, which was messing with the test. However on reflection on doing so, by being canoncalizing the keys under test, I managed to partly defeat the purpose of the test...
In the end I went for the simpler solution from the other tests of just unsetting those variables.


[BUG] Yandex Claim

Mandatory Step

[x] I am using latest production release of Elegant

Description
Describe the bug
Similar to #338 and #364 do we want to put header to claim site on 'yandex' russian crawler to ease it for our users?

:tada: This issue has been resolved in version 5.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add Birthday field to Person object

Adding Birthday field allows Financial Advisors to keep track of the birthdays of their contacts.
For now:

Add Birthday class which stores a simple String value to represent the birthday.

Person model to have a Birthday field.

Update current test cases to use Person objects with Birthday fields.

To be added:

Parse String such that birthdays are displayed in standardised format.
Tests for input validation also to be done.

Codecov Report

Merging #63 (7db2c4a) into master (d0401d6) will increase coverage by 0.18%.
The diff coverage is 82.05%.

@@             Coverage Diff              @@
##             master      #63      +/-   ##
============================================
+ Coverage     72.15%   72.34%   +0.18%
- Complexity      399      406       +7
============================================
  Files            70       71       +1
  Lines          1232     1262      +30
  Branches        125      129       +4
============================================
+ Hits            889      913      +24
- Misses          311      313       +2
- Partials         32       36       +4

Impacted Files
Coverage Δ

.../java/seedu/address/logic/commands/AddCommand.java
100.00% <ø> (ø)

.../java/seedu/address/model/util/SampleDataUtil.java
20.00% <ø> (ø)

src/main/java/seedu/address/ui/PersonCard.java
0.00% <0.00%> (ø)

...main/java/seedu/address/model/person/Birthday.java
62.50% <62.50%> (ø)

...c/main/java/seedu/address/model/person/Person.java
95.74% <75.00%> (-1.88%)
:arrow_down:

...java/seedu/address/logic/commands/EditCommand.java
95.89% <85.71%> (-1.13%)
:arrow_down:

...a/seedu/address/logic/parser/AddCommandParser.java
100.00% <100.00%> (ø)

...ain/java/seedu/address/logic/parser/CliSyntax.java
85.71% <100.00%> (+2.38%)
:arrow_up:

.../seedu/address/logic/parser/EditCommandParser.java
92.85% <100.00%> (+0.54%)
:arrow_up:

...in/java/seedu/address/logic/parser/ParserUtil.java
97.43% <100.00%> (+0.21%)
:arrow_up:

... and 1 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Port modification

Allow port modification to be able to run previewer on different ports using an environment variable.
Also update to latest Rubocop standards.

Thanks for doing this @samfrench 👍