Slow compilation of mobilebert-baseline-tf2-quant.tflite.mlir

The quantized model takes very long time to compile. A few findings:

There are about 1500 dispatches.
Some of the dispatches have a large number of LLVM instructions.

How to reproduce:

Setup the IREE build with the benchmark suites:

mkdir release_build && cd release_build
cmake -GNinja -DIREE_BUILD_BENCHMARKS=ON -DIREE_IMPORT_TFLITE_PATH=/usr/local/google/home/okwan/.venv/bin/iree-import-tflite -DIREE_ENABLE_ASSERTIONS=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DIREE_ENABLE_LLD=ON ..
ninja iree-benchmark-suites

The last one, which is the quant model, takes very long time. Type ctrl+C to break.
Run this command to dump IR for a few passes.

iree-compile --iree-mlir-to-vm-bytecode-module --iree-hal-target-backends=dylib-llvm-aot --iree-input-type=tosa --iree-llvm-target-triple=aarch64-none-linux-android29 --mlir-print-op-on-diagnostic=false benchmark_suites/TFLite/mobilebert-baseline-tf2-quant.tflite.mlir -o tmp.vmfb -print-ir-before=tosa-to-linalg -print-ir-before=iree-codegen-tile-and-distribute-to-workgroups -print-ir-before=iree-convert-to-llvm -print-ir-after=iree-convert-to-llvm --mlir-disable-threading --mlir-elide-elementsattrs-if-larger=1

The attached is part of the dump. The dispatch 6 shows the issue.
dispatch_6_before_and_after_convert_to_LLVM.txt

Thanks for all the good finding, @okkwon!
It looks like the quantized matmul configuration is bad. The default configuration is too progressive, which introduces many LLVM instructions after vector unrolling. We can set a different configuration for quantized matmul cases for ARM codegen.

Is there a way to change the default overall? Anything that creates thousands of instructions that result in compilations of tens of minutes feels like it should be opt-in.


[Search v2.1] Update Search table to show approver instead of workspace in the To column

After an internal discussion, we decided to make the To column in the Search table consistent with OldDot and show the individual approver of the report, instead of the workspace.

Let's update the code to reflect this decision

This was deployed to auth - @luacmartins will there be app or web PRs inc or is this done?

https://github.com/Expensify/Auth/pull/11910 just mentioned this issue, it doesn't actually solve this. We still need to work on this issue.

Having said that, I just put up an App PR to fix this

Note: The above regression is a false alarm for this PR / issue since it's BE related, see context in https://github.com/Expensify/App/issues/47551#issuecomment-2293116051 and confirmation in https://github.com/Expensify/App/issues/47551#issuecomment-2293548674.

⚠ Automation failed here -> this should be on [HOLD for Payment 2024-08-26] according to yesterday’s production deploy from https://github.com/Expensify/App/pull/47091#issuecomment-2296918867.
cc @greg-schroeder

cc @greg-schroeder

Offer sent for $250 for reviewer role

I'll pay you ASAP as soon as you accept!

@greg-schroeder Offer accepted, thanks!

Paid


Add fees terms and conditions

T&C have been added. Alert should be added depending on committee's preference.

done


Change localStorage key

Docs say the localStorage key is FLAGSMITH_DB, but it is actually BULLET_TRAIN_DB.
Note: flagsmith also uses another localStorage key, called BULLET_TRAIN_EVENT, but this is not mentioned in the docs at all.

@kyle-ssg the better solution here is to fix the name of the env var in the JS client.

Merging for now as this is correct.


Feature Request - Add configuration to cache other methods

Can we have a feature to set caching methods dynamically, not only GET? Below is the example:
- traefik.http.middlewares.http-cache.plugin.souin-plugin.cache-methods=GET,POST,PUT,PATCH
- traefik.http.middlewares.http-cache.plugin.souin-plugin.invalidate-cache-methods=DELETE

In many projects, we often use methods like POST, PUT, ... to retrieve the data when the inputs are heavy or need to be encrypted. Therefore, I think this feature will be useful.
Thank you.

Hi @tailtq I will investigate about the side-effects to implement this because IMHO I'll have to manage the keys another way.
I don't know what to use to avoid collisions while we retrieve the cached data because if a user A send a request to the /resource endpoint with a JSON body like {"keyA": "any"} and another user B send the request on the same endpoint with another body shouldn't have the same response.
I agree with you that would be useful but hard to implement I guess. 😅

Yes, the strategy to manage the keys will be different because the key should contain the data. You can leave the issue open to implement later or feel free to close it. Thanks.

Maybe using a hash could do the trick ? WDYT ?

@darkweak Yes, I think it could. I tried another cache library before and their approach to getting the key from the parameters is hashing. What do you think about the data which is allowed to cache? It should be text, shouldn't it?

Update, I'm currently working on it and I'll try to partially support the GraphQ cache in the same time.


V0.6.0

Changes of this release:

Breaking change: Subscribe is now a super-set of Suspense. The default fallback is still null, though.

Breaking change: We are no longer making the initial subscription on render. It's now the responsibility of the user to make sure that the initial subscription is there before the hook consumes the observable. That can be accomplished in many different ways, but the most common ones should be using Subscribe or with top-level subscriptions. In a nutshell what's going to happen is that if during render, if we have to throw a Promise to trigger suspense we won't create that promise unless the subscription of the Subject that's used for multicasting is already there. This guarantees that no side-effects will happen on render.

Fix: If a "suspended" observable completes without emitting any values, we will throw an error that can be captured from an error-boundary.

Fix: If a Subscribe component gets unmounted while one of its children is on Suspense, the underlying observable will be disposed.

Ok, let's get this in, then 🤞


CSS and images do not load!!

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
from fastapi.responses import HTMLResponse
import uvicorn

templates = Jinja2Templates(directory="webpages")
app = FastAPI()

if __name__ == '__main__':
    uvicorn.run("app:app")
@app.route('/', methods=['GET'])
async def index(request: Request):
    return templates.TemplateResponse("coming_soon/index.html", {"request": request})

Description
For some reason the CSS in the code doesn't load 😕
Operating System
Windows
Operating System Details
I am on Windows Insider Dev Build
FastAPI Version
0.78.0
Python Version
3.10.4
Additional Context
No response

Not much to go on of course, but maybe you should serve your css file as a static file, so when referenced in your template it can be actually loaded? Otherwise, Fastapi (or actually, starlette in this case) won’t serve the CSS files on the path your browser would expect them.

So.... what path will it be served on...?

My directory structure

I am returning coming_soon/index.html

This is all very well explained in the documentation, including an example of the issue you are raising here.
Anyway, I created a MVP for you here: https://github.com/JarroVGIT/fastapi-github-issues/tree/master/4989
In short: you create an endpoint that serves a StaticFiles directory like so:
app.mount("/coming_soon/static", StaticFiles(directory="webpages/coming_soon/static"), name="coming_soon_static")

If you run your Fastapi app, you can call static files from your webpages/coming_soon/static folder on endpoint http://localhost:8000/coming_soon/static/file.ext where file.ext can be any file. In this case, we have a style.css file in that folder.
Note: you currently have your style.css in the same folder as your index.html, and I would recommend to put it in a separate folder. Otherwise, your index.html would be directly accessible as plain text. That's why, I have put it in the .webpages/coming_soon/static folder.
In your index.html file, you can reference your stylesheet then like this:
    <link href="{{ url_for('coming_soon_static', path='/style.css') }}" rel="stylesheet">

It references the StaticFiles named instance (coming_soon_static) and then asks for the file /style.css. This renders to:
<link href="http://localhost:8000/coming_soon/static/style.css" rel="stylesheet">

The entire app looks like this:
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates

app = FastAPI()

app.mount("/coming_soon/static", StaticFiles(directory="webpages/coming_soon/static"), name="coming_soon_static")

templates = Jinja2Templates(directory="webpages")

@app.get("/coming_soon", response_class=HTMLResponse)
async def coming_soon(request: Request):
    return templates.TemplateResponse("coming_soon/index.html", {"request": request})

This results in the following:

Hey I seem to getting this error
    route = Mount(path, app=app, name=name)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python310\lib\site-packages\starlette\routing.py", line 343, in __init__
    assert path == "" or path.startswith("/"), "Routed paths must start with '/'"
AssertionError: Routed paths must start with '/'```


Add psr/simple-cache v2

Why is this a security issue?
The lack of support for simple-cache v2 blocks applying security updates to other packages that require simple-cache ^2.0|^3.0.
Since simple cache v1 and v2 are backward compatible, I'm confident it won't be difficult for you to merge this change.

Okay. Looks like it's impossible.


Update epanet.c

In openoutfile(), if timeseries output is requested (Tstatflag == SERIES) then TmpOutFile is set to OutFile instead of a new opened tmp file  (TmpOutFile and OutFile point to  the same object).
Later, when ENclose() closes all opened files, it closes and nullifies OutFile but not TmpOutFile.
TmpOutFile becomes a dangling pointer and (under Linux) it crashes (segmentation fault) when fclose()d
Issue can be reproduced as explained in #64
Proposed solution nullifies TmpOutFile before fclose(OutFile)

broken tests notwithstanding, i'm merging this.


BUG: Contact form not show any message after click on send now button

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
When we click on send now button in contact form it show fill email in footer's email and not show any message like "Thank you for contact" i will add this message show when user click on send now.
https://www.loom.com/share/d4cdc476cf5b4a0395632058188deb23
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
When we click on send now button in contact form it show fill email in footer's email and not show any message like "Thank you for contact" i will add this message show when user click on send now.
https://www.loom.com/share/d4cdc476cf5b4a0395632058188deb23
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Assigned!
Make sure to attach before & after screenshots in your PR and include the issue number.
Also, please star the repo before working on it.
i am the project mentor so you can reach out to me for any help!
Happy open-source contributing!

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
When we click on send now button in contact form it show fill email in footer's email and not show any message like "Thank you for contact" i will add this message show when user click on send now.
https://www.loom.com/share/d4cdc476cf5b4a0395632058188deb23
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Assigned!
Make sure to attach before & after screenshots in your PR and include the issue number.
Also, please star the repo before working on it.
i am the project mentor so you can reach out to me for any help!
Happy open-source contributing!


convert PoS to PoA on stalled chain

[ Subject of the issue ]
Description
Hi, our PoS chain stalled. We need to restart as PoA. Can it be done? The reason is AWS locked out a validator, and they cannot get offline, so we can't restart.
Your environment

OS and version. Ubuntu 20.04
The version of the Polygon Edge.    0.6.1
(Confirm the version of your Polygon edge client by running the following command: polygon-edge version --grpc-address GRPC_ADDRESS)
The branch that causes this issue.
Locally or Cloud hosted (which provider). Cloud
Please confirm if the validators are running under containerized environment (K8s, Docker, etc.). no

Steps to reproduce

Tell us how to reproduce this issue.
Where the issue is, if you know.
Which commands triggered the issue, if any.
Provide us with the content of your genesis file.
Provide us with commands that you used to start your validators.
Provide us with the peer list of each of your validators by running the following command: polygon-edge peers list --grpc-address GRPC_ADDRESS.
Is the chain producing blocks and serving customers atm? no

Expected behavior

Tell us what should happen. Restart at block 1406465 (current block) as PoA
Tell us what happened instead.

Logs
Provide us with debug logs from all of your validators by setting logging to debug output with: server --log-level debug
Proposed solution
If you have an idea on how to fix this issue, please write it down here, so we can begin discussing it

@laviniat1996 @ivanbozic21 Your help will be very much appreciated. Thank you.

@Nexsuperne101 Hey there, I see you marked this as completed. Is this issue solved?

@laviniat1996 in a roundabout way, yes. Because of the AWS account lockout, we couldn't get the last 2 staked non-boot nodes off of the chain, so we restarted all the bootnodes, and then 1 minute started all the remaining non-bootnodes. The 2 non-bootnodes were 30 hours head of the rest of the network at this point, so possibly on Round=14. I didn't expect block production for perhaps 2 days, but we had nothing else to lose. Anyway, about an hour later, the chain started making blocks.
What I suspect happened is that because all bootnodes were taken offline, the remaining 2 that we couldn't get offline could no longer communicate with each other, so the Round=0,1,2,etc process must have stopped whilst waiting for a boot to become available.
We are currently testing this behaviour to confirm my theory with a 6 node (2 bootnode, 4 non-bootnode) testnet. I think that the chain will stall when we take the 2 bootnodes offline. What I want to see is what the 4 non-bootnodes do. Do they just sit there, waiting for a bootnode to return? or do they keep independently counting Round=0, Round=1 etc, but never making blocks, as they cannot "see" each other without a bootnode, so cannot sync.
If my theory is right, then the reason that the chain restarted with the 2 nodes still online was because of the lack of bootnodes, and the presence of bootnodes appearing back on the network reset the Round=0 and then started the sync process.
We have 73 validators.  25 bootnodes. What I now hope is that if the chain stalls in future that all we do is take every bootnode offline, leave the non-bootnodes online, give it 5 minutes and then restart all 25 bootnodes within seconds of each other.
As always, thank you for your time, Nex.


completing-read on non-string inputs raises wrong-type-argument error

Hi,
the following code produces a (wrong-type-argument sequencep gpu) with ivy and prescient.
(let ((candidates '((default "julia") (remote "ssh"))))
  (completing-read "julia binary" candidates))

The problem is that
https://github.com/raxod502/prescient.el/blob/47fef02cc32b1fcd8ca97ec801572f5ba91a1a2a/prescient.el#L475-L476
assumes that the candidates are strings or something that you can call length on. This precludes prescient from working on integer or symbol candidates. One simple fix would be to convert all candidates to strings but since the code seems to be quite performance-optimized that may be unacceptable.
Best,
Marten

That sounds like a bug in Ivy, it should be converting candidates to strings before passing them to the sort function. Selectrum does not have this problem.

I can reproduce your problem though, to be clear. See https://github.com/raxod502/prescient.el/issues/65.


[stable/jasperreports] Fix deployment notes and typos in values.yaml

What this PR does / why we need it:
The README is currently wrong when enabling Ingress as it's showing wrong instructions.
This also fixes a couple of typos in values.yaml.
Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[X] DCO signed
[X] Chart Version bumped
[X] Variables are documented in the README.md
[X] Title of the PR starts with chart name (e.g. [stable/chart])

/ok-to-test
/lgtm


Quick fix for ts tests

@aeneasr This fixes #645
We can't extend and overwrite the interface type so I think that this is a decent fix for now.

Thank you! Sorry for the late merge.


Sign tags too

Besides commit.gpgSign, there's also tag.gpgSign.
There's even push.gpgSign, but this is more obscure and produces a warning message on every push.

Friendly ping

I can't believe I missed that one for so long xD There you go!

Thanks. Can you tag a new version to get this code into distros?

Hey! Just tagged v1.1.0!


Action move

Make the underlying keyson reflect the changes from the UI

the final move is to be discussed on a meeting we should make today (in chat)

Merged in 754eb603c31e935842f8e75526a2617a80d58d6c


ghost input field in bootstrap popover form

I am using the tag directive within a bootstrap popover, the issue is that its working fine but I see a new field underneath the actual field and if I put focus on this new field the focus jump to the actual field.
Version of plugin : 2.3.0
version of angular:1.3.17
popover form tag field code:

        <tags-input data-ng-model="row.item.characteristic" replace-spaces-with-dashes='false' placeholder='Add a characteristic' add-from-autocomplete-only='true'>
          <auto-complete source="loadCharTagFn($query)"></auto-complete>
        </tags-input>

I have added a screenshot, the characteristic field is the actual auto complete and the field underneath it is the clone. If I inspect this widget I see the html as
<tags-input data-ng-model="row.item.characteristic" replace-spaces-with-dashes="false" placeholder="Add a characteristic" add-from-autocomplete-only="true" class="ng-pristine ng-valid ng-isolate-scope ng-valid-max-tags ng-valid-min-tags ng-valid-leftover-text ng-touched">

            <input class="input ng-pristine ng-valid ng-touched" autocomplete="off" ng-model="newTag.text" ng-change="eventHandlers.input.change(newTag.text)" ng-keydown="eventHandlers.input.keydown($event)" ng-focus="eventHandlers.input.focus($event)" ng-blur="eventHandlers.input.blur($event)" ng-paste="eventHandlers.input.paste($event)" ng-trim="false" ng-class="{'invalid-tag': newTag.invalid}" ng-disabled="disabled" ti-bind-attrs="{type: options.type, placeholder: options.placeholder, tabindex: options.tabindex, spellcheck: options.spellcheck}" ti-autosize="" type="text" placeholder="Add a characteristic" spellcheck="true" style="width: 133px;">Add a characteristic

                <input class="input ng-pristine ng-valid ng-touched" autocomplete="off" ng-model="newTag.text" ng-change="eventHandlers.input.change(newTag.text)" ng-keydown="eventHandlers.input.keydown($event)" ng-focus="eventHandlers.input.focus($event)" ng-blur="eventHandlers.input.blur($event)" ng-paste="eventHandlers.input.paste($event)" ng-trim="false" ng-class="{'invalid-tag': newTag.invalid}" ng-disabled="disabled" ti-bind-attrs="{type: options.type, placeholder: options.placeholder, tabindex: options.tabindex, spellcheck: options.spellcheck}" ti-autosize="" style="">Add a characteristicAdd a characteristic

            <auto-complete source="loadCharTagFn($query)" class="ng-scope ng-isolate-scope">

            </auto-complete>

</tags-input>

Sorry for not replying sooner.
Can you provide a plunker showing your issue? You can use this template.

This issue was selected to be spring-cleaned by a script. More information can be found here.
If anyone thinks this was a mistake and this issue should be reopened, please leave a message below explaining why. Before doing so, please consider reading the CONTRIBUTING file.


Get icons for ACRE Radio Options

see /configuration/FrameworkSettings/radioOptions.hpp:28.

Gonna add on to this to also get an icon for the Enable Arsenal Overwrite Zeus Action


helper method

views should be able to call a signature_field helper method to insert HTML into the page to accept a signature from a user in a form

Closed by #4


devfile component created out of java-quarkus component contains url with invalid name 8080/http

/kind bug

What versions of software are you using?
Operating System: Linux
Output of odo version: odo 2.0.0
How did you run odo exactly?
Validation
 ✓  Checking devfile existence [32581ns]
 ✓  Checking devfile compatibility [42265ns]
 ✓  Creating a devfile component from registry: DefaultDevfileRegistry [47653ns]
 ✓  Validating devfile component [96807ns]

Starter Project
 ✓  Downloading starter project quarkus-ex from https://github.com/odo-devfiles/quarkus-ex [687ms]

Please use `odo push` command to create the component with source deployed

Actual behavior
In not pushed state odo describe returns 8080/http name for the URL
{
        "kind": "Component",
        "apiVersion": "odo.dev/v1alpha1",
        "metadata": {
                "name": "java-quarkus",
                "namespace": "myproject",
                "creationTimestamp": null
        },
        "spec": {
                "app": "app",
                "type": "java-quarkus",
                "urls": {
                        "kind": "List",
                        "apiVersion": "odo.dev/v1alpha1",
                        "metadata": {},
                        "items": [
                                {
                                        "kind": "url",
                                        "apiVersion": "odo.dev/v1alpha1",
                                        "metadata": {
                                                "name": "8080/http",
                                                "creationTimestamp": null
                                        },
                                        "spec": {
                                                "port": 8080,
                                                "secure": false,
                                                "kind": "route"
                                        },
                                        "status": {
                                                "state": "Not Pushed"
                                        }
                                }
                        ]
                },
                "storages": {
                        "kind": "List",
                        "apiVersion": "odo.dev/v1alpha1",
                        "metadata": {},
                        "items": [
                                {
                                        "kind": "storage",
                                        "apiVersion": "odo.dev/v1alpha1",
                                        "metadata": {
                                                "name": "m2",
                                                "creationTimestamp": null
                                        },
                                        "spec": {
                                                "size": "3Gi",
                                                "path": "/home/user/.m2",
                                                "containerName": "tools"
                                        }
                                }
                        ]
                },
                "ports": [
                        "5858"
                ]
        },
        "status": {
                "state": "Not Pushed"
        }
}

even with url name '8080/http` devfile validation goes through without errors
odo" push

Validation
 ✓  Validating the devfile [40656ns]

Creating Kubernetes resources for component java-quarkus
 ✓  Waiting for component to start [5s]

Applying URL changes
 ✓  URL 8080-http: http://8080-http-java-quarkus-myproject.apps-crc.testing/ created

Syncing to component java-quarkus
 ✓  Checking files for pushing [1ms]
 ✓  Syncing files to the component [146ms]

Executing postStart event commands for component java-quarkus
 ✓  Executing init-compile command "mvn -Dmaven.repo.local=/home/user/.m2/repository compile" [39s]

Executing devfile commands for component java-quarkus
 ✓  Executing dev-run command "mvn -Dmaven.repo.local=/home/user/.m2/repository quarkus:dev", if not running [1s]

Pushing devfile component java-quarkus
 ✓  Changes successfully pushed to component

After push odo describe returns 8080-http name for the component's URL
odo describe -o json
{
        "kind": "Component",
        "apiVersion": "odo.dev/v1alpha1",
        "metadata": {
                "name": "java-quarkus",
                "namespace": "myproject",
                "creationTimestamp": null
        },
        "spec": {
                "app": "app",
                "type": "java-quarkus",
                "urls": {
                        "kind": "List",
                        "apiVersion": "odo.dev/v1alpha1",
                        "metadata": {},
                        "items": [
                                {
                                        "kind": "url",
                                        "apiVersion": "odo.dev/v1alpha1",
                                        "metadata": {
                                                "name": "8080-http",
                                                "creationTimestamp": null
                                        },
                                        "spec": {
                                                "host": "8080-http-java-quarkus-myproject.apps-crc.testing",
                                                "protocol": "http",
                                                "port": 8080,
                                                "secure": false,
                                                "kind": "route",
                                                "path": "/"
                                        },
                                        "status": {
                                                "state": "Pushed"
                                        }
                                }
                        ]
                },
                "storages": {
                        "kind": "List",
                        "apiVersion": "odo.dev/v1alpha1",
                        "metadata": {},
                        "items": [
                                {
                                        "kind": "storage",
                                        "apiVersion": "odo.dev/v1alpha1",
                                        "metadata": {
                                                "name": "m2",
                                                "creationTimestamp": null
                                        },
                                        "spec": {
                                                "size": "3Gi",
                                                "path": "/home/user/.m2",
                                                "containerName": "tools"
                                        }
                                }
                        ]
                },
                "env": [
                        {
                                "name": "PROJECTS_ROOT",
                                "value": "/projects"
                        },
                        {
                                "name": "DEBUG_PORT",
                                "value": "5858"
                        }
                ],
                "ports": [
                        "5858"
                ]
        },
        "status": {
                "state": "Pushed"
        }
}

Expected behavior
If 8080/http should be originally 8080-http right after  component is created. That name 8080/http with '/' should be caught during validation rather than replaced to 8080-http during deployment.
Any logs, error output, etc?
N/A

I like the idea that odo is smart enough to do this but I also see that is kind of work would make it less transparent to odo. So while we get to the conclusion of things I have opened a PR to rename 8080/http to 8080-http.
registry PR link - https://github.com/odo-devfiles/registry/pull/58

@kadel I was think what if this converstion is done when the devfile is downloaded so the moment someone uses any other commands they see - 8080-http instead of 8080/http. This can be done as part of post validation work in the parser?

actually I remembered that we need to decouple the url created from the name of the url. the name of the url should be "8080/http" but the url should have "8080-http". but this shouldn't change the name of the url to "8080-http"

so I tried doing the above where the name stays 8080/http but the metadata.name for the ingress becomes 8080/http-java-quarkus
which is invalid with error
unable to create route: error creating route: Route.route.openshift.io "8080/http-java-quarkus" is invalid: [metadata.name: Invalid value: "8080/http-java-quarkus": a DNS-1123 subdomain must consist of lower case alphanumeric characters

so now we either change the 8080/http the moment we download the devfile or we fail on validation @kadel

blocked on the decision

so now we either change the 8080/http the moment we download the devfile or we fail on validation @kadel

We should not change it. If the name is defined as 8080/http it either needs to stay like this or the validation needs to fail.
This depends on Devfile spec. Assuming the current definition where the endpoint name is just plain string without any other restriction the correct way is not to fail.
The problem is that we use an endpoint name for Ingress/Route name. We need to decouple these two fields.
When the Ingres/Route is generated we should generate valid metadata.name for Kubernetes resource (this can be based on endpoint name). And save the actual name as a label. From that point, the label value should be considered as an URL name.
If the user runs odo url create 8080/http or if devfile contains endpoint with name: 8080/http the odo should generate Ingress or Route with label odo.openshift.io/url-name: 8080/http.
We should use the value of this label everywhere in odo as an URL name (including  in env.yaml).
If odo needs to query Cluster for url, it shouldn't query for the resource name, but it should always use label selectors.
For example, if odo needs a list of all URLs for a component named frontend in application myapp it should list all Ingress and Routes that have app.kubernetes.io/instance: frontend and app.kubernetes.io/part-of:  myapp labels and in the output display values from odo.openshift.io/url-name label.
metadata.name should not play any role in this. Even if we would start using random generated metada.name everything should keep working (not suggesting that we should do this :-) )

yeah but the approach you are mentioning will break existing urls present in working devfile components. any transition plans? or plain old delete and create again?

So the approach with labels won't work :/ Label values must be alphanumeric with _ - . no other characters are allowed.
The only place we can store URL name in the cluster is as annotations, everything else will have restrictions.
I've opened an issue on the Devfile spec repo about this

one approach that came out of the discussion was to store the name in the annotations, but then the odo.openshift.io/url-name becomes an annotation which would mean we cannot use that in label selector so my current thinking is to that we have a
url-identifier in the label ( url-name would be misleading ) which converts / to - so label selection is possible and we have annotation that we use as a name.

I am thinking if I change many things in the url package that might conflict with the url refactor.

@kadel It is really a big usability problem right now. It affects especially initial user experience for quarkus projects. Because right after creating the project this leads to problems to open it in browser and new users left hanging with project that looks totally broken without no easy way out.
Is that possible as a hot fix just update url name in devfile to be the same as after deployment?

@dgolovin as we changed the url from 8080/http to 8080-http in quarkus so currently is this an urgent issue?

@girishramnani just verified it. Works for me OOTB now.

A long term solution is needed here or else we would be changing devfiles in future whenever this occurs
solution -

one approach that came out of the discussion was to store the name in the annotations, but then the odo.openshift.io/url-name becomes an annotation and cannot be used in label selector so we can store
url-identifier in the label ( url-name would be misleading ) which converts / to - so label selection is possible and we have annotation that we use as a name.
We could have gone with just adding a validation for the url name but the architectural reasoning that @kadel provided was that we cannot drive the validation rules in the devfile spec based on odo's implementation detail.

Also this solution would be a breaking change - would break existing components

I've opened an issue on the Devfile spec repo about this

Can you share the issue number please?

Moving this out of this sprint for time being since the discussion and inputs need to come in from different teams involved in this.

the devfile spec was updated https://github.com/devfile/api/issues/201 Name and Id need to follow the same rules ad k8s names

so then this is a non-issue now? or we need to update the devfile library to close this issue? @kadel ?

Added to sprint just so we can discuss if we need to close this issue


Define a repo for rules

Dont reinvent the wheel...
...and let users contribute their rules to a separate repo / website.
Solution

Define some rules (naming, file endings, utf-8, etc. pp)
Gather some volunteers to check for malitious code.
Create a website with search ,filters and ratings
Profit ;D

Possible match in your Roadmap https://github.com/tfeldmann/organize/projects/4#card-25088440

Good idea. Creating a website for this is a bit too much but a folder with some predefined rules would certainly be useful and could live in this repository. Goes on the todo list.

I'm having a hard time defining what these predefined rules might look like.

I haven't fully thought this through, but one idea might be to allow these standalone rules to be 'include'd into the main config, and you pass any required variables to it
So your generic 'blueprint' might be defined as..
description: "Recursively delete all empty directories"
type: "blueprint"
---
rules:
  - locations: "{{ vars.dir }}"
    targets: dirs
    subfolders: true
    filters:
      - empty
    actions:
      - delete

and then you include the blueprint from your main config like...
description: "Recursively delete all empty directories"
type: "rule"
include:
  file: blueprints/recursively_delete.yml
  vars:
    - dir: ~/Desktop/some_dir

It could then generate an error if vars.dir was not defined


Imported cluster has wrong landing page

Opening imported cluster from Menu -> Cluster management -> Name redirects to page with registration commands even when cluster is already registered.
Expected result:

show cluster home page when cluster is registered
show page where I can see registration commands if cluster is not registered

Opening cluster in dashboard from other locations redirects to cluster home fine, for example from

EmberUI -> Explorer
Dashboard home page
Menu -> Cluster management -> Explore

This might be expected or temporary behavior since I can't find other way to display registration commands again.
Please confirm.
Tested on master-head (5d2b7ac)
Cluster: Imported rke2 single node cluster

@kravciak This is the expected behaviour - when on the Cluster Management view, clicking on the name takes you to the details for the cluster, since you're in the mgmt world. You click the Explore button to explore the cluster.
If this is confusing, we can look to mitigate.

Closing based on last comment


Use long tags in PHP

I found 5 more short tags in some PHP source files.
This pull request relates to #4.

Thank you for your contribution. I'm sorry that I haven't noticed for a long time.


Pandas Collab tutorial

Hi @slobentanzer,
The tutorial is now fully aligned to be run via G collab.
One can now just copy the link to the jupyter notebook and open it via collab:
https://colab.research.google.com/github/dbdimitrov/biocypher/blob/pandas-tutorial/tutorial/08_basics_pandas.ipynb
You would need to re-link the tutorial with a new link, once this is merged into the main branch.
Best,
Daniel

Re: https://github.com/biocypher/biocypher/issues/197

Great work! :) Will make the needed changes and merge once done.


Publish to crates.io

Hi @jaythomas, I have added new features some modifications.
Care to publish the new version to crates.io?

Hi @schungx! I'll take care of that for you.

I noticed v0.1.2 was never published so I published that and v0.1.3. https://crates.io/crates/rhai-rand/versions


Toolbar gets hidden in UpdateToolbar() if ShowCameraButton is false and you have made a selection

GMImagePickerController.cs line 387:
var toolbarHidden = _selectedAssets.Any () && !ShowCameraButton;
Should be:
var toolbarHidden = !_selectedAssets.Any () && !ShowCameraButton;
As soon as a selection is made, the toolbar gets hidden.

Good catch! You're totally right. I didn't notice because I have the camera button turned on. I'm about to push a fix, including some fixes for issue #2.
Thanks!

0.0.8 is now out on Nuget, including this fix.


"Anghinești" is listed in the drop-down menu

Description:
"Anghinești" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Anghinești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Anghinești, Argeș (Băiculești)".


NPM Crash

Not sure if this is shulker or discord.js but I've set up an implemented the package and am having the following crash intermittently.
http://pastebin.com/LAawtem2
Any tips appreciated - in the meantime setting up a script to run on a cronjob and kick it back alive every 30 minutes.

The problem is that the port is already in use or you don't have permission to bind that port. Try checking if there is something running on that port already.
Also try changing the listening port of the HTTP server or running the server as root using sudo node index.js.

@Cholesterol is this still happening?

Hey there,
I actually circumvented it by setting a cronjob to restart it every 10 minutes... It happened mid-use randomly so it would be bound to that port already and then kick me out and give that error.  I don't have anything running on that port (checked and double checked).  I've solved my issue in a round about way so you can close this.

Actually, try using forever instead. This is very weird as this never happened to me and it has been running for over 2 days now flawlessly.

it might have to do with the server restarting?  I'm running FTB Infinity Evolved so I have frequent restarts (every 3 hours) - the issue seems to crop up the most during those times as I can't continuously run the server without hitting memory leaks from all the crazy stuff we are doing.

That must be it, on restart MC creates a new log file, so the tail command breaks. I would suggest trying to fix those memory leaks...

The tail command runs completely independently of the node portion of Shulker. The crash is probably caused by the RCON module not being able to connect. I'll quickly test this to see if it's the case.


Need text and links to the github site from the web pages

If someone wants to contribute to CF our web pages direct them to the mail list and the trac site, but not the github project site.  The website needs revision so people will know how to engage.
At the very least, a quick link should be included on http://cfconventions.org and a short explanation of how one contributes, including a link to the github CF project should appear on http://cfconventions.org/discussion.html .  Also, need links to
https://github.com/cf-convention/cf-conventions/blob/master/CONTRIBUTING.md
and possibly
http://cfconventions.org/rules.html

I agree too with @taylor13 and @jypeter. In fact now we've moved from email and trac to GitHub for both, the website is definitely out of date. It should point to GitHub issues. Is someone already addressing this in another issue (or perhaps pull request)? If not, I will assemble a list of proposals in this issue, or perhaps a new issue to bring things together.

I have included this change in https://github.com/cf-convention/cf-convention.github.io/issues/162 so I will close this one now. Please comment there. Thanks, @taylor13 and @jypeter.


Typo in Download page (Windows)

Description
There is a typo in the https://qgis.org/de/site/forusers/download.html page, in the for Windows section.
It says:
"Looking for the most stable version? Get QGIS 3.22LTR"
there should be a space between 3.22 and LTR
"Looking for the most stable version? Get QGIS 3.22 LTR"
Page URL: https://qgis.org/de/site/forusers/download.html
Also the 'fix me' link takes me to https://github.com/qgis/QGIS-Website/edit/master/source/site/forusers/download.rst, where this text isn't present. It mentions HTML texts but I don't know where they are.
Thanks! :-)

Not visible here - both in the (untranslated) german version and in English.

Also the 'fix me' link takes me to https://github.com/qgis/QGIS-Website/edit/master/source/site/forusers/download.rst, where this text isn't present. It mentions HTML texts but I don't know where they are.

@nickbearman Here https://github.com/qgis/QGIS-Website/blob/master/themes/qgis-theme/forusers_download.html

Thanks - it's there now.
Thanks for speedy response.
Best wishes, Nick.

Useful link too - thanks!
https://github.com/qgis/QGIS-Website/blob/master/themes/qgis-theme/forusers_download.html
Would it be ok to add that into here?
https://github.com/qgis/QGIS-Website/edit/master/source/site/forusers/download.rst
That will help me when I forget in the future!

I don't think it would hurt. And probably to the other pages that behave the same (bring to an empty rst file while the sources are in https://github.com/qgis/QGIS-Website/tree/master/themes/qgis-theme)


Add Support for Bass Guitar

The current BassGuitarTrack doesn't do anything.
Additionally, generateGuitar in TrackRenderer.java is used for both BassGuitarTrack and GuitarTrack.
It currently uses midi program 31 (Electric Guitar) for both. It should use midi program 34 for Bass Guitar.
I think this is the only real difference between a bass guitar and an electric guitar in GuitarPro. Much of the implementation of BassGuitar could come from existing code and subclassing.
We should also add an Enum for the available GM Midi programs.

Do we even need separate classes for BassGuitar and other Guitars, or do we just need a way to change the MIDI program from the track?
Could we rename GuitarTrack to FrettedInstrumentTrack or StringedInstrumentTrack, and reuse that logic for all guitars?


Using to_parquet with pyarrow fails on compression argument

I was saving DataFrame to Parquet using Arrow as the engine fails if there is compression argument passed to the function. Indeed, looking into Arrow's documentation there is no such method, nor kwargs, thus, the below fail. Interestingly, it fails in the middle of computations, not at the beginning. Note that I had only 'pyarrow' installed, thus, no engine has been specified explicitly. The below works after switching engine to fastparquet.
Using:

python 3.6 via Anaconda
dask 0.16.0
pyarrow 0.7.1

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-55-c751a9021c02> in <module>()
      2
      3 with ProgressBar():
----> 4     posts.repartition(npartitions=200)        .to_parquet('large_data/Posts.parq', compression='snappy')

C:\ProgramData\Anaconda3\lib\site-packages\dask\dataframe\core.py in to_parquet(self, path, *args, **kwargs)
    983         """ See dd.to_parquet docstring for more information """
    984         from .io import to_parquet
--> 985         return to_parquet(self, path, *args, **kwargs)
    986
    987     def to_csv(self, filename, **kwargs):

C:\ProgramData\Anaconda3\lib\site-packages\dask\dataframe\io\parquet.py in to_parquet(df, path, engine, compression, write_index, append, ignore_divisions, partition_on, storage_options, compute, **kwargs)
    616
    617     if compute:
--> 618         out.compute()
    619         return None
    620     return out

C:\ProgramData\Anaconda3\lib\site-packages\dask\base.py in compute(self, **kwargs)
    133         dask.base.compute
    134         """
--> 135         (result,) = compute(self, traverse=False, **kwargs)
    136         return result
    137

C:\ProgramData\Anaconda3\lib\site-packages\dask\base.py in compute(*args, **kwargs)
    331     postcomputes = [a.__dask_postcompute__() if is_dask_collection(a)
    332                     else (None, a) for a in args]
--> 333     results = get(dsk, keys, **kwargs)
    334     results_iter = iter(results)
    335     return tuple(a if f is None else f(next(results_iter), *a)

C:\ProgramData\Anaconda3\lib\site-packages\dask\multiprocessing.py in get(dsk, keys, num_workers, func_loads, func_dumps, optimize_graph, **kwargs)
    175                            get_id=_process_get_id, dumps=dumps, loads=loads,
    176                            pack_exception=pack_exception,
--> 177                            raise_exception=reraise, **kwargs)
    178     finally:
    179         if cleanup:

C:\ProgramData\Anaconda3\lib\site-packages\dask\local.py in get_async(apply_async, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, **kwargs)
    519                         _execute_task(task, data)  # Re-execute locally
    520                     else:
--> 521                         raise_exception(exc, tb)
    522                 res, worker_id = loads(res_info)
    523                 state['cache'][key] = res

C:\ProgramData\Anaconda3\lib\site-packages\dask\compatibility.py in reraise(exc, tb)
     57     def reraise(exc, tb=None):
     58         if exc.__traceback__ is not tb:
---> 59             raise exc.with_traceback(tb)
     60         raise exc
     61

C:\ProgramData\Anaconda3\lib\site-packages\dask\local.py in execute_task()
    288     try:
    289         task, data = loads(task_info)
--> 290         result = _execute_task(task, data)
    291         id = get_id()
    292         result = dumps((result, id))

C:\ProgramData\Anaconda3\lib\site-packages\dask\local.py in _execute_task()
    269         func, args = arg[0], arg[1:]
    270         args2 = [_execute_task(a, cache) for a in args]
--> 271         return func(*args2)
    272     elif not ishashable(arg):
    273         return arg

C:\ProgramData\Anaconda3\lib\site-packages\dask\compatibility.py in apply()
     45     def apply(func, args, kwargs=None):
     46         if kwargs:
---> 47             return func(*args, **kwargs)
     48         else:
     49             return func(*args)

C:\ProgramData\Anaconda3\lib\site-packages\dask\dataframe\io\parquet.py in _write_partition_pyarrow()
    417     if metadata_path is not None:
    418         with open_with(metadata_path, 'wb') as fil:
--> 419             parquet.write_metadata(t.schema, fil, **kwargs)
    420
    421

TypeError: write_metadata() got an unexpected keyword argument 'compression'

I think this was fixed in dask master. Can you try if installing dask from git solves the issue?

I've tested it and it's fixed, i.e. the file writing goes through. Though, I get a different behavior. First there is no _metadata file saved, only _common_metadata; before it was attempting to save it, though, it failed. Second I get the following errors when I try to read the files using engine fastparquet; reading works fine with pyarrow. I don't know if this permission error is due to _metadata missing or something else, but nothing else is using the files.
FileNotFoundError                         Traceback (most recent call last)
C:\ProgramData\Anaconda3\lib\site-packages\fastparquet\api.py in __init__(self, fn, verify, open_with, sep, root)
     95                 self.fn = fn2
---> 96                 with open_with(fn2, 'rb') as f:
     97                     self._parse_header(f, verify)

C:\ProgramData\Anaconda3\lib\site-packages\dask\bytes\core.py in __enter__(self)
    311         mode = self.mode.replace('t', '').replace('b', '') + 'b'
--> 312         f = f2 = self.myopen(self.path, mode=mode)
    313         CompressFile = merge(seekable_files, compress_files)[self.compression]

C:\ProgramData\Anaconda3\lib\site-packages\dask\bytes\local.py in open(self, path, mode, **kwargs)
     60         path = self._trim_filename(path)
---> 61         return open(path, mode=mode)
     62

FileNotFoundError: [Errno 2] No such file or directory: 'D:/Kuba/Projects/large_data/Posts.parq\\_metadata\\_metadata'

During handling of the above exception, another exception occurred:

FileNotFoundError                         Traceback (most recent call last)
C:\ProgramData\Anaconda3\lib\site-packages\dask\dataframe\io\parquet.py in _read_fastparquet(fs, paths, myopen, columns, filters, categories, index, storage_options)
     57                                          open_with=myopen,
---> 58                                          sep=fs.sep)
     59         except Exception:

C:\ProgramData\Anaconda3\lib\site-packages\fastparquet\api.py in __init__(self, fn, verify, open_with, sep, root)
    100                 self.fn = fn
--> 101                 with open_with(fn, 'rb') as f:
    102                     self._parse_header(f, verify)

C:\ProgramData\Anaconda3\lib\site-packages\dask\bytes\core.py in __enter__(self)
    311         mode = self.mode.replace('t', '').replace('b', '') + 'b'
--> 312         f = f2 = self.myopen(self.path, mode=mode)
    313         CompressFile = merge(seekable_files, compress_files)[self.compression]

C:\ProgramData\Anaconda3\lib\site-packages\dask\bytes\local.py in open(self, path, mode, **kwargs)
     60         path = self._trim_filename(path)
---> 61         return open(path, mode=mode)
     62

FileNotFoundError: [Errno 2] No such file or directory: 'D:/Kuba/Projects/large_data/Posts.parq\\_metadata'

During handling of the above exception, another exception occurred:

FileNotFoundError                         Traceback (most recent call last)
C:\ProgramData\Anaconda3\lib\site-packages\fastparquet\api.py in __init__(self, fn, verify, open_with, sep, root)
     95                 self.fn = fn2
---> 96                 with open_with(fn2, 'rb') as f:
     97                     self._parse_header(f, verify)

C:\ProgramData\Anaconda3\lib\site-packages\dask\bytes\core.py in __enter__(self)
    311         mode = self.mode.replace('t', '').replace('b', '') + 'b'
--> 312         f = f2 = self.myopen(self.path, mode=mode)
    313         CompressFile = merge(seekable_files, compress_files)[self.compression]

C:\ProgramData\Anaconda3\lib\site-packages\dask\bytes\local.py in open(self, path, mode, **kwargs)
     60         path = self._trim_filename(path)
---> 61         return open(path, mode=mode)
     62

FileNotFoundError: [Errno 2] No such file or directory: 'D:/Kuba/Projects/large_data/Posts.parq\\_metadata'

During handling of the above exception, another exception occurred:

PermissionError                           Traceback (most recent call last)
<ipython-input-2-c4cf5982d1c9> in <module>()
----> 1 posts = dd.read_parquet('D:/Kuba/Projects/large_data/Posts.parq', engine='fastparquet')
      2 posts

C:\ProgramData\Anaconda3\lib\site-packages\dask\dataframe\io\parquet.py in read_parquet(path, columns, filters, categories, index, storage_options, engine)
    536
    537     return read(fs, paths, file_opener, columns=columns, filters=filters,
--> 538                 categories=categories, index=index)
    539
    540

C:\ProgramData\Anaconda3\lib\site-packages\dask\dataframe\io\parquet.py in _read_fastparquet(fs, paths, myopen, columns, filters, categories, index, storage_options)
     58                                          sep=fs.sep)
     59         except Exception:
---> 60             pf = fastparquet.ParquetFile(paths[0], open_with=myopen, sep=fs.sep)
     61
     62     check_column_names(pf.columns, categories)

C:\ProgramData\Anaconda3\lib\site-packages\fastparquet\api.py in __init__(self, fn, verify, open_with, sep, root)
     99             except (IOError, OSError):
    100                 self.fn = fn
--> 101                 with open_with(fn, 'rb') as f:
    102                     self._parse_header(f, verify)
    103         self.open = open_with

C:\ProgramData\Anaconda3\lib\site-packages\dask\bytes\core.py in __enter__(self)
    310     def __enter__(self):
    311         mode = self.mode.replace('t', '').replace('b', '') + 'b'
--> 312         f = f2 = self.myopen(self.path, mode=mode)
    313         CompressFile = merge(seekable_files, compress_files)[self.compression]
    314         if PY2:

C:\ProgramData\Anaconda3\lib\site-packages\dask\bytes\local.py in open(self, path, mode, **kwargs)
     59         """
     60         path = self._trim_filename(path)
---> 61         return open(path, mode=mode)
     62
     63     def ukey(self, path):

PermissionError: [Errno 13] Permission denied: 'D:/Kuba/Projects/large_data/Posts.parq'

Moreover, the below fix removes only the compression parameter.
https://github.com/dask/dask/blob/9b7e21cfc33cb9c66abb85b547669edb915bc9e7/dask/dataframe/io/parquet.py#L416.
When some other parameter would sneak into kwargs, you may get a similar error as function write_metadata takes only certain named arguments and no kwargs. Thus, this should only take out the arguments from kwargs that are handeled by the function. I can propose a PR to fix that.

First there is no _metadata file saved, only _common_metadata; before it was attempting to save it, though, it failed.

Pyarrow currently doesn't have the machinery to write a _metadata file, only _common_metadata. Before we were erroneously writing _common_metadata as _metadata.

Second I get the following errors when I try to read the files using engine fastparquet; reading works fine with pyarrow.

fastparquet requires _metadata if you point only at a directory (and thus can't read pyarrow written parquet as easily). You can use a glob to read with fastparquet and things should work fine:
dd.read_parquet('mypath/*.parq')

Moreover, the below fix removes only the compression parameter.

That's a good point, PR welcome.

Fixed by #2986. Closing.


threescale: configuration for adapter release 2.0

This PR supersedes #491 (you can safely close that one, /cc @PhilipGough).
Note that I had to apply https://github.com/unleashed/istio-operator/pull/1 to be able to run make update-2.0-charts due to unavailable dependencies. Let me know if you want me to post that PR here as well.

/ok-to-test

I've integrated these changes as part of my work to add 3scale support into the new SMCP v2 resource.  Could you please verify the current versions of these files:
https://github.com/maistra/istio-operator/blob/maistra-2.0/resources/helm/overlays/maistra-threescale/templates/deployment.yaml
https://github.com/maistra/istio-operator/blob/maistra-2.0/resources/helm/overlays/maistra-threescale/values.yaml
Also, do we need to be using a new version of the 3scale adapter?  I believe we're still referencing 1.0.0.

@rcernich the files look good. And yes, a new version of the 3scale adapter needs to be referenced, 2.0.0.

@rcernich so at this point with the changes you added I think we can close this issue. AFAICT the remaining issues are:

[ ] Update 3scale-istio-adapter container image tags to 2.0.0
[ ] Consider whether https://github.com/unleashed/istio-operator/pull/1 is of any utility to you.

@unleashed, can you provide a PR that updates the relevant files required to use the new image?  I assume you'll need to update:
https://github.com/maistra/istio-operator/blob/maistra-2.0/deploy/servicemesh-operator.yaml#L6978
https://github.com/maistra/istio-operator/blob/maistra-2.0/resources/smcp-templates/v2.0/servicemesh#L38
https://github.com/maistra/istio-operator/blob/maistra-2.0/deploy/maistra-operator.yaml#L6978
https://github.com/maistra/istio-operator/blob/maistra-2.0/resources/smcp-templates/v2.0/maistra#L38
https://github.com/maistra/istio-operator/blob/maistra-2.0/resources/helm/overlays/maistra-threescale/templates/threescale-adapter.yaml
https://github.com/maistra/istio-operator/blob/maistra-2.0/resources/helm/overlays/maistra-threescale/templates/threescale-authorization-template.yaml

@rcernich sure! Done in #566.

this work has been finished in other prs.


move smoke-tests.yml to enable notifications

Closing in favor of: https://github.com/Azure/azure-sdk-for-java/pull/10794


Actually log martians?

Comment seems to indicate we want to log, but setting is not to:
https://github.com/hardening-io/chef-os-hardening/blob/b5a0a3e34776bd93d6c553f133c46527ebd2d965/attributes/sysctl.rb#L125
This slide also seems to indicate that we want to log:
http://www.slideshare.net/myowntelco/centos-linux-server-hardening#18

Hi @patcon Thanks for reporting this. Yes, we should log it by default. See also CIS Benchmark reference in section 4.2.4 Log Suspicious Packets (Scored)
sysctl should have the following values by default:
net.ipv4.conf.all.log_martians=1
net.ipv4.conf.default.log_martians=1


[BUG]: Unable to generate PG migration when renaming table with composite PK

What version of drizzle-orm are you using?
0.29.3
What version of drizzle-kit are you using?
0.20.9
Describe the Bug
I have the following table in my schema:
export const UserAnsweredQuestions = pgTable('user_answered_questions', {
  ...
}, (table) => ({
  pk: primaryKey({
    columns: [table.userId, table.surveyQuestionId]
  })
}));

And I wanted to rename it to be singular, instead of plural:
export const UserAnsweredQuestion = pgTable('user_answered_question', { ... }));

Upon executing npx drizzle-kit generate:pg and accepting the rename option, I get this error:
No config path provided, using default 'drizzle.config.js'
Reading config file 'C:\Users\...\project\drizzle.config.js'
~ user_answered_questions › user_answered_question table will be renamed
--- all table conflicts resolved ---

TypeError: Cannot read properties of undefined (reading 'compositePrimaryKeys')

Expected behavior
This should not error. It should rename the table without issues.
Environment & setup
OS: Windows 11
Node.js: v18.18.0

I can confirm the same error when doing a drizzle-kit push:pg
after renaming table committeeMembership › member.
❯ pn run drizzle:push

><EMAIL_ADDRESS>drizzle:push /Users/nils/code/prisma
> drizzle-kit push:pg --config=drizzle.config.ts

drizzle-kit: v0.20.13
drizzle-orm: v0.29.3

Custom config path was provided, using 'drizzle.config.ts'
Reading config file '/Users/nils/code/prisma/drizzle.config.ts'
~ committeeMembership › member table will be renamed
--- all table conflicts resolved ---

TypeError: Cannot read properties of undefined (reading 'compositePrimaryKeys')

I renamed manually.
ALTER TABLE committeeMembership
RENAME TO member;

Hi all,
This seems like a real problem, i just upgraded to 0.21.0 now every time i make a schema change i get this compositePrimaryKey undefined error and have to completely wipe my DB and start fresh to push anything to neon.
Even a simple change like adding a new column to any table causes me to get this error.

please check<EMAIL_ADDRESS>should have the fix for that


Pull tempest from content provider

This pr adds more zuul return vars to openstack content provider job so that we can fetch tag and registry url for pulling tempest container.
It will help to test proper tempest container in content provider job.
As a pull request owner and reviewers, I checked that:

[x] Appropriate testing is done and actually running

/approve
wondering if our ci playbooks may leverage the "run_hook" role.

/approve
wondering if our ci playbooks may leverage the "run_hook" role.

Not sure about that, I am thinking to use run_test role (which I was working on in the past) to run these ci playbooks and keep only one run.yml playbook to execute the nested playbook from there.

Closing currently, will revisit later.


Token API Endpoint only returning user's Token

Rancher Server Setup

Rancher version: v2.6

Describe the bug
Rancher has a Token endpoint, which can also be used through the Go client.
To list tokens, the following request can be made:
<rancher-URL>/v3/tokens

According to the API Spec, it is possible to filter some results as well. The Go API contains this filter in the list-options, so it seems to be supported.
However, when listing tokens,

Only Tokens from the currently authenticated user are returned
The filters seem to be ignored completely

To Reproduce
Go to <rancher-URL>/v3/tokens, and check if you can see tokens from other users.
Result
Only tokens from the current user are listed, the filters don't work at all.
Expected Result
All Tokens are listed (if permissions allow it), and filters work in any case.
Additional context
My use case is that I want to create API Tokens for local Users, and to manage them I need to be able to list tokens.
I would expect a query like this to return all tokens of a specific user-id:
<rancher-URL>/v3/tokens?userId=<user-id>

But the userId query is completely ignored and the API just returns all tokens of the current user.
Note that the current user, in my case, is the local administrator, so has full access to everything.

Filters happen at the end and literally filter the responsive records.  They can only remove records that would have been returned, not cause additional ones to be returned.
The token endpoint is one of several that return only info about the person calling, i.e. your tokens.  There is no API to get back other people's, nor create them for others.


Add toBuffer method

I want to write a 64-bit integer to Buffer object, so I added toBuffer method.
If required will support big endian too.

Nice work, but converting a BigNumber to a Buffer representing a signed 64-bit integer in little endian form seems too arbitrary/specialised/limited - perhaps it should be toInt64LE, or perhaps there could be a parameter specifying the return value, e.g. toBuffer('Uint32BE').
Another consideration is that unlike the rest of the library, it won't work in browsers, though I suppose an ArrayBuffer could be returned instead, but then that would still break ECMAScript 3 engine compatibility.
Adding this type of functionality has come up before, see #117. If I was going to include it, I would prefer for it to handle BigNumbers fully, not just integers and not just 64-bit values.
x = new Bignumber(12345)
x.toBytes()    //  [48,57]

y = new BigNumber('12345.4321')
y.toBytes()    //  [ [48,57], [110,158,27,8,154,2,117,37,70,10,166,76,47,131,123,74,35,57,192,236] ]

z = new BigNumber(y)
// or z = BigNumber.fromBytes(y)

But then that seems rather pointless, and it would be unsigned only.

Very nice work, but converting a BigNumber to a Buffer representing a signed 64-bit integer in little endian form seems too arbitrary/specialised/limited - perhaps it should be toInt64LE.
And unlike the rest of the library, it won't work in browsers, though I suppose an ArrayBuffer could be returned instead, but then that would still break ECMAScript 3 engine compatibility.
Adding this type of functionality has come up before, see #117. If I was going to include it, I would prefer for it to handle BigNumbers fully, not just integers and not just 64-bit values.
x = new Bignumber(256)
x.toBytes()    //  [1,0]

// Return an array of two arrays for the integer and fraction parts of the number
y = new BigNumber(256.5)
y.toBytes()    //  [ [1,0], [128] ]

z = new BigNumber(y)
// or z = BigNumber.fromBytes(y)

I would prefer to just return a normal array, and leave it up to a user to convert it to two's complement and to a Buffer/ArrayBuffer/TypedArray as they require.

Probably It's not difficult to support 32bit, 16bit ..., and non-integer, and I have big endian version already.
But not to work on browser is critical problem as you say. I never thought of that. I think should return standard type to work anywhere, too.
thanks.


Moving a blinking text cursor may force it to not blink anymore (in mode 1 at least in  1.04rc1 mos/vdp)

The title may be misleading. I am using asm through z88dk C compiler.
What happens is that the blinking of the text cursor is not visible unless the current foreground and background colors are the same than the colors under the cursor.
So, moving the cursor in a text area with mixed colors gets very complicated : you need to

move the cursor (vdu 31 x y)
fetch the colors in that position if not known
set colors to that position's colors (vdu 17 x; vdu 17 x+0x80) but it's not enough
fetch the current character in that position if not known
rewrite the character to 'validate' the colors somehow
Only then you are sure that the cursor will blink.
If you play with the colors, you may obtain a situation where only the displayed character blinks, not the complete font space.
The emulator (1.03/1.03) doesn't show this problem

So maybe that was intended, but somehow I think this is much more complicated than it should be.
How to reproduce quickly : under MOS type :
*vdu 31 0 22 17 15 17 128 65 65 17 14 17 130 66 31 0 22
You should see "*AB" and the A should blink but it doesn't
change the color 14 by "0" and you'll see it blink
*vdu 31 0 22 17 15 17 128 65 65 17 0 17 130 66 31 0 22
change the same parameter to "15" and you'll see that only the character "A" blinks
*vdu 31 0 22 17 15 17 128 65 65 17 15 17 130 66 31 0 22
Rgds ...

Hi @theflynn49 thank you for your comment. I've never been that happy with the cursor implementation and will probably get around to rewriting it at some point. At the moment it currently inverts a rectangle at the text cursor position.

the problem with the cursor drawing essentially is that it swaps the current text foreground and background colours within the cursor rectangle.  given the capabilities of vdp-gl this was a sensible compromise, but it does means that if the cursor is sitting above a rectangle of the screen that doesn't contain the current text colours the cursor will be invisible.
a solution to this is to instead draw the cursor using an XOR plotting system.
the difficulty with this idea is that the most recently published version of vdp-gl does not support XOR plotting.  I have however implemented that functionality, and it has been merged into the codebase - it just hasn't been released yet.
the latest Console8 VDP release (2.7.1) uses an XOR-based plotting mechanism for the cursor (it is built using PlatformIO so does not need to use the published version of vdp-gl and can instead use a custom branch containing this functionality).  it is drawn using XOR with both the current foreground text colour and current background text colour, which ensures that the cursor will remain visible when the cursor is active and set to be visible.  this can mean that the cursor may appear in slightly unexpected colours when placed on a background that doesn't match the current text colours, but I felt that was a reasonable compromise

Sounds good to me. It's been a while, but what I remember is that to get a reasonable result, I had to redraw the characters below the cursor when it moved, and methink this is bad : you should be able to move the cursor without knowing what's underneath ...


[Bug]: GHCR does not support IPv6, so we need a fallbackto Docker Hub

Error Message and Logs
Title says everything.
Steps to Reproduce
Try to use Coolify with only IPv6.
Example Repository URL
No response
Coolify Version
latest
Are you using Coolify Cloud?
No (self-hosted)
Operating System and Version (self-hosted)
No response
Additional Information
No response

you could also use https://quay.io/

Some issue here. Doesn't not work with ipv6-only servers.
I tried to check quay.io but it seems doesn't include the coolify repo.


[backport] Assorted CI fixes and changes

Mostly deals with Windows, but also fixes an issue that can occur when building mono.

missing https://github.com/godotengine/godot/commit/454251660c4c227121be6a6bab67b2998ffbf81a


nixos: use uniq in the type of system.build

unspecified will happily concatenate strings together from two unrelated modules, causing spurious errors (see #155925).
Ideally we could make system.build a submodule with a few distinguished options like installBootLoader, but I don't think this is necessary right now.
I've tested this by running a vm with build-vm-with-bootloader.

I didn't know that it did that, but anything also merges, deeply even. How about uniq unspecified?
Regarding the submodule, see blocked pr #155883.

Sounds good, I looked at all definitions of system.build.* and couldn't find anything that relies on merging.

@ofborg test grub systemd-boot login

Before attrsOf unspecified, it was attrs, which would replace attributes arbitrarily in case of duplicates; arbitrary being determined by the module import order and module system internals.

OfBorg evaluates fine. The error on arm is caused by a build failure after eval, caused by a full disk.
I hope not too many collisions exist out there, because they're about to be discovered -- well, except for the fraction of users that turned away because they couldn't figure out why their config or module didn't apply because of the silent collisions. Sad.
Let's fix this problem for current and future configs. Merging.


Add support for distutils_kwds_hook

As alternative to #412, add support for a hook function allowing complete customization of the **kwds used in the Extension constructor.

The right integration point for something like this seems to implement your own Extension subclass which has full control over these keywords.

The right integration point for something like this seems to implement your own Extension subclass which has full control over these keywords.

There is one short-coming with that suggestion: it wouldn't change module_metadata. I care a lot about that, because it is an important debugging interface. If the module_metadata is different from the actual metadata in the Extension, that would be very confusing.
But maybe we could construct the Extension first and then take the module_metadata from that.

That being said, your suggestion makes a lot of sense.

But maybe we could construct the Extension first and then take the module_metadata from that.

Do you agree with the above?

I don't see a non-hacky way to extract the module_metadata from the extension itself. Mostly this was intended to allow emulating cythonize given the .c files.

I don't see a non-hacky way to extract the module_metadata from the extension itself.

Do you see any solution to my problem (changing distutils kwds when creating the Extension objects but also putting the correct metadata in the .c files) which might be acceptable to Cython?

Mostly this was intended to allow emulating cythonize given the .c files.

But as I said, I really like it for debugging too. Especially with big projects like SageMath, it's useful to easily see which libraries a given extension links against for example.

I don't see a non-hacky way to extract the module_metadata from the extension itself.

What's wrong with just looking at the attributes of the Extension object? Like ext.libraries for example? That looks pretty non-hacky to me.
If you want, you could even take the whole ext.__dict__ (maybe removing the empty values) and put that as JSON metadata.

There may be attributes in ext.dict that are not suitable for passing
to the constructor, and what was passed to the constructor is the right
level of abstraction here. (What the constructor did to what it was given
is an internal implementation detail and poking at this would break
encapsulation.)
More generally, I see the Cython sources purely as inputs to distutils, and
it's cleaner if the flow of information is user -> cython -> distuitls -> c
compiler rather than having Cython inspect the results of creating the
extension class then modifying the sources accordingly (introducing a bit
of a cycle in this graph).
A big, complicated project like Sage could easily log this, and other,
information elsewhere... (In fact, logging what was added/mutated after the
fact vs. derived from the sources, rather than having only the final
result, seems like it'd be preferable in debugging.)
On Fri, Apr 15, 2016 at 1:59 AM, jdemeyer<EMAIL_ADDRESS>wrote:

I don't see a non-hacky way to extract the module_metadata from the
extension itself.
What's wrong with just looking at the attributes of the Extension object?
Like ext.libraries for example? That looks pretty non-hacky to me.
If you want, you could even take the whole ext.dict (maybe removing
the empty values) and put that as JSON metadata.
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/cython/cython/pull/466#issuecomment-210370525

There may be attributes in ext.dict that are not suitable for passing to the constructor, and what was passed to the constructor is the right level of abstraction here.

Then why not accept my original patch, which changes what is passed to the constructor?

ping

Do you see any solution to my problem (changing distutils kwds when creating the Extension objects but also putting the correct metadata in the .c files) which might be acceptable to Cython?

As I noted here and here (with apologies for the distributed commenting as I catch up on this issue), I agree with @jdemeyer that listing the Extension instances for hundreds of modules in a single file is not scalable.  But I also think that relying on #distutils:  comments in a large number of inter-dependent Cython sources is not scalable either, considering that it has implicit results that are hard to predict for a large number of dependencies.
Explicit is better than implicit here, and there are other options than the two discussed here.  For example, it's perfectly possible to have per-sub-package Python modules providing the build details for modules in that sub-package.  This is what other large projects like Numpy, Scipy, Astropy, and others do.  Think if it sort of like having recursive Makefiles--nobody would blink at that for a large project.

Think if it sort of like having recursive Makefiles--nobody would blink at that for a large project.

Autotools projects usually compile everything with the same flags. The Cython analogy would be to compile every Extension with the same libraries. If you think that makes sense, that would also solve the problem.

it's perfectly possible to have per-sub-package Python modules providing the build details for modules in that sub-package.

I don't see how it saves the scalability problem. You still need to keep track of the same number of extensions and the same number of libraries. Or am I missing something?

So, to summarize, the only reason to have a hook rather than subclassing Extension is to also influence what gets produced in the metadata section of the .c file, right?

So, to summarize, the only reason to have a hook rather than subclassing Extension is to also influence what gets produced in the metadata section of the .c file, right?

Yes.

I don't see how it solves the scalability problem. You still need to keep track of the same number of extensions and the same number of libraries. Or am I missing something?

I think maybe we're talking about two different "scalability" problems.
One is just the problem of having to list all Extensions in one big file.  That's mostly what I'm talking about.
The other, which I think you're more concerned about I guess, is collating all the compiler and link flags needed to compile a given module depending on what imports/includes it uses.  And we're expecting Cython to intelligently collate that from the static metadata placed at the top of Cython modules.  I think that's still better resolved by explicitly creating Extension objects, and listing what the dependencies are of those extensions.  By doing it programmatically we can be much more intelligent.  Just look at the examples I posted started here: https://trac.sagemath.org/ticket/17635#comment:239  Some of those compiler flags are just a mess, including flags that are repeated 3, sometimes 4 or even 5 times.  It's impossible to make sense out of.

And we're expecting Cython to intelligently collate that from the static metadata placed at the top of Cython modules.

That approach actually mostly works. It might need some fixing and fine-tuning, but I think the basic idea is sane.

By doing it programmatically we can be much more intelligent.

Isn't that exactly what the Cython # distutils thing does? It's an intelligent way to find out which Cython module depends on which library.

I think that's still better resolved by explicitly creating Extension objects, and listing what the dependencies are of those extensions.

This is exactly the part which is absolutely not scalable. There is no way you are going to keep this information up-to-date with so many extensions and so many libraries in Sage. It is precisely the reason why I started using the # distutils declarations in the first place.

Some of those compiler flags are just a mess, including flags that are repeated 3, sometimes 4 or even 5 times. It's impossible to make sense out of.

That's not so dramatic and can easily be fixed by post-processing the flags that Cython finds. Which is exactly what this Cython PR is about.

This is exactly the part which is absolutely not scalable. There is no way you are going to keep this information up-to-date with so many extensions and so many libraries in Sage. It is precisely the reason why I started using the # distutils declarations in the first place.

Why not?  I think that's a failure of documentation on Sage's part.  If Sage actually had some comprehensive documentation on what its dependencies are, and what their dependencies are, this wouldn't be so hard.

If Sage actually had some comprehensive documentation on what its dependencies are, and what their dependencies are, this wouldn't be so hard.

It's not about dependencies of "Sage" as a whole, it's about dependencies of every individual Cython module inside Sage (unless I am misunderstanding you and you want to use the same libraries for every Cython module).

@robertwb: what exactly is the problem with my original approach (a hook to change the distutils keywords)?
Let me add one further use case: you may want to add a flag depending on the language. For example, we want to add the flag -std=c99 but only for C files, not C++. This PR could be used to handle something like that.

ping? the only important test failure is in Python 3.2 with C++. Should be fixable. The fact that this feature is not available makes things like porting Sage to clang very difficult.

OK, I'm willing to entertain this given the state of distutils + Cython. Two remaining questions:

Is there any reason this couldn't be done by simply iterating over the module list after they are created, massaging the Extensions?
Could we instead consider having a create_extension(ext_class, kwds) parameter, that defaults to ext_class(**kwds) but could serve the same purpose as distutils_kwds_hook (or but could also customize the type)?

Is there any reason this couldn't be done by simply iterating over the module list after they are created, massaging the Extensions?
Could we instead consider having a create_extension(ext_class, kwds) parameter, that defaults to ext_class(**kwds) but could serve the same purpose as distutils_kwds_hook (or but could also customize the type)?

An important point of this PR is to have the correct JSON metadata at the top of the C files, which I find very useful for debugging. With the first suggestion above, that wouldn't be possible. With the second suggestion, it would be possible if create_extension(ext_class, kwds) would return both the extension and the metadata (say, as a 2-tuple). If you're happy with that, I can easily implement it.

Actually, now that we are generalizing anyway, I would rather use template as first parameter instead of exn_type. Then the create_extension() might use more attributes from the template in case that a custom Extension class is used.
So I propose a function create_extension(template, kwds) returning a pair (module, metadata).

Good point about metadata. The pair-returning create_extension(template, kwds) proposal sounds good.

I decided to move the resolving of depends into create_extension() since dependency resolution might be customized too. It's also useful in case some package wants to adjust kwds but then use the default_create_extension() function (which is what Sage will probably do).

Some of those compiler flags are just a mess, including flags that are repeated 3, sometimes 4 or even 5 times.

Fix at https://trac.sagemath.org/ticket/22554 using this PR.

Another important role of metadata is to be able to reconstruct the full Extension object from the .c file without needing to have Cython installed.

Is there an actual implementation somewhere doing that? Or is this just a hypothetical "we could do this".

Ping. Tests pass except for one that fails on master as well.

Sorry, I thought I had answered @jdemeyer 's questions. See https://gist.github.com/robertwb/25ab9838cc2b9b21eed646834cf4a108 for an actual implementation (which was actually the original intent of injecting metadata in the first place).
Thanks for your patience. I'm going to merge this.

I'm having second thoughts about storing the mangled metadata in the C file. See https://github.com/cython/cython/pull/1641


Positioning incorrect when popper inside relatively or absolutely positioned parent

CodePen demo
http://codepen.io/anon/pen/gmRRwz
Steps to reproduce the problem

Instantiate a new popper, with default settings, inside of a relatively or absolutely positioned  parent.
Scroll or resize the page so that popper hits the bottom of the viewport, thus causing it to flip to the other side.

What is the expected behavior?
Initial placement should be correct.

The popper should flip to the opposite side of the target.

What went wrong?
The initial placement is incorrect.

The popper flips, but the placement is incorrect.

Any other comments?
Not at this time.

This is caused by the default padding applied by Popper.js.
https://codepen.io/FezVrasta/pen/LWLzRP

In your latter codepen above, when the padding is removed and the flip activated, the popper is still placed over top of the reference element.

Surely not every container can be expected to have sufficient padding to allow a popper enough space to flip correctly.
FWIW, all of this flipping behavior/placement works as expected when preventOverflow: { boundariesElement: 'viewport' } is used, however I simply don't want the popper to stay in view when scrolled out of bounds.
I am unclear on what your suggestion is to work around this issue.  Can you perhaps provide a little more direction?

So, if you add a padding/margin to the body, things get messy because Popper takes the body as container of everything and it tries to avoid to make any popper overflow from it.
Actually I thought this issue was fixed with v1 but, hey, here it is 😅
I'm going to create a new issue to track it. Or feel free to create one if you prefer, I'm a bit busy atm.

by the way, this behavior is the correct and expected one:

https://github.com/FezVrasta/popper.js/issues/189

Your comment above about the correct and expected behavior may be true when there is no more room at the top of the page/viewport, but it should not be the expected behavior when in the middle of a page and there is plenty of room above the target for the popper.  In that case, the popper should render entirely above the target.
See the following codepen and toggle the 2 different modifier configurations.
https://codepen.io/anon/pen/dvRmRz

Sorry I didn't noticed this problem.
By default preventOverflow should use as container its scrollParent, I fear it's taking the offsetParent instead for some reason?
https://github.com/FezVrasta/popper.js/blob/master/src/popper/modifiers/index.js#L53

So, I investigated a bit thanks to the test you added, looks like the problem is that preventOverflow is using the boundaries offset, that are relative to the document, together with the popper offsets, that are relative to its offset parent.
This situation should be normalized, making the boundaries relative to the popper's offsetParent, or making the popper offsets relative to the document.
I'm throwing here these info in case you (or someone else) want to prepare a PR to fix this behavior. I don't know when I will have some free time to dedicate to this bug unfortunately, since I'll be in the bay area for a week in a week and I've other priorities scheduled for this week.

@FezVrasta, I run into what seems the same issue. I am trying to implement Popper into Vuikit with UIkit 3, basically using it styles with popper js. As you can see in this pen the position right doesn't get placed on the right if the parent is relative. While the UIkit js does place it correctly.
You can edit the .parent style to check how it gets positioned as expected when is set as static.

@miljan-aleksic I don't think I'll have time to work on this in the near future, if you or anyone else want to adopt this issue please feel free and ask me anything you need to fix the bug.

So, I'm sharing here the work I'm doing to fix #188 and #171.
We need a way to find the common offset parent between popper and reference nodes, and this function I written seems to find it in a pretty elegant way:
function isOffsetContainer(element) {
  return element.firstElementChild.offsetParent === element
}

function findCommonOffsetParent(element1, element2) {
  const range = document.createRange();
  if (element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING) {
    range.setStart(element1, 0);
    range.setEnd(element2, 0);
  } else {
    range.setStart(element2, 0);
    range.setEnd(element1, 0);
  }

  const { commonAncestorContainer } = range;

  if (isOffsetContainer(commonAncestorContainer)) {
    return commonAncestorContainer;
  }

  return commonAncestorContainer.offsetParent;
}

Now I'm trying to rewrite the core of Popper to use this stuff...

Nice work!  I can confirm that popper.js@next fixes the issue in my aforementioned codepens.

Fixes my problems also, thanks for all your hard work 🥇

@FezVrasta
I read the code of popper.js recently. I found you change the algorithm of getting the reference position after the 1.0.8 version.  I  think the original algorithm still works in this case.  when the boundariesNode of popper  is  body. You didn't calculate the offset that from boundariesNode to the offsetParent of popper is the cause of the problem.
You could change the code in the  getBoundaries function to fix this bug. when the boundariesElement is not 'viewport',  always run this line of code:
 boundaries = getOffsetRectRelativeToCustomParent(boundariesNode, offsetParent, isFixed(popper));

@ChrisGao2016 please may you send a PR adding a failing test case for this issue? I thought it was fixed

@FezVrasta The new algorithm is nice. so the PR of old version has little meaning.  Thanks for your wonderful code of popper.js.


About Event ID 4625 Description

[Enter feedback here]
I couldn't be sure that if 4625 Event ID Actually means "This event generates if an account logon attempt failed when the account was already locked out. It also generates for a logon attempt after which the account was locked out." in this blog post's description.
Because it seems that Event ID 4625 means by informations gathered from blogs listed below,  "It documents each and every failed attempt to logon to the local computer regardless of logon type, location of the user or type of account.". But I already know that only Sub Status Code 0xC0000234 means that "the account was already locked out".
https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4625
https://www.manageengine.com/products/active-directory-audit/kb/windows-security-log-event-id-4625.html
There are two different knowledge about this Event ID and I'm just wondering which one is correct? Could you please check and inform me and who reads this blog?

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

ID: 80307c25-b809-e9b8-bab2-d37d3de7e920
Version Independent ID: 24c32be1-2fc3-f22f-7e6c-da4049bf8458
Content: 4625(F) An account failed to log on. (Windows 10) - Windows security
Content Source: windows/security/threat-protection/auditing/event-4625.md
Product: m365-security
Technology: windows-sec
GitHub Login: @Dansimp
Microsoft Alias: dansimp

@erdemguricin The article has been updated to state that "This event is logged for any logon failure."
For more details you will check the Status and Sub Status of the event, as you already pointed out.

I think that per @VLG17 this issue is fixed, so I'm closing it.

Thank your
+959755986680
On Tue, 26 Jul 2022, 02:16 Aaron Czechowski, @.***>
wrote:

I think that per @VLG17 https://github.com/VLG17 this issue is fixed,
so I'm closing it.
—
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/windows-itpro-docs/issues/10242#issuecomment-1194543564,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVH2N5DR7HKLWA37DIT6WPLVV3VK7ANCNFSM5K5VNEKQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Support for TV Show - characterart

What TMM version are you using?
Version: 3.0-SNAPSHOT
Build: 2018-06-23 00:22
OS: Windows 10 10.0
JDK: 10.0.1 amd64 Oracle Corporation
release, pre-release, nightly, or directly from GitHub/branch?
pre-release snapshots
What is the actual behaviour?
characterart is recognized:

but you can't change / add or see the URL referenced for that artwork:

What is the expected behaviour?
would be nice if characterart was fully supported for tv shows
Steps to reproduce:

first
second
...

Additional
Have you attached the Logfile from the day it happened?
Your Operating system? (win/mac/linux? version?)
Windows 10 x64bit
Thanks for the consideration

we've migrated v3 to GitLab (https://gitlab.com/tinyMediaManager/tinyMediaManager) along with all issues. The issues for v2 at GitHub will be closed - we will respond to the corresponding issue in GitLab in the future
br
Manuel


Update 'Videos' Explore Card URL

Background:
On our /docs page, there's an explore card which currently points to Vimeo. For better content alignment we want it to direct users to our YouTube channel instead.
Task Details:

Locate the 'Videos' explore card on the /docs page.
Update the current Vimeo URL with our YouTube channel link: https://www.youtube.com/@TBD54566975.
Ensure the link is functional and correctly redirects to our YouTube channel.

Picking Up This Issue:

If you'd like to work on this, please comment "picking this up" below, and I'll assign the issue to you.

Questions:

If you need assistance or clarification, feel free to comment below.
Feeling overwhelmed? Join our #hack-together channel and collaborate with a buddy.
New to open-source? Check out our Hacktober #getting-started channel.
Leaderboard: Check your ranking after finishing this task.

Resources:

Creating a Pull Request: If you're new to GitHub and unsure how to create a pull request, follow this step-by-step guide.

Remember, communication is key! If you have any questions or face any challenges, we're here to help so please don't hesitate to reach out.
Good Luck! 🍁

i can help can you assign it to me

Picking this up

picking this up

picking this up

Hey I tried to solve the issue and created a pull request, please assign it to me and check it.


[lit-next] Unify the both check-version-tracker scripts

Now with modules as requested here: https://github.com/Polymer/lit-html/pull/1298#discussion_r493071519

Thanks!


DragonFly's devname_r takes a size_t len parameter

#2435 introduced this function on DragonFly BSD with FreeBSD's signature, which is incorrect. Deprecate it, to be fixed in a subsequent release.
https://github.com/DragonFlyBSD/DragonFlyBSD/blob/c163a4d7ee9c6857ee4e04a3a2cbb50c3de29da1/include/stdlib.h#L285

r? @JohnTitor
(rust-highfive has picked a reviewer for you, use r? to override)

@bors r+

:pushpin: Commit 9e473b961613ae3d395d613c59b7107ee6dfac76 has been approved by JohnTitor

:hourglass: Testing commit 9e473b961613ae3d395d613c59b7107ee6dfac76 with merge 7590366dad8fedde37b203e89af72f8c90bdf51a...

:broken_heart: Test failed - checks-actions

Build failures look unrelated.

@bors retry

:hourglass: Testing commit 9e473b961613ae3d395d613c59b7107ee6dfac76 with merge acde723303747b702f74a38da46e08925190c6c2...

Ah, wait, forgot that the version was updated, @bors r- retry

@JohnTitor I've updated the version! Thanks for catching that.

@bors r+

:pushpin: Commit 1501cadb15b4f8014cdeff8cdedf3220eea2923a has been approved by JohnTitor

:hourglass: Testing commit 1501cadb15b4f8014cdeff8cdedf3220eea2923a with merge 1d35a9b82984ae05db4d6d8896e91b8b77721188...

@bors retry

:hourglass: Testing commit 1501cadb15b4f8014cdeff8cdedf3220eea2923a with merge 5e7cda08b8b73f3eb8b344eecbe95fa117223a70...

:sunny: Test successful - checks-actions, checks-cirrus-freebsd-11, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13
Approved by: JohnTitor
Pushing 5e7cda08b8b73f3eb8b344eecbe95fa117223a70 to master...


[Bug]: Inline JS function misbehaves when query is ran and data is stored in appsmith store

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When we use appsmith store to bind the data object to different widgets then some widgets do not show the updated value s when the data stored in the appsmith store is updated after running the update call to the datasource and fetching the value again.
Here's a link to the app which shows the behaviour described above.
Store Issue Application
Adding in the image to describe the proper functionality of the application and the bug

There are 3 buttons:

Button 1 : Submit using JS function -> Which uses JS function and the functionality works fine
Button 2 : Submit using inline JS -> Which uses inline JS and the functionality works fine as the inline JS has async await
Button 3 : Submit using inline JS (doesn't work) -> Which uses inline JS but the functionality breaks as the inline JS uses callback method which eventually calls an async method (JSFunction.fetchValue) but if the last function (JSFunction.fetchValue) is called using callbacks it works fine

The functionality :

As and when the store is updated the widgets should reflect the same but which doesn't happen in case of button 3.

Steps To Reproduce
Above mentioned description has the Application link which describes reproduction of the issue.
Here's an Application link : Store Issue Application
Public Sample App
https://app.appsmith.com/app/store-issue/page1-625db1de0d3d384069c221c8
Version
Both

@AmanAgarwal041 would you please invite me to this app so I can see it in edit more?

@rohan-arthur you can now fork the app

@bharath31 check this out

@AmanAgarwal041 this seems to work now. could you check if you're still facing this issue?


Any way for the update, and delete actions to change the items values in state?

I've noticed that any change to the value of the items on the timeline or even deletion of the items don't actually effect the state. Deleted items are still present in the "items" array within the state and remain unchanged if they were changed in the timeline. I was wondering if this would be supported later, or if anyone has a solution.
"react-visjs-timeline": "^1.4.0",
"react": "^16.2.0",

My problem right now is that the two "onUpdate" and "onRemove" methods in options aren't in the same scope to call "this" for the component as "this.state" returns null. Otherwise, this.setState could be used.
This is my state so far, does
this.state = {
			options: {
				onUpdate: function (item, callback) {
					console.log("update", item);
					item.content = prompt('Edit items text:', item.content);
					if (item.content != null) {
						callback(item); // send back adjusted item
					}
					else {
						callback(null); // cancel updating the item
					}
				},
				onRemove: function (item, callback) {
					console.log(item, 'remove');
					callback(item); // send back adjusted item

				},
				start: '2018-01-1',
				end: '2032-12-31',
				max: moment('2036-12-31'),
				min: moment('2013-01-01'),
				groupOrder: 'content',
				height: '800px',
				maxMinorChars: 5,
				editable: true
			},
			groups: [],
			selectedIds: [],
			items: [],
		}

My solution was to put the data in firebase and pipe the data down to the component. I included firebase data identification strings in the id of the items so the onClick returns the necessary information to know where the item is in firebase, if I want to delete it or not.

any update on this? Are the updated items in timeline can update state object or access it?


Enable Batch Job Submission for Qiskit

Translates the qiskit job input to the microsoft.quantum-results.v2 format before submission.
Translates the qiskit job output to the format expected by qiskit after job is processed by target.

/azp where

Replace by #420