Dear Fragtality The Feinx v<IP_ADDRESS> v-speed Lvar unable to access data

Dear Fragtality The Feinx v<IP_ADDRESS> v-speed Lvar unable to access data,  could you help me to verify that? Thank you.
Best regards.
Zeng

Sorry, I didn't describe it well.
V-speed Lvar loses data (cannot be synchronised) when changes are made to the S_FCU_VERTICAL_SPEED variable. In the FenixQuartz UI you can see normal data, but the Lvar does not change and stays at 0.

V-Speeds are V-Speeds (V1, VR, V2). Vertical-Speed is Vertical-Speed.
There are no Reports about Vertical-Speed not working in any Output Variant, so very likely you're doing something wrong.
Have you actually try flying the Fenix? Vertical-Speed does not work on all Situations when on Ground.

Yes, I test flew the Fenix and after using the S_FCU_VERTICAL_SPEED variable (Vs Pull Push), the vertical speed is out of sync with FNX2PLD_fcuVs. Profile settings are the same as v<IP_ADDRESS>.
Viewing in the FenixQuartz UI there is Vertical-Speed data, but FNX2PLD_fcuVs is always 0. I'm not sure where the problem is.

And you use that Switch the correct Way?
Increase by 1 for Pull, Decrease by 1 for Push?

Yes, that's right.

Made a Quick-Test, saw no Issue with the L-Var.
You are aware that it Zero when the Display is Dashed, right?

Yes, I know it's zero when it shows the dashed line.
It's when I pushed and pulled the Vs when it showed Dashed that the FNX2PLD_fcuVs stopped syncing the data. I trigger this bug every time I do this.
Is there a clean version of the memory read data project I can refer to? Yours is too complicated I don't know c# and have a rather average level of programming. It would be nice if there was a module written in c++ or just for reading data from memory, this would be very helpful for me. Thank you very much.

You can't read C# but want a Module in C++?! A C++ Module/Version will never come.
The Data is as clean as it can be. It is converted to FPA if needed and is written to the L-Var. Well it is also selected from which Memory-Location to read - which is something internal and it is not planned to change anything about that (because no one but you would want that).
Since your monitoring the Debug-UI - what is "isAltVsMode" reporting? It should be true when VS is active (that is in the FMA).

Don't know, just works. Even when I push the VS Knob.
Maybe share the Logs. If that should be really something with FenixQuartz, it may give a Hint.

I flew it a few more times on test flights and now it looks like the data in the air is normal.
On the ground as you said it can't adapt to all situations, he is not able to synchronise with its Vertical-Speed, can this be solved please? If it can be solved that would be great.

Are you kidding me ?!?
To summarize:

It is like it is, I had to make a Decision - and that was to make it accurate in the Air because .... one does not need VERTICAL Speed when being on the GROUND. Because you're neither climbing nor descending on the Ground.
So you tested something I specifically warned about in the Readme. You ignored that and reported it as a Bug.
Even then, when specifically pointed to not test that on the Ground, you continued to ignore that.
Demanding such Simulation-Accuracy while running with full "Xbox/Game UI" is a Joke in itself.


Disclaimer email draft

Draft a disclosure/disclaimer email on behalf of CNCF landscape project for potential and future interviewees regarding their anonymity when interviews are conducted.
@andreuxxxx

@andreuxxxx and @nate-double-u
Please find a notion file attached with an email draft for user interviews.
https://www.notion.so/Email-disclaimer-2ca8b13ca96b439ba4f6df1a04182b5c?pvs=4
Feel free to provide any feedback for this. Thanks.

Hi Avantika
The link is not accessible

Here is the updated link:
https://rust-flavor-4ed.notion.site/Email-disclaimer-2ca8b13ca96b439ba4f6df1a04182b5c?pvs=25

Thanks @avantikajain289!
We've just migrated the CNCF landscape to v2, so I'll close this one for now.
Please feel free to reopen if needed 🙂


Non-food items in food slots of Dig Site

Mod source
Factorio Mod Portal
Which mod are you having an issue with?

[X] pyalienlife
[ ] pyalternativeenergy
[ ] pycoalprocessing
[ ] pyfusionenergy
[ ] pyhightech
[ ] pyindustry
[ ] pypetroleumhandling
[ ] pypostprocessing
[ ] pyrawores

Operating system

=Windows 10

What kind of issue is this?

[ ] Compatibility
[ ] Locale (names, descriptions, unknown keys)
[ ] Graphical
[ ] Crash
[ ] Progression
[ ] Balance
[ ] Pypostprocessing failure
[X] Other

What is the problem?
A non-food item can be placed by inserter into food slot of Dig Site:

Steps to reproduce

Place Dig Site
Place inserter and chest
Put non-food item into chest

Additional context

Log file
No response

Thought this was already fixed. What version of pyAL are you using?

I believe that the newest one (no updated available via Factorio Mod portal...)

Hmm. Just checked again can confirm your issue, But it seems to be an API limitation. Using the API I can set a filter, but I cannot make a filter for multiple types of food. Not going to fix this. For now, make sure not to use non-food items on the digosaurs food belt.


[Bugfix] fix casing for parameter "DateTimeProperties" => "dateTimeProperties"

parameters should always start with a lowercase letter then camel case to match existing code
and expectations for .NET libraries.

Want to clean up this interface before we publicly ship and are locked into this. I think this was based on a copy-paste error I missed.

Want to clean up this interface before we publicly ship and are locked into this. I think this was based on a copy-paste error I missed.
Forgot that this isn't actually a breaking change to fix since the compiler only cares about method signature types. Still best to fix.


LC0015 False positives on temporary tables

LC0015 warns on tables with TableType = Temporary.
A user does not need permissions to write or read data in temporary tables, so I believe that LC0015 should skip the warning if there are no PermissionSet with TableData for that table.
The PTE0004 rule works in that way already.

When #127 is implemented, this behavior will be correct, as table permissions are also needed for code on temp tables

This now have the expected behavior, thanks to #127


IGNITE-9025 "PDS 1" TC configuration could hang because of SegmentedR…

…ingByteBufferTest
Signed-off-by: EdShangGG<EMAIL_ADDRESS>

The ticket is resolved, closing PR.
Please close PRs for your resolved tickets and other non-needed PRs.
Alternatively, ask a committer

to use GitHub UI (committer  can associate accounts here: https://gitbox.apache.org/setup/ )
or /scripts/apply_pull_request.sh from Apache Ignite source.
or mention in commit message 'Fixes #(a number of PR)'.

These methods will automatically close PR.
Feel free to reopen this PR if it is actual.


Force a simple reproducible build mechanism

In 25a17f0346ab05b3212bb280e4a8b622bcf99bce, poky sets
reproducible_build by defaults. However, it is quite complex as it tries
to compute a plausible timestamp from source files, in a reproducible
ways.
Setting the timestamps to 0, just like ostree, is probably safer in our
case, so let's switch to our old behavior.
Tagging @agners who originally proposed this enhancement.

Took a really long time to run CI for this, which I think is expected. What's a good way to test this? Run a second pipeline on the branch and check if the caching works?

@patrickvacek yes, I've just restarted the qemu build and oe-selftest.

Ok, it seems that everything works fine.


Rustfmt Unconditionally Indents Code Each Time It's Run

This is an odd bug I found while running rustfmt on Criterion.rs.
Steps to reproduce:

cargo init rustfmt-test
Create a benches directory (this doesn't happen if the code is in src)
Create a file named test.rs in the benches directory with the following code:

macro_rules! bench {
    ($ty:ident) => {
        criterion_group!(
            name = benches;
            config = ::common_bench::reduced_samples();
            targets = call, map;
        );
    };
}

Run cargo +nightly fmt. Code now looks like this:

macro_rules! bench {
    ($ty:ident) => {
        criterion_group!(
                    name = benches;
                    config = ::common_bench::reduced_samples();
                    targets = call, map;
                );
    };
}

Run cargo +nightly fmt again. Code now looks like this:

macro_rules! bench {
    ($ty:ident) => {
        criterion_group!(
                            name = benches;
                            config = ::common_bench::reduced_samples();
                            targets = call, map;
                        );
    };
}

It always adds another 8 spaces before those four lines. I haven't been able to find a workaround for this (though if you find one, please let me know so I can re-enable my rustfmt Travis-CI build).

Great, thanks! That works just fine as a workaround.

Possible duplicate of #2588?


Assign the documented keys of the require object

This PR makes Jest working with libs using the enumerable keys of the require function/object.
It fixes https://github.com/jhnns/rewire/issues/45
I started with a Object.keys(require).forEach but I noted a significant overhead of execution time. So I ended up by assigning manually the 2 properties documented here
FYT ?

awesome, thanks ncuillery!

Can you explain how this is used in some modules that you are trying to test? I don't think forwarding require.extensions and require.cache is what you wanna do here. jest uses its own require system and I don't want the parent one to leak into test contexts. I think the right solution here would be to add stubs, like require.cache = Object.create(null); and require.extensions = Object.create(null);.

The main file of rewire does a delete module.cache[<something>] which causes an Uncaught TypeError "Cannot convert undefined or null to object".
Rewire is a testing lib, using it with Jest makes sense, but I suppose there are other similar issues with any module using require.cache or require.extensions :
https://github.com/search?utf8=✓&q="delete+require.cache"+language%3Ajs&type=Code&ref=searchresults
https://github.com/search?utf8=✓&q="require.extensions+js"+language%3Ajs&type=Code&ref=searchresults
I understand your point about isolation. Object.create(null); does the trick too !

Thank you!

@facebook-github-bot shipit

Does the GitHub bot take weekends off? cc @vjeux

It doesn't... Check your cron for errors maybe?

it's all green :(

Maybe @mkonicek knows what's up

@facebook-github-bot shipit

@facebook-github-bot shipit

Come on bot, wake up!

it is creating the internal diff but not stamping/shipping :(

@facebook-github-bot shipit

Something here is going awfully wrong with our GitHub bot. I'll pull this in manually.


Fix/update es6 rest parameter challenge descriptions

Checklist:

[ x ] I have read freeCodeCamp's contribution guidelines.
[ x ] My pull request has a descriptive title (not a vague title like Update index.md)
[ x ] My pull request targets the master branch of freeCodeCamp.
[ x ] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #40707

Fixed the description and name of ES6 challenge: "Use the Rest Parameter with Function Parameters" to "Use the Rest Parameter Syntax with Function Parameters". This clears up the ambiguity in the title and clarifies that the rest parameter is a function parameter with a (...) prefix.
Changed certain instances of the use of "rest parameter" to use "rest parameter syntax" to align with how it is used on the MDN docs.

This PR contains duplicate changes as an earlier PR #40725 as well as other changes (like changing the challenge name) that we would not want to do at this time.  We are closing this PR at this time, but do welcome future PRs from you in the future.  If you have further recommendations for this challenge, feel free to discuss them on the original issue.
Thank you.

This PR contains duplicate changes as an earlier PR #40725 as well as other changes (like changing the challenge name) that we would not want to do at this time.  We are closing this PR at this time, but do welcome future PRs from you in the future.  If you have further recommendations for this challenge, feel free to discuss them on the original issue.
Thank you.


Static files like tabler.min.css are not rendered in HTML as HTTPS links

I use FastAPI with docker file, deploy on AKS with Application Gateway.
Here is my docker file
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.10

ENV MODULE_NAME="app.api.v2.main"
ENV TIMEOUT=1800
ENV GUNICORN_CMD_ARGS="--proxy-protocol --proxy-allow-from '*'"

# Install dependencies
RUN apt-get update && apt-get install -y curl gnupg2
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql18 mssql-tools unixodbc-dev
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
RUN bash -c 'source ~/.bashrc'

# Install Poetry
RUN curl -sSL https://install.python-poetry.org | POETRY_HOME=/opt/poetry python3 - && \
    cd /usr/local/bin && \
    ln -s /opt/poetry/bin/poetry && \
    poetry config virtualenvs.create false

COPY pyproject.toml poetry.lock* /app/
RUN poetry install --no-root --only main
COPY py /app

This is my ingress
kind: Ingress
metadata:
  name: prod-gw-api-ingress
  namespace: production
  uid: c9c4c455-64d9-4720-9a72-87459857bcad
  resourceVersion: '75858985'
  generation: 16
  creationTimestamp: '2023-04-18T06:54:49Z'
  labels:
    k8slens-edit-resource-version: v1
  annotations:
    appgw.ingress.kubernetes.io/health-probe-path: /health
    appgw.ingress.kubernetes.io/ssl-redirect: 'true'
    cert-manager.io/acme-challenge-type: http01
    cert-manager.io/cluster-issuer: letsencrypt-prod
    kubectl.kubernetes.io/last-applied-configuration: >
      {"apiVersion":"networking.k8s.io/v1","kind":"Ingress","metadata":{"annotations":{"appgw.ingress.kubernetes.io/health-probe-path":"/health","cert-manager.io/acme-challenge-type":"http01","cert-manager.io/cluster-issuer":"letsencrypt-prod","kubernetes.io/ingress.class":"azure/application-gateway"},"name":"prod-gw-api-ingress","namespace":"production"},"spec":{"rules":[{"host":"modecbing.southeastasia.cloudapp.azure.com","http":{"paths":[{"backend":{"service":{"name":"prod-api-service","port":{"number":80}}},"path":"/","pathType":"Prefix"}]}}],"tls":[{"hosts":["modecbing.southeastasia.cloudapp.azure.com"],"secretName":"prod-backend-tls"}]}}
    kubernetes.io/ingress.class: azure/application-gateway
  managedFields:
    - manager: appgw-ingress
      operation: Update
      apiVersion: networking.k8s.io/v1
      time: '2023-04-18T06:54:49Z'
      fieldsType: FieldsV1
      fieldsV1:
        f:status:
          f:loadBalancer:
            f:ingress: {}
      subresource: status
    - manager: kubectl-client-side-apply
      operation: Update
      apiVersion: networking.k8s.io/v1
      time: '2023-04-18T06:54:49Z'
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            .: {}
            f:appgw.ingress.kubernetes.io/health-probe-path: {}
            f:cert-manager.io/acme-challenge-type: {}
            f:cert-manager.io/cluster-issuer: {}
            f:kubectl.kubernetes.io/last-applied-configuration: {}
            f:kubernetes.io/ingress.class: {}
        f:spec:
          f:tls: {}
    - manager: kubectl-edit
      operation: Update
      apiVersion: networking.k8s.io/v1
      time: '2023-04-28T02:55:56Z'
      fieldsType: FieldsV1
      fieldsV1:
        f:spec:
          f:rules: {}
    - manager: node-fetch
      operation: Update
      apiVersion: networking.k8s.io/v1
      time: '2023-08-31T04:10:42Z'
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:annotations:
            f:appgw.ingress.kubernetes.io/ssl-redirect: {}
          f:labels:
            .: {}
            f:k8slens-edit-resource-version: {}
  selfLink: >-
    /apis/networking.k8s.io/v1/namespaces/production/ingresses/prod-gw-api-ingress
status:
  loadBalancer:
    ingress:
      - ip: <IP_ADDRESS>
spec:
  tls:
    - hosts:
        - modecbing.southeastasia.cloudapp.azure.com
      secretName: prod-backend-tls
  rules:
    - host: modecbing.southeastasia.cloudapp.azure.com
      http:
        paths:
          - path: /production
            pathType: Prefix
            backend:
              service:
                name: prod-api-service
                port:
                  number: 80
          - path: /development
            pathType: Prefix
            backend:
              service:
                name: dev-api-service
                port:
                  number: 80

Error as picture below.
I run very good on my local. I dont know why even I already use: ENV GUNICORN_CMD_ARGS="--proxy-protocol --proxy-allow-from '*'" and appgw.ingress.kubernetes.io/ssl-redirect: 'true'

I'm not an AKS expert AKS, you should make sure that your proxy server is sending the necessary(X-Forwarded-For and X-Forwarded-Proto) headers to your starlette application -> https://www.uvicorn.org/deployment/#running-behind-nginx

I have this same problem if I deploy to fly.io , even if I use uvicorn and the tips in https://jowilf.github.io/starlette-admin/deployment/ . On the other hand, on Railway.app these tips do work.

I'm not an AKS expert, but you should make sure that your proxy server is sending the necessary(X-Forwarded-For and X-Forwarded-Proto) headers to your starlette application -> https://www.uvicorn.org/deployment/#running-behind-nginx

Thank you it works.
But I set for gunicorn not uvicorn and update Application Gateway on Azure Portal 👍

I have this same problem if I deploy to fly.io , even if I use uvicorn and the tips in https://jowilf.github.io/starlette-admin/deployment/ . On the other hand, on Railway.app these tips do work.

I fixed it. You can try my way.

I have this same problem if I deploy to fly.io , even if I use uvicorn and the tips in https://jowilf.github.io/starlette-admin/deployment/ . On the other hand, on Railway.app these tips do work.

I fixed it. You can try my way.

I am not sure I understand your fix. I am unable to make the starlet-admin work on fly.io. Are you Abel to deploy on fly.io and have the CSS etc work correctly?
My docker:
ENV GUNICORN_CMD_ARGS="-w 1 -k uvicorn.workers.UvicornWorker --bind=<IP_ADDRESS>:8888 --proxy-protocol --proxy-allow-from *"
CMD ["gunicorn", "app.main:app"]

My fly.toml:
app = "myapp"
primary_region = "gru"

[build]
  dockerfile = "Dockerfile"
  ignorefile = ".dockerignore"

[http_service]
  internal_port = 8888
  force_https = true
  auto_stop_machines = true
  auto_start_machines = true
  min_machines_running = 0
  max_machines_running = 1

I found the fix:
# The next line is a workaround for https://github.com/encode/uvicorn/issues/589
ENV FORWARDED_ALLOW_IPS="*"


Rename -enable-future-feature to -enable-upcoming-feature (#6084)

Align with the compiler flag. Fixes rdar://104718540

@swift-ci smoke test

C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swiftpm\Sources\PackageCollectionsSigning\Certificate\CertificatePolicy.swift:108:84: error: cannot find type 'X509_STORE_CTX' in scope

    typealias BoringSSLVerifyCallback = @convention(c) (CInt, UnsafeMutablePointer<X509_STORE_CTX>?) -> CInt

                                                                                ^~~~~~~~~~~~~~

Not related to this PR, but does this look familiar, @compnerd or @yim-lee?

@swift-ci smoke test windows

@neonichu that is a mismatch between swift-crypto and SPM.  Do you need to define -DSWIFT_CRYPTO_V2?

My guess is that this is fallout from #6078, I don't see any Windows builds on that one

Going to merge this, but we should sort this out separately, cc @compnerd

@neonichu that is not fallout from #6078, that is related to the version of swift-crypto that is being checked out.  We should fix that before merging this.

that is related to the version of swift-crypto that is being checked out

+1. But release/5.8 should be using swift-crypto v2 already: https://github.com/apple/swift-package-manager/pull/6029

@yim-lee do you have the associated change for apple/swift?  This is going to require an update to update-checkout-config.json.

@compnerd Yes: https://github.com/apple/swift/pull/62894

PackageCollectionsSigning wasn't building on Windows at all prior to #6078, right?

It checked out apple/swift-crypto@9cc89f0170308b813af05dadcd26f9a2dee47713 so that matches.
Looking at the build:
cmd.exe /C "cd . && T:\1\bin\swiftc.exe -output-file-map Sources\PackageCollectionsSigning\CMakeFiles\PackageCollectionsSigning.dir\Release\output-file-map.json -incremental -j 36 -emit-library -static -o lib\PackageCollectionsSigning.lib -module-name PackageCollectionsSigning -module-link-name PackageCollectionsSigning -emit-module -emit-module-path swift\PackageCollectionsSigning.swiftmodule -emit-dependencies  -O -swift-version 5 -libc MD -Xcc -FT:/4 -Xcc -D_CRT_SECURE_NO_WARNINGS -autolink-force-load -Xfrontend -validate-tbd-against-ir=none -I swift -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swiftpm\Sources\PackageCollectionsSigningLibc\include -I T:\3 -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-corelibs-libdispatch -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-corelibs-libdispatch\src -I T:\3\src -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-corelibs-libdispatch\src\BlocksRuntime -I T:\4\swift -I T:\3\src\swift\swift -I T:\13\swift -I T:\6\swift -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-system\Sources\CSystem\include -I T:\7\swift -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-crypto\Sources\CCryptoBoringSSL\include -I T:\12\swift @CMakeFiles\PackageCollectionsSigning.rsp   && cd ."

Seems that we are not passing in -DSWIFT_CRYPTO_V2.

There is logic in Package.swift to define CRYPTO_v2 based on env var SWIFTPM_USE_SWIFT_CRYPTO_V1. Do we need to do that manually for Windows build?

There is logic in Package.swift to define CRYPTO_v2 based on env var SWIFTPM_USE_SWIFT_CRYPTO_V1. Do we need to do that manually for Windows build?

Yep, since we're currently doing a plain CMake build there


Merge pre-release-0.3.0 into master

Changes:

Latest changes for publishing spark-cli, spark-market-sdk, and spark-registry-sdk to crates
Minor cargo.toml updates to use keywords & to link back to the github repository.

Will squash all these commits when merging.


cl21 cl22 - lost fix - Khronos Bug 15728 SPIR 1.2 tests fail when some cases are skipped

In cl20_trunk fix is present

All PRs merged, closing.


Added sensors to support Ring.com devices

Description:
This PR introduced support to Ring.com Ring.com devices.

HA forum: https://community.home-assistant.io/t/ring-doorbell/7943/110
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#2203
Example entry for configuration.yaml (if applicable):
sensor:
  - platform: ring
    username: USERNAME
    password: PASSWORD
    monitored_conditions:
      - battery
      - last_activity
      - volume

Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New dependencies have been added to the REQUIREMENTS variable ([example][ex-requir]).
[x] New dependencies are only imported inside functions that use them ([example][ex-import]).
[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

Nice! 🐬


Migrate Support template to new documentation portal

What changed, and why it matters
Previously, Support used the old Support template "Support Case and Incident Investigations" to provide customers with a generalised template in case further information needs to be shared.
This PR contains a one-to-one translation of the old article in order to include the template in the new documentation portal.
I moved it into platform/concepts as I felt it is likely the most appropriate place. If you feel like this should be changed, please feel free to move the page around.

@lornajane My apologies for the hold-up. Now that the holiday season is over, I have tackled the outstanding action points to finally get this deployed to our documentation.

@lornajane I think I should finally have corrected all outstanding errors. At least all checks passed both locally as well as in GitHub Actions now.

HI @pparmin, I think you just need to rebase this to main to fix the Cloudflare issues.


FortinetFortiOSDriver not working for me

Describe the bug
I cannot connect to a fortinet firewall using FortinetFortiOSDriver. I got error:
CRITICAL:scrapli.transport:operation timed out, closing connection_
To Reproduce
Authentication works ok, but it seems that the comms_prompt_pattern is not working, I've tried to modify it but without success.
Expected behavior
connection shoud work.
Stack Trace
Here you can find the scrapli debug log:
DEBUG:scrapli:Scrapli factory initialized
INFO:scrapli:Driver '<class 'scrapli_community.fortinet.fortios.sync_driver.FortinetFortiOSDriver'>' selected from scrapli community platforms, with the following platform arguments: '{'comms_prompt_pattern': '[\\w_-]+ (\\(\\w+\\) )?[$#]', 'on_open': <function default_sync_on_open at 0x7f623a267430>, 'on_close': <function default_sync_on_close at 0x7f623a267a60>}'
DEBUG:scrapli.driver:load core transport requested
DEBUG:scrapli.driver:core transport 'system' loaded successfully
INFO:scrapli.driver:opening connection to 'SATOFCN2' on port '22'
DEBUG:scrapli.transport:opening transport connection to 'SATOFCN2' on port '22'
DEBUG:scrapli.transport:created transport 'open_cmd': '['ssh', 'SATOFCN2', '-p', '22', '-o', 'ConnectTimeout=15', '-o', 'ServerAliveInterval=30', '-l', 'sys-ft-sa0001', '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-F', '/dev/null', '-o', 'PubkeyAuthentication=no']'
DEBUG:scrapli.transport:transport connection to 'SATOFCN2' on port '22' opened successfully
INFO:scrapli.channel:channel log enabled, logging channel output to '/home/spinyol/logs/nwcli/SATOFCN2-scrapli-2023-11-24:17.22.21.log'
DEBUG:scrapli.channel:attempting in channel ssh authentication
DEBUG:scrapli.channel:read: b"Warning: Permanently added 'satofcn2,<IP_ADDRESS>' (ED25519) to the list of known hosts.\n"
DEBUG:scrapli.channel:read: b"sys-ft-sa0001@satofcn2's password: "
DEBUG:scrapli.channel:write: REDACTED
DEBUG:scrapli.channel:write: '\n'
DEBUG:scrapli.channel:read: b'\n'
DEBUG:scrapli.channel:read: b'SATOFCN2 $ '
CRITICAL:scrapli.transport:operation timed out, closing connection
DEBUG:scrapli.transport:closing transport connection to 'SATOFCN2' on port '22'
DEBUG:scrapli.transport:transport connection to 'SATOFCN2' on port '22' closed successfully

Screenshots
N/A
OS (please complete the following information):

OS: redhat enterprise linux
scrapli version - 2023.7.30
scrapli_community version - 2023.7.30
version of any optional extras (paramiko|ssh2-python|textfsm, etc.)  - N/A

Additional context
FORTIOS versions tested: 6.4.14 and 7.2.5

Authentication works ok, but it seems that the comms_prompt_pattern is not working, I've tried to modify it but without success.

hmm, just looking quickly looks like SATOFCN2 $  would be matched. I don't have anything forti to investigate so you are probably mostly on your own. you may want to look in here to see if anything else in there is causing an issue and/or at least use that as a jumping off point to troubleshoot.

hi @carlmontanari .
Thanks a lot for your suggestion.
If I remove these lines from prepare_session() method:  here
        initial = self.channel.read()
        if "(Press 'a' to accept):" in str(initial):
            self.channel.write("a")**

it works fine for me. But doing this will broke another deployments where set post-login-banner enable is configured on the firewall.
Unfortunately, I don't know how to fix this to make it work for both cases. There is a way to check if there is something pending to read in the channel before doing the channel.read() ?

a way to check if there is something pending to read in the channel before doing the channel.read()

nope, that's part of the fun of ssh stuff 🤣 -- but you can probably have a open_session_buf var, read off the channel, if that stuff you removed is in the read output, then do whatever you need to do, and otherwise continue on but subsequent reads first read out of the open_session_buf. you can look at scrapli-netconf we do basically the same thing there.
like I said though you're going to be on your own for this since I don't have any forti stuff. moreover you're going to have to probably have some good tests in place for me to merge anything since ill have to have faith that you got it sorted out well 😁 !
alternatives could be: create a variant (not sure if that will be enough to handle it), create an entirely different platform, write a custom on_open that handles this in your own way (this is probably the most "right" way, and you can probably do what I described above w/ a temporary buf to put things you read off the channel until you figure out what you need to do to get fully established)

gunna close this for now. I still think the custom on open func is probably the "most right" way to sort this out -- hope that worked for whoever sees this :D


Unable to access the before-name of renamed files

Report
What did you do?
I'm trying to figure out how to fix a pipeline crashing bug in a Danger plugin we're using. It's the PHP Codesniffer plugin, and the bug is how the list of files to check is built in this particular line:
((git.modified_files - git.deleted_files) + git.added_files)

As git.modified_files contains the old filename of any renamed files and git.deleted_files does not include old filenames of renamed files, the plugin will later crash when your changes include renaming a file because the externally called phpcs command errors out when being called with a non-existing filename.
My first idea was to simply check if the current filename is an existing file inside the each loop over that file list, but the clean solution is obviously to build the correct file list in the first place. I was a bit confused because "get list of all new or modified (but still existing) files" seemed to be a very common use case, and as it turns out, e.g. GitLab themselves have built a solution for it:
      # Returns a list of all files that have been added, modified or renamed.
      # `git.modified_files` might contain paths that already have been renamed,
      # so we need to remove them from the list.
      #
      # Considering these changes:
      #
      # - A new_file.rb
      # - D deleted_file.rb
      # - M modified_file.rb
      # - R renamed_file_before.rb -> renamed_file_after.rb
      #
      # it will return
      # ```
      # [ 'new_file.rb', 'modified_file.rb', 'renamed_file_after.rb' ]
      # ```
      #
      # @return [Array<String>]
      def all_changed_files
        Set.new
          .merge(git.added_files.to_a)
          .merge(git.modified_files.to_a)
          .merge(git.renamed_files.map { |x| x[:after] })
          .subtract(git.renamed_files.map { |x| x[:before] })
          .to_a
          .sort
      end

So I figured I could just use that and decided to do some tests directly in my Dangerfile before preparing a PR to fix the plugin. And this is where things started to get really weird. The all_changed_files method that GitLab uses in their Dangerfiles always returned an empty list for me. So I started debugging the contents of git.added_files, git.modified_files and most importantly git.renamed_files.
In doing so, I've checked the implementation of how git.renamed_files is populated (unless I'm mistaken and it is not this code), as well as the PR about the problem. My suspicion was that maybe a different git version somewhere was giving different output and thus in our system the git.renamed_files structure was not correctly populated. However, that does not seem to be the case.
I'm not a ruby expert, so I'm afraid it might just be me being very stupid about something very simple, but I've spent hours debugging it, tweaking everything that I could think of, comparing it to other examples and code, and I can't make sense of what is going on.
What did you expect to happen?
I created a minimal demo project to illustrate the issue, you can find it here: https://gitlab.com/manu_faktur/danger-test/
The Dangerfile contains just a few lines to generate debug output, and I've prepared an MR that renames a file so the pipeline generates the desired debug output.
Dangerfile:
# frozen_string_literal: true

warn("===== modified =====")
(git.modified_files)
.each do |file|
  warn(file)
end

warn("===== renamed before =====")
(git.renamed_files)
.each do |file|
  warn(file[:before])
end

warn("===== renamed after =====")
(git.renamed_files)
.each do |file|
  warn(file[:after])
end

warn("===== DEBUG 1 =====")
warn(git.renamed_files.inspect)

warn("===== DEBUG 2 =====")
(git.renamed_files)
.each do |file|
  warn('aaa')
  warn(file.inspect)
  warn('bbb')
  warn(file[:before])
  warn('ccc')
  warn(file[:after])
  warn('ddd')
end

This is the output I would expect for the changes in the above-mentioned MR:
 $ danger
 Results:
 Warnings:
 - [ ] ===== modified =====
 - [ ] ExistingFileOne
 - [ ] ExistingFileTwo
 - [ ] ===== renamed before =====
 - [ ] ExistingFileTwo
 - [ ] ===== renamed after =====
 - [ ] RenamedExistingFileTwo
 - [ ] ===== DEBUG 1 =====
 - [ ] [{:before=>"ExistingFileTwo", :after=>"RenamedExistingFileTwo"}]
 - [ ] ===== DEBUG 2 =====
 - [ ] aaa
 - [ ] {:before=>"ExistingFileTwo", :after=>"RenamedExistingFileTwo"}
 - [ ] bbb
 - [ ] ExistingFileTwo
 - [ ] ccc
 - [ ] RenamedExistingFileTwo
 - [ ] ddd

What happened instead?
This is the actual output of the pipeline/job, where the before name is never listed (except in the output of the git.modified_files loop), even though clearly being in the git.renamed_files structure as demonstrated by the two inspect results. Oddly enough, in the DEBUG 2 section, the after name isn't printed as well, even though that still works in the output before the two DEBUG sections.
 $ danger
 Results:
 Warnings:
 - [ ] ===== modified =====
 - [ ] ExistingFileOne
 - [ ] ExistingFileTwo
 - [ ] ===== renamed before =====
 - [ ] ===== renamed after =====
 - [ ] RenamedExistingFileTwo
 - [ ] ===== DEBUG 1 =====
 - [ ] [{:before=>"ExistingFileTwo", :after=>"RenamedExistingFileTwo"}]
 - [ ] ===== DEBUG 2 =====
 - [ ] aaa
 - [ ] {:before=>"ExistingFileTwo", :after=>"RenamedExistingFileTwo"}
 - [ ] bbb
 - [ ] ccc
 - [ ] ddd

I've also created the following ruby script to further ensure that I'm not simply misunderstanding how the language deals with arrays/hashes/dicts, i.e. maybe them being changed by accessing them or something like that. The script behaves exactly as I would expect it to:
#!/usr/bin/ruby -w

renamed_files = [{:before=>"ExistingFileTwo", :after=>"RenamedExistingFileTwo"}]

warn("===== renamed before =====")
(renamed_files)
.each do |file|
  warn(file[:before])
end

warn("===== renamed after =====")
(renamed_files)
.each do |file|
  warn(file[:after])
end

warn("===== DEBUG 1 =====")
warn(renamed_files.inspect)

warn("===== DEBUG 2 =====")
(renamed_files)
.each do |file|
  warn('aaa')
  warn(file.inspect)
  warn('bbb')
  warn(file[:before])
  warn('ccc')
  warn(file[:after])
  warn('ddd')
end

gives me the following output:
$ ruby debug.rb
===== renamed before =====
ExistingFileTwo
===== renamed after =====
RenamedExistingFileTwo
===== DEBUG 1 =====
[{:before=>"ExistingFileTwo", :after=>"RenamedExistingFileTwo"}]
===== DEBUG 2 =====
aaa
{:before=>"ExistingFileTwo", :after=>"RenamedExistingFileTwo"}
bbb
ExistingFileTwo
ccc
RenamedExistingFileTwo
ddd

Your Environment
We're running on self-hosted GitLab 12.7.5 with Danger 6.2.0, the problem already existed when we were using Danger 6.0.11 as well.

I'm at my wit's end – apologies for the huge issue, I wanted to be very detailed about what I did and found out so far. I'd greatly appreciate any pointers as to what might be the cause or what I'm doing wrong.

If I recall the information we get from git is generally quite lossy and we've got to do work to try figure out what even happened
https://github.com/danger/danger/blob/master/lib/danger/scm_source/git_repo.rb#L29
It could be wrong, or incomplete and maybe something we've not quite hit before. I'd recommend trying to write a test for it in here: https://github.com/danger/danger/blob/master/spec/lib/danger/ci_sources/local_git_repo_spec.rb#L4 and seeing if Danger's missing something obvious

Hey @orta, thanks for getting back to me. I'm afraid my Ruby knowledge isn't quite where I'd be able to write a spec test yet, however I already verified what you're suggesting. At least I think so. 😅
I'm outputting git.renamed_files and it correctly has all the information in it:
[{:before=>"ExistingFileTwo", :after=>"RenamedExistingFileTwo"}]

So if the problem was in the code you're referring to, the information would have to already be missing here, right? But it is there. The problem is that when I try to access the before key, where I get no value, but I get the correct value when accessing the after key.


added sitemap

This adds a sitemap and robots file in postbuild with next-sitemap.

Great stuff thank you! Would you mind adding a word about this feature in the documentation? The file is there: https://github.com/VulcanJS/vulcan-next/blob/devel/src/pages/docs/features.md
I try to keep track of all features we add progressively

Sounds good to me thanks for the quick update and the work!

No problem, should I write a test for this?

that could help indeed, you could add a test in "/tests/vns", for example inspired from "packages.test.ts". You could run the relevant yarn command as done in this example and check that the files are created as expected, I think that would be sufficient to tell that the sitemap script is working ok


Recieving ECONNRESET when trying to connect more than 200 clients

I modified this JS Client to create random number of client instances and connect to WebSocketServer created using Kitura-WebSocket-NIO service. The server works fine when the number of clients connected are less than 200, but sends ECONNRESET when the number exceeds 200. This issue needs to be investigated.

Adding ws.on('error', function(e)) in client here produces the following log :
{ Error: connect ECONNRESET <IP_ADDRESS>:9000     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)   errno: 'ECONNRESET',   code: 'ECONNRESET',   syscall: 'connect',   address: '<IP_ADDRESS>',   port: 9000 }


Support redshift's columns definition list for system information functions

pg_get_late_binding_view_cols
pg_get_cols
pg_get_grantee_by_iam_role
pg_get_iam_role_by_user

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

106 of 113 (93.81%)  changed or added relevant lines in 12 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.06%) to 86.393%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

tests/sqlparser_redshift.rs
42
43
97.67%

src/parser.rs
22
28
78.57%

Totals

Change from base Build<PHONE_NUMBER>:
0.06%

Covered Lines:
12876

Relevant Lines:
14904

💛  - Coveralls

I am sorry I am a bit behind on reviews / merging in sqlparser-rs. I hope to be able to catch up later this week

@mskrzypkows there are some actions failing, could you please take a look?

Sure, I'll fix it.

I took the liberty of merging up from main and fixing a (new) clippy lint on this PR

This change seems to have caused a regression in 0.31.0 -- see https://github.com/sqlparser-rs/sqlparser-rs/issues/826. Here is a PR to back it out: https://github.com/sqlparser-rs/sqlparser-rs/pull/827
Looking more at the example https://docs.aws.amazon.com/redshift/latest/dg/PG_GET_GRANTEE_BY_IAMROLE.html
select grantee, grantee_type, cmd_type
FROM
  pg_get_grantee_by_iam_role('arn:aws:iam::123456789012:role/Redshift-S3-Write')
  res_grantee(grantee text, grantee_type text, cmd_type text)
ORDER BY
 1,2,3;

Rather than a special table definition syntax I think this is actually
FROM <table_function> <table_alias>(<col_alias1>, <col_alias2>, ...)

So
select grantee, grantee_type, cmd_type
FROM
  pg_get_grantee_by_iam_role('arn:aws:iam::123456789012:role/Redshift-S3-Write') <-- this is "table function"
  res_grantee(grantee text, grantee_type text, cmd_type text) <-- `res_grantee` is the table alias, and the other things are column aliases
ORDER BY
 1,2,3;

I see perhaps the sqlparser column alias syntax doesn't support datatypes, maybe that could be extended


GH-15064: [Python][CI] Dask nightly tests are failing due to fsspec bug

Closes: #15064

@github-actions crossbow submit test-conda-python-3.9-dask-latest test-conda-python-3.9-dask-upstream_devel


[grpc] update to 1.46.2

Library name: grpc
New version number: 1.46.2
Other information that may be useful (release notes, etc...)
grpc core updated v1.46.0
https://github.com/grpc/grpc/releases/tag/v1.46.0

Duplicate of #24557


WIP: Add baro bias state to LPE

This adds a state for baro bias random walk. This allows us to lower baro noise since the low frequency offset is a state.

Here is a plot to show results with GPS on, note how low frequency baro drift doesn't impact altitude estimate.

Without GPS it doesn't move much since it isn't observable without multiple measurements of altitude. I'm going to try with lidar next.

I'm testing this for the baro walk.
The rest are probably going to be improvements for me since I'm using optical flow. I think it would be easier to understand if each improvement was a separate PR though
What was the bug that https://github.com/PX4/Firmware/pull/5381/commits/58d4aeb1bc57433ef260ade3ebce58e21d868510 solves?  (curious)

@JochiPochi this is a work in progress,  I really haven't made a conclusion on what I'm keeping yet. So use at your own risk. 58d4aeb  is only relevant when you have GPS and flow on at the same time or you lose flow and it comes back. In one spot it wasn't resetting the coutn to zero, so the init was immediately passing, causing an init deinit loop.

Right now I'm dealing with an observability issue. How can I detect faults in the distance sensors while simultaneously allowing discrete jumps in terrain altitude as you fly over boxes etc. The fault detection is setup to trigger on large jumps, but boxes obviously cause this as well.  The code currently is setup to allow a smoothly changing ground, and that works, but I'm not seeing terrain changes going purely into the terrain state either, some of it bleeds into the altitude state, so I need to pin that down.

Please rebase on master to fix CI.

Can one of the admins verify this patch?

Ide


Route Dispatcher for MockWebServer

I would like to have an alternative to sequential mocking and verifications. Some applications could perform calls concurrently or in a non predictable order.  Or it just seems that we are testing "implementation details" when we "force" the order in the interaction. There are several solutions to this issue, like having multiple MockWebServer instances but they feel rather comvoluted.
I implemented a draft of a Route dispacher:
public class RouteDispatcher extends Dispatcher {

    private final List<Route> routes;
    private final List<IdAndRequest> requests =
        Collections.synchronizedList(new ArrayList<>());
    private final MockResponse defaultResponse;

    private RouteDispatcher(Builder builder) {
        this.routes = builder.routes;
        this.defaultResponse = builder.defaultResponse;
    }

    private record IdAndRequest(Object id, RecordedRequest request) {
    }

    @NotNull
    @Override
    public MockResponse dispatch(@NotNull RecordedRequest req) {
        for (var route : routes) {
            if (route.matcher.test(req)) {
                requests.add(new IdAndRequest(route.id, req));
                return route.response;
            }
        }
        return defaultResponse;
    }

    @FunctionalInterface
    public interface RequestMatcher extends Predicate<RecordedRequest> {
    }

    public static RequestMatcher pathStartsWith(String path) {
        return req -> {
            var reqPath = req.getPath();
            return reqPath != null && reqPath.startsWith(path);
        };
    }

    private record Route(
        Object id,
        RequestMatcher matcher,
        MockResponse response) {
    }

    public List<RecordedRequest> getRequests(Object id) {
        return requests.stream()
            .filter(r -> r.id().equals(id))
            .map(IdAndRequest::request)
            .toList();
    }

    public RecordedRequest getRequest(Object id) {
       var requests = getRequests(id);
       assertEquals("Expected exactly one request with id " + id, 1, requests.size());
       return requests.get(0);
    }

    public static Builder builder() {
        return new Builder();
    }

    public static class Builder {
        private final List<Route> routes = new ArrayList<>();
        public MockResponse defaultResponse = new MockResponse().setResponseCode(404);

        private Builder() {
            // Use the method builder() instead
        }

        public Builder addRoute(Object id, RequestMatcher matcher, MockResponse response) {
            routes.add(new Route(id, matcher, response));
            return this;
        }

        public Builder addRoute(Object id, RequestMatcher matcher, UnaryOperator<MockResponse> response) {
            return addRoute(id, matcher, response.apply(new MockResponse()));
        }

        public Builder addRoute(RequestMatcher matcher, MockResponse response) {
            routes.add(new Route(matcher, matcher, response));
            return this;
        }

        public Builder addRoute(RequestMatcher matcher, UnaryOperator<MockResponse> response) {
            return addRoute(matcher, response.apply(new MockResponse()));
        }

        public RouteDispatcher build() {
            return new RouteDispatcher(this);
        }

        public RouteDispatcher buildAndSet(MockWebServer server) {
            var dispatcher = this.build();
            server.setDispatcher(dispatcher);
            return dispatcher;
        }

    }
}

And some example of the usage:
    @Test
    void interactions_tests(@Autowired WebClient.Builder builder) {
        var path01 = pathStartsWith("/path01");
        var dispatcher = RouteDispatcher.builder()
            .addRoute(path01, res -> res.setResponseCode(200))
            .buildAndSet(server);
       // Emulation of real service call
        var response = builder.build().get().uri("http://localhost:8090/path01")
            .retrieve().toBodilessEntity().block();
        assertNotNull(response);
        assertEquals(HttpStatus.OK, response.getStatusCode());

        var request = dispatcher.getRequest(path01);
        assertEquals("/path01", request.getPath());
    }

I like this kind of feature in Wiremock but I preffer your implementation with less dependencies and included the Spring Boot BOM.
If you feel this useful, I could code that in kotlin, add the proper test and do a pull request after your evaluation.

That is a pity, MockWebServer, in my opinion,  is by far more convenient  and it does not have tons of dependencies.

I think this RouteDispatcher thing is great! But I’d prefer to omit it from the MockWebServer library. If you’d like to do a new library, please do!

OK. At the moment I am going to keep this at a shared library for test in my company, if you reconsider adding a route dispacher, let me know. I could do a pull request with tested RouteDispacher.


Check return code and some unicode handling

Check the return code of the pandoc call, so that we can raise if there was an error
Closes: #49
Also make sure that we handle unicode in filters-as-a-string and encoded strings and make sure that we always return unicode.

finaly... Please tell me if I should split this PR into two or three for the individual issues...

Thanks! I forgot about the 2.7 users when I made the filter handler.

Thanks a lot! 0.9.6 contains the fixes.


How to reverse insider program settings made by offlineinsiderenroll

How to reverse insider program settings made by offlineinsiderenroll
I want back to usual Windows Insider settings, how I can do that?

Oh, I understand - just select "Quit from Insider program..." in script...


Fix windows CI

Signed-off-by: zethson<EMAIL_ADDRESS>

name: Full Windows

on:
    - push
    - pull_request

jobs:
  run:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v2
      - run: choco install imagemagick dejavufonts ghostscript
      - run: refreshenv
      - run: |
          $folders = Get-ChildItem "C:\Program Files\ImageMagick*"
          foreach ($folder in $folders) {
              $imfolder = $folder.FullName
          }
          $folders = Get-ChildItem "C:\Program Files\gs"
          foreach ($folder in $folders) {
              $gsfolder = $folder.FullName
          }
          echo "C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;$imfolder;$gsfolder\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
      - run: magick convert -version
      - run: gswin64c -v

This works in isolation. Now I just have to get it in...

Lesson learnt @Imipenem
chocolatey needs to always start new terminal sessions


[Bug] params.data.State duplicates all contents when clicked on

Hi, you have a bug: when you add getRowId="params.data.State" to dag.AgGrid, the table content gets duplicated whenever the table is clicked on in the front-end.

Hello @yxc8,
Do you have a code to run this with?
This doesn't sound like a bug but an issue with your data and maybe some reserved words from the Grid.

This is most likely associated with "state" not being a unique value in the column


POST requests should return a 201 with Location header

Currently, the user has no idea where the POSTed resource has been created.
As such, the server should return an HTTP 201 response with a Location header containing a reference (URL) to the created resource.

Related, since there is no fixed way yet to change the output status code: #11


aliases losts in order by

Summary of problem or feature request

Problem with aliases in query on the order.
Code snippet of problem
public function datatable(Request $request)
{
    $report = ReportCourseUser::with(['user']);
    return DataTables::eloquent($report)->toJson();
}

I notice when i sort a column the query is the next
SELECT *
FROM   "report_course_users"
       LEFT JOIN "users" AS "users_0"
              ON "report_course_users"."user_id" = "users_0"."id"
WHERE  "users"."deleted_at" IS NULL
       AND "report_course_users"."deleted_at" IS NULL
ORDER  BY "users_0"."username" ASC
LIMIT  10 offset 0

in the line WHERE  "users"."deleted_at" IS NULL  users lost the alias 🤔

System details

Operating System: debian
PHP Version: 7.2.16
Laravel Version: 5.8
Laravel-Datatables Version: 9

You need to update to the latest version where https://github.com/yajra/laravel-datatables/pull/2051 was reverted. Self join is not yet supported.


[Idea] Anchor links

Hi.
I have an idea to add anchor links in "day-by-day" list like in my fork: https://github.com/mdzierzkowski/100-days-of-code-frontend/blob/anchors/README.md
I can make a PR if you like my idea.
PS: Thank you for this document, I found it very helpful.
PPS: It's my very first contribuiton to someone's repository on github.

Love the idea! Please do a pull request.
Welcome to contributing and thank you :+1:

Thanks again, you're now a contributor! :clap:

Thank you. 👍
I'm glad that I could help. 😄


Custom Report Generator

Hi, I'm just looking for advice.
Excited to here about the new MSTest runner and I saw that it allows for custom report generators.
What is the best way to do this?  Are there events for test discovery (suites, methods) and runtime checks (pass, fail, etc..)?
AB#1950757

Hi @ray440,

Excited to here about the new MSTest runner

Glad to hear :)

I saw that it allows for custom report generators.

Out of curiosity, may I ask what kind of report you are trying to build? Just to see if it could be worth for us to provide it.

What is the best way to do this? Are there events for test discovery (suites, methods) and runtime checks (pass, fail, etc..)?

Let me craft a few simple examples as it can be useful! We will iterate over it until there is something good enough for you to build something custom.

@ray440 please see #2246 and let me know if that's providing enough context and information.

That sounds great!

@ray440 if that's ok with you, I'll move the issue as fixed and close it.

@ray440 if that's ok with you, I'll move the issue as fixed and close it.

Sure.
I'm struggling to get access to VSTestProperty.  They seem to be inaccessible or internal.

I'm struggling to get access to VSTestProperty. They seem to be inaccessible or internal.

They are internal for now (I don't recall what was the reasoning but I will look it up tomorrow).

They are internal for now (I don't recall what was the reasoning but I will look it up tomorrow).

I suspect there are reasons. In the meantime I think I can hack around it to get the info need.

I would be really interested to get some details about what you are trying to achieve.

Oh it's a horrific hack!  😬 😨
Temporarily... I'll just ToString() all the relevant properties and parse out the info.

It might be helpful if MSTest had a way to emit custom TestNodeStateProperty messages..?

When you are talking about "emit custom TestNodeStateProperty messages, do you mean if MSTest was exposing an API (e.g. TestContext or something else) for users to send some states or do you talk only about the internal of MSTest? On the latter, that's already possible.

@ray440 I am moving this ticket as closed. Feel free to add more comments or open a new one if you have some other problem,


Streamline DBT block

Slack threads

feature-requests https://mageai.slack.com/archives/C03KW780J2F/p1691343644821639
contribute https://mageai.slack.com/archives/C0548LJTD2S/p1692871172204649

Use Case
Install any DBT adapter without integrating the database into Mage first.
Use all the connection options of the DBT Adapter without integrating the options into Mage first.
Description
Reimplemented the DBT Block:

directly integrated into dbt-core, instead of calling it via a subprocess, which allows to use all of dbts functionalities
use dbt to seed output dataframes from upstream blocks
use dbt to generate correct relations e.g. default schema names, which differ between databases
use dbt to preview models, by backporting the dbt seed command to dbt-core==1.4.7
no use of any mage based database connections to handle the block

allows to install any dbt adapter, which supports the dbt-core version

moved all code into a single interface called DBTBlock

doubles as a factory for child blocks DBTBlockSQL and DBTBlockYAML
child blocks make it easier to understand which block does what

The changes include

an profiles.yml interface, which is used to temporarily create an interpolated profiles.yml
an project.yml interface, which is used to load project config from dbt_project.yml and packages.yml
an sources.yml interface, which manages a mage_sources.yml and creates sources for each pipeline and block
an dbt adapter interface, which allows to execute SQL and any dbt macro via dbt and the configured adapter
ab dbt cli interface, which allows to execute dbt, without having to run dbt as subprocess

DBT Block Features
SQL Block allows running a single dbt node of type analysis, model, snapshot

Block Outputs are loaded for downstream code/sql blocks
Lineage is loaded via dbt list command
Compiled SQL is loaded from file
Data Preview is loaded from running dbt in the notebook
Handle Test Run build, test, run, snapshot, show automatically based on api/frontend inputs
Add Upstream Models If manually triggered via api/frontend

[!IMPORTANT]
Disabled automatic adding upstream models.

[!NOTE]
Also fixes errors in the upstream links when triggered manually now

YAML Block (which probably should be named an ARGS Block, as its passes args to a cli) allows running any dbt command
Block Inputs from upstream code/sql blocks are materialized and added to dbt sources definition
Interpolation of mage variable template tags

profiles.yml by creating a temporary interpolated profiles.yml
target definition
analysis/models/snapshots .sql files via injecting --vars into the dbt cli command

Runtime Flags are injected (e.g. --full-refresh, prefix and suffix
Also the following things have been changed

fixed polars version to polars[xlsx2csv]==0.18.4 as 0.19 as doesn't support python3.7 and has interface changes, which crash the build.
updated dbt to dbt-core==1.4.7, dbt-postgres==1.4.7
added dbt-duckdb because its awseome and #3463 will support duckdb in mage natively aswell
added mock as backport for python3.7 as the unittest.mock package doesn't include AsyncMock on python.37
changed the base testcase to use pathlib.Path instead of os to create paths, which works better on Windows
added templates for the dbt base repo/dbt dir, which allows to use dbt deps and dbt docs out of the box
globally ordered requirements.txt as defined by pre-commit
fixed pre-commit test naming hook to be compliant
updated pre-commit job in "Build and Test" workflow to check all changed files in PR instead only the last commit

How Has This Been Tested?

[x] Added many unit tests
[x] Tested with locally with postgres, dbt-postgres
[x] Tested with locally with dbt-duckdb

Checklist

[ ] The PR is tagged with proper labels (bug, enhancement, feature, documentation)
[x] I have performed a self-review of my own code
[x] I have added unit tests that prove my fix is effective or that my feature works
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation

cc: @tommydangerous

I have seen feature requests for different dbt adapters, like

dbt-dremio
dbt-synapse

As long as the adapter supports dbt-core==1.4.7 this should now work. Just add it into the requirements.txt of the mage project.

This should also resolve #3202 and makes #3368 obsolete.
To get the preview and output dfs, we are using dbt show, which will get the correct model identifier via dbt directly..

I just checked the mage docs and the New dbt quickstart #3511
THe new implementation of the dbt block i propose, needs a valid entry in the repo/dbt/packages.yml file e.g.
packages:
  - local: jaffle_shop

I could automate this by adding all dbt projects automatically in the packages definition when the metadada via metadata_async is requested.
The reason I have added the requirement for the packages.yml file is, that when running dbt you might end up creating a log folder and other folder next to your project. The old version of metadata_async just got all dir names as potential projects, which in this case was wrong.
At the same time, having a packages.yml is good, when you want to run a dbt docs server.
Automation of generation/updating the base project files profiles.yml, dbt_project.yml, packages.yml would maybe be the best of both worlds. This would then also be backwards compatible, which it probably should be anyway...

Did you test with this tutorial? https://docs.mage.ai/guides/setup-dbt

Did you test with this tutorial? https://docs.mage.ai/guides/setup-dbt Especially this part  When I add the dbt block, its refs are not added to the pipeline.

I have disabled automatic adding upstream referenced models. -> I have added it to the PR description

Disabled automatic adding upstream models.

This has been a big bain point with huge dbt projects. You can still do this via the menu manually.

I just did the demo end to end. I guess we need to change some small things in the documentation. But in general everything work.

does not automatically add upstream table block-> you have to trigger it manually
the name of the df in the sources is a bit different. I changed to in order to be able to be able to identify from which pipeline and block the table was created

I got this error when running the dbt blocks from the tutorial via trigger https://docs.mage.ai/guides/setup-dbt

It doesn't show actual error messages

The error was intended by the tutorial:

The pipeline will eventually fail because a dbt test failed. This means everything is working as expected.
Open the file demo_project/dbt/demo/models/example/schema.yml and remove the tests named unique under both models. Your file should look like this:

But I agree, having a more meaningful error message would be good.

I tested with BigQuery and Snowflake and got error when running this upstream block of a dbt block:
if 'custom' not in globals():
    from mage_ai.data_preparation.decorators import data_loader
if 'test' not in globals():
    from mage_ai.data_preparation.decorators import test

import io
import pandas as pd
import requests
from pandas import DataFrame

@custom
def load_data_from_api(**kwargs) -> DataFrame:
    url = 'https://raw.githubusercontent.com/mage-ai/datasets/master/restaurant_user_transactions.csv'

    response = requests.get(url)
    return pd.read_csv(io.StringIO(response.text), sep=',')

BigQuery

Snowflake

I found duplicate logs when executing the DBT blocks in the notebook. Are duplicate loggers added?

I wonder whether we should gradually migrate different databases to use the dbt adapter for uploading the dataframe after tests.

I would rather have it one go and implement it in a way, that it just uses dbt commands to read and write data. This way we reduce the complexity and errors of the dbt block, which was my goal from the beginning.
I was naive to believe, that dbt-adapters would implement the basic seed macros (reset_csv_table, load_csv_rows) using the same default dbt-postgres approach.
I have implemented it in a way, that i'm passing a agate table to the macro, which is then materialized through the executing the macro. Essentially doing it the same way a dbt seed is done, just by passing a table directly to the macro instead of reading it from disk. Unfortunately at least bigquery does something differently. Their macro implementation will read from disk regardless of the input.
Ill solve this by using the original dbt seed command. This should get us around all issues with adapter specific implementations.
But this means, that ill have to write the df from the upstream block as csv to the seeds directory temporarily (can cleanup afterwards), which is not nice, but a save way to do it.
Using this approach all read/write to databases is handled by standard dbt commands.

dbt show to get a preview from a model/snapshot/analysis
dbt seed to write a df
dbt run/snapshot/build/test to run and/or test models/snapshots/analysis

This should be a very robust and stable way to do it, which should allow us to roll it out for all potential dbt adapters.
In addition to the ones im currently testing

dbt-duckdb
dbt-postgres

I can also test against

dbt-bigquery
dbt-clickhouse
dbt-mysql with mysql<5, mysql, mariadb
dbt-redshift
dbt-spark
dbt-sqlserver
dbt-trino

The only one I cannot test is dbt-snowflake, as I don't have a sandbox account.


More useful "No source control providers registered"

Issue Type: Feature Request
Source Control tab shows simple "No source control providers registered" caption by default. No any hints provided.
Suggestion is to add a clickable link to the Help section of how to setup Git/etc in VSCode.
VS Code version: Code 1.40.2 (f359dd69833dd8800b54d458f6d37ab7c78df520, 2019-11-25T14:54:45.096Z)
OS version: Windows_NT x64 10.0.18363

/duplicate #61491


Resource icon is grey after deletion of all manual attribution

Summary of changes
resourcesWithManualAttributedChildren.pathToIndices is not updated once attribution is deleted. Paths is the correct list which is updated.
Context and reason for change
Fix #1685
How can the changes be tested
Start the app, find any resource without attributions (resource with grey icon), create a new attribution for the resource, delete it and check the color of resource icon (it has to be in the same state as it was at the beginning - grey)

Added tests and realized that it is not python ('in' does not work for arrays in js) :)


NavigationMesh does not complete when running on main thread

Godot version
v4.0.3.stable.official [5222a99f5]
System information
Mac
Issue description
The following code will not print any vertices, nor polygons.
The NavigationMesh resource will not be saved correctly.
Even though we specify bake_navigation_mesh(false) (on the main thread)
func _ready() -> void:
	var navreg = $NavigationRegion3D
	navreg.bake_navigation_mesh(false)

	print(navreg.navmesh.get_vertices())
	print(navreg.navmesh.get_polygon_count())

	var to_save = preload("res://testresource.gd").new(navreg.navmesh)
	ResourceSaver.save(
		to_save,
		"output.tres",
		ResourceSaver.SaverFlags.FLAG_BUNDLE_RESOURCES
	)

Also bake_finished is never called when building either on the main thread or in a separate thread.
Steps to reproduce

Download minimal repo below
Run the repo
Check the console
Check output.tres

Minimal reproduction project
test-navmesh.zip

Modifying the code thusly:
	navreg.bake_navigation_mesh(false)
	await get_tree().process_frame

And I see the following output as expected:
[(0.5, 0.625, -1.25), (-0.25, 0.625, -1.5), (-0.5, 0.625, -1), (-0.5, 0.625, 0), (0.5, 0.625, 0.25)]
3

NavigationRegion3D.bake_navigation_mesh() makes a deferred call to always finish on the main thread no matter what.
With the new thread-guards added in Godot 4 dev3 this is now more important than ever.


Rewrite and upgrades

Description
Now that I know this module is used, it's time to bring it up to date: both Terraform and Refinery are now stable!
Todo:

[x] update to Terraform 1.0
[x] update to Refinery 1.3.0
[x] remove the complex logic around the rules, as discussed in https://github.com/Vlaaaaaaad/terraform-aws-fargate-refinery/issues/8
[x] simple test that everything starts up ok
[x] test different Refinery rules files
[x] send data to Refinery, look for any weird logs or errors
[x] readme check

Tested and confirmed working, so I am merging this 🚀


companyLogo CSS property changed

Linkedin has updated the CSS  property for companyLogo. Current property returning the default logo for all the companies. I have updated it to correct logo.

Hey @rajatenzyme , Thanks for contributing 💛


self.key is never updated

Thank you for your work on this cool repo! It is really useful for my research :)
🐛 Bug
Why is self.key always the same after each self._train call? More precisely, why is this part of the code, coded like this
https://github.com/araffin/sbx/blob/fcd647ee1809eb2269f386116e942af8e1d5e0b4/sbx/sac/sac.py#L446-L449
and not like this
update_carry["actor_state"],
update_carry["ent_coef_state"],
update_carry["key"],  # Return the new updated key
(update_carry["info"]["actor_loss"], update_carry["info"]["qf_loss"], update_carry["info"]["ent_coef_loss"]),

?
To Reproduce
Edit the method train in the file sbx/sac/sac.py to add the following line of code after the function _train has been called:
print("self.key", self.key)

Example: https://github.com/theovincent/sbx/blob/8327b98463c89b68f17ec0431d0cf3069cb7d7a7/sbx/sac/sac.py#L236
Create the following file, called train.py at the top level of the project:
import gymnasium as gym

from sbx import SAC

env = gym.make("Pendulum-v1")

model = SAC("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=110, progress_bar=True)

Running python train.py in the terminal yields
>>> python train.py
Using cuda device
Wrapping the env with a `Monitor` wrapper
Wrapping the env in a DummyVecEnv.
An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.
self.key [2110677572<PHONE_NUMBER>]
self.key [2110677572<PHONE_NUMBER>]
self.key [2110677572<PHONE_NUMBER>]
self.key [2110677572<PHONE_NUMBER>]
self.key [2110677572<PHONE_NUMBER>]
self.key [2110677572<PHONE_NUMBER>]
self.key [2110677572<PHONE_NUMBER>]
self.key [2110677572<PHONE_NUMBER>]
self.key [2110677572<PHONE_NUMBER>]
self.key [2110677572<PHONE_NUMBER>]

Expected behavior
Changing the code, as suggested earlier, fixes the problem. Here are the logs when the change is implemented:
>>> python train.py
Using cuda device
Wrapping the env with a `Monitor` wrapper
Wrapping the env in a DummyVecEnv.
An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.
self.key [3440514203<PHONE_NUMBER>]
self.key [ 507603733<PHONE_NUMBER>]
self.key [1106737823<PHONE_NUMBER>]
self.key [ 372788615<PHONE_NUMBER>]
self.key [1808065049<PHONE_NUMBER>]
self.key [1837019053<PHONE_NUMBER>]
self.key [1740029140<PHONE_NUMBER>]
self.key [1088489055<PHONE_NUMBER>]
self.key [3718340890<PHONE_NUMBER>]
self.key [1872112782<PHONE_NUMBER>]

### System Info

Describe how the library was installed (pip, docker, source, ...)
Fork the repo, clone it, create a python virtual env, install the dependencies

python3 -m venv env
source env/bin/activate
pip install -e .
pip install gymnasium[classic-control]

GPU models and configuration
The GPU is not used
pip version
23.2.1

>>> import stable_baselines3 as sb3
>>> sb3.get_system_info()
- OS: Linux-6.5.0-27-generic-x86_64-with-glibc2.35 # 28~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 15 10:51:06 UTC 2
- Python: 3.11.5
- Stable-Baselines3: 2.3.0
- PyTorch: 2.2.2+cu121
- GPU Enabled: True
- Numpy: 1.26.4
- Cloudpickle: 3.0.0
- Gymnasium: 0.29.1

({'OS': 'Linux-6.5.0-27-generic-x86_64-with-glibc2.35 # 28~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 15 10:51:06 UTC 2', 'Python': '3.11.5', 'Stable-Baselines3': '2.3.0', 'PyTorch': '2.2.2+cu121', 'GPU Enabled': 'True', 'Numpy': '1.26.4', 'Cloudpickle': '3.0.0', 'Gymnasium': '0.29.1'}, '- OS: Linux-6.5.0-27-generic-x86_64-with-glibc2.35 # 28~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 15 10:51:06 UTC 2\n- Python: 3.11.5\n- Stable-Baselines3: 2.3.0\n- PyTorch: 2.2.2+cu121\n- GPU Enabled: True\n- Numpy: 1.26.4\n- Cloudpickle: 3.0.0\n- Gymnasium: 0.29.1\n')

Additional context
Before commit https://github.com/araffin/sbx/commit/e56407486f89bed25fe3f79888fe3d03af9b190d, the key was updated each time the function self._train was called as you can see here:
https://github.com/araffin/sbx/blob/0f9163d1f3496515ceb707fa4d9f76c7f35b599f/sbx/sac/sac.py#L389-L392
This bug seems to be present for:

CrossQ
SAC
TD3
TQC

Checklist

[ X] I have checked that there is no similar issue in the repo (required)
[ X] I have read the documentation (required)
[ X] I have provided a minimal working example to reproduce the bug (required)

Hello,
thanks for reporting the bug =)
Can you have a quick look if it impacts performance too?
I guess it was introduced in https://github.com/araffin/sbx/pull/21

Hi @araffin,
Thank you for your quick answer. I started to launch some runs here, it is still running: https://wandb.ai/theovincent/update_key/workspace?nw=nwusertheovincent
SAC_static_key is when the key is never updated [old version]
SAC_updated_key is when the key gets updated [new version]


Solving problems with time-dependent Hamiltonians

Describe the Issue!
Hi, I am trying to solve a problem with a time-dependent Hamiltonian using QuantumToolbox.jl and sesolve(). My Julia version is 1.11.2
Here is the simplest example of my code:

When I run this I get the following error:

I believe the error is caused because H is a tuple but the sesolve() function is expecting it to be a quantum object type. Here are the types of the relevant things in my code:
julia> typeof(H)
Tuple{QuantumObject{SparseMatrixCSC{ComplexF64, Int64}, OperatorQuantumObject}, typeof(C1_coeff)}
julia> typeof(C1_coeff)
typeof(C1_coeff) (singleton type of function C1_coeff, subtype of Function)
julia> typeof(H1)
QuantumObject{SparseMatrixCSC{ComplexF64, Int64}, OperatorQuantumObject}
As you can see my H is a tuple of operator-function pairs and when I look at the documentation for sesolve() online it says the Hamiltonian can be of this tuple type:
H: Hamiltonian of the system \hat{H}. It can be either a QuantumObject, a QuantumObjectEvolution, or a Tuple of operator-function pairs.
So since my H is a tuple of operator-function pairs I shouldn't be getting an error...right?
I am hoping that someone here can help me solve this issue.
Thanks!

@ColinVendromin
Thank you for using the QuantumToolbox.jl.
sesolve indeed supports H to be specified as a Tuple, but it must be in the correct format in order to generate QobjEvo.
As we mentioned in the documentation here:

The following code sets up this problem by using a Tuple which contains many time-dependent pairs (H_j, f_j)

To generate a single element Tuple in julia, you need to add a extra comma ,,
That is, instead of generating H with
H = (
    (H1, C1_coeff)
)

You need to do it like this:
H = (
    (H1, C1_coeff),
)

You can use typeof(H) to see the type differences between the above two cases.
Furthermore, I saw another problem in your definition of C1_coeff. Again, as we mentioned in the documentation [here]:

Although we didn't use the argument p in the definition of coef, we still need to put a dummy input p (in front of t) in the declaration of coef.

That is, your definition of C1_coeff should be:
C1_coeff(p, t) = exp(-t)

@albertomercurio
I think we should do extra expection handling for the above cases, so that people can understand how to fix the code by just reading the error messages.

Yes, thrown an error with a hint message is a good option.

@ytdHuang
Thank you for your quick response to my question.
Ultimately I realized I was using an old version of QuantumToolbox.jl.  After updating to the latest version and fixing my code according to your suggestions I was able to resolve my issue.
Of course if I had read the documentation carefully I would have caught these coding errors, but adding a hint message to make debugging easier would save time for the user and is much appreciated!
Thanks again!

@ytdHuang
Thank you for your quick response to my question.
Ultimately I realized I was using an old version of QuantumToolbox.jl. After updating to the latest version and fixing my code according to your suggestions I was able to resolve my issue.
Of course if I had read the documentation carefully I would have caught these coding errors, but adding a hint message to make debugging easier would save time for the user and is much appreciated!
Thanks again!

Yes, I have just made PR #339 to address the hint error messages~
This issue should be improved in the next release.


Condition use of unsafe serializers on signed data

The original design planned to not use unsafe serializers, in order to allow use of GALP between peers not tied to the same security constraints (e.g. a node on a shared HPC, a cloud provider node, and a dedicated server in a hospital).
This quickly appeared to be too restrictive, because life is just too short to write custom serializers for all the data types you deal with in modern data science. Each framework typically has its own python objects to represent the results of a training procedure, these are very common objects that you need to persist, and need to rebuild to pass them back to the frameworks.
Therefore, I gave up and allowed to use dill, which itself can use pickle under the hood and is therefore unsafe.
However, I still want to achieve the original goal one day, meaning that safe and unsafe serialization have to coexist somehow.
Originally, I was thinking on having sets of rules that allow use of a specific serializer if the object was received by a peer that is authorized. But that seems very complicated to implement.
Unless you opt for a simple low-level solution: sign the data.
Wrap the unsafe serializer into code that signs and verifies signatures. The "configuration" of peers to trust is limited to adding their keys. If you want to trust workers on a same cluster, you can just put their keys on the distributed filesystem where their code is stored. This way, any peer can easily tell wether an object comes from a node that shares the same code as itself, and therefore has the same security level.
The beauty is that you do not even need to implement a cryptographic layer. You don't need to track the proximal source of data, an untrusted client could even re-send you data that was serialized  by a fellow trusted worker without risk ! You can exchange safe and unsafe data over the same channel without the safe data having to pay any encryption overhead costs !
Automatically storing a key along with the cache would make local use of unsafe serializer work out of the box with no configuration. Marking the workers as trusted by the client (common scenario) would be very easy.
In practice, we could have only the workers trust themselves, and keep the client untrusted. That would expose very fast where exactly we use unsafe types and tell you what you should focus on, and would allow most intermediary results to be left untouched.

Closing as communication between untrusted peers is looking unlikely to ever be implemented.


add support for open telemetry

Closes: https://github.com/nitrictech/python-sdk/issues/87

Codecov Report
Patch coverage: 74.31% and project coverage change: -11.76 :warning:

Comparison is base (0d23d91) 83.90% compared to head (d9077c3) 72.15%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@             Coverage Diff              @@
##           develop      #92       +/-   ##
============================================
- Coverage    83.90%   72.15%   -11.76%
============================================
  Files           20       31       +11
  Lines         1280     2316     +1036
============================================
+ Hits          1074     1671      +597
- Misses         206      645      +439

Impacted Files
Coverage Δ

nitric/proto/nitric/faas/v1/__init__.py
91.12% <ø> (ø)

nitric/proto/nitric/queue/v1/__init__.py
73.91% <ø> (ø)

nitric/proto/nitric/resource/v1/__init__.py
88.61% <ø> (ø)

nitric/proto/nitric/secret/v1/__init__.py
75.00% <ø> (ø)

nitric/proto/nitric/storage/v1/__init__.py
71.84% <ø> (ø)

nitric/proto/validate/__init__.py
0.00% <ø> (ø)

nitric/resources/__init__.py
100.00% <ø> (ø)

nitric/resources/apis.py
41.95% <ø> (+1.82%)
:arrow_up:

nitric/resources/base.py
83.33% <ø> (-3.34%)
:arrow_down:

nitric/resources/buckets.py
94.28% <ø> (ø)

... and 14 more

... and 2 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


lyxal: Watch ghostwriting.ie

lyxal requests the watch of the watch_keyword ghostwriting\.ie. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

ghostwriting\.ie has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Add support for k8s webhook token authentication strategy

#99

Oh, forgot to ask if you rename the commit message according to conventional commit messages.
I would suggest something as: feat: support for webhook token authentication strategy


fetch_all_unread_chats hangs on expected_conditions

Hey, @Kalebu. Now I'm the one getting stuck on fetch_all_unread_chats and get_list_of_messages EC waits. 😞
I'll take a look into it later.

me too

hi, im also facing the same issue, did you find a solution?

@Kalebu can you assist?


Shared Image Gallery: Updating a share image version returns internal error

[Enter feedback here]
After create a image version under my SIG, and I update the image version with more replicas in several regions with  az sig image-version update, after 2 hours and 17 minutes, it throws the following error
ValidationError: Gallery replication jobs failed in one or more regions. The failing regions' details are as follows: '{region:northeurope, detail:Failed with internal server error.}'. If retry does not work, then please do an update by removing the failed regions and update again by adding them back.

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

ID: 99108d44-6c69-d481-7c5e-891905799635
Version Independent ID: 142e71ef-a7cd-2acb-786b-7ac359863e91
Content: az sig image-version
Content Source: latest/docs-ref-autogen/sig/image-version.yml
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

hi @qwordy could you pls help on this? thanks

Service issue. You can first follow the error message: "If retry does not work, then please do an update by removing the failed regions and update again by adding them back."

Hi @mainred, does the error still occur?

@qwordy , I did not hit this problem after several tries.

Great! Close this issue.


feat: add DESTINATION input to support multi-spec repositories

Part of https://github.com/w3c/spec-prod/issues/31
TODO:

move changes to source to a separate commit
cleanup
~In future, write this in typescript to save self some pain.~ Done in https://github.com/w3c/spec-prod/commit/fa1deba04fef4aea4e9e1d418847fbd7022d0afd

Merge-conflicts after typescript migration will get out of hand. Will send new PR.


鼠标可以增加划线、涂鸦功能

Description of the new feature / enhancement
鼠标可以增加划线、涂鸦功能
Scenario when this would be used?
通过快捷键按需开启
Supporting information
No response

You might like ZoomIt. It's an official tool from Microsoft: https://learn.microsoft.com/en-us/sysinternals/downloads/zoomit
/dup #149


fix should not generate same exprId for diff column when sink

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Ask a question related to Ibex

Hello, I'm trying to run synthesis with Vivado, and it shows some error messages like these:
[Synth 8-1766] cannot open include file prim_assert_dummy_macros.svh ["../ibex_rtl/prim_assert.sv":96]
[Synth 8-2841] use of undefined macro ASSERT ["../ibex_rtl/ibex_branch_predict.sv":91]
[Synth 8-2715] syntax error near ( ["../ibex_rtl/ibex_branch_predict.sv":91]

I also tried to set the file type, letting prim_assert_dummy_macros.svh become a "Global Include" file. After changing it, there are still some error messages:
[Synth 8-2379] near = `ASSERT_DEFAULT_RST : illegal macro parameter ["../ibex_rtl/prim_assert_dummy_macros.svh":12]
[Synth 8-2379] near = `ASSERT_DEFAULT_RST : illegal macro parameter ["../ibex_rtl/prim_assert_dummy_macros.svh":13]
[Synth 8-2379] near = `ASSERT_DEFAULT_CLK, __rst = `ASSERT_DEFAULT_RST : illegal macro parameter ["../ibex_rtl/prim_assert_dummy_macros.svh":14]
[Synth 8-2379] near = `ASSERT_DEFAULT_CLK, __rst = `ASSERT_DEFAULT_RST : illegal macro parameter ["../ibex_rtl/prim_assert_dummy_macros.svh":15]
[Synth 8-2379] near = `ASSERT_DEFAULT_CLK, __rst = `ASSERT_DEFAULT_RST : illegal macro parameter ["../ibex_rtl/prim_assert_dummy_macros.svh":16]
[Synth 8-2379] near = `ASSERT_DEFAULT_CLK, __rst = `ASSERT_DEFAULT_RST : illegal macro parameter ["../ibex_rtl/prim_assert_dummy_macros.svh":17]
[Synth 8-2379] near = `ASSERT_DEFAULT_CLK, __rst = `ASSERT_DEFAULT_RST : illegal macro parameter ["../ibex_rtl/prim_assert_dummy_macros.svh":18]

How can I make the synthesis work?
My Environment

EDA tool and version:

Xilinx Vivado 2020.2
Operating system:

Ubuntu Linux 18.04
Version of the Ibex source code:

Hi there! Something slightly odd has happened here: I think the prim_assert.sv file should include prim_assert_standard_macros.svh with Vivado (not the "dummy" file).  The version that I've got on my machine doesn't have a relevant include on line 96.
Also, it might make sense to dig around in the ifdef list in prim_assert.sv and add "debug errors" to make sure you can trace why the code building in the way that gets confused.

Hi! I am trying to do the same with Vivado, and cannot find these macro files in the ibex repository. Why would they not be included? I found them in OpenTitan, but I'm not sure if these are the same that are required, and how many I would need to include?

Hello, is there any update on this errors? I'm facing the same issue when trying to bring the lowrisc/ibex core to vivado.


Make autosave interval configurable

Choose any number of seconds >= 5.

@cooperra i just merged your other two PRs and now this one has conflicts.
when you resolve them, i'll merge

Resolved. (You'd think git would be better at merging adjacent unrelated changes.)


Add kamal app open command to open app in a web browser

Problem
Kamal is a no-PaaS tool with PaaS-like ergonomics, where you can easily open a production Rails (or other) console, a shell session, tail logs, etc. A small feature that could be implemented to further align with this vision is a command to open the app in a web browser, similar to Heroku's heroku open or Fly.io's fly apps open.
This would allow for quick access to a deployed web application, from the CLI, without having to manually copy/paste the URL from one of your browser tabs or your config/deploy.yml or some other file. Examples where this can be useful:

right after deploying your app
when switching between different Kamal-enabled repos
in copy/paste-able Readme instructions
any time you're in the command line and want to easily open the app in your browser

Solution
Add a kamal app open command. It opens the primary role's (usually web) first domain defined in proxy host(s), or falls back to the primary role's first IP address.
The implementation is short, so adding a dependency for finding the OS opening command (with a gem like launchy) felt like too much. But I can change the PR if needed.

I like this, but I'm not sure.
The command will not work properly in lots of setups - where there's no proxy host, where the host if a wildcard etc.
Adding a command that's often broken seems a bit iffy.

Normally kamal app open wouldn't break because it would fall back gracefully.
For example when there is no proxy host, this PR already falls back to the primary IP (see unit test). This is pretty handy as I often like to create short-lived apps where I don't bother to configure SSL, so I access these apps by IP.
Normal non-wildcard proxy hosts also work.
That leaves us with wildcards proxy hosts. Is this an issue though? I don't think Kamal currently supports them in the proxy>hosts key unless I am missing something. But if it does kamal app open could just find the first non-wildcard or doing the usual fallback to the primary IP.
So I think that covers it, unless you have other cases in mind?

You would have to duplicate the host name, but this would also be possible using Aliases on a per project basis.

@AxelTheGerman Can you provide an example? Aliases are for things like app exec which execute on the server whereas this command executes on your local.

@AxelTheGerman I am not sure how this would be possible. Can you provide an example? AFAIK aliases are for things like app exec which execute on the server whereas this command executes on your local.

Duh you're right... but in that case I guess it would be possible to A) write a custom rake task or B) creating a kamal-open gem that could read and parse the deploy yaml file as well.
It does seem much easier to add it into kamal but I'm agreeing with @djmb regarding

The command will not work properly in lots of setups

One option though for implementing it in kamal would just be to print a message that the app cannot be opened if we can't find the host/IP for the app


Piranha.Manager: App PageTypes/BlockTypes caching causing issues

Problem
Piranha.App performs caching with the BlockTypes and PageTypes properties. While this makes sense in a production environment, this posses an issue with unit tests since the values in App persist between unit tests.
Possible Solutions

Expose an internal App.ForceInit() to unit tests, which would set instance.isInitialized = false; and then run the App.Init() method again
Discuss a different caching scheme that prevents such an issue from occurring

This is one of the goals of #9

Updated controllers to use the Api instead of the cached properties of the App singleton. You can see the modification in:
https://github.com/PiranhaCMS/piranha.core/commit/4e56826beb3494712948adbbcb701617c48f994b

@tidyui Just found that Piranha.EF.PageRepository also uses App.PageTypes. I am going to change this to use the injected IDataService from the constructor, seen in https://github.com/TheWolfA2/piranha.core/commit/1af05a6a4735055fa3db7132a6240b86ab702c2b


CORGI-652 reverse proxy via nginx

Yet another iteration of the file truncation issue solution. I finally decided to give up on serving static files via gunicorn in favour of NGinx. In this iteration using NGinx as a reverse proxy.
Not that to use NGinx as a reverse proxy in dev you'll need to update the url you access Corgi on from port 8008 to 8080

LGTM

I updated this a bit to use the origin ALLOWED_HOSTS config for stage and prod.
I also simplified the nginx config in dev.

LGTM

If we have NGINX serving this content, we don't need whitenoise at all. The manifest generation can just place the files in some director that NGINX is serving it out of and that's it. The path to the files can also then be something more standard like /files/sbom/<file>.


load: race condition when running load.Instances

What version of CUE are you using (cue version)?

$ cue version
v0.3.0-alpha1.0.20200730155834-304b02e40842

Does this issue reproduce with the latest release?
Yes (noted that API is currently not certified as concurrency safe).
What did you do?
exec go run main.go

-- cue.mod/module.cue --
module: "mod.com"
-- go.mod --
module mod.com

go 1.15

require cuelang.org/go v0.3.0-alpha1.0.20200730155834-304b02e40842
-- main.go --
package main

import (
 "sync"

 "cuelang.org/go/cue/load"
)

func main() {
 var wg sync.WaitGroup
 for i := 0; i < 2; i++ {
  wg.Add(1)
  go func() {
   load.Instances([]string{"."}, nil)
   wg.Done()
  }()
 }
 wg.Wait()
}
-- x.cue --
package x

x: 5

What did you expect to see?
A passing test (i.e. zero exit code)
What did you see instead?
panic: not properly initialized (state: 0, value: <nil>)

goroutine 20 [running]:
cuelang.org/go/cue.makeValue(0xc0003c7620, 0xc0003ea2d0, 0xc0003ea2d0, 0x0)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/cue/types.go:614 +0x127
cuelang.org/go/cue.newChildValue(0xc0000ece80, 0x0, 0x5, 0xc00000e100)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/cue/types.go:587 +0x51
cuelang.org/go/cue.(*structValue).Lookup(0xc0000ece80, 0x8a94fa, 0x5, 0x10101000000, 0xc000000000)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/cue/types.go:140 +0x1d8
cuelang.org/go/cue.Value.Lookup(0xc0003c7620, 0xc00034fd40, 0xc0000ecfa8, 0x2, 0x2, 0xc000030000, 0xc0000ecf68)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/cue/types.go:1429 +0x19d
cuelang.org/go/internal/filetypes.parseType(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x2a, 0xc00002410d, 0xd)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/internal/filetypes/filetypes.go:227 +0xe5
cuelang.org/go/internal/filetypes.ParseFile(0xc00002a4ab, 0x6, 0x0, 0xc000408230, 0x7, 0x7)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/internal/filetypes/filetypes.go:190 +0x2ef
cuelang.org/go/cue/load.(*loader).importPkg(0xc00000e040, 0x0, 0x0, 0xc000412000, 0x0)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/cue/load/import.go:153 +0xc32
cuelang.org/go/cue/load.(*loader).importPathsQuiet(0xc00000e040, 0xc0000edfb8, 0x1, 0x1, 0x0, 0x0, 0xc00007c0c0)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/cue/load/search.go:368 +0x658
cuelang.org/go/cue/load.(*loader).importPaths(0xc00000e040, 0xc0000edfb8, 0x1, 0x1, 0x0, 0x0, 0x0)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/cue/load/search.go:326 +0x4d
cuelang.org/go/cue/load.Instances(0xc0000edfb8, 0x1, 0x1, 0xc0000ede98, 0x0, 0x0, 0x0)
        $WORK/gopath/pkg/mod/cuelang.org/go@v0.3.0-alpha1.0.20200730155834-304b02e40842/cue/load/loader.go:62 +0x15e
main.main.func1(0xc00032b340)
        $WORK/main.go:14 +0x65
created by main.main
        $WORK/main.go:13 +0x78
exit status 2
[exit status 1]
FAIL: /tmp/testscript299275306/0/script.txt:1: unexpected command failure
error running race.txt in /tmp/testscript299275306/0

Just ran into this again. Whilst the API is not concurrency safe, might it be worth putting place a few mutexes in key places?

Update:
The biggest impediment to concurrent running was updating string indices concurrently. This is now fixed. It previously used a two-layered approach, to manage strings for builtin packages in a separate layer. This has been replaced with using a single layer and a sync.Map. This proved to be equally fast. Coincidentally, it also allows lazy loading of packages.
Another problem is the potential double evaluation of cuegenInstance in filetypes. This is easily solved.
But the trickiest problem seems to be related to the use of scratch registers in Vertices. This is quite hard to prevent a race on, other than changing the cycle detection to not use this fields (a TODO already). Once that is addressed, it should be possible to load in parallel.

Both Compile and CompileFile suffer this as well even between completely separate Runtimes

@mpvl commented on the main impediments here: https://github.com/cuelang/cue/discussions/613

This issue has been migrated to https://github.com/cue-lang/cue/issues/460.
For more details about CUE's migration to a new home, please see https://github.com/cue-lang/cue/issues/1078.


Error

Hi @csedeepakyadav. It seems like your setup/project is not configured to AndroidX, here's how you can check that and try to solve (https://stackoverflow.com/questions/56489549/flutter-getting-build-error-on-image-picker-0-6-09/56490440#56490440).
In case you have migrated the project to AndroidX & are still facing the same issue with your build, please reply back to me here with some more data. I'm going to need the following:

flutter doctor -v
flutter build --verbose
some minimal code sample to reproduce the issue

Thank you

Thank you for your quick response.

App is configured to AndroidX.

I tried all possible solutions and finally
I managed to resolve the issue by pasting  'res' folder of the app to
'B:\flutter.pub-cache\hosted\pub.dartlang.org\wallpaper_manager-1.0.6\android\src\main'
which just doubled the size of apk but it's working now.

For MIUI phones it's not working, please make it work if possible. (You have mentioned it earlier).

Again I would like to thank you for such a great plugin.

Thanks a lot for providing a fix for the issue @csedeepakyadav yourself. Two things to mention before I close this issue off:

You should try to document the exact steps on how to reproduce any issue in general, next time onwards. For now, I'll look into the 'res' folder - good catch, maybe I have missed something over there. This issue hasn't come up for anyone else, but I'll still take a deeper look into it soon.
For the MI UI issue, I have figured out a solution, but couldn't take out the time to fix it. I'll do that this week I guess. The solution is this - If the device is MI-based & the lock screen function is called, save the image to the user's device first, and then use the image_picker library (or something similar) to pick that image out of the gallery & then select the "set as wallpaper" option. The user will have to manually select the image (after the gallery opens) and the set wallpaper option from the gallery with this method, though.

If in case I come up with a better MI UI fix, or if I just implement the above in one of the future versions of the library, I'll make sure to message you here!
Thank you


build-service: move repo to konflux-ci org

STONEBLD-2336
Signed-off-by: Adam Cmiel<EMAIL_ADDRESS>

The repo has been moved (thanks @hugares), updating references accordingly
https://github.com/konflux-ci/build-service

/lgtm