Set min cluster version for filtering to 2.4.0

Signed-off-by: Martin Gaievski<EMAIL_ADDRESS>Description
Need to update min supported version to 2.4.0 and remove related bwc test after merging filtering feature to 2.x (https://github.com/opensearch-project/k-NN/pull/589).
Initially it wasn't required as filtering feature went to main (3.0.0) and 2.x (2.4) did have it. Only after feature got backported to 2.x we can adjust min cluster version in main to 2.4.0, now it matches same in 2.x branch. Bwc test is not required as all versions that we support for rolling upgrade have filtering feature (they are 2.4+ and any of 3.x in future). This PR does not require backport to 2.x
Issues Resolved
https://github.com/opensearch-project/k-NN/issues/376
Check List

[X] All tests pass
[X] Commits are signed as per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #592 (4fb44a5) into main (5bb7a3f) will decrease coverage by 0.25%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##               main     #592      +/-   ##
============================================
- Coverage     84.77%   84.51%   -0.26%
+ Complexity     1059     1054       -5
============================================
  Files           149      149
  Lines          4301     4301
  Branches        382      382
============================================
- Hits           3646     3635      -11
- Misses          480      489       +9
- Partials        175      177       +2

Impacted Files
Coverage Δ

...rg/opensearch/knn/index/query/KNNQueryBuilder.java
84.21% <100.00%> (ø)

...va/org/opensearch/knn/index/KNNCircuitBreaker.java
60.00% <0.00%> (-20.00%)
:arrow_down:

...ain/java/org/opensearch/knn/index/KNNSettings.java
80.88% <0.00%> (-2.21%)
:arrow_down:

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

Leaving it as a draft for now, there are some problems with building snapshot artifact for 2.4.0, and the latest one that is available doesn't have filtering feature and failing BWC for 2.4.0

The description explain the min version check, but can you explain why we are removing BWC test?

I think we still need bwc test.

Approving the PR. As this change is not going to be backported to 2.x branch, and our rolling upgrade test will pick latest version from 2.x which is 2.4 and upgrade to main version(3.0) both of them have filtering support.

Approving the PR. As this change is not going to be backported to 2.x branch, and our rolling upgrade test will pick latest version from 2.x which is 2.4 and upgrade to main version(3.0) both of them have filtering support.

Shouldn't we made a change in the test to pick <2.4 version for the test?

I think we still need bwc test.

I doubt we do. We had created BWC in 2.x, for main (3.0.0) is isn't required as the only version supported by rolling upgrade 2.4 and main both have filtering feature.
I'm not doing backport for this PR so bwc test in 2.x remains unchanged

I think we still need bwc test.

I doubt we do. We had created BWC in 2.x, for main (3.0.0) it isn't required as the only version supported by rolling upgrade is 2.4. Both 2.4 and main have filtering feature. I'm not doing backport for this PR so bwc test in 2.x remains unchanged

We can remove min version check entirely then.

Discussed offline, we can remove check for min cluster version as it was only required for bwc.

I think we still need bwc test.

I doubt we do. We had created BWC in 2.x, for main (3.0.0) it isn't required as the only version supported by rolling upgrade is 2.4. Both 2.4 and main have filtering feature. I'm not doing backport for this PR so bwc test in 2.x remains unchanged

We can remove min version check entirely then.

Good point, it's not required now after we have it in 2.x. I'll remove related code in next commit

Please update the issue description as well.


Can TypeChain generate a list of contracts in addition to definitions

I'm developing scaffold-eth-typescript and eth-hooks.  I was wondering if typechain could generate a index.ts file that would generate a record of contracts to factories as an index file?
for example if your contracts include contract1.sol, yourcontract.sol', 'contract2.sol', typechain would also generate an index.ts file
export const definitions = {
'contract1`: contract1__factory
`'yourcontract`: yourcontract__factory,
 ...
}

it would help to create a development environment that would autoload contracts with types.

Hey. Yeah we definitely can look into how we can make typechain integrate better with other tools. Have you looked into eth-sdk?

@krzkaczor yes!  i'm using eth-sdk as well and they way it outputs indexes are extremely useful.
However, some of the contracts are locally generated.  Some are external contracts.

For the external contracts I'm using eth-sdk
for local contracts that will be built and tested with hardhat, I am using typechain to generate everything.  However for typing and more automatic in the library, it would be great if an index.ts was generated with the rest of the files (definitions and factories)

@krzkaczor  if you can let me know which file to look at I can contribute =)


chore: Update EDP to the version 3.7.4

Update install logic by consolidating app.yaml and install.sh since civo installer doesn't respect app.yaml if install.sh is present.
Thank you for wanting to submit a Pull Request to the Civo Kubernetes Marketplace repository!
If your pull request is to submit a new application to the marketplace, please answer the following questions:

[ ] Have you followed the guidelines in our Contributing document in setting up the application?
[ ] Have you checked that the application your submission is proposing to add does not yet exist on the Marketplace, or as a pull request to be processed?
[ ] Have you tested your application on the Civo managed Kubernetes service? Please include a screenshot.
[ ] Can you confirm that the software you are submitting licensed for use in a publicly-available Kubernetes marketplace?
[ ] Have you included the specific version of the application to be installed?

If your pull request concerns an existing Marketplace application, please make sure you have:

[x] Notified the Maintainer of the application in this pull request so that they are aware of your proposal.
[x] Outlined the changes you are proposing, and the reasons these are required (e.g. stability, compatibility with new versions of Kubernetes implementations, etc).
[x] Tested that the application works with the proposed updates applied (including a screenshot).
[x] Updated the version number of the app if that has changed.

Hello @saiyam1814 , could you assist me with merging the new version of the EDP?


action_traces is inside already confirmed?If not, how can I know that the transaction has been confirmed?

I found that some unconfirmed transactions are also in the monogdb database.

Whether a transaction is confirmed nor not depends on whether the block containing that transaction become irreversible. Normally around 330 block time are required to make a block become irreversible. Also if a block is rolled back, transactions in the block are likely applied again in other blocks. Setting a short expiration time in the transaction can make it completely fails earlier.

closed as no reply. Please ask in eosio.stackexchange.com if you have further questions.


Make cupy.linalg.solve compatible with numpy v2

Related to #8306 .
Description of changes
Now shape of b (right hand side) must be either (M,) or (..., M, K) rather than (..., M) or (..., M, K) (numpy v1).
See https://numpy.org/doc/stable/reference/generated/numpy.linalg.solve.html#numpy.linalg.solve for details.

/test head

/test mini

/test mini

/test head

LGTM.


Question: Show tooltip on click

Hi,
I need to change the behavior of the gantt chart, so that tooltip would show up on click. Is it possible to achieve somehow? Or will I have to alter the code of the plugin?
Thanks in advance!

Place this in a click listener:
activityClicked(e, act, date, row) {
act.gantt.tooltip._tooltip.style.visibility = "visible"
},

Place this in a click listener:
activityClicked(e, act, date, row) { act.gantt.tooltip._tooltip.style.visibility = "visible" },

@delcacho hi Thanks for the example, this is what I've tried and it's working with showing me the HTML element object, however this alert is shown everywhere I click and it doesn't get the activity clicked function,  would it be possible to provide an example,
Also i checked the code here but not sure to which element the click event needs to be bound to,
Thanks!
gantt.timeTable.utils.addEventListener(this,'click',(e)=>{   e.preventDefault;   alert(e.target) },true)


fix(android): use method-local ref to instance var for multi-thread safety #549

Make sure we use a final reference to the instance variables in case they are modified in another callback while being used.
Overview

Should fix: https://github.com/react-native-netinfo/react-native-netinfo/issues/549
The fix is rather simple, just keep a reference to the value before re-using it all around in the function so another callback changing the instance variables won't cause the null pointer exception nor inconsistencies with a value changed halfway through the call.
Test Plan

Tested on Google Pixel 5 (Android 12) and Pixel 2 (Android 11)

:tada: This PR is included in version 7.1.5 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add OpLine Information for Atomic Instructions

Hi! clspv does not generate OpLine information for any atomic instructions so far. Does someone have a idea of how it can be fixed?

I think clspv is not passing the debug information somewhere in the flow.
Taking an example and compiling it with --print-before-all should help identify the pass.
@CapZTr Do you want to have a look yourself? Otherwise @Rekt3421 can find sometime to look at it I think.

Hey @rjodinchr , thanks for the quick reply! This issue is fixed and I created the PR #1403 for it:-)


Added content message delivery for SubscriptionWebsocketHandler

Description

This pull-request provides new support for the subscription R5 topic based to consider content property for the delivered messages so that if content is IDONLY the web socket message to contain an id, in case of FULLREFERENCE to consider the payload of the resource. In case of no content provided the payload remain as today: EMPTY. This pull-request does not affect previous FHIR versions nor any of the existing behaviour related to web socket messages.
linked issues 5683

Quotes about findings and assumptions

Not sure about the content type if that shall be covered as well inside this pull-request

Brief change log

Updated ca.uhn.fhir.jpa.subscription.match.deliver.websocket.SubscriptionWebsocketHandler
Changed the implementation for the method handleMessage(Message<?> theMessage)
This pull-request doesn't not include unit tests for the new functionality. First draft review is required.

Verifying this change
This change added tests and can be verified as follows:

To be done after first draft review

Documentation

Does this pull-request introduce a new feature? Yes
The documentation shall be part of the official one as: https://hl7.org/fhir/valueset-subscription-payload-content.html

Hellow @jamesagnew , @fil512 , @tadgh could you please have an initial review, to confirm the pull-request is ok to be continued 👍 . Thanks

@ArtyomyuS this approach looks good to me!

Going to provide additional test 👍

Hey @jamesagnew would you recommend update BaseSubscriptionDeliverySubscriberTest for the new changes or consider a new test class to fully support SubscriptionWebsocketHandler?
I challenge it as I can see the actual mocks within BaseSubscriptionDeliverySubscriberTest does not consider any of the SubscriptionWebsocketHandler implementations.
Please advice

Hello @jamesagnew sorry if the question was not clear. Shall I create a new test class like: ca.uhn.fhir.jpa.subscription.match.deliver.websocket.SubscriptionWebsocketHandlerTest? Or shall I use an existing class for the payload content testing.
Thanks for your support.

I would think putting a new test next to WebsocketWithSubscriptionIdR4Test would be the best spot - you could base your test largely on that test too

Hello @jamesagnew , provided unit tests. I thought it shall be more appropriate to have them inside hapi-fhir-jpaserver-test-r5. Please advice if there are changes required. The pull-request is ready for review.

Initial glance looks great! Once CI passes I'll give it a real review and get it merged. Thanks for the contribution!

@ArtyomyuS looks like the spotless code formatting check failed. Can you run mvn spotless:apply and then commit+push the results to your branch?

Hey @jamesagnew run the code, hopefully it works 🤞

Also looking into the check pipeline it shows success: https://github.com/hapifhir/hapi-fhir/actions/runs/7906650465/job/21582427202?pr=5692#step:4:8399

Hello @jamesagnew I guess we shall be fine now. Thank you

Hey @jamesagnew any thought on the pull-request. Thank you for the support 🙏

Hello @jamesagnew I can see we're progressing with the pull-request, is there anything I could help more here? 💪


Resolver interface changes only

These are the changes @codenamegary probably cherry picked from my previous PR. I will create branches for future features as I go.

@codenamegary what should I do with the rest of changes? Open a new repository or would this be merged as well?

@ivanstan - This isn't my repository so I can't really say. I don't have write permissions here. Will need to wait for @yswery to chime in. Probably best just to maintain the rest of the changes in your fork until you hear from him.

I closed the previous "big one" MR and started new repository "the full application" php dns server in docker. https://github.com/ivanstan/php-dns, feel free to join

So Sorry for such a delay in looking at this PR, I totally didnt get a notification (fixed now) and hence just saw this by chance
Thank you for the cleaning up for the PSR2 code style and the interface


remove IO.inspect calls

This removes the IO.inspect/1 calls that don't seem necessary.

Yikes! Thank you!

@anthonator should I go ahead and remove elixir 1.6 from the travis config? Or is this good to go as-is?


Bot-hosted lobby results in all members being in same voice channel

Any lobby hosted via the bot results in all players and broadcasters being on the same voice channel in-game, and hearing each other. Obviously, this is bad. What could possibly be causing this?
Below is an example Lobby snapshot

[ { id: Long { low: 350788683, high: 17825793, unsigned: true },
hero_id: null,
team: 4,
name: 'Bot',
slot: 0,
party_id: null,
meta_level: null,
meta_xp: null,
meta_xp_awarded: null,
leaver_status: 1,
leaver_actions: null,
channel: 6,
prize_def_index: null,
disabled_hero_id: [],
partner_account_type: 0,
enabled_hero_id: [],
coach_team: 5,
nexon_pc_bang_no: null,
nexon_pc_bang_name: null,
xp_bonuses: [],
rank_change: null,
cameraman: false,
custom_game_product_ids: [],
lobby_mvp_vote_account_id: null,
search_match_type: 0 },
{ id: Long { low: 165903706, high: 17825793, unsigned: true },
hero_id: null,
team: 0,
name: 'jasus',
slot: 1,
party_id: null,
meta_level: null,
meta_xp: null,
meta_xp_awarded: null,
leaver_status: 1,
leaver_actions: null,
channel: 6,
prize_def_index: null,
disabled_hero_id: [],
partner_account_type: 0,
enabled_hero_id: [],
coach_team: 5,
nexon_pc_bang_no: null,
nexon_pc_bang_name: null,
xp_bonuses: [],
rank_change: null,
cameraman: false,
custom_game_product_ids: [],
lobby_mvp_vote_account_id: null,
search_match_type: 0 } ]

That seems weird (and weirdly interesting)... Can you post the steps you take to create the lobby, how the players join (are they bots too or real client), if possible with code samples?

Op 19 jun. 2016 om 00:07 heeft Jay Fialkowski<EMAIL_ADDRESS>het volgende geschreven:
Any lobby hosted via the bot results in all players and broadcasters being on the same voice channel in-game, and hearing each other. Obviously, this is bad. What could possibly be causing this?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I'll do my best to share the relevant bits. The bot is controlled remotely via Discord.
User creates a lobby via command in discord. That executes:
Dota2.createPracticeLobby(password,options, 			function(err, body){ 				if (body && body['result'] == 1) { 					Dota2.joinPracticeLobbyTeam(); 					Dota2.joinChat("Lobby_"+Dota2.Lobby.lobby_id,3); 					success(); 				} 				else { 					console.log(err); 					failure(); 				} 			});
options looks like:

{ game_name: 'title',
server_region: 0,
game_mode: 2,
league_id: 4570,
series_type: 1,
allow_cheats: false,
fill_with_bots: false,
allow_spectating: true,
pass_key: 'pass',
cm_pick: 0,
radiant_series_wins: 0,
dire_series_wins: 0,
allchat: true }

Some settings are modified remotely as well. I don't think that would impact anything, all it does is change some of the above. Users were all real users, in client. I tried a few test lobbies with just the bot, myself and someone in the broadcaster slot. As a player, the broadcaster and I can hear each other. This happens every time. If I host a lobby myself in-client, it does not happen.
Not sure what else I can share with you that might be relevant.

Here are two logs of the lobby object, before and after launching the game. There's one person as a broadcaster, one on radiant and one on dire. The bot is in spectators. All users can hear each other in game.
https://gist.github.com/JayFialkowski/abffa74fccbbf8f6d1670c6d963ec5dd

Have you tried allchat: false?

Alright, let's look at the lobby log:

SatanBot
team: 4
channel: 6
Jasus
team: 2
channel: 0
Soranos
team: 1
channel: 6
Moxxi
team: 0
channel: 6

So there's a few things we can see here:

Your bot is in the player pool, not in a spectator slot (is confirmed by num_spectators: null)
Everyone except for the broadcaster seems to be in channel 6

The fact that everyone seems to be in channel 6 might have something to do with it.. Thing is I've no idea why they are all in the same channel or if this is normal or not.. Have you tried creating the lobby yourself, loading in the same people and comparing the lobby updates?
enum DOTA_GC_TEAM {
	DOTA_GC_TEAM_GOOD_GUYS = 0;
	DOTA_GC_TEAM_BAD_GUYS = 1;
	DOTA_GC_TEAM_BROADCASTER = 2;
	DOTA_GC_TEAM_SPECTATOR = 3;
	DOTA_GC_TEAM_PLAYER_POOL = 4;
	DOTA_GC_TEAM_NOTEAM = 5;
}

@paralin you've got some experience creating lobbies if I recall correctly, have you ever seen this problem?

Channel is to do with allchat, I believe. Something you have set to true.

Yeah guys, apparently the allchat doesn't do what I assumed it did. This was a developer error, thanks for your time!

@Crazy-Duck lol, every duck must have it's day. I totally called it.


wrap RCurl error for outdated token

make this make more sense to people that their session is out of date:
Error in RCurl::curlPerform(curl = handle$handle, .opts = curl_opts$values) :
  Stale CURL handle being passed to libcurl

Ran into this again today. upvote :+1:


Is forking supposed to work for 3.0.0?

Hey,
it looks like forking is not working right now (on master). I did not look at it very deeply (i.e., I have no clue why it is not working well) but it does not work for me. The job runs, but it seems to be after deleting the job that it fails. Here is the error:
https://gist.github.com/jipiboily/1423f7b4437ec60018f0
We are using shared connection, but I have disabled it just to make sure it was not the root cause.
Any idea?

@jipiboily what is the status of this issue?

I didn't work on this. As far as I know, it still doesn't work. There is a PR here https://github.com/QueueClassic/queue_classic/pull/216 but it wasn't reviewed or tested AFAIK.

Just curious: why does QueueClassic fork inside Worker#start?  What's the use case?
Jobs forking while doing work makes sense (for example, my jobs fork to render PDFs).
But forking to process the job queue?  Seems like it's more common to run jobs in a different process entirely (rake qc:start) or in a thread (Rails5 action cable / puma, etc).  Where's the middle ground...?


difference between the maven central apoc-core jar and the one on the release page for version 5.x

Expected Behavior (Mandatory)
That including
<dependency>
    <groupId>org.neo4j.procedure</groupId>
    <artifactId>apoc-core</artifactId>
    <version>5.2.1</version>
    <scope>runtime</scope>
</dependency>

in my project would have the same result as me manually downloading the apoc-core jar from the github releases page.
Actual Behavior (Mandatory)
Instead the version coming in through maven is missing some key functions, as compared to the one on the github page. An example of such a function which is missing in the maven central jar is apoc.coll.sort (which I ran into), but there are a lot of others also missing
How to Reproduce the Problem
set up a local docker container of neo4j, where you mount the apoc-core.jar (version 5.1 and up) you downloaded from maven central into the plugins dir of the container
apoc.coll.sort won't be available (amongst other functions which are also missing)
Steps (Mandatory)

download apoc-core.jar version 5.1 or up from maven central
launch neo4j 5.1 or up (in sync with your apoc version) in docker, and mount the apoc-core.jar in the plugins dir of the container
try to run apoc.coll.sort, or run "show functions" to see which ones are missing

Specifications (Mandatory)
not sure what to write here, apologies
Currently used versions
5.2.1
Versions

OS: mac Os 12.4
Neo4j: 5.2
Neo4j-Apoc: 5.2.1

Hey! I tried this out and couldn't reproduce the issue, are you able to share the Docker command you used with me? Thanks!

Hi Gem, thanks for your response!
We build our custom docker image using the docker maven plugin from fabric8. Below the relevant part of our project pom.xml file. As a bit of context: we build a custom docker image, based on the neo4j official community image. In our custom image we package our entire project as customer stored procedures and user functions. (rtim is our project name)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <artifactId>rtim-neo4j</artifactId>
    <version>${revision}</version>
    <packaging>jar</packaging>

    <name>RTIM neo4j</name>

    <properties>
        <revision>4.0.0-SNAPSHOT</revision>
        <docker.image.version>${project.version}</docker.image.version>
        <docker.source.directory>${project.build.directory}${file.separator}docker-source</docker.source.directory>

        <version.jdk>17</version.jdk>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven-dependency-plugin.version>3.3.0</maven-dependency-plugin.version>

        <neo4j.version>5.1.0</neo4j.version>
        <neo4j.driver.version>5.1.0</neo4j.driver.version>
        <neo4j.apoc.version>5.1.0</neo4j.apoc.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j</artifactId>
            <version>${neo4j.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.neo4j.procedure</groupId>
            <artifactId>apoc-core</artifactId>
            <version>${neo4j.apoc.version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.neo4j.procedure</groupId>
            <artifactId>apoc-common</artifactId>
            <version>${neo4j.apoc.version}</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>build</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>
                        <configuration>
                            <images>
                                <image>
                                    <name>283395560872.dkr.ecr.eu-west-1.amazonaws.com/rtim-neo4j:${docker.image.version}</name>
                                    <build>
                                        <from>neo4j:${neo4j.version}-community</from>
                                        <maintainer>The trainspotters</maintainer>
                                        <tags>
                                            <tag>latest</tag>
                                            <tag>${project.version}</tag>
                                        </tags>
                                        <assemblies>
                                            <assembly>
                                                <name>plugins</name>
                                                <targetDir>/var/lib/neo4j/plugins</targetDir>
                                                <inline>
                                                    <files>
                                                        <file>
                                                            <source>${project.build.directory}${file.separator}${project.build.finalName}.${project.packaging}</source>
                                                            <outputDirectory>.</outputDirectory>
                                                        </file>
                                                    </files>
                                                    <dependencySets>
                                                        <dependencySet>
                                                            <includes>
                                                                <include>org.neo4j.procedure:apoc-core:jar</include>
                                                                <include>org.neo4j.procedure:apoc-common:jar</include>
                                                                <include>${project.groupId}:${project.artifactId}:jar:${project.version}</include>
                                                            </includes>
                                                            <outputDirectory>.</outputDirectory>
                                                        </dependencySet>
                                                    </dependencySets>
                                                </inline>
                                            </assembly>
                                            <assembly>
                                                <name>config</name>
                                                <targetDir>/var/lib/neo4j/conf</targetDir>
                                                <inline>
                                                    <file>
                                                        <source>src/main/resources/log4j2.xml</source>
                                                    </file>
                                                </inline>
                                            </assembly>
                                        </assemblies>
                                    </build>
                                </image>
                            </images>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Cheers,
Thomas

Thanks for that, from my understanding, the APOC jar downloaded here is simply not containing all compiled dependencies needed for the other functions.
I added a few:
e.g
<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.7.1</version>
</dependency>

And
<include>com.opencsv:opencsv:jar</include>
(see list of needed on Maven central)
and was able to load the missing ones in my Docker container.
When you download the jar from github, or manually download the 'fat' jar from Maven, the dependencies (as well as APOC common) are included.
Hope this helps :)

We have done a lot of shifting around with APOC since the 4.x series, I will make a ticket for us to investigate our workflow to see if we should be altering how our Maven uploads work :)
Sorry about the hassel and thanks for letting us know :)

No worries, many thanks for looking into it and for the follow-up!

We found a core-classifier which has the same content as the jar on the release versions.
This solves the issue above.
<dependency>
    <groupId>org.neo4j.procedure</groupId>
    <artifactId>apoc-core</artifactId>
    <version>5.2.1</version>
    <scope>runtime</scope>
    <classifier>core</classifier>
</dependency>

This issues seems to resolved by the last message on Jan 25, 2023. Closing now.


Image references, Styling, Simplification, Fixes

Fix #1512
Fix #1520
Imports https://github.com/epinio/helm-charts/pull/213
Note: The simplification of the app chart is not truly tested yet. Needs a change to the chart ref and locally made chart tarball.

Codecov Report

Merging #1524 (397e43e) into main (f91183c) will decrease coverage by 42.66%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main   #1524       +/-   ##
==========================================
- Coverage   51.41%   8.75%   -42.67%
==========================================
  Files         167      83       -84
  Lines       12287    8090     -4197
==========================================
- Hits         6317     708     -5609
- Misses       5130    7336     +2206
+ Partials      840      46      -794

Flag
Coverage Δ

acceptance-api
?

acceptance-apps
?

unittests
8.75% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

main.go
0.00% <0.00%> (-100.00%)
:arrow_down:

internal/api/v1/authtoken.go
0.00% <0.00%> (-100.00%)
:arrow_down:

internal/auth/certs.go
0.00% <0.00%> (-85.00%)
:arrow_down:

internal/api/v1/application/match.go
0.00% <0.00%> (-82.36%)
:arrow_down:

internal/configurations/configurations.go
0.00% <0.00%> (-81.78%)
:arrow_down:

internal/application/secret.go
0.00% <0.00%> (-80.86%)
:arrow_down:

internal/api/v1/application/stage.go
0.00% <0.00%> (-76.63%)
:arrow_down:

internal/cli/usercmd/namespace.go
1.39% <0.00%> (-71.33%)
:arrow_down:

internal/cli/usercmd/push.go
1.49% <0.00%> (-70.15%)
:arrow_down:

internal/api/v1/application/portforward.go
0.00% <0.00%> (-69.24%)
:arrow_down:

... and 137 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 f91183c...397e43e. Read the comment docs.

Single test failure, timeout ... Running a local CI ...

Local CI had two timeout in different places, and re-running just these passed them.


Are there any options for the microphone input?

I'd like to get the input audio from the microphone and then whisper it into a regular text file

go-subgen itself doesn't have any way to process microphone input. It would be technically possible for it to process audio files and output non srt formatted text, but it's not built in currently, and wouldn't be very high on the priority list.
If you want near real time transcription, there's likely other software much better suited to that. I believe whisper.cpp has a (near) real time demo, and there is likely applications built using it that are designed for transcription that would be much easier to use.

Okay, thanks for the reply.
I saw you mention whisper.cpp in the READED.md of the project, I tried that project and would like to build it in my own Go project, but ran into some problems, have you encountered any?

I would take a look at the docker compose files in this repo to see how I got it working.

My English is not particularly good, would you like me to take a look at
the docker.compose file?
I seem to be using a CGO approach to bring it in, I'm not sure.
I introduced it according to its documentation,
but the introduction failed.
khakers @.***> 于2023年8月16日周三 09:40写道：

I would take a look at the docker compose files in this repo to see how I
got it working.
—
Reply to this email directly, view it on GitHub
https://github.com/khakers/go-subgen/issues/34#issuecomment-1679842670,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AO42YQF3H6T4CPR5DV3XSKLXVQQITANCNFSM6AAAAAA3RCPARM
.
You are receiving this because you authored the thread.Message ID:
@.***>

I would take a look at the dockerfiles in this repo to see how I got it working.

My English is not particularly good, would you like me to take a look at the docker.compose file?
I seem to be using a CGO approach to bring it in, I'm not sure.
I introduced it according to its documentation, but the introduction failed.

Sorry, I meant this dockerfile. I misspoke originally. I can't say much about compiling on MacOS, but I'll do some testing on wsl later. That said, I don't see any errors in the actual c++ compilation you've shown in the other thread.

Sorry, I meant this dockerfile. I misspoke originally. I can't say much about compiling on MacOS, but I'll do some testing on wsl later. That said, I don't see any errors in the actual c++ compilation you've shown in the other thread.

Yes, it struck me as very strange. My test case is passing.
Thank you.

I'll try to use the way you did in the dockerfile, I think it's useful but haven't experimented with it yet.
Thanks for taking your valuable time!


[Tracking] Improvements to Policy.js

Problem
Policy.js is a good example of not so great patterns we have created. Let's fix it up so those patterns are not repeated.
Why is this important?
I think we're going to run into similar problems again and again so I wanted to take some time to clean up Policy.js and maybe establish some best practices before people adopt these "less good" ones as a convenience.
Going to break these out into separate issues, but hoping to tackle the following (more info soon).
Solution
Let's create issues for and solve the following:

[x] #6153
[ ] #6081
[ ] inviteUsers() and removeMembers() rely on modifying a copy obtained via Onyx.connect() then calling Onyx.set(). Let's expand Onyx.merge() so it can take a callback instead.

Gonna close this for now. Still investigating the need for a better Onyx.merge() in the linked react-native-onyx issue. That other discussion didn't get much traction or land on a solution, but I assume will get dug up again eventually.


feat: add button to copy code blocks

Fixes: https://github.com/thegeeklab/hugo-geekdoc/issues/226
Prototype implementation for a button to copy code block content. Current limitation: Adding the button to the DOM relays on the .highlight class. Code blocks without a specified language or disabled syntax highlighting will not work.

Yay, I'd love to see this new feature coming out! Thanks for the contribution.


Best way to produce awkward.Table from tree.arrays

I'm wondering what is the best way to get tree.arrays to produce an awkward.Table?
The easiest option is to just do:
data = tree.arrays(branches, outputtype=awkward.Table)

except that the columns names are "0", "1", etc, rather than the original branch names, which would be nice.
I can also do:
data = tree.arrays(branches, outputtype=tuple)
data = awkward.Table({b: col for b, col in zip(branches, data)})

which gives me more meaningful names, but is obviously an extra step with an explicit for-loop.
Is there an alternative to these that I've missed?

data = tree.arrays(branches, outputtype=awkward.Table)

is a good idea; I hadn't thought of that and it could be enabled with a small adaptation.
I'm up to my elbows right now, but if you want this nice kind of access, there are five places in uproot/tree.py that could be updated to support it.
Those five places match the search string "issubclass(outputtype, dict)" (I always use the same names and spacing): here, here, here, here, and here. Immediately after checking for dict, it would check for awkward.Table, and instead of returning outputtype((?, ??) for ...), it would return outputtype.frompairs((?, ??) for ...).
That would work equally well for subclasses of awkward.Table.

Oh! This might not be what you want: if some of the arrays you get out of the TTree are jagged, you would get a "table of jagged arrays," not a "jagged table." If the data are related; if they share cardinality-per-event, then you most likely want a jagged table.
Here's the difference:
>>> import awkward
>>> a = awkward.fromiter([[1.1, 2.2, 3.3], [], [4.4, 5.5]])
>>> b = awkward.fromiter([[100, 200, 300], [], [400, 500]])

>>> tablejagged = awkward.Table(a=a, b=b)
>>> jaggedtable = awkward.JaggedArray.zip(a=a, b=b)

>>> tablejagged.tolist()   # this is a flat array of rows, each of which contains a subarray
[{'a': [1.1, 2.2, 3.3], 'b': [100, 200, 300]}, {'a': [], 'b': []}, {'a': [4.4, 5.5], 'b': [400, 500]}]
>>> jaggedtable.tolist()   # this is a jagged array of rows
[[{'a': 1.1, 'b': 100}, {'a': 2.2, 'b': 200}, {'a': 3.3, 'b': 300}], [], [{'a': 4.4, 'b': 400}, {'a': 5.5, 'b': 500}]]

At the level of data types,
>>> import awkward.type
>>> # if you pass an integer, then 'a' or 'b', then an integer, you get a float
>>> print(awkward.type.fromarray(tablejagged))
[0, 3) -> 'a' -> [0, inf) -> float64
          'b' -> [0, inf) -> int64
>>> # if you pass an integer, then an integer, then 'a' or 'b', you get a float
>>> print(awkward.type.fromarray(jaggedtable))
[0, 3) -> [0, inf) -> 'a' -> float64
                      'b' -> int64

If you want a jagged table, here's how to get it:
awkward.JaggedArray.zip(**tree.arrays("Muon_*"))

Hmm that's a good point!  I was thinking of building a table of jagged arrays (ie. no constraint on equivalent jaggedness), and assuming (though I'm not sure why) that if they all agreed, or were at least broadcastable, awkward.Table would make this a jagged table.
Are jagged tables and tables of jagged arrays equivalent if all the jagged arrays in the latter have the same jagged-ness ?
Similarly, what would happen if I use your last solution on a list of branches:
awkward.JaggedArray.zip(**tree.arrays(branches))

where the branches had different jagged-ness (or perhaps in this instance I mean dimesions) but they can all be broadcast together?  Would the zip constructor take care of the broadcasting or complain?
I suspect your final suggestion there using zip will be fine for my current needs, these extra questions are more for my current understanding.

JaggedArray.zip should throw an error if they don't fit together. It's what I wish Python's zip would do: check that the lengths match. JaggedArray.zip has to check a lot more lengths, though.

I think this is done.


Moved issue-174 into an RFC document

First document in a new proposed RFC directory structure.
This will allow us to review changes to RFCs using PRs.

Current coverage is 45.32% (diff: 100%)

Merging #192 into master will not change coverage

@@             master       #192   diff @@
==========================================
  Files           607        607
  Lines         15788      15788
  Methods           0          0
  Messages          0          0
  Branches       1609       1609
==========================================
  Hits           7156       7156
  Misses         8175       8175
  Partials        457        457

Powered by Codecov. Last update 452caf7...c0779d0


feat(openldap): enable tls

Which issue(s) this PR fixes:

Fixes #43
Additional comments:

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004 and that you give permission to TOSIT,
you have to acknowledge this by using the following check-box.

[X] I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004

[X] I hereby agree to grant TOSIT a copyright license to use my contributions.

I don't know if there is much work to do but please wait for a PR to be ready for https://github.com/TOSIT-IO/tdp-getting-started/issues/210 so that we don't break the Getting Started.

@leopaul36 this PR is NON breaking. ldap is served on port 389, and ldaps is served on port 636

@leopaul36 this PR is NON breaking. ldap is still served on port 389, and ldaps is served on port 636

My bad, I did not realize both listeners could run at the same time


[beeswax]Table alias fail to execute auto complete while sql endwith semicolon";"

SQL example: select test.id from table test;
Currently i clear ";" in autocomplete.utils.js:
diff --git a/hue-2.5.0-cdh4.6.0/apps/beeswax/static/js/autocomplete.utils.js b/hue-2.5.0-cdh4.6.0/apps/beeswax/static/js/autocomplete.utils.js
index a2754cc..fee92c2 100644
--- a/hue-2.5.0-cdh4.6.0/apps/beeswax/static/js/autocomplete.utils.js
+++ b/hue-2.5.0-cdh4.6.0/apps/beeswax/static/js/autocomplete.utils.js
@@ -49,7 +49,8 @@
}
var _found = _val.substr(_from, _to).replace(/(\r\n|\n|\r)/gm, "").replace(/from/gi, "").replace(/join/gi, ",").split(",");
for (var i = 0; i < _found.length; i++) {

 var _tablealias = $.trim(_found[i]).split(" ");

 _foundclean=_found[i].replace(";", "");

 var _tablealias = $.trim(_foundclean).split(" ");
 if (_tablealias.length > 1) {
   _aliases[_tablealias[1]] = _tablealias[0];
 }

I create issue: https://issues.cloudera.org/browse/HUE-2517

Thanks but that's been solved on 3.6 (see https://issues.cloudera.org/browse/HUE-1977)
We won't backport it to 2.5 which is a very old version of Hue

cool, thanks a lot.


Error accessing preferences

I opened the menu, clicked Edit, and then clicked Preferences.  I received this error:

Hyper 1.3.3
Electron 1.4.16
win32 x64 10.0.15063

Did you add a plugin? What when there is no plugin installed. Please follow the issue instructions.

This happens in windows when .js files are associated with the Windows Script Host. You may have to open the preferences file directly notepad %USERPROFILE%\.hyper.js or something similar. Or you can change your .js file association to a text editor.

I re-associated .js file with my favorite IDE (VSCode) and the problem is fixed (thanks!)
http://www.thewindowsclub.com/change-file-associations-windows


Memory Concumption GetFirstChild is way too big

Before Saving excel files

After Saving excel file( GC just collected all unused data)

And After appending DataValidation with code below

That memory usage after Validation look very awful,  when output excel file has only 20mb size, and if i need add another validation to another list, memory just going higher like that

i'm using that code to perform adding Validation
         using (SpreadsheetDocument document = SpreadsheetDocument.Open(docName, true))
        {
            IEnumerable<Sheet> sheets = document.WorkbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == worksheetName);

            if (sheets.Count() == 0)
            {
                return;
            }

            WorksheetPart worksheetPart = (WorksheetPart)document.WorkbookPart.GetPartById(sheets.First().Id);

            WorksheetExtensionList worksheetExtensionList = new WorksheetExtensionList();
            WorksheetExtension worksheetExtension = new WorksheetExtension() { Uri = "{CCE6A557-97BC-4b89-ADB6-D9C93CAAB3DF}" };
            worksheetExtension.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main");

            DataValidations dataValidations = new DataValidations();
            DataValidation dataValidation = null;
            if (!isRange)
            {
                dataValidation = new DataValidation
                {
                    Type = DataValidationValues.List,
                    AllowBlank = true,
                    SequenceOfReferences = new ListValue<StringValue> { InnerText = string.Format("{0}1:{0}1048576", column) }
                };

                dataValidation.Append(
                    new Formula1 { Text = dataContainingSheet }
                    );
            }
            else
            {
                X14.DataValidations dataValidations14 = new X14.DataValidations() { Count = (UInt32Value)1U };
                dataValidations14.AddNamespaceDeclaration("xm", "http://schemas.microsoft.com/office/excel/2006/main");
                dataValidations14.Append(new X14.DataValidation()
                {
                    Type = DataValidationValues.List,
                    AllowBlank = true,
                    ReferenceSequence = new DocumentFormat.OpenXml.Office.Excel.ReferenceSequence(string.Format("{0}1:{0}1048576", column)),
                    DataValidationForumla1 = new X14.DataValidationForumla1() { Formula = new DocumentFormat.OpenXml.Office.Excel.Formula(dataContainingSheet) }
                });

                worksheetExtension.Append(dataValidations14);
                worksheetExtensionList.Append(worksheetExtension);
                worksheetPart.Worksheet.Append(worksheetExtensionList);
                worksheetPart.Worksheet.Save();
                return;
            }
            var oldDataValidations = worksheetPart.Worksheet.GetFirstChild<DataValidations>();
            if (oldDataValidations != null)
            {
                if (dataValidation != null)
                    oldDataValidations.Append(dataValidation);
            }
            else
            {
                dataValidations.Append(dataValidation);
                worksheetPart.Worksheet.AppendChild(dataValidations);
            }

on worksheetPart.Worksheet.GetFirstChild it's just taking a lot of memory for that action.
If it was only on my PC, there is no problem, but i have to run that on PC with only 8Gb RAM  and it throws OutOfMemory exception sometimes
Desktop (please complete the following information):

OS: Windows 10
.NET Target: tried migrate to .net 6, but on .net 6 there is always that error, on .net framework 4.7.2 it happens periodically
DocumentFormat.OpenXml Version:  used 2.20.2, 2.11.3 and Open-XML-SDK 2.9.1,2.5.0 on any of them same

Additional context
Just don't know how to solve that problem, or there is some another way to add DataValidations to excel files without that memory concumption

@Berethor
Thank you for contacting Office Protocol Support, one our engineers will be looking into the issue shortly.
Hung-Chun Yu
Microsoft Office Protocol Support

If you need more information, I can provide it. Just tell me what you need

Is there still no help or solution for this issue?

@Berethor have you tried this with the most recent 3.0.1?


changed the function of quotes, changed the function to replace the r…

Made functions in the parser that we agreed on, there are still questions about expanding quotes

merge pull requests


fix(readme): Correct link to test runner badge

Fixes #651.

The luacheck test that is failing is a result of #646. I looked into fixing it but wasn't exactly sure what should happen. It looks like at least some of the lint warnings are legitimate, but since I didn't trace all the scoping involved or the expected behavior I wasn't quite sure how to fix them. Maybe @Tieske can address that in a separate PR.


Add names of OWNERS to OWNERS file

This is a Feature Request

What would you like to be added

I think that the OWNERS section in the website can be edited and some more details can be added.
Why is this needed
Although a link was put in through #12427, I feel like some more changes might be needed here. These changes would be adding names of the owners.
Comments

I'll send in a PR once a member feels like it is important for this issue to be worked upon.

@Aut0R3V, I don't think I understand the issue you're reporting.
Would you be willing to revise the issue description so that any shortcoming is described? If you're suggesting an improvement, please detail what change you would like to see and why.
/triage needs-information

@Aut0R3V, I don't think I understand the issue you're reporting.
Would you be willing to revise the issue description so that any shortcoming is described? If you're suggesting an improvement, please detail what change you would like to see and why.
/triage needs-information

@Aut0R3V, I don't think I understand the issue you're reporting.
Would you be willing to revise the issue description so that any shortcoming is described? If you're suggesting an improvement, please detail what change you would like to see and why.
/triage needs-information

Done

@Aut0R3V, I don't think I understand the issue you're reporting.
Would you be willing to revise the issue description so that any shortcoming is described? If you're suggesting an improvement, please detail what change you would like to see and why.
/triage needs-information

Done

/retitle Add names of OWNERS to OWNERS file
/kind feature
/priority awaiting-more-evidence
Across the Kubernetes project, I believe that the convention is not to list people's names (and, in fact, if someone doesn't want to disclose their name via GitHub APIs etc, that's OK).

/retitle Add names of OWNERS to OWNERS file
/kind feature
/priority awaiting-more-evidence
Across the Kubernetes project, I believe that the convention is not to list people's names (and, in fact, if someone doesn't want to disclose their name via GitHub APIs etc, that's OK).

Oh apologies I wasn't aware of that. Should I close this down?

Oh apologies I wasn't aware of that. Should I close this down?


Dataclasses and nested dataclasses/models

Question
For bugs/questions:

OS: macOS
python 3.7
pydantic 0.14

The following gives an error saying NavbarButton doesn't have a validator. I am marking this as a
question because I think the docs explain the new dataclass support doesn't support validators of validators.
from pydantic.dataclasses import dataclass

@dataclass
class NavbarButton:
    href: str

@dataclass
class Navbar:
    button: NavbarButton

if __name__ == '__main__':
    button = NavbarButton(href='a')
    navbar = Navbar(button=button)

I guess pydantic should be able to code with dataclasses, shouldn't be too hard to implement.

@samuelcolvin I would like to add support for nested dataclasses, but have some questions about implementation:

Should we support vanilla dataclasses.dataclass or only wrapped using pyndatic.dataclasses.dataclass?
If we're going to support vanilla dataclasses, how we must validate them? Just try to coerce or wrap into pydantic's dataclass?

@Gr1N I think it's fine to make it a restriction that, starting from a pydantic dataclass, the constructed nested dataclasses are pydantic ones.

fixed in #334, if you want to allow vanillia dataclasses, that already works with arbitrary_types_allowed = True otherwise pydantic dataclasses will be required.

Super, thanks!


ARM template failed validation

Hello,
When I'm trying to deploy your template for managed HSM using the same parameters as on this page  the SKU parameter entered as Standard_B1 results in the error:
Unable to parse the value into type 'object'
Could you please to fix the template?
Regards,
Serguei

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

ID: 1b1ce9b8-dda0-4df3-f087-b599468eb937
Version Independent ID: 40b594b4-8a44-817a-f132-794b0f8ca33d
Content: Azure Quickstart - Create a Managed HSM using an Azure Resource Manager template
Content Source: articles/key-vault/managed-hsm/quick-create-template.md
Service: key-vault
Sub-service: managed-hsm
GitHub Login: @msmbaldwin
Microsoft Alias: mbaldwin

@smizrohi
Thanks for your feedback! We will investigate and update as appropriate.

@smizrohi
Thank you for pointing this out! I walked through the documentation and ran into this issue as well.

Next Steps:
I have assigned this issue to the author who will investigate and update as appropriate.
If you have any other questions, please let me know.
Thank you for your time and patience throughout this issue.

@smizrohi  SKU is complex object {
"name": "Standard_B1",
"family": "B"
},
Since there is no other option for SKU at this moment we removed it from parameters list, so it should not be a problem anymore.
#please-close


Avoid panic on concurrent map writes in test

Example failure:
https://prow.istio.io/view/gs/istio-prow/pr-logs/pull/istio_istio/33891/integ-telemetry-mc-k8s-tests_istio/1412883536393801728
The problem is we are mutating the same map in many goroutines. Instead,
make a copy.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[ ] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

@howardjohn: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
83902caa3fd2a05830bad5d028e81671dd16de08
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Configure Azure Pipelines

This configuration builds the application and produces builds for both Debug and Release configurations.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: suman4u11 sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


[RFC][Joy UI] Remove TextField in favor of composition

Problems
The TextField is a wrapper of FormLabel, Input, and FormHelperText. It binds the id with ARIA to those components which reduce a lot of effort for developers.
However, it becomes a pain when you need to pass props to the inner HTML input:
Hard to customize
To pass a prop to the HTML input, you have to do this:
<TextField
  componentsProps={{
    input: {
      componentsProps: {
        data-attributes: '',
      }
    }
  }}
/>

Confusion
Take Material UI as an example, Joy UI would follow the same regardless of the final APIs for the TextField.
here is some confusion from the community about the API of the TextField:

https://github.com/mui/material-ui/issues/31421
https://github.com/mui/material-ui/issues/29525
https://github.com/mui/material-ui/issues/11377

Proposal
Remove the TextField component and lean toward composition similar to Chakra UI.
<FormControl>
  <FormLabel>...</FormLabel>
  <Input /> {/* This could be Textarea, Select, Autocomplete */}
  <FormHelperText>...</FormHelperText>
</FormControl>

I think the removal of the TextField will clean up the confusion and hand over the customization to developers which sounds like a good strategy for us (as a maintainer).
Advantages

I believe that it will reduce the issues related to the props injection for Joy UI.
Low learning curve because it is one-to-one DOM mapping.
It is easier to customize both styling and passing props.
Don't need to spend time thinking about the API that the TextField should have (currently, the componentsProps does not work)
The pattern can be used with Textarea, Select, and Autocomplete without creating new field components.

Disadvantages

More character to type (I don't think this is a big deal because Chakra UI has positive feedback)
Different experience compare to Material UI (does it matter that much? Material UI also provide FormControl for composition as well)

Hi, can I try this one?!

Hi, can I try this one?!

Hi, can I try this one?!

Hi, can I try this one?!

Thanks for asking but I think we will have to wait for the decision first.

I think that this could work as long as the abstractions terminology/structure is compatible with Material UI's one. At a high level, I would be amazed if we don't get a lot of people asking us to create a Text Field abstraction on top of the lower-level primitives once we remove it, but who knows? It might actually be interesting to experiment. In v1, I tried to promote the composable API https://v1.mui.com/demos/text-fields/#components but move it lower in the page when I saw the Google Analytics demos usage stats 😁.

[TextField] binds the id with ARIA to those components which reduce a lot of effort for developers.

This is the most important aspect of the solution for me. If the alternative can do this by default, then I'd be satisfied.

[TextField] binds the id with ARIA to those components which reduce a lot of effort for developers.

This is the most important aspect of the solution for me. If the alternative can do this by default, then I'd be satisfied.

Yes, it works the same.
The only downside is that you have to write more code (3 components) instead of 1, the TextField.

[TextField] binds the id with ARIA to those components which reduce a lot of effort for developers.

This is the most important aspect of the solution for me. If the alternative can do this by default, then I'd be satisfied.

Yes, it works the same.

Great! I can add that I think this would be received well by my company engineering team. Those who are very comfortable would grunt at the loss of a succinct component, but I've fielded so many questions and misunderstandings about TextField and TextField vs FormLabel, Input, etc. that it would have been well worth it to everyone to never have dealt with the abstraction in the first place.
One more thing I'd like to suggest is making Form*** components warn in the console if they can't find a FormControl context. My aim is to have a safety net to avoid using them in an inaccessible manner. I can't think of a good reason to use outside of a FormControl.

From https://github.com/mui/material-ui/pull/34994, using Input directly instead of the TextField let me focus on the composition to create a horizontal text field without banging my head with the TextField customization.

Related to this discussion https://twitter.com/BrettThurs10/status/1591118613318369281

Jun, as we discussed, I made a draft PR for this issue.
Since Joy doesn't have API docs yet, should we at least have a documentation for Joy FormControl so that developers can figure out how to create a user input?

Is TextField still being removed? It appears to still be in the package.

So, instead of fixing the inputProps of the TextField, you eliminated a ready made and the most handy input component.
And now I have to create a wrapper component with my custom props and keep that new componemt to my custom components colection to have a standard TextField.
The boilerplate may not seem like a big deal at a glance, but that is a PITA to deal with when I have a form with 20+ inputs.
Please consider bringing back the TextField for Joy UI.


2-Validate H x W grid values

Will come from the frontend #11 #13
Take steps and use cases from the planning doc #3
Branch
12-validate-grid
Merge into
14-grid


Add Closeable/AutoCloseable on Database & interface

Impact

[ ] Bug fix (non-breaking change which fixes expected existing functionality)
[x] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
Added the interface AutoCloseable to the interfaces DataBase and DatabaseConnection , in order to provid the possibility to use Java try with resources.

This PR is related to this Issue https://github.com/liquibase/liquibase/issues/2974

@kataggart I need a first review please.

@kataggart I need a first review please.

Please.

It's looking good so far. Both already have close() methods on them, so it makes sense and won't impact the APIs.
You added the try with resources to the tests, you can add throws Exception to the test method signature vs. just logging the error like you have.
Besides that, I have a vague hope to someday remove the need for a "close()" interface from Database in general to make that class more about being a "dialect" vs. another layer of a connection. But that is already going to be a large enough change that it would be nice to have Autoclosable on Database for now.

You added the try with resources to the tests, you can add throws Exception to the test method signature vs. just logging the error like you have.

I'll work on that, then ping you back.

@nvoxland : I updated the unit tests. IF it's good for you, do you have any idea of when the code will be merge ?

It looks good, @zorglube . I made it a non-draft release and kicked off a build on it to make sure everything is still all passing. After those finish we have a couple other internal review & test steps but I'd imagine it will be in the next release. We generally shoot for a new release every couple weeks and just had one recently, so I'd guess it will be around then.

Code review and test results:
Things to be aware of:

Only "shipped" change is adding the Closable interface to Database and DatabaseConnection. Both of which already defined the close() method so no real code impact beyond that extra marker interface.
The rest of the changes are fixes to tests to avoid linters complaining about "not closing autoclosable objects"

Things to worry about:

Nothing

Thanks guys! ☺


Add Android AAR packaging pipeline.

Pipeline will create and publish an AAR with x86_64 and arm64-v8a builds.

Successful run with changes: https://dev.azure.com/aiinfra/ONNX Runtime/_build/results?buildId=492962&view=results


Enable WriteCore feature for azurestackhci

We need to enable WriteCore feature to azurestackhci. Therefore add use-write-core: true and do a regen.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.Hci


Prepare the ingredient analysis strip for many more analysis

Feature
We currently have Vegan, Vegetarian and Palm oil. We're going to add many more analysis.

[ ] Only display the first 3 ingredient analysis if no setting is explicitely set
[ ] Allow the ingredient analysis strip to slide horizontally in case someone explicitely enables a lot of analysis.

Sample of the new analysis available on the web version

You mean in Scan Activity and Product View Summary, right?

You mean in Scan Activity and Product View Summary, right?


Auto branch detection is not working for one app but not another

Environment information
Irrelevant

Description
I've deployed a new app (da73h1spqjnj3) where auto branch detection is not working. I use branch detection for deploying merge requests (PRs) on Gitlab. Fwiw, it works on my another app. (d1vt3yprnq72ok).

Hi @erm-an 👋 , thanks for reaching out. Can you clarify if you're referring to the pattern based branch deployments feature or the web previews feature?
If it's regarding one of these features, I haven't been able to replicate the issue you mentioned when using Amplify with GitLab. Can you share detailed steps to reproduce the issue?

Hey @Jay2113, I was indeed trying out pattern based branch deployments feature, which worked without any issues on my other app I deployed. I've just tested web preview feature and it seems to work without issues. I still don't know why pattern based matching (I use pr-* on my other app, but also tested *) is not working on this project, however, using previews would solve my immediate issue. Thanks for pointing that out.

Thanks @erm-an for the clarification regarding your use case. If you require auto-creation of PR branches, we highly recommend utilizing the Web Previews feature, as it is well-suited for this purpose.
Regarding the issue you're facing, I wasn't able to reproduce it when using the pr-* or * as the detection pattern. However, here are a couple of steps you can try to resolve the problem:

Navigate to the App Settings > Branch Settings section and select the "Reconnect Repository" button. This should re-establish the connection between your repository and Amplify.
After enabling the Pattern-Based Branch Deployment feature, any newly created branch will not be immediately reflected in the Amplify console. To trigger the detection, you'll need to push a change to the new branch.

Thanks for the responses, I'll go ahead with web previews for my use case as you mentioned.

Sounds great! Closing the thread and feel free to open a new one if you are experiencing issues with Amplify.


fix: re-factoring the website so that the links to notebooks do not appear on two pages. #774

Why are these changes needed?
Added a common .md file for Examples, and then referenced it in both Use Cases and Examples to make it easier foir any contributor to edit once.

Related issue number
Closes #774

Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

@sonichi @olaoluwasalami

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (8d5f176) 27.79% compared to head (a15a440) 27.59%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #789      +/-   ##
==========================================
- Coverage   27.79%   27.59%   -0.21%
==========================================
  Files          27       27
  Lines        3497     3497
  Branches      793      793
==========================================
- Hits          972      965       -7
- Misses       2454     2460       +6
- Partials       71       72       +1

Flag
Coverage Δ

unittests
27.59% <ø> (-0.15%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

@rabbabansh thanks for the contribution. I believe this issue has been resolved in a separate PR adding an example and ecosystem page. Could you please check the latest website: https://microsoft.github.io/autogen/docs/Examples and refer to this page when a reference to the examples is needed? Thank you!

I believe this issue will still persist because there are still references to the same set of examples in both docs/Use-Cases/agent-chat.md as well as docs/examples.md, although my approach is quite similar to this structure, should I update this PR to store all the examples in the examples.md file and import them from examples.md to the Use-Cases/agent-chat.md page?

Closing this PR as the problem is already resolved! Thank you!


Add streams support as values in helper

@dempfi I'm going to close this as the tests have not been added as requested. If you want to follow up with tests I'm happy to reopen.


HIGH PRIORITY - Attach images to prompts

We also have many models and providers, probably we need to disable such features when untested provider/model are used

We also have many models and providers, probably we need to disable such features when untested provider/model are used

The upload button could be only available for those models with vision capabilities and frozen/disabled for the others. The dynamic LLMs can be fetched from the OpenRouter API and filter those which have "modality": "text+image->text". The ones that are hardcoded can be flagged in the constants.ts

@atrokhym Thank you so much for this, I hope we can get it merged in soon! I appreciate your reviews a ton too @pjmartorell, fantastic!

@pjmartorell
thank you for doing my PR review.
i think i incorporated changes you requested. pls take a look
thanks a lot!

@atrokhym Thank you! Let me know if you can get around to reviewing again @pjmartorell!

@atrokhym Thank you! Let me know if you can get around to reviewing again @pjmartorell!
@coleam00 -i did run though those issues @pjmartorell noted.
i implemented all of them and ping him to review again. there are few commits after that.
also - should mention - i might missing something about process like who do what, notifications, etc...
so pls correct or point me in right direction.
this is my first git hub public PR :-)

When I tried launching, the model selection does not show up

This function is really great! May I ask when the merger will take place?

@atrokhym  Would you say this is all ready to go? I can review this within the next couple of days too!

@atrokhym Would you say this is all ready to go? I can review this within the next couple of days too!

it was ready for merge couple of days back...but now more conflicts from main branch are coming...so i need to resolve them first...will do ASAP

Sounds good, thank you so much @atrokhym! I would love to showcase this for my update video on Sunday!

@atrokhym This is looking phenomenal!
There are a lot of merge conflicts with main right now - could you resolve those/rebase your branch on main?
Also I have a couple of suggestions to really make this PR shine:

The "X" after you upload an image has a half circle that makes it look like the image is still uploading.
Could you include a preview of the image in the chat messages so when you look at the chat history you can see the images that were uploaded?

Thank you for all your work on this!

@coleam00 - could you do review, please?

Looks good @atrokhym, thank you for fixing the conflicts! Did you get a chance to see my couple of suggestions as well?

Looks good @atrokhym, thank you for fixing the conflicts! Did you get a chance to see my couple of suggestions as well?

yes and i think item-1 looks much better now

for item-2 - as of now i don't know to do it....i would need to do some research...

Is it possible to add the ability to paste an image from the clipboard?

Hi,
I have made some changes to the UserMessage.tsx to display the image in the chat conversation.

New Code :
`
/*

@ts-nocheck
Preventing TS checks with files presented in the video for a better presentation.
*/
import { MODEL_REGEX, PROVIDER_REGEX } from '~/utils/constants';
import { Markdown } from './Markdown';

interface UserMessageProps {
content: string | Array<{ type: string; text?: string; image?: string }>;
}
export function UserMessage({ content }: UserMessageProps) {
if (Array.isArray(content)) {
const textItem = content.find((item) => item.type === 'text');
const textContent = sanitizeUserMessage(textItem?.text || '');
const images = content.filter((item) => item.type === 'image' && item.image);
return (

        <Markdown limitedMarkdown>{textContent}</Markdown>

      {images.length > 0 && (

          {images.map((item, index) => (

              <img
                src={item.image}
                alt={`Uploaded image ${index + 1}`}
                className="w-full h-[160px] rounded-lg object-cover border border-bolt-elements-borderColor"
              />

          ))}

      )}

);

}
const textContent = sanitizeUserMessage(content);
return (

{textContent}

);
}
function sanitizeUserMessage(content: string) {
return content.replace(MODEL_REGEX, '').replace(PROVIDER_REGEX, '');
}
`
Br,
Stijn

Is it possible to add the ability to paste an image from the clipboard?

For this option i have changed the code of the BaseChat.tsx :
`
/*

@ts-nocheck
Preventing TS checks with files presented in the video for a better presentation.
*/
import type { Message } from 'ai';
import React, { type RefCallback, useEffect, useState } from 'react';
import { ClientOnly } from 'remix-utils/client-only';
import { Menu } from '~/components/sidebar/Menu.client';
import { IconButton } from '~/components/ui/IconButton';
import { Workbench } from '~/components/workbench/Workbench.client';
import { classNames } from '~/utils/classNames';
import { MODEL_LIST, PROVIDER_LIST, initializeModelList } from '~/utils/constants';
import { Messages } from './Messages.client';
import { SendButton } from './SendButton.client';
import { APIKeyManager } from './APIKeyManager';
import Cookies from 'js-cookie';
import * as Tooltip from '@radix-ui/react-tooltip';

import styles from './BaseChat.module.scss';
import type { ProviderInfo } from '~/utils/types';
import { ExportChatButton } from '~/components/chat/chatExportAndImport/ExportChatButton';
import { ImportButtons } from '~/components/chat/chatExportAndImport/ImportButtons';
import { ExamplePrompts } from '~/components/chat/ExamplePrompts';
import FilePreview from './FilePreview';
// @ts-ignore TODO: Introduce proper types
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const ModelSelector = ({ model, setModel, provider, setProvider, modelList, providerList, apiKeys }) => {
return (

<select
value={provider?.name}
onChange={(e) => {
setProvider(providerList.find((p: ProviderInfo) => p.name === e.target.value));
      const firstModel = [...modelList].find((m) => m.provider == e.target.value);
      setModel(firstModel ? firstModel.name : '');
    }}
    className="flex-1 p-2 rounded-lg border border-bolt-elements-borderColor bg-bolt-elements-prompt-background text-bolt-elements-textPrimary focus:outline-none focus:ring-2 focus:ring-bolt-elements-focus transition-all"
  >
    {providerList.map((provider: ProviderInfo) => (
      <option key={provider.name} value={provider.name}>
        {provider.name}
      </option>
    ))}
  </select>
  <select
    key={provider?.name}
    value={model}
    onChange={(e) => setModel(e.target.value)}
    className="flex-1 p-2 rounded-lg border border-bolt-elements-borderColor bg-bolt-elements-prompt-background text-bolt-elements-textPrimary focus:outline-none focus:ring-2 focus:ring-bolt-elements-focus transition-all lg:max-w-[70%] "
  >
    {[...modelList]
      .filter((e) => e.provider == provider?.name && e.name)
      .map((modelOption) => (
        <option key={modelOption.name} value={modelOption.name}>
          {modelOption.label}
        </option>
      ))}
  </select>

);
};
const TEXTAREA_MIN_HEIGHT = 76;
interface BaseChatProps {
textareaRef?: React.RefObject | undefined;
messageRef?: RefCallback | undefined;
scrollRef?: RefCallback | undefined;
showChat?: boolean;
chatStarted?: boolean;
isStreaming?: boolean;
messages?: Message[];
description?: string;
enhancingPrompt?: boolean;
promptEnhanced?: boolean;
input?: string;
model?: string;
setModel?: (model: string) => void;
provider?: ProviderInfo;
setProvider?: (provider: ProviderInfo) => void;
handleStop?: () => void;
sendMessage?: (event: React.UIEvent, messageInput?: string) => void;
handleInputChange?: (event: React.ChangeEvent) => void;
enhancePrompt?: () => void;
importChat?: (description: string, messages: Message[]) => Promise;
exportChat?: () => void;
uploadedFiles?: File[];
setUploadedFiles?: (files: File[]) => void;
imageDataList?: string[];
setImageDataList?: (dataList: string[]) => void;
}
export const BaseChat = React.forwardRef<HTMLDivElement, BaseChatProps>(
(
{
textareaRef,
messageRef,
scrollRef,
showChat = true,
chatStarted = false,
isStreaming = false,
model,
setModel,
provider,
setProvider,
input = '',
enhancingPrompt,
handleInputChange,
promptEnhanced,
enhancePrompt,
sendMessage,
handleStop,
importChat,
exportChat,
uploadedFiles = [],
setUploadedFiles,
imageDataList = [],
setImageDataList,
messages,
},
ref,
) => {
const TEXTAREA_MAX_HEIGHT = chatStarted ? 400 : 200;
const [apiKeys, setApiKeys] = useState<Record<string, string>>({});
const [modelList, setModelList] = useState(MODEL_LIST);
useEffect(() => {
  // Load API keys from cookies on component mount
  try {
    const storedApiKeys = Cookies.get('apiKeys');

    if (storedApiKeys) {
      const parsedKeys = JSON.parse(storedApiKeys);

      if (typeof parsedKeys === 'object' && parsedKeys !== null) {
        setApiKeys(parsedKeys);
      }
    }
  } catch (error) {
    console.error('Error loading API keys from cookies:', error);

    // Clear invalid cookie data
    Cookies.remove('apiKeys');
  }

  initializeModelList().then((modelList) => {
    setModelList(modelList);
  });
}, []);

const updateApiKey = (provider: string, key: string) => {
  try {
    const updatedApiKeys = { ...apiKeys, [provider]: key };
    setApiKeys(updatedApiKeys);

    // Save updated API keys to cookies with 30 day expiry and secure settings
    Cookies.set('apiKeys', JSON.stringify(updatedApiKeys), {
      expires: 30, // 30 days
      secure: true, // Only send over HTTPS
      sameSite: 'strict', // Protect against CSRF
      path: '/', // Accessible across the site
    });
  } catch (error) {
    console.error('Error saving API keys to cookies:', error);
  }
};

const handleFileUpload = () => {
  const input = document.createElement('input');
  input.type = 'file';
  input.accept = 'image/*';

  input.onchange = async (e) => {
    const file = (e.target as HTMLInputElement).files?.[0];

    if (file) {
      const reader = new FileReader();

      reader.onload = (e) => {
        const base64Image = e.target?.result as string;
        setUploadedFiles?.([...uploadedFiles, file]);
        setImageDataList?.([...imageDataList, base64Image]);
      };
      reader.readAsDataURL(file);
    }
  };

  input.click();
};

const handlePaste = async (e: React.ClipboardEvent) => {
  const items = e.clipboardData?.items;

  if (!items) {
    return;
  }

  for (const item of items) {
    if (item.type.startsWith('image/')) {
      e.preventDefault();

      const file = item.getAsFile();

      if (file) {
        const reader = new FileReader();

        reader.onload = (e) => {
          const base64Image = e.target?.result as string;
          setUploadedFiles?.([...uploadedFiles, file]);
          setImageDataList?.([...imageDataList, base64Image]);
        };
        reader.readAsDataURL(file);
      }

      break;
    }
  }
};

const baseChat = (

    <ClientOnly>{() => <Menu />}</ClientOnly>

        {!chatStarted && (

              Where ideas begin

              Bring ideas to life in seconds or get help on existing projects.

        )}

          <ClientOnly>
            {() => {
              return chatStarted ? (
                <Messages
                  ref={messageRef}
                  className="flex flex-col w-full flex-1 max-w-chat pb-6 mx-auto z-1"
                  messages={messages}
                  isStreaming={isStreaming}
                />
              ) : null;
            }}
          </ClientOnly>

            <ModelSelector
              key={provider?.name + ':' + modelList.length}
              model={model}
              setModel={setModel}
              modelList={modelList}
              provider={provider}
              setProvider={setProvider}
              providerList={PROVIDER_LIST}
              apiKeys={apiKeys}
            />

            {provider && (
              <APIKeyManager
                provider={provider}
                apiKey={apiKeys[provider.name] || ''}
                setApiKey={(key) => updateApiKey(provider.name, key)}
              />
            )}
            <FilePreview
              files={uploadedFiles}
              imageDataList={imageDataList}
              onRemove={(index) => {
                setUploadedFiles?.(uploadedFiles.filter((_, i) => i !== index));
                setImageDataList?.(imageDataList.filter((_, i) => i !== index));
              }}
            />

              <textarea
                ref={textareaRef}
                className={`w-full pl-4 pt-4 pr-16 focus:outline-none focus:ring-0 focus:border-none focus:shadow-none resize-none text-md text-bolt-elements-textPrimary placeholder-bolt-elements-textTertiary bg-transparent transition-all`}
                onKeyDown={(event) => {
                  if (event.key === 'Enter') {
                    if (event.shiftKey) {
                      return;
                    }

                    event.preventDefault();

                    sendMessage?.(event);
                  }
                }}
                value={input}
                onChange={(event) => {
                  handleInputChange?.(event);
                }}
                onPaste={handlePaste}
                style={{
                  minHeight: TEXTAREA_MIN_HEIGHT,
                  maxHeight: TEXTAREA_MAX_HEIGHT,
                }}
                placeholder="How can Bolt help you today?"
                translate="no"
              />
              <ClientOnly>
                {() => (
                  <SendButton
                    show={input.length > 0 || isStreaming || uploadedFiles.length > 0}
                    isStreaming={isStreaming}
                    onClick={(event) => {
                      if (isStreaming) {
                        handleStop?.();
                        return;
                      }

                      if (input.length > 0 || uploadedFiles.length > 0) {
                        sendMessage?.(event);
                      }
                    }}
                  />
                )}
              </ClientOnly>

                  <IconButton title="Upload file" className="transition-all" onClick={() => handleFileUpload()}>

                  </IconButton>
                  <IconButton
                    title="Enhance prompt"
                    disabled={input.length === 0 || enhancingPrompt}
                    className={classNames(
                      'transition-all',
                      enhancingPrompt ? 'opacity-100' : '',
                      promptEnhanced ? 'text-bolt-elements-item-contentAccent' : '',
                      promptEnhanced ? 'pr-1.5' : '',
                      promptEnhanced ? 'enabled:hover:bg-bolt-elements-item-backgroundAccent' : '',
                    )}
                    onClick={() => enhancePrompt?.()}
                  >
                    {enhancingPrompt ? (
                      <>

Enhancing prompt...

                      </>
                    ) : (
                      <>

                        {promptEnhanced &&
Prompt enhanced
}
                      </>
                    )}
                  </IconButton>
                  {chatStarted && <ClientOnly>{() => <ExportChatButton exportChat={exportChat} />}</ClientOnly>}

                {input.length > 3 ? (

                    Use Shift +{' '}
                    Return for
                    a new line

                ) : null}

        {!chatStarted && ImportButtons(importChat)}
        {!chatStarted && ExamplePrompts(sendMessage)}

      <ClientOnly>{() => <Workbench chatStarted={chatStarted} isStreaming={isStreaming} />}</ClientOnly>

);

return <Tooltip.Provider delayDuration={200}>{baseChat}</Tooltip.Provider>;

},
);
`

@Stijnus  - thank you alot for those 2 improvement! I added them into branch

Nice work @atrokhym and @Stijnus, thank you very much!
@atrokhym how are you feeling about this being ready to merge? I see some comments that need to be cleaned up but otherwise it is looking great to me! Tested it again just now.

Nice work @atrokhym and @Stijnus, thank you very much!
@atrokhym how are you feeling about this being ready to merge? I see some comments that need to be cleaned up but otherwise it is looking great to me! Tested it again just now.

i run through those comments a while ago (resolved them as suggested)
so its ready for merge. no conflicts yet...:-)

Nice work @atrokhym and @Stijnus, thank you very much!
@atrokhym how are you feeling about this being ready to merge? I see some comments that need to be cleaned up but otherwise it is looking great to me! Tested it again just now.

Frickin' awesome job peeps 😁 Thank you!

@coleam00 you are welcome ;) but @atrokhym did the most part i just added a few things.. I will continue to add my support to the new pull requests to see if i can contribute to it.
Br,
Stijn

cool! thx everybody!

Hallelujah!
Been waiting for this feature the minute I discovered this Bolt fork (which wasn't named OttoDev yet).
Thank you guys for the awesome work.


Update es.js

A spanish user claims that:
"Este valor es requerido" which sounds not natural into spanish.
Please replace by:
"Tienes que informarlo, es obligatorio."

Muchas gracias para este pull request. The thing is, all the other error messages have the same form, which also avoid the issue of having to choose between "Tiene" and "Tienes".
So I think it's best to keep the error message as is, but of course you're welcome to change it for you own use.

OK, sure
On Tue, 16 Feb 2016 at 19:17 Marc-André Lafortune<EMAIL_ADDRESS>wrote:

Muchas gracias para este pull request. The thing is, all the other error
messages have the same form, which also avoid the issue of having to choose
between "Tiene" and "Tienes".
So I think it's best to keep the error message as is, but of course you're
welcome to change it for you own use.
—
Reply to this email directly or view it on GitHub
https://github.com/guillaumepotier/Parsley.js/pull/1064#issuecomment-184807952
.


Use current repository by default

I think it would be nice if re would default to the current repository instead of cockroachdb. I'll try to implement this at some point.

Done.


Create integration test for FluoAdmin.remove()

There is a discussion about this on #999
https://github.com/apache/fluo/pull/999#discussion_r161251692

@keith-turner I followed the discussion above and would like to try this issue. I've noticed a few preliminary things and have a few questions:
There is no check to see if the oracle is running for FluoAdminImpl.remove(), when I did some preliminary fooling around I noticed that.
Going by your test outline in #999 this test would write some table data, call remove, and read the table make sure it was actually cleared. I was thinking of writing to the table using a mutation and batch writer and then call remove and create a scanner and verify the entries are cleared. Am I in the right direction? I am still familiarizing myself with Accumulo.
Thank you!

I was thinking of writing to the table using a mutation and batch writer and then call remove and create a scanner and verify the entries are cleared. Am I in the right direction?

For that test I was thinking of reading and writing data using Fluo's API.   Only using the Accumulo API for the test would ensure the table was cleared, however it would not ensure that zookeeper was cleared.

Closed by 1cc9276e454505b82d15f72ef7be1c3008606d43


resizing the window halves image sizes on retina displays

Versions

Python: 3.7.2
OS: macOS 10.14.3
Kivy: 1.11.0.dev0 (and before that, 1.10.1)
Kivy installation method: git clone (and before that, pip install)

Description
What are you trying to get done?
I'm trying to display an image correctly when resizing the window on a retina display.
what has happened?
The image is halved in height and width when resizing the window.
what went wrong, and what did you expect?
The image being half-sized (well, really, quarter-sized, by area), is wrong.  I expect it to scale correctly for the display.
other
The image scales just fine on a non-retina display.  With the code sample below, it scales fine when the window is moved on a retina display.
Without the image reload code, the image remains 1/4 size when moving or resizing the window.
With the image reload code, the image remains 1/4 size when resizing the window, but scales up as I expect/want when moving the window.
I'm confused what's going on - the reload from disk every 0.1s is gross, but I expect it at least to work consistently.  I don't understand why reloading the image makes it scale correctly when the window moves, but not when it's resized.
I've tried putting the image in a layout and calling do_layout, I've tried explicitly setting the image size with & without kivy.metrics.dp in the _resize func, and I've tried taking action on window resize, to no avail.
Code and Logs
class App(app.App):
    def build(self):
        clock.Clock.schedule_interval(self._resize, 0.1)
        self._image = image.Image(source=IMAGE_PATH, allow_stretch=False)
        return self._image

    def _resize(self, dt):
        self._image.reload()

if __name__ == "__main__":
    App().run()

[INFO   ] Kivy: v1.10.1
[INFO   ] Python: v3.7.2 (default, Jan 10 2019, 12:43:58)
[Clang 10.0.0 (clang-1<IP_ADDRESS>)]
[INFO   ] Factory: 194 symbols loaded
[INFO   ] Image: Providers: img_tex, img_imageio, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO   ] Window: Provider: sdl2
[INFO   ] GL: Using the "OpenGL ES 2" graphics system
[INFO   ] GL: Backend used <gl>
[INFO   ] GL: OpenGL version <b'2.1 ATI-2.4.10'>
[INFO   ] GL: OpenGL vendor <b'ATI Technologies Inc.'>
[INFO   ] GL: OpenGL renderer <b'AMD Radeon Pro 555 OpenGL Engine'>
[INFO   ] GL: OpenGL parsed version: 2, 1
[INFO   ] GL: Shading version <b'1.20'>
[INFO   ] GL: Texture max size <16384>
[INFO   ] GL: Texture max units <16>
[INFO   ] Window: auto add sdl2 input provider
[INFO   ] Window: virtual keyboard not allowed, single mode, not docked
[INFO   ] GL: NPOT texture support is available
[INFO   ] Base: Start application main loop
[INFO   ] Base: Leaving application in progress...

(I've also tried with allow_stretch=True and without specifying it at all - same behavior in all cases)

Turns out this is only a thing when the primary monitor is a standard-resolution one.  When I repeat this with the external monitor unplugged, and only my retina display available, I don't have any resizing issues.

Could you provide a GIF or Video that demonstrate the issue?
What SDL2 version do you have used? (I remember old one were having issue with monitors and DPI)

Problem is related to DPI calculation. I had similar problem, and I (with @tshirtman help) discovered that it happends when you run window in non-retina display, then move it to retina, and then you resize it. In such case it still uses non-retina dpi and thus the effect.
I made experiment, and when I copied code from here: https://github.com/kivy/kivy/blob/715417e389b3d13115811cfccaf8b408963739e0/kivy/core/window/window_sdl2.py#L278 to here: https://github.com/kivy/kivy/blob/715417e389b3d13115811cfccaf8b408963739e0/kivy/core/window/init.py#L1440, then it works ALMOST like a charm. I mean, window content stretches to whole window, but fonts are 2x smaller than they would be when started on retina.
And I have no idea, where should I look for re-calculating font size to new DPI?

I made small experiment here https://github.com/mahomahomaho/kivy/pull/new/6144-retina-dpi-issue

it works like on the movie: https://transfer.sh/kivy-retina-fix.mp4

It's definitively not well done, but better than it is now. Question is - what should be done next? How to rescale fonts?

@mahomahomaho I just checked your diff, the code used for recalculating the dpi should be not duplicated (it's already in window_sdl2 only right now), find a way to make it work on all providers then (maybe update_viewport is the right place to go)
As for the font size, there is multiple things:

the dp/sp notation uses Metrics.density, which is behind a reify. Aka there is a cache and it doesn't change once calculated. You need to find a way to invalidate the cache when the density change. A notation like Metrics.density.invalidate(), but then you need to change the reify implementation.
more globally, once rendered, if the widget graph is not retraveresed to force the rendering, then your font won't change. Fbo for example won't be rerendered if the window density changed. We don't want dp/sp to be dynamic either (would be nice, but super huge slowdown to track all of them). I suggest at least to make a density dynamic property on Window itself. The user can attach and refresh rendering if necessary.

@tito: of course it shouldn't be duplicated. It was only experiment.
I tried to follow your hint, and changed all @reify with @property in Metrics - no luck. The font is still 2x smaller when resized. So I think that invalidating reified "properties" is blind alley.
However, I have no idea, where should I go now.
I'm considering just accepting the fact that fonts will be screwed :).

Hi.
I made pull request #6289  - it partially fixes this issue. I mean fonts still are wrong (too small or too large), but at least window content is in it's whole area, not in top-left quarter. In many situations (eg. my situation) it's enough

This issue is also evident while using screen emulation on a retina screen,  you can simply test with  python main.py -m screen:droid2,portrait

Let track it here: https://github.com/kivy/kivy/issues/6785


Support also for SX1268 would be great :-)

When ordering the boards of the Lora T-Beam, I paid attention to the frequency 430MHz, but unfortunately did not see the difference between SX1278 and SX1268.
Now I have some SX1268 boards here in my hand which unfortunately do not work.
Failure is "Error - Starting LoRa failed! "
I have also SX1278, they work really fine :-) great Job from Ricardo.
thanks and best regards
73, Thomas

@richonguzman Can you please confirm that SX1268 boards do not work ?
Would be useful, cheers 73 Julien

Sx1268 chips will work in the future , right now they don’t (I need one board to further test it )
Saludos,
Ricardo / Richon
(Enviado desde mi celular a tubos)
El 21-07-2023, a las 16:02, jranma @.***> escribió:

@richonguzmanhttps://github.com/richonguzman Can you please confirm that SX1268 boards do not work ?
Would be useful, cheers 73 Julien
—
Reply to this email directly, view it on GitHubhttps://github.com/richonguzman/LoRa_APRS_Tracker/issues/8#issuecomment-1646180995, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQWBUGV5FV6D5PXMVSPGRNDXRLN45ANCNFSM6AAAAAA2OXC77U.
You are receiving this because you were mentioned.Message ID: @.***>

@richonguzman Thanks for your great work. I sponsored you as a modest contribution to buy the card ;)
Best 73, Julien

Great
Will search the way to get one and update all to work
Saludos,
Ricardo / Richon
(Enviado desde mi celular a tubos)
El 21-07-2023, a las 16:17, jranma @.***> escribió:

@richonguzmanhttps://github.com/richonguzman Thanks for your great work. I sponsored you as a modest contribution to buy the card ;)
Best 73, Julien
—
Reply to this email directly, view it on GitHubhttps://github.com/richonguzman/LoRa_APRS_Tracker/issues/8#issuecomment-1646194496, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQWBUGXNKCAW7EKQS2NLBV3XRLPXBANCNFSM6AAAAAA2OXC77U.
You are receiving this because you were mentioned.Message ID: @.***>

I received the board and currently working on it , wait just a little!

hi, new version specially for SX1268 board is available now... please test as it is running smooth now for me
please test and confirm!

I got board with SX1268 and seems to me that it does not work well. On radio listening 433.775 is quite different against ordinary T-beam with SX1278 and igate received one packet on power on only. see:
https://aprs.fi/#!mt=roadmap&z=11&call=a%2FOK2MNL-16&timerange=3600&tail=3600

@kratinoska , please consider two things

using aprs.fi for determining if an specific iGate has rx you is not feasible. If several iGates do rx you only the "fastest" one will be shown on aprs.fi
sx1268 is generally more sensitive in rx compared to sx1278, but does not tolerate big frequency offsets. sx1268 may tolerate +/-3kHz, sx1278 +/-10kHz or even more

For evaluation use Ricardos iGate connected to serial console and transmit with the tracker. Each frame should be visible in the serial console, including the offset.

In Brno city we have few iGates based on OE FW.
My T-Beam with SX1268 and Ricardo FW:
I turn on T-beam and only one pocket (possition) was received and shown on Aprs.fi
https://aprs.fi/#!mt=roadmap&z=11&call=a%2FOK2MNL-16&timerange=3600&tail=3600
T-beam was on during my way to work (approx 20 minutes). And no other "mark" shown on maps....

can you explain it better, I did not get your testing scenario or your configuration of the tracker

probably bad koax connection between t-beam and antena, ...

confirmed. With new cable it works very well.


Add Noto Sans from Google Fonts

Apparently, the Noto Sans font family is not always available on all Linux and Android distros so it needs to be imported from Google Fonts. And hopefully, it'll work everywhere.
Oops! 😅
I don't know if I should put the @import rule in the _global.scss  or the _typography.scss file. I ended up putting it in the _global.scss file and it worked just fine the last time I checked, I think 😅.

Heya @hohaicongthuan, thanks for this, but I don't think this addition is a good idea due to the following reasons:

This introduces a network request for the font the first time Linux/Android users attempt to load sites using our 7.css package, which is a side effect we likely don't want to force upon the sites and the users themselves.
There are 2 import ways supported for this package: as a whole stylesheet or individual components. The latter will skip the font entirely if the dev decides not to import the _global.scss or _typography.scss or _variables.scss, wherever the @import rule may be placed.

Therefore, I reckon we keep it simple, either they get to see the font if it's available on their device, or just plain sans-serif otherwise. Happy to hear your thoughts on this.

Hey @khang-nd, thanks for the clarification.
Just letting you know, I'm not really super familiar with the whole package development thing. So about the first reason, is it bad to have an additional network request? My guess is a package has to be self-contained and doesn't introduce any external stuff outside the package per se?
On second thought about where the @import should go, _typography.scss might be the best place for it and it's up to the developers if they want to use Windows 7's typography.
Anyway, if you think it's not gonna work out, please feel free to reject this PR. No sweat.
Regards.

The network request thing is pretty much my personal opinion to be honest, I don't have a solid source to prove my point, I guess it's neither bad nor anti-pattern for a CSS package to use such approach, but putting myself in the dev/user's shoes, I wouldn't want a package I use to add a side effect for something I might not need without a way to override that behavior (you can't override the @import rule in an externally imported stylesheet). If they want to have the font supported somehow, it's easier for them to just add the import rule in their stylesheet instead.
With that said, I'm gonna close this PR. Thanks mate for the PR regardless 🙂