[SPARK-14684] [SPARK-15277] [SQL] Partition Spec Validation in SessionCatalog and Checking Partition Spec Existence Before Dropping

What changes were proposed in this pull request?
Currently, multiple partitions are allowed to drop by using a single DDL command: Alter Table Drop Partition. However, the internal implementation could break atomicity. That means, we could just drop a subset of qualified partitions, if hitting an exception when dropping one of qualified partitions
This PR contains the following behavior changes:
~~- disallow dropping multiple partitions by a single command ~~
- allow users to input predicates in partition specification and issue a nicer error message if the predicate's comparison operator is not =.
- verify the partition spec in SessionCatalog. This can ensure each partition spec in Drop Partition does not correspond to multiple partitions.
This PR has two major parts:

Verify the partition spec in SessionCatalog for fixing the following issue:
sql(s"ALTER TABLE $externalTab DROP PARTITION (ds='2008-04-09', unknownCol='12')")

Above example uses an invalid partition spec. Without this PR, we will drop all the partitions. The reason is Hive megastores getPartitions API returns all the partitions if we provide an invalid spec.

Re-implemented the dropPartitions in HiveClientImpl. Now, we always check if all the user-specified partition specs exist before attempting to drop the partitions. Previously, we start drop the partition before completing checking the existence of all the partition specs. If any failure happened after we start to drop the partitions, we will log an error message to indicate which partitions have been dropped and which partitions have not been dropped.

How was this patch tested?
Modified the existing test cases and added new test cases.

Test build #57405 has started for PR 12801 at commit 6272398.

Test build #57405 has finished for PR 12801 at commit 6272398.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57405/
Test PASSed.

cc @yhuai @andrewor14 @rxin

The title doesn't match the pr description? Are you implementing this or disallowing it?

This PR is to disallow it. Sorry, update the PR description.

I think the in-memory one and the Hive one should use the same behavior, and this should be enforced at the command level, not up to the specific implementation of the catalog.

I see. Will do it. Thanks!

Test build #57458 has started for PR 12801 at commit 3b7b5de.

Test build #57460 has started for PR 12801 at commit 78a868b.

Test build #57458 has finished for PR 12801 at commit 3b7b5de.

This patch passes all tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57458/
Test PASSed.

Test build #57460 has finished for PR 12801 at commit 78a868b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57460/
Test FAILed.

Merged build finished. Test FAILed.

Test build #57481 has started for PR 12801 at commit fa15228.

Test build #57481 has finished for PR 12801 at commit fa15228.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57481/
Test PASSed.

Merged build finished. Test PASSed.

cc @rxin It is ready for review. : )

@cloud-fan Your PR https://github.com/apache/spark/pull/12871 is related to this. This is for disallowing users drop multiple partitions using one command. Could you please review this? Thanks!

@gatorsmile I'm not sure if I completely understand the intent of this patch. If I understand correctly there are two ways to drop multiple partitions. If I have a table with partitions a=1,b=1 and a=1,c=2, then:
(1) I can specify a=1 and drop both partitions
(2) I can specify a=1,b=1 and a=1,c=2 explicitly and drop both partitions
It seems that your patch only guards against (1), right? There's still an "atomicity" problem here if I do (2). If that is the case then maybe this issue should be scoped differently.

@andrewor14 What is the partition spec if one table has two partitions a=1, b=1 and a=1, c=2? I think it is impossible to do that, right?
We enforce the partition spec of a drop partition command must strictly follow the partition spec of the table definition by the function requireExactMatchedPartitionSpec  https://github.com/apache/spark/pull/12801/files#diff-b3f9800839b9b9a1df9da9cbfc01adf8R545
Let me know if you have any question about this. Thanks!

is it allowed to do ALTER TABLE tbl DROP PARTITION (a=1, b=1) PARTITION (a=1,c=2)?

oh, looks like our parser forbid it. cc @andrewor14 , seems your second case is impossible?

@cloud-fan The parser still can do this if the partition spec of the table is a, b, c. However, the partial or invalid partition spec can be detected in this PR.

what if the partition spec of the table is a, b, and we do ALTER TABLE tbl DROP PARTITION (a=1, b=1) PARTITION (a=1,b=2)?

case class AlterTableDropPartition(
    tableName: TableIdentifier,
    specs: Seq[TablePartitionSpec],
    ifExists: Boolean)

The specs is a sequence of TablePartitionSpec. I think it is OK to do it.

But, this PR does not allow it for ensuring the atomicity of the command.
https://github.com/gatorsmile/spark/blob/banDropMultiPart/sql/core/src/main/scala/org/apache/spark/sql/execution/command/ddl.scala#L425-L428

Test build #57770 has started for PR 12801 at commit 8a4980c.

Test build #57770 has finished for PR 12801 at commit 8a4980c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57770/
Test PASSed.

What do you mean, I was able to drop multiple partitions in one command:
scala> sql("SHOW PARTITIONS my_tab1").show()
+-----------+
|     result|
+-----------+
|a=3/b=3/c=3|
|a=1/b=2/c=2|
|a=1/b=1/c=1|
+-----------+

scala> sql("ALTER TABLE my_tab1 DROP PARTITION (a=1, b=1, c=1), PARTITION (a=1, b=2, c=2)")

scala> sql("SHOW PARTITIONS my_tab1").show()
+-----------+
|     result|
+-----------+
|a=3/b=3/c=3|
+-----------+

What I'm saying is, the issue here is more like "removing support for partial specs when dropping partitions", NOT "disallow dropping multiple partitions in a single command". Right? The issue is not correctly scoped.

Actually let's ping @yhuai. I personally don't think SPARK-15026 is a real problem. The user should still be able to drop multiple partitions at once. As for SPARK-14684, what is the bug in Hive that you're talking about? @gatorsmile Can you give a small reproduction for that?

@andrewor14 For the defect mentioned in SPARK-14684, you can reproduce it by using the following statement:
sql(s"ALTER TABLE $externalTab DROP PARTITION (ds='2008-04-09', unknownCol='12')")

Above example uses an invalid partition spec. Without this PR, we will drop all the partitions. The reason is Hive megastores getPartitions API returns all the partitions if we provide an invalid spec.

Regarding SPARK-15026, my major concern is we might get JIRAs if the previous Drop Partition command only drops a subset of partitions. If users issue the same command, they will get an error message:
org.apache.spark.sql.AnalysisException: partition to drop 'Map(ds -> 2008-04-08)' does not exist in table 'exttable_with_partitions' database 'default';

If you do not think this is a big deal, we need to issue a better error message. Let users know which partitions have been dropped and which partitions have not been dropped. This error message could be pretty long if one partial partition spec corresponds a long list of partitions. I am not sure if there exists any length limit of an exception message.

@gatorsmile I am not sure we should ban dropping multiple partitions in a single call, which is a useful command.
I just took a look at our implementation of addPartitions and dropPartitions in HiveClientImpl. Looks like we should use the batch version instead of asking drop every partition individually.

@yhuai Agree! Actually, I initially tried to do it in a batch mode. That is the following API we need to use
public List<Partition> dropPartitions(String dbName, String tblName, List<PartSpec> partSpecs, boolean deleteData, boolean ignoreProtection, boolean ifExists)

I hit an issue to generate ExprNodeGenericFuncDesc in PartSpec.
The other dropPartitions APIs in Hive.java does not allow the caller to specify a partial spec. Any better idea? Thanks!

For now, let's just drop them one by one. Fixing that is a separate issue that we can always do later (even after 2.0)

I see. I will change the implementation of this PR. This PR will only fix SPARK-14684.
Agree, we can address the atomicity issue later.

Will try to improve the existing error message if a multi-partition drop command failed. This can improve the usability before we supporting atomicity. Thanks!

Test build #58405 has started for PR 12801 at commit 15f287f.

Update:

Reverted the code changes.

Users are allowed to specify the partial partition spec. For example, given a table with four partitions [a='1', b='x'], [a='2', b='x'], [a='1', b='y'], [a='2', b='y'], users can drop partitions by [a='1'] or [b='x]
Users are also allowed to specify multiple partition specs in the same command.

Re-implemented the dropPartitions in HiveClientImpl. Now, we always check if all the user-specified partition specs exist before attempting to drop the partitions. Previously, we start drop the partition before completing checking the existence of all the partition specs.
If any failure happened after we start to drop the partitions, we will log an error message to indicate which partitions have been dropped and which partitions have not been dropped.
Updated the checking logics of partition spec.

Just updated the title and PR description. The JIRA Spark-15026 is not valid now. Thus, created and included a new JIRA Spark-15277.

Test build #58405 has finished for PR 12801 at commit 15f287f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/58405/
Test PASSed.

Test build #58423 has started for PR 12801 at commit 9ca7621.

Test build #58423 has finished for PR 12801 at commit 9ca7621.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/58423/
Test PASSed.

@andrewor14 @cloud-fan @yhuai This is ready for review. Thanks!

looks pretty good, thanks for working on it!

The latest changes look good so I'm merging them into master 2.0.
@gatorsmile In the future it would be good if you could summarize the issue with an example more succinctly from the beginning. This patch has gone through a few iterations and it wasn't clear to me what the Hive bug you were talking about is until later. The current PR description is much clearer.

Sure, will do. Thank you!


Contactblock toevoegen

Description
In the developed block the content block was excluded from scope but never ended in a story. According to the design

To discuss

Which options should be configured

Input fields

email
naam
bericht (optioneel)
bedrijf (optioneel)
vinkje, meld me aan voor de nieuwsbrief (optioneel)

Form handling
Texts
Receiving email

Should the user receive a confirmation email

yes, from<EMAIL_ADDRESS>

Should the project team receive a confirmation email

<EMAIL_ADDRESS>

Where is the filled in form data stored and who has access?

database

Acceptance criteria

[ ] Content managers can add a contact form to the home or static page including image, title and introdcution text
[ ] Users can fill in a contact form and send their information to the backend
[ ] Users receive a confirmation mail after filling in the contact form
[ ] The project team receives a copy of the email
[ ] Fields are validated in the front and backend
[ ] Form provides simple spam security (honeypot)

Is dit nog steeds een wens?

We gaan dit doen middels een forum.


get_meta_image_url for non-wagtail images

I understood that wagtail-metadata can be used with a non-page model. So I was using something like:
from sorl.thumbnail import ImageField

class User(MetadataMixin, AbstractUser):
    avatar = ImageField(upload_to="avatars", blank=False, default="images/image.png")

    def get_meta_image(self):
        return self.avatar

Then I realized that get_rendition() is specific to Wagtail Image objects.
The code above will generate 'ImageFieldFile' object has no attribute 'get_rendition' error. Shouldn't we treat non-pages models differently at this level?
    if hasattr(image, 'get_rendition'):
        filter = getattr(settings, "WAGTAILMETADATA_IMAGE_FILTER", "original")
        rendition = image.get_rendition(filter=filter)
        return request.build_absolute_uri(rendition.url)
    else:
        return request.build_absolute_uri(image.url)

Another helpful solution (in my case) is checking if the image instance is a Wagtail image using something like isinstance(image, "Wagtail image class")
Not sure if this suggestion is helpful, but let me know.

It'd be nice to do this in a way that is overwritable and the model level, a new method that creates the url
e.g.
class MetadataMixin(object):
  get_meta_image_url(self, request):
     return None

 class MetadataPageMixin(object):
    get_meta_image_url(self, request):
        meta_image = self.get_meta_image()
        if meta_image:
          filter = getattr(settings, "WAGTAILMETADATA_IMAGE_FILTER", "original")
          rendition = self.get_meta_image.get_rendition(filter=filter)
          return request.build_absolute_uri(rendition.url)
        return None

Then you could just overwrite the get_meta_image_url to do whatever you need it to and it would even be usable for non file-like objects.

Hey @seb-b . Please take a look. If this is what you meant let me know and I'll update the documentation.

Yep that's great, I'll merge it in after you've updated the docs :+1:

Is it possible to specify a hardcoded image url for an image that is managed outside of Wagtail?

Is it possible to specify a hardcoded image url for an image that is managed outside of Wagtail?

@danihodovic I've just released version 3.4.0 that includes the work from the pr and some other things. It'll allow you to set a static url on your object by overriding the get_meta_image_url method e.g.:
from wagtailmetadata.models import MetadataMixin

class CustomObject(MetaDataMixin):
    def get_meta_image(self, request):
        return 'https://my-hardcoded-url/share.png'

@danihodovic I've just released version 3.4.0 that includes the work from the pr and some other things. It'll allow you to set a static url on your object by overriding the get_meta_image_url method e.g.:
from wagtailmetadata.models import MetadataMixin

class CustomObject(MetaDataMixin):
    def get_meta_image(self, request):
        return 'https://my-hardcoded-url/share.png'

Thanks!

Thanks!


Add task step in to pipeline diagram

Resolve #352
Demo:
https://user-images.githubusercontent.com/929743/116564155-6343f880-a90d-11eb-9e2e-56be345e2d3b.mov

Codecov Report

Merging #560 (060cf29) into master (148e2a1) will decrease coverage by 0.16%.
The diff coverage is 47.50%.

:exclamation: Current head 060cf29 differs from pull request most recent head 9d54ec6. Consider uploading reports for the commit 9d54ec6 to get more accurate results

@@            Coverage Diff             @@
##           master     #560      +/-   ##
==========================================
- Coverage   67.28%   67.12%   -0.17%
==========================================
  Files          96       97       +1
  Lines        6053     6102      +49
  Branches     1052     1063      +11
==========================================
+ Hits         4073     4096      +23
- Misses       1980     2006      +26

Impacted Files
Coverage Δ

src/cli-command.ts
65.95% <0.00%> (-0.71%)
:arrow_down:

src/pipeline/preview.ts
19.67% <7.14%> (-0.33%)
:arrow_down:

src/tkn.ts
75.20% <22.22%> (+0.06%)
:arrow_up:

src/humanizer.ts
33.33% <33.33%> (ø)

src/pipeline/pipeline-graph.ts
65.94% <55.55%> (-3.89%)
:arrow_down:

src/pipeline/pipeline-preview.ts
72.91% <100.00%> (ø)

src/tree-view/pipelinerun-node.ts
69.44% <100.00%> (+0.87%)
:arrow_up:

src/tree-view/task-run-node.ts
42.85% <100.00%> (+0.92%)
:arrow_up:

src/util/watchResources.ts
78.00% <100.00%> (ø)

src/yaml-support/tkn-yaml.ts
93.08% <100.00%> (+0.11%)
:arrow_up:

... and 2 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 148e2a1...9d54ec6. Read the comment docs.


PR #8905 was accidentally filed against 9.2.x instead of master.
@moonchen filed a new PR for master via #8960, so the work will continue
with that PR. Since this patch is not intended for 9.2.x, this PR
reverts the commit.

@zwoop took care of reverting this.


Replace email with the github verified one.

This is the verified email address on the Github account for this user. I think David has access if we ever need it.

It's the email we used to create the Jenkins user in GitHub, so we verified it then.


Transform QMAL into a full-featured MAL Chrome Extension?

Right now, QuickMyAnimeList is just a quick anime updater.
Since it even features details of each anime, why not just make QMAL into a full-featured MAL Chrome Extension, with support for browser notifications on MAL notifications and messages.

It will cross over with AniChrome's functionality, and that isn't what I intended with QMAL.
After all, it's supposed to be QuickMyAnimeList.


Johnson's Algorithm

Is your feature request related to a problem? Please describe.
Johnson's Algorithm - To find shortest path between two vertices.
Describe the solution you'd like
Implementation using c++.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Programming language

[ ] C
[ ] C++
[ ] Java
[ ] Python

@Amit366 @Ayush7614 Please assign me this issue under lgmssc.

Can I implement in Java? I'm a participant of LGM Soc21.

I want to implement this in python as apart of LGM-SOC'21.
@Amit366 @Ayush7614 Please assign it to me. Thankyou!!


Removed GetMultiplePlayersXpAndLevel method

Merged this one instead: https://github.com/LootLocker/unreal-sdk/pull/15


[🐛 BUG]: HTTP middlewares need specific order to work

No duplicates 🥲.

[X] I have searched for a similar issue in our bug tracker and didn't find any solutions.

What happened?
Currently you need to have your RR middleware in specific order or else it might not work.
The following middleware order will fail to serve content/payload in the browser that is more than 4KB if the gzip is before sendfile.
http:
    middleware: [ "static", "gzip", "sendfile" ]

However moving gzip after sendfile makes that everything works as expected.
http:
    middleware: [ "static", "sendfile", "gzip" ]

The middleware order should not matter or if this is a RR limitation, it needs to be mentioned in docs.
Version (rr --version)
2.12.3
How to reproduce the issue?
Use the following middleware order:
http:
    middleware: [ "static", "gzip", "sendfile" ]

and try sending content to the worker, the loading browser will fail with error net::ERR_CONTENT_DECODING_FAILED (Chromium).
Relevant log output
No response

Another thing.
If using static middleware along with the sendfile and gzip, the static needs to be last, or else images (png/jpeg) will not show. Interestingly svg do show normally.
"Corrent" middleware order: middleware: [ "sendfile", "gzip", "static" ]


Allow extended precision

Have an option digits that can specify the number of significant digits to keep.

Partial fix is ready in local branch issue#7, but I can't yet get the setup right.  What should the command be?

Looks like this works:

Download the project from github
Optionally set up a virtual environment:

python -m venv venv
source venv/bin/activate

From the download library, python setup.py build
From the download library, python setup.py install


Add dataproperty observable:pathItems to observable:PathRelationFacet

Background
The Hanksen trace export meta-model has a property pathItems, which is a string value-list of "The individual items that make up the path property.". There is seemingly no coresponding CASE property. It is related to Hansken Property path with description "The logical path where the trace is located on the image, including the name of the trace itself.", which is mappable to observable:path in observable:PathRelationFacet.
Requirements
Requirement 1: add dataproperty observable:pathItems with rdfs:label "The individual items that make up the path property." with rdfs:range xsd:string and minvalue 0, maxvalue * in the SHACL shapes defined with observable:PathRelationFacet.
Benefits
Extend the PathRelationFacet and CASE in general to support the conversion of Hansken trace export data to JSON-LD with CASE ontology constructions.
Risks
The submitter is unaware of risks associated with this change
Competencies demonstrated
Competency 1
Solution summary

Hi @kadevgraaf-tno ,
I'm not quite sure I understand what the representation need is, independent of Hansken.  We should develop the competency for working this through the UCO proposal process; may we use an example from the Crossover Scenario?
Crossover has a disk image, identified in the graph as kb:F3FD304E-EF6C-4CBD-94CB-425880F82748, stored as a file with basename LGE Nexus 5 Full Image.raw.
Are you able to explain your desired property implementation using that node?
(I realize there may be a copy-paste error with that data from another scenario, as the filePath base name doesn't line up with the fileName.  Assume filePath has the correct full path for the purposes of your illustration.  @cyberinvestigationexpress , any thoughts what happened there?)

Hi @ajnelson-nist ,
Thanks for your feedback!
Now that I think about it, I am not sure what the representation need is independent of Hansken, or even if there is a need to include it to support Hansken :)
In the crossover example I read:
                "uco-observable:filePath": "E:\\Evidence\\UFED Samsung GSM SM-G925F Galaxy S6 Edge 2018_12_11 (002)\\Physical Boot Loader (Recommended) 01\\blk0_sda.bin",
The application reading a Hansken Export file/API can easily reconstruct the observable:pathItems from uco-observable:filePath, using // as a separator / string explode param. Hence there is not really a need to export this, other than for convenience.
Do you think this is sound reasoning? I am okay with closing this issue/request.
I will try to make another issue/addition request that we can discuss next Friday.
Kind regards,
Klaas

@kadevgraaf-tno , thank you for helping me understand the request.
This information can be available if the CASE export instantiates each file and directory as a graph object, and relates every file or directory to its parent object.  In that Crossover example path, we could get this table of results ...

ID
OWL Class
fileName
filePath

kb:file-system-0a48cb49-7616-4c88-b0a3-ba2e4f38e85f
uco-observable:FileSystem

kb:directory-12000ec0-9517-47a0-983e-b163e0d24c71
uco-observable:Directory

E:

kb:directory-2316292f-deb3-499d-af89-816dd9fe0bfa
uco-observable:Directory
Evidence
E:\\Evidence

kb:directory-33143216-418f-4ab8-8560-d308736be685
uco-observable:Directory
UFED Samsung GSM SM-G925F Galaxy S6 Edge 2018_12_11 (002)
E:\\Evidence\\UFED Samsung GSM SM-G925F Galaxy S6 Edge 2018_12_11 (002)

kb:directory-4217f57d-1a72-4808-86ed-285ab144b026
uco-observable:Directory
Physical Boot Loader (Recommended) 01
E:\\Evidence\\UFED Samsung GSM SM-G925F Galaxy S6 Edge 2018_12_11 (002)\\Physical Boot Loader (Recommended) 01

kb:file-540fc6e8-f5c6-4f64-bd06-bd7f9301db7f
uco-observable:File
blk0_sda.bin
E:\\Evidence\\UFED Samsung GSM SM-G925F Galaxy S6 Edge 2018_12_11 (002)\\Physical Boot Loader (Recommended) 01\\blk0_sda.bin

... from this SPARQL query:
SELECT ?nObject ?nType ?lFileName ?lFilePath
WHERE {
  ?nObject a ?nType .
  OPTIONAL {
    ?nObject uco-core:hasFacet ?nFileFacet .
    ?nFileFacet uco-observable:filePath ?lFilePath .
    OPTIONAL {
      ?nFileFacet uco-observable:fileName ?lFileName .
    }
  }

  # Limit objects to those in the "Child Of" chain between the file system and the image file.
  kb:file-system-0a48cb49-7616-4c88-b0a3-ba2e4f38e85f tmp:childOf* ?nObject .
  ?nObject tmp:childOf* kb:file-540fc6e8-f5c6-4f64-bd06-bd7f9301db7f .
}
ORDER BY ?lFilePath

A few implementation asides:

You won't find those node identifiers or every-directory-is-an-object implementation pattern in the current Crossover JSON-LD.  I just made them up to support this example.
Please don't read too much into how I spelled the root directory's path, and nulled the base name.  That spelling is oft-debated, and something UCO should probably put out a stance on.  I personally think the PathRelationFacet should use the OS-tailored spelling (including choice of path-delimiter) and the FileFacet's filePath should always use the forward-slash spelling, but ultimately for UCO that's a committee decision to make.
The tmp:childOf is a de-reification (/"Flattening") of UCO ObservableRelationship objects, using kindOfRelationship value Child_Of.  A proposal I'd started a while ago (UCO CP-49) considered restructuring the idea of relationship vocabularies, in part to support SPARQL path queries (note the Kleene-star *, indicating "0 or more uses of the tmp:childOf predicate").  The proposal got a bit bogged down in reconciling its design with the OWL 2 specifications, but will be proposed as an issue on the UCO Issues tracker soon now that I believe I've overcome the OWL 2 spec. uncertainties.  For now, that tmp:childOf predicate would need to be defined with this CONSTRUCT query:

CONSTRUCT {
  ?nChild tmp:childOf ?nParent .
}
WHERE {
  ?nRelationship
    a uco-observable:ObservableRelationship ;
    uco-core:kindOfRelationship "Child_Of" ;
    uco-core:source ?nChild ;
    uco-core:target ?nParent ;
    .
}

As for reasons why one would want to instantiate every directory - it's useful for someone who wants to keep records of every file system object.  It is a considerable amount of "Graph weight" to do so.  However, there are some situations tracking every Directory can be more helpful than relying on just a full file path as a string to store all of the lineage information.  One reason is: Say one of the directories in the middle of the path gets its name corrupted.  (This is a decently frequent problem working with character encodings, where a string may have been incorrectly transcoded as files migrated between operating system environments.)  If the corruption is sufficiently problematic, all paths at and below that directory may not be readable.

I missed @kadevgraaf-tno 's remark above that this issue is OK to close, and I also have talked with him about my last response.  I'll close the issue out now.


Question - Possibility to add 3D model or gif into the map

Hey,
I would like to know if I am able, with your package, to add 3D models or at least a gif in order to create a false 3D (2D animated, like a sphere that turns or get illuminated)
Thanks
Max

There's no support for 3D models but mapbox-gl supports 3D in the form of extrusions, but those create flat surfaces. There's a hacky way to use non-curved surfaces to create curves suggested in a comment in this Stack Overflow thread.
For overlaying and animating images in mapbox-gl, see this example.

Starting with 0.50.0 Mapbox now supports custom WebGL layers, this means 3D models can be added to the map, see this comment for an example using three.js: https://github.com/mapbox/mapbox-gl-js/pull/7039#issuecomment-410621717
And here's a link to the (awesome) demo: https://bl.ocks.org/andrewharvey/7b61e9bdb4165e8832b7495c2a4f17f7

Woooooooooooooow


Fix warnings

So I actually checked on #24, and there are only two print warnings in the bmi codes. I just changed them in place to use actual warnings, without changing anything else.
Moving forward, we just want to enforce using warnings rather than just printing info.
Closes #24

I clearly screwed something up with my branching, because the first two commits are supposed to be part of #37. Merge #37 first, then this PR. Should fix history when doing that.

thank @elbeejay I fixed the commit history, git rebase to the rescue! so I'm going to merge.


adding test job for release-notes-check jenkinsfile

Signed-off-by: Jeff Lu<EMAIL_ADDRESS>Description
As part of the effort on META https://github.com/opensearch-project/opensearch-build/issues/1468 , we are adding missing test job for jenkinsfile(s).
Particularly, this PR is created to address missing test job for release-notes-check.jenkinsfile [https://github.com/opensearch-project/opensearch-build/tree/main/jenkins/release-notes-check]
Issues Resolved
#2713 as part of #1468
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #2714 (ea73d8a) into main (6b71a5f) will decrease coverage by 0.33%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #2714      +/-   ##
==========================================
- Coverage   94.10%   93.77%   -0.34%
==========================================
  Files         156      156
  Lines        4208     4208
==========================================
- Hits         3960     3946      -14
- Misses        248      262      +14

Impacted Files
Coverage Δ

src/system/temporary_directory.py
64.44% <0.00%> (-28.89%)
:arrow_down:

src/system/os.py
93.75% <0.00%> (-6.25%)
:arrow_down:

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

Jacoco test report failure is discussed at https://github.com/opensearch-project/opensearch-build-libraries/issues/7#issuecomment-1273835143


Point gaps between tiles in a gridmap ... the cause may be an error in the rendering server for surfaces with compression

Tested versions

Reproducible in Godot v4.2.2.stable.mono

System information
Godot v4.2.2.stable.mono - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4070 (NVIDIA; <IP_ADDRESS>86) - 13th Gen Intel(R) Core(TM) i7-13700KF (24 Threads)
Issue description
There are gaps (seams) between the tiles in a gridmap.

Steps to reproduce
As far as I know, the error cannot be reproduced with simple means in Godot ... because the compression of a surface can only be switched on via an importer (OBJ, GLB/GLFT, COLLADA).
I rebuilt this example ... with my own models in blender and own textures ... and was able to reproduce the error (the environment setting is important to see the gaps better: Set Background to Custom Color and White and Ambient Light to Background).
Minimal reproduction project (MRP)
If a test program is really needed, I will be happy to provide one.
What I can provide, however, are the results of my investigations. I installed scons yesterday, pulled the source code from Godot, (checked out the commit with the tag 4.2.2), debugged it in Visual Studio and used RenderDoc for analyzing the representation.
In my opinion, the cause is a bug in the method RenderingServer::_surface_set_data(), namely in the calculation of the AABB if the format flag ARRAY_FLAG_COMPRESS_ATTRIBUTES is set. (I say "maybe" because I have only been analyzing the source code in depth for two days and the algorithm that leads to the error was implemented by Juan over seven years ago).
The AABB is calculated as follows (lines 455-461):
for (int i = 0; i < p_vertex_array_len; i++) {
    if (i == 0) {
        r_aabb = AABB(src[i], SMALL_VEC3);
    } else {
        r_aabb.expand_to(src[i]);
    }
}

A default size is introduced for the first vector so that the resulting AABB basically has an extension in all three directions. This is also necessary as this AABB is used in line 515 to generate the compressed vector:
Vector3 pos = (src[i] - r_aabb.position) / r_aabb.size;

As it is divided by the size here, this must not be zero.
The problem is that with certain constellations (order of the incoming vectors), the AABB results in an incorrect value.
Example:
(-0.5, 0,  0.5)
( 0.5, 0,  0.5)
(-0.5, 0, -0.5)
( 0.5, 0, -0.5)

results in an AABB of

position: (-0.5, 0, -0.5)
size: (1.0, 9.99999975e-06, 1.00001001)

The problem here is NOT the size.y value (it's not important because of all y-values of the original four vectors are equal).
The problem is size.z ... which is slightly outside the correct AABB and therefore the calculated compressed Vector of the first one (-0.5, 0, 0.5) is (0.0, 0.0, 0.999989986) ... which leads imho to the wrong representation.
I tested a fast simple fix (use Vector3(0,0,0) as base size and after aabb-calculation correct any size==0) and it worked. My imported GLB/GLTF was properly displayed.
Best regards, Opadin.

Thank you for your in-depth investigation! I suspect you are right and this will help improve the quality of compressed meshes.
Can you share the diff that you used to fix the issue? You can generate a diff from the command line with git diff that way a potential contributor doesn't need to reproduce your work from scratch

Looks like a duplicate of / solution for:

#79081

Some other similar issues to test/check against the mentioned fix (possibly 3.x version of it, as these are old issues):

#16337
#25303
#27837

@clayjohn
As you wish, here is the diff ...
--- a/servers/rendering_server.cpp
+++ b/servers/rendering_server.cpp
@@ -454,11 +454,16 @@ Error RenderingServer::_surface_set_data(Array p_arrays, uint64_t p_format, uint
                                                // First we need to generate the AABB for the entire surface.
                                                for (int i = 0; i < p_vertex_array_len; i++) {
                                                        if (i == 0) {
-                                                               r_aabb = AABB(src[i], SMALL_VEC3);
+                                                               r_aabb = AABB(src[i], Vector3(0, 0, 0));
                                                        } else {
                                                                r_aabb.expand_to(src[i]);
                                                        }
                                                }
+                                               for (int i = 0; i < 3; i++) {
+                                                       if (r_aabb.size[i] == 0.0) {
+                                                               r_aabb.size[i] = CMP_EPSILON;
+                                                       }
+                                               }

                                                if (!(p_format & RS::ARRAY_FORMAT_NORMAL)) {
                                                        // Early out if we are only setting vertex positions.

A few comments on this:

This is just a quick shot and neither elegant nor optimal.
At the line r_aabb.size[i] = CMP_EPSILON; you could also move the position (r_aabb.position[i] -= CMP_EPSILON/2) so that the AA polygon is exactly in the middle of the area.
For the calculation of the AABB, I would personally attach a method to the class that gets a const Vector<Vector3>& as parameter and calculates itself from it.
It may be necessary to fundamentally rethink the algorithms for mesh compression so that it is not necessary to assume expansion in all three dimensions.

@kleonc
Yeah, I scoured the internet for "Godot Seams Gridmap" and found numerous threads, none of which had a real bugfix, but suggestions like changing the environment to the color of the tiles or scaling the tiles a tiny bit. Unfortunately, this is not my way of working. But since it is my daily work to debug complicated bugs ... I did that and I'm happy if I could help.
With that said, kudos to everyone here. Godot is a fine engine that has everything I need for my purposes. I was amazed at how quickly I was able to compile it in Visual Studio. I like the open source code, which is excellently written by the way.
Greetings, Opadin.


makePaymentRequest error

using cordova 6.0.0 and Xcode 7.3.1
My flow is as follows;
ApplePay.canMakePayments() - Apple Pay is enabled and a supported card is setup
var worder = "{items: [{label: '3 x Basket Items',amount: .25}],merchantIdentifier: '" +apple_merchantid +"',currencyCode: 'USD',countryCode: 'US',billingAddressRequirement: 'none',shippingAddressRequirement: 'none',shippingType: 'service'}";
ApplePay.makePaymentRequest( worder)
.then(wsuccess(token))
.catch(wfail(e));
result is:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x15eb84ef0'
Any ideas are welcomed!!!
thanks!
Howard

Hi @hsmith825 .
Can you provide a complete stack trace of your error? The message isn't enough to go on as could be caused by anything.
I do note that your 'worder' is a string and not a JS object.
Also your then and catch functions can't have other functions passed into them, your essentially calling your success and failure methods at the same time as the makePaymentRequest.
Examine the example included in the plugin Readme.

Don't self-call your promise resolvers
Provide the worder as an object, not a string.

Hope this helps. If you find this doesn't, please re-open the issue.


Extract a function that concatenates weight and bias matrixes for cuDNN

I extracted a function to concatenate weight matrixes ws and bias arrays bs. In the current implementation of NStepRNNBase, it makes a large weight array made by getRNNParamsSize in forward and splits it in backward. I extracted this feature into a function.
This fix is for providing an interface which skips concatenation to RNN link.
Note that this fix does not change interfaces for users.

fixed

LGTM


Remove Youtube Embeddings from Website

Fixes https://github.com/apache/beam/issues/30590
https://privacy.apache.org/policies/website-policy.html seems to suggest some specific policies around Youtube embeddings, but given link problems on https://privacy.apache.org/examples/youtube-html/with-youtube-api.html, I propose we remove them for now.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @tvalentyn or @liferoad


Update workflows

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

Project coverage is 100.00%. Comparing base (fae234b) to head (e0e4c6b).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #222   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           10        10
  Lines          304       304
  Branches        59        59
=========================================
  Hits           304       304

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


Improve performance of PC lookup

The typical PC lookup is a gigantic lookup of more than 200 columns into a fixed table.
There are three things that could be optimized:

The index uses a BTreeMap, because it is generic. For the PC lookup, it might be useful to try out if a Vec could provide better performance. We could start building a BTreeMap and once the index is finished, we check how "dense" the entries are. If they are dense enough, we could switch to Vec. Note that the value of the index is a row index, so it is rather small.

Instead of storing the row number, store the actual values. That could save an indirection, but maybe the cache is so small that it is in the cache anyway. I think I tried that once and it did not provide a big gain.

Once we know which row to copy the values from the fixed column table, we need to actually assign them to the witness columns.
This is done in the following code:

        let mut result = EvalValue::complete(vec![]);
        for (l, r) in output_expressions.into_iter().zip(output) {
            let evaluated = l.clone() - r.into();
            // TODO we could use bit constraints here
            match evaluated.solve() {
                Ok(constraints) => {
                    result.combine(constraints);
                }

Note that it generates an equation and solves it. This is useful if the LHS is x + 2 or something like that, but I think in that case we might not even use the lookup. An easy win might be to add a funciton solve_equal(&self, rhs: T) to AlgebraicExpression, which checks if coefficients.len() == 1, and then just directly returns the result. Otherwise, it calls (self.clone() - rhs.into()).solve().

Looks like dup https://github.com/powdr-labs/powdr/issues/343


Custom Field Thumbnail

Suggestion: https://wordpress.org/support/topic/custom-image-field-and-few-useful-suggestions/

More details on this https://wordpress.org/support/topic/custom-image-field-and-few-useful-suggestions/#post-8220955


Check if an object is empty

This one-liner function will check if an object is empty or not.

That's right @phuoc-ng, so this pull request can be closed !


Update E2E test guidance to use new path

Current documentation  mention that

Change directory to mattermost-webapp/e2e, and install npm dependencies by running npm i

I think correct path should be mattermost-webapp/e2e/cypress to install dependencies and run npm test.
Because when I run npm run cypress:run in mattermost-webapp/e2e, I receive this error: Missing script: "cypress:open"
Tagging @saturninoabril for visibility

Okay I just realized that this change is already done by this PR but the changes are not reflected to website

Thanks for looking @sinansonmez! I'll check with the team responsible for deploying the latest documentation.

I just checked and the change in the referenced PR is already deployed. However, there are pages that still need to be updated like the one you initially pointed out. We'll update accordingly.

Thanks for the information @saturninoabril

@sinansonmez I'm closing this issue in favor of the PR submitted - https://github.com/mattermost/mattermost-developer-documentation/pull/1088. Feel free to comment in the PR itself. Again, thanks for looking!


ML-119 restructure project

Make the repo a python package that is installable.
Resolves issues with the python path and stuff

@askeko would you like to take a look at this, please. Or I will commit sukodu

@askeko would you like to take a look at this, please. Or I will commit sukodu

Yes, certainly. @Tinggaard I will get right on it!

I will approve this, however I don't appreciate the extra work this will cause me...


Different rent users are forbidden from uploading the same resource file

Different rent users are forbidden from uploading the same resource file, I think this is only a functional enhancement issue, so track it here. Thx.

We will record the number of partners with this requirement. If the partners have the same needs, please reply “+1”
我们将记录有此需求的伙伴数量，如果别的伙伴们有同样的需求，请回复+1


SUMMARY_VIEWED and CONTENT_VIEWED events are not getting stored in database

Describe the bug

Openequella have the default reports and these default reports can be downloaded from admin console launcher, these reports are also present in the sample institute "Vanilla".
Some reports are giving the empty result for example : "hotfiles.rpt", "hot items.rpt".
When I'm trying to solve the issue I checked the report in "BIRT Report Designr" under the datasets the query is written as :

 select ls.text as "collectionName", ls2.text as "itemName", sq."count",
       i.item_definition_id as "collection_id", i.uuid as "uuid", i.version as "version"
from item i
inner join base_entity be on i.item_definition_id = be.id
inner join
(
select a.data1 as uuid, cast(a.data2 as int) as version, count(a.data1) as "count" from audit_log_entry a
 where a."timestamp" >= ? and a."timestamp" < ? and
 a.event_type = 'SUMMARY_VIEWED' and a.institution_id = CURRENT_INSTITUTION
 group by a.data1, a.data2
) sq
on sq.uuid = i.uuid and sq.version = i.version and i.institution_id = CURRENT_INSTITUTION
inner join language_string ls on be.name_id = ls.bundle_id
inner join language_string ls2 on i.name_id = ls2.bundle_id
order by "count" desc

Where the event_type in table audit_log_entry dont have the event_type like "SUMMARY_VIEWED" and "CONTENT_VIEWED" etc.
Only the event_types "LOGIN", "LOGOUT", "HIERARCHY", "STANDARD" are recorded in database.
And the reports like "hotfiles.rpt", "hot_items.rpt", "top_viewed.rpt" are based on the event_type in audit_log_entry table.
Need a way to store "SUMMARY_VIEWED" and "CONTENT_VIEWED" enums in database on the appropriate action performed by user.

To Reproduce
generate the report hotfiles.rpt, you will see empty report, try opening the report in BIRT report Designer to see the query.
Expected behavior
Report should be generated with the appropriate data.
Stacktrace
No stacktrace simply gives an empty report

Ubuntu 22.04
Browser [e.g. Chrome, Firefox]

-Please try to explain on what actions triggered the enums "SUMMARY_VIEWED" and "CONTENT_VIEWED" are stored in DB in audit_log_entry.

HI @kapil-bunni ], when you installed OEQ , did you choose the option which will allow the view of content to be stored in table audit_log_entry


cups/string.c: Add _cups_snprintf()

Add the function which will remove the truncated UTF-8 multibyte characters.

@michaelrsweet ok, I made the function public + used _cups_safe_vsnprintf(), which does the job for logging - however it seems there was a bug in the function, which returned shorter string than the maximum possible, and returned higher number of written bytes than it actually wrote.

Actually, that is the correct behavior. (v)snprintf return the number of bytes that would have been written, not the number of bytes written.

Fixes are in master.

@zdohnal For sure, aside from fixing the bug in this function, it also lead to related fixes in the cupsCopy/ConcatString. And we also promoted the old _cups_safe_snprintf function to API.


Oauth App JWKS Key Properties Missing

I am attempting to provision a service application with a JWKS in okta using pulumi okta provider in accordance with the following documentation.
https://developer.okta.com/docs/guides/implement-oauth-for-okta-serviceapp/create-serviceapp-grantscopes/
I am then trying to authenticate with okta using the pulumi okta provider and the private key pem file generated from the JWKS and I am receiving the following error.
Steps to reproduce
Create a JWKS and Private PEM File
import * as jose from "node-jose";

const key = await keyStore.generate("RSA", 2048, {
  use: "sig",
  alg: "RS256",
});

const pem = key.toPEM();

Create a Service Application via Pulumi
export OKTA_ORG_NAME='example'
export OKTA_API_TOKEN='admin-user-swss-token-redacted'

import * as okta from "@pulumi/okta";

const app = new okta.app.OAuth(
  "example-svc-app",
  {
    label: "Example Service App",
    responseTypes: ["token"],
    grantTypes: ["client_credentials"],
    tokenEndpointAuthMethod: "private_key_jwt",
    type: "service",
    jwks: [ // fix below, we need the 'use' and 'alg' coming through
      {
        kid: key.kid,
        kty: key.kty,
        e: key.e,
        n: key.n,
      },
    ],
    autoKeyRotation: false,
  }
);

// grant scopes okta.groups.read,okta.groups.manage to service app

Authenticate with Okta Tenant via Pulumi Okta Provider and Private Key
export OKTA_ORG_NAME='example'
export OKTA_API_CLIENT_ID='svc-app-1234'
export OKTA_API_SCOPES='okta.groups.read,okta.groups.manage'
export OKTA_API_PRIVATE_KEY='-----BEGIN RSA PRIVATE KEY-----
REDACTED - pem material inserted here
-----END RSA PRIVATE KEY-----'

import * as okta from "@pulumi/okta";

const group = new okta.group.Group("example-group");

Expected: successful authentication and group creation, as creating the service app through curl and supplying all of the JWKS properties including use and alg works fine
Actual: below error
 stderr: error: 1 error occurred:
	* failed to create group: RSA private key is of the wrong type

Suspected cause is typings below should include the use and alg properties optionally as part of the JWKS interface to allow for proper key creation.
https://www.pulumi.com/docs/reference/pkg/okta/app/oauth/#oauthjwk
https://github.com/pulumi/pulumi-okta/blob/master/sdk/nodejs/types/input.ts#L201-#L206
export interface OAuthJwk {
    e?: pulumi.Input<string>;
    kid: pulumi.Input<string>;
    kty: pulumi.Input<string>;
    n?: pulumi.Input<string>;
}

Should rather be:
export interface OAuthJwk {
    alg?: pulumi.Input<string>;
    e?: pulumi.Input<string>;
    kid: pulumi.Input<string>;
    kty: pulumi.Input<string>;
    n?: pulumi.Input<string>;
    use?: pulumi.Input<string>;
}

Apologies for the noise this is not a bug, it was a mistake on my part when generating JWKS keys. I was passing the public key instead of the private.
const pem = key.toPEM();

should have been
const pem = key.toPEM(true);


Fix input type on MTB_AnyToString

For performance reason, we disabled the node def validation by default, and the auto-conversion of somewhat wrong, types are no longer supported by default.
This PR fixes the input type to a proper format that will work both with/without validation conversion.

Thanks for the heads up!!


Handle existing lustre_fid

Fixes https://github.com/whamcloud/integrated-manager-for-lustre/issues/1923
Signed-off-by: Michael Pankov<EMAIL_ADDRESS>

This change is

Run failed on unrelated bug. Rebasing on master to get another run.


🐛 BUG: vitest-pool-workers node compatibility with the jose and prisma libraries

Which Cloudflare product(s) does this pertain to?
Wrangler core
What version(s) of the tool(s) are you using?
3.30.1
What version of Node are you using?
v21.6.1
What operating system and version are you using?
Windows 11
Describe the Bug
Observed behavior
When I run the tests in my repro
npm run test

I observe this error
 src/jwt.test.ts [ src/jwt.test.ts ]
TypeError: deprecate is not a function
 ❯ node_modules/jose/dist/node/esm/runtime/rsaes.js:23:38

The jose library actually works in the production runtime of Cloudflare workers, without the nodejs_compat flag, but vitest-pool-workers paradoxically requires the flag.
Expected behavior
The tests work.
Steps to reproduce
Clone https://github.com/vladinator1000/miniflare-node-compat-bug
Run
npm i

npm run test

Please provide a link to a minimal reproduction
https://github.com/vladinator1000/miniflare-node-compat-bug
Please provide any relevant error logs
 src/jwt.test.ts [ src/jwt.test.ts ]
TypeError: deprecate is not a function
 ❯ node_modules/jose/dist/node/esm/runtime/rsaes.js:23:38

I also found a similar issue when using Prisma: https://github.com/prisma/prisma/issues/23193#issuecomment-1971658732

Great work @mrbbot! I'm excited to try it once it's out 💓

@mrbbot the new release fixed the TypeError: deprecate is not a function 🎉
I'm still seeing this Prisma import failure error however:
 workerd/server/server.c++:2676: error: Fallback service failed to fetch module; payload = ; spec = /?specifier=%2Fhome%2Frunner%2Fwork%2Fprisma-vitest-miniflare%2Fprisma-vitest-miniflare%2Fnode_modules%2F%40prisma%2Fclient%2Fdefault.js&referrer=%2Fhome%2Frunner%2Fwork%2Fprisma-vitest-miniflare%2Fprisma-vitest-miniflare%2Fnode_modules%2Fvite-node%2Fdist%2Fclient.mjs
 ❯ src/staticImport.test.ts  (0 test)

⎯⎯⎯⎯⎯⎯ Failed Suites 1 ⎯⎯⎯⎯⎯⎯⎯

 FAIL  src/staticImport.test.ts [ src/staticImport.test.ts ]
Error: No such module<EMAIL_ADDRESS> ❯ src/prismaClient.ts:1:154
      1| import { PrismaClient } from '@prisma/client'

I reproduced it here and added a CI workflow for easy testing: https://github.com/vladinator1000/prisma-vitest-miniflare
Importing something from @prisma/client makes it fail https://github.com/vladinator1000/prisma-vitest-miniflare/blob/main/src/staticImport.test.ts
Looking at the files, they just do some re-exports
// @prisma/client
export * from '.prisma/client/default'

// .prisma/client/default
export * from './index'

I double-checked that I'm running prisma generate before the test. The files get imported without issue in vitest-environment-miniflare.

Woah @mrbbot, that's some great detective work! I'll keep updating my test repo when there are new developments 🙌🏼

Hi @mrbbot, I gave this another whirl now that Prisma officially support D1 with version 5.12.1. I found a new error:
workerd/server/server.c++:2802: error: Fallback service failed to fetch module; payload = ; spec = /?specifier=%2Fhome%2Frunner%2Fwork%2Fprisma-vitest-miniflare%2Fprisma-vitest-miniflare%2Fnode_modules%2F.prisma%2Fclient%2Fwasm-worker-loader.js&referrer=%2Fhome%2Frunner%2Fwork%2Fprisma-vitest-miniflare%2Fprisma-vitest-miniflare%2Fnode_modules%2F.prisma%2Fclient%2Fwasm.js%3Fmf_vitest_no_cjs_esm_shim
 ❯ src/prismaClient.test.ts  (1 test | 1 failed) 14ms
   ❯ src/prismaClient.test.ts > prismaClient > can run basic query
     → No such module "home/runner/work/prisma-vitest-miniflare/prisma-vitest-miniflare/node_modules/.prisma/client/#wasm-engine-loader".
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
 FAIL  src/prismaClient.test.ts > prismaClient > can run basic query
Error: No such module "home/runner/work/prisma-vitest-miniflare/prisma-vitest-miniflare/node_modules/.prisma/client/#wasm-engine-loader".
 ❯ Object.getQueryEngineWasmModule home/runner/work/prisma-vitest-miniflare/prisma-vitest-miniflare/node_modules/.prisma/client/wasm.js?mf_vitest_no_cjs_esm_shim:161:5
 ❯ home/runner/work/prisma-vitest-miniflare/prisma-vitest-miniflare/node_modules/@prisma/client/runtime/wasm.js?mf_vitest_no_cjs_esm_shim:11:731
 ❯ Object.loadLibrary home/runner/work/prisma-vitest-miniflare/prisma-vitest-miniflare/node_modules/@prisma/client/runtime/wasm.js?mf_vitest_no_cjs_esm_shim:11:975
 ❯ gt.loadEngine home/runner/work/prisma-vitest-miniflare/prisma-vitest-miniflare/node_modules/@prisma/client/runtime/wasm.js?mf_vitest_no_cjs_esm_shim:11:3194
 ❯ gt.instantiateLibrary home/runner/work/prisma-vitest-miniflare/prisma-vitest-miniflare/node_modules/@prisma/client/runtime/wasm.js?mf_vitest_no_cjs_esm_shim:11:2778

Here's the reproduction: https://github.com/vladinator1000/prisma-vitest-miniflare/tree/6c45689cbd4d80af202b34129f859dfeb6f83331
Failing CI run: https://github.com/vladinator1000/prisma-vitest-miniflare/actions/runs/8733836366/job/23963290162
By the way, I was following the new vitest-pool-workers docs and they are amazing! I absolutely love the new experience. It blows my mind that I can just import { env } from "cloudflare:test"; and everything is loaded.

We can close this now that https://github.com/prisma/prisma/issues/23911 is done 🥳


Node should not delete POST files when there is more on a disk than configured

In the situation when there are more post files than node expects node should error and give up, and not delete the files.
That should help not surprise users with "your data is gone because config was wrong".
In the situation when there are too less files, then node should clearly indicate that it will generate more.
There probably should be a flag that would change node behavior:

--do-not-touch-pos and then it should fail regardless of the found situation on the disk (smaller, bigger etc).
we could have a flag that would keep current behaviour too.

I just lost 1 TiB post data due to this "feature" - please fix this ASAP!

See also https://github.com/spacemeshos/post/issues/236

It will be addressed with https://github.com/spacemeshos/pm/issues/259

This is still happening

Post-service implementation will have that fixed, as mentioned https://github.com/spacemeshos/go-spacemesh/issues/4594#issuecomment-1733625198

I believe the issue could be resolved in less than 10 minutes; however, it seems there is a lack of willingness to address user concerns promptly.

I believe the issue could be resolved in less than 10 minutes; however, it seems there is a lack of willingness to address user concerns promptly.

Our small development team is very busy focusing on network stability. This is an open source project. Feel free to make the desired change and submit it as a PR here! We're more than happy to review.

This is fully solved with post-service.


Innovation - Primitives

Installation Check
Key Learnings on Primitives
Fastpage Created for CB
Vocab Page (Code.org)

[x] Seeing that you understand how to use Code.org and that you used it to complement your learning on primitives.  Up to Lesson 5 in the OOP assignment.

Productive Blogging

[x] Create a Jupyter Notebook(s) using IJava kernel and that you could use it to capture key learning on Primitives.

[x] Create a Jupyter Notebook using Bash and that you could use it to show that you have all the key tools installed.   This should also be a Blog for your own personal memory.

[x] Each student captures information  in Fastpages thinking ... how they are going to capture information that will grow to 10 college board units ... how they will recognize something as PBL vs College Board.

Score: 2.7
Installation Check
Key Learnings on Primitives
Fastpage Created for CB
Vocab Page (Code.org)

[ ] Seeing that you understand how to use Code.org and that you used it to complement your learning on primitives. Up to Lesson 5 in the OOP assignment.

[ ] Productive Blogging

Showed effective blogging and has nice details on their primitive hacks

[ ] Create a Jupyter Notebook(s) using IJava kernel and that you could use it to capture key learning on Primitives.

Met the requirements for the primitives and showed that all of the installations that were required is something that she has.

[ ] Create a Jupyter Notebook using Bash and that you could use it to show that you have all the key tools installed. This should also be a Blog for your own personal memory.

[ ]  Each student captures information in Fastpages thinking ... how they are going to capture information that will grow to 10 college board units ... how they will recognize something as PBL vs College Board.


719 breadcrumb

Closes #767
Summary

Dynamicly adjust breadcrumb items to have overflow menu or not,  based on container width.

Change List (commits, features, bugs, etc)

[feat] Get container width and calculate breadcumb items total width.
[feat] Compare container width and items total width to show overflow menu dynamicly
[feat] Response container width change
[bug] Haven't refactor all style from styled-components to sass
[bug] No test
[bug] No keyboard action

Acceptance Test (how to verify the PR)

View  the with overfllow menu story

I have some questions/suggestions around the implementation.

How the component to know when to show the overflow menu?  is it intelligent (ie, can't render 3 items, so it puts the middle one into the overflow?
Could we add some knobs to the story to change the threshold or size or whatever triggers it to go into the overflow mode.

@stuckless

the overflow menu is controlled by a parameter called threshold(default is 4) in Breadcrumb, which I followed Carbon-angular, because Carbon-react hasn't implemented this function. I am not sure is it ok?
Good suggestion! I will add these knobs.

Please fill out the pull request template in the PR body above to link the appropriate issue, describe your changes, and detail any specific acceptance criteria.

@changshunwang Could you link to the design as well... i thought the design was around trying to render as much as it could, and then, if it could not "fit" then it would intelligently collapse the breadcrumb.  ie, if I just resized the browser it should collapse the breadcrumb.  That would be my expectation.  @JordanWSmith15 is that correct?

@stuckless yes, there were some gaps in the handoff of implementation details - we're working to define those specifics alongside the original design in the internal issue.

I've opened the above issue on the Carbon repo to discuss the implementation with the Carbon team in aim to potentially contribute this directly to carbon-components-react

@tay1orjones ,Hi Talyor, cause we don't use threshold parameter as angular temporarily, based on your suggestions and guidence, I refactory my code. so would you please review it again?
here are 2 questions now:

The scss style is still rough, 2 reasons: 1. I'm not sure if I write as this correctly now? 2. It seems Carbon style is a little diffirent with what we need, but I only have a picture and some description, is there something I misunderstand with you?
when use the component, I should add a container div outside, just like what I do in storybook with overflow menu.

but if I don't add, there maybe an error, like in storybook default.  (I think default should show all 3 items, without overflow menu.)

so is there something I did wrong?
In addition, I found a strange thing, the overflow menu function can work in my local storybook, but doesn't work in sandbox here
Thanks again!

@changshunwang I've pushed a couple updates to this branch/PR. The core functionality is working, with a few bugs that still need addressed. The resize behavior is now opt-in and behind a prop useResizeObserver. I've updated the stories to reflect the change.
Please look into these remaining items:

when the container is very small, the text is not being ellipsed.
Due to this, an infinite loop is caused when the overflowIndex is set to -1, which then causes the wrapping of text, causing the overflowIndex to be set higher
I reset the styling for the overflow menu button, but it still needs improvement.
The slashes after each breadcrumb are no longer centered between the breadcrumbs, this is due to some styles from carbon that target the last-child, we need to override them so the slashes / are centered between the breadcrumbs
Stories for fixed container widths are not working, breadcrumbs are wrapping when they should be truncated into the OverflowMenu
Keyboard navigation/a11y
Test coverage

@tay1orjones  Thanks! I didn't think of this method: set useObeserver as a prop. BUT, I have one question, why we also need fixed container in this situation. At first, I set a container in storybook in order to simulate window change. If we set useObeserver as a prop, then the componenet can self-responce. so what is the target for story fixed container? And based on your suggestion, I fixed some of above:

I use a new state truncate instead of overflowindex=-1. It seems that Storybook has a min-width, so can't see truncated text in story 'with useResizeObserver',  you can try in 'with useResizeObserver, 320px width'. It works.
when click overflow button, the menu will have a strange border, I didn't find why. :(
It works.
Like my question above. But when I reset the container width, sometimes it didn't re-render in time.
Keyboard navigation/a11y. Sorry I am not familiar with a11y, although have read related code in our project, but I am not very sure:

for both breadcrumb item and overflow menu item or just overflow menu item?

which actions or keys on the keyboard should we need? I mean, enter, command, arrows, etc...

Test coverage need I write some code?

It looks like the functionality has regressed and is no longer appropriately placing items in the overflow menu. The stories for fixed widths (320px etc) aren't working either on the deploy preview.
The text is still not being ellipsed at very small sizes.
On the storybook containers:
Every story is snapshotted and tracked in jest. If changes are made and an unrelated snapshot is modified, it can signal something is wrong. I think it's a good idea to have some stories with fixed containers (320px, etc) so we have some snapshots of the behavior across multiple container sizes.
You should be able to view the storybook in browser widths less than 500px, it does take storybook a moment to redraw though.
For #4, it's likely related to the general bug of items not being placed in the overflow menu appropriately. We may want to look into throttling the useResizeObserver, this may help with the sputtery rendering issues. There's an example in the documentation for the hook package of how to accomplish that.
a11y - a user should be able to tab focus through all breadcrumbs. Additionally the user should be able to open the overflow menu by tabbing focus to the overflow menu, and then pressing enter/space, then using tab/arrows to select an item in the overflow menu.
Testing does look to be sufficient with the storyshots, though we might want to write some unit tests once we've eliminated the bugs to ensure they don't pop up again.


cmd/link: unable to execute go binaries on a FreeBSD system with W^X enabled

What version of Go are you using (go version)?

$ go version
go version go1.17 freebsd/amd64

Does this issue reproduce with the latest release?
This is the latest version.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/meena/.cache/go-build"
GOENV="/home/meena/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="freebsd"
GOINSECURE=""
GOMODCACHE="/home/meena/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="freebsd"
GOPATH="/home/meena/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/freebsd_amd64"
GOVCS=""
GOVERSION="go1.17"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build337677643=/tmp/go-build -gno-record-gcc-switches"

What did you do?
I compiled a simple hello world program:
package main

import (
        "fmt"
)

func main() {
        fmt.Println("Hello, World!")
}

, and tried to run it in a FreeBSD 13 environment with W^X enabled:
meena@bsdix ~/s/wxorx> go build hello.go
meena@bsdix ~/s/wxorx> sudo -H sysctl kern.elf64.allow_wx=0
kern.elf64.allow_wx: 1 -> 0
meena@bsdix ~/s/wxorx>

What did you expect to see?
meena@bsdix ~/s/wxorx> ./hello
Hello, World!
meena@bsdix ~/s/wxorx>

What did you see instead?
meena@bsdix ~/s/wxorx> ./hello
exec_new_vmspace: mapping stack size 0x20000000 prot 0x7 failed mach error 2 errno 13
fish: Job 1, './hello' terminated by signal SIGABRT (Abort)
meena@bsdix ~/s/wxorx [SIGABRT]>

This also happens if you run any go program:
meena@bsdix ~/s/wxorx [SIGABRT]> go version
exec_new_vmspace: mapping stack size 0x20000000 prot 0x7 failed mach error 2 errno 13
fish: Job 1, 'go version' terminated by signal SIGABRT (Abort)
meena@bsdix ~/s/wxorx [SIGABRT]>

Data Execution Prevention Windows is supported since go 1.14:
https://golang.org/doc/go1.14#windows "Go binaries on Windows now have DEP (Data Execution Prevention) enabled."
I also don't hear any complaints from OpenBSD people, who have W^X enabled for about 20 years now.
Note that workarounds of marking a binary as wxneeded with elfctl(1) also don't work:
meena@bsdix ~/s/wxorx> elfctl -e +wxneeded hello
elfctl: NT_FREEBSD_FEATURE_CTL note not found
elfctl: NT_FREEBSD_FEATURE_CTL note not found
meena@bsdix ~/s/wxorx [1]>

Somebody managed to extract that "Note" and link it against their rclone: https://forums.freebsd.org/threads/rclone-not-working-with-w-x.80279/ which allowed them to work around this.
I have not yet been able to reproduce that work-around.

Addendum: With go build -buildmode=pie the resulting binary works!
meena@bsdix ~/s/wxorx> go build -buildmode=pie hello.go
meena@bsdix ~/s/wxorx> ./hello
Hello, World!
meena@bsdix ~/s/wxorx> sudo -H sysctl kern.elf64.allow_wx=0
Password:
kern.elf64.allow_wx: 1 -> 0
meena@bsdix ~/s/wxorx> ./hello
Hello, World!
meena@bsdix ~/s/wxorx> go version
exec_new_vmspace: mapping stack size 0x20000000 prot 0x7 failed mach error 2 errno 13
fish: Job 1, 'go version' terminated by signal SIGABRT (Abort)
meena@bsdix ~/s/wxorx [SIGABRT]>

not only that, elfctl is happy with the binary:
meena@bsdix ~/s/wxorx> elfctl hello
File 'hello' features:
noaslr          'Disable ASLR' is unset.
noprotmax       'Disable implicit PROT_MAX' is unset.
nostackgap      'Disable stack gap' is unset.
wxneeded        'Requires W+X mappings' is unset.
la48            'amd64: Limit user VA to 48bit' is unset.
noaslrstkgap    'Disable ASLR stack gap' is unset.
meena@bsdix ~/s/wxorx>

kib@ explained at least part of the issue: -buildmode=exe results in a binary with no PT_GNU_STACK, so defaults to rwx stack and thus fails with allow_wx=0
It seems -buildmode=pie causes go to use (parts of) the standard host tool chain, and so gets both a PT_GNU_STACK for rw stack, and the NT_FREEBSD_FEATURE_CTL note that elfctl manipulates.

We can modify our ports system to set -buildmode=pie for ports depending on go.
That means, we can produce packages, built with go, that will be compiled as PIEs.
However, we cannot seem to be able to produce a go compiler that is PIE.
Put differently: we can build packages with go on a system with WX disabled, that will work on a system with WX enabled, but we cannot produce a go compiler that will work on such a system.

We already set PT_GNU_STACK for Linux, we just need to do so for freebsd also (and all the other bsds?). That would solve the problem for internal linking, and I think that's the situation when it is happening?

Yes, we need PT_GNU_STACK on FreeBSD. I believe both OpenBSD and NetBSD provide a no-X stack in any case and would be fine without PT_GNU_STACK (although it might not cause any trouble to have it).

That would solve the problem for internal linking

I believe so, yes. I'm not completely familiar with go's linking/tool chain use, but I assume that -buildmode=pie ends up relying on the standard host linker as a side effect? (And, this may be an implementation detail that could change in the future?)

@igalic @emaste Try the above linked CL and tell me if that works for you.

CC @dmgk, FreeBSD's lang/go port maintainer

with that patch it now works with w^x enabled:
meena@bsdix /u/p/l/go (main)> file /usr/local/go/bin/go*
/usr/local/go/bin/go:    ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, Go BuildID=XLIT5y7zsZF5lR-GsGHn/5sUPdtoWTSvCjrig1rac/oUGhGkYcwZr5aypGE13h/PyCGVZmPPahQmZyis-c2, not stripped
/usr/local/go/bin/gofmt: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), statically linked, Go BuildID=23dNAVgDQa9cM8y7STWR/ZMhOBGxd00N-4hKWF1zI/-MZO7QHiu4q61cHkSr4w/107R6PUcs881Y9-en7pT, not stripped
meena@bsdix /u/p/l/go (main)> elfctl /usr/local/go/bin/go*
elfctl: NT_FREEBSD_FEATURE_CTL note not found
elfctl: NT_FREEBSD_FEATURE_CTL note not found
meena@bsdix /u/p/l/go (main) [1]> sudo -H sysctl kern.elf64.allow_wx=0
kern.elf64.allow_wx: 1 -> 0
meena@bsdix /u/p/l/go (main)> go version
go version go1.17 freebsd/amd64
meena@bsdix /u/p/l/go (main)>

(this means that whenever the bootstrap compiler switches to Go1.18, we could start building lang/go on w^x enabled systems)

Do we want to backport this, so Go 1.16 and 1.17 will work on newer FreeBSD? Thanks.

I guess that depends on how often people enable W^X mode. My intuition is not very often, or we'd have seen this before.
Is there a plan to make W^X the default?

My intuition is not very often, or we'd have seen this before. Is there a plan to make W^X the default?

You're right that it's not enabled often at present. Right now it's really "adventurous" users trying it out; I expect we will make a more comprehensive effort within the FreeBSD developer community to find showstoppers (e.g. major runtimes that fail with it enabled, as here), before a broader call for testing and any discussion of defaults.
That said, independent of W^X with no PT_GNU_STACK we get a RWX stack, and IMO it's worth backporting this just to avoid that.

@ cherrymui  Our "quarterly" branch currently has 1.16 and our "latest" branch has 1.17, so i think it would make sense to backport it to both of those.
I'll also open an issue to have NT_FREEBSD_FEATURE_CTL  note added, as @emaste mentioned in the review for https://golang.org/cl/346872
I see that NetBSD and OpenBSD already have a .note section, so there's precedent.

I don't think this qualifies for backporting. https://github.com/golang/go/wiki/MinorReleases
It's always been this way, so it isn't a regression. A workaround is to just turn W^X mode off.
It's not really a security issue either - at least not something exploitable (and not new). In fact, I think this would only affect the single stack the program starts with - for freebsd all the other stacks (both G and M stacks) are allocated by the Go runtime and are already not marked executable.

Aye.
I've submitted this as patch to our lang/go port then: https://bugs.freebsd.org/258241 /cc @dmgk

We can modify our ports system to set -buildmode=pie for ports depending on go. That means, we can produce packages, built with go, that will be compiled as PIEs.
However, we cannot seem to be able to produce a go compiler that is PIE.

Any specific blockers on why we cannot have a go compiler that is PIE? Currently, go itself builds fail if set kern.elf64.allow_wx=0.

I don't know why the Go tools would fail with allow_wx=0.  Can you provide more details?
You should be able to build the Go tools with pie by running something like go install -buildmode=pie cmd.

Oh, I see, the problem is the missing PT_GNU_STACK.  But that problem should be fixed for 1.18.
If you still have problems on tip, please open a new bug.  Thanks.


Addtion of accessibility for Portfolio Webiste

I have added accessibility to the portfolio website covering and explaining all below mentioned points.
List all points that have been checked:

Page titles (Added)
Image text alternatives (Added)
Text headings (Added)
Color contrast (Contrast are as per Figma Template)
Resize (Not required because the text is clearly readable)
Interaction (Added)
Moving content ( Not Required as the website doesn't have any moving content)
Multimedia ( Not Required as the website doesn't have any Multimedia)

Please review my recent changes as described above in this PR.

Contrast is added for the button but the test is still failing and asking to change buttons colors which are added as per the template.
The last reviewer didn't advise any color for buttons or instructions on whether can we change the color of the buttons from the template or not.

Hello @umair-rao 🙋♂,
I suggest using color tone is close to the original, for example you can use #287e5a instead of  #36b37e.


Cleanup configure.py

Uses built-in glob module to prevent having to list every file manually
Properly checks for os.environ.get returning None or `""
Sorts imports according to default VScode behaviour (and removes unused subprocess import)
Avoids pylance getting confused by removing use of target after the for loop defining it.

This should simplify things. Though with the globs, we shouldn't include the files in the Emulator file in actual builds. Implementing a few APIs, they allow some SP classes to run sans-modification on PC targets. We might want to simply remove them altogether.

Should we wait for a PyPy release that supports 3.10? PyPy is still recommended in the README, but the gains are likely more limited now with the move to LZMA.

configure.py doesn't even take that long, and seeing that we are running lots of small scripts I can imagine pypy isn't helping that much (no time for JIT to warm up, might even be slower thinking about it)

This breaks Windows builds

inb4 "good"


New command: m365 pp pipeline artifact list

Usage
m365 pp pipeline artifact list
Description
List all pipeline artifacts for the given pipeline in the specified Power Platform environment.
Options

Option
Description

-i, --id <id>
The id of the pipeline to retrieve artifacts for.

-e, --environmentName <environmentName>
The name of the environment where the pipelines are located.

--asAdmin
Run the command as admin and retrieve Power Pages websites for environments you do not have explicitly assigned permissions to.

Examples
List all artifacts for the pipeline in the given Power Platform environment.
m365 pp pipeline artifact list --id d87a7535-dd31-4437-bfe1-95340acd55c5 --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5

List all artifacts for the pipeline in the given Power Platform environment as admin.
m365 pp pipeline artifact list --id d87a7535-dd31-4437-bfe1-95340acd55c5 --environmentName Default-d87a7535-dd31-4437-bfe1-95340acd55c5 --asAdmin

Default properties

Name
DeploymentArtifactId
ArtifactVersion
Owner
statuscode

Additional Info
https://learn.microsoft.com/en-us/power-platform/developer/pipelines/table-reference#deploymentartifact-deployment-artifact

LGTM 👍


Use better package name

Instead of, com.github.dylon.liblevenshtein, use something like, com.github.liblevenshtein. The former is residual of my personal repos before I created the universal-automata org.

Duplicate of #49


Message: cannot load such file -- berkshelf/vagrant

I followed instructions using Vagrant 1.7 on OSX 10.9.5 and got this:
$ vagrant up
There was an error loading a Vagrantfile. The file being loaded
and the error message are shown below. This is usually caused by
a syntax error.
Path: /Users/mccann/GitHub/mapserver_dev-cookbook/Vagrantfile
Message: cannot load such file -- berkshelf/vagrant
Any suggestions?

@MBARIMike It's been a while since that cookbook has not been maintained. I am not sure if it is supposed to work with latest dependencies. Have you installed the required plugins? vbguest and berkshelf?


Closable and dynamically-added view is not closed

Closable and dynamically-added view like 'Project > Export' is not closed.
After opening the view by selecting 'Project > Export' main menu,
I can not close the view by clicking 'x' icon in the view tab.
Error is the following:
/common/src/webida/widgets/views/viewcontainer.js:610
Uncaught TypeError: Cannot read property 'getPart' of undefined
viewContainer._contentPaneClose @ /common/src/webida/widgets/views/viewcontainer.js:610
Current changes for EditorPart? ViewPart? affect to this.
Please check.

@cimfalab
Please see https://github.com/webida/webida-client/pull/595


lodash: signatures of the method _.noop changed

https://lodash.com/docs#noop
https://lodash.com/docs#_ (description of the chainable wrapper)

thanks mate!


[Bug]: Error Displaying Uploaded Images in  Component

Preflight Checklist

[X] I have read the Contributing Guidelines for this project.
[X] I agree to follow the Code of Conduct that this project adheres to.
[X] I have searched the issue tracker for an issue that matches the one I want to file, without success.

Bug type
Functionality
It affects the following packages
Components
Which version of Lyne Components are you using
0.49.0
Operating system
Windows 10 / MacOS
Browser / Browser version
Chrome 23.0.6312.123
Input mode
None
Additional settings
No response
What happened?
We are developing a feature for file upload with preview using the  and  components.
We have encountered an issue where the  component fails to display images that are uploaded via the .
However, the images can be displayed without issues using a native HTML  tag.
Steps to reproduce the issue
We are developing a feature for file upload with preview using the  and  components.
We have encountered an issue where the  component fails to display images that are uploaded via the .
However, the images can be displayed without issues using a native HTML  tag.
Steps to Reproduce:
1.) Use the  component to upload an image file:
<sbb-file-selector
...
(fileChanged)="uploadFile($event)"

...

2.) The uploadFile function processes the uploaded file and stores the Blob URL in the media variable:
public media = '';
protected uploadFile(e: unknown): void {
const files = (e as CustomEvent<File[]>).detail;
if (files?.[0]) {
this.media = URL.createObjectURL(files[0]);
...
}
}
3.) Attempt to display the image using the  component by binding the Blob URL to the imageSrc property:
<sbb-image [imageSrc]="media" [skipLqip]="true" />
Expected Behavior:
The  component should display the uploaded image similarly to how the native HTML  tag does.
Actual Behavior:
The  component triggers an error in the browser console:
GET blob:http://localhost:4242/7857894b-3660-4ef0-b775-cf641775eeb1?auto=format%2Ccompress%2Ccs%3Dtinysrgb&w=976&h=549&q=45
net::ERR_FILE_NOT_FOUND
It appears that the component appends additional parameters such as format, compress, cs, w, h, and q to the URL,
which are not part of the original Blob URL which looks like this:
blob:http://localhost:4242/7857894b-3660-4ef0-b775-cf641775eeb1
Additional Information:
Using the property [skipLqip]="true" in the  component prevents an additional error from occurring but does not
solve the image display issue. Both errors only occur with images uploaded internally via the file upload feature,
while external URLs work without errors.
Relevant log output
GET blob:http://localhost:4242/8730657a-16a7-4af1-99fc-1afe05adcf86?blur=100&w=100&h=56 net::ERR_FILE_NOT_FOUND

GET blob:http://localhost:4242/4bfe3820-0a17-4b64-b7a8-f882de7aca3a?auto=format%2Ccompress%2Ccs%3Dtinysrgb&w=2400&h=1350&q=20 net::ERR_FILE_NOT_FOUND

Hi @tobiasBlaser
The sbb-image is basically a helper for consuming images from the SBB image CDN. For your case, I recommned to use a normal  tag.


Link to commits page from the vertical timeline

Add a "see more" button on relevant events

@andymeneely How are we determining which events are "relevant" and get this button?

I think we were thinking that whenever the event type has a link you can click on "see more" and go to it.  If it's a Release, go to the Release, etc. That might not be true about every event, though.

@andymeneely I see that /api/vulnerabilities/[id] returns an "interesting_commits" attribute. Is this supposed to be for this or for something else?

That's a different thing - that's a tag that we'll make. This is just a button to be able to go to the actual commit from the commit event.

reminder to discuss relationship between events and their corresponding commits/releases in database during meeting


Is it possible to exclude same layer, different name?

Sorry, if this has already been asked. Couldn't tell where to look. The examples show how to group by a Models layer and prevent that from leaking into Views or something. But what if I've got multiple Models, or Modules within a shared namespace, is it possible to distinguish between each module, preventing them reaching into each other? The way I think this can be achieved is by specifying each module by hand and manually excluding the other module layers, but I imagine there must be a more elegant way to go about it

You don't need to exclude the other modules, Deptrac does this for you by default. However yes, you need to specify each of the modules separately.

@patrickkusebauch I've just checked and can't see a php configuration. I was expecting to see a way to define the rules using php rather than yaml like your comment suggested. Or am I missing something?

Closed in #1002


[SPARK-42030][CORE] Remove unused Constructor from RocksDB.TypeAliases and LevelDB.TypeAliases

What changes were proposed in this pull request?
This pr aims to remove unused Constructor from RocksDB.TypeAliases and LevelDB.TypeAliases.
Why are the changes needed?
Code cleaning.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass Github Actions

close this one due to jackson need this Constructor


have to restart PMS to get plexdrive working again

Hey folks, this one is strange!
I have a box using PlexDrive 5. It works fine for a few hours and then stops. The drive stays mounted and I can browse it in the file system. However, I can't copy any of the files (for instance) - the cp or rsync just hangs.
That is, until I restart the plex media server service. Once I restart PMS, the mount works perfectly.
There's nothing in my service configuration connected to PlexDrive so its not like restarting PMS also restarts or remounts the drive... it's like something in PMS is causing plexdrive to hang.
My box is Ubuntu 18.04 - anyone seen this or have any tips on troubleshooting?

Its likely that Plex is running a media scan thats causing this.


FLK-994 Module 1 Lab code

Classes changed 4 labs of module1 and ran all the test cases.

Created a new PR as per Pavel comments
https://github.com/apache/flink-training/pull/60/files

Attached the new PR request created in fork
https://github.com/ness-vaibhavtyagi/flink-training/pull/2


Replacing dead link

Replacing a dead link. This file has actually been removed from the repo, so pointing to an old version is required.

Hi @GusPrice thank you for the PR!
The tutorial HTML files are generated by the markdown files of the repo, which means that accepting your change wouldn't be applied to the live version of the tutorials.
I spotted the link is in the setupQualityGate.md file inside tutorials/snippets/07/quality-gates folder. Would you mind editing it there?
I was also thinking about setting the link to the master version nevertheless, but pointing it to https://github.com/keptn/spec/blob/master/service_level_objective.md which is the actual slo.yaml file that is referenced in the tutorial. What do you think?

https://github.com/keptn/spec/blob/master/service_level_objective.md

This is actually what I had in my notes to point it to, but when I saw another file was pointing to the old 0.1.3 I went to copy that. I will update my PR to modify:

tutorials/snippets/07/quality-gates/setupQualityGate.md

You should find my PR updates as you mentioned :D

Thanks @GusPrice for improving the Keptn tutorials!


ENYO-5648: Blur active element when container becomes spotlightDisabled

Checklist

[ ] I have read and understand the contribution guide

[ ] A CHANGELOG entry is included

[ ] At least one test case is included for this feature or bug fix

[ ] Documentation was added or is not needed

[ ] This is an API breaking change

Issue Resolved / Feature Added
When a spotlight container component manages, spotlightDisabled are normally propagated to its children to prevent from getting focused.
moonstone/VideoPlayer sets MediaControls's spotlightDisabled prop to true
This state is all spread across the known controls (e.g. MediaButtons like play, rew/ff, etc.)
However, spottable components specified by the users (e.g. leftComponents, rightComponents, children) do not.
If the last focused item was one of those user specified spottable components and MediaControls is hidden, you can still interact with the component even though it’s hidden.
A real world example would be in P&V video player. Let’s say you have a focus on the icon button that opens up a contextual popup (e.g. subtitle) in the rightComponents, wait for MediaControls to disappear after timeout, press “enter”, then you would have a contextual popup being opened.
Resolution
Blur active element from the container when SpotlightContainerDecorator receives spotlightDisabled changed to true.
Additional Considerations
Enact-DCO-1.0-Signed-off-by: Stephen Choi<EMAIL_ADDRESS>

After some investigation, I'm closing this ticket and leaning towards making a VideoPlayer specific change. ExpandableTransitionContainer uses spotlightDisabled only for preventing navigation while retaining focus, which conflicts with the proposed idea. ExpandableSpotlightDecorator' highlightLabeledItem` function may be updated according to the new rule, but I don't think it's worth the risk at this point given all related bugs reproduced from this logic (#1179, #1634, #1815 to name a few).


Abort a request if the user is not found

This is probably totally the wrong thing to do. But it seems better than throwing 500's?

Ooh, good point. I'm feeling torn right now about whether the find_user function should do the abort, or whether everything implementing find_user should try catch -- I'm not super fond of side effects where I can avoid them, y'know?
I think that I want to stick with find_user always returning a user-type-thing, whether that's the user object or None (or potentially some other option), but I'm definitely open to changing my mind on that

Well, this was a quick hack, and I can certainly see cases where you want to look up a user and handle it differently.


Proposal: move all the samples on same repository

Currently in All other NodeJS library sample's are on same repository while in firestore samples are located on snippets-node repository.
Can we move all the samples in this repository?
cc @googleapis/yoshi-nodejs @googleapis/api-firestore

We could move these theoretically, though we would need to make sure to coordinate with firebase. cc: @samtstern

@samtstern - Do you have thoughts on this?
I would like to either close this issue or come up with a plan to address it.

One thing I like about having the samples together with the source - they make for great integration tests.

I have no strong feelings but I will say this issue is phrased in a Cloud-centric way.  It's worth pointing out that from a Firebase perspective all our snippets are in one place now and moving the Firestore ones here would make things more spread out, not less.
If someone else wants to do the work of moving them and updating the docs I'd approve the PRs, fine either way.

Going to close this since it does not look like it will happen anytime soon :)


Update mypornclub.py

Did a few changes:

Now the search is done based on the number of seeds descending.
In some cases the videos have a link on the sxyprn site with the video. I have added a web seed on the magnet link that is just a link to the file on sxyprn. Sometimes that increases the speed of downloads.
To be able to see the ones with weblinks I have added an small emoji on the file name so that it is easier to see which ones have links.

Please, bump the plugin version. Otherwise, LGTM

So I saw the link on the Unofficial search plugins does not go to this link - that one does not render all names....

You are missing the second page_url.  I might have forgotten to update the link in the Unofficial search plugins, because I created this repo from the gists itselfs.
I plan to add 2 or 3 more search engines during January, and was going to update the page once I've all running.

Should we try threading the additional pages - seems like after some time it doesn't show the rest - although that would probably be considered too much traffic for a large query like say "reagan"?

Threads only show like they are working on the third page or so ...


Documentation confusion

The documentation for the Prometheus Operator seems to be outdated/incorrect. I was reading the user-guides [1] and they have the following example:-
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  name: example
spec:
  replicas: 2
  alerting:
    alertmanagers:
    - namespace: default
      name: alertmanager-example
      port: web
  serviceMonitorSelector:
    matchLabels:
      team: frontend
  resources:
    requests:
      memory: 400Mi
  ruleSelector:
    matchLabels:
      role: prometheus-rulefiles
      prometheus: example

The alertmanagers block seems to have required fields missing as stated in [2].

Field
Description
Scheme
Required

namespace
Namespace of Endpoints object.
string
true

name
Name of Endpoints object in Namespace.
string
true

port
Port the Alertmanager API is exposed on.
intstr.IntOrString
true

scheme
Scheme to use when firing alerts.
string
true

pathPrefix
Prefix for the HTTP path alerts are pushed to.
string
true

When running the Prometheus Operator without the required fields no errors are thrown, is this expected?
[1] https://coreos.com/operators/prometheus/docs/0.12.0/user-guides/alerting.html
[2] https://github.com/coreos/prometheus-operator/blob/release-0.12/Documentation/api.md#alertmanagerendpoints

Ill attach this here to; the troubleshooting guide [1] isn't really a troubleshooting guide as there are no examples on how to actually troubleshoot the Operator e.g. if X is broken run Y to enable debugging etc.
[1] https://coreos.com/operators/prometheus/docs/0.12.0/troubleshooting.html

That's actually just a documentation mistake, those fields are not mandatory. Only truly mandatory are namespace, name, and port (which can either be web, which is the port of Alertmanager's API for Alertmanager clusters created with the Prometheus Operator or the port number 9093, by default).
I'm not sure I understand the troubleshooting concern, the entry we have is a common problem people run into with GKE clusters, seems like a valid entry, but I'm happy to improve if you have suggestions.

Just to make sure I understand correctly, what is the issue you're facing or rather what are you trying to do?

@brancz I have been using the Prometheus Operator and I have hit a lot of issues and going through the documentation hasn't helped.
Let me give you an example; I was configuring the Prometheus Operator to load some custom rules, I received the following error:-
ts=2017-09-12T03:44:53Z caller=main.go:207 component=volume-watcher msg="Updating rule files failed." err="decode error status: payload is not a kubernetes protobuf object"

I traced this error down in GitHub #490 which mentioned rbac rules might not be configured correctly. This type of error should would be beneficial if it was on the troubleshooting page.
Another issue I ran into was configuring Alert Manager; I specified the following:-
  alerting:
    alertmanagers:
      - name: alertmanager-main
        namespace: tectonic-system
        pathPrefix: ''
        port: 9093
        scheme: ''

My assumption is that the Prometheus Operator would append the correct Alert Manager configuration to promethues.yaml?

Regarding your first issue, maybe we just need to switch to client-go for the prometheus-config-reloader as well and we should get the correct errors.
Regarding the second issue, I would expect that to work, what did not work?
Any contributions to the docs are also highly appreciated :slightly_smiling_face: .

Am sorry for the confusion. We now have validations in place and fixed the falsely required fields.


Style doesn't apply on table component

I have imported library in my webpack project with following line:
import Vuikit from 'vuikit'
and this is where I've included a table in my template:
<vk-table v-show="tableRows.length"
              selectable
              condensed
              hover
              trackBy="id"
              :fields="table.fields"
              :rows="tableRows">
    </vk-table>

It is working fine and viewing data properly, but it has no style applied. I mean it doesn't have the theme which is in your Demo.

Hi, you must load the styles on your project specifically by using the vuikit-theme or a custom UIkit theme (read the readme in this case). Webpack doesn't, and can't, deal with that, so just make sure to include the theme CSS as you consider better for your project.

Tnx, it did work


FSR Disable on standalone mod and Potato Patch mod differ

From Disable FSR Mod:
// Disable FSR downscaling
@enabled
00CAD340 08008052
@stop

From Potato Patch:
// patchanon Disable FSR downscaling
@enabled
00CAD348 08008052
@stop

Notice last byte on the address. Some users are reporting issues with the standalone mod, suggesting that the address on Potato is right.

Addressed on PR#6
https://github.com/HolographicWings/TOTK-Mods-collection/pull/6

Addressed on PR#6
#6

Yes, according to Julienraptor01, both of them are wrong and the patch only has a chance to take effect.
The good value being 00CAD344, PR being merged

Imagine both are wrong, just imagine...


Feature request: Dropdown select

Hello.
It would be great to have a filter field with dropdown select widget. Useful for filters with too many choices.
Can you consider?

What about regular Django admin select dropdown?

Yes. How to use it in filters?

There is an example by the link above.

But that example is for ModelForm, not for filter in the list.

What do you mean by "filter in the list"?
Can you give a clear description for your use case?

Well, this library adds new useful filters for DjangoAdminFilters. I suggested the new filter type "dropdown select" which is not available by default in Django. The link you sent just describes how to use selects in ModelAdmin (change form) not AdminFilters (in the list of objects).

Here is a ready-made solution to this problem.
Have you tried using it?

https://github.com/vb64/django.admin.filters#related-projects