[Umbrella] Support  multiple versions of Apache Flink

Describe the proposal
The Sort is based on Flink 1.13 currently, but as the continuous increase of business scenarios and the rapid iteration of Flink, the need to adapt to multiple versions to support multiple sort scenarios has become increasingly strong.
Task list
The modifications involved are:

Sort-connector: abstract the connector and separate it from the flink version
manager-plugins: used to interact with the flink cluster and submit the connector jar
manager: Select different versions or clusters according to different scenarios.

InLong Component
InLong Manager, InLong Dashboard, InLong Sort
Are you willing to submit PR?

[X] Yes, I am willing to submit a PR!

Code of Conduct

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

it's a big issue, I think we could add related PR to this branch first.
https://github.com/apache/inlong/tree/flink-multi-version

#7339

duplicated with https://github.com/apache/inlong/issues/8099


hard coded feature size

I wanted to use the algorithm. However, my feature size is 51 and your algorithm can't validate this. it throws an error if features shape is not 2.
if len(data.shape) != 2:
    raise Exception("Wrong dimension for this X data. It should have only two dimensions.")

remove this statement of code

remove this statement of code

I wanted to use the algorithm. However, my feature size is 51 and your algorithm can't validate this. it throws an error if features shape is not 2.
if len(data.shape) != 2:
    raise Exception("Wrong dimension for this X data. It should have only two dimensions.")

remove this from code

This part of the code is right. It looks as if your array has 3 dimensions or more in the shape array. The algorithm only accepts two dimensions arrays shape.
Example:
batch = 1
algorithm_features = 10
Numpy Array Shape: (1, 10) - This is OK
batch= 10
algorithm_features = 51
Numpy Array Shape: (10, 51) - This is OK
But arrays with shapes (1, 10, 51), (1, 2, 10, 51) don't work. I think you have extra dimensions in your array.


adding method for delete_dir_from_storage

Hi @iamirmasoud ,
I have added method for delete_dir_from_storage for my project. could please review this PR and merge it.

Hi @iamirmasoud ,
did you go through PR ?


⚠ Bofrost.de has degraded performance

In a2a093b, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 946 ms

Resolved: Bofrost.de performance has improved in 76ae695.


Add reason parameter for wskadmin tool

For auditability reasons it would be beneficial to also specify a reason for the set limits command (why was a certain namespace throttled on a given limit).
This PR adds a reason parameter to the wskadmin tool. It is the most simple implementation where the reason value would be overwritten by each new set limits command.
{
  "_id": "<namespace>/limits",
  "firesPerMinute": 100,
  "invocationsPerMinute": 200,
  "reason": "throttle namespace on invocations per minute because of .."
}

In order to have a kind of audit trail/log available the history of changes on the /limits documents needs to be stored. Please find below a sample of the /limits document containing an audit log. However this PR does not implement an audit log but only adds a single reason parameter to the /limits document as described above.
{
  "_id": "<namespace>/limits",
  "firesPerMinute": 100,
  "invocationsPerMinute": 200,
  "reasons": [
    {
      "reason": "throttle namespace on fires per minute because of ..",
      "time": "1562317956422",
      "limits": {
        "firesPerMinute": 100
      }
    },
    {
      "reason": "throttle namespace on invocations per minute because of ..",
      "time": "1562318956422",
      "limits": {
        "invocationsPerMinute": 200
      }
    }
  ]
}

Description
This code change add an additional reason parameter to the wskadmin tool to store in addition the reason for the set limits command for auditability reasons..
Related issue and scope

[ ] I opened an issue to propose and discuss this change (#????)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[ ] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[ ] Tests
[ ] Deployment
[ ] CLI
[x] General tooling
[ ] Documentation

Types of changes

[ ] Bug fix (generally a non-breaking change which closes an issue).
[x] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[x] I signed an Apache CLA.
[x] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[ ] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

Please bring this to the dev list. Also this should likely be done on the wskadmin next tool as the plan had been to deprecate and remove this tool.

Thanks Stefan. Have a way to audit changes makes sense to me. See my previous comment though.

@rabbah Thanks for your comments. Do you know the timeline for deprecate and remove the wskadmin tool?

it has sort of slipped through the cracks - which leads to a situation like this one where functionality is added to wskadmin but not wskadmin-next.
@chetanmeh can comment - but this is a good topic for the dev list.

So far as there has not been much use of any store apart from CouchDB there was not much pressing need for doing away with wskadmin. Probably we can revisit that aspect and decide whether it makes sense to have 2 admin toolings or deprecate wskadmin and add all new features in wskadmin-next

@rabbah thanks for your comments on the dev list. So do we want to go forward with the change proposed in this PR?
Besides the change in wskadmin and the test you mentioned, what else needs to be done? Do I have to cover the wskadmin next tool in this PR as well or would this be a separate effort/PR?

I suggest:

open an Issue to cover adding this feature to -next
add a test in this PR

Codecov Report

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

@@            Coverage Diff             @@
##           master    #4564      +/-   ##
==========================================
- Coverage   83.19%   78.47%   -4.72%
==========================================
  Files         176      176
  Lines        8129     8275     +146
  Branches      547      553       +6
==========================================
- Hits         6763     6494     -269
- Misses       1366     1781     +415

Impacted Files
Coverage Δ

...core/database/cosmosdb/RxObservableImplicits.scala
0% <0%> (-100%)
:arrow_down:

...core/database/cosmosdb/CosmosDBArtifactStore.scala
0% <0%> (-95.89%)
:arrow_down:

...sk/core/database/cosmosdb/CosmosDBViewMapper.scala
0% <0%> (-92.6%)
:arrow_down:

...whisk/core/database/cosmosdb/CosmosDBSupport.scala
0% <0%> (-74.08%)
:arrow_down:

...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala
4% <0%> (-52%)
:arrow_down:

...containerpool/kubernetes/KubernetesContainer.scala
52.94% <0%> (-41.8%)
:arrow_down:

...re/database/cosmosdb/CollectionResourceUsage.scala
72.22% <0%> (-27.78%)
:arrow_down:

...e/openwhisk/core/mesos/MesosContainerFactory.scala
36.9% <0%> (-20.51%)
:arrow_down:

...in/scala/org/apache/openwhisk/common/Counter.scala
40% <0%> (-20%)
:arrow_down:

...re/containerpool/kubernetes/KubernetesClient.scala
15.63% <0%> (-9.95%)
:arrow_down:

... and 28 more

Continue to review full report at Codecov.

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

I suggest:

open an Issue to cover adding this feature to -next
add a test in this PR

Thanks for your answer. I won't have the time to continue to work on the PR this week and the following two weeks, so will most probably continue by end of August. I hope this is not a problem.

I suggest:

open an Issue to cover adding this feature to -next
add a test in this PR

@rabbah I modified the WskAdminTests to also set/query the reason when running the adjust throttles for namespace testcase, could you please have a look/review?

This was approve 9/19 but never merged. Closing as abandoned.


Make window maximizable

Sorry if this is a really obvious solution, but when I click to maximize my window on X11, it does nothing. How would I make the window maximizable?

Sorry, I figured it out immediately afterwards, the window max_size must be at least the size of the monitor

Actually it should work if you set the max_size to None 🙂


Using spring-agent java annotations are not processed

The problem here is that custom annotations (Step-Attachment) are not processed even if i use the aspectjweaver as javaagent. In my surefire settings i use another javaagent also for load time weaving:
1

-javaagent:${settings.localRepository}/org/springframework/spring-agent/2.5.6/spring-agent-2.5.6.jar -noverify

After using also aspectjweaver for annotation processing i can not see in the report neither attachments nor logging steps.
Thanks

Summon @baev

@baev is any way to combine agents?

How about this one: http://stackoverflow.com/questions/872657/how-do-i-start-my-java-program-with-more-than-one-java-agent

I did the proposed solution from stackoverflow but with no success.

http://www.jayway.com/2009/12/15/load-time-weaving-spring-and-maven/

BTW the issue is not on Allure side


Please release v0.8 version

It's confused me that example/server.rs use InterfaceBuilder, but latest 0.7.5 release has a renamed EthenetInterfaceBuilder.

It's seems this PR has changed files, but no release pushed to cargo currently.
https://github.com/smoltcp-rs/smoltcp/pull/401

There's still a few loose ends to tie before releasing 0.8
In the meantime you can refer to the examples at the v0.7.5 tag, which match the v0.7.5 public API.


sudo: modprobe: command not found

I am trying to set up the play-with-docker locally on m1 mac. I am following the instructions https://github.com/play-with-docker/play-with-docker#development and getting the error as below
sudo: modprobe: command not found
Please guide.

I don't have a mac so I can't really assist much here. Hopefully some other contributor can jump in.

@marcosnils  The issue can be closed. There is no modprobe command in Mac OS. I will test play-with-docker on ubuntu or alpine. Thank you.


Librarian tags field does not work when you hit save before blurring the field

When you type a librarian tag, and it hasn't turned "blue" it disappears right before you hit "save".

Type tag
Hit save

@mietcls I found this is a general tags field issue. The same happens for Keywords fields

Keywords are only added after either "enter" or ";". Any else in between is temporary.


Initial commit for deleting a scene within an escape room

Wrote several functions that allow you to delete a scene from an escape room

Will review when the associated backend fix PR is merged (see https://github.com/uwblueprint/cdc-backend/pull/101)


Consider renaming "master" to "main"

Many communities, both on GitHub and in the wider Git community, are considering renaming the default branch name of their repository from master. GitHub is gradually renaming the default branch of our own repositories from master to main.

source: https://github.com/github/renaming
I would like to propose considering similar change in KEDA project. The current moment seems to be a good one as there is no PR opened to mater (this is a big problem in other OSS projects).
Happy to hear the opinion of maintainers @zroubalik @tomkerkhove @ahmelsayed @jeffhollan

Supportive of this and also had same thought the other day when opening PRs

Fine by me, as long as all repos are aligned.

all repos are aligned

By this we mean all repos in kedacore?

Yeah

If we sit back and wait, GitHub will do it for us; and probably break our automation 🤓

done


(Enhancement): Adding EventBridge Rule and Lambda function to auto-update OAuth Github Token

Adding EventBridge Rule and Lambda function to auto-update OAuth Github Token when SecretsManager value is updated.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Not required.


Animator interfering with other CSS Transitions

Plunker Example:
http://plnkr.co/edit/ZTqND2?p=preview
Transitions applied to elements that do not have the au-animate attribute on them are affected by the animator in that the element is hidden immediately after the transition has completed. Bug only appears where "show.bind" condition is applied to the same element. The same issue doesnt seem to occur with if.bind.
Simple example above where a fadeIn affect ends with the element being hidden where show.bind is used.
Once the element is hidden, the transition effect no longer works if re-applied.
Bug also present in latest version of aurelia animator (1.0.0-beta.1.2.0).
Thanks

@zewa666 Can you take a look?

@EisenbergEffect @zewa666 Pull request open that should fix it.  I've tested it in a fresh skeleton without problems.
The event handlers were hanging around from the initial setup of the show attribute (since aurelia-hide is not animated). show would then remove aurelia-hide (when true) and the handlers would fire for the fade animation causing aurelia-hide to be added again (from the addClass animationend callback).
I didn't see any issues related to it but this could also happen in the leave and enter methods if they were called when no animatable class was defined (au-enter/leave[-active]).


Split etcd jobs into release branches

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/hold
code changes in distro repo need to be merged first. I should be submitting this PR as soon as I'm done testing it locally

I'll deal with the merge conflict


chore(deps): upgrade configuration

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-configuration-k8s-27-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3750

Questions ?
Please refer to the Backport tool documentation


Remove extractkernel dependency

Passing CI build tests. @rrawther can I merge this or do you want to run tests?


Added bridging functionallity to PHP.

This PR will add a couple of functions to the code so you can add this library as a PHP module and run it directly from the PHP code. I've seen that other glue codes have separate repositories, so this might not be how to implement this. I am still very early in my Rust journey, so I've not looked into multi-repository solutions.
I also did a small bug fix so the library doesn't have the name liblibmathcat.so
Best regards
Daniel

Apologies for not seeing this earlier.
The way I have been dealing with language bindings is to have a separate repo (e.g, MathCATForC, MathCATForPython) that has wrappers for that language. The idea was not to "burden" the main library with these bindings. I don't think the current setup of using separate repos is a good idea and welcome suggestions for how to manage this better.
Two ideas that have come up:

Make use of Cargo Workspaces
Make use of github submodules

If you have any thoughts on either approach or another approach, I'd appreciate your feedback. I have heard from some people that I should avoid github submodules.
Also see https://github.com/NSoiffer/MathCAT/issues/193 for another approach to language bindings.


2208 collapsed footer link groups not focusable

Summary of the changes
Gave the parent ic-section-container of grouped-links a tabindex="0" to allow tabbing. Noticed that the footer link group had a tabindex of 1 and failed a11y checks. Also that grouped-links in mobile view did not pass aria-role - 'no role on children items'.
Related issue
#2208

Hi @evenstensberg @GCHQ-Developer-530 , still working on this PR, needed to bring out of draft to run CI actions on the branch. I'll notify when ready for review.

Ready for review.

I can’t approve due security but lgtm


sensortools: Fix time in gps

time is gps is Date not number
@halemmerich FyI

Documentation says the type is Date, maybe that needs to be updated as well.

The documentation looks correct to me
new Date() instanceof Date
true
Date.now() instanceof Date
false

Ah... I got that whole thing backwards 🤓

Thanks!


Make default layer names in get_ds zero-based.

When you create a model dataset with 3 layers using nlmod.get_ds the layers are named 1, 2, 3 by default. I propose to use the Python zero-based approach and name them 0, 1, 2.
I encountered this when trying to add DataArrays to a dataset using the steps below. It took me ages to find out what was happening.

I create a model dataset with 3 layers using get_ds. The layers are numbered 1, 2, 3
I create and run a model using the dataset
I use nlmod.gwf.get_budget_da to get the budget data array using the gwf object. This returns a DataArray with the layers numbered 0, 1, 2 because it does not know the layer numbering in the dataset.
I add the DataArray from step 3 to the dataset of step 1. The first layer is removed from the DataArray and a layer with only nan's is appended at the end.

The naming 1, 2, 3 was chosen so that titles in figures are one-based ('layer 1' for the first layer). But your example shows this can cause strange errors. Therefore making layer zero-based is probably better.


private/public

editorconfig.py defines lots of functions and classes. Which ones can users rely on? e.g. glob_match() is probably meant to be internal?

Yeah, I need to document everything.


Fix msvs2019 build

the same as https://github.com/oneapi-src/oneDAL/pull/394

PCm - http://intel-ci.intel.com/ea78cb44-bbe5-f12d-8d09-8cdcd4b723a1


Confusing error with invalid partial index filter

Re: Automattic/mongoose#3864, if you try to use an invalid partial index filter, the createIndex() function falls back to trying to create the index using an insert, which then gives you a BSON serialization error because of query operators in the partial index filter: Error: key $exists must not start with '$'.
I added a test case to repro this error condition in a separate commit below, as well as a possible solution: if the mongodb server gives you an invalid partial index filter error, don't fall back to using insert. I'm not thrilled about this solution, you may be able to think of a better one, so I put it as a separate commit to make it easier.

I'm not a fan of this but I can see the point, however I need the test to pass both in a sharded and replicaset setup for me to consider this. Especially mongos can sometime give you utterly useless errors


Not showing text when tickNum is 2

In my code I have random numbers generated and added to seekBar, sometimes 2 numbers generated and the size of seekBar become two. The text under tick is not showing.
My code is:
final CharSequence[] months = {"60", "90"}; final int monthsLen = months.length; depositPeriod_SeekBar.getBuilder() .setTextArray(months) .setTickNum(monthsLen) .apply();
As you can see in the image below seekBar is not showing numbers? but it can drag and pass position correctly.

@Abdugani-Temirbaev hi, thanks for feedback，the lastest version is ok.


Api cosmetics

Now the signxml object give ability to sign and verify bunch of data pass in constructor argument. Method, algorithm, cert and rest stuff are pass as argument specific method. There Is no option to  sign or verify without creating an object. Why not create simple interface like:
sign(data, method, algorithm, key, passphrase, cert, c14n_algorithm, reference_uri, digest_algorithm)

or use pre-created obj to keep more accurate parameters. In most situation I sign and verify many  different bunch of data with same algorithm and keys. Maybe keep those parameters in fabric object and passing data direct to sign(or veryfi) method. It more intuitive.
signer_obj = signxml.xmldsig( algorithm, key, passphrase, cert)
confirmatory_obj = signxml.xmldsig( algorithm, key_pub)
signed_data1 = signer_obj.sign(data1, method)
signed_data2 = signer_obj.sign(data2, method)
signed_data3 = signer_obj.sign(data3, method)
(send_message and get response ...)
if confirmatory_obj.veryfi(response) != get_predicted_signed_part(reponse):
    raise SomeException()

I am very much open to restructuring the API toward this model (where the constructor only takes settings that it makes sense to apply to multiple invocations, while the sign and verify methods are functional/idempotent and take the data input as the first argument).
I'm afraid I don't have the time to do this right now, but contributions on this are very welcome.


Add dacast api

@Pooya-Y
thanks for your contribution,
i've cleaned up your branch, and made my own changes, and merged the work in 37c3173dd37241826878555abe5c67b18e306967


Telepresence intercepted Nuxt ^3.12 throws 404 ERR_ABORTED on random resources

Environment

Operating System: Darwin
Node Version:     v18.20.3
Nuxt Version:     3.12.4
CLI Version:      3.12.0
Nitro Version:    2.9.7
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devServer, compatibilityDate
Runtime Modules:  -
Build Modules:    -

Reproduction

Create a Nuxt 3.12 or later project
Install kubernetes and telepresence
Deploy the project to a local cluster
Intercept the cluster node with telepresence
Go to the intercepted url and refresh many times.
After some ( 6-7 ) refreshes you will get an error like this. Aborted file changes every time.

Telepresence agent logs:

Describe the bug
I have a local cluster and deployed Nuxt frontend in it. To login flow to work i need to intercept the node and work that way.
Before the nuxt version was 3.6.5 and it was okay. After updating to the 3.12.x the problem started.
I tried with a Next.js or other frameworks to see if the problem is telepresence but it works.
I created a new nuxt app and it happens.
As you can see in the "Reproduction" part after couple refresh Nuxt server starts to block the requests but the requests changes each time.
There is no extra configuration or module installed and there is nothing in the Nuxt logs.
Looking forward to for your answers
Additional context
No response
Logs
Nuxt logs:
ERROR  [unhandledRejection] write EPIPE                                                                                1:43:40 PM
at afterWriteDispatched (node:internal/stream_base_commons:160:15)
at writeGeneric (node:internal/stream_base_commons:151:3)
at Socket._writeGeneric (node:net:962:11)
at Socket._write (node:net:974:8)
at writeOrBuffer (node:internal/streams/writable:392:12)
at _write (node:internal/streams/writable:333:10)
at Writable.write (node:internal/streams/writable:337:10)
at Socket.ondata (node:internal/streams/readable:809:22)
at Socket.emit (node:events:517:28)
at Readable.read (node:internal/streams/readable:582:10)
Telepresence agent logs:
2024-08-06 06:38:08.8321 error   forward-platform-ui:9090 : !! SRV tcp <IP_ADDRESS>:59326 -> <IP_ADDRESS>:3001, Send failed: rpc error: code = Unavailable desc = transport is closing │
│  : lis=":9900"                                                                                │
│ 2024-08-06 06:38:08.8321 error   forward-platform-ui:9090 : !! SRV tcp <IP_ADDRESS>:59326 -> <IP_ADDRESS>:3001, Send of closeSend failed: send of closeSend message failed: rpc error: │
│  code = Unavailable desc = transport is closing : lis=":9900"

Console logs:

GET https://console.local.founda.dev/_nuxt/node_modules/vite-plugin-vue-inspector/src/Overlay.vue net::ERR_ABORTED 404 (Not Found)
index.mjs:4

GET https://console.local.founda.dev/_nuxt/node_modules/radix3/dist/index.mjs?v=f3b89120 net::ERR_ABORTED 404 (Not Found)

Update: after i updated the version to 3.12.4 i could get error in the Nuxt console.

Would you be able to provide a reproduction? 🙏
More info

I cannot because it requires local development environment with kubernetes and telepresence

@huang-julien can you remove the needs reproduction label ?

How should we debug the issue if we can't reproduce it? @sabasayer


Add project structure and template for native components

What changes are proposed in this pull request?
Prepare project structure for native components.
Add a maven archetype for Rust-based native components.
The native module is behind a profile native-components and is deactivated by default.
Why are the changes needed?
Add support for native components
Does this PR introduce any user facing changes?
No.

This is a great first step for introducing Rust in Alluxio!

Do you have any roadmap of rust in Alluxio ? I'm interested

alluxio-bot, merge this please


chore: update strapi to strapi@beta

I updated the branch. However, beta install require extra build deps from apk. Thus increase the image size, would like to see if there are ways to improve it.
I created a docker hub repo for this
https://hub.docker.com/r/marcoleong/strapi

Hello! I close this PR, let's work on the #121 PR

In any case thank you for this PR :)


CloudStack should have Github issues: Hey we got Issues now!

I guess the issue of not having "issues" is fixed now?


Consider Ring pie chart/doughnut chart support?

It seems also hot to use ring pie chart. Or a deviation of pie chart is also possible.

Hey @yhjor1212, with the latest version, you can now use the donut: true option on pie charts.


Frame Loses Transparency

ex.gif.zip

This... sounds rather fishy. I'm not clicking that link on account of it having two file extensions, but I'm willing to hear you out if you can tell me the actual issue.


Inspect: fixes all, by name and topology file

This should fix #1982 and fix #1958

This is still an intermediate solution. We should not need to instantiate a clab instance to query nodes by a random label...
But for now is does the trick.


generator: Add dependency on service

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?
Update ni-measurement-plugin-sdk-generator to depend on ni-measurement-plugin-sdk-service
Why should this Pull Request be merged?
It was relying on Poetry dev dependencies. No one tried installing the generator in isolation.
What testing has been done?
cd packages/generator
pipx install .
mkdir ../examples/client
cd ../examples/client
ni-measurement-plugin-client-generator -a

Should we consider adding the "develop=true" attribute to the NIMS package specified under the dev.dependencies?

Good point. I think that will help. Poetry will install a .pth link file into lib/site-packages instead of installing the whole package.
We were previously doing it this way, but we stopped because it didn't catch erroneous code that accessed files that only exist in Git and not in the distribution package. I guess we'll have to be more careful about that in the future, or reorganize the repo (again) to use the "src" package layout instead of the "flat" package layout.


Explain how to use Issues and Projects

I'm currently writing a proposal regarding how we can use git in the future. If that's okay for you, I'd also include a section about Issues/Projects :)

https://github.com/TrueDoctor/ratatosk/wiki/[Draft]-GIT-Branching-Development-Vorschlag

Thx for the reminder, will improve the stuff tomorrow and bother you on Discord with the results :)

We have started to adopt some suggestions mentioned in https://github.com/TrueDoctor/ratatosk/wiki/[Draft]-GIT-Branching-Development-Vorschlag
and improved our git hygiene.
I think the scope of this issue is well fulfilled.
Thank a lot @Ma27 for all your work


The result of reduceColors(1) followed by pickColor(0, 0)->toString() only returns rgb(0, 0, 0).

Describe the bug
The result of reduceColors(1) followed by pickColor(0, 0)->toString() only returns rgb(0, 0, 0).
Code Example
$file_path = 'img.jpg';
$image = \Intervention\Image\ImageManager::gd()->read($file_path);

$image->reduceColors(1);
echo $image->pickColor(0, 0)->toString(); // only rgb(0, 0, 0)

$image->resize(1, 1);
echo $image->pickColor(0, 0)->toString(); // correct rgb code

Environment (please complete the following information):

PHP Version: 8.4.1
OS: Docker image php:8.4.1-fpm
Intervention Image Version: 3.10.1
GD or Imagick: GD

Thanks for reporting. This seems to occur only with GD. I do not yet know what the reason for the error is, but there are already tests that verify the issue.


Separate Sensitive Settings into .env File

Is your feature request related to a problem? Please describe.
Currently, sensitive settings like passwords and webhook URLs are stored directly in config.ts (frontend) and config.json (backend). This approach has the following challenges:

Mixing Sensitive and Non-Sensitive Settings: Combining these settings makes configuration files harder to manage and increases the risk of accidental exposure.
Manual Editing Requirements: Users must manually edit these files, which can be error-prone, especially for less experienced users.
Security Risk: Sensitive data stored directly in source files increases the likelihood of accidental commits to version control.

Describe the solution you'd like
To address these issues, I propose separating sensitive settings into a .env file:

Frontend:

Replace hardcoded sensitive values in config.ts with environment variables (e.g., VITE_API_PASSWORD).
Inject these variables into the build process using tools like dotenv or native Vite environment variable support.

Backend:

Move sensitive fields (e.g., password, discordHookUrl) from config.json to a .env file.
Use a Rust library like dotenv or env_logger to load environment variables at runtime.

Implementation Steps:

Modify Configuration Files:

Replace sensitive fields in config.json and config.ts with references to environment variables.

Add Environment Variable Loader:

For the backend, integrate a library like dotenv to load variables from .env at runtime.
For the frontend, configure Vite to inject environment variables into the build process.

Provide Default .env Template:

Include a .env.example file in the repository with placeholders for required sensitive settings.

Update Documentation:

Add instructions to create a .env file based on .env.example.
Provide CLI commands or scripts to automate the creation and initialization of the .env file.

Benefits of This Approach:

Simplified Installation:

A CLI command can be used to auto-generate the .env file, reducing manual setup steps.

Enhanced Security:

Keeps sensitive data out of version control by adding .env to .gitignore.
Reduces the likelihood of exposing sensitive information accidentally.

Improved Maintainability:

Clear separation between sensitive and non-sensitive settings makes configuration files easier to manage and understand.
Aligns with industry best practices for managing sensitive application settings.

Describe alternatives you've considered

Document-Only Changes:

Adding detailed instructions to guide users on editing config.json and config.ts manually. However, this approach still risks exposing sensitive data and increases the likelihood of user errors.

Encrypting Sensitive Data:

Encrypting sensitive settings in existing files. While this would increase security, it adds unnecessary complexity and requires additional tools or services for encryption and decryption.

Additional context
Many modern frameworks and tools use .env files to manage sensitive data because they are simple, secure, and compatible with most deployment pipelines. Libraries like dotenv (for Rust and Node.js) make it easy to integrate .env files with minimal changes to the existing codebase.
This feature would align with Urocissa's goals of being efficient, user-friendly, and scalable while adhering to best practices in application security.

Thank you for raising this issue. This request has been addressed and resolved in version 0.3.0 of Urocissa. Please refer to the changelog for details on the changes and migration steps.


Added Before and After Annotation

Hi,
I just added 2 validators to check if a Date is After or Before a reference value.
If you could merge and release.
Thanks

@dgautier,
Excellent pull-request. Really liked the way you've wrote everything: code, tests, updated the readme.
I've also added you as a contributor to the library.
If you have any new ideas/requests we can discuss them.
Cheers,
Andrei


Image used on Hero class API Doc is incorrectly cropped

The image used on the Hero class API Doc is incorrectly cropped from the left side.
API Doc - https://api.flutter.dev/flutter/widgets/Hero-class.html
Image - https://flutter.github.io/assets-for-api-docs/assets/interaction/heroes.png

Image looks fine now. Hence closing this issue!


callonce is called multiple times with ignored scenario

I think this is the same issue as #2292 which was closed without a resolution. I have a feature with an ignored scenario that's called by other scenarios in the same feature. Additionally in the Background I call a shared feature with callonce
I would expect when I run the feature, the shared feature is called exactly once. Instead it is called 3 times, once at the start and again each time the ignored scenario is called.
Runnable project here: https://github.com/crazystick/karate-issue-2292
Main feature:
Feature: sample karate test script
  for help, see: https://github.com/karatelabs/karate/wiki/IDE-Support

  Background:
    * callonce read('classpath:examples/shared/shared.feature')

  Scenario: Scenario 1
    * print 'Hello from Test 1 - Scenario 1'
    * call read('@generic_print') { message: 'Test 1 - Scenario 1' }

  Scenario: Scenario 2
    * print 'Hello from Test 1 - Scenario 2'
    * call read('@generic_print') { message: 'Test 1 - Scenario 2' }

  @generic_print @ignore
  Scenario: Generic Scenario
    * print 'Hello from Generic Scenario - called by ' + message

Shared feature:
Feature: Shared Feature

  Background:

  @scenario1
  Scenario: Shared Scenario
    * print "Hello from Shared Feature - Shared Scenario"

Output:
09:33:23.460 [main] INFO  com.intuit.karate - karate.env system property was: null
09:33:23.487 [main] INFO  com.intuit.karate - >> lock acquired, begin callonce: read('classpath:examples/shared/shared.feature')
09:33:23.496 [main] INFO  com.intuit.karate - [print] Hello from Shared Feature - Shared Scenario
09:33:23.498 [main] INFO  com.intuit.karate - << lock released, cached callonce: read('classpath:examples/shared/shared.feature')
09:33:23.505 [main] INFO  com.intuit.karate - [print] Hello from Test 1 - Scenario 1
09:33:23.532 [main] INFO  c.intuit.karate.core.FeatureRuntime - classpath:examples/users/users.feature - call by tag at line 16: @generic_print
09:33:23.538 [main] INFO  com.intuit.karate - >> lock acquired, begin callonce: read('classpath:examples/shared/shared.feature')
09:33:23.543 [main] INFO  com.intuit.karate - [print] Hello from Shared Feature - Shared Scenario
09:33:23.543 [main] INFO  com.intuit.karate - << lock released, cached callonce: read('classpath:examples/shared/shared.feature')
09:33:23.552 [main] INFO  com.intuit.karate - [print] Hello from Generic Scenario - called by Test 1 - Scenario 1
09:33:23.563 [main] INFO  com.intuit.karate - karate.env system property was: null
09:33:23.570 [main] INFO  com.intuit.karate - [print] Hello from Test 1 - Scenario 2
09:33:23.571 [main] INFO  c.intuit.karate.core.FeatureRuntime - classpath:examples/users/users.feature - call by tag at line 16: @generic_print
09:33:23.576 [main] INFO  com.intuit.karate - >> lock acquired, begin callonce: read('classpath:examples/shared/shared.feature')
09:33:23.582 [main] INFO  com.intuit.karate - [print] Hello from Shared Feature - Shared Scenario
09:33:23.583 [main] INFO  com.intuit.karate - << lock released, cached callonce: read('classpath:examples/shared/shared.feature')
09:33:23.587 [main] INFO  com.intuit.karate - [print] Hello from Generic Scenario - called by Test 1 - Scenario 2
---------------------------------------------------------
feature: classpath:examples/users/users.feature
scenarios:  2 | passed:  2 | failed:  0 | time: 0.0949
---------------------------------------------------------

Karate version: 1.5.0
======================================================
elapsed:   1.29 | threads:    1 | thread time: 0.10
features:     1 | skipped:    0 | efficiency: 0.07
scenarios:    2 | passed:     2 | failed: 0
======================================================

HTML report: (paste into browser to view) | Karate version: 1.5.0
file:///xxxxx/target/karate-reports/karate-summary.html
===================================================================

@crazystick two things:

things like callonce make sense when they return data (ideally JSON) that will be cached. try doing * def result = callonce read('shared.feature') and see if that makes a difference
@ignore does not apply when you use call, I thought this was documented somewhere, perhaps it needs to be

In my actual code, Shared Scenario is responsible for setting a cookie which other requests need to authenticate. There isn't really any data returned. I did try karate.callSingle but that doesn't set cookies (or not without some complicated hacking).
Yes, that's what I intended, the whole point is that Generic Scenario is called by other Scenarios but not run otherwise. Shared Feature is also not called from a runner, only used as a helper.

@crazystick until this is fixed (no ETA, PRs welcome) - here's the workaround I suggest. get the data needed for the cookie setting in the callonce or callSingle, then do a normal call and set cookies - which will not be a time-consuming operation at all. this is the pattern most teams use, also see: https://github.com/karatelabs/karate/issues/2539


fix: Making primary key compulsory for Custom Query Row Validation

fix: Making primary key compulsory for Custom Query Row Validation (#670)

Adding more datatype support for oracle custom query row validation.

/gcbrun

Closing this as stale since we merged PR #673 that makes PKs required for custom query row validations.


Feature Request: Adjust GPU fog density and colour to weather type & density, & season

Not sure if plugins can adjust one another's configs but I think it'd be cool if during winter and storms the fog were automatically set to a thick black, and during summer it were clear.
Thanks for making the plugin, this is by far my new favourite feature.

While I don't believe you can adjust the config of other plugins (I can't set Fog Depth from the GPU, for example, as far as I know), Skybox/fog colour is something that can be controlled independently of other plugins. It's something I'd love to do, but there are a couple reasons why it won't be a feature any time soon:

Changing the skybox colour is easy, changing it dynamically and smoothly is not - especially if trying to account for the three major factors of Biome (which the current Skybox plugin does already), Season, and Weather. At this time, I don't have the knowledge or skill to pull this off. With more practice in RL I may achieve it someday.

I'd have to figure out how to ensure it doesn't conflict with 117HD's skybox features, as 117HD is a very highly used plugin - battling with it for control of the skybox might cause a lot of confusion for both 117HD and 3D Weather users

Anyways, thanks for opening the issue. I'd like to leave it open as it's a question that's been asked many times and undoubtedly will be asked again, even if I'm quite far from being able to resolve it.


add list of tuples tests for Conform.Utils.merge/2

Prior to this commit we had no tests indicating the expected behaviour
of Conform.Utils.merge/2 for lists of tuples, either generic or ips,
which meant we had no way to validate fix for GH-73 or guard against
future regression. This commit adds simple tests that something merged
with itself should still be itself, which fails for 2.0.0 and passes as
of 75be712.

This is great! Thanks!


[Action] uber drivers caravan 600 miles to protest

A description of the event
uber drivers caravan 600 miles to protest
Links
https://www.vice.com/en_us/article/a35g8k/hundreds-of-uber-drivers-will-caravan-600-miles-across-california-to-demand-better-working-conditions
https://techcrunch.com/2019/08/22/hundreds-of-uber-and-lyft-drivers-to-launch-a-protest-caravan-across-california/
Relevant tags

#155


Add async overload for AuthZ RequireAssertion

cc @divega @davidfowl @blowdart

Hi @HaoK, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

80dc5759cc1f9cd447724ff068cc8253fe7b2b1c


Does ReduceLROnPlateau verbose works?

I think "verbose = 1" should write then learning rate reduced, isn't it?
Looks like now it write only if go to min_lr.
Keras from master, tensorflow, win 10.

Works fine for me. Try redirecting output to a file and see if maybe the ReduceLROnPlateau output gets overwritten by progbar or something else.

@ozabluda
You get notification every time then learning rate reduced?

Yes, the code is very straightforward, not much room for bugs:
https://github.com/keras-team/keras/blob/38231e8a434f1841b2e5027cc4a48501ac517d1e/keras/callbacks.py#L911
Did you try my suggestion in my previous comment?


make Table cells responsive on narrow widths

Changes
Several changes to improve responsive design and UX of Tables.

All columns have a non-zero min-width defined to prevent them from getting too small.

This will be overridden by user-specified min-width.

Cells will clamp automatically if the value is a string (can be explicitly enabled/disabled)

This is implemented using shadow DOM and can be controlled by the user using <DefaultCell clamp>.

Filter/sort icons will wrap into next line on narrow widths.
Filter icon is now always visible (previously only on hover).
Sort icon occupies less space.

Fixes #908 (or at least tries).
Testing
https://github.com/iTwin/iTwinUI/assets/9084735/9ac52557-4f83-49bb-a19f-290dbe7d5401
Removed failing unit tests (where everything is mocked) and added e2e tests for real interactions (column resizing and sorting).
Docs
Pending.

I just need to figure out this weird issue with undefined/NaN widths

Could you elaborate on how to repro this? I'm not sure on which element is this happening and under what conditions.

It can be seen on the column header cells if you pass minWidth: undefined to a column.


replace \pageref{} with \hyperref{}

It took me a bunch of tries (and actually reading about how the hyperref package works), but this now resolves #127. I confirmed that it works in both PDF and HTML versions.
It turns out that \hyperlink{} relies on a defined \hypertarget{}. However, you can also reference any existing label via a link like
\hyperref[sec:RunningSS]{Running Stock Synthesis}
to link to
\section{Running Stock Synthesis} \label{sec:RunningSS}.
We should use the option to squash the commits when merging this issue.

Wrapping up this simple change to get internal links working in HTML as well as PDF.


Avatar: legs IK does not kick in

Avatar bottom legs IK should be enabled when standing in third person mode and turning.

Note that the legs do kick in when holding an object (e.g. lightsaber)

Note that the legs do kick in when holding an object (e.g. lightsaber)


gui: Display album art in playback bar

Hey, I'm Matt! This app is great. I want to learn more about how it all fits together. I saw this comment from @pythonhacker and figured I'd take a stab at it.
My changes here are fairly basic. I saw cover_widget functions defined in files like ui/artist.rs and followed suit. I thought filling the available space would look nice and somewhat similar to the Albums tab, but an alternative design would be with rounded corners and margins around the image similar to the Home tab. Let me know if you'd like me to change this!
The current code works in most situations. I can play from a playlist:

From my saved tracks:

From a Daily Mix:

But when I play from an album view, no album art is displayed:

Thanks for taking a look!

Looks great!

Hi, thanks for the PR. I'd be open to this, but reason the cover image is not there is that the Now Playing section displays the current "playback context" -- album, artist top tracks, or playlist. We could always display the album cover, but:

I'm not sure it's always available, i.e. for playlist tracks.
If we do it, it should probably act as a separate button, leading to the album view.

We could also display the artist cover for the top tracks context, and the playlist image for the playlist context.
Thoughts?

Just my two cents, but I think having a button that acts differently in various contexts can be more confusing than its worth. Imho its not too bad to have the button show whatever album the current song is from as its another way to get more songs from the same context.

Another option could be to emulate spotify's experience. As far as I can tell the art in the spotify player shows the album but when clicked goes to whatever context the current song comes from (aka the play list, album radio, album, etc). IMHO this is confusing, but might make sense to just be what people expect coming from spotify

@jpochyla I guess I've used Spotify so much that I didn't second guess the behavior at all! I definitely like seeing the extra color in that corner.
Looking more closely at Spotify's behavior, like @Kethku described, they generally show the current track's cover art regardless of where it's played from. The track title and album art are two separate links to the source it was played from, and the artist name links to the artist.

I'm not sure it's always available, i.e. for playlist tracks.

It seems to not show up when playing directly from an album ironically, and I hoped the data plumbing could be wired up to get the image in place. Otherwise it already appears to be available even for playlists.

If we do it, it should probably act as a separate button, leading to the album view.

It's your call! If this project is thought of as Native Spotify, then maybe we mimic their UX. I think another option is breaking up the links a little differently -- album art to album, artist name to artist, and track name to playback source.
Granted I don't think the current behavior is bad. You're viewing the now playing content in that corner, and the entire link takes you back to its source. It's definitely more simple than Spotify's behavior, but when the mouse hovers over the cover art, the entire button lights up making it pretty clear it's a unified button.
Thanks for the feedback.

Fair enough, thanks a lot for the extensive rationale! I've pushed a fix for the album tracks case, let's merge this! ❤


Make builtin openssl optional on windows, save 1M runtime size

And user can enable built-in openssl anytime by passing "openssl=builtin" to scons
Save 1.2M runtime size on windows for games don't require ssl capability

It looks like this PR is still relevant, but it needs to be rebased before it can be merged.

I think openssl is already optional for Windows actually, provided you use openssl=no. At least it works on Linux and the platform/*/detect.py are not that different.


Dequeue op loses TensorShape

I am not able to find related issues online.
Operating System:
Ubuntu, Mac OSX
Installed version of CUDA and cuDNN:
CUDA 7.5, cuDNN v5.1
If installed from binary pip package, provide:

A link to the pip package you installed:
TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl
The output from python -c "import tensorflow; print(tensorflow.__version__)".
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally
0.11.0rc0

To reproduce the problem:
a = tf.placeholder(dtype=tf.int32, shape=[None, 10])
print a.get_shape()
queue = tf.FIFOQueue(20, dtypes=[tf.int32])
queue.enqueue([a])
b = queue.dequeue()
print b.get_shape()
The first print output <?, 10>, which is OK, and there is a TensorShape for a.
But the second print output is <unknown>, and there is no TensorShape for b.
TensorShape information is lost after dequeue operation.
And this TensorShape is required in LSTM cell class.
Can we add this TensorShape information back to the dequeued tensors?
Thanks.

Have you tried tf.train.batch?

@ebrevdo Thanks for the reply. I plan to use this FIFOqueue for the input in my evaluation graph. And I don't want to specify batch_size for my evaluation graph.
And yes, I have tf.train.batch in my training graph. And it works fine.
Thanks.

If you're reading one element at a time, why are you using a queue?
On Oct 11, 2016 1:36 PM, "Yandi Xia"<EMAIL_ADDRESS>wrote:
@ebrevdo https://github.com/ebrevdo Thanks for the reply. I plan to use
this FIFOqueue for the input in my evaluation graph. And I don't want to
specify batch_size for my evaluation graph.
And yes, I have tf.train.batch in my training graph. And it works fine.
Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/4898#issuecomment-253037713,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtim7o5Bv_qnSiMksafZ0BjTK_A02tYks5qy_NXgaJpZM4KT_tb
.

@ebrevdo
I don't specify batch size in the placeholder.
I enqueue a batch of instances into the queue (variable size of batches) each time.
And each dequeue will return a batch of data.
Thanks.

Isn't that equivalent to passing enqueue_many=True to tf.train.batch?
On Oct 11, 2016 1:50 PM, "Yandi Xia"<EMAIL_ADDRESS>wrote:

@ebrevdo https://github.com/ebrevdo
I don't specify batch size in the placeholder.
I enqueue a batch of instances into the queue (variable size of batches)
each time.
And each dequeue will return a batch of data.
Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/4898#issuecomment-253041735,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtim2H0qptO2KDqp6BJ-xqu2nKrbUgQks5qy_amgaJpZM4KT_tb
.

@ebrevdo
I don't think so.
even if using tf.train.batch with enqueue_many=True, I think a fixed batch_size need to be set, right? I really need a variable batch_size here.
Further more, I use this input method for evaluation graph. And the graph will take in-memory input, rather than TFRecord or CSV files. Therefore, I don't think tf.train.batch can solve this problem.
Thank you very much!

The batch_size is the batch size for the output; and it can be a scalar
Tensor; i.e., you can use a Placeholder for it.  tf.train.batch really just
uses a Queue underneath, it's agnostic to how you feed data.
Either way, if you're taking in-memory input, I still don't understand how
you're planning to use a queue.  Do you plan to feed input directly in one
python thread, and have the eval running in a separate thread?
On Tue, Oct 11, 2016 at 4:27 PM, Yandi Xia<EMAIL_ADDRESS>wrote:

@ebrevdo https://github.com/ebrevdo
I don't think so.
even if using tf.train.batch with enqueue_many=True, I think a fixed
batch_size need to be set, right? I really need a variable batch_size here.
Further more, I use this input method for evaluation graph. And the graph
will take in-memory input, rather than TFRecord or CSV files. Therefore, I
don't think tf.train.batch can solve this problem.
Thank you very much!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/4898#issuecomment-253076539,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtim7f5RBqbwxzN7u-G-6QmMzladFZJks5qzBtegaJpZM4KT_tb
.

@ebrevdo
It is good to know that tf.train.batch can take placeholder as input. Thanks.
"Do you plan to feed input directly in one
python thread, and have the eval running in a separate thread?"
Yes, I create a thread for enqueue, and the input of the evaluation graph is the result of dequeue. After all the data in test set is enqueued, the thread halts and waits for the evaluation to be done.
This is how TensorFlow FIFOQueue works, right? The producer/consumer style?
Thanks

Yep it is.
On Oct 11, 2016 8:18 PM, "Yandi Xia"<EMAIL_ADDRESS>wrote:

@ebrevdo https://github.com/ebrevdo
It is good to know that tf.train.batch can take placeholder as input.
Thanks.
"Do you plan to feed input directly in one
python thread, and have the eval running in a separate thread?"
Yes, I create a thread for enqueue, and the input of the evaluation graph
is the result of dequeue. After all the data in test set is enqueued, the
thread halts and waits for the evaluation to be done.
This is how TensorFlow FIFOQueue works, right? The producer/consumer style?
Thanks
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/4898#issuecomment-253108262,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtimxS9b4uqRC5MTh7qsaBaTUpMH90pks5qzFFwgaJpZM4KT_tb
.

I found the solution. Actually there is a shapes argument in tf.FIFOQueue(). Just specify the shapes there, and the TensorShape info will be kept in the tensor objects.
Thanks @ebrevdo for your help and discussion!

No, actually tf.FIFOQueue() can't take shapes like [None, 10]. Every dimension needs to be specified.
Is there any way that I can use FIFOQueue with variable batch_size without losing TensorShape information?
Thanks

When you use FIFOQueue, you don't pass in the batch shape, only the
remainder.  For example, if you pass shapes like [None, 10] to
queue.enqueue_many(), you only use shape value [10] for that component.
On Wed, Oct 12, 2016 at 12:57 PM, Yandi Xia<EMAIL_ADDRESS>wrote:

No, actually tf.FIFOQueue() can't take shapes like [None, 10]. Every
dimension needs to be specified.
Is there any way that I can use FIFOQueue with variable batch_size without
losing TensorShape information?
Thanks
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/4898#issuecomment-253320531,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABtim4uBrFLMA1skRM4BcprjAMocyTM8ks5qzTudgaJpZM4KT_tb
.

Thanks @ebrevdo!
I just found a work around to this problem. Just using set_shape() to set shape of the dequeued tensor back.
For the above example, just use:
b.set_shape([None, 10])
And then b will have a known TensorShape attribute.


Mongo/JPA AuthN event consumers

Closes #1535
Two new added modules to consume AuthN events (TGT Created) and store them.
Highlevel components are:

Repository implementations of AbstractCasEventRepository that store authN data.
a DTO object that wraps authN data and is stored into the database.
A DefaultCasEventListener that uses Spring to listen on events, turn them into the DTO and pass them to the repository for storage.

Updated docs at Configuring-Authentication-Events.md

+1 with a few comments

This is updated, but I realized I likely need add support for geolocation as well.

Need input on the following change:
I had in mind that we should also track and record geolocation. The preferred way to do this would to use javascript's navigator.geolocation object. Two problems:

The browser will prompt the user to share location if this functionality is enabled. I wonder if that prompt is going to be troublesome and/or annoying? Granted, one can always grant permissions and not have the prompt show up every time. Is that a concern?
We'll need to find a way to pass the coords from geolocation back to the server, without the possibility of one tampering with the data in between requests. What might be a good way to do so?

in response to 2, it's in the realm of user generated data, so we can do our best to ensure it wasn't manipulated, but we would have to accept the fact that we couldn't guarantee it. This is similar to the problems with DRM in consumer devices.

Fair enough; I had in mind that maybe I could come up with a scheme to encrypt the data, but I dont think it actually is possible without a migraine, and I am not even sure it's really worth doing it.

I was also able to handle 1 via turning off geolocation tracking by default, and exposing a property that would allow a deployer to enable it. Super simple. Docs are updated.

Shall we proceed?

that sounds like a good option for 1, make it optional (off by default) with a property to enable when required.


Add Sqoop export from pipe

Add functionality so that we can do a sqoop export from a scalding pipe.
This requires writing the data out in a way that sqoop can parse (probably csv)

Implemented in https://github.com/CommBank/maestro/pull/380

Has anyone used this new functionality? Can you please make sure that someone from loads tries it in one of their loads and it works for them.

@shmookey @aswinrkrishnan wanted to use this. Maybe you could check with him or @jonjuscorpion666 .

@shmookey . We have a similar requirement,will test and keep you post .

@shmookey All the fields exported is "null" at the teradata side. May be its due to the "Encode.encode(nul, _)", I tried exporting without this and it worked. Could you please look into this..?

I've had reports of this working now. A separate but related issue is that users calling sqoopExport with a type variable must add the Encode typeclass to the caller - it is not sufficient for sqoopExport to do this itself. Unfortunately, the consequences for failing to do so are not visible until runtime.

This has actually been fixed as part of 1cb61aa and 75c9521. If you still have that problem in Maestro version after 17/7 please reopen this issue or create a new one.
There is a problem for macros where they don't respect the type annotations (i.e. that something needs to be a ThriftStruct). We did some refactoring and as part of that introduced checks to prevent that from happening.


v2.5.0

Changes

Update Aave Safe app
Add Idle Safe app

Bugfixes

Fix safe app tx confirmation modal (https://github.com/gnosis/safe-react/issues/1053)
Fix an error that would result in a white screen when loading an existing safe by URL for the first time (https://github.com/gnosis/safe-react/issues/1013)

Travis automatic deployment:
https://pr1088--safereact.review.gnosisdev.com/app


Error not clear when user is registering consumer role from a different account

This error should instead say "Using an IAM role that belongs to a different account"

Hi @zsaltys, thanks for opening the issue. We'll plan acordingly


feat: integrate save the date button

✍🏻 Description

Remove design page.
Add "Save the date" button to TopNav component for both mobile and desktop.
Update styles for the "Save the date" dropdown to match the new design.
Add focus-trap to "Save the date" dropdown to improve a11y.
Add a new test to layout specs to test the dropdown.

I have had several problems trying to adapt the calendar to the mobile layout. Feel free to add any improvements on this part.
📸 Screenshots

Scenario
Desktop
Mobile

Collapsed

Expanded

🔗 URLs

Task
Mobile design (dropdown closed)
Mobile design (dropdown open)
Desktop design (dropdown closed)
Desktop design (dropdown open)

LGTM, just an a11y comment for a further iteration, at the moment the focus doesn't change to the list once the dropdown is open via keyboard.

Good catch, I've just found that it was caused by the blur event, I've removed it.


Crash when opening a 35M txt file

VSCode Version: 1.5.3
OS Version: Ubuntu

I have a text file with 13765201 lines and each line contains an int range from 0 to 20. It's about 35M. Code crashes when opening it. There are other reports on big files (like https://github.com/Microsoft/vscode/issues/6474), however, unlike in this case, Codes will warn that the file is too large there. The bad part is that you cannot click on the wrong file.

Steps to Reproduce:

open a large file like here.
then wait.

Even with the improvements in #30180 this will crash with OOM.

@innerlee we re-implemented our text buffer and the memory usage of loading a file is less. For the file you provided, the metadata for the line breaks is 30MB so we used 75MB in total. The OOM issue should be gone if the system has enough memory.

This 13MM lines file now opens fine.


What port is this listening on?

I tried the gemini port 1965 and nothing is responding from there. Also tried port 80 but no luck either.
After installing the certs and spinning up the service how do I hit the endpoints? I have a gemini browser I can test with.

It is port 1965 by default (though you can change that). Are you making a request to gemini://:1965 ?

Sorry total newb when it comes to gemini. I thought it was localhost:1965. I just tried:
gemini://:1965

And I got the following error on my browser
 Failed to connect to the
server: hostname does not
verify: x509: certificate
is not valid for any
names, but wanted to
match .

If it helps here's my Dockerfile
FROM alpine:3.13.5

RUN apk add --update nodejs nodejs-npm

RUN apk add --update openssl

COPY ./ /app

WORKDIR /app

RUN openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj '/CN=localhost'

RUN npm install

ENTRYPOINT ["node", "app.js"]

And app.js is the same as the code in the REAME.

did you try going to gemini://localhost:1965 ?

also, if you're using docker, have you exposed the port 1965?

Sorry total newb when it comes to gemini. I thought it was localhost:1965. I just tried:

also honestly same

I got it to work. Docker was exposing ports but the key was going to:
gemini://localhost:1965

nice

I'm curios why just localhost didn't work. I thought the default port was 1965. Are pages on gemini usually served on a different port?

Port 1965 is the default, in my understanding. Maybe the browser you were using didn't automatically request that port though?


Testing issue2603

For testing these config files create a valid network of two validator nodes (Val7 and val2 - the first two in Test.Genesis) so that local debugging can be done with more than just the singleNode setup.

No longer need this


page.bringToFront() sometimes causes actual browser window to come to front (non-headless, Windows)

Bug description
Steps to reproduce the problem:

Have code that calls page.bringToFront() (in my case in an infinite loop that does other things and also waits for some time)
Use Puppeteer on Windows in non-headless mode
Witness that sometimes (not always), when page.bringToFront() is called, the entire browser window comes to the front (takes focus).  The documentation for this method says "Brings page to front (activates tab)".  So it doesn't say anything about the browser window focus changing.

I don't know if it's relevant, but I am running this code from within VS Code in the debugger (running Node).
I have no idea what the circumstances are that result in this call bringing the browser to the front vs not.  As far as I can see, there is no difference in code execution path between times when it happens and times when it does not.
Also may be noteworthy that I am using puppeteer.connect() in the relevant code to connect to one that was puppeteer.launch()'ed in another Node process on the same machine.
Puppeteer version
11.0.0
Node.js version
v12.16.3
npm version
6.14.4
What operating system are you seeing the problem on?
Windows
Relevant log output
No response

We no longer support Node 12, please try this again with the latest version of Puppeteer and Node 14+.

Happens to me in Node 16.13.2 with Puppeteer 13.1.1.

This is happening to me on node v22.2.0 with puppeteer v22.10.0. Can it be re-opened @jrandolf?


Bugfix/protocol consistency

OK I have changed the approach slightly so as to preserve clarity and ergonomics as opposed to sacrificing one for the other. If you want to see what the approach was before you can take a look at the diff as of a2b4cfd


Wrong documentation around sqlite datetime / inference not taking tz into account

Setup
Versions

Rust:1.61
Diesel:2.0.0
Database:Sqlite
Operating System

Feature Flags

diesel: time

Problem Description
It looks like the documentation surrounding timestamps for Sqlite is wrong.
Specially https://github.com/diesel-rs/diesel/blob/e9a951f1dc8ae893c31002ea2e00690c91e86ce4/diesel/src/sql_types/mod.rs#L335 and https://github.com/diesel-rs/diesel/blob/e9a951f1dc8ae893c31002ea2e00690c91e86ce4/diesel/src/sql_types/mod.rs#L342
The FromSql to ToSql traits are only implemented for TimestamptzSqlite for OffsetDateTime. Which currently you have to change manually in the schema since there is no inference for it.
What are you trying to accomplish?

Allow inference to automatically detect the TZ version
Change the documentation to reflect that
(Maybe) Rename TimestamptzSqlite since it's pretty ugly, but I guess there is a reason behind that choice

I will do the change if we agree on what the behaviour should be.
Checklist

[x] I have already looked over the issue tracker  and the disussion forum  for similar possible closed issues.

[x] This issue can be reproduced on Rust's stable channel. (Your issue will be
closed if this is not the case)
[x] This issue can be reproduced without requiring a third party crate

The FromSql to ToSql traits are only implemented for TimestamptzSqlite for OffsetDateTime.

This is correct. The documentation is wrong there and needs to be changed. PR's welcome.

Which currently you have to change manually in the schema since there is no inference for it.

That's how it's currently designed as we have no way to infer the correct type here. See the corresponding discussion here for details: https://github.com/diesel-rs/diesel/pull/3087#discussion_r827332271 There is just no straight forward way to automatically infer whether a column supports time zones or not by only knowing the type name. That all written: I'm open for suggestions here.

(Maybe) Rename TimestamptzSqlite since it's pretty ugly, but I guess there is a reason behind that choice

That's mostly to indicate that this type has different semantics than the Timestamptz type from postgres. I'm open to deprecating and renaming it to something better if someone comes up with an obvious better name.

The PR is on my todo, I built a custom type of datetime that uses the offset datetime under the hood so that is also a path that works well (and if you implement Deref then is it basically the same output).
Well for sqlite we can whatever we want in the column type so we could add support for timestamptz? What do you think?
Is there really a need to differentiate? I get the idea but if we can emulate the feature of postgres it could use the same name. The only annoying thing with the name currently is that you have to import in the generated schema file, you can't just type  TimestamptzSqlite (though Timestamptz is available if postgres is enabled).

The only annoying thing with the name currently is that you have to import in the generated schema file, you can't just type TimestamptzSqlite (though Timestamptz is available if postgres is enabled).

That's something that should definitively fixed by just adding a reexport for TimestamtzSqlite in diesel::sql_types (if the sqlite feature is enabled)


Failed to import "nonebot_plugin_guild_patch"

version: 0.2.3
logs:
nonebot   | Checking for script in /app/prestart.sh
nonebot   | Running script /app/prestart.sh
nonebot   | Running inside /app/prestart.sh, you could add migrations to this file, e.g.:
nonebot   |
nonebot   | #! /usr/bin/env bash
nonebot   |
nonebot   | # Let the DB start
nonebot   | sleep 10;
nonebot   | # Run migrations
nonebot   | alembic upgrade head
nonebot   |
nonebot   | [2023-05-24 11:26:20 +0000] [1] [INFO] Starting gunicorn 20.1.0
nonebot   | [2023-05-24 11:26:20 +0000] [1] [INFO] Listening at: http://<IP_ADDRESS>:8080 (1)
nonebot   | [2023-05-24 11:26:20 +0000] [1] [INFO] Using worker: uvicorn.workers.UvicornWorker
nonebot   | [2023-05-24 11:26:20 +0000] [6] [INFO] Booting worker with pid: 6
nonebot   | {"loglevel": "INFO", "workers": 1, "bind": "<IP_ADDRESS>:8080", "graceful_timeout": 120, "timeout": 120, "keepalive": 5, "errorlog": "-", "accesslog": "-", "workers_per_core": 1.0, "use_max_workers": 1, "host": "<IP_ADDRESS>", "port": "8080"}
nonebot   | 05-24 11:26:20 [SUCCESS] nonebot | NoneBot is initializing...
nonebot   | 05-24 11:26:20 [INFO] nonebot | Current Env: prod
nonebot   | 05-24 11:26:21 [SUCCESS] nonebot | Succeeded to load plugin "echo" from "nonebot.plugins.echo"
nonebot   | 05-24 11:26:22 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_apscheduler"
nonebot   | 05-24 11:26:23 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_bing_chat"
nonebot   | 05-24 11:26:23 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_localstore"
nonebot   | 05-24 11:26:24 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_datastore"
nonebot   | 05-24 11:26:24 [SUCCESS] nonebot_plugin_access_control | Loaded plugin for: OneBot V11
nonebot   | 05-24 11:26:24 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_access_control"
nonebot   | 05-24 11:26:24 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_mcstatus" from "atribot.plugins.nonebot_plugin_mcstatus"
nonebot   | 05-24 11:26:24 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_tietie" from "atribot.plugins.nonebot_plugin_tietie"
nonebot   | 05-24 11:26:24 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_minecraft_server_check" from "atribot.plugins.nonebot_plugin_minecraft_server_check"
nonebot   | 05-24 11:26:24 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_pic" from "atribot.plugins.nonebot_plugin_pic"
nonebot   | 05-24 11:26:25 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_repeat" from "atribot.plugins.nonebot_plugin_repeat"
nonebot   | 05-24 11:26:27 [ERROR] nonebot | Failed to import "nonebot_plugin_guild_patch"
nonebot   | Traceback (most recent call last):
nonebot   |   File "/usr/local/bin/gunicorn", line 8, in <module>
nonebot   |     sys.exit(run())
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
nonebot   |     WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/base.py", line 231, in run
nonebot   |     super().run()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/base.py", line 72, in run
nonebot   |     Arbiter(self).run()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/arbiter.py", line 202, in run
nonebot   |     self.manage_workers()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/arbiter.py", line 551, in manage_workers
nonebot   |     self.spawn_workers()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/arbiter.py", line 622, in spawn_workers
nonebot   |     self.spawn_worker()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
nonebot   |     worker.init_process()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/uvicorn/workers.py", line 66, in init_process
nonebot   |     super(UvicornWorker, self).init_process()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/workers/base.py", line 134, in init_process
nonebot   |     self.load_wsgi()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
nonebot   |     self.wsgi = self.app.wsgi()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/base.py", line 67, in wsgi
nonebot   |     self.callable = self.load()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
nonebot   |     return self.load_wsgiapp()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
nonebot   |     return util.import_app(self.app_uri)
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/util.py", line 359, in import_app
nonebot   |     mod = importlib.import_module(module)
nonebot   |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
nonebot   |     return _bootstrap._gcd_import(name[level:], package, level)
nonebot   |   File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
nonebot   |   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
nonebot   |   File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
nonebot   |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
nonebot   |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
nonebot   |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
nonebot   |   File "/app/bot.py", line 27, in <module>
nonebot   |     nonebot.load_from_toml("pyproject.toml")
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/load.py", line 125, in load_from_toml
nonebot   |     return load_all_plugins(plugins, plugin_dirs)
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/load.py", line 62, in load_all_plugins
nonebot   |     return manager.load_all_plugins()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 175, in load_all_plugins
nonebot   |     return set(
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 176, in <genexpr>
nonebot   |     filter(None, (self.load_plugin(name) for name in self.available_plugins))
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 141, in load_plugin
nonebot   |     module = importlib.import_module(name)
nonebot   |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
nonebot   |     return _bootstrap._gcd_import(name[level:], package, level)
nonebot   |   File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
nonebot   |   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
nonebot   |   File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
nonebot   |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 240, in exec_module
nonebot   |     super().exec_module(module)
nonebot   |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
nonebot   |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
nonebot   |   File "/usr/local/lib/python3.11/site-packages/ELF_RSS2/__init__.py", line 8, in <module>
nonebot   |     from . import command
nonebot   |   File "<frozen importlib._bootstrap>", line 1234, in _handle_fromlist
nonebot   |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
nonebot   |   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
nonebot   |   File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
nonebot   |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
nonebot   |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
nonebot   |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
nonebot   |   File "/usr/local/lib/python3.11/site-packages/ELF_RSS2/command/__init__.py", line 1, in <module>
nonebot   |     from . import (
nonebot   |   File "<frozen importlib._bootstrap>", line 1234, in _handle_fromlist
nonebot   |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
nonebot   |   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
nonebot   |   File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
nonebot   |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
nonebot   |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
nonebot   |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
nonebot   |   File "/usr/local/lib/python3.11/site-packages/ELF_RSS2/command/add_dy.py", line 16, in <module>
nonebot   |     require("nonebot_plugin_guild_patch")  # noqa
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/load.py", line 168, in require
nonebot   |     plugin = load_plugin(name)
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/load.py", line 37, in load_plugin
nonebot   |     return manager.load_plugin(module_path)
nonebot   | > File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 154, in load_plugin
nonebot   |     raise RuntimeError(
nonebot   | RuntimeError: Module nonebot_plugin_guild_patch is not loaded as a plugin! Make sure not to import it before loading.
nonebot   | 05-24 11:26:27 [ERROR] nonebot | Failed to import "ELF_RSS2"
nonebot   | Traceback (most recent call last):
nonebot   |   File "/usr/local/bin/gunicorn", line 8, in <module>
nonebot   |     sys.exit(run())
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
nonebot   |     WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/base.py", line 231, in run
nonebot   |     super().run()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/base.py", line 72, in run
nonebot   |     Arbiter(self).run()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/arbiter.py", line 202, in run
nonebot   |     self.manage_workers()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/arbiter.py", line 551, in manage_workers
nonebot   |     self.spawn_workers()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/arbiter.py", line 622, in spawn_workers
nonebot   |     self.spawn_worker()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
nonebot   |     worker.init_process()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/uvicorn/workers.py", line 66, in init_process
nonebot   |     super(UvicornWorker, self).init_process()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/workers/base.py", line 134, in init_process
nonebot   |     self.load_wsgi()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
nonebot   |     self.wsgi = self.app.wsgi()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/base.py", line 67, in wsgi
nonebot   |     self.callable = self.load()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
nonebot   |     return self.load_wsgiapp()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
nonebot   |     return util.import_app(self.app_uri)
nonebot   |   File "/usr/local/lib/python3.11/site-packages/gunicorn/util.py", line 359, in import_app
nonebot   |     mod = importlib.import_module(module)
nonebot   |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
nonebot   |     return _bootstrap._gcd_import(name[level:], package, level)
nonebot   |   File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
nonebot   |   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
nonebot   |   File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
nonebot   |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
nonebot   |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
nonebot   |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
nonebot   |   File "/app/bot.py", line 27, in <module>
nonebot   |     nonebot.load_from_toml("pyproject.toml")
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/load.py", line 125, in load_from_toml
nonebot   |     return load_all_plugins(plugins, plugin_dirs)
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/load.py", line 62, in load_all_plugins
nonebot   |     return manager.load_all_plugins()
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 175, in load_all_plugins
nonebot   |     return set(
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 176, in <genexpr>
nonebot   |     filter(None, (self.load_plugin(name) for name in self.available_plugins))
nonebot   | > File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 141, in load_plugin
nonebot   |     module = importlib.import_module(name)
nonebot   |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
nonebot   |     return _bootstrap._gcd_import(name[level:], package, level)
nonebot   |   File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
nonebot   |   File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
nonebot   |   File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
nonebot   |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/manager.py", line 240, in exec_module
nonebot   |     super().exec_module(module)
nonebot   |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
nonebot   |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
nonebot   |   File "/usr/local/lib/python3.11/site-packages/ELF_RSS2/__init__.py", line 8, in <module>
nonebot   |     from . import command
nonebot   |   File "/usr/local/lib/python3.11/site-packages/ELF_RSS2/command/__init__.py", line 1, in <module>
nonebot   |     from . import (
nonebot   |   File "/usr/local/lib/python3.11/site-packages/ELF_RSS2/command/add_dy.py", line 16, in <module>
nonebot   |     require("nonebot_plugin_guild_patch")  # noqa
nonebot   |   File "/usr/local/lib/python3.11/site-packages/nonebot/plugin/load.py", line 170, in require
nonebot   |     raise RuntimeError(f'Cannot load plugin "{name}"!')
nonebot   | RuntimeError: Cannot load plugin "nonebot_plugin_guild_patch"!
nonebot   | [2023-05-24 11:26:27 +0000] [6] [INFO] Started server process [6]
nonebot   | [2023-05-24 11:26:27 +0000] [6] [INFO] Waiting for application startup.
nonebot   | 05-24 11:26:27 [INFO] nonebot_plugin_apscheduler | Scheduler Started
nonebot   | 05-24 11:26:27 [INFO] nonebot_plugin_datastore | 数据库初始化完成
nonebot   | [2023-05-24 11:26:27 +0000] [6] [INFO] Application startup complete.
nonebot   | [2023-05-24 11:26:33 +0000] [6] [INFO] ('<IP_ADDRESS>', 47218) - "WebSocket /onebot/v11/ws/" [accepted]
nonebot   | 05-24 11:26:33 [INFO] nonebot | OneBot V11 | Bot<PHONE_NUMBER> connected
nonebot   | [2023-05-24 11:26:33 +0000] [6] [INFO] connection open

RuntimeError: Module nonebot_plugin_guild_patch is not loaded as a plugin! Make sure not to import it before loading.

问题已解决，谢谢 @mnixry


Broken changes with latest version 3.0.1 for React Native

Using
"react-native": "~0.63.3",
"use-count-up": "~3.0.1",

No idea what happens, just crashes my entire application with no error code, I looked at the previous releases and noticed that the last 2 releases had brekaing changes, so I installed
"use-count-up": "^2.3.1"

instead because I don't need any extended features or fancy stuff, I just want to animate some text once, with no button/hooks etc.
Working when I downgrade, however I think you should check this out.

Hey @NemyaNation, I just tested in this ExpoSnack and it works as expected. Can you check it again on your side?
V3 of the component has smaller bundle size than v2 so it may be a feature that you want to consider :)

@vydimitrov  thanks for the quick response. that sounds like most likely a problem with using this with one of my other libraries, or possibly some dependencies were not resolved.
I'll investigate this issue and comment back what the problem was.
Thanks


ags4 and ags3

So, been thinking a lot about ags4, and wanting to document it, I guess I could start already with branches in the repo that is in the wiki (I have a mirror here).
But since it seems GitHub never added new features to the wiki (like branching in the wiki itself would be nice), it seems it would be more useful to move to a regular repository. Or should we instead create two directories, ags3 and ags4, and maintain the two directories in this repository? Or should we have an ags4-manual repository?
Basically, just wanted to see the general feelings regarding where to go. Overall there is a lot to document already and I would like to start separating the tasks and working on them because it's a lot of things...
NOTE: on using two directories, the sdlwiki is a complex thing, but it does store sdl2 and sdl3 as separate directories (here), this is where I picked the idea.

Branches or subfolders.
I guess the real question is what makes it easier to fetch the chm for the AGS builds.
In any case we should move the wiki contents into a real folder ASAP. I should be able to add "edit page" links to the web version, so we have easy access to make changes.

I guess the real question is what makes it easier to fetch the chm for the AGS builds.

I don't get, those will be the releases, they shouldn't change much, I guess there would be an ags3 package and an ags4 one. The issue happens if they aren't both in the same branch because then we can't have release both in a single release - or perhaps we can it will look a bit weird though.

In any case we should move the wiki contents into a real folder ASAP

You mean in this directory? Yeah, I think we could do that. Perhaps have the markdown files here directly and then have two branches - one for ags4 and another for ags3? Or two folders, one for ags4 and another for ags3?
There is also an issue of what happens to the GitHub Pages - the online version of the manual. Should it only be one for ags4 or should it be two subdirs? It's flat too, so if we want one could be the "default" one - without subdirs.

So, both in the same branch is the least contrived path to generate both version at once.
Otherwise we'd have to git clone the extra versions from their own branches, I guess. Still viable, but extra steps that could be unnecessary unless there's a good reason to keep separate branches.

Or two folders, one for ags4 and another for ags3?
There is also an issue of what happens to the GitHub Pages - the online version of the manual. Should it only be one for ags4 or should it be two subdirs? It's flat too, so if we want one could be the "default" one - without subdirs.

I think we should move all versions to subfolders, because in the future we might have the Editor search terms online, an in that case there should be a deterministic link to the version required.
The root index.html can have an http-equiv to redirect to the current version, and then I can add a dropdown with links to other versions (this is how I've seen it handled in several other versioned doc sites).
Of course, moving the contents in a subfolder will temporarily break the google results, until recrawled.

I really don't like MULTIPLE versions besides the two major ones because when looking in Google it's always the wrong (not the latest) that is crawled. This is my experience with python and cmake. Need to think a bit more.

it's always the wrong (not the latest) that is crawled

That's true 🤔... but I could add a noindex on the older versions and that should fix the aggravating outdated results.

Thinking on it again though, multiple copies in a repo means it might grow exponentially if we keep copying the whole thing every minor version.
Either we only keep major versions or the branch approach starts making sense in the long run...

Ok, I guess I'll start by working on a version without wiki.
Next I'll see what needs to be done with templates so that we can have a dropdown to switch between version.
After that we'll see how to set CI scripts so that we build both manuals at once, master branch will likely get ags4 contents, and an ags3 branch will be used to pull v3 contents on the fly. But we can decide later on the details.

I kinda like git for copying things between branches and I think the tooling that exists is fairly robust. Would it be too much to have two repositories, one for the content and other for the building of things? Essentially just moving the wiki to its own repository so we can have branches and PRs since the current wiki doesn't give the web functionality - even though it's git repository does support branches they aren't visible online.

That works too. As long as the docs content is in a branch somewhere, I can add a link to it for editing.

Alright, we now have a proof of concept in PR #251 with separate repo for contents (https://github.com/adventuregamestudio/ags-manual-source/).
Moving from wiki to raw md files means the github preview's link are not working, because they should end with .md to be recognized.
Does it matter though? I expect navigation to happen in the github pages, and users landing here only to make specific edits.
We could make a branch for ags 3, and start adding 4.x contents. Or make individual branches for both, and decomission master?
Also, should sources be here as submodules, or shoudl we pull them on the fly with a git command?

@morganwillcock do you have a suggestion here regarding handling building two manuals?

Personally, I would try to put the manual content back into the main "ags" repository, where it naturally branches with the AGS versions. This means there is no question of how to associate the manual pages with the correct AGS version and the regular CI build for AGS can be used to build the associated manual (by cloning the "ags-manual" repository and using it).
Note: With the wiki-based editing gone I am imagining that at some point in the future it will make sense to transition the manual content to a format which is directly supported by a traditional documentation build tool, so part of my reasoning for the above is to try and fit the model of the traditional tools and allow changes to AGS to also include the associated documentation changes.

I'm not against moving the doc sources back into the main repo, but the github pages will still need to be generated.
I can imagine that we'd end up with both CIs building manuals, one to build/update the web manual, and another in the ags repo to generate the chm.
But how do we get there from here? Should we halt everything and let someone well versed in CIs makes the necessary adjustments?
Or, in the meanwhile, we go forward with the ags-manual-source repo, so we can start making a branch for those ags4 edits, and then we see what to do?

the github pages will still need to be generated

Assuming the documentation is placed back with the code, there are 4 places a site can be generated from:

AGS 3 development
AGS 3 releases
AGS 4 development
AGS 4 releases

Do you just want a single site from one of those sources? Or do you want to publish more than one? (Maybe the latest AGS 3 release can be at the root of the hosting and other sites are available through sub-directories, or something like that?)
If needing to trigger a build in or push to another repository, I don't think the default access token will work, so that probably leaves using the CI user again and a personal access token, or running the builds on a schedule. Technically it would be much easier to host a site on the main ags repository which also incorporates the manuals. The downside of that is that the previous URLs which people have used aren't going to work, and there is probably no way to do a redirect that covers direct access to the old pages.

I think moving to the same repository is a bad idea and will make anytime you change a letter to rebuild the entire engine and editor and Everytime you edit the code rebuild the entire manual and webpage and such. If they are kept separate we do better use of the CI resources.
By keeping things separate we don't waste the CI and just fetch things.

I am also concerned about access: right now we may have separate access permission for editing the manual source; the wiki may be even opened for anyone with github account, as it's not hard to reset these changes. If the manual source is inside the main repository, then how do we separate permissions?
We already have a working branch association logic in e.g. templates, where template sources and ready template repo have branches corresponding to the engine/editor branches.
It does not seem to me that having manual inside the main repo would give much benefit, any change to the source format may be done within a dedicated repository as well.

By keeping things separate we don't waste the CI and just fetch things.

I imagine you can filter out tasks within a CI job based on which paths have changed.

If the manual source is inside the main repository, then how do we separate permissions?

You would just take pull requests, but I think the majority of changes will be done by people who already have access because that is what happened when the wiki version was open to anyone.

It does not seem to me that having manual inside the main repo would give much benefit, any change to the source format may be done within a dedicated repository as well.

I gave my reasoning in a previous comment.
(I was asked for my suggestion but I'm not going to argue that it be followed - if you want to do something else then you don't need any approval from me.)

I imagine you can filter out tasks within a CI job based on which paths have changed.

Uhm. This may work. I think both Cirrus and GHA have a cache system, so the way this could be done is caching the manual when it triggers a build from the markdown pages and then pulling from the cache in the other case. I think the cache would then require some way to know that nothing changed - we use cache in Cirrus for the macOS building dependencies.
I think the webpage CI can be kept in the ags-manual repository though and be triggered either manually or by some condition - say once per day if some condition changed.
But I would like to see if it's possible to keep the existing tooling instead of changing right away. After all afaict it's pandoc + Lua scripts + templates + config. It's mostly the "packaging" of this to be easy to run.

I'd really rather have it separate for organizational reasons. It's true that there were not alot of contributors to the manual, but there still were few, and besides, that is a problem of us not being to get more people into this task.
TBH I don't see much logical difference between a manual and game templates: both have to be linked to a particular engine (or rather editor) branch, and both have to be built for the release. In my view it's the similar case. And having them separate from the main repo means that these repositories may in theory be passed to other responsible sub-teams of people, and do not require to clone whole engine repo to be worked on.

I will look into this in the weekend and get it to build from @AlanDrake repository and figure how it should go, my idea is to simply build two things from the top of branches and perhaps just have some file with the name of the branches, then if more branches are required it would be just adding them in the text file and the engine will then fetch the latest release artifact that has the name with a pattern that matches the branch.


fix(#2501) Since React 18, errors on Popover and Tooltip

[x] Bug fix #2501
[ ] New feature
[ ] Chore
[ ] Breaking change
[ ] There is an open issue which this change addresses
[x] I have read the CONTRIBUTING document.
[x] My commits follow the Git Commit Guidelines
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.

[ ] I have updated the documentation accordingly.

[ ] My change requires a change to Typescript typings.

[ ] I have updated the typings accordingly.

[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

any news on this? :eyes:

@davidacevedo done


Warning for languages that don't have valid IANA subtag

Closes #143
I don't think there's a straightforward way to check for warnings in the tests_v1 setup so I only verified this manually - with no languages specified, with multiple valid languages specified, with multiple languages specified one of which has no code, with multiple languages specified one of which has an invalid code.

Added some tests and fixed the default lang issue.
@MartijnR would be great if you could take a quick glance at the tests and make sure this does what you expect and that you're ok with the way the warning is framed.

Looks great me. 👍
Thanks for adding this. Really cool to get forms out there where we can sync UI and form languages.