Why judge empty in update?

Hi, it is noticed in pkg/api/update.go#L367, the code judges whether the value is empty. The value is raw content provided by user, and the user might update the instance using empty value. For example, user might update a cosmos instance using {"readRegions": []} to delete all existing read regions. Is there any special concern doing the judgement here?

@norshtein have a look at the comment above that line. It explains why it is done. Short answer is that it is to conform to spec.

But... I'll review whether there is a better way to do this that will conform with spec and address your use case.

Ok... ya... there's no point to that line.
I agree it should go.


featSupport Pre-Execution Authentication for HMS Type Iceberg Catalog Operations

What problem does this PR solve?
Support Pre-Execution Authentication for HMS Type Iceberg Catalog Operations Summary
This PR introduces a new utility class, PreExecutionAuthenticator, which is designed to ensure pre-execution authentication for HMS (Hive Metastore) type operations on Iceberg catalogs. This is especially useful in environments where secure access is required, such as Kerberos-based Hadoop ecosystems. By integrating PreExecutionAuthenticator, each relevant operation will undergo an authentication step prior to execution, maintaining security compliance.
Motivation
In environments utilizing an Iceberg catalog with an HMS backend, many operations may require authentication to access secure data or perform privileged tasks. Given that operations on HMS-type catalogs typically run within a Hadoop environment secured by Kerberos, ensuring each operation is executed within an authenticated context is essential. Previously, there was no standardized mechanism to enforce pre-execution authentication, which led to potential security gaps. This PR aims to address this issue by introducing an extensible authentication utility.
Key Changes
Addition of PreExecutionAuthenticator Utility Class
Provides a standard way to perform pre-execution authentication for tasks. Leverages HadoopAuthenticator (when available) to execute tasks within a privileged context using doAs. Supports execution with or without authentication, enabling flexibility for both secure and non-secure environments. Integration with Iceberg Catalog Operations
All relevant HMS-type catalog operations will now use PreExecutionAuthenticator to perform pre-execution authentication. Ensures that operations like createDb, dropDb, and other privileged tasks are executed only after authentication. Extensible Design
PreExecutionAuthenticator is adaptable to other future authentication methods, if needed, beyond Hadoop and Kerberos. CallableToPrivilegedExceptionActionAdapter class allows any Callable task to be executed within a PrivilegedExceptionAction, making it versatile for various task types.
Check List (For Author)

Test

[x] Manual test (add detailed scripts or steps below)

mysql> CREATE TABLE ha
    ->        (
    ->            vendor_id BIGINT,
    ->            trip_id BIGINT,
    ->            trip_distance FLOAT,
    ->            fare_amount DOUBLE,
    ->            store_and_fwd_flag STRING,
    ->            ts DATETIME
    ->        );
Query OK, 0 rows affected (2.08 sec)

mysql> show create table ha;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ha    | CREATE TABLE `ha` (
  `vendor_id` bigint NULL,
  `trip_id` bigint NULL,
  `trip_distance` float NULL,
  `fare_amount` double NULL,
  `store_and_fwd_flag` text NULL,
  `ts` datetimev2(6) NULL
) ENGINE=ICEBERG_EXTERNAL_TABLE
LOCATION 'xxxxx'
PROPERTIES (
  "doris.version" = "doris-2.1.6-rc04-67ee7f53e6",
  "write.parquet.compression-codec" = "zstd"
);

mysql>        INSERT INTO iceberg.ck_iceberg.ha
    ->        VALUES
    ->         (1, 1000371, 1.8, 15.32, 'N', '2024-01-01 9:15:23'),
    ->         (2, 1000372, 2.5, 22.15, 'N', '2024-01-02 12:10:11'),
    ->         (2, 1000373, 0.9, 9.01, 'N', '2024-01-01 3:25:15'),
    ->         (1, 1000374, 8.4, 42.13, 'Y', '2024-01-03 7:12:33');
Query OK, 4 rows affected (5.10 sec)
{'status':'COMMITTED', 'txnId':'35030'}

mysql> select * from ha;
+-----------+---------+---------------+-------------+--------------------+----------------------------+
| vendor_id | trip_id | trip_distance | fare_amount | store_and_fwd_flag | ts                         |
+-----------+---------+---------------+-------------+--------------------+----------------------------+
|         1 | 1000371 |           1.8 |       15.32 | N                  | 2024-01-01 09:15:23.000000 |
|         2 | 1000372 |           2.5 |       22.15 | N                  | 2024-01-02 12:10:11.000000 |
|         2 | 1000373 |           0.9 |        9.01 | N                  | 2024-01-01 03:25:15.000000 |
|         1 | 1000374 |           8.4 |       42.13 | Y                  | 2024-01-03 07:12:33.000000 |
+-----------+---------+---------------+-------------+--------------------+----------------------------+
4 rows in set (1.20 sec)

Behavior changed:

[x] No.
[ ] Yes.

Does this need documentation?

[x] No.
[ ] Yes.

Release note

None

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

run buildall

run buildall


CI: try caching apt repos

Not sure if this works anymore... docs are gone?

not supported anymore :/


Add satellite topics

Add all non-commercial with a status of operational, standby or commissioning as defined in the OSCAR Satellite DB using the following topics.

weather > space-based-observations > satellite > instrument
space-weather > space-based-observations > satellite > instrument

satellite-topics-final-draft.xlsx
~* weather > space-based-observations > orbit-type > sensor-type > satellite-name > data-type~
~* space-weather > space-based-observations > orbit-type > sensor-type > satellite-name > data-type~

at the moment EUMETSAT/us-cimss use topics like
weather/space-based-observations/satellite4nowcasting/Meteosat-10/ImageL1-5
weather/space-based-observations/satellite4nwp/METOP-B/IASIL1
so perhaps add a level for satellite4nowcasting/satellite4nwp (or replace orbit)
and first satellite-name?

TT-WISMD 2024-03-25:

CGMS agrees on structure
we can do first pass based on geostationary and sun synchronous orbit types
we can manage as a single CSV that tooling can create the hierarchy as TTLs

ACTION: @amilan17 to create single CSV for review/integration

@wmo-im/tt-wismd - flat tree CSVs are now available for space-based-observations under weather and space-weather. I decided to name the files "index-flat-tree.csv", but of course this is not fixed
I talked with @efucile after the meeting and the following is recommended.

include all operational non-commercial satellites
change processing-level to data-type which will allow for adding other things such as ancillary data
only include processing level 0 and 1, because level 2 and level 3 are more like products and it probably needs more thought

TT-WISMD 2024-04-22

PR in #127
timing

CGMS to review/approve by 31 May 2024
we then have 6 weeks for FT2024-02 submission (mid-July 2024)

@amilan17 to trigger @wmo-im/tt-wismd to review #127 when CGMS approved
we need to update TTL generation scripts to support the flat CSV structure (@tomkralidis @josusky @antje-s)

Hi, I have checked the index-flat.csv files and I have two questions:

If a column is called "-description" (e.g. "satellite-description"), shall it be treated as description for "" (e.g. "satellite")? Seems obvious, but the code needs exact rules, so I am double checking. In other words, this 4-column tables represent two levels of TH.
The "instruments" are usually unique for each satellite. Therefore, do we want to create a sub-register "satellite" that will have about 200 entries and then for each of those a sub-register with "instrument" that will have a few concepts (even if some concepts/instruments are not totally unique) ?

@josusky
If a column is called "X-description" (e.g. "satellite-description"), shall it be treated as description for "X" (e.g. "satellite")?   --> YES, but I welcome other more elegant solutions if available.

@amilan17 In my second question I am not asking about topic uniqueness, but about fact that e.g. instrument "cis" appears in satellite "cluster-1" as well as "cluster-2", "cluster-3", and "cluster-4". That is, one topic will be, ".../cluster-1/cis", other will be ".../cluster-2/cis" etc.. The description "Cluster Ion Spectrometry experiment (CIS)" will the appear in 4 *.ttl files, but I think this is acceptable, we have this sort of duplication at other places too, I just felt need to point it out.

This is what I meant, typical subtree for a satellite looks like this:
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace/swepam.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace/mag.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace/cris.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace/epam.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace/sepica.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace/swics.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace/swims.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace/sis.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/ace/uleis.ttl

where "ace" is a satellite and "swepam", "mag" etc are instruments. The duplication, repetition of instruments manifests like this:
$ find wis -name cis.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/cluster-1/cis.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/cluster-2/cis.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/cluster-4/cis.ttl
wis/topic-hierarchy/earth-system-discipline/space-weather/space-based-observations/cluster-3/cis.ttl

that is instrument/concept "cis" is defined 4 times in 4 different sub-registers/satallites. Not a big deal.

Thanks for the explanation


Uninstall support

Hey @rstacruz, I'm up for implementing pnpm uninstall support.
Could you give me a top-down view of what needs to be done and if there are any gotchas that I need to look out for?

I think I know how to do it.
The only gotcha is to remember that stores can be shared between several packages. The symlink in the package's node_modules can be deleted immediately but from the .store only if no other packages inside or outside of the store are dependent on it.
A store.json in the root of the store folder could contain a dictionary with information about which packages depend on which packages. E.g.
{
<EMAIL_ADDRESS>[
<EMAIL_ADDRESS>  ]
}

This means that<EMAIL_ADDRESS>is dependent on<EMAIL_ADDRESS><EMAIL_ADDRESS>cannot be deleted till it has dependents.

@zkochan awesome!


[BUG] - Not able to complete the roll-out from Byron to Alonzo on private network.

External:
Other:   trying to build private testnet
Summary
I was building a private testnet with the scripts from byron-to-alonzo and it failed in the last process going from Mary to Alonzo.
** please look at issue ( https://github.com/input-output-hk/cardano-node/issues/2971 ) for a different error I managed to get working if you need other information **
Steps to reproduce the behavior:

built the system with the TestShelleyHardForkAtVersion option enabled.
started nodes
ran update-1.sh
restarted the nodes.
ran update-3.sh ( I didn't have to run the second update because choosing option TestShelleyHardForkAtVersion allowed me to bypass update-2.sh)
restarted the node
ran update-4.sh
restarted the node
ran update-5.sh
restarted node

Expected behavior
the expected behavior is a private network running on the alonzo chain.
issue:

there was a command in update-5.sh that is looking for a file that is not present / was not created during the build process:
cardano-cli transaction submit --cardano-mode --testnet-magic 42 --tx-file mary.tx
because there is no mary.tx file, i received the error:
Command failed: transaction submit  Error: mary.tx: mary.tx: openBinaryFile: does not exist (No such file or directory)

upon re-start of the nodes there was the error:
[ip-172-3:cardano.node.Forge:Error:34] [2021-07-27 00:21:49.80 UTC] fromList [("val",Object (fromList [("kind",String "TraceNoLedgerView"),("slot",Number 40924.0)])),("credentials",String "Cardano")]

the node stopped making blocks at the Mary era:
    "epoch": 25,
    "hash": "6ff5f8a1e66cb745edf5d94cf90886ec4d5093e498ae77f23c0edbafc97f928f",
    "slot": 36190,
    "block": 3736,
    "era": "Mary"
}```

**System info (please complete the following information):**
- OS Name: Ubuntu
- OS Version 20.04
- Node version cardano-node version 1.27.0
- CLI version  cardano-cli version 1.27.0

**Screenshots and attachments**
- If applicable, add screenshots, config files and/or logs to help explain the problem.

**Additional context**
Add any other context about the problem here.

Closing this. If this is still relevant please reopen.


Coin Selection

I've been thinking about coin selection recently. I looked at other coin selection algorithms and specificially CIP-2. None of these take multi assets into consideration and some other contraints like execution unit costs (having a lot of unnecessary assets in the inputs could easily exceed plutus script cost limits).
I took some of the ideas of Random Improve, because I think it's a good algorithm, but it simply needs to be adjusted for multiassets. Also the core principles are:

keep it simple
universally applicable to all kind of transaction types
low complexity and fast calculation
keep the amount of assets in inputs as small as possible
good utxo distribution over time

1. Random sampling:
a) Loop through all assets and ada in the outputs and randomly select inputs (inputs that contain the asset) until at least the target amount is reached.
b) If the target amount for the next asset is already reached through the selection of previous assets, don't look further (this helps with not overadding too many inputs).
2. Improvement phase
a) Our goal is to find better inputs. We consider something as better if:

we get closer to an ideal ADA amount (twice the target amount) => less utxo fractions overtime and better for covering fees and change outputs min ada requirements

we get closer to an ideal amount for all assets (here also twice the target amount for each asset). We model this through vectors, where  the dimension represents the amount of assets and the coordinate the quantity (e.g. x = [1,1,5], target = [2,4,8]). Then we normalize these vectors and take the euclidean distance. The closer the distance to 0 the better. (We do not want to do this when we interact with plutus scripts, then these weights are simply 0)

we have less assets in our inputs (when we interact with plutus scripts we put even more weight on this)

we never go below the least required amount for ada and all assets (put a very high weight, so this never happens)
We can model this through a cost function, where we apply weights to each criteria described above. Basically we try to punish the coin selection and try to find the best input set were it gets least punished:
 cost = 100000 * has_least_required_amount + w_1 * ideal_ada + w_2 * ideal_assets + w_3 * asset_len

w_n ∈ ℤ
has_least_required_amount ∈ {0,1}
ideal_ada, ideal_assets, asset_len ∈ [0,1]

b) We have 3 actions we can take to make improvements to our currently selected input set:

Replace: We replace a random utxo from our selected input set with a random utxo from the remaining set
Append: Append a utxo from the remaining set to the selected input set
Remove: Remove a random utxo from the selected input set

c) Loop for n iterations (n = 100 currently) and do:

Take an action and compare our previous state s_prev with our new state state s_new. If cost(s_new) < cost(s_prev) we apply s_new as our new input set.
In each iteration we try out different actions until one applies and then we go into the next iteration. If no applies we also go into the next iteration.

d) After the improvement iterations we get our final input set.

Did you look at the implementation of the off-chain code handling that IOG provides in the Contract module? Or do you see the above problems with that implementation as well?

The Contraints module helps you to build the tx in the way you need it. Lucid allows you to do exactly the same. So yeah this is covered as well. Basically any kind of transaction should be possible regardless of what you add and the coin selection should be able to find the right inputs.

You can run a one-pass filter on the utxos to split off those that have the assets you are looking for, those that contain only Ada, and those that contain Ada and assets your are not looking for.
I also distinguish between utxos that have only the asset I am looking for.
Within those filtered results, you can run your Random Sampling in this order:
Asset(s)

Random sample through utxos with only the required asset as needed
Random sample through utxos with the required assed and other assets as needed

Ada

Random sample (or even largest-first) through the utxos with only ada as needed
Random sample through all utxos that have not been chosen yet

No improvement step because you are guaranteed to be done as every pick is an improvement...
Important Note: Do not forget to increase the target quantity of Ada within the utxos selection loop to account for the carry necessary to send back the change output. The change output might contain a large number of random assets and the Ada necessary to send it back in change is NOT Ada that can be counted towards your coin selection target.

More opinonated take : At the last step where you need to scrounge for Ada within a bunch of utxos with assets you do not need, I actually do a weighted sorting when the weight is
weight = Ada / (1 + Number of Assets ^ 2)
and pick from those in order from the largest to the smallest so as to minimize my grabbing random junk. But I admit this is might be a matter of (even more) debate.

Was this ever implemented? I would love to have a utils function in Lucid to do random improve coin selection for me, right now it looks like Nami is not really doing it by default with .getUTxOs

I wonder if this proposal could work with Lucid: https://github.com/cardano-foundation/CIPs/pull/785


how to get log action name？

Where?

level = 'log': 'log' | 'console' | 'warn' | 'error' | 'info'   is console.log  ,I want to get action name save project inside

Write your own redux middleware.


COMMENTS API: User's honor points not updated when comment is being upvoted

When a user upvotes a comment, the author's honor points isn't increment by 1

Bug fix merged to master in commit #badad9c


allow users to define a callback queue when interacting with package collections

motivations: give users control on which dispatch queue callbacks are called on
changes:

add confguration option for PackageCollections to define the callback queue
wrap all callbacks in public APIs with the configured queue where available

cc @yim-lee lmk what you think

It's nice but not a must-have per our discussion

@swift-ci please smoke test


Add timelapse GUI with prebuilt image collections

Adding the timelapse GUI to the toolbar with prebuilt image collections, such as Landsat, Sentinel-2, MODIS.

The timelapse GUI for Landsat imagery has been implemented. Sentienal and MODIS to be added soon.
https://user-images.githubusercontent.com/5016453/112654456-cda4dd00-8e25-11eb-89d3-b913f9cb7866.mp4

This is great. Would it be possible to make time lapses work with any collection?

This is great. Would it be possible to make time lapses work with any collection?

Yes, you can create timelapse GIFs for any collection. See https://geemap.org/notebooks/16_add_animated_text/#Create-GIF-from-Earth-Engine-data

This feature has been implemented. Users can now create time-series cloud-free composites (e.g., Landsat, Sentinel-2, MODIS, NAIP) and visualize the collection using the time slider without coding. See notebook example https://geemap.org/notebooks/72_time_slider_gui
https://user-images.githubusercontent.com/5016453/113371163-ad988080-9333-11eb-94a9-a95d073faf26.mp4


Updated Italian localization

Description
Fixes a sentence translating "something" into "qualcosa" and underlining that's "from a Git repository" instead of "on
a Git repository"
Releated Issue
None
Checklist (for drafts):

[x] I read and understood the contributing guide as well as the code of conduct
[x] My changes generate no new warnings
[x] My code builds and runs on my machine
[ ] Review requested

Screenshots (if appropriate):

Hi @domenicoblanco , u could add these:
https://github.com/CodeEditApp/CodeEdit/blob/020e6ffc33c4626e5477deb7ddee8a8e6f0c85d6/CodeEdit/Localization/en.lproj/Localizable.strings#L26-L36

Surely, in a few hours I'll be back home and will update these strings c:


Setting up the FastAPI with a Mock Message

Description
Creating a sample API with FastAPI Framework which returns a mock JSON Message on a Uvicorn Server. The sample API would have just one endpoint for now and is required to set up the basic operations before we move ahead with integrating a database layer to our application.
Issue Reference
The Jira Ticket is available here
Primary Changes Done

Added main.py file to implement a Mock Server
Made a single endpoint to return a JSON Message
Added Requirements and README

This looks good @HarshCasper . Please squash and merge.


User can't view assignments for self.

Waiting assignments section will adding to panel.

already showed but only one button. its another bug.


Use emoji characters in Hackbot responses

I can’t test this and have no idea if it will fix the issue (#239)—but can we just use the emoji characters in the copy?

Happy to test this out when I can


Error: spawn flake8 ENOENT

The following error appears when opening a new python file (username is commented out):
Error: spawn flake8 ENOENT
    at getENOENTError (C:\Users\<username>\.atom\packages\linter-flake8\node_modules\sb-exec\lib\helpers.js:159:15)
    at ChildProcess.<anonymous> (C:\Users\<username>\.atom\packages\linter-flake8\node_modules\sb-exec\lib\index.js:50:46)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)

This error appears when flake8 is not installed.
pip install flake8


fix: snapshot version update

There was a problem with the latest release, version update action did not run properly.

There was a partial error as it seems on maven side, so restart did not help fully. But problem was only with the caffeine cache module, so not big deal. But the update version action was not able to run.


grpc_cli: 1.56.2 -> 1.57.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/grpc/grpc/releases.
meta.description for grpc_cli is: The command line tool for interacting with grpc services.
meta.homepage for grpc_cli is: https://github.com/grpc/grpc
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.57.0 with grep in /nix/store/2khhbhdih76gkdjlkqc96yqkj2n15lvj-grpc_cli-1.57.0
found 1.57.0 in filename of file in /nix/store/2khhbhdih76gkdjlkqc96yqkj2n15lvj-grpc_cli-1.57.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
grpc_cli

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2khhbhdih76gkdjlkqc96yqkj2n15lvj-grpc_cli-1.57.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A grpc_cli https://github.com/r-ryantm/nixpkgs/archive/fadfb84199c878e96a23512a6184372df38d7109.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2khhbhdih76gkdjlkqc96yqkj2n15lvj-grpc_cli-1.57.0
ls -la /nix/store/2khhbhdih76gkdjlkqc96yqkj2n15lvj-grpc_cli-1.57.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

grpc_cli

Maintainer pings
cc @doriath for testing.

Result of nixpkgs-review pr 251390 run on x86_64-linux 1

1 package built:

grpc_cli


Customizable threshold for summarized edges

Hi,
First, congrats for this great lib, very user-friendly and well-developed.
Are you planning on making the threshold at which edges start to get summarized customizable? I think it would be a useful quick win.
Thanks again

Thank you for the really quick answer! I'll keep the callback trick in mind for further customization.


Add support for ImageBackground

Adds the possibility to pass in a backgroundImageSource prop. This is useful when more complex background styles are required (such as a gradient or striped background)

@ptomasroos could this one get merged too?

Can you rebase this and I will merge it right away!

@FrikkieSnyman or @ptomasroos — Thank you for this update! To clarify, to use this does one simply add in the path to the image as a string and/or import it as a variable? I tried both, but nothing showed up.
Example of how I set it up on the  component.
backgroundImageSource={'../../assets/images/workout_feedback/progress-bar-gradient.svg'}

@FrikkieSnyman or @ptomasroos — Thank you for this update! To clarify, to use this does one simply add in the path to the image as a string and/or import it as a variable? I tried both, but nothing showed up.
Example of how I set it up on the component.
backgroundImageSource={'../../assets/images/workout_feedback/progress-bar-gradient.svg'}

@GedalyaKrycer the backgroundImageSource prop should work just like RN Image's source prop: https://reactnative.dev/docs/image#source

@rafaismyname thank you, that did the trick!

Nice.
Should we add something in the read me or in the Example/ ?

@echenran yes, it shows up behind the slider, and can be used as the track. See screenshot attached of what this looks like for how I'm using it in the app that we're building.

If so, is there some way to use an image for the selected part of the track?
I'm not aware of this functionality, but that said, I haven't looked at this repo again since I've made this contribution, so I don't know if it's been added.

But I'm sure @ptomasroos will appreciate if you made a PR with that functionality!


Snapshot service log rotation

Issue summary

A potential cause for an outage of the snapshot service is amassing too many logs.
root@forest-snapshot:~# uptime
 14:03:15 up 21 days, 46 min,  1 user,  load average: 0.13, 0.88, 1.94
root@forest-snapshot:~# du -sh logs/
4.5G    logs/

While this is not critical (we've got some slack when it comes to disk space, and we update the service often enough, e.g., for the network upgrades), it'd be nice to have it bounded to, e.g., 5 GiB, two last weeks or something along those lines.
Other information and links

@LesnyRumcajs, so basically we want to prune log files older than 2 weeks and more than 5GiB?

Perhaps just pruning files older than two weeks would be enough. If 2 weeks' worth of log files is more than 5 GB, we should fix the logging itself.

I think this is not bad for service close to one month of uptime.


qt6: expose darwinVersionInputs; python312Packages.{shiboken6,pyside6}: use qt6.darwinVersionInputs

Should fix the build.

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Maybe I'm holding staging-next PRs wrong, but I'm pretty sure this PR broke evaluation of pyside6 on non-Darwin platforms. OfBorg skipped building it, as it now depends on apple-sdk-15.0 on Linux.

https://github.com/NixOS/nixpkgs/pull/356081


Fix samples

thanks @mshima - trusting you on this :)

@MathieuAA the fix to bug-tracker sample is correct?

Looks okay yes

@mshima Not sure why you substitute pager with pagination?

@DanielFran : pager has been removed and replaced by pagination. It's similar to https://github.com/jhipster/jdl-samples/pull/20

I never realised that pager was removed... But I did not use it! :P


Interactions with other contracts

The way of interacting with other contracts should be selected. This should cover both directions:

precompiled -> regular
regular -> precompiled

If due to other decisions, some of the above are not possible, make it explicit.

Would be good to make those interactions as low cost as possible.

I'd leave it as is, meaning that the call is the same, but... we could precompile the whole contract being called if we can be that smart! For example, let's say it's a delegate to a SafeMath or whatever other library that we can make it precompiled, then, we could be much much faster with executing it.

wouldn't calling from regular to precompile behave like calling a precompile?, the other way around has the context switching in the call sight that might be a bit more complex to deal with

I'm not 100% if I understand the regular->precompile fully and AFAIK (which might be wrong) is that the call site management is different? We can dive into this during a call and have it sorted out what we'll cover and in which way.

regular to precompile as far as I know, is just simple CALL opcode (or one other variant of it), with the address of the precompile as an argument, pretty simple, so from regular to a IL precompiled contract it's gonna be straight forward, the inverse as we said in the previous call will be tricky

regular to precompile as far as I know, is just simple CALL opcode (or one other variant of it), with the address of the precompile as an argument, pretty simple, so from regular to a IL precompiled contract it's gonna be straight forward, the inverse as we said in the previous call will be tricky

only if datastructures are compatible, no idea how compiled contracts would access memory or stack - I expect them to use .Net stack rather than EvmStack for example.


Example of wrapper to tweak a concrete class

From the notes on the abstract-final pattern:

What about when you have an existing concrete class that you want to tweak just-a-little-bit? In this case, prefer composition over inheritance. Write a wrapper that forwards each method as appropriate.

Could you please give an example of how you would do this?
Assuming there's a way to do this without forwarding the methods one-by-one, I thought at first to write a class with no parents that 1) is composed of an instance of the wrapped module, 2) provides the tweaked method, and 3) implements __getattr__ to forward all the non-tweaked stuff to the wrapped module. However this clearly doesn't work: it doesn't forward magic methods like __call__, and once we call an untweaked method of the wrapped module, if the body of that method calls the method we're trying to tweak, it doesn't refer back to the wrapper, but calls the untweaked implementation in the wrapped class. And of course, the type of the wrapper instance doesn't check as that of the wrapped module.
Much of the internet advice about tweaking instances of Python classes assumes they are mutable, and the method can be re-assigned directly.
Thanks for writing Equinox. It's been a pleasure to use!

Much of the internet advice about tweaking instances of Python classes assumes they are mutable, and the method can be re-assigned directly.

Just so I understand you correctly -- are you trying to tweak an existing class, but keep the original version around -- or are you trying to monkey-patch the existing class itself?

If the latter, then you should be able to do this in Equinox just like anything else in Python; Equinox classes are still mutable:
import equinox
eqx.nn.MLP.__call__ = lambda self, x: x

although this definitely comes under the banner of "you probably don't want to do this"!

If the former (the more normal case), then read on.
So the intention I had when writing these notes really was to manually forward every method. But is sounds like you happen to have a lot of methods, and would maybe prefer a slightly more heavyweight solution to what is a slightly more heavyweight problem :)
In that case, I'd most recommend factoring out a common abstract base class. So right now you probably have code that looks something like:
class Foo(eqx.Module):
    def frobnicate(self):
        print("Foo!")

    def oblify(self):
        print("Kaboom!")

def accepts_foo(x: Foo):
    x.frobnicate()
    x.oblify()

And we'll refactor it into the following:
class AbstractFoo(eqx.Module):
    @abc.abstractmethod
    def frobnicate(self):
        pass

    def oblify(self):
        print("Kaboom!")

class Foo(AbstractFoo):
    def frobnicate(self):
        print("Foo!")

class Bar(AbstractFoo):
    def frobnicate(self):
        print("Bar!")

def accepts_foo(x: AbstractFoo):
    x.frobnicate()
    x.oblify()

I hope that helps!

Thanks! I think I've been leaning toward monkey-patching because I'm trying to avoid using an abstract base class.
I suppose I should be a bit more specific. I have an eqx.Module whose __call__ implements an empirical model of muscle contraction. It has lots of parameters which I'm implementing as module fields.
Here's a simplified version:
class MuscleModel(eqx.Module):
    beta: float
    omega: float
    rho: float
    # plus about 15 more floats/2-tuples of floats

    def __call__(self, input, state):
        intermediate_1 = self.intermediate_1(state)
        intermediate_2 = self.intermediate_2(state)
        muscle_tension = self.tension(intermediate_1, intermediate_2, input, state)
        return muscle_tension

    def intermediate_1(self, state):
        return self.beta * state.something ** self.omega

    def intermediate_2(self, state):
        ...

    def tension(self, intermediate_1, intermediate_2, input, state):
        ...

The issue is that there are a number of slightly different implementations of this model. Some would instantiate the full model with a full set of parameters. Others introduce various simplifications, which can be expressed by replacing or bypassing one or two of the intermediate methods.
I've suspected that the most correct thing to do would be to make MuscleModel an abstract base class, then write final classes for the full model and for each possible simplification. But that would mean something like 20 AbstractVars which would need to be implemented again each time.
So I guess I feel trapped between using a hacky but straightforward monkey-patch solution, versus doing something really long and ugly but more correct. Maybe I could store all the parameters in a PyTree, but I think that might introduce other inconveniences—mainly less readable methods.
Oh, and thanks for making it really clear that classes can be mutated. For some reason I was trying to mutate the instances, and of course encountered FrozenInstanceError.

Okay! So I think I can see several possible solutions, from what you've said. (And first of all, monkey patching is not one of them. Let's avoid that unless we absolutely have to!)
Option 1: Just have one model class, with flags
class MuscleModel(eqx.Module):
    beta: Optional[float]
    omega: Optional[float]
    rho: float

    def __check_init__(self):
        if (beta is None) != (omega is None):
            raise ValueError("If either beta or omega are provided then both must be provided")

    def __call__(self, input, state):
        intermediate_1 = self.intermediate_1(state)
        intermediate_2 = self.intermediate_2(state)
        muscle_tension = self.tension(intermediate_1, intermediate_2, input, state)
        return muscle_tension

    def intermediate_1(self, state):
        if beta is None:
            assert omega is None
            return None
        else:
            assert omega is not None
            return self.beta * state.something ** self.omega

    def intermediate_2(self, state):
        ...

    def tension(self, intermediate_1, intermediate_2, input, state):
        ...

This is a little ugly in that it requires the consistency check; you could maybe consider replacing the parameter with a single beta_omega: Optional[tuple[float, float]] so that you automatically have both being provided or neither being provided.
In this case we're using the availability of a parameter as a flag, but we could also use an explicit boolean if that made more sense for some reason.
Option 2: ABCs
class AbstractMuscleModel(eqx.Module):
    def __call__(self, input, state):
        intermediate_1 = self.intermediate_1(state)
        intermediate_2 = self.intermediate_2(state)
        muscle_tension = self.tension(intermediate_1, intermediate_2, input, state)
        return muscle_tension

    @abc.abstractmethod
    def intermediate_1(self, state):
        pass

    @abc.abstractmethod
    def intermediate_2(self, state):
        pass

    def tension(self, intermediate_1, intermediate_2, input, state):
        ...

class FooMuscleModel(AbstractMuscleModel):
    beta: float
    omega: float

    def intermediate_1(self, state):
        return self.beta * state.something ** self.omega

    def intermediate_2(self, state):
        return None

Note that the ABC doesn't actually introduce any AbstractVars, as at least in this MWE it doesn't explicitly access any (they're only used in the methods of the subclass). So maybe the extra verbosity there can be skipped. (In particular, it sounds like you only need some parameters for some cases -- so you probably don't want to declare them all as AbstractVars on the ABC anyway.)
A variation on this btw is to explicit declare all fields (non abstractly!) in the ABC, and have them be shared by all subclasses. The pattern recommended in the guide is that all fields (and the __init__ method) all be declared in precisely one class in the hierarchy. That's usually the concrete subclass at the bottom, but it doesn't have to be.
Option 3: dependency inversion
class AbstractIntermediate(eqx.Module):
    @abc.abstractmethod
    def __call__(self, state):
        pass

class FooIntermediate(AbstractIntermediate):
    beta: float
    omega: float

    def __call__(self, state):
        return self.beta * state.something ** self.omega

class MuscleModel(eqx.Module):
    intermediate_1: AbstractIntermediate
    intermediate_2: AbstractIntermediate

    def __call__(self, input, state):
        intermediate_1 = self.intermediate_1(state)
        intermediate_2 = self.intermediate_2(state)
        muscle_tension = self.tension(intermediate_1, intermediate_2, input, state)
        return muscle_tension

    def tension(self, intermediate_1, intermediate_2, input, state):
        ...

MuscleModel(FooIntermediate(beta=2.0, omega=1.0), ...)

This last one is actually a variation of the Optional[tuple[float, float]] we saw in Option 1. An instance of FooIntermediate is basically the same as a tuple[float, float]: it just packages two floats together. The only difference is where we put the self.beta * state.something ** self.omega logic. If you're developing at library, then this comes with one potential advantage over Option 1: a downstream user can come along and implement some BrandNewIntermediate with their own __call__ logic -- without needing any changes to MuscleModel itself.

Anyway, as you can see, you've got quite a few options! All of them are usually reasonable approaches. (And the fact that there are multiple ways of tackling problems like this serves to demonstrate why the abstract/final pattern is one I've never found restrictive.)

Thanks for the detailed answer! My situation seems much clearer to me, now. I'm sure one of the approaches you've suggested will work.
Option 3 probably makes the most sense. I am writing a library and I'd like the implementation to be flexible.


Hang on two gpu training

Hi there, I try to run pretrain tiny-llama with 8GPU server.
If I only use one GPU is fine. After I changed to multiGPU it just hung, The NCCL log of two-gpu run
is listed below.
The error msg is Estimated TFLOPs: 84.51
g3-xlarge-x86-dal-1:3263:3263 [0] NCCL INFO Bootstrap : Using eno1:<IP_ADDRESS><0>
g3-xlarge-x86-dal-1:3263:3263 [0] NCCL INFO NET/Plugin : Plugin load (libnccl-net.so) returned 2 : libnccl-net.so: cannot open shared object file: No such file or directory
g3-xlarge-x86-dal-1:3263:3263 [0] NCCL INFO NET/Plugin : No plugin found, using internal implementation
g3-xlarge-x86-dal-1:3263:3263 [0] NCCL INFO cudaDriverVersion 12010
NCCL version 2.18.1+cuda12.1
g3-xlarge-x86-dal-1:3419:3419 [1] NCCL INFO cudaDriverVersion 12010
g3-xlarge-x86-dal-1:3419:3419 [1] NCCL INFO Bootstrap : Using eno1:<IP_ADDRESS><0>
g3-xlarge-x86-dal-1:3419:3419 [1] NCCL INFO NET/Plugin : Plugin load (libnccl-net.so) returned 2 : libnccl-net.so: cannot open shared object file: No such file or directory
g3-xlarge-x86-dal-1:3419:3419 [1] NCCL INFO NET/Plugin : No plugin found, using internal implementation
g3-xlarge-x86-dal-1:3419:3812 [1] NCCL INFO Failed to open libibverbs.so[.1]
g3-xlarge-x86-dal-1:3419:3812 [1] NCCL INFO NET/Socket : Using [0]eno1:<IP_ADDRESS><0> [1]eno2:<IP_ADDRESS><0>
g3-xlarge-x86-dal-1:3419:3812 [1] NCCL INFO Using network Socket
g3-xlarge-x86-dal-1:3263:3811 [0] NCCL INFO Failed to open libibverbs.so[.1]
g3-xlarge-x86-dal-1:3263:3811 [0] NCCL INFO NET/Socket : Using [0]eno1:<IP_ADDRESS><0> [1]eno2:<IP_ADDRESS><0>
g3-xlarge-x86-dal-1:3263:3811 [0] NCCL INFO Using network Socket

4 GPU and 8 GPU training is even worse, the code will stuck there and I have to restart to get my control

My cuda version is 12.1

@TeddLi I would take a raw PyTorch example to test multi-GPU (https://github.com/pytorch/examples/tree/main/distributed)? To me it looks like any PyTorch multi-GPU would have trouble on your machine. It's unlikely specific to Lightning or lit-gpt. And why are you setting export NCCL_P2P_DISABLE=1, this should not be disabled otherwise you will get a horribly slow GPU connection.

@TeddLi So it looks like PyTorch/NCCL is not able to set up the communication between the GPUs. It's not related to Lightning. I can only guess, these things are hard to diagnose.
Often on some systems, it is because of IOMMU. Try to disable it:
https://github.com/pytorch/pytorch/issues/24081#issuecomment-557074611
https://github.com/pytorch/pytorch/issues/24081#issuecomment-569437435
But I don't know if that will help. I only know it's not uncommon, so maybe worth a try. Also make sure your GPU driver is up-to date for your system.

I don't have anymore ideas. I suggest you also ask on the PyTorch forum.


Combine transition systems of Substates

Objective
Prerequisite to #13579.
Combine separate Substates transition systems to centralize transition logic and exert more control over it.
Solution
Originally the transition happened in 2 stages:

apply_state_transition in ManualTransitions handled NextState,
closure system in DependentTransitions handled parent-related changes, insertion and deletion of the substate.

Now:

Both transitions are processed in a single closure system during DependentTransitions.
Since Substates no longer use ManualTransitions, they've been renamed to RootTransitions. Only root states use it.
When Substates state comes into existence, it will try to initialize from NextState and fallback to Default::default()
Added missing dependency of Substates on Default trait.
Remove apply_state_transition from public API.

Consequentially, removed the possibility of multiple StateTransitionEvents when both transition systems fire in a single frame.
Changelog

Renamed ManualTransitions to RootTransitions.
Substates will initialize their value with NextState if available and fallback to Default::default().
Substates require Default trait.

@lee-orr, I'd value your review here.


fix(metrics): avoid port in connection metrics label

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Temporarily resolve https://github.com/risingwavelabs/risingwave/issues/12848
On server side, each client connection will be assigned a new port. Therefore every new client request will assign a new label in the connection metrics, and when the connection is finished, the metrics is leaked, causing the large volume of connection metrics.
In this PR, we temporarily fix this issue by only using the ip as the label, so that different port will not result in multiple labeled metrics. In the future we can leverage reference counting on the label metrics and automatically remove the label metrics when the reference counting reduces to 0.
Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[x] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

Seems the managed metrics are needed. 🥹 It's not convenient with tikv/rust-prometheus, maybe we should evaluate the offcial prometheus lib.


docs: add Validators hooks for PHP

This PR

add Validators hooks for PHP

Related Issues
Notes
Follow-up Tasks
How to test
Check out the preview site under PHP.

Looks good, thanks @tcarrio!


Slug for a text in Persian language is not generated correctly

Hi,
Thanks for the great package. I used it for my multilingual site and I realized that the slugs for the texts in Persian are not generated correctly. For example suppose the text "بسته اقفصادی" so the slug would be "بسته-اقتصادی" but it generates "basth-kfs-d"

You will need to look the underlying slug library, cocur/slugify to see why it's not working for you.
A quick look at https://github.com/cocur/slugify/tree/master/Resources/rules, and I don't think they have any rules for Persian.  I guess it's probably using the Arabic rules instead, which I'm guessing aren't 'exactly the same.
I'd recommend making a PR for cocur/slugify to add a Persian ruleset.


Homogenize Shelley versions in Cardano NTC versions

Closes #862
Note that CardanoNodeToClientVersion12 is experimental, so this change does not impact backwards-compatibility.

I like this changes :).


Log and ignore sharing disabled errors when doing permissions restores

We've encountered an error where the user previously had sharing for
one or more external users on an item and then did a backup. They
subsequently disabled sharing for the SharePoint site in either the
tenant-wide config or for the site in particular. Once sharing was
disabled, they attempted a restore which subsequently failed while
trying to restore sharing for the external user
This PR logs and ignores errors about sharing being disabled when
doing a restore
This has been tested manually

Does this PR need a docs update or release note?

[x] :white_check_mark: Yes, it's included
[ ] :clock1: Yes, but in a later PR
[ ] :no_entry: No

Type of change

[ ] :sunflower: Feature
[x] :bug: Bugfix
[ ] :world_map: Documentation
[ ] :robot: Supportability/Tests
[ ] :computer: CI/Deployment
[ ] :broom: Tech Debt/Cleanup

Test Plan

[x] :muscle: Manual
[x] :zap: Unit test
[ ] :green_heart: E2E

Let's also wait for @meain and @ryanfkeepers since they have more context.

@ashmrtn @pandeyabs looks good to me.  Some formatting nits, and a worry about ctx vs ictx.  But the behavior is sound overall.


ingress-shim: Skip updating Certificate resource if one already exists & not owned

Is your feature request related to a problem? Please describe.
In ingress-shim, currently, if two ingresses both specify the same Certificate resource and enable the 'tls-acme' auto annotations, yet have different domain names listed, ingress-shim will 'flap' between the two specifications.
Describe the solution you'd like
We should be more intelligent here - I think a good strategy would be:

If a Certificate already exists and has no owner reference, do nothing
If a Certificate already exists, and is owned by a different Ingress resource, do nothing
If a Certificate does not exist, create one and set the ownerReference to the current Ingress

This way, the 'first' ingress to be processed will ultimately become the owner.
The majority of users shouldn't really run into this situation anyway, as it is ultimately a misconfiguration. However, the current behaviour is less then ideal, and we can behave more sensibly in these cases 😄
Additional context
ref #1508
/area ingress-shim
/kind feature
/help
/good-first-issue
/priority important-soon
/milestone Next

/lifecycle active
/assign


Update ASI Camera SDK to version 1.14.0425

Change log is quite short this time :)
V1.14.0425 2019.4.26
Fix bugs

Thanks !


RadioTable badge columns should line wrap

ah, this is due to not using the badge-only mixin, defined in web/scss/components/Table/badges.scss


Segmentation Fault running AppImageUpdate on Ubuntu 18.04

I get a segmentation fault trying to run AppImageUpdate with no arguments on Ubuntu 18.04:
$ AppImageUpdate-x86_64.AppImage

AppImageUpdate version 1-alpha (commit 97645f5), build 40 built on 2021-11-10 17:47:46 UTC

(AppRun.wrapped:21216): GLib-GIO-CRITICAL **: 09:23:46.453: g_converter_convert: assertion 'outbuf_size > 0' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: Unable to load resource for composite template for type 'GtkDialog': The resource at “/org/gtk/libgtk/ui/gtkdialog.ui” failed to decompress

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.453: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): GLib-GIO-CRITICAL **: 09:23:46.495: g_converter_convert: assertion 'outbuf_size > 0' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: Unable to load resource for composite template for type 'GtkFileChooserDialog': The resource at “/org/gtk/libgtk/ui/gtkfilechooserdialog.ui” failed to decompress

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.495: gtk_widget_class_bind_template_callback_full: assertion 'widget_class->priv->template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: gtk_widget_init_template: assertion 'template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: _gtk_container_get_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: gtk_container_set_border_width: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: _gtk_container_set_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: _gtk_box_get_spacing_set: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.496: gtk_box_set_spacing: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: _gtk_box_set_spacing_set: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_button_box_get_layout: assertion 'GTK_IS_BUTTON_BOX (widget)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_box_set_spacing: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: _gtk_container_get_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_container_set_border_width: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: _gtk_container_set_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_widget_init_template: assertion 'template != NULL' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: _gtk_file_chooser_set_delegate: assertion 'GTK_IS_FILE_CHOOSER (delegate)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): GLib-GObject-WARNING **: 09:23:46.497: invalid (NULL) pointer instance

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.497: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_widget_set_visible: assertion 'GTK_IS_WIDGET (widget)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.497: gtk_widget_set_no_show_all: assertion 'GTK_IS_WIDGET (widget)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.497: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.497: g_object_get_property: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_container_add: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_container_child_set_valist: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_header_bar_set_show_close_button: assertion 'GTK_IS_HEADER_BAR (bar)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_container_add: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.498: gtk_container_child_set_valist: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.501: gtk_file_chooser_set_current_folder_file: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.501: gtk_file_chooser_set_current_folder_file: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_get_property: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.501: gtk_file_chooser_get_files: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_get_property: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): GLib-GObject-CRITICAL **: 09:23:46.501: g_object_setv: assertion 'G_IS_OBJECT (object)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.504: gtk_file_chooser_add_filter: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.505: gtk_file_chooser_add_filter: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.505: gtk_file_chooser_set_current_folder_file: assertion 'GTK_IS_FILE_CHOOSER (chooser)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.505: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.505: gtk_container_foreach: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_container_get_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_container_set_border_width: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_container_set_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_box_get_spacing_set: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_box_set_spacing: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_box_set_spacing_set: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_button_box_get_layout: assertion 'GTK_IS_BUTTON_BOX (widget)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_box_set_spacing: assertion 'GTK_IS_BOX (box)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_container_get_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: gtk_container_set_border_width: assertion 'GTK_IS_CONTAINER (container)' failed

(AppRun.wrapped:21216): Gtk-CRITICAL **: 09:23:46.506: _gtk_container_set_border_width_set: assertion 'GTK_IS_CONTAINER (container)' failed
Segmentation fault (core dumped)

Please see if the solution from https://github.com/AppImage/AppImageUpdate/issues/150 resolves this.
We should get rid of Gtk entirely. Not worth the hassle.

I think shipping those platform plugins was initially your idea, wasn't it? I remember a discussion about some "alien look". Aren't they built and installed in the CI scripts in this repository?

Without doing any modification to the appimage as described in https://github.com/AppImage/AppImageUpdate/issues/150
Just run from the console:
XDG_CURRENT_DESKTOP=dummy ./AppImageUpdate-x86_64.AppImage
See [squashfs-root]/apprun-hooks/linuxdeploy-plugin-qt-hook.sh
# generated by linuxdeploy-plugin-qt

# try to make Qt apps more "native looking" on Gtk-based desktops, if possible
# see https://github.com/AppImage/AppImageKit/issues/977#issue-462374883
case "${XDG_CURRENT_DESKTOP}" in
    *GNOME*|*gnome*|*XFCE*)
        export QT_QPA_PLATFORMTHEME=gtk3
        ;;
esac

"Native look" is so overrated... @BobSynfig mind to open an issue over at linuxdeploy-plugin-qt?

@TheAssassin I'd say let's just remove the offending parts as explained in #150, wdyt?

There is nothing wrong with shipping the platform themes.

...but apparently not with shipping its (Gtk) dependencies.

See https://github.com/AppImage/AppImageUpdate/issues/185#issuecomment-1024091513. "Guessing" that environment variable is the issue.


error during init in new version

Can you pls have a look: in eval_func.py
when calling
from keras_cv_attention_models import  beit
I get:
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3441, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "/tmp/ipykernel_43/2056746280.py", line 2, in
from keras_cv_attention_models import  beit
File "/opt/conda/lib/python3.7/site-packages/keras_cv_attention_models/init.py", line 26, in
from keras_cv_attention_models import imagenet
File "/opt/conda/lib/python3.7/site-packages/keras_cv_attention_models/imagenet/init.py", line 1, in
from keras_cv_attention_models.imagenet.eval_func import evaluation, plot_hists, combine_hist_into_one, parse_timm_log
File "", line 1
(train_epoch_end_pattern = )
^
SyntaxError: invalid syntax

Updated. It's my fault using python 3.8 print there, and my tests didn't report this...

thx :) looking good as far as I can see

Just fixed an issue for python 3.7, that when loading h5 model saved by pyrhon 3.8 will throw error keras ValueError: bad marshal data. This happens when reloading pretrained model weights with  a new input_shape... It should work better now.


22803 - Pasting text or link in edit message pastes the text or link in main compose box

Details
it's follow up fix for https://github.com/Expensify/App/pull/21583.The copy&paste handler wasn't checking whether the incoming event fired from text input/area. It should be handled in a similar manner to the document-scoped keyPressListner
Fixed Issues

$ https://github.com/Expensify/App/issues/22803
PROPOSAL:
Tests

Open the app
Open any report
Send any message
Copy any text
Edit message sent in step 3
Paste the text in edit message and observe that text is pasted in compose box

[X] Verify that no errors appear in the JS console

Offline tests

Same as test steps
QA Steps

Same as test steps

[X] Verify that no errors appear in the JS console

PR Author Checklist

[X] I linked the correct issue in the ### Fixed Issues section above
[X] I wrote clear testing steps that cover the changes made in this PR

[X] I added steps for local testing in the Tests section
[X] I added steps for the expected offline behavior in the Offline steps section
[X] I added steps for Staging and/or Production testing in the QA steps section
[X] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[X] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[X] I included screenshots or videos for tests on all platforms
[X] I ran the tests on all platforms & verified they passed on:

[X] Android / native
[X] Android / Chrome
[X] iOS / native
[X] iOS / Safari
[X] MacOS / Chrome / Safari
[X] MacOS / Desktop

[X] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[X] I followed proper code patterns (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[X] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[X] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I followed the guidelines as stated in the Review Guidelines
[X] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] I verified that if a function's arguments changed that all usages have also been updated correctly
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[X] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/61146594/e4e06575-0290-461f-9540-3fb30b9d4bd2

Mobile Web - Chrome

Mobile Web - Safari

Desktop
https://github.com/Expensify/App/assets/61146594/767b5491-c9bc-4a22-8b98-bb97bdbf0f84

iOS

Android

I've record the videos for platforms which handle copy&pasting without focus. Let me know if I should record all others.

On it

On it

Thanks for the urgency @Santhosh-Sellavel !

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web & Desktop
https://github.com/Expensify/App/assets/85645967/cd37f6be-1d31-47ed-9dee-d8caba983f86

Mobile Web - Chrome & Mobile Web - Safari
https://github.com/Expensify/App/assets/85645967/52d79330-c06c-4a30-9774-decd0e0f61ad

Thanks for the quick fix everyone.
@cristipaval do you mind requesting a CP for this in #deployer please? We're trying to close to close the checklist ASAP today.

Actually nevermind, I got this 😄

🚀 Deployed to staging by https://github.com/cristipaval in version: 1.3.40-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 1.3.40-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Update tests to support Textual 0.71

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

Project coverage is 93.06%. Comparing base (41248ed) to head (dce663a).
Report is 97 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #643      +/-   ##
==========================================
+ Coverage   92.55%   93.06%   +0.51%
==========================================
  Files          91       94       +3
  Lines       11304    11415     +111
  Branches     1581     2092     +511
==========================================
+ Hits        10462    10623     +161
+ Misses        837      792      -45
+ Partials        5        0       -5

Flag
Coverage Δ

cpp
93.06% <100.00%> (+7.12%)
:arrow_up:

python_and_cython
93.06% <100.00%> (-2.66%)
: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.

Deadlock reported at https://github.com/Textualize/textual/issues/4699


Look into why tearsheet math is broken

### Tasks
- [ ] v1 fix
- [x] v2 fix

@davidmenendez or I can port the fix over to v1.


feat: add PingAPI to check status of OSS and Cloud instance

Proposed Changes

Added PingAPI to check status of OSS and Cloud instance
Added an example how to use PingAPI
Added swift 5.5 to CI

Checklist

[ ] CHANGELOG.md updated
[ ] Rebased/mergeable
[ ] A test has been added if appropriate
[ ] swift test completes successfully
[ ] Commit messages are in semantic format
[ ] Sign CLA (if not already signed)

Codecov Report

Merging #39 (7a365f9) into master (2d21cfd) will increase coverage by 35.24%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##           master      #39       +/-   ##
===========================================
+ Coverage   52.02%   87.27%   +35.24%
===========================================
  Files         135       10      -125
  Lines        6199      707     -5492
===========================================
- Hits         3225      617     -2608
+ Misses       2974       90     -2884

Impacted Files
Coverage Δ

Sources/InfluxDBSwiftApis/InfluxDB2API.swift
95.45% <0.00%> (-4.55%)
:arrow_down:

Tests/InfluxDBSwiftTests/WriteAPITests.swift

...DBSwiftApis/Generated/SynchronizedDictionary.swift

...fluxDBSwiftApis/Generated/Models/BucketLinks.swift

...xDBSwiftApis/Generated/APIs/OrganizationsAPI.swift

...DBSwiftApis/Generated/APIs/ScraperTargetsAPI.swift

Tests/InfluxDBSwiftApisTests/DBRPsAPITests.swift

Tests/InfluxDBSwiftApisTests/TasksAPITests.swift

...s/InfluxDBSwiftApis/Generated/Models/DBRPGet.swift

...nfluxDBSwiftApis/Generated/Models/DBRPUpdate.swift

... and 116 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 2d21cfd...7a365f9. Read the comment docs.


JsonSchema4.FromUrlAsync failed with collection was modified error

I'm trying to create scheme for the following URL :
JsonSchema4 schema = JsonSchema4.FromUrlAsync("http://schemas.sportradar.com/bsa/json/v1/endpoints/soccer/team_profile.json").Result
i'm getting error : Collection was modified; enumeration operation may not execute.
Hope you can help to find the reason for the failure.

I saw this today as well on some schemas. Using v.7.3.6214.20986

v7.4

Wow, this is paid-subscription level turn-around time !
Confirmed, it works for my inputs as well.
Thank you!


Feature Request: Allow regexmatch on objects other than strings

It would be very helpful to be able to run a regexmatch check on an array, for example.
I found an easier way around the problem I wanted to solve, but the general functionality would still be powerful.
regexmatch("^\d{3}$", [1, 22, 333, 4444]) would match 333. But this opens the question of when the whole test is true. Do all elements of the array have to match (&&) or just one (||). Perhaps this could be an argument to regexmatch(pattern, object, strictness)

Yeah, I realized after your file.tags use-case that some better array support was needed. I have a slightly different idea for the implementation - I can make common methods like regexmatch "vectorized", which means they return an array of results if the input is an array. Then, I can add the any() and all() methods, which check if any/every element in an array is true or false. You could then check if any string matches via
any(regexmatch(regex, [...])
and all strings via
all(regexmatch(regex, [...])

Nice, this works better!
If regexmatch is vectorised, does that mean regexmatch(pattern, [...]) will return boolean[]?
That would be a useful intermediate result to do other things with. For example, would sum(regexmatch(pattern, [])) return the number of matches?

That's right, it would return boolean[]; and yes.

Upcoming in imminent release 0.2.4; pretty much everything is vectorized as well, so you can do lower(file.tags) or upper(file.tags) or replace(file.tags, ...) and get list results.

Released as part of 0.2.4; let me know what inevitably breaks!


Please Update the Library to Support Angular 14

Hello,  Please update The Package dependencies and dev dependencies to Support Angular 14.
Thanks

Hi please try v8.0.0

Hello @denniske can you please check it when you get a chance, v8.0.1 is throwing an error

What is the error?

error TS2307: Cannot find module 'ngx-translate-multi-http-loader' or its corresponding type declarations.
import {MultiTranslateHttpLoader} from 'ngx-translate-multi-http-loader'
                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This is thrown in the app module which stayed unchanged and is basically exactly like in the https://github.com/denniske/ngx-translate-multi-http-loader/blob/master/README.md. Obviously ngx-translate-multi-http-loader is actually installed and exists in node_modules.
Angular 14 + v7.0.5 seems to work regardless of the peer dependency warning, though. (But I haven't tested much.)

Hello @denniske, sorry crazy week. I didn't have time to reinstall and send the error to you. Please have a look at the above error

Hi, please check this repo: https://github.com/denniske/ngx-translate-multi-http-loader-demo-14
It runs npm start and npm run build without errors.

IHi @denniske, here is the error message that I am getting, even after reinstalling node_modules

can you start the application without errors? in that case a // @ts-ignore in the line above the import might help.

I am not sure what is the issue but I think it might be the easiest if you just copy the code from https://github.com/denniske/ngx-translate-multi-http-loader/blob/master/src/multi-http-loader.ts into your project instead using the library using npm to solve this issue.

@denniske  usually I am getting this kind of error when mistakenly publishing the library from /root not from /dist, is there any way to double-check if you published the library from /dist?

I see, thanks for opening the issue :)
I have ran npx tsc && npm publish --access=public and in the node_modules folder of my demo project I can see the generated *.d.ts file in the dist folder. So I think it is correctly published.

Hmm, strange... we are using your package in several projects, and here is the library structor from 7.x version

Yeah let me explain. So basically I just want to package this one file I mentioned earlier into an npm package. But with angular this has taken me so much effort to get it right: On every angular update I had to update so many dependencies / change so much stuff that I often just recreated the whole library.
So in the end I thought there has to be a simpler way and just put the one file into an npm package instead building an angular lib. And as it worked for me in the demo project I thought everything is fine.
But if this approach does not work, I am happy to give the project to another maintainer. I don't have the bandwidth to make it an angular lib anymore.

from package.json

Merged PR #13 from @almarro1 and published v8.0.2. Please check if it works now.

Thank you very much @denniske, I can confirm the problem is fixed on v8.0.2


dash character not excluded

Hello
I came across your website today and thought it's a good plugin for my purposes. one thing though, if you type a dash (-) character it will be excluded after keyPress, but if you input some digits and then input a dash character, it will remain in the input field.
Maybe I'm using it wrong, if so please point out my mistake. If this is a bug, I would appreciate it being fixed in the next release.
Thanks in advance

Hi!
Thank you for your message and your observation.
Could you provide a more detailed description on how to reproduce the bug?
For example, which options do you use for the plugin and which steps do you take to get an error?
Thanks in advance
M

Hello
Thank you for your message and quick reply.
Sure thing, I have a working sample at the office, I'll try to email you a
working copy tomorrow before noon.
Thank you
A
On Tue, Jan 27, 2015 at 9:38 PM, Martin Kruse<EMAIL_ADDRESS>wrote:

Hi!
Thank you for your message and your observation.
Could you provide a more detailed description on how to reproduce the bug?
For example, which options do you use for the plugin and which steps do
you take to get an error?
Thanks in advance
M
—
Reply to this email directly or view it on GitHub
https://github.com/EmKayDK/jstepper/issues/9#issuecomment-71696891.

--
[ think twice, think algorithmic ] [:[ i , nexus ] [ pragmatic chaos ] [:

Any news on this? :)

Hi!
Sorry i got busy and totally forgot about this. consider this example:
'''javascript
$(document).ready(function() {
$("input#myValue").jStepper({
minValue: 1,
allowDecimals: false
});
});
'''
After initializing the plugin with this configuration everything works fine, except for when you input a hyphen character. For instance, if you type 123 then - then 456 the hyphen character remains in the input field. Is this behavior correct, am I missing something here?
Thanks again for your time :)

I just uploaded a bug fix for this. I made it so dashes are just ignored if they are not typed as the first character in the field.

Hello Martin
Thank you for your time and this fix, i appreciate it.
Best Regards
On Mon, May 4, 2015 at 2:00 PM, Martin Kruse<EMAIL_ADDRESS>wrote:

I just uploaded a bug fix for this. I made it so dashes are just ignored
if they are not typed as the first character in the field.
—
Reply to this email directly or view it on GitHub
https://github.com/EmKayDK/jstepper/issues/9#issuecomment-98649681.

--
[ think twice, think algorithmic ] [:[ i , nexus ] [ pragmatic chaos ] [:


fix: remove .only

Codecov Report

Merging #794 into feat/mdcweb-typescript-update will increase coverage by 67.25%.
The diff coverage is n/a.

@@                        Coverage Diff                         @@
##           feat/mdcweb-typescript-update     #794       +/-   ##
==================================================================
+ Coverage                          26.61%   93.87%   +67.25%
==================================================================
  Files                                 73       73
  Lines                               3002     3002
  Branches                             457      457
==================================================================
+ Hits                                 799     2818     +2019
+ Misses                              2180       65     -2115
- Partials                              23      119       +96

Impacted Files
Coverage Δ

packages/list/ListDivider.tsx
83.33% <0%> (+16.66%)
:arrow_up:

packages/card/index.tsx
100% <0%> (+17.64%)
:arrow_up:

packages/list/ListItem.tsx
100% <0%> (+21.87%)
:arrow_up:

packages/checkbox/NativeControl.tsx
100% <0%> (+25%)
:arrow_up:

packages/list/index.tsx
92.03% <0%> (+33.33%)
:arrow_up:

packages/radio/NativeControl.tsx
100% <0%> (+33.33%)
:arrow_up:

packages/list/ListGroup.tsx
100% <0%> (+33.33%)
:arrow_up:

packages/list/ListGroupSubheader.tsx
100% <0%> (+33.33%)
:arrow_up:

packages/switch/NativeControl.tsx
100% <0%> (+33.33%)
:arrow_up:

packages/layout-grid/Row.tsx
80% <0%> (+40%)
:arrow_up:

... and 53 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 dd52744...59585c7. Read the comment docs.


Fix runtime dependency for python3-virtualenv

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[x] Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
[x] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[x] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/data/licenses.json, ./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[x] Ready to merge

Summary

The python3-virtualenv package was missing a runtime dependency (python3-six).
Change Log

Fixed runtime dependency for python3-virtualenv

Does this affect the toolchain?

NO
Associated issues

Links to CVEs
Test Methodology

Pipeline build id: 491080
Local build, install and test

v20.14.0 seems to require six>=1.9.0,<2, while we currently support 1.16.0. Do we need to update that package as well?

v20.14.0 seems to require six>=1.9.0,<2, while we currently support 1.16.0. Do we need to update that package as well?

1.16.0 is right in the middle of that required range which I read as "1.9.0 at minimum, but not 2.*"

v20.14.0 seems to require six>=1.9.0,<2, while we currently support 1.16.0. Do we need to update that package as well?

1.16.0 is right in the middle of that required range which I read as "1.9.0 at minimum, but not 2.*"

You are right. I think my brain stopped mathing yesterday..


Added use copilot actions

fixes #5
I've added the following useCopilotActions :-

Count total number of events
Show upcoming events for the next week
Highlight the busiest days in the month

@AnanteshG thanks for the PR! There are just a few improvements i would like you to make:

The upcomingevents suggestion is returning a blank {}. You can remove that line entirely and replace it with something like ✅ showing upcoming events.

There is repeated info. In the render method, keep the title like ✅ counting number of events

Use the Button component for deleting the event. Make the dialog close after deletion of the event.

Okay I'll make another PR after implementing the features you've mentioned.

@AnanteshG dont make another pr! just commit the new changes and push them. they will automatically reflect here

Okay

@AnanteshG do let me know if you are facing any issues. would be happy to help

No issues! Sorry, got caught up in some work. Will make the PR by tomorrow.

@AnanteshG thanks for the pr!


Undefined error in adding product

When i try to add an new product after fill all the data in the form when i click on submit it shows (Page not found.) and the url is http://localhost:8081/product/undefined
and if i do any changes in admin panel its not adding to seed json file when i do npm run seed its get changed to default how to get admin panel changes to seed json file

s

In that returned Url 'undefined' should be the product id.. After creating the product successfully backend server returns the product with the id.. the reason 'undefined' is undefined not any integer number is because somehow that product is not created successfully.. So please check the api call /api/products/createProduct in shop/src/services/ProductsService.js file.. And if backend is not working properly check if the database is running properly (have write access or any other issue) also check if any middleware functions is not passed for that api call...

Database is running properly except adding product others working fine
Api call looks like
 createProduct(credentials) {
 return Api().post('/api/products/createProduct', credentials)
},

i dont know whats wrong

I suspect that this issue may be related to #5. However, in the latest update, I have implemented a fix so that when you create a product, it will now generate a unique ID for the product.
There was a slight mistake in that the directory to save images on the server was not being created. I believe that this issue has been resolved now.

from the latest commit issue is resolved thank you..


Assuming There Is a scripts/build.sh

It appears that the (meta) releaser assumes there is a scripts/build.sh file for every project when that is not true

Fixed via https://github.com/spring-cloud/spring-cloud-release-tools/commit/1fa3f9ebe72b9e749033ab807a1d153bd2d36d81


insights/dependencies point to incorrect astral

I wonder how we fix this.
our insights/dependencies  points to
https://github.com/peplin/astral
instead of
https://github.com/sffjunkie/astral
when I pip installed, it picked the right one. I wonder if this is something we can do in requirements.txt or if we need to report it to GitHub.

Pip installs the correct one because there's only one such name in PyPi.  The other got incorrectly picked up by GH.

GitHub should know that for a Python project it should be looking at the PyPi index first, then spider through matches to find a possible link to a repo here.

astral's homepage on PyPi.org links to the correct repo here on GitHub...

I agree the index should be checked first. maybe contact GitHub?

I'll contact support.  If no answer, I'll try the forum.

GitHub fixed it today.


协程栈分配优化问题

在thread_create的时候是否可以优化下，先在当前pthread栈里执行，在insert进waitq的时候再分配协程栈用于保存上下文；这样在竞争少的时候可以明显减少系统调用的开销；或者像bthread那样使用ResourcePool，不过这样无法实现变长栈的需求

It may lead to degraded performance in common case, if we delay the allocation of stack in thread_create() until insertion into waitq, because that would incur memcpy() to move frames from old stack to new stack. The silent movement of the frames and the objects allocated in them would also incurs compatibility issues.
Photon already has thread pool that may solve your problem.
BTW,, variable-length stack is not on the list yet. I believe large-enough stacks can solve all the problems easily.

It may lead to degraded performance in common case, if we delay the allocation of stack in thread_create() until insertion a thread into waitq, because that would incur memcpy() to move frames from old stack to new stack. Furthermore, the silent movement of the frames and the objects allocated in them would also incurs compatibility issues.
Photon already has thread pool that may solve your problem.
BTW,, variable-length stack is not on the list yet. I believe large-enough stacks can solve all the problems easily.

Get it. Thank you for your explanation. I will dive into Photon ThreadPool and then figure it out.