Remove duplicated tags

Problem

Here's an example on the frontend of an image with duplicated tags: https://search-staging.openverse.engineering/image/9fc28cae-ec9b-437a-a960-98f48db2cac8 (coffee, lol, lol).
Description

We should remove duplicated tags as part of the cleaning steps when loading ingested data.
For backfilling: Non-dated DAGs consume all the data on each run and ought to update old records on the next DAG run. For dated DAGs, we may need to write a backfill query.
Implementation

[ ] 🙋 I would be interested in implementing this feature.

Here's another example: https://openverse.org/image/9ab8329c-8037-4fd4-8d55-8a52eb0dca90 (with a lot more duplicates).

@AetherUnbound, the catalog database for the item you shared contains duplicate tags:
"[{""name"": ""1768"", ""provider"": ""flickr""}, {""name"": ""1768"", ""provider"": ""flickr""}, {""name"": ""1908"", ""provider"": ""flickr""}, {""name"": ""1908"", ""provider"": ""flickr""}, {""name"": ""allthingsgold"", ""provider"": ""flickr""}, {""name"": ""allthingsgold"", ""provider"": ""flickr""}, {""name"": ""art"", ""provider"": ""flickr""}, {""name"": ""art"", ""provider"": ""flickr""}, {""name"": ""arthistory"", ""provider"": ""flickr""}, {""name"": ""arthistory"", ""provider"": ""flickr""}, {""name"": ""artist"", ""provider"": ""flickr""}, {""name"": ""artist"", ""provider"": ""flickr""}, {""name"": ""avirtualmuseum"", ""provider"": ""flickr""}, {""name"": ""avirtualmuseum"", ""provider"": ""flickr""}, {""name"": ""cardiff"", ""provider"": ""flickr""}, {""name"": ""cardiff"", ""provider"": ""flickr""}, {""name"": ""claudemonet"", ""provider"": ""flickr""}, {""name"": ""claudemonet"", ""provider"": ""flickr""}, {""name"": ""colection"", ""provider"": ""flickr""}, {""name"": ""colection"", ""provider"": ""flickr""}, {""name"": ""colour"", ""provider"": ""flickr""}, {""name"": ""colour"", ""provider"": ""flickr""}, {""name"": ""frenchimpressionist"", ""provider"": ""flickr""}, {""name"": ""frenchimpressionist"", ""provider"": ""flickr""}, {""name"": ""giorgio"", ""provider"": ""flickr""}, {""name"": ""giorgio"", ""provider"": ""flickr""}, {""name"": ""gold"", ""provider"": ""flickr""}, {""name"": ""gold"", ""provider"": ""flickr""}, {""name"": ""golden"", ""provider"": ""flickr""}, {""name"": ""golden"", ""provider"": ""flickr""}, {""name"": ""goldenlight"", ""provider"": ""flickr""}, {""name"": ""goldenlight"", ""provider"": ""flickr""}, {""name"": ""impressionism"", ""provider"": ""flickr""}, {""name"": ""impressionism"", ""provider"": ""flickr""}, {""name"": ""museum"", ""provider"": ""flickr""}, {""name"": ""museum"", ""provider"": ""flickr""}, {""name"": ""national"", ""provider"": ""flickr""}, {""name"": ""national"", ""provider"": ""flickr""}, {""name"": ""paint"", ""provider"": ""flickr""}, {""name"": ""paint"", ""provider"": ""flickr""}, {""name"": ""painter"", ""provider"": ""flickr""}, {""name"": ""painter"", ""provider"": ""flickr""}, {""name"": ""san"", ""provider"": ""flickr""}, {""name"": ""san"", ""provider"": ""flickr""}, {""name"": ""texture"", ""provider"": ""flickr""}, {""name"": ""texture"", ""provider"": ""flickr""}, {""name"": ""venice"", ""provider"": ""flickr""}, {""name"": ""venise"", ""provider"": ""flickr""}, {""name"": ""venise"", ""provider"": ""flickr""}, {""name"": ""w"", ""provider"": ""flickr""}, {""name"": ""w"", ""provider"": ""flickr""}, {""name"": ""wales"", ""provider"": ""flickr""}, {""name"": ""wales"", ""provider"": ""flickr""}]"

This should not happen with items that have been recently re-ingested because the tags column removes non-unique tags when upserting new values into the table:
https://github.com/WordPress/openverse/blob/ff1b5d567787fe413afd33dfaee14cdca411ac65/catalog/dags/common/storage/columns.py#L688-L690
The item in question, however, was not updated since 2020-10-01, and I'm not sure whether the code to remove duplicate tags was ran at ingestion at that time.
What would the best fix for such items be in the catalog? Would running a batched update that would select items that have not been updated since some date in the past, and run something like SELECT jsonb_agg(DISTINCT x) FROM jsonb_array_elements(tags) on them be a good idea?

What would the best fix for such items be in the catalog? Would running a batched update that would select items that have not been updated since some date in the past, and run something like SELECT jsonb_agg(DISTINCT x) FROM jsonb_array_elements(tags) on them be a good idea?

That sounds like it could work! The only issue is the number of records that might be affected by that update could be significant 🤔 Do you think we could get a count of the records that have duplicates in them before trying to run any batched update? That might give us a sense of how pervasive the issue is.

Do you think we could get a count of the records that have duplicates in them before trying to run any batched update?

The only way I can think of getting this information is by adding a new step to the data cleanup in the ingestion server. But this would make the data refresh run longer.
I wonder how many items were not updated since 2020? Maybe the non-updated set of items is smaller?

After some fiddling around, it looks like we are able to query for this!!
deploy@localhost:openledger>
    SELECT *
    FROM (
        SELECT identifier, provider, updated_on,
            tags || '[]'::jsonb AS tags,
            (SELECT jsonb_agg(DISTINCT x) FROM jsonb_array_elements(tags || '[]'::jsonb) t(x)) AS unique_tags FROM image
    ) u
    WHERE jsonb_array_length(u.tags) > jsonb_array_length(u.unique_tags) limit 1;
-[ RECORD 1 ]-------------------------
identifier  | 95aeace6-f70d-420c-a08e-84271ba6cad3
provider    | animaldiversity
updated_on  | 2019-02-15 14:47:33.392219+00
tags        | [{"name": "Reproduction", "provider": "animaldiversity"}, {"name": "Body Parts", "provider": "animaldiversity"}, {"name": "Photo", "provider": "animaldiversity"}, {"name": "Live Animal", "provider": "animaldiversity"}, {"name": "Female", "provider": "animaldiversity"}, {"name": "Female", "provider": "animaldiversity"}, {"name": "Adult/Sexually Mature", "provider": "animaldiversity"}, {"name": "Reproductive Organ", "provider": "animaldiversity"}, {"name": "insect", "accuracy": "0.99904", "provider": "clarifai"}, {"name": "dragonfly", "accuracy": "0.99758", "provider": "clarifai"}, {"name": "nature", "accuracy": "0.99558", "provider": "clarifai"}, {"name": "fly", "accuracy": "0.99301", "provider": "clarifai"}, {"name": "animal", "accuracy": "0.99085", "provider": "clarifai"}, {"name": "wildlife", "accuracy": "0.98856", "provider": "clarifai"}, {"name": "pest", "accuracy": "0.98646", "provider": "clarifai"}, {"name": "invertebrate", "accuracy": "0.9839", "provider": "clarifai"}, {"name": "leaf", "accuracy": "0.97928", "provider": "clarifai"}, {"name": "damselfly", "accuracy": "0.96964", "provider": "clarifai"}, {"name": "outdoors", "accuracy": "0.96327", "provider": "clarifai"}, {"name": "little", "accuracy": "0.9622", "provider": "clarifai"}, {"name": "wing", "accuracy": "0.95252", "provider": "clarifai"}, {"name": "close", "accuracy": "0.95173", "provider": "clarifai"}, {"name": "spider", "accuracy": "0.94385", "provider": "clarifai"}, {"name": "wild", "accuracy": "0.94351", "provider": "clarifai"}, {"name": "closeup", "accuracy": "0.94158", "provider": "clarifai"}, {"name": "garden", "accuracy": "0.93974", "provider": "clarifai"}, {"name": "entomology", "accuracy": "0.93532", "provider": "clarifai"}]
unique_tags | [{"name": "Adult/Sexually Mature", "provider": "animaldiversity"}, {"name": "Body Parts", "provider": "animaldiversity"}, {"name": "Female", "provider": "animaldiversity"}, {"name": "Live Animal", "provider": "animaldiversity"}, {"name": "Photo", "provider": "animaldiversity"}, {"name": "Reproduction", "provider": "animaldiversity"}, {"name": "Reproductive Organ", "provider": "animaldiversity"}, {"name": "animal", "accuracy": "0.99085", "provider": "clarifai"}, {"name": "close", "accuracy": "0.95173", "provider": "clarifai"}, {"name": "closeup", "accuracy": "0.94158", "provider": "clarifai"}, {"name": "damselfly", "accuracy": "0.96964", "provider": "clarifai"}, {"name": "dragonfly", "accuracy": "0.99758", "provider": "clarifai"}, {"name": "entomology", "accuracy": "0.93532", "provider": "clarifai"}, {"name": "fly", "accuracy": "0.99301", "provider": "clarifai"}, {"name": "garden", "accuracy": "0.93974", "provider": "clarifai"}, {"name": "insect", "accuracy": "0.99904", "provider": "clarifai"}, {"name": "invertebrate", "accuracy": "0.9839", "provider": "clarifai"}, {"name": "leaf", "accuracy": "0.97928", "provider": "clarifai"}, {"name": "little", "accuracy": "0.9622", "provider": "clarifai"}, {"name": "nature", "accuracy": "0.99558", "provider": "clarifai"}, {"name": "outdoors", "accuracy": "0.96327", "provider": "clarifai"}, {"name": "pest", "accuracy": "0.98646", "provider": "clarifai"}, {"name": "spider", "accuracy": "0.94385", "provider": "clarifai"}, {"name": "wild", "accuracy": "0.94351", "provider": "clarifai"}, {"name": "wildlife", "accuracy": "0.98856", "provider": "clarifai"}, {"name": "wing", "accuracy": "0.95252", "provider": "clarifai"}]
SELECT 1
Time: 0.085s

(Note that a duplicate  {'name': 'Female', 'provider': 'animaldiversity'}, was removed in the unique_tags 🎉)
I'm going to run a count for this to see how many we have 😄

@stacimc was able to run this for me:
deploy@localhost:openledger> select count(*) from (select identifier, provider, updated_on, tags || '[]'::jsonb as tags, (sele
 ct jsonb_agg(distinct x) from jsonb_array_elements(tags || '[]'::jsonb) t(x))  as unique_tags from image) u where jsonb_array
 _length(u.tags) > jsonb_array_length(u.unique_tags);
+--------+
| count  |
|--------|
| 206799 |
+--------+
SELECT 1
Time: 7422.500s (2 hours 3 minutes 42 seconds), executed in: 7422.493s (2 hours 3 minutes 42 seconds)

This feels like something we can correct for just those records! What do you think @obulat?

Before reading the replies, I added this to the DN milestone and thought it had more to do with modifying the MediaStore class to avoid duplicates. However, it seems this is more targeted at deleting the currently saved duplicates, and that can be done using the batched update DAG 😄 Is that correct, @AetherUnbound? It would be pretty cool to leverage the power of SQL 🔥
Should we create a new issue to filter out possible duplicates from provider scripts? I don't understand why raw_tags is a list of strings or dictionaries there.
https://github.com/WordPress/openverse/blob/f8971fdbea36fe0eaf5b7d022b56e4edfc03bebd/catalog/dags/common/storage/media.py#L282

I don't know that I have the full context on raw_tags and why that took the structure it did, though I suspect it might be a dictionary because we occasionally had other values in there, like source and accuracy. Might be relevant for #431!
That said though, if we could 1) ensure that the MediaStore class is removing duplicate tags from the provider before saving and 2) remove the existing duplicates using the batched update DAG, I think that's a great path forward!

@AetherUnbound Glad we're on the same page! I created an issue for the code changes in the catalog: #3926.
Do any of you want to take charge of this? 😄 Since you all already discussed it and saw a potential and relatively quick solution. CC @obulat @stacimc

Preparing for once the code in the catalog is updated, I see two options to solve this:

Run the UPDATE query manually for both tables.

-- Remove tags duplicates from the audio table
WITH tags_temp AS (
	SELECT identifier, tags || '[]'::jsonb AS tags,
		(SELECT jsonb_agg(DISTINCT x) FROM jsonb_array_elements(tags || '[]'::jsonb) t(x)) AS unique_tags
	FROM audio
)
UPDATE audio SET tags = tags_temp.unique_tags FROM tags_temp
WHERE tags_temp.identifier = audio.identifier
	AND jsonb_array_length(tags_temp.tags) > jsonb_array_length(tags_temp.unique_tags);

You can try this locally, as there are some duplicates in the sample data.
-- Get the number of duplicates
SELECT COUNT(*)
    FROM (
        SELECT identifier, provider, updated_on,
            tags || '[]'::jsonb AS tags,
            (SELECT jsonb_agg(DISTINCT x) FROM jsonb_array_elements(tags || '[]'::jsonb) t(x)) AS unique_tags
        FROM audio
    ) u
    WHERE jsonb_array_length(u.tags) > jsonb_array_length(u.unique_tags);

-- and/or see one specifically, e.g.:
SELECT jsonb_array_elements(tags) FROM audio WHERE identifier='209937e6-5a7f-4c31-bdc2-c6e39c2b7cb3';

It seems feasible, especially for the smaller audio table, but given the amount of duplicates shown for images, it could also work in a reasonable time.

Modify the batched_update DAG to include an optional WITH statement for more complex DB operations. I tried this quickly as well and made it work, but it does not have the same flexibility as building the query manually, and it kind of feels tricky and dirty the way the DAG turns out (it needs to remove some input validations). Check my branch, improv/batched_update_with, and run the DAG with the following configuration to see that it has the same effect (make sure to recreate the catalog data if you run the SQL before, to fill the duplicates again).

{
    "query_id": "with_test",
    "table_name": "audio",
    "with_query": "WITH wt AS (SELECT identifier AS wt_identifier, tags || '[]'::jsonb AS current_tags, (SELECT jsonb_agg(distinct x) FROM jsonb_array_elements(tags || '[]'::jsonb) t(x)) AS unique_tags FROM audio)",
    "select_query": "JOIN wt ON identifier = wt_identifier WHERE jsonb_array_length(wt.current_tags) > jsonb_array_length(wt.unique_tags)",
    "update_query": "SET tags = (SELECT jsonb_agg(distinct x) FROM jsonb_array_elements(tags || '[]'::jsonb) t(x))",
    "batch_size": 100,
    "update_timeout": 3600,
    "resume_update": false,
    "dry_run": false
}

So folks, do you prefer how to solve this or see any other alternative here?

It's definitely nice to run the update through a DAG so we have a little more visibility, although not strictly necessary. I don't see the branch you mentioned so I haven't looked at your updates to the batched_update, but FWIW I believe the existing DAG can be made to work without changes using this select_query:
    WHERE identifier IN (
        SELECT identifier FROM (
            SELECT
                identifier,
                tags || '[]'::jsonb AS tags,
                (select jsonb_agg(distinct x) from jsonb_array_elements(tags || '[]'::jsonb) t(x)) AS unique_tags
            FROM image
        ) u
        WHERE jsonb_array_length(u.tags) > jsonb_array_length(u.unique_tags)
    );

It's a bit more nested than I'd like but that worked for me locally to update the 362 images with duplicate tags in about 14 seconds. When I ran just the SELECT in production for image it took a little over 2 hours, so I hope that shouldn't be too terrible either 🤞
Either way we'll want to wait to run this until after confirming with @sarayourfriend that the catalog deployments are complete and DAGs can be unpaused.

@stacimc That's awesome! Better if we don't require modifications to the DAG, glad that you found a query that works! I'll mark this as blocked until the other work is finished.

Started the DagRun for audio with the following configuration that worked locally for me:
{
    "query_id": "rm_duplicate_tags_audio",
    "table_name": "audio",
    "select_query": "WHERE identifier IN (     SELECT identifier FROM (         SELECT identifier, tags || '[]'::jsonb AS tags, (select jsonb_agg(distinct x) from jsonb_array_elements(tags || '[]'::jsonb) t(x)) AS unique_tags FROM audio     ) u WHERE jsonb_array_length(u.tags) > jsonb_array_length(u.unique_tags) )",
    "update_query": "SET tags = (SELECT jsonb_agg(distinct x) FROM jsonb_array_elements(tags || '[]'::jsonb) t(x))",
    "batch_size": 10000,
    "update_timeout": 3600,
    "resume_update": false,
    "dry_run": false
}

This is done ✅


REST Power On  is failing, 'REST_USERNAME' is not defined

REST Power On  stack_mode=skip   is failing

  File "/afs/rchland.ibm.com/projects/esw/dvt/autoipl/apollodev/bin/plug_ins/Auto_reboot/cp_setup", line 115, in <module>

    main()

  File "/afs/rchland.ibm.com/projects/esw/dvt/autoipl/apollodev/bin/plug_ins/Auto_reboot/cp_setup", line 106, in main

    OPENBMC_HOST, REST_USERNAME,

NameError: global name 'REST_USERNAME' is not defined

#(CST) 2019/02/05 12:27:35.401635 -    0.034874 - Finished running cp_setup.```

george says  "lib/resource.txt:${REST_PASSWORD}       0penBmc"
and I have  -v REST_USERNAME:root -v REST_PASSWORD:0penBmc  in my robot call
I'll dig a bit more on this to see if I can narrow the failure down a bit

in "obmc_boot_test.py" it looks to me that control is never returned back to routine obmc_boot_test_py(loc_boot_stack=None
once setup() is called at line 1051
Test case:
    [Documentation]  Do the pre-test setup.
    REST Power On  stack_mode=skip```

It appears that there may already be a fix for this, gerrit #17818.

Closing this then,


Create issue and PR templates

Huzzah, GitHub finally added templating for creating new issues and PRs:

https://github.com/blog/2111-issue-and-pull-request-templates

We should jump on that.

https://github.com/ariya/phantomjs/issues/14016 :-)

D'oh....


java spring boot project

The client-side part is incomplete.

The client-side part is incomplete.


Patch Plus Support

Drive by:

Updated README.md example workflow

Workflow changes:

Always allow previously running workflows to complete
Setup Java step moved first in workflow
Prepare patch in separate workflow step
Avoid git preparation steps defaulting to the wrong working-directory

Action changes:

Function cover.create(..) handles baseline and patch cases

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 972d81d009c10b1d8414f9833eef7bc1e84dc869

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 972d81d009c10b1d8414f9833eef7bc1e84dc869

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 972d81d009c10b1d8414f9833eef7bc1e84dc869

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: b05187cd928ae5a73f5fcc89e4551787f7f48fe3

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: b05187cd928ae5a73f5fcc89e4551787f7f48fe3

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: b05187cd928ae5a73f5fcc89e4551787f7f48fe3

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 9735fcf2422e5dfc74f1e1877d32d3f52a861093

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 9735fcf2422e5dfc74f1e1877d32d3f52a861093

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 9735fcf2422e5dfc74f1e1877d32d3f52a861093

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 8d4d8d7fecd616fdaaf8fb35c4a5631e647e2ec4

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 8d4d8d7fecd616fdaaf8fb35c4a5631e647e2ec4

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 8d4d8d7fecd616fdaaf8fb35c4a5631e647e2ec4

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: fc81917728b921e07e9da33460200ac6367dd246

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: fc81917728b921e07e9da33460200ac6367dd246

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: fc81917728b921e07e9da33460200ac6367dd246

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: de43c3136ed07c1f8e1c4ad83154aa8deab4826b

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: de43c3136ed07c1f8e1c4ad83154aa8deab4826b

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: de43c3136ed07c1f8e1c4ad83154aa8deab4826b

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 24e4a32ad91e6141289386dc0c725c9025c7d10c

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 24e4a32ad91e6141289386dc0c725c9025c7d10c

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 24e4a32ad91e6141289386dc0c725c9025c7d10c

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 4680d975addb6b1f13cfb9757e9abcdf3a70d613

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 4680d975addb6b1f13cfb9757e9abcdf3a70d613

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 4680d975addb6b1f13cfb9757e9abcdf3a70d613

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 5380d141cadeb4334ba049d1ab08440b6d83fa3a

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 5380d141cadeb4334ba049d1ab08440b6d83fa3a

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 5380d141cadeb4334ba049d1ab08440b6d83fa3a

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 7add94fd37793a0963c18ae5bb9f036651e93aa3

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 7add94fd37793a0963c18ae5bb9f036651e93aa3

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 7add94fd37793a0963c18ae5bb9f036651e93aa3

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 06b060f003ee7f9649623e4bc0a17592ea878e9b

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 06b060f003ee7f9649623e4bc0a17592ea878e9b

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 06b060f003ee7f9649623e4bc0a17592ea878e9b

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 865f5458614a5cbd9b50dda9873fb044976bba3a

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 865f5458614a5cbd9b50dda9873fb044976bba3a

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 865f5458614a5cbd9b50dda9873fb044976bba3a

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: b8de0b9a453e82f98fd0685f45bc9dd0198c32f4

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: b8de0b9a453e82f98fd0685f45bc9dd0198c32f4

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: b8de0b9a453e82f98fd0685f45bc9dd0198c32f4

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 605cd047202057ffd8743004e786aaaf205741a1

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 605cd047202057ffd8743004e786aaaf205741a1

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 5f028b80ae3db49c26699134a855518641d43f73

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 5f028b80ae3db49c26699134a855518641d43f73

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: f3bc3a60725b7c76ec55d440b9f70d9a81ad6ee3

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: f3bc3a60725b7c76ec55d440b9f70d9a81ad6ee3

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: e33ec77bae1ddf6a545e0587e61fb959f92a8438

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: c53f46323d9b58db641dd4e705553e044be2cefc

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: c53f46323d9b58db641dd4e705553e044be2cefc

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: dc1617034ae02293fb46b7afd45bc0fd7f3d3236

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: dc1617034ae02293fb46b7afd45bc0fd7f3d3236

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: f182d20ba051bb46dd7ab9d19c5181f4a9d02d65

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: f182d20ba051bb46dd7ab9d19c5181f4a9d02d65

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: fc41aa12ee8997754fe7d120a1dc29d5d0870dfc

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: fc41aa12ee8997754fe7d120a1dc29d5d0870dfc

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: fc41aa12ee8997754fe7d120a1dc29d5d0870dfc

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: c5272fbb7485b0483dabd4b976e51baeadd68d39

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: c5272fbb7485b0483dabd4b976e51baeadd68d39

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 238b878ad256b1d2b89b186126d146745a7dcb60

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 238b878ad256b1d2b89b186126d146745a7dcb60

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 238b878ad256b1d2b89b186126d146745a7dcb60

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 9fa931021073a340eccdf4d574484d6b1f9ee6fa

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 9fa931021073a340eccdf4d574484d6b1f9ee6fa

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: ba76934a0fd656ce3b97b9c4fbc8a224e8599f92

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: c0a40e554fb0eda901c361bf71a1871e29eaa18d

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: c0a40e554fb0eda901c361bf71a1871e29eaa18d

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: c0a40e554fb0eda901c361bf71a1871e29eaa18d

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 0665e8633e2e92a8d461b506c02141d77e405c25

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 0665e8633e2e92a8d461b506c02141d77e405c25

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 0665e8633e2e92a8d461b506c02141d77e405c25

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: b08ca4b9e2e6c3d51b060d1cad7377a22dc01f84

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: b08ca4b9e2e6c3d51b060d1cad7377a22dc01f84

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: b08ca4b9e2e6c3d51b060d1cad7377a22dc01f84

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 3c5e5e4961d707fdf047d5152026e87f2441c17e

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 3c5e5e4961d707fdf047d5152026e87f2441c17e

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 3c5e5e4961d707fdf047d5152026e87f2441c17e

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 471850ce5e10865da8f9c648e9edd0a9ad482064

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 471850ce5e10865da8f9c648e9edd0a9ad482064

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 471850ce5e10865da8f9c648e9edd0a9ad482064

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 7ad86613fb233c9f8e98e443318c14763e96b816

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 7ad86613fb233c9f8e98e443318c14763e96b816

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 7ad86613fb233c9f8e98e443318c14763e96b816

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 8e3f994638c34899721c04fca7e9a474596ec9d9

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 8e3f994638c34899721c04fca7e9a474596ec9d9

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 8e3f994638c34899721c04fca7e9a474596ec9d9

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 5fef2c02b5f425a55e7c5ffccc2939988800805d

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 5fef2c02b5f425a55e7c5ffccc2939988800805d

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 5fef2c02b5f425a55e7c5ffccc2939988800805d

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: ee4f9abd34471757bf83f3aa595f4434193c2822

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: ee4f9abd34471757bf83f3aa595f4434193c2822

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: ee4f9abd34471757bf83f3aa595f4434193c2822

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 88668278fc192e240fd119a83ca0c546367af35d

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 88668278fc192e240fd119a83ca0c546367af35d

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 88668278fc192e240fd119a83ca0c546367af35d

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit:<PHONE_NUMBER>8d594746bdbbfeb517be11861c1ec4

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit:<PHONE_NUMBER>8d594746bdbbfeb517be11861c1ec4

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit:<PHONE_NUMBER>8d594746bdbbfeb517be11861c1ec4

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: 88decd27db64db78c51174330f39f494fbf00d47

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: 88decd27db64db78c51174330f39f494fbf00d47

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: 88decd27db64db78c51174330f39f494fbf00d47

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Custom Project / Test  (windows-latest)
Commit: a339b6b3bf617d17ab80c67b6cc8c3e949272c44

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Gradle Project / Test  (ubuntu-latest)
Commit: a339b6b3bf617d17ab80c67b6cc8c3e949272c44

:construction: This comment is under construction and will be updated on completion. :construction:

Diffblue Cover

Run: Test: Maven Project / Test  (macos-latest)
Commit: a339b6b3bf617d17ab80c67b6cc8c3e949272c44

:construction: This comment is under construction and will be updated on completion. :construction:


Add improved CI

🎁 This is my gift for Future Tom :)

Closes #6
@betterthanclay

🛡 Please consider updating the badge in README.

Hi Viktor, thanks for this, it looks great!
I'm just working through a bunch of updates on other packages then will merge this PR and apply it across all the other repos 👌

🛡 Please consider updating the badge in README.

What specifically needs updating? I'm open to suggestions 👍

🛡 Please consider updating the badge in README.

What specifically needs updating? I'm open to suggestions 👍

#8 👀

Oh yes, hah, forgot about that, thanks

@betterthanclay Future Tom is already here? :)

When there is no binary in the repo
test "$(find . -type f -not -path './.git/*' -executable)" = ""
this command checks for execute permissions, the lack of this permission.

Thanks for this - I've applied it to all 27 current DL packages 👌


Teleport children don't trigger unmounted hook when teleport is disabled

Vue version
v3.2.47
Link to minimal reproduction
https://sfc.vuejs.org/#eNqVUk2PmzAQ/SsjLiRqAO22UqU0iVL13FPVG5cEJkDXeCzbkK4Q/71j85GESpH2hmfevPfmDV3wXam4bTDYBjuLtRIni4dUAuzKl0PXQW0K6Ptdwi+u7vKqhTaqLvs0sFQUAtPAo4GHBSrSFvLKnM4CcwfRDQPg2ErKMWpkTY20vjN+r8J5DFuUNlwz3BIDzpS/T9zMnlGtnvJ4gOeAF8+SzLPsefr+INPrgimZqXxCyWR+CGzuuqDE6YxiwJqSruBYPaqSqrFg3xWyaFZi9namv6zSRjVbEstgd8nE5OTm+/DTZLpSFgzaRjloVfscvf2LphrCOPnBD3fd8NbvNF76ETB0MpLG+kPvIfyFCDm2lkgY5pKGxA0zOGMYc6zccdffUnlpZGYrkjAleC1p3Tnv43gsqFiFY3dUhk/gYKns3WLDKodgE0yGF7/jfMMShaD7tB9SWWYyrUzy53Bn2JD8PR39MQWAGbVarWF/gO5xAR/sOBquoWfzbmamezLld7+N3S88WIzqk4r/GJK8t48uHRsmDbbgK67GTt07DUprldkmSSPVWxGzRnLkXqLZSFVjlFN9/By/xl++ckrG3tdjNHV01nQ1qFkxDTZ35AkXW9SRRpmjRv1UbIF9EFz0/hN1mnz5Puj/Aawwip4=
Steps to reproduce
Use <teleport> component and add some components to it. Set the disabled attribute to true.
What is expected?
The child components should trigger the unmounted hook.
What is actually happening?
The child components don't trigger unmounted hook.
When the disabled attribute is set to false the events trigger as expected.
System Info
No response
Any additional comments?
No response

Maybe it's intentional. I found this comment in the source code.
https://github.com/vuejs/core/blob/98f1934811d8c8774cd01d18fa36ea3ec68a0a54/packages/runtime-core/src/components/Teleport.ts#L243

completed 4162311


Stripping AOT generated binary changes behavior

Noted online here: https://news.ycombinator.com/item?id=26334931
> dart hello.dart
hello
> dart compile exe hello.dart
> ./hello.exe
hello
> strip hello.exe
> ./hello.exe
Usage: dart [<vm-flags>] <dart-script-file> [<script-arguments>]

Executes the Dart script <dart-script-file> with the given list of <script-arguments>.

Common VM flags:
--enable-asserts
  Enable assert statements.
...
--version
  Print the SDK version.

Repro'ed on 2.12 stable:
Dart SDK version: 2.12.0 (stable) (Thu Feb 25 19:50:53 2021 +0100) on "linux_x64"

Duplicate of https://github.com/dart-lang/sdk/issues/39106

tldr version is that these binaries are build more or less by concatenating two ELF binaries together so they are not really strippable with strip (also there is no real reason to strip them - because there is nothing to remove).

@mraleph then why does stripping reduces file size from 5.3mb to 4.4mb ?
Is there any strip flags which can be used to safely strip ?


Add VPP patch fixing STN setup crash

Coverage decreased (-0.1%) to 76.736% when pulling 65a297764ae6c09176623ecb9d6d295c47fea7d2 on rastislavszabo:master into d516448126d7bd392812d1bc893c8f135c26e591 on contiv:master.


Publish the OSPP 2021 first meeting with students.

We have a great meeting last weekend with the OSPP students and mentors.
Thanks @ninetailskim for the organization and looking forward to reading your great blog post for this meeting!

Published at https://wechaty.js.org/2021/06/24/wechaty-soc-kick-off-meeting/


Allow Playwright in Runtime module and GraalVM support

This will allow using Playwright at Runtime for people who want to screen scrape.

[x] Allow use at runtime for people who want to use it for screen scraping or other purposes
[x] rename playwright to playwright-test
[x] Fix #68 Native mode

NOTE: this required me to rename the artifactId for playwright to playwright-test which is a breaking change so this should be a 2.0.0 if we go forward.

sounds like good idea to me. whats the migration path? remove -test but keep it in import scope test?
Any reason to not also provide a artifact named -test that just includes the non-test one ?

That is a good question. You are saying I could theoretically put all the test stuff in the runtime module and poeple could choose whether or not to mark it <scope>test</scope> or not?

That is a good question. You are saying I could theoretically put all the test stuff in the runtime module and poeple could choose whether or not to mark it <scope>test</scope> or not?

I also thought about it :) we should try

let me try it!

yes and no - my main question was what the migration path was (if any) and if that was to just remove "-test" then why not just have "-test" include the new runtime one and all is good...

Oh sorry the migration path would be if you use this now.
<dependency>
    <groupId>io.quarkiverse.playwright</groupId>
    <artifactId>quarkus-playwright</artifactId>
    <version>${playwright.version}</version>
    <scope>test</scope>
</dependency>

it changes to
<dependency>
    <groupId>io.quarkiverse.playwright</groupId>
    <artifactId>quarkus-playwright-test</artifactId>
    <version>${playwright.version}</version>
    <scope>test</scope>
</dependency>

OK it looks like it works!  I moved the Test code into the Runtime library and just marked junit5 as an OPTIONAL dependency.

I think that's ok as the testing part is really small and won't be in the target user app. @aloubyansky any thoughts?

You mean the optional dependency on the quarkus-junit5-internal?

Yep
 <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-junit5</artifactId>
            <optional>true</optional>
        </dependency>

What specifically do you achieve with that?

Because we offer Unit testing classes with @WithPlaywright that are QuarkusTest only but also allow PlayWright to be used as a ScreenScraper.  So anyone using it as a Test library will do this...
<dependency>
    <groupId>io.quarkiverse.playwright</groupId>
    <artifactId>quarkus-playwright</artifactId>
    <version>${playwright.version}</version>
    <scope>test</scope>
</dependency>
<dependency>
     <groupId>io.quarkus</groupId>
      <artifactId>quarkus-junit5</artifactId>
       <scope>test</scope>
</dependency>

and anyone wanting to use it as a runtime screen scraper can do this....
<dependency>
    <groupId>io.quarkiverse.playwright</groupId>
    <artifactId>quarkus-playwright</artifactId>
    <version>${playwright.version}</version>
</dependency>

Ah, not the internal one and the user has to still add the dependency on the quarkus-junit5 - sure, makes sense. Thanks.

I was also able to Graal substitute as Playwright uses System.out.println for logging with Jboss logging!


Deploy Development Environment

For the life of me I can not figure out how to get the development build to build for this. I have set the environment variables on my mac a "million" different ways. Switching production and development in handler.rs or commenting out your map.json github url for my own is a nice work around, but is not practical.
My goal was to get tailwind, dasyui(I prefer shadcn UI), custom css and get lightningcss to combine it all together into a public/css directory.
Python/CPP I understand better than rust. So excuse me I'm still learning Rust as a lang...

It looks like this was mostly likely in part to a code issue. The environment variable was looking for a case-sensitive "Development" Environment variable.
I've pushed an update to the repo to fix this. If you can pull and let me know whether that resolves your issue I'd appreciate it.
The way I usually set env variables while developing for Rust (at least when dotenv is unavailable) are:

Update my shell config
In my case I update the ~/.zshrc file to include the environment variable with the following syntax:

export ENVIRONMENT="production"

At run time
The other option I use often is setting the variables at the same time as running the command, following this syntax:

ENVIRONMENT=development ./target/debug/create-ruxt-app test

Let me know if you have any other issues, and thanks for your interest in the project!

By the way, if you run into any other issues with the actual dev portion feel free to reach out. I was looking to integrate tailwind as well so would be happy to help with the effort

Oh wow, that's awesome! I don't have any plans for that domain right now so let's leave it with you but if we find a use for it we can reevaluate.
Question for you since you're currently the only other person interested in contributing:
I'm working on setting up a development server that will hot reload the page and tailwind files on on file changes in the app. I'm wondering if create-ruxt-app is not the best name for this utility since upon additional consideration I think we may want to roll the dev server functionality into it.
Maybe something like 'ruxt-dev'? Then would have subcommands 'ruxt-dev run' to run the dev server or 'ruxt-dev create' to start a new project? Figure it's easier to make this move a week in instead of a couple of months

Functionalities would stay the same would just get moved another layer deep in a sub command. We may also decide to add some configurable to add tailwind to the project on init

Maybe we should start a Discord to discuss this stuff instead of in a github issue if you're down

Oh wow, that's awesome! I don't have any plans for that domain right now so let's leave it with you but if we find a use for it we can reevaluate.

Sure no worries

Question for you since you're currently the only other person interested in contributing:
I'm working on setting up a development server that will hot reload the page and tailwind files on on file changes in the
app.

If we could do a wrapper around the tailwind cli until a rust based equivalent can be ported.
Currently I run this on my fastapi project. Yes I have node installed in the project :vomiting_face:
npx tailwindcss -i ./fastapi-htmx/src/libs/nodejs/src/style.css -o ./fastapi-htmx/src/static/css/tailwind.css --watch
I'm wondering if create-ruxt-app is not the best name for this utility since upon additional consideration I think we may want to roll the dev server functionality into it.
I think create-ruxt-app is fine because we could make use of it to configure a ruxt boiler plate akin to t3 and even allow for a theme argument that pulls from a themes route on the create-ruxt-app website like astrojs. This would allow for future "paid" themes as well. (Some cash flow is a good thing to keep a project going after initial commit maintainer dev burn out)
example:
create-ruxt-app myapp --theme sometheme

Maybe something like 'ruxt-dev'? Then would have subcommands 'ruxt-dev run' to run the dev server or 'ruxt-dev create' to start a new project? Figure it's easier to make this move a week in instead of a couple of months

nuxt can be it's own command that is called within the project for things like installing js/css libs, watching for file changes  ect. Maybe down the road some type of jit handler.
example:
ruxt run dev
The reason I am suggesting mimicking nodejs/nextjs tooling is because this would allow for those nodejs devs to feel more comfortable moving to ruxt. Especially if we could find a way to port some of their front end lib favorites to ruxt such as shadcn ui.
Yes lets chat on discord to make things

Maybe we should start a Discord to discuss this stuff instead of in a github issue if you're down

Yes lets do that.

@2a5A1Ghu1 here's the link to join Discord, I'll probably set up a link on the main site so others can join if interested: https://discord.gg/STyaGAKsEH


Rename the webhook service

controller-gen generates webhook configuration targeting webhook-service.
Unfortunately OLM requires that the webhook Service be named ${DEPLOYMENT_NAME}-service, so webhook-server-service. Not following that requirement results in duplicate Services being created, and sometimes in TLS issues.
Rename the webhook service to webhook-server-service and add a kustomize replacement rule to modify the target service for webhooks.
/cc @mresvanis @yevgeny-shnaidman @ybettan

/lgtm


Spanish short description too long

Fastlane's short_description.txt is limited to 80 chars. Yours for es-MX exceeds that and thus is truncated mid-word. Could you please fix that before tagging the next release? I don't speak Spanish (and have no idea what variant MX is here), but "simple Spanish" according to the Deepl translator suggest something like

le ayuda a planificar y gestionar fácilmente sus objetivos de ahorro

which would fit the length limit. Thanks in advance!

Thanks for letting me know, I've updated the short description file with your suggested translation string.

Thanks a lot!


--custom-domain-https-parameters

Is there an example for how this parameter should be structured?  We are using a mix of customer provided and CDN managed (depending on the endpoint), so an example of each would be greatly appreciated.  Thanks!

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

ID: ed8c61db-b294-77fb-0e92-eae01d07b776
Version Independent ID: 958b6e8d-609b-2a58-dbe1-240d3fd894bb
Content: az cdn custom-domain
Content Source: src/azure-cli/azure/cli/command_modules/cdn/_help.py
Service: cdn
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

@jiasli add to S162.

+CDN module owner @hytao.
az cdn custom-domain enable-https
 directly maps to Python SDK's enable_custom_https which takes arg custom_domain_https_parameters of type azure.mgmt.cdn.models.CustomDomainHttpsParameters. However, neither Azure CLI, Python SDK or msrest supports JSON string. The functionality is currently broken. We will fix it asap.


Feat/ego marblerun

Just noticed that the test actually failed locally, going to fix this real quick.


CU-3ccgt1y - Boolean expression is having an odd behavior

Summary or solution description
There were some instances where the stack was not empty, but it was considered empty, some values were added and then a Opcode.CLEAN followed next. So CLEAN was removed and a number of DROPs were added.
How to Reproduce
https://github.com/CityOfZion/neo3-boa/blob/d7a2ff0de70ae3291d6e5623182cca1aaf40555c/boa3_test/test_sc/logical_test/LogicOperationWithReturnAndStackFilled.py#L1-L17
Tests
https://github.com/CityOfZion/neo3-boa/blob/d7a2ff0de70ae3291d6e5623182cca1aaf40555c/boa3_test/tests/compiler_tests/test_logical.py#L537-L542
Platform:

OS: Windows 10 x64
Python version: Python 3.8

Task linked: CU-3ccgt1y Boolean expression is having an odd behavior


feature: prevent timeout overflows

While using this library, we ran into:
(node:1) TimeoutOverflowWarning: ... does not fit into a 32-bit signed integer
Timeout duration was set to 1.

This error comes from passing in too large of a timeout value to setTimeout and the value gets set to 1. This results in transaction spam. I think it would be better to log a warning (similarly to the other warning that is logged) and then prevent the overflow by setting the timeout to the maximum timeout value.

Amazing! Thanks for the PR. Big fan of optimism, tell Jing I said hi :smile:


Can you give a example of using the model in c++

Hi, I want to try your method to deploy my ml model in c++. Can you provide some examples of using the saved ml model in c++?

hi @Ray-0403
Thanks for your interest in ml2cpp. I will appreciate any kind of feedback on the use case you are expecting.
ml2cpp is a demo for a model deployment tool in C++. It mainly contains docs or Jupyter notebooks , but not enough to be operational in a user environment.
If you need an equivalent tool , based on SQL, that does not need a specific deployment procedure (just execute the SQL to get the output of the model), please try sklearn2SQL. The SQL can be executed from a C++ code, on an in-process SQLite database.
sklearn2SQL is available as a web service, no code. You can  access it here :
https://github.com/antoinecarme/sklearn2sql_heroku
A demo script : https://github.com/antoinecarme/sklearn2sql_heroku/blob/master/test_client.py
Some Jupyter notebooks on using sklearn2SQL are available here :
https://github.com/antoinecarme/sklearn2sql_heroku/tree/master/docs

Thank you very much!


[Bug] Can't start a scenario

Hey,
Android 13 user here. I hace installed the official app and the latest valkiryre app. The app works perfectly but when I start an scenario after the text is shown when I click continue the app closes automatically. What should I do?

Try to reimport the files. It might take a few minutes to do it. Before doing it, go to the official app, select all the expansions in your collection, wait for any assets to download, restart the app, and ensure you have the last version.

go to the official app,

I have exactly the same problem as above. When I start an scenario after the text is shown when I click continue the app closes automatically. I did what you wrote above, but it didn't help. Could anyone help with this problem? Android 10. Regards.

Hey, Android 13 user here. I hace installed the official app and the latest valkiryre app. The app works perfectly but when I start an scenario after the text is shown when I click continue the app closes automatically. What should I do?

Did you able to fix this bug?

I have exactly the same problem as above. When I start an scenario after the text is shown when I click continue the app closes automatically. I did what you wrote above, but it didn't help. Could anyone help with this problem? Android 10. Regards.

I have exactly the same problem as above. When I start an scenario after the text is shown when I click continue the app closes automatically. I did what you wrote above, but it didn't help. Could anyone help with this problem? Android 10. Regards.

Hello guys, same problm here. Samsung TAB A+ running Android 14.
I can list scenarios, download content, hear/read the intro but when I click final continue to start setup it crashes.

If the answer from Vidimus didn't solve your problem, please find us on Discord in the #support channel (see also link on the main GitHub page of Valkyrie https://github.com/NPBruce/valkyrie).
closing this issue


Introduce message type filter transformer

This is solving this issue:  #238

Thanks for the contribution @FarBo,
please observe the following before your PR can be merged:

format your code with black
run isort to sort your imports
ensure that you code passes a check with flake8
contribute at least 1 unit-test for your transformer.

In you case, since the transformer is so simple, it can be tested without databricks. Please add you test under tests.local.transformers

Nice doc strings!

@mrmasterplan
It is ready now. Thanks for the review


Single batch: Supervised or Unsupervised

hi,
in the experiment section, you mentioned that labeled and unlabeled data are randomly shuffled and selected. I wanted to know why it's necessary to have each mini-batch containing both labeled as well as unlabeled data?
What happens if one of mini-batch contains only unlabeled data (since the majority of data is unlabeled)? Can we handle that case? What would be the value of loss?
I'm new to semi-supervised.
thanks.

In semi-supervised learning of classification, the minibatch size is very large (100-512). Therefore, labeled and unlabeled losses can be calculated simultaneously within one mini-batch. In the same way as above, we want labeled data and unlabeled data to be calculated simultaneously.
In the case of SSD, since the mini-batch size is large(32), we followed the same as the classification. In the case of R-FCN, however, since the mini-batch size is 4, we sampled labeled and unlabeled data as 1:3.


Fire gets stuck on the bottom of other materials

My current focus is on the player, not this bug. I'll address it at some point.


Cant download zip file.

When I select the zip file to download it is bringing me to a page with an .XML error.

Do the links in https://github.com/Ryochan7/DS4Windows/releases work for you?

Yes that worked. Thanks, very much appreciated.
On Mon, May 18, 2020 at 2:05 PM Chris Ayala<EMAIL_ADDRESS>wrote:

Do the links in https://github.com/Ryochan7/DS4Windows/releases work for
you?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Jays2Kings/DS4Windows/issues/594#issuecomment-630169457,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AH5FJW6ZRLDQN4LYOZE2OKLRSEXCVANCNFSM4M3WTAXQ
.


Missing annotation from guide

In the guide @EnableWebSecurity is missing from WebSecurityConfig.java, without this the login doesn't work.
I was following the guide but mine is a an MVC app as opposed to REST, not sure if that makes any difference.

Works for me (and Spring Boot does not require the use of @EnableWebSecurity). What is it that you see not working, and how do you know?

Thanks, @djnoddyp for the report! The annotation isn't necessary in a Spring Boot application, though the WebSecurityConfigurerAdapter still needs to be scanned, which is why @Configuration takes its place.
The guide certainly works, as proven by the unit tests that accompany the completed version. Are you recommending some other kind of change? If so, please feel free to open the ticket so we can make the necessary changes.


Add an option to prevent form submit if form validation fails

I think a common use case for form validation is to cancel the submit event if the form does not fully validate. I don't see anything in the docs showing this functionality. Perhaps it should be an option on the form?

@jlukic I know this is a year old issue at least, but I couldn't find in the documentation any note informing me that returning false from onSuccess cancels the form submit trigger; would have saved me fifteen minutes of searching for the answer.