[Bug]: Illegal model request upon selecting gpt-3.5-turbo as the Agent Model for plugins

What happened?
When selecting gpt-3.5-turbo as the Agent Model for plugins, the chat gets error saying

However, selecting a non-alias like gpt-3.5-turbo-0125 works well.
Steps to Reproduce
OpenAI settings:
OPENAI_API_KEY=<your key>
OPENAI_MODELS=gpt-4-vision-preview,gpt-4-turbo-preview,gpt-3.5-turbo-0613,gpt-3.5-turbo-instruct-0914,gpt-3.5-turbo-instruct,gpt-3.5-turbo-0125,gpt-3.5-turbo,gpt-3.5-turbo-0301,gpt-3.5-turbo-1106,gpt-3.5-turbo-16k,gpt-3.5-turbo-16k-0613,gpt-4-1106-preview,gpt-4-0125-preview
 # I simply just removed the non turbo gpt-4 from the model list

DEBUG_OPENAI=true

TITLE_CONVO=true
OPENAI_TITLE_MODEL=gpt-3.5-turbo

OPENAI_SUMMARIZE=true
OPENAI_SUMMARY_MODEL=gpt-3.5-turbo

navigate to the plugin tab
select gpt-4-turbo-preview as the completion model and gpt-3.5-turbo as the agent model
type something in the chat and see the error

What browsers are you seeing the problem on?
Chrome
Relevant log output
Unfortunately, this error isn't being logged at all, despite the fact that I enabled all DEBUG_CONSOLE DEBUG_OPENAI and DEBUG_LOGGING
However, if you want, here is the complete debug log file

Click to see debug log
2024-03-04 20:22:32 info: [Optional] Redis not initialized. Note: Redis support is experimental.
2024-03-04 20:22:33 info: Connected to MongoDB
2024-03-04 20:22:33 debug: [indexSync] There are 12 messages in the database, 12 indexed
2024-03-04 20:22:33 debug: [indexSync] There are 5 convos in the database, 5 indexed
2024-03-04 20:22:33 info: Custom config file loaded:
2024-03-04 20:22:33 info: {
 "version": "1.0.1",
 "cache": true,
 "endpoints": {
   "custom": [
     {
       "name": "Mistral",
       "apiKey": "${MISTRAL_API_KEY}",
... [truncated]
2024-03-04 20:22:33 debug: Custom config:
{
 version: "1.0.1",
 cache: true,
   // 4 custom(s)
   endpoints.custom: [{"name":"Mistral","apiKey":"${MISTRAL_API_KEY}","baseURL":"https://api.mistral.ai/v1","models":{"def... [truncated],{"name":"OpenRouter","apiKey":"${OPEN_ROUTER_API_KEY}","baseURL":"https://openrouter.ai/api/v1","mod... [truncated],{"name":"Github Copilot Chat","apiKey":"${COPILOT_GPT4_SERVICE_SUPER_TOKEN}","baseURL":"http://copil... [truncated],{"name":"LiteLLM","apiKey":"${LITELLM_API_KEY_SELF}","baseURL":"http://litellm-server:8000/v1","mode... [truncated]],
}
2024-03-04 20:22:33 info: Outdated Config version: 1.0.1. Current version: 1.0.4

Check out the latest config file guide for new options and features.
https://docs.librechat.ai... [truncated]
2024-03-04 20:22:33 info: Server listening on all interfaces at port 5000. Use http://localhost:5000 to access it
2024-03-04 20:23:01 debug: [validateJson] files
["\"Ai_PDF.json\"","\"BrowserOp.json\"","\"Dr_Thoths_Tarot.json\"","\"DreamInterpreter.json\"","\"VoxScript.json\"","\"askyourpdf.json\"","\"drink_maestro.json\"","\"earthImagesAndVisualizations.json\"","\"image_prompt_enhancer.json\"","\"qrCodes.json\"","\"scholarai.json\"","\"uberchord.json\"","\"web_search.json\""]
2024-03-04 20:23:04 debug: [validateJson] files
["\"Ai_PDF.json\"","\"BrowserOp.json\"","\"Dr_Thoths_Tarot.json\"","\"DreamInterpreter.json\"","\"VoxScript.json\"","\"askyourpdf.json\"","\"drink_maestro.json\"","\"earthImagesAndVisualizations.json\"","\"image_prompt_enhancer.json\"","\"qrCodes.json\"","\"scholarai.json\"","\"uberchord.json\"","\"web_search.json\""]

Screenshots
See above
Code of Conduct

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

same
@danny-avila this bug also bans people since it's an "illegal request"

Let me know if the latest commit fixed it for you. I couldn't exactly reproduce this but temporarily removed the secondary model check. I changed something else that might have been the root cause for this, too.

Confirmed it works now

im getting the same thing but with Assistants. "Something went wrong. Here's the specific error message we encountered: Illegal model request" still happening even after I update it


Add fileinfo PHP extension

This is another essential PHP extension that I could not go without :grin:

Hi, do you mind adding it to php/Dockerfile-no-stats as well?
Thanks.

Done! Sorry for the delay.


Long read quality control standards

Quality control metric for long read WGS:

Oxford Nanopore technologies (ONT) and SMRT sequencing from Pacific Bioscience (PacBio)

https://pmc.ncbi.nlm.nih.gov/articles/PMC7144081/

https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>6643v1

Porechop, filtlong, canu, racon, and medaka

N50 of aligned reads
The most common QC approach for long reads is a dotplot or contour plot of average base accuracy (or mapped accuracy, if available) vs read length.
NanoPlot can be used for this:
https://github.com/wdecoster/NanoPlot
PycoQC
NanoGalaxy

https://training.galaxyproject.org/training-material/topics/sequence-analysis/tutorials/quality-control/tutorial.html

PacBio use the IsoSeq pipeline

Long-read sequencing provides longer sequences but often comes with higher error rates and lower throughput. QC metrics for long-read technologies include:

Read length distribution: Ensures that the long reads are sufficiently long to span structural variants or complex genomic regions.
Accuracy metrics: To evaluate base call errors, especially for technologies with higher raw error rates.
Alignment quality: Mapping long reads against a reference genome, evaluating discrepancies in alignments or errors like base substitutions.
Coverage uniformity: Ensures even distribution of reads across the genome.
Tools like NanoPlot and PycoQC are specifically designed for long-read QC .

Both sequencil for various genomic research applications, with QC being crucial to ensure high-quality, reproducible, and comparable data, particularly in large-scale or clinical projects.
Sources
[1] FastQC: A tool for quality control of high throughput sequence data.
[2] Picard: A toolkit for high-throughput sequencing data analysis.
[3] NanoPlot: A tool for visualizing long read data from nanopore sequencing.
[4] PycoQC: A quality control tool for long-read sequencing from PacBio and Oxford Nanopore.


reduce API paths

For whatever reason all API paths are documented with the base path prepended to them. Additionally, the name of the software is part of the path too. While the latter seems like an architectural problem, showing the full paths in the documentation shouldn't be like that.
Current behavior
This is the currently documented path for initializing a service agreement:
/api/v1/brizo/services/access/initialize

Expected behavior
This is what the actual path should look like in the Swagger spec:
/services/access/initialize

where the base path, ideally without brizo, should be put into the Swagger spec as basePath as outlined in #26.

Seems the paths are already updated.

Paths were not updated, e.g. see: https://brizo.commons.oceanprotocol.com/spec So they still require hacky string manipulation to work in the docs


gridding PAR - should log first

As recommend by Basiten Queste: PAR should be logged before gridding. This is sensible as PAR is an exponential variable. We wouldn't want to bias it when performing the mean while gridding.
This changed averaging strategy should be logged in the metadata of the variable. Maybe it should be controllable from the yaml too?

Allowing for transformation before gridding is definitely something I want included.  I think there are already some examples, but the idea is we should be able to inject processing at this stage.
(I'm skeptical however as to whether log averaging is ever the correct thing to do).


Anonymous closure arguments inside #expect fail in macro expansion

Description
The following test function fails to compile due to the use of anonymous closure arguments along with the macro expansion generating another closure to contain them:
    @Test func foo() {
        let x = [2, 4, 6]
        x.forEach {
            #expect($0 % 2 == 0)
        }
    }

Errors vary slightly depending on the exact expression and compiler version.
Expected behavior
We should be able to expand this macro correctly by substituting our own labels for dollar identifiers in the initial expression.
Actual behavior
Compiler go splat.
Steps to reproduce
Try to build the test function above.
swift-testing version/commit hash
808e44f419d6ef7d2fce36bc548595fb59db2f86
Swift & OS version (output of swift --version ; uname -a)
No response

Looks like this was fixed in yesterday's toolchain for us!
Duplicate of https://github.com/apple/swift/pull/68475

Duplicate of https://github.com/apple/swift/pull/68475


Quote consistency

The PR is to clean up the use of double vs. single quotes. I know it's not very interesting, but I use this project a lot and I kept going OCD on all the double quotes! There was also a case of using single quotes for docstings.
I also added unicode_literals to a couple files where I thought it would be useful and cleaned up the us.
Cheers! 😄

Want to rebase this so I can merge it in?

Rebaseness. Cheers!


Add Z5 info to issue template

I appreciate the help, but BBT for Zotero 4 gets no support anymore; submitting debug logs won't help.

Better?

Yes :)


Royalty is not correctly shown

Is there an existing issue?

[X] I have searched the existing issues

What happened?
We have set the collection royalty to 10% that is does not shown on the page
Please reproduce in steps

Go to https://kodadot.xyz/ahp/collection/130
there is just % logo

Expected Behavior
I expect to see 10 %
What browsers are you seeing the problem on?
No response
At which address did you encounter bug?
No response
Are you logged in?
None
Which wallet you are using?
No response
At which chain did you encounter bug?
No response
Screenshots

Wallet Address & Transaction hash
No response
Relevant log output
No response
Payment link for reward
https://canary.kodadot.xyz/dot/transfer/?target=<My_Polkadot_Address_check_https://github.com/kodadot/nft-gallery/blob/main/REWARDS.md#creating-your-dot-address>
Code of Conduct

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

It's because of missing royalty data from subsquid  @vikiival
(This only happened to this collection, other collections show royalty correctly /ahp/collection/117)

The royalty section and % sign should not be there if the royalty data is null.

subquid has the data

subquid has the data

That's why it got fixed now. Yesterday it's null : ) @vikiival

Prob ultra long cache!


Version event JSON formats

Right now the format of events published to the event bus (in the form of HTTP POST requests) is independent of the API version used to subscribe that callback.  That should be fixed to prepare for subsequent API revisions.
See #607
See #1505 (and the work-in-progress PR #1536)

If you want to reopen this, please describe your intention.

@kolloch: added detail, labels, links, and updated the title to make this more concrete.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-3784. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


WIP: Adding Fn invoke endpoint that works just like triggers endpoint

A version of Fn invoke that works exactly like the trigger endpoint point.

think i get the basic idea here, do the same thing as triggers api but without the trigger configuration bits. that line of reasoning is sensible i think for interfacing with the agent to get something working, in the interest of looking forward is it a lot of work for us to restrict the domain of the http API to only accept cloud events? is the cloudevent library unworkable hence resurrecting the event logic from earlier https://github.com/fnproject/fn/pull/1165 ?
(will fiddle with this today)

i guess part of this exercise was to scope out exactly what that might look like exactly, we're just now trying to skip doing that to have something working is what it seems like.

Why is the resource in models only have Memory?

@skinowski that and timeout are going to be the only configurables, i think shapes are going to come into this area.

Why is the resource in models only have Memory?

good catch, yea we need to iron that out


[Audio]: Never Gonna Give you up [MIDI]

Check if this audio is already added to RetroStudio.

[X] The audio is not already in game.

Is this for the main-menu playlist?

[X] Add to main-menu playlist.

Is this song from an old Roblox era or a sound effect?

[X] This song is from old Roblox or is a sound effect.

A link to the audio on Roblox
https://www.roblox.com/library/9894525501/Never-Gonna-Give-You-Up-Roblox-Edition
A link to the audio file to download.
https://drive.google.com/file/d/1S0VIcD5NGKD-_s8ZXfFCKhefclxIkWk1/view?usp=sharing
Notes
Original song used by many players from 2008-2014.
Generated using Gamehero's classic midi player.
Copyright Detection doesn't work on midi :)

Wouldn't this be considered a custom rendition? The Rick Roll that I remember was uploaded by clockwork, and existed until around 2014 (like you said) in which no Wayback Machine archives remain other than YouTube videos that played it.

I suppose you're right, though personally I prefer it to pitch-shifting or slowing down the original to avoid copyright.

i'd suggest pitching it down, since it's likely retro dev won't notice it's slowed sown. and if that happened, there's no speed setting so..yeah.
or you can just clarify it in the title 📦:P

Menu Music should also be special. The box should have been left unchecked

If it’s pitch shifted we are unable to add it!

Why so?


Present URLs as clickable links

Hi,
When handing out BoMs to the assembly house, I like to add purchase URLs for each part, which lead to sites such as findchips.com or octopart.com, for the purchaser to easily check and compare up-to-date stock and pricing information.
It would be very convenient if the iBOM would present URLs as clickable HTML links.
For example, this could be implemented with

auto-detecting whole property values as links (i.e. the property value must start with "http://", "https://", or "file://"),
auto-detecting links in property values (i.e. only a part of the value is a link), or
treating whole property values as links if a checkbox "Link" (column to be added) is ticked in the "Fields" table of the configuration dialog window.

I think the first method would be easiest to implement and would be sufficient for most use cases.
Thank you for your consideration and for this great tool!
Mark

I would find this useful.  (And agree the first method would be sufficient for most use cases.)
I would also find this useful for links for datasheet PDF's.  I add datasheet URL's to nearly every part.  While that is definitively useful when doing layout, it could also sometimes be of use during assembly, if someone needed to reference a part's various permutations for identity marking (orientation, revision, etc.)

It's possible to achieve using custom js. Someone already did the work: https://github.com/openscopeproject/InteractiveHtmlBom/issues/82#issuecomment-1228665488

Thanks for the pointer!
The approach of using a custom callback (as in #82) works in that clickable links are added.
However, (at least) two problems arise:
1.
Manipulating all table rows renders table header actions unusable (column sorting, column visibility settings). I came up with a simplified version that addresses this issue by only handling tbody elements and leaving the table header untouched:
function add_href_links() {
  var urlRegex = /^((?:https?|file):\/\/.*$)/;
  var tbody = document.getElementById("bomtable").getElementsByTagName('tbody')[0];
  for (let row of tbody.rows) {
    for (let cell of row.cells) {
      cell.innerHTML = cell.innerHTML.replace(urlRegex, function (url) {
        return '' + url + '';
      });
    }
  }
}

EventHandler.registerCallback(IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, add_href_links);

This can be fixed in user.js.
2.
The function saveBomTable() does not export the links, because now each modified cell (that contains a link) includes another node (a), which must be handled explicitly.
This needs to be fixed in util.js, function saveBomTable(output):
        } else if (node.nodeName == "MARK") {

must be changed to
        } else if (node.nodeName == "MARK" || node.nodeName == "A") {

If we would implement the link-feature and fix both issues in the mainline code, users could benefit without the hassle of having to add custom code (also updating the addon would be much easier, obviously).
Where would one place the urlify function and the BOM_BODY_CHANGE_EVENT callback registration, if implemented in mainline code? If you can give me a hint, I could prepare a PR.
Thanks for your help!
Mark

The reason I didn't want to include url-ify function in base code is that it doesn't play nice with the filter highlighting.
If you want to mainline it you should look into integrating it into populateBomBody() and highlightFilter() in ibom.js. Callbacks system is only intended for user scripts, don't use it for built in functionality.
If you can make highlighting work inside and outside of urls (I would accept if it doesn't work on the "border") I'll be happy to merge it.


"won" attribute set inconsistently with "score" attribute for defuser planted in last second edge case

Describe the bug
Team can be marked as having won a round even though the lost it. Score is updated correctly.
To Reproduce
I believe this issue is caused when the defuser is finished being planted after the action phase ends. In the case I found, there was a 1v1 in the last seconds of the round. The attacker planted the defuser, starting before the round ended, and finishing after the round would have ended. This, of course, adds 45s to the timer for the defender to stop the defuser. In this case, that happened. The defender killed the attacker and stopped the defuser. The following was output to the JSON after running r6-dissect
"teams": [
    {
        "name": "Kenough Uni",
        "score": 6,
        "won": false,
        "role": "Defense"
    },
    {
        "name": "UC Acad",
        "score": 0,
        "won": true,
        "winCondition": "DefusedBomb",
        "role": "Attack"
    }

Expected behavior
The "won" value should be flipped for each team. "Kenough Uni" should have true for "won" and "UC Acad" false.

will look at this soon, might be an issue with this method
https://github.com/redraskal/r6-dissect/blob/00593f18355bb78328d01293092faad59e1195f7/dissect/time.go#L45

the defuser disable event was likely not recorded, so the win condition defaults to a defuse.

can you send the replay to<EMAIL_ADDRESS>@CodingPenguin1?
my guess is the match timer was not at 0.00, so the disable event was ignored

@redraskal sent

@CodingPenguin1 the disable timer did not reach 0 when stopped. r6-dissect should probably rely on an actual defuser state as opposed to the timer.
this requires more research, not sure when i'll have a solution

No worries, glad to have found an edge case for you

winning team fixed in Y9S4 release, although the win condition may still be incorrect at times because of the defuser feature being broken


refactor: Update to nerdctl and containerd v2.0.0

Issue #, if available:
Description of changes:
Updated libraries to use containerd 2.0 and nerdctl 2.0. This includes some functionality changes on nerdctl's end so I had to do some code changes to keep as similar behavior as possible.
FUNCIONALITY CHANGES:

finch remove will only send a 400 now on error, as nerdctl no longer returns a specific error, instead returning a generic one (some volumes could not be removed) and having the specific error in the WARN logs. Not sure if there's a way around it, though. Changes e2e test to reflect this but not unit test.
Namespacing has been added at a wider scale, so things such as networks can now be namespaced. This means that the way files are stored in the backend.

This change makes finch-daemon incompatible with nerdctl <2.0.0.

The first two commits should only include imports and package name changes and no real code functionality changes. The third commit should have all of the functionality changes (as well a couple of package name changes that I missed + changes I needed after rebasing, sorry 😔)
Testing done:
make test-unit && make test-e2e
Worth noting that I had one test failure on my machine related to namespace overlap due to Docker using the same namespace, I tried changing the namespace but had some issues so I'll first see how the CI handles it before seeing what changes have to be made

[X] I've reviewed the guidance in CONTRIBUTING.md

License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Given the backwards-incompatible nature of this change we will hold off on this until containerd announces their next LTS version


Switch to stable Rust

Currently we are relying on arc_cyclic which is unstable now. It's already implemented in nightly and will be stablized in Rust 1.60. Once 1.60 is released, switch the codebase to Rust 1.60.

Rust 1.60.0 stable is released.


float Min/Max restrictions not allowing full range - stops a hair under

For an example, I set a Float Min to 4f and max to 10f.  The slider when dragged all the way to the right goes to some random value below 10.  Sometimes 9.5, sometimes 9.65, 9.75 etc.  I never could get it to go to 10.0f.

I'll have a look and see if I can fix it. Could you send me the Settings class you are using?

https://github.com/brandonm4/BannerlordMods/blob/master/TournamentsXPanded.Settings/TournamentXPSettingsModLib.cs


Feature to add annotations to serviceAccount

Is your feature request related to a problem? Please describe.
ServiceAccount created via the podSpec has no rolebinding to the roles that are created by default.
podSpec:
#   # Name of service account to use for the Neo4j Pod (optional)
#   # this is useful if you want to use Workload Identity to grant permissions to access cloud resources e.g. cloud object storage (AWS S3 etc.)
   serviceAccountName: ${service_account_name}

Describe the solution you'd like
Feature to add annotations to the default serviceAccount.
Additional context
Add any other context or screenshots about the feature request here.

Hi @colintkn
You can create your own serviceaccount with annotations and the appropriate roles and rolebindings and use that serviceaccountname in the values.yaml via podspec.serviceaccountname.
Please let us know if the above does not solve your query.
Thanks
Harshit

Hi Harshit,
Thanks for the workaround. Is there a reason for not supporting annotations? And is there intention to support this feature in the future (i think older helm charts supported this)

@colintkn since we provide support for adding your own customized serviceaccount I don't see any extra benefits of adding support for annotations in the default serviceaccount provided by helm chart.


Add missing response headers

As discussed in https://github.com/wimdeblauwe/htmx-spring-boot/issues/105 this is the work of @xhaggi rebased on the current main and fixed to align with the current version
source: https://github.com/xhaggi/htmx-spring-boot/tree/missing-response-headers

I would definitely prefer if you cherry pick the commits so that you have one per annotation and not to lose the author of the commits. @wimdeblauwe or do you have a different opinion on this?

@xhaggi
Well then I need to solve merge conflicts for each step, it already took two hours as it is now.

I would definitely prefer if you cherry pick the commits so that you have one per annotation and not to lose the author of the commits. @wimdeblauwe or do you have a different opinion on this?

I like small commits for sure, but I think this is a nice whole. I don't see much need for separate commits for each annotation. That said, maybe @tschuehly can do a force commit with an added line in the commit message using Co-authored-by (https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors) to acknowledge all the work you have done on it.

Well then I need to solve merge conflicts for each step, it already took two hours as it is now.

@tschuehly I really appreciate your work, but I like to stick to separate commits and the original work I did. That's why I did it on my own and created a separate PR #118  for it. I hope this is OK for you? Maybe you should have asked in #105 if I could do the rebase and a PR, I certainly would have done it. BTW it only took me a few minutes.

Well now it doesn't matter 😁


fix: typos in documentation files

This pull request contains changes to improve clarity, correctness and structure.
Description correction:
Corrected "implemenation" to "implementation".
Please review the changes and let me know if any additional changes are needed.

@miguelmota Hi! Apologies for the inconvenience. I just wanted to check if there’s anything I can improve in my pull request. Please feel free to ask any questions or let me know if any changes are needed to meet the project's merge requirements. I’m happy to make adjustments!

Hi @leopardracer, I made only a small contribution to this repo many years ago but your changes are very small and definitely non-breaking so I am happy to merge them for you 👍


Validate environment prior to fetching package

Avoid orphaning vendored packages by validating environments prior to installation.
Closes #702
Signed-off-by: Oren Shomron<EMAIL_ADDRESS>Exercising the fix 🏋
ks pkg install --env foo incubator/nginx
ERROR checking environment: environment "foo" was not found 👍

ks pkg install --env default incubator/nginx
INFO Retrieved 7 files

ks pkg install incubator/nginx

Pull Request Test Coverage Report for Build 1290

6 of 15 (40.0%)  changed or added relevant lines in 1 file are covered.
74 unchanged lines in 4 files lost coverage.
Overall coverage decreased (-0.001%) to 70.937%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/actions/pkg_install.go
6
15
40.0%

Files with Coverage Reduction
New Missed Lines
%

pkg/clicmd/actions.go
2
66.67%

pkg/actions/pkg_install.go
3
58.9%

pkg/app/app.go
31
49.57%

pkg/app/base_app.go
38
75.07%

Totals

Change from base Build 1287:
-0.001%

Covered Lines:
12226

Relevant Lines:
17235

💛  - Coveralls


[ABW-3727] Refresh security problems on mnemonic deletion

Description

observe secure preferences size changes to trigger reload of entities with security problems

How to test

Open wallet screen which is supposed to render security problems (if any)
Go to settings, remove and re-ad lock screen.
Go back to wallet - recovery required prompt do not show until you re-launch a wallet.
After the fix prompt should show even if wallet is in memory

@jakub-rdx what about this PR?

@jakub-rdx what about this PR? did you have a chance to test it?

@giannis-rdx just updated it


iOS 13 Font changes?

While the package works wonderfully in iOS 13. We've noticed the fonts are off between iOS 12 vs iOS 13. Has anyone noticed this?

There's a fix on the Braintree Drop In repo (https://github.com/braintree/braintree-ios-drop-in/blob/f64b0b999b16b1c6395a09eb61544d2801dc62bc/CHANGELOG.md#730-2019-08-09)
If you can send a PR here to upgrade the BraintreeDropIn iOS dependancy (in the podspec), and that you test it, I'll be grateful.

Did a quick test, it works with Braintree 4.30 and BraintreeDropIn 7.4.0.


⚠ RPC server - Figment Solana has degraded performance

In af56368, RPC server - Figment Solana ($FIGMENT_SOLANA_RPC_URL) experienced degraded performance:

HTTP code: 429
Response time: 104 ms

Resolved: RPC server - Figment Solana performance has improved in d8c543d.


Allow setting headers from handlers when spec'd for endpoints

In OpenAPI it is possible to specify headers in the response to a request. The ATC generator should enable us to add headers to the result returned from handlers related to endpoints that have headers specified in their responses.
Describe the solution you'd like
Right now the result types used with handlers follow a factory pattern, where the specified return codes are represented by methods.
I suggest we switch to a builder pattern, that allows us to pass multiple things in fluent style to the created result type. For example, with the following OpenAPI spec:
paths:
  /getFoo:
    get:
      summary: Return Foo
      responses:
        '200':
          description: OK
          headers:
            E-Tag:
              schema:
                type: string
              description: Foo E-Tag.
              required: true
            Secret-Foo-Age:
              schema:
                type: int
              description: The secret age of Foo
              required: false
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Foo'

The following result object builder could be generated:
Foo result = ...

return GetFooResult
          .OK()
          .WithContent(result)
          .WithETag("...")
          .WithSecretFooAge(42);

In the generated controller for the endpoint would then have to unpack the GetFooResult object and add any headers it contains to the response headers collection, perhaps as described here: https://www.jerriepelser.com/blog/paging-in-aspnet-webapi-http-headers/

Efter ATC gennemgang.


Investigate Fog Manager

https://gitlab.com/tiwato/fog-manager
We should see how well this works with image fog.

FogManager 0.1.2 introduces some hacks on that end to make this work pretty well. Until I rewrite this I don't think I can improve on that.


Bug: Entity casts do not cast the original data

Describe the bug
namespace App\Entities;

use CodeIgniter\Entity;

class Item extends Entity {
	protected $attributes = [
		"id" => null,
		"type" => null,
	];

	protected $casts = [
		"type" => "int"
	];
}

eg: I load a data from model, type value is 1, if only use this, no problem
var_dump($item->type); // int(1)

but if i set the value again
$item->type = 1;
var_dump($item->hasChanged()); // true

because the original type value is "1"(string)
CodeIgniter 4 version
rc3
Affected module(s)
CodeIgniter\Entity
Context

OS: Windows 10 Pro
Web server: Apache/2.4.41 (Win64)
PHP version 7.3.12

Yeah that's an interesting one. Probably need to update hasChanged() to check each attribute, casting as it goes, instead of this bulk check:
return     $this->original !== $this->attributes;

Casting is only designed to be on read, not on "write" to the Entity. Doing it on write could cause weird data issues when you try to save it. It is only meant as a convenience feature for working with the data, not as something that defines the data structure that gets saved to the database. If you need to convert to a particular type, you can use a setter method which will be automatically called when you set the value on the class.
public function setType($value) {
    ...
}

In this particular example, what is the issue?  It all gets saved correctly. I have an inkling that in more complex situations casting when you're checking if something has changed could be problematic but haven't thought through all of that just yet.

Casting is only designed to be on read, not on "write" to the Entity. Doing it on write could cause weird data issues when you try to save it. It is only meant as a convenience feature for working with the data, not as something that defines the data structure that gets saved to the database. If you need to convert to a particular type, you can use a setter method which will be automatically called when you set the value on the class.
public function setType($value) {
    ...
}

In this particular example, what is the issue? It all gets saved correctly. I have an inkling that in more complex situations casting when you're checking if something has changed could be problematic but haven't thought through all of that just yet.

Thanks for reply, but i don't think this is what i want...
actually, my "type" is int, but in the entity original "type" is string...
why i need to use a setter method to cast my correct int type into a wrong string type???

Remember - PHP is a loosely typed language. It's not Java or something. The example case here should  work perfectly fine for you since numbers in strings type to ints automatically.
And, I get that it seems a little silly in this simplistic example. But I have a feeling more complex use-cases (like arrays/json/dates) will cause issues if it's cast on the way into the entity.
If you're really concerned that the type is correctly an int within the Entity, you'll just cast it on the way in:
$entity->type = (int)$type;

Hi guys, I'm new to CodeIgniter but I also stumbled on this issue. I'd like to ask you about it again as I'm not sure if there was a full understanding of the possible problem.
I believe I have the same problem but:

I don't expect CodeIgniter to do any casting on write:
I write int and I expect CodeIgniter to store int.
I already use proper type when setting an attribute
I do $item->type = 1; which is the same as $item->type = (int)1 suggested by @lonnieezell above.

I have MySQL table created as:
CREATE TABLE items (
  id int(11) NOT NULL,
  type int(11) NOT NULL,
)

and trivial entity that looks like this:
class Item extends Entity
{
    protected $casts = [
        'id' => 'integer',
        'type' => 'integer',
    ];
}

Now my PHP code is as follows:
$item = $model->find($id);
var_dump($item->type, $item->hasChanged('type'));

$item->type = 1;
var_dump($item->type, $item->hasChanged('type'));

if ($item->hasChanged('type') {
    $this->sendTypeNotifications($item->id);
}

executing it results in:
int(1)
bool(false)
int(1)
bool(true)

and sending notifications to my users.
This is not what I expect. That type hasn't changed at all: it was int(1) originally and int(1) after that no-change.
@lonnieezell: I think that maybe there was a misunderstanding between you and @swearl. Could you have another look at this report, please?


Context is type of never when using chatType filter on poll_answer

import { Composer } from 'grammy'
const controller = new Composer<CustomContext>()

ctx type is never:
controller
	.chatType(['supergroup', 'group'])
	.on('poll_answer', async ctx => {
		// ctx type is never
	})

ctx type is correct:
controller
	.on('poll_answer', async ctx => {
		// ctx type is correct
	})

However, there is no such issue with (at least some) other update types

This behaviour is correct.
The point of bot.chatType is to make sure that only those updates are matching which are known to originate from the specified chat type(s). However, there's no way to determine the chat type for poll_answer updates (which makes a lot of sense because polls can be sent to many different chats, yet they all share the same state). Consequently, poll_answer updates can never match bot.chatType. This is captured by the type system which tells you that such a context object can never exist. Thus, the code snippet above is correct.

There is no chat field on update, so we can't ensure what type of chat it is.


Cannot run in PyCharm/IntelliJ runner due to This operation would block forever

Describe the bug
I am trying to run the following IntelliJ Run configuration (in both debugger and just "run" mode) after enabling gevent compatibility mentioned in #450 .

This results in gevent.exceptions.LoopExit: This operation would block forever:

run console output
/home/kdn/XXXXXXXXXXXXXXXX/mysql-users/.bin/python -m pyinfra @local mysql-users.py
/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/pyinfra_cli/__init__.py:6: MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may lead to errors, including RecursionError on Python 3.6. It may also silently lead to incorrect behaviour on Python 3.7. Please monkey-patch earlier. See https://github.com/gevent/gevent/issues/1016. Modules that had direct imports (NOT patched): ['urllib3.util (/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/urllib3/util/__init__.py)', 'urllib3.util.ssl_ (/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/urllib3/util/ssl_.py)'].
  monkey.patch_all()  # noqa

--> Loading config...

--> Loading inventory...

--> Connecting to hosts...
    [@local] Connected
--> An internal exception occurred:

  File "src/gevent/_gevent_c_greenlet_primitives.pxd", line 35, in gevent._gevent_c_greenlet_primitives._greenlet_switch
gevent.exceptions.LoopExit: This operation would block forever
	Hub: <Hub '' at 0x7f53ed7c2de0 epoll default pending=0 ref=-1 thread_ident=0x7f53f0902740>
	Handles:
[]

--> The full traceback has been written to pyinfra-debug.log
--> If this is unexpected please consider submitting a bug report on GitHub, for more information run `pyinfra --support`.

To Reproduce
Steps to reproduce the behavior, please include where possible:

Operation code & usage
seems to fail even for from pyinfra.operations import server; server.shell(commands=["echo 'Hello World!'"])
Target system information
see in Meta section
Example using the @docker connector (helps isolate the problem)
N/A (desktop issue)

Expected behavior
I would (probably mistakenly) expect to be able to run mysql-users.py line-by-line, but at least to execute at all.
Meta

Include output of pyinfra --support.

when executed through Run
/home/kdn/dev/gitlab.com/XXXXXXXXXX/mysql-users/.bin/python -m pyinfra --support
/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/pyinfra_cli/__init__.py:6: MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may lead to errors, including RecursionError on Python 3.6. It may also silently lead to incorrect behaviour on Python 3.7. Please monkey-patch earlier. See https://github.com/gevent/gevent/issues/1016. Modules that had direct imports (NOT patched): ['urllib3.util.ssl_ (/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/urllib3/util/ssl_.py)', 'urllib3.util (/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/urllib3/util/__init__.py)'].
  monkey.patch_all()  # noqa

    If you are having issues with pyinfra or wish to make feature requests, please
    check out the GitHub issues at https://github.com/Fizzadar/pyinfra/issues .
    When adding an issue, be sure to include the following:

--> Support information:
    System: Linux
      Platform: Linux-6.8.12-x86_64-with-glibc2.39
      Release: 6.8.12
      Machine: x86_64
    pyinfra: v2.9.2
    Executable: /nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/pyinfra/__main__.py
    Python: 3.11.9 (CPython, GCC 13.3.0)

How was pyinfra installed (source/pip)?
Through Nix, basically: pkgs.python311.withPackages (pp: [pp.pyinfra])

Include pyinfra-debug.log (if one was created)

pyinfra-debug.log
  File "/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/pyinfra_cli/main.py", line 218, in cli
    _main(*args, **kwargs)
  File "/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/pyinfra_cli/main.py", line 356, in _main
    connect_all(state)
  File "/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/pyinfra/api/connect.py", line 27, in connect_all
    with progress_spinner(greenlet_to_host.values()) as progress:
  File "/nix/store/6b1fqdwb3g56j5pazv8zkx9qd0mv3wiz-python3-3.11.9/lib/python3.11/contextlib.py", line 144, in __exit__
    next(self.gen)
  File "/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/pyinfra/progress.py", line 146, in progress_spinner
    spinner_thread.join()
  File "/nix/store/6b1fqdwb3g56j5pazv8zkx9qd0mv3wiz-python3-3.11.9/lib/python3.11/threading.py", line 1119, in join
    self._wait_for_tstate_lock()
  File "/nix/store/6b1fqdwb3g56j5pazv8zkx9qd0mv3wiz-python3-3.11.9/lib/python3.11/threading.py", line 1139, in _wait_for_tstate_lock
    if lock.acquire(block, timeout):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/26r5fywjsrgfk832hia1rp9qwsl48r3r-python3-3.11.9-env/lib/python3.11/site-packages/gevent/thread.py", line 112, in acquire
    acquired = BoundedSemaphore.acquire(self, blocking, timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "src/gevent/_semaphore.py", line 184, in gevent._gevent_c_semaphore.Semaphore.acquire
  File "src/gevent/_semaphore.py", line 263, in gevent._gevent_c_semaphore.Semaphore.acquire
  File "src/gevent/_semaphore.py", line 253, in gevent._gevent_c_semaphore.Semaphore.acquire
  File "src/gevent/_abstract_linkable.py", line 521, in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait
  File "src/gevent/_abstract_linkable.py", line 487, in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core
  File "src/gevent/_abstract_linkable.py", line 490, in gevent._gevent_c_abstract_linkable.AbstractLinkable._wait_core
  File "src/gevent/_abstract_linkable.py", line 442, in gevent._gevent_c_abstract_linkable.AbstractLinkable._AbstractLinkable__wait_to_be_notified
  File "src/gevent/_abstract_linkable.py", line 451, in gevent._gevent_c_abstract_linkable.AbstractLinkable._switch_to_hub
  File "src/gevent/_greenlet_primitives.py", line 61, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 65, in gevent._gevent_c_greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_gevent_c_greenlet_primitives.pxd", line 35, in gevent._gevent_c_greenlet_primitives._greenlet_switch
gevent.exceptions.LoopExit: This operation would block forever
Hub: <Hub '' at 0x7fc1e5affb00 epoll default pending=0 ref=-1 thread_ident=0x7fc1e8c34740>
Handles:
[]

Consider including output with -vv and --debug.

Not a bug in pyinfra, but a limitation of pycharm. pycharm heavily monkey-patches stuff in the python context to hook their UI and this breaks gevent. Setting GEVENT_SUPPORT=True helps somewhat, but the experience is still pretty janky.
Running pyinfra ... as a standard command (without python hooks) works fine though.

Running pyinfra ... as a standard command (not as a python run config) works fine though.

I was mostly thinking about using step-by-step debugger when developing code. Is there any debugger (pdb or whatever else) that actually works with pyinfra?

I've learned on Matrix chatroom that pyinfra doesn't really support any kind of step-by-step debugging, so closing this issue.

The issue is actually caused by running pyinfra as a module.
For example, the following command works well:
pyinfra @local exec – whoami

But when executing:
python -m pyinfra @local exec – whoami

it hangs after “Connected,” and the same issue persists.
I consider this to be an unexpected (bug) behavior.


reorder of terraform arguments var and varFiles to reflect common usage

Switching the order of Vars and VarFiles in terraformArgs to reflect a more common scenario.
It's likely that a user would like to override one or two variables from a var-file using single variables, currently the behaviour is the opposite way round.
link to terraform variable precedence documentation.

Thanks for the PR! How did you test this? Could you add a test case that specifically verifies this behavior?

we have come across a new for this as well. But this PR has been open for quite some time, is there any chance this will be reviewed and actioned upon soon ?

We use -var-file to set the bulk of the variables, including defaults, and then would like to use -var to override them, for example to see what happens when a variable changes. This is currently not possible because changes provided via -var are clobbered by -var-file. Any chance you will accept this PR or provide an alternative soon?

I use -var-file to set the bulk of the variables, including defaults, and then would like to use -var to override them, for example to see what happens when a variable changes. This is currently not possible because changes provided via -var are clobbered by -var-file. Any chance you will accept this PR or provide an alternative soon?

Also hoping that this gets merged soon

If you locate your terraform.tfvars file in the same directory as the Terraform module you apply terraform.InitAndApply, then Terraform will automatically pick up on the variables defined in that file. You can then just use Vars to override the values set in your terraform.tfvars file:
terraformOptions := &terraform.Options{
  TerraformDir: "../location/of/terraform/module/",
  Vars:         tfvarsOverridesGoHere,
}

As far as I was checking, #1217 resolves that issue. If you define SetVarsAfterVarFiles: true, then values passed in Vars take precedence over values from VarFiles e.g.:
terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{
	TerraformDir: ".",
	VarFiles:     []string{"example.tfvars"},
	Vars: map[string]interface{}{
		"example": "value_passed_from_test",
	},
	SetVarsAfterVarFiles: true,
})

closing as resolved in #1217


KAFKA-13258/13259/13260: Fix error response generation

AlterClientQuotas, DescribeProducers and FindCoordinator have issues when building error responses. This can lead to brokers returning responses without errors even when some have happened.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

cc @dajac @kkonstantine

@mimaison I synced with @kkonstantine and he said he's ok with this being merged to 3.0. He will update the release thread soon, but let's get this in when we're ready to avoid delays.


Fix typo in devtools plugin readme

(Odd e2e test error; just re-ran it in case it may go clean, but may require a rebase off main. Let's see what it does!)

Thanks @awanlin, I had in fact not installed :D
Hope it looks right now.

@Rugvip good to merge now 👍

Thanks again for this fix @tomasmota 🚀


Can't migrate a JSONB column default

Bug description
When trying to migrate a JSONB column to have a default containing a JSON string, Prisma crashes when running the migration.
How to reproduce
Create a schema like:
model Post {
  id         Int     @default(autoincrement()) @id
  title      String
  content    String?
  metafields Json    @default("'{\"foo\": \"bar\"}'")
}

Run prisma migrate save --experimental which successfully saves a migration, then run prisma migrate up --experimental which crashes with the following log:
This also happens with @default("{\"foo\": \"bar\"}") but not with @default("'{}'"), not exactly sure which quoting style we're supposed to use.
Changes to be applied:

model Post {
  id Int @default(autoincrement()) @id
  title String
  content String?
  metafields Json?
  metafields Json @default("'{\"foo\": \"bar\"}'")
}

Checking the datasource for potential data loss...
  MigrateEngine:rpc SENDING RPC CALL {"id":2,"jsonrpc":"2.0","method":"calculateDatabaseSteps","params":{"projectInfo":"","assumeToBeApplied":[{"tag":"CreateSource","source":"db"},{"tag":"CreateArgument","location":{"tag":"Source","source":"db"},"argument":"provider","value":"\"postgresql\""},{"tag":"CreateArgument","location":{"tag":"Source","source":"db"},"argument":"url","value":"\"postgres://example:example@localhost:5432/example\""},{"tag":"CreateModel","model":"Post"},{"tag":"CreateField","model":"Post","field":"id","type":"Int","arity":"Required"},{"tag":"CreateDirective","location":{"path":{"tag":"Field","model":"Post","field":"id"},"directive":"default"}},{"tag":"CreateArgument","location":{"tag":"Directive","path":{"tag":"Field","model":"Post","field":"id"},"directive":"default"},"argument":"","value":"autoincrement()"},{"tag":"CreateDirective","location":{"path":{"tag":"Field","model":"Post","field":"id"},"directive":"id"}},{"tag":"CreateField","model":"Post","field":"title","type":"String","arity":"Required"},{"tag":"CreateField","model":"Post","field":"content","type":"String","arity":"Optional"},{"tag":"CreateField","model":"Post","field":"metafields","type":"Json","arity":"Optional"}],"stepsToApply":[{"tag":"UpdateField","model":"Post","field":"metafields","arity":"Required"},{"tag":"CreateDirective","location":{"path":{"tag":"Field","model":"Post","field":"metafields"},"directive":"default"}},{"tag":"CreateArgument","location":{"tag":"Directive","path":{"tag":"Field","model":"Post","field":"metafields"},"directive":"default"},"argument":"","value":"\"'{\\\"foo\\\": \\\"bar\\\"}'\""}],"sourceConfig":"datasource db {\n  provider = \"postgresql\"\n  url      = \"postgres://example:example@localhost:5432/example\"\n}\n\ngenerator client {\n  provider = \"prisma-client-js\"\n}\n\nmodel Post {\n  id         Int     @default(autoincrement()) @id\n  title      String\n  content    String?\n  metafields Json    @default(\"'{\\\"foo\\\": \\\"bar\\\"}'\")\n}"}} +40ms

Database Changes:

Migration       Database actionsStatus

20200512101935   statements.

You can get the detailed db changes with prisma migrate up --experimental --verbose
Or read about them in the ./migrations/MIGRATION_ID/README.md
  MigrateEngine:rpc SENDING RPC CALL {"id":3,"jsonrpc":"2.0","method":"applyMigration","params":{"projectInfo":"","force":true,"migrationId":"20200512101935","steps":[{"tag":"UpdateField","model":"Post","field":"metafields","arity":"Required"},{"tag":"CreateDirective","location":{"path":{"tag":"Field","model":"Post","field":"metafields"},"directive":"default"}},{"tag":"CreateArgument","location":{"tag":"Directive","path":{"tag":"Field","model":"Post","field":"metafields"},"directive":"default"},"argument":"","value":"\"'{\\\"foo\\\": \\\"bar\\\"}'\""}],"sourceConfig":"datasource db {\n  provider = \"postgresql\"\n  url      = \"postgres://example:example@localhost:5432/example\"\n}\n\ngenerator client {\n  provider = \"prisma-client-js\"\n}\n\nmodel Post {\n  id         Int     @default(autoincrement()) @id\n  title      String\n  content    String?\n  metafields Json    @default(\"'{\\\"foo\\\": \\\"bar\\\"}'\")\n}"}} +42ms
  MigrateEngine:rpc {
  MigrateEngine:rpc   jsonrpc: '2.0',
  MigrateEngine:rpc   error: {
  MigrateEngine:rpc     code: 4466,
  MigrateEngine:rpc     message: 'An error happened. Check the data field for details.',
  MigrateEngine:rpc     data: {
  MigrateEngine:rpc       is_panic: false,
  MigrateEngine:rpc       message: 'Failure during a migration command: Connector error. (error: Error querying the database: Error querying the database: db error: ERROR: invalid input syntax for type json\n' +
  MigrateEngine:rpc         '   0: migration_core::api::ApplyMigration\n' +
  MigrateEngine:rpc         '           with migration_id="20200512101935"\n' +
  MigrateEngine:rpc         '             at migration-engine/core/src/api.rs:77)',
  MigrateEngine:rpc       backtrace: null
  MigrateEngine:rpc     }
  MigrateEngine:rpc   },
  MigrateEngine:rpc   id: 3
  MigrateEngine:rpc } +59ms
 ERROR  Oops, an unexpected error occured!
Failure during a migration command: Connector error. (error: Error querying the database: Error querying the database: db error: ERROR
: invalid input syntax for type json
   0: migration_core::api::ApplyMigration
           with migration_id="20200512101935"
             at migration-engine/core/src/api.rs:77)

Also notable is that the string escaping seem's broken in the migration README as well:
ALTER TABLE "public"."Post" ALTER COLUMN "metafields" SET DEFAULT '{\"foo\": \"bar\"}';

Expected behavior
I'd expect the default for the column to be set in the database.
Prisma information
This is happening on 2.0.0-beta.4 and 2.0.0-alpha.1206:
@prisma/cli          : 2.0.0-alpha.1206
Current platform     : darwin
Query Engine         : query-engine 947599a1413bc514e275905d562b50200bac990b (at /Users/airhorns/Code/prisma-json-test/node_modules/@prisma/cli/query-engine-darwin)
Migration Engine     : migration-engine-cli 947599a1413bc514e275905d562b50200bac990b (at /Users/airhorns/Code/prisma-json-test/node_modules/@prisma/cli/migration-engine-darwin)
Introspection Engine : introspection-core 947599a1413bc514e275905d562b50200bac990b (at /Users/airhorns/Code/prisma-json-test/node_modules/@prisma/cli/introspection-engine-darwin)
Format Binary        : prisma-fmt 947599a1413bc514e275905d562b50200bac990b (at /Users/airhorns/Code/prisma-json-test/node_modules/@prisma/cli/prisma-fmt-darwin)

Environment & setup

OS: Mac OS
Database: PostgreSQL
Prisma version: above
Node.js version: v13.7.0

I created an issue about this last week because I suspected it would cause problems: https://github.com/prisma/prisma-engines/issues/731
We will try to work on it as soon as possible, thanks for reporting this :)


Hamburger is sitting below the title bar

When starting a new ignite project, the Hamburger icon is sitting below the main Nav Bar.
Welllllll, it just might be.  Do me a favor and check the following.

[ ] Issue does not already exist
Identify exactly what aspect your issue is about

[x ] ignite base application
[ ] ignite the cli
[ ] ignite generated code

Also, for the quickest assistance please run ignite doctor and paste in
everything (including the lines with 3 backticks).

@leesolway  - please take a look at this commit and let us know if this fixes it.  Staged for release:
https://github.com/infinitered/ignite/pull/311/commits/2aca1834f234a082c1fe75ab7b4fac5671753590

Had the same issue here and indeed the solution was to do what GantMan suggest by deleting marginTop: Metrics.doubleBaseMargin on navButtonLeft

@GantMan This is exactly how i had resolved the issue.

We'll be shipping a release tomorrow to support 0.32.0 and fix this problem.

https://github.com/infinitered/ignite/releases/tag/1.6.0


Issue with k8s.io/docs/concepts/scheduling-eviction/assign-pod-node/ in the namedNode section

This is a Bug Report
Problem:
The page has a section of nodeName which is used for node selection constraint. It says  If it is non-empty, the scheduler ignores the pod and the kubelet running on the named node tries to run the pod. This statement does not look right. The reason being, even if the pod has a nodeName field it still needs a scheduler to look for a node with a matching node name right? So how can a scheduler ignore a pod with nodeName field in its spec.
Also from the part of the sentence the kubelet running on the named node tries to run the pod., it seems as if kubelet is taking suo moto cognizance into searching for pods with matching nodeName. Is that correct?
Proposed Solution:
Change the sentence  If it is non-empty, the scheduler ignores the pod and the kubelet running on the named node tries to run the pod. to
 If it is non-empty, the scheduler ignores the pod if a named node if unavailable. Once a named node is available, the pod will be scheduled to the node and the kubelet running on the named node tries to run the pod.
Page to Update:
https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/

/sig scheduling
What's the existing behavior? It sounds like what you're intending to document is that for a Pod with nodeName set, the scheduler's behavior depends on whether or not a Node matching that nodeName is healthy.
Is that true?

If a Pod is already assigned to a Node, the scheduler doesn't have any work to do.

/sig scheduling
What's the existing behavior? It sounds like what you're intending to document is that for a Pod with nodeName set, the scheduler's behavior depends on whether or not a Node matching that nodeName is healthy.
Is that true?

@sftim that is correct. The paragraph which I have mentioned in the issue says that if the nodeName field in the podspec is non-empty, then the scheduler ignores the pod and the kubelet running on the named node tries to run the pod. There is no mention of the pod already being placed on the node. Also, I don't see any reason why scheduler ignoring the pod needs to be mentioned at all here.

https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename looks correct to me.
/triage needs-information

https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename looks correct to me.
/triage needs-information

okay consider this scenario: A new pod object is created with a non-empty nodeName field. Now this is currently not assigned to any node. If the scheduler ignores this pod simply bcoz it has a non-empty nodeName field, who will place this pod on the named node?

Got it.

nodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.

from the API definition. The scheduler is involved here and the existing text is not clear enough. Thank you for explaining @adityamandhare
/remove-triage needs-information
/kind bug
/priority important-longterm
/language en

From the suggested text, “If it is non-empty, the scheduler ignores the pod if a named node if unavailable.”
I think that's not quite right. I believe that the scheduler simply checks that there is currently a Node object with the correct name.

From the suggested text, “If it is non-empty, the scheduler ignores the pod if a named node if unavailable.”
I think that's not quite right. I believe that the scheduler simply checks that there is currently a Node object with the correct name.

okay sounds good


Replace ${workspaceRootFolderName} with ${workspaceFolderBasename}

Now that we have workspaceFolder we should replace ${workspaceRootFolderName} with ${workspaceFolderBasename}
@isidorn objections.

No objections. I think it makes sense and aligns well with what we already did for ${workspaceFolder}

@dbaeumer Not really a big deal but I noticed that there's a typo in your camelCase in both the title and the comment, ...Basename should be ....BaseName

in bash and node it is called basename. This is why I decided to name it the same. Will look if we have variables using basename as well and which style they use

We do have fileBasename. So I will call it workspaceFolderBasename


Added Skeleton reusable component

Issue Number
fixes #321

Describe the changes you've made

Describe if there is any unusual behavior (Any Warning) of your code(Write NA if there isn't)

Additional context (OPTIONAL)

Test plan (OPTIONAL)
A good test plan should give instructions that someone else can easily follow.

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] The title of my pull request is a short description of the requested changes.

Provide a Deployed link of route/page that needs to review
Preview: Deploy preview link here with the appropriate route
<!-- Please add deployed link to here text >

@Abhishek-kumar09  ping !!

This PR only contains the  Skeleton MUI reusable component and feather I will add different Skeleton components for a different section of the Application as we start integrating with the mock data otherwise we need to fake this UI in the application and I think that would not be the right approach.
is this fine @Abhishek-kumar09  @vasudevsinghal?


Add a 404 page and polish the apps page

✨

I’ve rebased the other commits out, and I’ll open a PR in a few minutes.

Wonderful, thank you @j-f1! I'll merge this one in. Thanks so much for the contribution 💖  I'll look out for the next PR.

Oops, glad I checked this out locally first. Looks like you used the wrong HTML entity code:

Awesome, thanks @j-f1! Going to merge this in for real.


Suggestions

compile sources together instead of including them in .pyx
add a nogil
mersenne.cpp needed stdint.h for me

Thanks. I'll add nogil and the pre-build hook.

I don't think you'll need the pre-build hook -- that was for the C++11 Marsenne Twister


[release-4.8] Cherrypick awsrootvolume, multiple ssh key and aws tag changes

This PR cherry-picks a bunch of changes, ref https://github.com/openshift/hypershift/pull/509#issuecomment-928164111

https://github.com/openshift/hypershift/pull/422: Not clean pick
https://github.com/openshift/hypershift/pull/489: Clean pick
https://github.com/openshift/hypershift/pull/502: Clean but an import alias changed, so needed amendment
https://github.com/openshift/hypershift/pull/512: Clean pick
https://github.com/openshift/hypershift/pull/495: Clean pick, needed because of the test changes in control-plane-operator/controllers/hostedcontrolplane/render that the following commit builds upon
https://github.com/openshift/hypershift/pull/512: Clean pick

/cc @csrwng

/approve
/lgtm

Ref https://issues.redhat.com/browse/HOSTEDCP-148


TextArea for Chat Input

Summary
TextArea has landed in Textual 0.38.0. This ticket is a feature request to update the Input widget and replace it with a TextArea that supports multi-line input.

Thank you for TextArea Darren :tada: - it's seriously impressive. You're probably well ahead of me with this one. Let me know if not and I'm happy to look into implementing this.

Thank you @juftin - feel free to tackle this if you're interested in it! I might not get around to it for a bit.

I just released 1.0.0 which uses the TextArea widget for the input 😄


Typo: "w" in front of header in foundation-datepicker.lv.js

Hi everyone,
the is a "w" at the first column in the first line of foundation-datepicker.lv.js - leading to an js-error in the debug-console.
Best regards
Tobias

fixed


DRL strategy

I have been testing the FinRL_PortfolioAllocation_NeurIPS_2020.ipynb. I have noticed that in most of the runs, the DRL trained strategy is retuning poor results as compared to the DJI Baseline stats. What area should we tune to get the DRL strategy generate better results, like better cumulative returns and higher sharp ratio? (Maybe try a different model) or add new features.
Please advise.

We have not updated it for long time. In the future, we will revise and improve it. Its model is different from others.
Please see other notebooks currently.

Basically, there are three directions; algorithm parameters, environment settings, and features. The tuning pipeline may follow like this:
You can fix a training set, a validation set, and a test set. Train the model on the training set with different algorithm parameters, environment settings, and features. Then check the model's performance on the validation set to select the best one. When you get a satisfying performance on the validation set, you may test your model on the test set.

Thank you for your suggestion!


Call own graphql server

Is there a way to call your own graphql server somehow? Worker to worker requests roundtrips are not allowed (403 error code).
Let's say I use Hono and from a route resolver wish to query the graphql server, without duplicating code, how could that be achieved?
Would be a nice feature!

@simplenotezy Worker-to-Worker fetch requests are possible with Service bindings. Did you perform the request using Service Bindings?
Cloudflare Docs: https://developers.cloudflare.com/workers/runtime-apis/fetch/

As far as I can see service bindings is for Worker A -> Worker B.
I am looking for Worker A -> Worker A

@simplenotezy I believe it would be more efficient for your worker to invoke the function directly rather than creating a GraphQL request to itself for performance optimization. Should you have an better solution, please feel free to share it with us here.


Prefix lint error with [eslint] and the violating rule

Should be at least [eslint] Parse Error ...

This should be close and reopen #58 instead.

@unional thanks for cleaning up

You are welcome. But #58 should be reopened?

@unional both issues are fixed with 0.10.13 which I pushed yesterday.

Thanks!


Can't follow instructions for repackage usage

Hey there,
I was just trying out this boilerplate but I can't follow the instructions on the site namely the ones regarding the usage of repackage. Here's what I got:
{ [Error: Error: ENOENT: no such file or directory, open '/Users/miguel/Lab/redux-webpack-boilerplate/traceur'

   { [Error: ENOENT: no such file or directory, open '/Users/miguel/Lab/redux-webpack-boilerplate/traceur']
     errno: -2,
     code: 'ENOENT',
     syscall: 'open',
     path: '/Users/miguel/Lab/redux-webpack-boilerplate/traceur' } } 'you may need to use repackage init [options]'
you may
usage: /usr/local/bin/repackage [init [options]] [options]

I'm definitely a noob in jsland so any help is appreciated. Thanks!

@brecke - Thanks for opening this issue, I'm actively developing on these projects daily and you are the first beta tester. =)
Documentation is weak at the moment since the interfaces may change but I am using both this boilerplate and repackage in production systems and will be improving their documentation. I'll give some inline documentation for its current state here that can serve as the basis for expanded documentation on the next release. Jump to bottom if you don't care about the details.
repackage
For now the best way to use repackage is to install it globally npm i -g repackage. Its primary purpose is to enhance package.json / npm as the primary build system (instead of grunt or gulp). The reason I created it is because out of the box, the npm scripts section is not cross-platform in relation to setting environment variables on script execution (windows requires set NODE_ENV=development&& npm run <script> and linux uses NODE_ENV=development npm run <script>. Repackage fixes these issues by looking in your projects src/package/ directory and compiling any files (js or json) into that section in your project. It merges the compiled output with your current package.json. For the scripts section, it checks to see if the current platform is Windows and if so will replace the linux variant of setting environment variables with the windows variant and the new package.json will get a scripts section that works on the current OS.  If you'd like to see the scripts package it is compiling, take a look at the boilerplates src/package/scripts.js
At this time, repackage expects that you have a .repackagerc configuration file in the root of the project.  The contents of my file looks like:
.repackagerc
{ "username": "cchamberlain"
, "organization": "cchamberlain"
, "full": "Cole Chamberlain"
, "email"<EMAIL_ADDRESS>}

This file is used to configure package.json settings specific to the library author. I plan to make this file optional / auto-generated and also allow it to be placed in your home directory but I haven't gotten there yet.  For now just drop that into the project root (feel free to modify in your fork to match your github info).
Once this file exists you should be able to run repackage then npm run start-hot and see it build.
I'd be grateful for any feedback you could provide as I want to improve this user experience.
TL;DR;

Put .repackagerc in root of repo

From root of repo in CLI:

npm i -g repackage
repackage
npm i
npm run start-hot

I'm still getting the same error running repackage :-/ Does it work for you following those strict instructions? I might be missing something here, probably something really obvious :)

It looks like its having some sort of failure in transpiling given the references to traceur (I use babel across the board so the traceur bit stands out as strange).   Will try to figure it out later.

Thinking it must be NODE_ENV related, can you try from command line NODE_ENV=hot npm run start-hot.
Most my testing has been on Windows so thinking that may be where the diff is.


[Improve] Related app release: LanuchState change to ReleaseState

Currently in streampark, a job must go through a release process before starting. The current release process is called "Lanuch", and the release state is called "lanuch-state". The expression is not accurate and needs to be changed to "release-xxx".
What changes were proposed in this pull request
Issue Number: close #2366

Brief change log

Verifying this change

This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

Does this pull request potentially affect one of the following parts

Dependencies (does it add or upgrade a dependency): no

cc @macksonmu @1996fanrui @wangsizhu0504 PTAL, thx.

Release is the keyword, and the anti -attraction number needs to be used in SQL

Release is a keyword, you need to use backticks in sql, for example select release

thanks for your check and review. I'll fixed it

thanks for your review


Feature Request: Account Folders

Hello,
The Problem
I like many I presume have multiple accounts, I also share YNAB with my partner who has their accounts. We also have shared accounts.

The number of accounts racks up very quickly

Shared - Spending
Shared - Bills
--- Person 1 (Spacer) ---
Person 1 - Spending - Everyday Debit
Person 1 - Spending - Credit Card
Person 1 - Savings - Savings Account
Person 1 - Savings - ISA 1
Person 1 - Savings - ISA 2
Person 1 - Savings - Old Account With Good Rates
Person 1 - Bills - Personal
--- Person 2 (Spacer) ---
Person 2 - Spending - Everyday Debit
Person 2 - Spending - Credit Card
Person 2 - Savings - Savings Account
Person 2 - Savings - ISA 1
Person 2 - Savings - ISA 2
Person 2 - Savings - Old Account With Good Rates
Person 2 - Bills - Personal

Account names are trimmed. This is what I actually see

Shared - Spendin...
Shared - Bills
--- Person 1 (Sp...
Person 1 - Spend...
Person 1 - Spend...
Person 1 - Savin...
Person 1 - Savin...
Person 1 - Savin...
Person 1 - Savin...
Person 1 - Bills...
--- Person 2 (Sp...
Person 2 - Spend...
Person 2 - Spend...
Person 2 - Savin...
Person 2 - Savin...
Person 2 - Savin...
Person 2 - Savin...
Person 2 - Bills...

At present I have shortened everything as much as I can, Initial - First few letters - Name (A - Sav - Gen..). But this is very ugly, clunky and even slows me down.
Request
What I think would be really helpful to break this out would be folders, based on the name. Back in the earlier days of GMail folders were achieved via an extension/lab based on the name. It would take a name and break on the "/". "Shared/Spending" and "Shared/Bills" to mean "Shared/" with "Spending" and "Bills" as children. By going through the accounts and sorting them into collapsible folders I can focus on what are my accounts and also keep names visible.
Ideal Account List

Shared collapsible

Spending
Bills

Person 1 collapsible

Spending collapsible

Everyday Debit
Credit Card

Savings collapsible

Savings Account
ISA 1
ISA 2
Old Account With Good Rates

Other collapsible

Personal Bills

Person 2 collapsible

Spending collapsible

Everyday Debit
Credit Card

Savings collapsible

Savings Account
ISA 1
ISA 2
Old Account With Good Rates

Other collapsible

Personal Bills

I hope I have made myself clear with what I mean.

Thanks for the request! I've made a card on our Trello board to track it there.
https://trello.com/c/ySbXLvH5

We're going to try and track all enhancements in trello, thanks for the request!


I always get ERROR instead of Valid or Invalid

What to do

I have no clue what you mean, give some context

I have installed python, requests, then i type amount of codes (10-500) and all are ERROR, not even Invalid

same here

Its the webhook, I didn't install that package thinking it wouldn't matter but it does.

Ok, i fixed the problem, i didnt install requests.txt :/


在adminserver中卸载board之后，配置config时仍然不能重新选择系统架构和安全模式

In GitLab by @cuiaq123 on Apr 30, 2020, 08:48

In GitLab by @cuiaq123 on Apr 30, 2020, 08:49
changed the description

In GitLab by @cuiaq123 on Apr 30, 2020, 08:50
changed the description

In GitLab by @cuiaq123 on Apr 30, 2020, 08:51
closed

In GitLab by @cuiaq123 on Apr 30, 2020, 08:51
卸载时需要选择清除数据


Can't sync with a snapshot

7:14PM ERR Error in validation err="wrong Block.Header.AppHash.  Expected 24B8913BEE5A6725C9D293A79C6035D56865FD104F7872360C3BBCC7F8A3473F, got 71234A360967F769B4FBB5762EB14C92F0985107E2671CCCFEB991F5D616EAC6" module=blockchain server=node
7:14PM ERR Stopping peer for error err="blockchainReactor validation error: wrong Block.Header.AppHash.  Expected 24B8913BEE5A6725C9D293A79C6035D56865FD104F7872360C3BBCC7F8A3473F, got 71234A360967F769B4FBB5762EB14C92F0985107E2671CCCFEB991F5D616EAC6" module=p2p peer={"Data":{},"Logger":{}} server=node
7:14PM INF service stop impl={"Data":{},"Logger":{}} module=p2p msg={} peer={"id":"c3b31e9ae42fdc3ce0eea91bf819707e641c05dd","ip":"<IP_ADDRESS>","port":26656} server=node
7:14PM INF service stop impl={"Logger":{}} module=p2p msg={} peer={"id":"c3b31e9ae42fdc3ce0eea91bf819707e641c05dd","ip":"<IP_ADDRESS>","port":26656} server=node
7:14PM ERR Stopping peer for error err="blockchainReactor validation error: wrong Block.Header.AppHash.  Expected 24B8913BEE5A6725C9D293A79C6035D56865FD104F7872360C3BBCC7F8A3473F, got 71234A360967F769B4FBB5762EB14C92F0985107E2671CCCFEB991F5D616EAC6" module=p2p peer={"Data":{},"Logger":{}} server=node

2:26AM INF invalid peer blockHeight=2047738 module=blockchain peer=705578c35cab12f886559951df65b419d179c0a8 server=node
2:27AM INF Inbound Peer rejected err="auth failure: handshake failed: EOF" module=p2p numPeers=12 server=node
2:27AM INF Ensure peers module=pex numDialing=0 numInPeers=0 numOutPeers=12 numToDial=48 server=node
can not find any peer with income

Following these instructions:
https://www.zetachain.com/docs/validators/setup/
https://www.zetachain.com/docs/validators/snapshot/

@gzukel @CryptoFewka

What snapshot was used?

Based on the screenshot, the snapshot is likely Mainnet and is before from before the v14.0.1 upgrade. If the node operator is attempting to start the node a binary other than zetacored v12.2.x, it will not succeed.
I recommend the node operator start the node from this particular snapshot with either the v12.2.6 or v12.2.0 zetacored binary. At the Mainnet v14 upgrade height (2074730), the zetacored binary should be switched by the operator to v14.0.1. Cosmovisor can be used to automate the switch, or it can be done manually.

Would it be possible to add a zetacored version that is compatible with the snapshot in the API response?
https://snapshots.zetachain.com/latest-snapshot?network=mainnet
Right now it's not clear: we're telling users to install the latest version of the binary, but then the snapshot is only compatible with an old version.


Issue With Height Blink

Describe the bug
While going into loading mode the height of component is slightly increased.
Expected behavior
Component height and width should be same always. (before and while loading).

fixed-with-this-commit


Make draw.io cli run headless in docker container

I try to use draw.io in a CI pipeline(bitbucket) to convert *.drawio to *.pdf and *.svg. I need to run it headless in a docker container, but unfortunately, draw.io has some dependencies to dbus library. Electron itself could be run headless with xvfb-run.
It would be nice when draw.io could be run headless inside a docker container to use it in CI pipeline.


Bug 2097586: AccessMode should stay on ReadWriteOnce

📝 Description
editing a data volume disk is not giving the data volume's initial data for access mode and volume mode
🎥 Demo
before:
https://user-images.githubusercontent.com/67270715/174075749-a7443b7b-06cf-40ae-bfe1-4813f5ff5470.mp4
after:
https://user-images.githubusercontent.com/67270715/174075783-8a1d304f-4f7d-41b2-8b46-5bb1b0978f47.mp4
Signed-off-by: Aviv Turgeman<EMAIL_ADDRESS>

/lgtm

/cherry-pick release-4.11

/cherry-pick release-4.11


[TEST] Setup performance test environment on Equinix Metal

What's the test to develop? Please describe
using terraform to automate the process of setup Equinix Metal environment to run performance test on it, just like what we've done on aws.
Describe the items of the test development (DoD, definition of done) you'd like

Please use a task list for items on a separate line with a clickable checkbox https://docs.github.com/en/issues/tracking-your-work-with-issues/about-task-lists

[ ] study terraform APIs for Equinix
[ ] try to setup the test environment
[ ] run performance test on it

Blocked by permission issue.
To access equinix through terraform, client_id and client_secret are needed.
How to get client_id and client_secret can be followed by this tutorial.
I'm unable to login to the platform in the above tutorial to get the client_id and client_secret.


Build Failed with Fatal Errors

Hi,
I am getting the error(attached image) while building the solution as specified in the readme. Couldn't find a solution in the listed Issues. Can you please help in pointing out if I am missing something?
Thanks
Deepak

3 Angle projects failed to load in the solution. You are probably missing some options in your VS installation. Was there any error dialog when you opened the solution?

This is probably caused by a missing Windows SDK. The Angle libraries target older SDKs (Windows Threshold,) while HoloJS targets newer ones (RedStone). Unfortunately this means you need to enable all of them for your installation of Visual Studio.


Cannot build from source

Want to build from source to work on adding a missing distribution (Landau distribution). Following the steps from here. Using the pip+venv workflow. Already cloned the repo and created the virtual environment, run python -m pip install numpy pytest cython pythran pybind11 meson ninja pydevtool rich-click successfully. I am getting an error when running python3 dev.py build, specifically meson.build:1:0: ERROR: Cython compiler 'cython' cannot compile programs. If I look into the log I find:
Compiler stderr:
...
  File "/home/me/.venvs/scipy-dev/lib/python3.10/site-packages/pythran/optimizations/pattern_transform.py", line 346, in <module>
    getattr(PatternTransform, attr_name) + (known_pattern,))
AttributeError: type object 'PatternTransform' has no attribute 'typePatterns'. Did you mean: 'CallPatterns'?

How can I fix this to build the development version of scipy?
OS: Ubuntu 22.04.
Python: 3.10.6

This is showing up on our CI too so is not an issue unique to you. Note before working on your new feature it is worth proposing it on the mailing list first so as to not waste effort.

meson-python new release on April 28th, but I ruled that out in gh-18393--pinning it back had no effect.
I cannot reproduce locally on two separate Linux boxes, and the failure is even showing up on ARM flavors of Linux and MacOS in CI per gh-18392, so it can't just be a compiler update on a single platform.

I'm seeing this locally. I was going to try meson-python as well, but you tried that.

I can build if I don't use Pythran. If I do use Pythran the meson log looks something like:
C++ compiler for the host machine: aarch64-linux-gnu-g++ (gcc 11.3.0 "aarch64-linux-gnu-g++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0")
C++ linker for the host machine: aarch64-linux-gnu-g++ ld.bfd 2.38
Running compile:
Working directory:  /tmp/tmp745x3ddu
Command line:  cython /tmp/tmp745x3ddu/testfile.pyx -o /tmp/tmp745x3ddu/output.exe --fast-fail

Code:
 print("hello world")
Compiler stdout:

Compiler stderr:
 Traceback (most recent call last):
  File "/root/miniconda3/envs/build-env/bin/cython", line 11, in <module>
    sys.exit(setuptools_main())
             ^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/Main.py", line 848, in setuptools_main
    return main(command_line = 1)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/Main.py", line 866, in main
    result = compile(sources, options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/Main.py", line 788, in compile
    return compile_multiple(source, options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/Main.py", line 757, in compile_multiple
    context = options.create_context()
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/Main.py", line 600, in create_context
    return Context(self.include_path, self.compiler_directives,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/Main.py", line 80, in __init__
    from . import Builtin, CythonScope
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/CythonScope.py", line 5, in <module>
    from .UtilityCode import CythonUtilityCode
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/UtilityCode.py", line 3, in <module>
    from .TreeFragment import parse_from_strings, StringParseContext
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/TreeFragment.py", line 17, in <module>
    from .Visitor import VisitorTransform
  File "Cython/Compiler/Visitor.py", line 16, in init Cython.Compiler.Visitor
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/Nodes.py", line 31, in <module>
    from .Pythran import has_np_pythran, pythran_type, is_pythran_buffer
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/Cython/Compiler/Pythran.py", line 10, in <module>
    import pythran
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/__init__.py", line 42, in <module>
    from pythran.toolchain import (generate_cxx, compile_cxxfile, compile_cxxcode,
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/toolchain.py", line 12, in <module>
    from pythran.middlend import refine, mark_unexported_functions
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/middlend.py", line 4, in <module>
    from pythran.optimizations import (ComprehensionPatterns, ListCompToGenexp,
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/optimizations/__init__.py", line 21, in <module>
    from .pattern_transform import PatternTransform
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/optimizations/pattern_transform.py", line 346, in <module>
    getattr(PatternTransform, attr_name) + (known_pattern,))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'PatternTransform' has no attribute 'typePatterns'. Did you mean: 'CallPatterns'?

I also tried to use pythran on an easier example:
def dprod(l0,l1):
    """WoW, generator expression, zip and sum."""
    return sum(x * y for x, y in zip(l0, l1))

Trying to pythranise it (pythran dprod.py) gives:
Traceback (most recent call last):
  File "/root/miniconda3/envs/build-env/bin/pythran", line 5, in <module>
    from pythran.run import run
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/__init__.py", line 42, in <module>
    from pythran.toolchain import (generate_cxx, compile_cxxfile, compile_cxxcode,
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/toolchain.py", line 12, in <module>
    from pythran.middlend import refine, mark_unexported_functions
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/middlend.py", line 4, in <module>
    from pythran.optimizations import (ComprehensionPatterns, ListCompToGenexp,
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/optimizations/__init__.py", line 21, in <module>
    from .pattern_transform import PatternTransform
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/optimizations/pattern_transform.py", line 346, in <module>
    getattr(PatternTransform, attr_name) + (known_pattern,))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'PatternTransform' has no attribute 'typePatterns'. Did you mean: 'CallPatterns'?
(build-env) root@67162ede6fe0:/io# pythran dprod.py
Traceback (most recent call last):
  File "/root/miniconda3/envs/build-env/bin/pythran", line 5, in <module>
    from pythran.run import run
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/__init__.py", line 42, in <module>
    from pythran.toolchain import (generate_cxx, compile_cxxfile, compile_cxxcode,
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/toolchain.py", line 12, in <module>
    from pythran.middlend import refine, mark_unexported_functions
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/middlend.py", line 4, in <module>
    from pythran.optimizations import (ComprehensionPatterns, ListCompToGenexp,
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/optimizations/__init__.py", line 21, in <module>
    from .pattern_transform import PatternTransform
  File "/root/miniconda3/envs/build-env/lib/python3.11/site-packages/pythran/optimizations/pattern_transform.py", line 346, in <module>
    getattr(PatternTransform, attr_name) + (known_pattern,))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'PatternTransform' has no attribute 'typePatterns'. Did you mean: 'CallPatterns'?

Installed packages:
$ pip list
Package            Version
------------------ -------
beniget            0.4.1
build              0.10.0
Cython             0.29.34
gast               0.5.4
meson              1.1.0
meson-python       0.13.1
ninja              1.11.1
numpy              1.24.3
packaging          23.1
pip                23.1.2
ply                3.11
pybind11           2.10.4
pyproject_hooks    1.0.0
pyproject-metadata 0.7.1
pythran            0.12.1
setuptools         67.7.2
wheel              0.40.0

@serge-sans-paille, it looks like something upstream in Pythran/Pythran's dependencies may be causing this. Can you shine light on the situation?

@andyfaff can you try gast==0.5.3 that fixed it for me

Released April 29th, so that makes sense, also doesn't get bumped easily in my old virtualenvs, had to make a fresh one to repro and pull in new gast.

Rolling back to gast=0.5.3 gets me:
(pythran) 192-168-1-113:scipy andrew$ pythran dprod.py
No pythran specification, nothing will be exported
CRITICAL: Chair to keyboard interface error
E: Empty spec files while generating native module
CRITICAL:pythran:Chair to keyboard interface error
E: Empty spec files while generating native module

(Not sure if that's what I'm supposed to see from a pythran call, but at least it's not the other message).

For SciPy proper, I can definitely build from source with gast 0.5.3 and it definitely fails reproducibly with 0.5.4.

This cost me an hour of fiddling around last night, couldn't understand why I couldn't build.

Yeah, intermediate build deps are a bit more annoying to intercept/pin as well. I'm not sure if we'll get a yank for that release, just replace it with a new/fixed one soon, or if we should i.e., manually pin gast for a little while in the CI jobs where we can (which, I suppose, would be CI jobs that don't lean heavily on pyproject.toml directly?).

Or turn of Pythran parts maybe through SCIPY_USE_PYTHRAN=0 until things are sorted out?

Or turn off Pythran parts maybe through SCIPY_USE_PYTHRAN=0 until things are sorted out?

Better to pin gast IMO than turn of pythran completely.

We don't have much pythran presence anyways and the parts rely on Pythran have also Cython fallbacks in case you have performance in mind.

There's a fair few places that we'd have to modify to make a pin like that, and turning off Pythran isn't necessarily that easy either.
I'd hope that the gast release would get yanked pretty quickly. @serge-sans-paille is the maintainer for both gast and pythran, so would be able to do that.
The situation may reveal a gap in pythran testing, there's presumably not a CI entry that does regular testing of it's upstream dependencies.

If I get time we could put necessary workarounds into e.g. .github/workflows/linux_meson.yml, which is probably the most important workflow, in a single commit. Then just back it out with git revert when the time comes to it.

Looks like there's an upstream pythran branch they'd like us to test as well.

So pythran 0.13.0 got released, which fixed the compatibility with gast 0.5.4, but seems to break something else:
[827/1624] Compiling C++ object scipy/stats/_stats_pythran.cpython-310-x86_64-linux-gnu.so.p/meson-generated_..__stats_pythran.cpp.o
FAILED: scipy/stats/_stats_pythran.cpython-310-x86_64-linux-gnu.so.p/meson-generated_..__stats_pythran.cpp.o
c++ -Iscipy/stats/_stats_pythran.cpython-310-x86_64-linux-gnu.so.p -Iscipy/stats -I../scipy/stats -I../../../usr/lib/python3.10/site-packages/pythran -I../../../usr/lib/python3.10/site-packages/numpy/core/include -I/usr/include/python3.10 -fvisibility=hidden -fvisibility-inlines-hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++14 -O2 -g -fPIC -DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DPYTHRAN_BLAS_NONE -Wno-cpp -Wno-deprecated-declarations -Wno-unused-but-set-variable -Wno-unused-function -Wno-unused-variable -Wno-int-in-bool-context -MD -MQ scipy/stats/_stats_pythran.cpython-310-x86_64-linux-gnu.so.p/meson-generated_..__stats_pythran.cpp.o -MF scipy/stats/_stats_pythran.cpython-310-x86_64-linux-gnu.so.p/meson-generated_..__stats_pythran.cpp.o.d -o scipy/stats/_stats_pythran.cpython-310-x86_64-linux-gnu.so.p/meson-generated_..__stats_pythran.cpp.o -c scipy/stats/_stats_pythran.cpp
In file included from ../../../usr/lib/python3.10/site-packages/pythran/xsimd/xsimd.hpp:55,
                 from ../../../usr/lib/python3.10/site-packages/pythran/pythonic/include/numpy/ceil.hpp:8,
                 from scipy/stats/_stats_pythran.cpp:34:
../../../usr/lib/python3.10/site-packages/pythran/xsimd/arch/xsimd_scalar.hpp:465:25: error: exponent has no digits
  465 |         return std::exp(0x1.26bb1cp+1f * x);
      |                         ^~~~~~~~~~~
../../../usr/lib/python3.10/site-packages/pythran/xsimd/arch/xsimd_scalar.hpp:469:25: error: exponent has no digits
  469 |         return std::exp(0x1.26bb1bbb55516p+1 * x);
      |                         ^~~~~~~~~~~~~~~~~~
../../../usr/lib/python3.10/site-packages/pythran/xsimd/arch/xsimd_scalar.hpp: In function 'float xsimd::exp10(const float&)':
../../../usr/lib/python3.10/site-packages/pythran/xsimd/arch/xsimd_scalar.hpp:465:37: error: unable to find numeric literal operator 'operator""f'
  465 |         return std::exp(0x1.26bb1cp+1f * x);
      |                                     ^~
../../../usr/lib/python3.10/site-packages/pythran/xsimd/arch/xsimd_scalar.hpp:465:37: note: use '-fext-numeric-literals' to enable more built-in suffixes

I'm seeing this in musllinux_amd64_test and the "Windows tests / cp310 (meson) fast" job.

@h-vetinari can you report that upstream?

@h-vetinari can you report that upstream?

Already did (currently only as a comment in https://github.com/serge-sans-paille/pythran/pull/2100; can be turned into an issue if I didn't overlook something obvious).

An alternative to unbreak current (already released as of now) pythran+gast would be to move to C++17. We've been ready for this for a while.
Of course, unbreaking CI should be uncoupled from such a decision, but it might be independently worthwhile and uncontroversial, hence why I'm mentioning it.
CC @rgommers @andyfaff @mckib2 @tylerjereddy

An alternative to unbreak current (already released as of now) pythran+gast would be to move to C++17. We've been ready for this for a while.

I have a sinking feeling that this consideration has become out of date; judging from  -D__USE_MINGW_ANSI_STDIO= we're using mingw for the windows builds, and presumably one that's old enough not to support C++17 😭... There's no other reason to run into
error: 'aligned_alloc' is not a member of 'std'

Oh dear, this is a bit frustrating. Isn't it also strange that we're depending on 0.13.0 instead of 0.12.x for a bug fix?

Pytrhan maintainer here: Yeah, it's frustrating, but I don't want to start maintaining different branches / releases, so I'm just releasing new version of Pythran. A bit unsound from a theoretical point of view, but that's the best I have to offer given my bandwidth :-)

@serge-sans-paille there is a problem with that: pythran 0.12.1 has the requirement gast~=0.5.0, so if gast 0.5.4 broke pythran 0.12.1, that means all scipy from-source builds are currently broken. How about you release gast 0.6.0 which is identical to 0.5.4, and then yank 0.5.4 from PyPI? That should take like 15 minutes, since it's all pure Python, and will fix all the problems here.
I can offer to help with maintaining bugfix releases and dependencies if that helps with the bandwidth issue. This is important for us though - we carefully put upper bounds on pythran in scipy release branches so that we won't be affected by future changes/regressions; but we can't be in a situation where bugfix releases of either pythran or its transitive dependencies break already released scipy versions.

Got it, I'll do a pythran 0.12.1 branch with the gast patch, that seems to be
the easiest way.

@rgommers : first attempt in https://github.com/serge-sans-paille/pythran/tree/release/0.12.2. I can tag it and release it on PyPI if it matches scipy's need.
Just to clarify the problem : I did a patch release of gast, but this had  a side effect of introducing a new global object that matches the dynamic condition know_patterns = [x for x in globals().values() if hasattr(x, "pattern")] fixed by https://github.com/serge-sans-paille/pythran/commit/f0c2777d41a71ce78969707487161b1d4555e599#diff-30bff397bd1e6eee13cca1ccfa375208bc191914a79ffdec9b62973a140e3570L326 .

@rgommers : first attempt in https://github.com/serge-sans-paille/pythran/tree/release/0.12.2. I can tag it and release it on PyPI if it matches scipy's need.

Thanks! The version specifier should be ==0.5.3 or, perhaps preferred, <=0.5.4 (not =0.5.3 with a single "=", I don't think that works). With that change, this should do the job.

@rgommers like this? (I guess you meant gast<=0.5.3)

oops, yes indeed.

release 0.12.2 tagged on github and pushed on PyPI. If I understand correctly this should fix scipy builds without needing to change anything in scipy code, correct?

Indeed. I'll restart a CI job to verify right now, but everything should be fixed. Thanks a lot!

That being said, Pythran 0.13.1 has a lot of performance improvement, you should give it a chance ;-)

Definitely. We are automatically using that on SciPy main, and will use it in SciPy 1.11.0 which is planned for early June. In conda-forge it will also be used after rebuilds. On PyPI we can't change metadata post-release though, so there's we're at <0.13.

Indeed seems all fixed, closing. Thanks everyone for helping debug this!


Unable to connect microgateway with Analytics server using Docker

Description:
Unable to connect microgateway with Analytics server using Docker
Suggested Labels:

Suggested Assignees:

Affected Product Version:
2.6.0
OS, DB, other environment details and versions:
Docker Desktop on Mac, JDK 1.8
Steps to reproduce:
I am trying to configure Analytics for APIM Microgateway. Both Analytics server and microgateway service are running on docker containers and they are linked to same network.  Got the initial config changes by following https://docs.wso2.com/display/AM250/Analytics+for+Microgateway. When microgw service is up and running and while it tries to file upload to Analytics server the following error occurs.
2019-03-26 19:59:53,159 ERROR [wso2/gateway:0.0.0] - [UploadTimerTask] [-] Error occurred while uploading the file
2019-03-26 19:59:53,229 ERROR [wso2/gateway:0.0.0] - [UploadTimerTask] [-] General SSLEngine problem analytics260<IP_ADDRESS>:9444 : {message:"General SSLEngine problem <IP_ADDRESS>:9444", cause:null}
Is there any config changes for disable SSL hostname verification between MGW and Analytics server?
My micro-gw conf file is as follows. ('analytics260' is the mapped hostname in docker-compose for Analytics server).
[analytics]
enable=true
uploadingTimeSpanInMillis=300000
uploadingEndpoint="https://analytics260:9444/analytics/v1.0/usage/upload-file"
rotatingPeriod=600000
task.uploadFiles=true
username="admin"
password="admin"
Got to know that 'disable hostname verification config is introduced for Key validation as in [1]. We can do the same for the file uploading as well [2].
[1] - https://github.com/wso2/product-microgateway/blob/bccfa845359dc5dabdea5e9dceb5152cbaf50033/components/micro-gateway-core/src/main/ballerina/gateway/endpoints/api_gateway_endpoint.bal#L29
[2] - https://github.com/wso2/product-microgateway/blob/462297e2d9e667694e990ea4b564f5eb9ab3d139/components/micro-gateway-core/src/main/ballerina/gateway/usagedata_uploader.bal#L25
Related Issues:

This is fixed with PR : https://github.com/wso2/product-microgateway/pull/346


WIP: change realmId

[ ] add link to Discord
[ ] add discord_id
[ ] add address of the DAO on mainnet

Waiting for Council members...